/* Shared reading sizes. Load after each page's component styles. */
:root {
  --font-text: "Roboto", Arial, sans-serif;
  --font-title: "Playfair Display", Georgia, serif;
  --type-small: .875rem;
  --type-body: 1rem;
  --type-lead: 1.125rem;
  --type-card: 1.5rem;
  --type-product: 2rem;
  --type-section: 2.25rem;
  --type-page: 2.5rem;
  --leading-text: 1.6;
  --leading-title: 1.18;
}

html { font-size: 100%; }
body {
  font-family: var(--font-text);
  font-size: var(--type-body);
  font-weight: 400;
  line-height: var(--leading-text);
  font-optical-sizing: auto;
  font-kerning: normal;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
button, input, select, textarea { font: inherit; }

body h1:not(.hero-title) {
  max-width: 22ch;
  font: 500 var(--type-page)/var(--leading-title) var(--font-title);
  letter-spacing: -.02em;
  text-wrap: balance;
  overflow-wrap: break-word;
}
body :is(.about, .bakery-heading, .production, .business-offers, .cooperation-heading) h2 {
  font: 500 var(--type-section)/var(--leading-title) var(--font-title);
  letter-spacing: -.02em;
  white-space: normal;
  text-wrap: balance;
}
body .bakery-title-block h3, body .product-dialog-copy h2 {
  font: 500 var(--type-product)/var(--leading-title) var(--font-title);
  letter-spacing: -.02em;
  text-wrap: balance;
  overflow-wrap: break-word;
}
body :is(.business-card, .cooperation-format, .business-start, .production-step, .cooperation-steps, .editor-card-heading) h3,
body :is(.bakery-card-copy, .bakery-empty, .catalog-bottom, .contact-modal, .footer-intro, .legal-document, .panel-heading) h2,
body .cooperation-contact h2, body .footer-locations h3 {
  font: 500 var(--type-card)/1.25 var(--font-title);
  letter-spacing: -.015em;
  text-wrap: balance;
  overflow-wrap: break-word;
}
.bakery-info h4.bakery-info-heading, .cookie-banner-copy h2, .legal-document h3 {
  font: 600 var(--type-lead)/1.4 var(--font-text);
  letter-spacing: normal;
}

.about-intro, .about-text, .bakery-caption, .bakery-description,
.product-dialog-copy > p:not(.bakery-eyebrow),
.bakery-card-copy > p, .bakery-empty p, .catalog-bottom p,
.business-card-description, .business-benefits,
.business-start p:not(.business-eyebrow), .cooperation-format > p,
.cooperation-format > .business-format-note, .cooperation-steps p,
.cooperation-heading > p:not(.business-eyebrow), .business-conditions-list dd,
.business-faq-list p, .production-intro > p:not(.production-kicker), .production-step p,
.contact-modal-header > div > p:last-child, .footer-note, .footer-locations-note,
.footer-contact-address address, .legal-document p, .legal-document ul,
.legal-document ol, .legal-table, .business-footer p,
.admin-header > div > p:not(.admin-kicker), .panel-heading p, .lead {
  font-family: var(--font-text);
  font-size: var(--type-body);
  font-weight: 400;
  line-height: var(--leading-text);
  letter-spacing: normal;
  text-wrap: pretty;
}
.about-intro, .business-heading-copy > p, .business-lead,
.catalog-page-heading > p, .legal-lead {
  font: 400 var(--type-lead)/var(--leading-text) var(--font-text);
  letter-spacing: normal;
  text-wrap: pretty;
}

.button, .header-actions .button-compact, .header-actions .phone-link,
.desktop-nav a, .mobile-menu a, .bakery-all, .bakery-heading .bakery-all, .bakery-text-link, .bakery-filter,
.bakery-card-more, .business-text-link, .business-actions .button,
.production-link, .cookie-button, .admin-button, .admin-link, .admin-tab,
.page-shell .nav-links a, .page-shell .header-cta, .page-shell .phone, .footer-map-link {
  font: 600 var(--type-body)/1.4 var(--font-text);
  letter-spacing: normal;
}
.contact-field input, .contact-field select, .contact-field textarea,
.bakery-search input, .editor-fields input, .editor-fields select, .editor-fields textarea {
  font: 400 var(--type-body)/1.5 var(--font-text);
  letter-spacing: normal;
}
.business-faq-list summary, .business-conditions-list dt,
.footer-store-copy strong, .footer-contact-item a, .footer-nav a {
  font: 600 var(--type-body)/1.5 var(--font-text);
  letter-spacing: normal;
}
.bakery-specs div, .bakery-info .bakery-specs div,
.product-dialog-copy .bakery-specs div {
  font-size: var(--type-body);
  line-height: var(--leading-text);
}
.bakery-specs dt { font-weight: 400; }
.bakery-specs dd { font-weight: 600; overflow-wrap: break-word; }
.bakery-specs-wide dd { font-weight: 400; }
.product-dialog-copy .bakery-specs div { grid-template-columns: 7.5rem minmax(0, 1fr); }
.product-dialog-copy .bakery-specs .bakery-specs-wide { grid-template-columns: minmax(0, 1fr); }

.bakery-eyebrow, .production-kicker, .business-eyebrow, .section-kicker,
.section-kicker span, .production-step > span, .production-photo figcaption,
.footer-eyebrow, .footer-label, .footer-store-index, .footer-store-copy small,
.footer-map-head strong, .footer-map-open, .footer-legal, .footer-legal-links a,
.business-small, .business-number, .business-breadcrumb, .business-footer nav,
.cooperation-hero-media figcaption, .catalog-breadcrumb, .bakery-info-foot,
.bakery-carousel-footer, .bakery-thumb, .bakery-card-category, .bakery-card-foot,
.bakery-results-count, .catalog-page-footer, .catalog-page-footer a,
.contact-modal-kicker, .contact-field > span, .contact-consents legend,
.contact-consent, .contact-form-note, .contact-form-status,
.cookie-banner-kicker, .cookie-banner-copy p, .legal-kicker, .legal-updated,
.legal-toc p, .legal-toc a, .legal-footer, .legal-table th, .admin-kicker,
.panel-heading > span, .editor-card-heading > span, .editor-fields label,
.admin-status,
.eyebrow, .eyebrow span, .page-shell figcaption, .page-shell .site-footer,
.page-shell .footer-links a {
  font-family: var(--font-text);
  font-size: var(--type-small);
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: normal;
}
.bakery-eyebrow, .production-kicker, .business-eyebrow, .section-kicker,
.footer-eyebrow, .footer-label, .contact-modal-kicker, .cookie-banner-kicker,
.legal-kicker, .legal-toc p, .admin-kicker, .eyebrow {
  font-weight: 600;
  letter-spacing: .06em;
}
.contact-field > span, .contact-consents legend, .editor-fields label,
.bakery-card-category, .footer-map-head strong, .legal-table th {
  font-weight: 600;
}
.footer-store-copy small, .bakery-thumb { font-weight: 500; }
strong, b, .legal-document strong { font-weight: 600; }
.business-footer-contacts { font-size: var(--type-body); line-height: 1.5; }
.contact-consent a, .cookie-banner-copy a { font-weight: 600; }
.contact-modal-header > div { min-width: 0; }
.contact-modal-close { min-width: 2.75rem; min-height: 2.75rem; }
.legal-document :is(p, ul, ol) { max-width: 65ch; }
.legal-hero h1 { hyphens: auto; }
.legal-table { line-height: var(--leading-text); }
body.is-ui-visible :is(.header-shell, .desktop-nav, .header-actions) {
  filter: none;
  transform: none;
}

@media (min-width: 40.01rem) {
  :root {
    --type-card: 1.75rem;
    --type-product: 2.25rem;
    --type-section: 2.75rem;
    --type-page: 3.25rem;
  }
  .legal-back, .legal-contact { font-size: var(--type-small); }
}
@media (min-width: 68.01rem) {
  :root {
    --type-card: 2rem;
    --type-product: 2.5rem;
    --type-section: 3.25rem;
    --type-page: 4rem;
  }
  .bakery-carousel { grid-template-columns: minmax(0, 1.7fr) minmax(20rem, 1fr); }
}
@media (max-width: 52rem) {
  /* Keep the error page's navigation readable instead of shrinking it around the logo. */
  .page-shell .site-header { display: flex; justify-content: space-between; }
  .page-shell .brand { position: static; flex: 0 0 auto; transform: none; }
  .page-shell .nav-links { display: none; }
}
@media (max-width: 40rem) {
  .bakery-heading { align-items: start; flex-wrap: wrap; }
  .bakery-heading > div { min-width: 0; }
  .bakery-all { gap: .75rem; }
  .bakery-controls { grid-template-columns: 1fr 1fr; gap: .75rem; }
  .bakery-thumbnails { grid-column: 1 / -1; grid-row: 1; }
  .bakery-thumb { min-width: 6.5rem; }
  .bakery-arrow { justify-self: center; }
  .bakery-specs div, .bakery-info .bakery-specs div,
  .product-dialog-copy .bakery-specs div { grid-template-columns: minmax(0, 1fr); gap: .25rem; }
  .bakery-card-copy > p { font-size: var(--type-body); }
  .footer-map-head { flex-wrap: wrap; }
  .page-shell figcaption { border-radius: 1rem; }
}
@media (max-width: 32rem) {
  .bakery-product-grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 23rem) {
  :root { --type-section: 2rem; --type-page: 2.25rem; }
  .business-eyebrow, .bakery-eyebrow { letter-spacing: .04em; }
}
