.announcement{
      min-height: 38px;
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 8px 20px;
      color: #fff;
      background: var(--coral);
      font-size: 12px;
      font-weight: 700;
      letter-spacing: .025em;
      text-align: center;
    }
.announcement{ gap: 12px; background: linear-gradient(110deg, #bf412b, #d64b30, #bf412b); }
.announcement-message{ display: grid; align-items: center; width: min(540px, 100%); min-width: 0; overflow: hidden; }
.announcement-item{ grid-area: 1 / 1; padding: 4px 0; opacity: 0; visibility: hidden; transform: translateY(18px); transition: opacity .45s ease, transform .45s ease, visibility .45s; }
.announcement-item.is-active{ opacity: 1; visibility: visible; transform: translateY(0); }
.announcement-item::before{ content: "✦"; margin-right: 9px; color: #fff0a6; }
.announcement-controls{ display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
.announcement-count{ font-size: 10px; font-variant-numeric: tabular-nums; }
.announcement-toggle{ width: 30px; height: 30px; padding: 0; border: 1px solid rgba(255,255,255,.5); border-radius: 50%; color: #fff; background: transparent; font-size: 12px; }
.announcement-toggle:hover{ background: rgba(255,255,255,.18); }
.announcement-toggle:focus-visible{ outline: 2px solid #fff0a6; outline-offset: 3px; }
@media (prefers-reduced-motion: reduce){.announcement-item{ transition: none; transform: none; }
}
.site-header{
      height: 76px;
      position: sticky;
      top: 0;
      z-index: 1000;
      display: flex;
      align-items: center;
      border-bottom: 1px solid rgba(223,229,224,.9);
      background: rgba(255,255,255,.96);
      backdrop-filter: blur(14px);
    }
.header-inner{ display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 34px; }
.brand{ display: inline-flex; align-items: center; gap: 11px; min-width: max-content; }
.brand-logo{ width: 46px; height: 46px; flex: 0 0 46px; object-fit: contain; }
.brand-logo-full{ width: auto; height: 56px; flex: 0 0 auto; object-fit: contain; }
.brand-copy{ display: grid; line-height: 1; }
.brand-copy strong{ color: var(--forest-dark); font-size: 17px; letter-spacing: .14em; }
.brand-copy span{ margin-top: 5px; color: var(--muted); font-size: 8px; font-weight: 750; letter-spacing: .3em; }
.desktop-nav{ justify-self: center; display: flex; align-items: center; gap: 30px; }
.desktop-nav a{ position: relative; padding: 10px 0; color: #26332b; font-size: 13px; font-weight: 680; }
.desktop-nav a::after{ content: ""; height: 1px; position: absolute; right: 0; bottom: 5px; left: 0; background: var(--forest); transform: scaleX(0); transition: transform var(--ease); }
.desktop-nav a:hover::after{ transform: scaleX(1); }
.desktop-nav a[aria-current="page"]{ color: var(--forest); }
.desktop-nav a[aria-current="page"]::after{ transform: scaleX(1); }
.header-actions{ display: flex; align-items: center; justify-content: flex-end; gap: 6px; }
.round-btn{
      width: 44px;
      height: 44px;
      display: inline-grid;
      place-items: center;
      position: relative;
      padding: 0;
      border: 1px solid rgba(16,42,28,.09);
      border-radius: 50%;
      color: var(--forest-dark);
      background: rgba(16,42,28,.035);
      transition: border-color var(--ease), background var(--ease), transform var(--ease), box-shadow var(--ease);
    }
.round-btn svg{ width: 20px; height: 20px; display: block; }
.round-btn:hover{ border-color: var(--forest); background: var(--forest-soft); transform: translateY(-1px); box-shadow: 0 4px 12px rgba(16,42,28,.1); }
.cart-count{ min-width: 17px; height: 17px; position: absolute; top: 0; right: -1px; display: grid; place-items: center; padding: 0 4px; border: 2px solid #fff; border-radius: 99px; color: #fff; background: var(--forest); font-size: 9px; font-weight: 800; }
.menu-btn{ display: none; }
.site-footer{ padding: 66px 0 26px; color: rgba(255,255,255,.68); background: var(--forest-dark); }
.site-footer .brand-logo{ padding: 4px; border-radius: 12px; background: #fff; }
.footer-grid{ display: grid; grid-template-columns: 1.45fr repeat(3, 1fr); gap: 46px; }
.footer-about{ max-width: 330px; margin: 18px 0 0; font-size: 13px; line-height: 1.7; }
.footer-column h3{ margin: 0 0 15px; color: #fff; font-size: 12px; letter-spacing: .07em; text-transform: uppercase; }
.footer-links{ display: grid; gap: 10px; }
.footer-links a{ font-size: 13px; }
.footer-links a:hover{ color: #fff; }
.footer-bottom{ display: flex; justify-content: space-between; gap: 20px; margin-top: 48px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.12); font-size: 11px; }
.backdrop{ position: fixed; inset: 0; z-index: 3000; background: rgba(10,25,17,.52); opacity: 0; visibility: hidden; transition: opacity .23s ease, visibility .23s ease; }
.backdrop.open{ opacity: 1; visibility: visible; }
.close-btn{ width: 40px; height: 40px; display: grid; place-items: center; padding: 0; border: 1px solid var(--line); border-radius: 50%; color: var(--muted); background: #fff; font-size: 22px; }
.modal .close-btn{ position: absolute; top: 16px; right: 16px; }
.mobile-panel{ width: min(330px, 88vw); position: fixed; z-index: 3200; top: 0; left: 0; bottom: 0; padding: 22px; background: #fff; transform: translateX(-102%); transition: transform .28s ease; }
.mobile-panel.open{ transform: translateX(0); }
.mobile-head{ display: flex; justify-content: space-between; align-items: center; margin-bottom: 32px; }
.mobile-nav{ display: grid; }
.mobile-nav a{ padding: 15px 0; border-bottom: 1px solid var(--line); font-size: 22px; font-weight: 720; letter-spacing: -.03em; }
.mobile-contact{ margin-top: 28px; color: var(--muted); font-size: 12px; line-height: 1.7; }
@media (max-width: 1024px){.desktop-nav{ display: none; }
.header-inner{ grid-template-columns: auto 1fr; }
.menu-btn{ display: inline-grid; }
.footer-grid{ grid-template-columns: 1.3fr repeat(2, 1fr); }
.footer-column:last-child{ grid-column: 2; }
}
@media (max-width: 760px){.footer-grid{ grid-template-columns: 1fr 1fr; }
.footer-column:last-child{ grid-column: auto; }
}
@media (max-width: 520px){.announcement{ min-height: 34px; padding: 7px 12px; font-size: 10px; }
.site-header{ height: 66px; }
.header-inner{ gap: 7px; }
.brand{ gap: 8px; }
.brand-logo{ width: 40px; height: 40px; flex-basis: 40px; }
.brand-logo-full{ height: 42px; width: auto; flex-basis: auto; }
.brand-copy strong{ font-size: 14px; }
.brand-copy span{ display: none; }
.header-actions{ gap: 1px; }
.round-btn{ width: 41px; height: 41px; }
.round-btn svg{ width: 19px; height: 19px; }
.site-footer{ padding-top: 52px; }
.footer-grid{ grid-template-columns: 1fr; gap: 32px; }
.footer-bottom{ flex-direction: column; }
}

/* Shared shell sizing is independent of page-specific content styles. */
.site-header,.site-footer,.mobile-panel,.announcement{--forest:#08734d;--forest-dark:#06452f;--forest-soft:#e5f8ee;--line:#d9e8df;--muted:#63736b;--ease:180ms ease;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.5;box-sizing:border-box}
.site-header .container,.site-footer .container{width:min(calc(100% - 48px),1240px);max-width:none;margin-inline:auto}
.site-header a,.site-footer a,.mobile-panel a{color:inherit;text-decoration:none}
.site-header .brand,.site-footer .brand,.mobile-panel .brand{min-width:0}
.site-header .brand-logo-full,.site-footer .brand-logo-full,.mobile-panel .brand-logo-full{width:auto;height:56px;max-width:100%;object-fit:contain}
.site-header .desktop-nav{position:static;background:transparent;border:0;padding:0}
.site-footer{margin-top:0;text-align:left}.site-footer .footer-links{overflow-wrap:anywhere}
.site-footer .footer-column h3{font-family:inherit}.site-footer .footer-bottom{margin-bottom:0}
.site-header button,.mobile-panel button{font:inherit;cursor:pointer}
.mobile-panel[aria-hidden="true"]{visibility:hidden}.mobile-panel.open{visibility:visible}
.store-locale-dialog{width:min(420px,calc(100% - 32px));padding:28px;border:1px solid #d9e8df;border-radius:18px;color:#102019;background:white;font:inherit;box-shadow:0 20px 60px #102a281f}
.store-locale-dialog::backdrop{background:#0a191180}.store-locale-dialog form{display:grid;gap:18px}.store-locale-dialog label{display:grid;gap:8px}.store-locale-dialog select{width:100%;height:48px;border:1px solid #d9e8df;border-radius:8px;padding:0 12px;background:white;font:inherit}.store-locale-dialog button{min-height:44px;border:0;border-radius:8px;padding:10px 18px;background:#08734d;color:white;font:inherit;cursor:pointer}.store-locale-dialog h2{margin:0;font:700 23px/1.3 inherit}.store-locale-dialog .store-locale-cancel{background:#edf5f0;color:#06452f}
@media(max-width:1024px){.site-header .desktop-nav{display:none}.site-header .header-inner{grid-template-columns:auto 1fr}.site-header .menu-btn{display:inline-grid}}
@media(max-width:760px){.site-header .container,.site-footer .container{width:calc(100% - 28px)}.site-footer .footer-column:last-child{grid-column:auto}}
@media(max-width:520px){.site-header .container,.site-footer .container{width:calc(100% - 24px)}.site-header .brand-logo-full,.mobile-panel .brand-logo-full{height:42px}.site-header .header-inner{gap:7px}.site-header .header-actions{gap:1px}.site-header .round-btn{width:41px;height:41px}}
@media(max-width:360px){.site-header .round-btn{width:35px;height:35px}.site-header .brand-logo-full{height:36px}}
@media(prefers-reduced-motion:reduce){.mobile-panel,.round-btn{transition:none}}

body.no-scroll{overflow:hidden}
