/* Shared reading sizes stay legible across the older responsive overrides. */
:root {
  --reading-copy: 16px;
  --reading-secondary: 14px;
  --reading-label: 12px;
  --reading-action: 14px;
}

.bodycopy,
.story-long .bodycopy,
.story-intro .bodycopy,
.about-main .bodycopy,
.home-faq .bodycopy,
.hero p {
  font-size: var(--reading-copy);
  line-height: 1.85;
}

.section-desc,
.page-heading p,
.news-grid p,
.campaign-card p,
.faq details p,
.home-faq .faq details p,
.visit-info p,
.visit-photo-note p,
.about-small p,
.contact-card p,
.contact-callout,
.hours-list,
.home-hours > div,
.footer p,
.footer-links,
.footer-social,
.product-modal-copy p {
  font-size: var(--reading-secondary);
  line-height: 1.85;
}

.btn,
.hero .btn,
.campaign-card .btn,
.visit-info .btn,
.product-modal-copy .btn,
.menu-more {
  font-size: var(--reading-action);
  line-height: 1.5;
  min-height: 48px;
}

.text-link,
.hero .text-link,
.home-menu .section-head > .text-link,
.home-visit .section-head .text-link,
.news-card .text-link,
.about-small .text-link,
.contact-card .text-link,
.mega-intro .text-link {
  font-size: var(--reading-action);
  line-height: 1.5;
  min-height: 44px;
  align-items: center;
}

.eyebrow,
.small-label,
.home-menu .section-head .eyebrow,
.selected-section .eyebrow,
.page-heading .eyebrow,
.story-long .small-label,
.news-card .small-label,
.visit-info .small-label,
.home-hours .small-label,
.about-small .small-label,
.contact-card .small-label,
.footer-invitation .small-label,
.product-modal-copy .small-label {
  font-size: var(--reading-label);
  letter-spacing: 1.5px;
  line-height: 1.6;
}

.topline,
.topline .right {
  font-size: 11px;
  letter-spacing: 1.3px;
}

.hero-edition {
  font-size: 11px;
  letter-spacing: 1.3px;
}

.hero-overline {
  font-size: 12px;
  letter-spacing: 1.4px;
}

.hero-scroll {
  font-size: 11px;
  letter-spacing: 1px;
  max-width: none;
}

.hero-signature {
  flex-wrap: wrap;
  row-gap: 12px;
}

.hero-signature > small {
  font-size: 10px;
  letter-spacing: 1px;
  max-width: 150px;
}

.slide-image-note,
.story-portrait figcaption,
.home-gallery-tile small,
.archive-note,
.gallery-source,
.gallery-info,
.visit-photo-note small,
.rail-hint,
.crumb,
.footer-bottom,
.backtop {
  font-size: 12px;
  line-height: 1.7;
}

.story-points {
  font-size: 14px;
  line-height: 1.8;
}

.ticker .wrap {
  font-size: 11px;
  letter-spacing: 1px;
  flex-wrap: wrap;
  row-gap: 8px;
}

.navlink,
.mega-menu .mega-toggle {
  font-size: 14px;
}

.nav-phone,
.mega-card small,
.category-card small {
  font-size: 12px;
  line-height: 1.7;
}

.searchbox {
  width: min(100%, 250px);
}

.searchbox input {
  font-size: 14px;
}

.menu-note {
  font-size: 13px;
}

.result-count {
  font-size: 11px;
  line-height: 1.7;
}

.product-card > p,
.featured-card > p {
  font-size: 14px;
  line-height: 1.8;
}

.product-bottom,
.featured-card .product-bottom,
.featured-card .product-badge {
  font-size: 12px;
}

.product-modal-copy .allergen {
  font-size: 12px !important;
}

.mobile-shortcuts a {
  font-size: 11px;
}

@media (max-width: 760px) {
  :root {
    --reading-copy: 15px;
    --reading-label: 11px;
  }

  .topline {
    font-size: 10px;
    height: 30px;
    letter-spacing: 1px;
  }

  .hero-edition {
    font-size: 10px;
    letter-spacing: 1px;
  }

  .hero .actions {
    gap: 14px 18px;
  }

  .hero .btn {
    padding-inline: 16px;
    gap: 14px;
  }

  .hero-scroll {
    max-width: 125px;
    font-size: 10px;
  }

  .hero-bottom {
    flex-wrap: wrap;
    row-gap: 14px;
  }

  .ticker .wrap {
    font-size: 10px;
    letter-spacing: 0.6px;
  }
}
