/* Shared finishing touches. Keep page-specific design in its own stylesheet. */
body { min-width: 0; }
.mobile-nav { overflow: hidden; }
img { max-width: 100%; }
:where(a, button, input, select, textarea):focus-visible { outline: 3px solid #747c50; outline-offset: 4px; }
body:has(dialog[open]) { overflow: hidden; }
.commerce-drawer {
  inset: 0 0 0 auto; margin: 0; border: 0; padding: 0;
  max-width: 100vw; max-height: 100dvh; text-align: left;
  grid-template-rows: auto minmax(0,1fr) auto;
  transform: none; transition: none;
}

.commerce-drawer[open] { animation: cartAppear .18s ease-out; }
@keyframes cartAppear { from { opacity: 0; } to { opacity: 1; } }
.commerce-drawer:not([open]) { display: none; }
.commerce-drawer::backdrop { background: rgba(9,26,16,.5); backdrop-filter: blur(4px); }
.commerce-drawer-foot { max-height: 45dvh; overflow-y: auto; }
.commerce-item-main, .commerce-item-top > div { min-width: 0; }
.commerce-item-title { overflow-wrap: anywhere; }
.commerce-item-image img, .checkout-item-img img { width: 100%; height: 100%; object-fit: contain; object-position: center; }
.commerce-drawer-close, .commerce-qty button, .commerce-item-remove { min-width: 40px; min-height: 40px; }
.audience-gate { overflow-y: auto; overscroll-behavior: contain; }
.audience-hero-inner.shell { width: var(--shell); }
.page-hero-copy, .page-hero-media { min-width: 0; }
.page-hero h1 { overflow-wrap: break-word; }
.commerce-qty { grid-template-columns: 40px 30px 40px; }
.commerce-item-bottom { flex-wrap: wrap; gap: 10px; }
.editorial-photo { margin: 30px 0 0; }
.editorial-photo img { width: 100%; height: auto; aspect-ratio: 3/2; object-fit: cover; border-radius: 20px; }
.editorial-photo figcaption { margin-top: 10px; color: #67705c; font-size: 12px; }
.consumer-selector-copy .editorial-photo { max-width: 520px; }
.catalog-quick-grid { display: grid; grid-template-columns: repeat(6, minmax(0,1fr)); gap: 12px; overflow: visible; }
.catalog-quick-grid > a { min-width: 0; flex-direction: column; gap: 12px; padding: 14px 10px; text-align: center; border-radius: 14px; background: #faf9f5; }
.catalog-quick-grid > a > img { width: 100%; height: 102px; object-fit: contain; object-position: center; mix-blend-mode: multiply; transition: transform .35s ease; }
.catalog-quick-grid > a:hover > img { transform: translateY(-4px) scale(1.04); }
.catalog-quick-grid > a > svg { display: none; }
.catalog-quick-grid > a > span { font: 700 12px/1.3 var(--font-sans); }
.shop-help { padding: 64px 0; background: #f7f2e8; border-top: 1px solid var(--line); }
.shop-help-layout { display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(28px,6vw,90px); align-items: start; }
.shop-help h2 { margin: 12px 0 16px; font: 700 clamp(32px,4vw,50px)/1.03 var(--font-display); letter-spacing: -.04em; }
.shop-help p { color: var(--muted); line-height: 1.7; }
.shop-help details { border-bottom: 1px solid var(--line); }
.shop-help summary { cursor: pointer; padding: 20px 28px 20px 0; font-weight: 700; }
.shop-help details p { margin: 0 0 22px; }
.shop-help details a { text-decoration: underline; text-underline-offset: 3px; }
.footer-logo img, .brand-logo-frame img { object-fit: contain; object-position: center; }
[aria-disabled="true"] { cursor: not-allowed; }
@media (max-width: 900px) {
  .audience-gate { grid-auto-rows: minmax(50svh, auto); }
  .gate-choice { overflow: visible; }
  .catalog-quick-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
}
@media (max-width: 600px) {
  .shop-help-layout { grid-template-columns: 1fr; }
  .catalog-quick-grid { gap: 8px; }
  .catalog-quick-grid > a > img { height: 76px; }
  .catalog-quick-grid > a { padding: 10px 5px; }
  .commerce-drawer-head { padding: 16px; }
  .commerce-drawer-body { padding: 12px; }
  .commerce-drawer-foot { padding: 16px; }
  .commerce-item { gap: 10px; }
  .shop-help { padding: 48px 0; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
@media (max-width: 360px) {
  .page-hero h1 { font-size: 47px; }
  .values-heading h2 { font-size: 43px; }
  .commerce-summary { padding-inline: 12px; }
}


/* Layout rhythm: centered introductions, readable copy, and a shared content rail. */
:root {
  --content-width: 1280px;
  --muted: #596552;
  --home-muted: #596552;
  --shell: min(var(--content-width), calc(100% - 64px));
  --section-space: clamp(64px, 7vw, 104px);
  --header-offset: 158px;
  --section-nav-height: 0px;
  --radius-card: 20px;
  --motion-quick: 180ms;
}
html { scroll-padding-top: calc(var(--header-offset) + var(--section-nav-height) + 20px); }
button, input, select, textarea { font-family: var(--font-sans); }
h1, h2, h3 { text-wrap: balance; }
p { text-wrap: pretty; }
.shell { width: min(var(--content-width), calc(100% - 64px)); }
.site-header { isolation: isolate; }
.header-main { grid-template-columns: minmax(150px, 1fr) minmax(280px, 620px) minmax(150px, 1fr); gap: 24px; }
.header-search { border-radius: 8px; }
.header-action { min-height: 44px; }
.home-page.is-entered .home-app { transform: none; }
body.home-page main, .rewards-main, .checkout-main { overflow: clip; }
.home-section, .page-section, .belief-section, .values-section, .timeline-section,
.consumer-selector, .consumer-anatomy, .project-finder, .rewards-section { padding-block: var(--section-space); }
.home-section .home-display { font-size: clamp(42px, 5.4vw, 76px); line-height: 1.02; }
.section-head {
  grid-template-columns: minmax(0,1fr); justify-items: center; gap: 20px;
  max-width: 900px; margin-inline: auto; margin-bottom: 44px; text-align: center;
}
.section-head .home-copy { max-width: 58ch; margin-inline: auto; }
.section-head .home-eyebrow { margin-bottom: 16px; }
.products-section > .shell > .home-actions { justify-content: center; }
.home-product-grid { grid-template-columns: repeat(4,minmax(0,1fr)); gap: 16px; }
.products-frame { border-radius: 28px; padding: 18px; box-shadow: 0 16px 48px rgba(24,58,39,.06); }
.home-page .paths-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; }
.home-page .path-card { grid-column: auto; min-height: 340px; border-radius: 26px; padding: 32px; }
.home-page .path-card.large, .home-page .path-card.medium { min-height: 420px; }
.home-page .path-card h3 { font-size: clamp(34px,3.5vw,50px); line-height: 1.04; }
.home-page .path-card p { max-width: 42ch; }
.method-layout { grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: clamp(32px,5vw,72px); }
.method-intro, .project-finder-copy { top: calc(var(--header-offset) + var(--section-nav-height) + 24px); }
.method-row { grid-template-columns: 58px minmax(0,1fr); gap: 20px; padding: 26px; border-radius: 20px; }
.method-row:hover { transform: translateY(-2px); }
.finder-panel, .home-finder .finder-panel { border-radius: 24px; }
.finder-step { padding: clamp(22px,3vw,36px); }
.finder-result { padding: clamp(22px,3vw,36px); }
.finder-option { min-height: 104px; }
.values-heading { margin-inline: auto; text-align: center; }
.values-heading .eyebrow { justify-content: center; }
.values-heading h2 { font-size: clamp(42px,5.2vw,72px); }
.purpose-grid { gap: 20px; }
.purpose-card { border-radius: var(--radius-card); min-height: 470px; padding: clamp(28px,4vw,56px); }
.purpose-card > svg { margin-bottom: 44px; }
.value-card { min-width: 0; }
.value-card h3 { font-size: clamp(26px,2.4vw,34px); }
.consumer-anatomy-head { max-width: 900px; margin-inline: auto; grid-template-columns: minmax(0,1fr); gap: 20px; text-align: center; }
.consumer-anatomy-head .eyebrow { justify-content: center; }
.consumer-anatomy-head p { max-width: 60ch; margin-inline: auto; }
.consumer-hero-copy, .page-hero-copy { padding-left: max(32px, calc((100vw - var(--content-width)) / 2)); }
.consumer-hero h1, .page-hero h1 { font-size: clamp(52px,6vw,88px); line-height: 1; }
.consumer-hero, .consumer-hero-media { min-height: 650px; }
.consumer-hero-copy { padding-block: 80px; padding-right: clamp(32px,4vw,64px); }
.about-hero-copy h1 { font-size: clamp(52px,5.5vw,82px); line-height: 1; }
.about-hero-copy { padding: 72px clamp(28px,5vw,72px); }
.about-hero { min-height: 650px; }
/* Clear, centered shop entry and consistently aligned product cards. */
.catalog-intro { padding-block: 46px; }
.catalog-intro-content { grid-template-columns: minmax(0,1fr); gap: 24px; text-align: center; }
.catalog-intro .eyebrow, .catalog-breadcrumb { justify-content: center; }
.catalog-intro h1 { max-width: 850px; margin-inline: auto; font-size: clamp(44px,5.5vw,76px); line-height: 1; }
.catalog-intro-note { max-width: 64ch; margin-inline: auto; padding-left: 0; border-left: 0; }
.catalog-intro-note strong { margin-bottom: 8px; }
.catalog-trust-grid small, .proof-item span { color: #f5f0e5; }
.catalog-audience { justify-content: center; margin-top: 24px; }
.catalog-quick-access { padding-block: 24px; }
.catalog-quick-grid { gap: 14px; }
.catalog-quick-grid > a { padding-block: 16px; transition: background .2s ease, border-color .2s ease, box-shadow .2s ease; }
.catalog-quick-grid > a:hover, .catalog-quick-grid > a[aria-current="page"] {
  color: var(--ink); background: #eff1e6; border-color: #8b946d; box-shadow: 0 6px 18px rgba(24,58,39,.06);
}
.product-card { border-radius: 16px; padding: 14px; text-align: center; }
.product-image-link { border-radius: 10px; background: #fff; }
.product-card .product-category { min-height: 2.8em; margin: 14px 0 7px; display: grid; place-content: center; }
.product-card h3 { width: 100%; max-width: 32ch; margin-inline: auto; }
.product-card .product-price-row { justify-content: center; min-height: 28px; }
.product-card .product-actions { margin-top: 14px; }
.product-add, .product-quick { min-height: 44px; border-radius: 8px; }
.product-quick { min-width: 44px; }
.product-badge { border-radius: 6px; }
.catalog-pagination { gap: 8px; }
.catalog-pagination button { min-width: 42px; min-height: 42px; border-radius: 8px; }
.product-dialog { border-radius: 24px; }
.product-main-image { display: grid; place-items: center; }
.product-thumbnails { justify-content: center; }
.catalog-meta { gap: 16px; }
.catalog-search input, .catalog-sort select, .catalog-mobile-category select { min-height: 46px; }
/* Keep the secondary navigation below, not underneath, the sticky header. */
.home-subnav, .consumer-jump, .rewards-rail, .checkout-rail {
  position: sticky; z-index: 80; top: var(--header-offset); scroll-margin-top: var(--header-offset);
}
.home-subnav-inner, .consumer-jump-inner, .rewards-rail-inner, .checkout-rail-inner {
  justify-content: center; scroll-behavior: smooth; scroll-padding-inline: 12px;
}
.home-subnav a[aria-current="location"], .consumer-jump a[aria-current="location"],
.rewards-rail a[aria-current="location"], .checkout-rail a[aria-current="location"] {
  color: var(--ink); background: #e3e7d4; border-color: #b8c098;
}
.nav-dropdown-menu { border-radius: 14px; transform: translateY(8px); transition: opacity .18s ease, visibility .18s ease, transform .22s var(--ease); }
.nav-dropdown-menu a { border-radius: 8px; }
.button, .home-btn { min-height: 48px; }
.button { border-radius: 8px; }
.js [data-reveal] { transition-duration: .5s; }
.js [data-reveal="image"]::before { transition-duration: .55s; }
.js [data-reveal][data-reveal-delay="1"] { transition-delay: .07s; }
.js [data-reveal][data-reveal-delay="2"] { transition-delay: .14s; }
/* Footer identity is centered and never cropped. Navigation columns remain readable. */
.footer-top { justify-content: center; gap: 32px; }
.footer-statement { text-align: left; max-width: 440px; }
.footer-logo { width: 160px; height: 160px; }
.footer-grid { gap: 32px; }
.footer-column a { display: flex; width: fit-content; align-items: center; min-height: 36px; }
.back-to-top {
  position: fixed; z-index: 110; left: 20px; bottom: 20px; width: 44px; height: 44px;
  display: grid; place-items: center; border: 1px solid #a3af90; border-radius: 50%;
  color: var(--ink); background: #f7f2e8; box-shadow: 0 6px 22px rgba(24,58,39,.12);
  font-size: 22px; transition: background .2s ease, box-shadow .2s ease;
}
.back-to-top[hidden] { display: none; }
.back-to-top:hover { background: #e6ebd8; box-shadow: 0 8px 26px rgba(24,58,39,.18); }
.help-trigger { border-radius: 999px; }
.shop-help summary { position: relative; padding-right: 38px; list-style: none; }
.shop-help summary::-webkit-details-marker { display: none; }
.shop-help summary::after {
  content: "+"; position: absolute; right: 0; top: 17px; width: 26px; height: 26px;
  display: grid; place-items: center; border: 1px solid var(--line); border-radius: 50%;
  color: var(--ink-3); font-size: 20px; line-height: 1; transition: transform .2s ease;
}
.shop-help details[open] summary::after { transform: rotate(45deg); }
.shop-help details[open] > p { animation: cartAppear .2s ease-out; }
@media (max-width: 1100px) {
  .home-product-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .method-layout { grid-template-columns: minmax(0,1fr); }
  .method-intro { position: static; max-width: 760px; margin-inline: auto; }
  .header-main { grid-template-columns: 150px minmax(0,1fr) 110px; gap: 24px; }
}
@media (max-width: 820px) {
  :root { --header-offset: 78px; --shell: calc(100% - 40px); }
  .shell { width: calc(100% - 40px); }
  .header-main { grid-template-columns: minmax(0,1fr) auto; gap: 12px; }
  .home-subnav-inner, .consumer-jump-inner, .rewards-rail-inner, .checkout-rail-inner { justify-content: flex-start; }
  .consumer-hero-copy, .page-hero-copy { padding: 56px 24px; }
  .consumer-hero, .consumer-hero-media { min-height: 0; }
  .consumer-hero-media { height: clamp(280px,56vw,440px); }
  .about-hero-media { height: clamp(280px,56vw,440px); }
  .consumer-hero-copy, .about-hero-copy { text-align: center; align-items: center; }
  .consumer-hero-copy .eyebrow { justify-content: center; }
  .consumer-hero-actions { justify-content: center; }
  .consumer-hero h1, .page-hero h1, .about-hero-copy h1 { font-size: clamp(44px,9vw,66px); }
  .footer-top { flex-direction: column; align-items: center; gap: 10px; padding-bottom: 32px; }
  .footer-statement { text-align: center; }
  .footer-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .footer-bottom { align-items: center; text-align: center; }
}
@media (max-width: 600px) {
  :root { --shell: calc(100% - 32px); }
  .shell { width: calc(100% - 32px); }
  .section-head { gap: 16px; margin-bottom: 30px; }
  .home-section .home-display { font-size: clamp(38px,10.5vw,54px); }
  .home-page .paths-grid { grid-template-columns: minmax(0,1fr); gap: 16px; }
  .home-page .path-card, .home-page .path-card.large, .home-page .path-card.medium { min-height: 300px; padding: 26px; }
  .home-page .path-card h3 { font-size: 36px; }
  .products-frame { padding: 10px; border-radius: 20px; }
  .home-product-grid { gap: 10px; }
  .product-card { padding: 9px; border-radius: 12px; }
  .product-image-link { height: 150px; padding-inline: 6px; }
  .product-card h3 { font-size: 12px; line-height: 1.5; }
  .product-card .product-category { font-size: 8px; }
  .product-actions { grid-template-columns: minmax(0,1fr); gap: 6px; }
  .product-quick { display: none; }
  .product-add { font-size: 10px; }
  .catalog-intro { padding-block: 32px; }
  .catalog-intro-content { gap: 18px; }
  .catalog-audience { display: flex; gap: 8px; }
  .catalog-audience button { width: auto; flex: 1 1 auto; padding-inline: 12px; min-height: 42px; font-size: 11px; }
  .catalog-quick-grid { gap: 8px; }
  .catalog-quick-head { align-items: center; text-align: center; }
  .catalog-quick-grid > a { padding: 12px 4px; }
  .catalog-quick-grid > a > img { height: 76px; }
  .catalog-toolbar { margin-inline: 0; gap: 14px; }
  .catalog-sort select { max-width: none; width: 100%; }
  .method-row { grid-template-columns: 38px minmax(0,1fr); gap: 14px; padding: 22px; }
  .method-row > span { font-size: 38px; }
  .method-row h3 { font-size: 28px; }
  .purpose-grid { gap: 16px; }
  .purpose-card { min-height: 0; padding: 32px 26px; }
  .purpose-card > svg { margin-bottom: 32px; }
  .values-heading h2 { font-size: clamp(38px,10.5vw,54px); }
  .back-to-top { left: 12px; bottom: 14px; }
  .help-widget { right: 12px; bottom: 14px; }
  .help-trigger { max-width: calc(100vw - 80px); }
  .help-widget .help-trigger { width: 48px; height: 48px; padding: 0; justify-content: center; }
  .help-trigger > span {
    position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
    overflow: hidden; clip-path: inset(50%); white-space: nowrap;
  }
}
@media (hover: none) {
  .product-card:hover, .method-row:hover, .value-card:hover { transform: none; }
  .product-card:hover .product-image-link img { transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  .home-subnav-inner, .consumer-jump-inner, .rewards-rail-inner, .checkout-rail-inner { scroll-behavior: auto; }
}
