/* Readable content typography; retain the existing sans-serif brand fonts. */
:root { --text-content: 16px; --text-secondary: 14px; }
.announcement { font-size: 13px; min-height: 36px; height: auto; padding-top: 5px; padding-bottom: 5px; line-height: 1.45; gap: 20px; }
.hero-copy > p,
.section-heading > p,
.winter-heading > p,
.gift-copy > p,
.about-copy > p:not(.about-intro),
.contact-inner > div > p,
.legal-content p { font-size: var(--text-content); line-height: 1.75; }
.card-copy p,
.winter-card-copy p,
.faq-list details > p { font-size: var(--text-content); line-height: 1.7; }
.faq-list summary { font-size: 16px; line-height: 1.6; }
.hero-footnote,
.assortment-note,
.winter-availability,
.hours-note { font-size: var(--text-secondary); line-height: 1.65; }
.store-address { font-size: 16px; line-height: 1.65; }
.store-place { font-size: 14px; letter-spacing: .03em; }
.store-hours { font-size: 14px; line-height: 1.65; }
.store-phone { font-size: 15px; }
.store-links { flex-wrap: wrap; row-gap: 15px; }
.button { font-size: 15px; max-width: 100%; text-align: center; }
.button-small,
.button-white,
.nav-cta,
.store-links .button { font-size: 14px; }
.text-link,
.hero-actions .text-link,
.contact-inner .text-link,
.footer-main > .text-link,
.legal-header .text-link { font-size: 15px; line-height: 1.55; }
.photo-expand { font-size: 14px; }
.footer-main p,
.footer-location > p { font-size: 15px; line-height: 1.65; }
.footer-bottom { font-size: 14px; line-height: 1.65; flex-wrap: wrap; }
.footer-bottom > div { flex-wrap: wrap; }
.map-status,
.legal-note { font-size: 14px; line-height: 1.65; }
.gallery-close,
.gallery-bottom button,
.gallery-bottom p { font-size: 14px; }
@media (max-width: 760px) {
  .announcement { font-size: 12px; min-height: 32px; padding-left: 5%; padding-right: 5%; }
  .hero-copy > p,
  .section-heading > p,
  .winter-heading > p,
  .gift-copy > p,
  .about-copy > p:not(.about-intro),
  .contact-inner > div > p,
  .card-copy p,
  .winter-card-copy p,
  .faq-list details > p { font-size: 16px; }
  .store-links { flex-wrap: wrap; }
  .winter-actions .button { padding-left: 20px; padding-right: 20px; }
  .footer-main { grid-template-columns: minmax(0, 1fr) auto; }
  .footer-main p { grid-column: 1 / -1; }
  .footer-main > .text-link { grid-row: 3; grid-column: 1; }
  .gallery-bottom p { min-width: 0; }
  .gallery-bottom { gap: 10px; }
  .gallery-bottom button { min-width: 64px; padding-left: 10px; padding-right: 10px; }
}

