/* MERRI global header · storefront navigation (v4, 18 Sep 2026)
   One header on every page: the products are always one tap away.
   Desktop (≥1024px): MERRI · Shop▾ Offline Box  Christmas  Gifts  For business · Login  [page CTA]
   Phone/tablet:      ☰ · MERRI · [page CTA]   and the menu is a small storefront with price + billing model.
   Keeps the old IDs (#merri-menu-btn, #merri-menu, #merri-nav-auth) because page scripts
   (sticky buy bars, member login label) look for them. Toggling lives in /assets/merri-nav.js. */

/* Pages set html,body{overflow-x:hidden}. With both set, <body> becomes its own scroll container and
   position:sticky stops working. "clip" still stops sideways scrolling without creating that container. */
html body{overflow-x:clip}
header.mn{position:sticky;top:0;z-index:60;background:rgba(250,249,246,.96);border-bottom:1px solid rgba(14,44,33,.12);
  font-family:"Instrument Sans",-apple-system,system-ui,sans-serif;color:#0E2C21;-webkit-font-smoothing:antialiased}
@media (min-width:1024px){header.mn{backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}}
header.mn a{color:#0E2C21;text-decoration:none}
header.mn .mn-bar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;padding:12px clamp(16px,4vw,56px);min-height:60px;box-sizing:border-box}
header.mn .mn-logo{grid-column:2;font-family:"Instrument Serif",Georgia,serif;font-size:18px;letter-spacing:.36em;text-indent:.36em;text-transform:uppercase;line-height:1;padding:10px 0}
header.mn .mn-burger{grid-column:1;justify-self:start;display:flex;align-items:center;gap:10px;background:none;border:0;padding:10px 4px 10px 0;margin:0;cursor:pointer;
  font:500 10px/1 "Instrument Sans",sans-serif;letter-spacing:.24em;text-transform:uppercase;color:#0E2C21;min-height:44px}
header.mn .mn-lines{display:inline-flex;flex-direction:column;gap:5px;width:20px}
header.mn .mn-lines span{display:block;height:1.5px;background:#0E2C21;transition:transform .2s ease,opacity .2s ease}
header.mn .mn-burger[aria-expanded="true"] .mn-lines span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
header.mn .mn-burger[aria-expanded="true"] .mn-lines span:nth-child(2){opacity:0}
header.mn .mn-burger[aria-expanded="true"] .mn-lines span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}
header.mn .mn-right{grid-column:3;justify-self:end;display:flex;align-items:center;gap:clamp(14px,1.6vw,22px)}
header.mn .mn-cta{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 16px;background:#0E2C21;color:#FAF9F6!important;border:1px solid #0E2C21;
  font-size:10px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;white-space:nowrap;transition:background .2s ease,opacity .2s ease,visibility .2s}
header.mn .mn-cta:hover{background:#A63A20;border-color:#A63A20}

header.mn .mn-login{font-size:10.5px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;padding:10px 0;display:none}
header.mn .mn-desk{display:none!important}

/* Desktop */
@media (min-width:1024px){
  header.mn .mn-bar{grid-template-columns:auto 1fr auto;gap:clamp(20px,2.4vw,40px);padding:14px clamp(24px,4vw,56px)}
  header.mn .mn-logo{grid-column:1;justify-self:start}
  header.mn .mn-burger{display:none!important}
  header.mn .mn-desk{grid-column:2;display:flex!important;justify-content:center;align-items:center;gap:clamp(18px,2.2vw,34px);
    font-size:10.5px;font-weight:500;letter-spacing:.2em;text-transform:uppercase}
  header.mn .mn-desk > a,header.mn .mn-shop-t{padding:12px 0;border-bottom:1px solid transparent}
  header.mn .mn-desk > a:hover,header.mn .mn-desk > a[aria-current="page"]{border-bottom-color:#0E2C21}
  header.mn .mn-login{display:inline-block}
  header.mn #merri-menu{display:none!important}
}
/* The old per-page rule shows .merri-desknav from 761px and hides the menu button; the new header
   owns that breakpoint instead. */
@media (max-width:1023px){
  header.mn .merri-desknav{display:none!important}
  header.mn #merri-menu-btn{display:flex!important}
  header.mn #merri-menu:not([hidden]){display:block!important}
}
@media (max-width:380px){
  header.mn .mn-burger .mn-word{display:none}
  header.mn .mn-cta{padding:0 12px;letter-spacing:.14em}
  header.mn .mn-logo{font-size:16px;letter-spacing:.3em;text-indent:.3em}
}

/* Shop dropdown (desktop) */
header.mn .mn-shop{position:relative;display:inline-block}
header.mn .mn-shop-t{font:inherit;letter-spacing:inherit;text-transform:inherit;color:#0E2C21;background:none;border:0;cursor:pointer;display:inline-flex;align-items:center;gap:7px}
header.mn .mn-shop-t svg{transition:transform .2s ease;opacity:.7}
header.mn .mn-shop.open .mn-shop-t svg{transform:rotate(180deg)}
header.mn .mn-drop{display:none;position:absolute;top:100%;left:50%;transform:translateX(-50%);padding-top:10px;z-index:120;text-transform:none;letter-spacing:0}
header.mn .mn-shop.open .mn-drop{display:block}
header.mn .mn-drop-in{display:block;width:380px;background:#FAF9F6;border:1px solid rgba(14,44,33,.16);box-shadow:0 14px 40px rgba(14,44,33,.12);padding:10px}

/* Product rows: used by the dropdown and the phone menu */
.mn-prod{display:grid;grid-template-columns:56px 1fr auto;align-items:center;gap:14px;padding:10px;color:#0E2C21;text-decoration:none;transition:background .15s ease}
.mn-prod:hover,.mn-prod:focus-visible{background:#F4F2EA}
.mn-prod img{width:56px;height:56px;object-fit:cover;display:block;filter:saturate(.9)}
.mn-prod-name{display:block;font-family:"Instrument Serif",Georgia,serif;font-size:19px;line-height:1.15;letter-spacing:-.005em}
.mn-prod-meta{display:block;margin-top:3px;font-size:12px;line-height:1.35;color:rgba(14,44,33,.72)}
.mn-prod-meta b{font-weight:500;color:#0E2C21}
.mn-prod-arrow{font-family:"Instrument Serif",Georgia,serif;font-size:18px;opacity:.5}
.mn-tag{display:inline-block;margin-left:6px;padding:2px 6px;font-size:9px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;vertical-align:2px;border:1px solid currentColor}
.mn-tag-rec{color:#14402F}
.mn-tag-one{color:#A63A20}
.mn-biz{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:6px;padding:14px 10px 6px;border-top:1px solid rgba(14,44,33,.14);
  font-size:13px;color:#0E2C21;text-decoration:none}
.mn-biz span:last-child{font-size:10px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;white-space:nowrap}
.mn-biz:hover span:last-child{color:#A63A20}

/* Phone / tablet menu */
header.mn #merri-menu{border-top:1px solid rgba(14,44,33,.12);background:#FAF9F6;max-height:calc(100vh - 60px);max-height:calc(100dvh - 60px);overflow-y:auto;
  padding:14px clamp(12px,4vw,56px) 26px;-webkit-overflow-scrolling:touch}
header.mn .mn-menu-label{margin:6px 10px 6px;font-size:10px;font-weight:500;letter-spacing:.28em;text-transform:uppercase;color:#A63A20}
header.mn .mn-menu-sec{display:grid;grid-template-columns:1fr 1fr;gap:0 16px;margin:10px 10px 0;padding-top:12px;border-top:1px solid rgba(14,44,33,.14)}
header.mn .mn-menu-sec a{padding:12px 0;font-size:14px;min-height:44px;box-sizing:border-box;display:flex;align-items:center}
header.mn .mn-menu-login{display:flex;align-items:center;justify-content:center;margin:14px 10px 0;min-height:48px;border:1px solid #0E2C21;
  font-size:11px;font-weight:500;letter-spacing:.22em;text-transform:uppercase}
@media (min-width:640px) and (max-width:1023px){
  header.mn .mn-menu-prods{display:grid;grid-template-columns:1fr 1fr;gap:4px}
}
header.mn :focus-visible{outline:2px solid #A63A20;outline-offset:2px}
@media (prefers-reduced-motion:reduce){header.mn *{transition:none!important}}

/* ── Cross-sell (shared) ─────────────────────────────────────────────
   .mw  = "More ways to MERRI": a quiet row of the other products, placed near the bottom of product pages.
   .mx  = one-line "not this model? try that" band, placed after the page has done its main selling. */
.mw{background:#F4F2EA;color:#0E2C21;padding:clamp(48px,7vh,84px) clamp(16px,4vw,56px);font-family:"Instrument Sans",-apple-system,system-ui,sans-serif}
.mw-in{max-width:1180px;margin:0 auto}
.mw-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:10px 24px;margin:0 0 22px}
.mw-head h2{margin:0;font-family:"Instrument Serif",Georgia,serif;font-weight:400;font-size:clamp(30px,3.6vw,46px);line-height:1.02;letter-spacing:-.015em}
.mw-head p{margin:0;font-size:14px;color:rgba(14,44,33,.74)}
.mw-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px}
.mw-card{display:grid;grid-template-columns:84px 1fr;gap:14px;align-items:center;padding:12px;background:#FDFCFA;border:1px solid rgba(14,44,33,.14);color:#0E2C21;text-decoration:none;transition:border-color .2s ease}
.mw-card:hover{border-color:#0E2C21}
.mw-card img{width:84px;height:84px;object-fit:cover;display:block}
.mw-card b{display:block;font-family:"Instrument Serif",Georgia,serif;font-weight:400;font-size:20px;line-height:1.1}
.mw-card span{display:block;margin-top:4px;font-size:12.5px;line-height:1.4;color:rgba(14,44,33,.74)}
.mw-card em{display:block;margin-top:8px;font-style:normal;font-size:10px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:#A63A20}
.mx{background:#FDFCFA;border-top:1px solid rgba(14,44,33,.12);border-bottom:1px solid rgba(14,44,33,.12);padding:clamp(22px,3.4vh,32px) clamp(16px,4vw,56px);font-family:"Instrument Sans",-apple-system,system-ui,sans-serif;color:#0E2C21}
.mx-in{max-width:1180px;margin:0 auto;display:flex;flex-wrap:wrap;align-items:center;gap:12px clamp(18px,3vw,40px)}
.mx-q{margin:0;font-family:"Instrument Serif",Georgia,serif;font-size:clamp(21px,2vw,26px);line-height:1.2}
.mx-links{display:flex;flex-wrap:wrap;gap:10px 28px}
.mx a{font-size:14.5px;line-height:1.4;color:#0E2C21;text-decoration:none;border-bottom:1px solid rgba(14,44,33,.4);padding-bottom:2px}
.mx a:hover{border-color:#A63A20;color:#A63A20}
.mx a b{font-weight:600}
@media (max-width:640px){.mw-card{grid-template-columns:72px 1fr}.mw-card img{width:72px;height:72px}.mx-links{flex-direction:column;gap:12px}}

/* Only one pinned buy control at a time: when a page's own sticky buy bar is up, the header CTA steps aside. */
/* The header button is always Login for members (18 Sep 2026), so it never steps aside for sticky buy bars. */
/* "Shop all" is a big stand-out bar, in the dropdown and the phone menu (18 Sep 2026) */
header.mn a.mn-shopall{display:flex;justify-content:space-between;align-items:center;margin:10px 0 4px;padding:16px 18px;background:#A63A20;color:#FAF9F6;text-decoration:none;font-size:13px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;transition:background .2s}
header.mn a.mn-shopall span:last-child{font-size:20px;letter-spacing:0;transition:transform .2s}
header.mn a.mn-shopall:hover{background:#8C2F19;color:#FAF9F6}
header.mn a.mn-shopall:hover span:last-child{transform:translateX(4px)}
header.mn #merri-menu a.mn-shopall{margin:12px 10px 6px;padding:18px 20px;font-size:14px}
header.mn .mn-menu-label{display:flex;justify-content:space-between;align-items:baseline}
header.mn .mn-all-link{color:#0E2C21;font-size:10px;letter-spacing:.2em;border-bottom:1px solid currentColor}

/* Login menu: members pick "Manage my membership" or "Community app" (18 Sep 2026) */
header.mn .mn-acct{position:relative;display:inline-block}
header.mn button.mn-cta{font-family:inherit;cursor:pointer}
header.mn .mn-acct-m{display:none;position:absolute;right:0;top:100%;margin-top:8px;width:260px;z-index:130;background:#FAF9F6;border:1px solid rgba(14,44,33,.16);box-shadow:0 14px 40px rgba(14,44,33,.14);padding:6px}
header.mn .mn-acct.open .mn-acct-m{display:block}
header.mn .mn-acct-m a{display:block;padding:12px 12px;color:#0E2C21}
header.mn .mn-acct-m a:hover{background:#F4F2EA}
header.mn .mn-acct-m b{display:block;font-family:"Instrument Serif",Georgia,serif;font-weight:400;font-size:18px;line-height:1.2}
header.mn .mn-acct-m span{display:block;margin-top:2px;font-size:12px;color:rgba(14,44,33,.7)}
header.mn .mn-menu-acct{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:14px 10px 0}
header.mn .mn-menu-acct .mn-menu-login{margin:0;text-align:center;padding:0 8px;font-size:10px;letter-spacing:.14em}
