:root {
  color:#202921; background:#f6f4ea; font-family:Arial,Helvetica,sans-serif;
  --green:#23372d; --acid:#d4ef66; --ink:#202921; --line:#adb2a2; --paper:#f6f4ea;
}
*,*::before,*::after { box-sizing:border-box; }
body,h1,h2,h3,p,figure { margin:0; }
body { line-height:1.55; }
a { color:inherit; }
button,select { font:inherit; }
img { display:block; width:100%; height:auto; }
:focus-visible { outline:2px solid currentColor; outline-offset:4px; }
[hidden] { display:none !important; }
.skip { position:fixed; top:8px; left:8px; z-index:3; padding:10px; background:white; color:var(--ink); transform:translateY(-150%); }
.skip:focus { transform:none; }
.shell { width:min(1180px,calc(100% - 88px)); margin-inline:auto; }
.topline { background:var(--acid); color:var(--ink); }
.topline .shell,.header-inner,footer .shell { display:flex; align-items:center; justify-content:space-between; gap:14px; }
.topline .shell { min-height:30px; font-size:.66rem; font-weight:800; letter-spacing:.08em; }
.topline a { text-underline-offset:3px; }
.store-header { border-bottom:1px solid var(--line); }
.header-inner { min-height:74px; }
.store-brand { display:flex; align-items:center; gap:6px; font-size:1.39rem; font-weight:900; letter-spacing:-.08em; text-decoration:none; white-space:nowrap; }
.store-brand > span { width:15px; height:15px; background:var(--green); border-radius:50%; margin-right:2px; }
.store-brand small { font-size:.55rem; letter-spacing:.13em; align-self:flex-start; margin-top:6px; }
nav { display:flex; gap:23px; }
nav a,.bag-link { font-size:.88rem; font-weight:750; text-decoration:none; }
nav a:hover,nav [aria-current] { text-decoration:underline; text-underline-offset:5px; }
.bag-link { display:inline-flex; align-items:center; gap:6px; padding:6px 9px; border:1px solid currentColor; white-space:nowrap; }
.bag-link span { min-width:20px; text-align:center; background:var(--green); color:#fff; padding-inline:3px; }
.retail-hero { display:grid; grid-template-columns:.83fr 1.17fr; background:var(--green); color:var(--paper); }
.hero-copy { padding:clamp(27px,5vw,86px) max(22px,calc((100vw - 1180px)/2)); padding-right:clamp(17px,4vw,55px); }
.tag { font-size:.67rem; font-weight:900; line-height:1.4; letter-spacing:.18em; text-transform:uppercase; }
.hero-copy .tag,.field-notes .tag { color:var(--acid); }
h1,h2,h3 { line-height:.98; letter-spacing:-.06em; }
h1 { font-size:clamp(3rem,7vw,7.3rem); font-weight:900; }
.hero-copy h1 { text-transform:uppercase; font-size:clamp(2.65rem,5.9vw,7.3rem); line-height:.8; margin:17px 0 21px; }
.hero-copy h1 em { font-style:normal; color:var(--acid); }
.hero-copy > p:not(.tag) { max-width:310px; }
.button { display:inline-flex; align-items:center; justify-content:space-between; gap:15px; padding:10px 15px; min-height:47px; background:var(--acid); color:var(--ink); border:1px solid var(--ink); font-size:.87rem; font-weight:850; text-decoration:none; cursor:pointer; }
.button:hover { background:#e2f79a; }
.button:disabled { opacity:.6; cursor:default; }
.hero-copy .button { margin-top:21px; border-color:transparent; }
.retail-hero figure { position:relative; min-width:0; }
.retail-hero figure img { position:absolute; width:100%; height:100%; object-fit:cover; object-position:58% center; }
.retail-hero figcaption { position:absolute; right:9px; bottom:9px; background:var(--paper); color:var(--ink); padding:5px 8px; font-size:.62rem; font-weight:850; letter-spacing:.11em; }
.collection-preview,.shop,.product-page,.cart-page { padding-block:clamp(35px,6vw,83px); }
.section-top { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:end; gap:12px; margin-bottom:22px; }
.section-top h2,.field-notes h2 { font-size:clamp(2rem,5vw,4.4rem); margin-top:6px; }
.text-link { font-size:.88rem; font-weight:800; text-underline-offset:4px; }
.product-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(13px,2.6vw,31px); }
.product-card { min-width:0; }
.product-image { display:block; position:relative; overflow:hidden; background:#e9e6dc; }
.product-image img { aspect-ratio:1; object-fit:cover; transition:transform .22s; }
.product-image:hover img { transform:scale(1.04); }
.product-image span { position:absolute; bottom:9px; right:9px; background:var(--acid); border:1px solid var(--ink); width:27px; height:27px; text-align:center; font-weight:800; line-height:25px; }
.product-line { display:flex; justify-content:space-between; align-items:baseline; gap:8px; margin-top:9px; }
.product-line h2 { font-size:clamp(1rem,2vw,1.48rem); }
.product-line h2 a { text-decoration:none; }
.product-line h2 a:hover { text-decoration:underline; text-underline-offset:4px; }
.product-line > span { font-size:.86rem; font-weight:800; }
.product-card > p { color:#465246; font-size:.83rem; margin-top:4px; }
.field-notes { background:var(--green); color:var(--paper); padding-block:clamp(36px,7vw,86px); }
.field-notes .shell > p:last-child { max-width:565px; margin-top:15px; }
.shop h1,.cart-page h1,.product-copy h1 { margin:7px 0 15px; }
.shop .intro { margin-bottom:19px; }
.shop-toolbar { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px; padding-block:10px; border-block:1px solid var(--line); }
.filters { display:flex; gap:7px; flex-wrap:wrap; }
.filters button { cursor:pointer; min-height:38px; padding:6px 10px; background:transparent; color:var(--ink); border:1px solid var(--green); font-size:.83rem; font-weight:700; }
.filters button[aria-pressed="true"] { background:var(--green); color:white; }
.sort { display:inline-flex; align-items:center; gap:5px; font-size:.84rem; font-weight:700; }
select { padding:7px; background:white; color:var(--ink); border:1px solid #647061; min-height:39px; }
.result-count { font-size:.83rem; margin:10px 0 12px; }
.product-back { display:inline-block; margin-bottom:16px; }
.product-detail { display:grid; grid-template-columns:1.12fr .88fr; align-items:start; gap:clamp(18px,5vw,74px); }
.product-detail img { aspect-ratio:1; object-fit:cover; }
.product-copy { padding-block:8px; }
.product-copy h1 { font-size:clamp(2.7rem,5.9vw,5.5rem); }
.price { font-size:1.28rem; font-weight:800; }
.product-description { margin:13px 0; }
.color { font-size:.88rem; }
.color strong { margin-right:6px; }
.add-form { margin:15px 0; }
.field-row { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:9px; }
.field-row label { min-width:0; display:grid; gap:4px; font-size:.84rem; font-weight:800; }
.add-form .button { width:100%; }
.bag-feedback { font-size:.87rem; min-height:1.1em; padding-top:5px; }
.product-copy details { border-top:1px solid var(--line); padding:9px 0; }
.product-copy details p { margin-top:6px; font-size:.9rem; }
summary { cursor:pointer; font-weight:750; }
.cart-layout { display:grid; grid-template-columns:1.2fr .8fr; align-items:start; gap:clamp(16px,4vw,52px); }
.cart-notice { font-size:.87rem; min-height:1.2em; margin-bottom:5px; }
.cart-item { display:grid; grid-template-columns:minmax(75px,115px) minmax(0,1fr) auto; align-items:start; gap:12px; border-top:1px solid var(--line); padding:12px 0; }
.cart-item h2 { font-size:1.23rem; }
.cart-item h2 a { text-decoration:none; }
.cart-item h2 a:hover { text-decoration:underline; }
.cart-item p,.cart-item label,.remove { font-size:.84rem; }
.cart-item label { display:inline-flex; align-items:center; gap:4px; margin-top:6px; }
.remove { display:block; color:inherit; text-decoration:underline; padding:3px 0; border:0; background:none; cursor:pointer; }
.order-summary,.empty-bag { padding:clamp(16px,3vw,31px); border:1px solid var(--line); background:#eeefe1; }
.order-summary h2,.empty-bag h2 { font-size:1.7rem; }
.subtotal { display:flex; justify-content:space-between; gap:8px; padding:9px 0; margin:8px 0; border-top:1px solid var(--line); }
.order-summary .button { width:100%; }
.order-summary p { font-size:.84rem; margin-top:8px; }
.order-summary [data-checkout-review] { margin-top:12px; border-top:1px solid var(--line); padding-top:11px; }
.empty-bag p { margin:8px 0; }
footer { background:var(--green); color:var(--paper); border-top:1px solid #5a6a5b; }
footer .shell { flex-wrap:wrap; padding-block:15px; font-size:.75rem; }
@media(max-width:760px) {
  .shell { width:calc(100% - 34px); }
  .retail-hero { grid-template-columns:1fr; }
  .hero-copy { padding-inline:17px; }
  .hero-copy h1 { font-size:clamp(3rem,12vw,6rem); }
  .retail-hero figure { aspect-ratio:1.45; }
  .product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .product-detail,.cart-layout { grid-template-columns:1fr; }
}
@media(max-width:420px) { nav { gap:7px; } nav a,.bag-link { font-size:.72rem; } .store-brand { font-size:1.12rem; } nav a:nth-child(2) { display:none; } }
@media(prefers-reduced-motion:reduce) { .product-image img { transition:none; } }