/* Editorial hierarchy for the personal story, not decorative typography. */
.about-section {
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
  gap: 7%;
  align-items: start;
}
.about-heading { min-width: 0; }
.about-heading h2 {
  font-size: clamp(42px, 4.4vw, 64px);
  line-height: 1.1;
  letter-spacing: -.025em;
  font-weight: 600;
}
.about-copy { min-width: 0; max-width: 560px; padding-top: 2px; }
.about-copy .about-intro {
  font-size: clamp(25px, 2.35vw, 34px);
  line-height: 1.35;
  font-weight: 500;
  letter-spacing: -.035em;
  color: var(--ink);
  max-width: 28ch;
  margin-bottom: 28px;
}
.about-copy > p:not(.about-intro) {
  font-size: 17px;
  line-height: 1.8;
  max-width: 48ch;
  margin-top: 22px;
}
.about-copy strong { color: var(--ink); font-weight: 600; }
.about-copy .text-link { font-size: 16px; font-weight: 600; margin-top: 28px; }
@media (max-width: 760px) {
  .about-section { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .about-heading h2 { font-size: clamp(38px, 9vw, 50px); }
  .about-copy .about-intro { font-size: 26px; margin-bottom: 24px; }
  .about-copy > p:not(.about-intro) { font-size: 16px; margin-top: 20px; }
}

.about-illustration {
  width: min(100%, 360px);
  height: auto;
  aspect-ratio: 3 / 2;
  object-fit: contain;
  margin-top: 28px;
  pointer-events: none;
}
@media (max-width: 760px) {
  .about-illustration { width: min(100%, 260px); margin-top: 22px; }
}

/* Mobile readability pass: scoped overrides leave the desktop layout unchanged. */
@media (max-width: 760px) {
  :root { --text-content: 17px; --text-secondary: 15px; }
  body { font-size: 17px; line-height: 1.7; }

  .hero-copy > p,
  .section-heading > p,
  .winter-heading > p,
  .gift-copy > p,
  .about-copy > p:not(.about-intro),
  .contact-inner > div > p,
  .card-copy p,
  .winter-card-copy p,
  .faq-list details > p,
  .legal-content p,
  .cookie-copy p,
  .cookie-dialog-intro { font-size: 17px; line-height: 1.7; }

  .hero-footnote,
  .assortment-note,
  .winter-availability,
  .stores-section .hours-note,
  .footer-bottom,
  .cookie-category p,
  .cookie-required,
  .cookie-dialog-meta,
  .gallery-bottom p { font-size: 15px; line-height: 1.65; }

  .announcement {
    font-size: 14px;
    line-height: 1.5;
    min-height: 36px;
    height: auto;
    padding-top: 7px;
    padding-bottom: 7px;
    text-align: center;
  }
  .hero-footnote { flex-wrap: wrap; }
  .hero-actions { gap: 12px 20px; }

  .button,
  .button-small,
  .button-white,
  .nav-cta,
  .text-link,
  .hero-actions .text-link,
  .about-copy .text-link,
  .contact-inner .text-link,
  .footer-location .text-link,
  .legal-header .text-link,
  .stores-banner .store-links .button {
    font-size: 16px;
    line-height: 1.5;
    min-height: 48px;
    max-width: 100%;
  }
  .text-link { overflow-wrap: anywhere; }
  .mobile-nav a { font-size: 18px; line-height: 1.5; min-height: 48px; }
  .about-social .social-link { font-size: 16px; }
  .call-toggle { font-size: 16px; }
  .call-options strong { font-size: 17px; }
  .call-options span { font-size: 16px; }
  .call-options a { min-height: 64px; line-height: 1.5; }

  .card-copy h3,
  .winter-card-copy h3,
  .footer-location h3 { font-size: 23px; line-height: 1.3; }
  .winter-heading h2 { font-size: clamp(36px, 8vw, 44px); line-height: 1.2; }
  .contact-heading h2 { font-size: clamp(32px, 8.4vw, 44px); line-height: 1.2; }
  .contact-email { font-size: clamp(25px, 6vw, 28px); max-width: 100%; min-width: 0; line-height: 1.5; }

  .stores-banner .store-address,
  .stores-banner .store-phone { font-size: 17px; line-height: 1.65; }
  .stores-banner .store-links { gap: 14px 20px; }
  .store-place { font-size: 15px; }
  .faq-list summary { font-size: 17px; line-height: 1.55; gap: 16px; align-items: flex-start; }
  .faq-list summary > .faq-icon { margin-top: 2px; }

  .footer-main p { font-size: 16px; line-height: 1.7; }
  .footer-location > p { font-size: 17px; line-height: 1.65; }
  .footer-bottom a,
  footer .cookie-settings-link {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    font-size: 16px;
    line-height: 1.5;
  }
  .footer-bottom > div { gap: 8px 20px; }
  .map-status,
  .map-consent-note p,
  .legal-note { font-size: 16px; line-height: 1.65; }
  .map-consent-note .cookie-open { font-size: 16px; min-height: 48px; }
  .legal-header { flex-wrap: wrap; gap: 12px; }

  .photo-expand { font-size: 14px; line-height: 1.5; padding: 8px 12px; }
  .gallery-toolbar { gap: 12px; }
  .gallery-toolbar h2 { font-size: 18px; line-height: 1.4; min-width: 0; overflow-wrap: anywhere; }
  .gallery-close,
  .gallery-bottom button { font-size: 16px; line-height: 1.5; min-height: 48px; height: auto; padding: 10px 12px; }
  .gallery-bottom { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 8px; }
  .gallery-bottom p { overflow-wrap: anywhere; }

  .cookie-action,
  .cookie-actions .cookie-open,
  .cookie-dialog-actions .cookie-open,
  .cookie-close,
  .cookie-option { font-size: 16px; min-height: 48px; line-height: 1.5; }
}
