:root{
  --ink:#20262B;
  --bone:#ECE7DD;
  --bone-soft:#F4F0E7;
  --amber:#C97D3B;
  --amber-deep:#A8642B;
  --sage:#3F7A52;
  --mint:#86D6A6;
  --teal:#3E5C66;
  --line:#D8D2C4;
  --line-dark:#37414A;
  --white:#FBF9F4;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;background:var(--bone);color:var(--ink);font-family:'Lora',serif;-webkit-font-smoothing:antialiased;}
h1,h2,h3,.display{font-family:'Archivo',sans-serif;letter-spacing:-0.01em;margin:0;}
.mono{font-family:'IBM Plex Mono',monospace;letter-spacing:0.02em;}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;cursor:pointer;border:none;background:none;}
img,svg{display:block;max-width:100%;}
.wrap{max-width:1180px;margin:0 auto;padding:0 28px;}

/* NAV */
.nav{position:sticky;top:0;z-index:50;background:rgba(236,231,221,0.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);}
.nav-inner{max-width:1180px;margin:0 auto;padding:15px 28px;display:flex;align-items:center;justify-content:space-between;gap:24px;}
.logo{font-family:'Archivo',sans-serif;font-weight:800;font-size:1.3rem;}
.logo span{color:var(--amber-deep);}
.logo-link{display:flex;align-items:center;}
.logo-img{height:34px;display:block;}
.nav-links{display:flex;gap:24px;font-size:0.9rem;font-weight:500;font-family:'Archivo',sans-serif;align-items:center;}
.nav-links a{opacity:0.78;}
.nav-links a:hover{opacity:1;}

.dropdown{position:relative;}
.dropdown-trigger{display:flex;align-items:center;gap:5px;font-family:'Archivo',sans-serif;font-weight:500;font-size:0.9rem;color:inherit;opacity:0.78;}
.dropdown-trigger:hover{opacity:1;}
.dropdown-trigger .caret{transition:transform .15s;}
.dropdown.open .dropdown-trigger{opacity:1;}
.dropdown.open .caret{transform:rotate(180deg);}
.dropdown-menu{position:absolute;top:calc(100% + 16px);left:0;background:var(--white);border:1px solid var(--line);border-radius:12px;padding:8px;min-width:150px;box-shadow:0 14px 26px rgba(32,38,43,0.14);opacity:0;pointer-events:none;transform:translateY(-6px);transition:opacity .15s,transform .15s;z-index:60;}
.dropdown.open .dropdown-menu{opacity:1;pointer-events:auto;transform:translateY(0);}
.dropdown-menu a{display:block;padding:8px 10px;border-radius:7px;font-family:'Archivo',sans-serif;font-size:0.86rem;font-weight:500;color:var(--ink);opacity:0.85;}
.dropdown-menu a:hover{opacity:1;background:var(--bone-soft);}
.dropdown-menu .view-all{border-top:1px solid var(--line);margin-top:6px;padding-top:10px;font-weight:700;color:var(--amber-deep);}

.search-box{display:flex;align-items:center;gap:6px;}
.icon-btn{display:flex;align-items:center;gap:6px;opacity:0.78;font-family:'Archivo',sans-serif;font-weight:500;font-size:0.9rem;color:inherit;}
.icon-btn:hover{opacity:1;}
.icon-btn svg{flex:none;}
.search-input{width:0;opacity:0;border:none;border-bottom:1px solid var(--ink);background:transparent;font-family:'Lora',serif;font-size:0.88rem;padding:2px 0;transition:width .25s ease,opacity .25s ease;}
.search-input.open{width:150px;opacity:1;margin-left:2px;}

.cart-btn{position:relative;display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;background:var(--ink);color:var(--white);flex:none;}
.cart-btn:hover{background:var(--amber-deep);}
.cart-badge{position:absolute;top:-4px;right:-4px;background:var(--amber);color:var(--ink);font-family:'IBM Plex Mono',monospace;font-size:0.6rem;font-weight:600;width:16px;height:16px;border-radius:50%;display:flex;align-items:center;justify-content:center;}
.nav-right{display:flex;align-items:center;gap:10px;}
.hamburger-btn{display:none;width:38px;height:38px;border-radius:50%;align-items:center;justify-content:center;background:none;border:1px solid var(--line);flex:none;cursor:pointer;color:var(--ink);}

@media (max-width:780px){
  .hamburger-btn{display:flex;}
  .nav-links{
    display:none;
    position:absolute;
    top:100%;
    left:0;
    right:0;
    flex-direction:column;
    align-items:flex-start;
    background:var(--white);
    border-bottom:1px solid var(--line);
    padding:16px 28px 22px;
    gap:14px;
    box-shadow:0 14px 20px rgba(32,38,43,0.1);
  }
  .nav-links.mobile-open{display:flex;}
  .dropdown{width:100%;}
  .dropdown-menu{position:static;box-shadow:none;border:none;padding:6px 0 0 10px;margin-top:6px;opacity:1;pointer-events:auto;transform:none;display:none;min-width:0;}
  .dropdown.open .dropdown-menu{display:block;}
  .search-box{width:100%;}
  .search-input.open{width:100%;margin-left:0;margin-top:8px;border:1px solid var(--line);border-radius:8px;padding:10px 12px;}
}

/* HERO */
.hero{background:var(--ink);color:var(--white);position:relative;overflow:hidden;}
.hero-grid{display:grid;grid-template-columns:1.15fr 0.85fr;gap:48px;align-items:center;padding-top:54px;padding-bottom:46px;}
.eyebrow{font-family:'IBM Plex Mono',monospace;font-size:0.76rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--mint);margin-bottom:16px;display:flex;align-items:center;gap:10px;}
.eyebrow::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--sage);box-shadow:0 0 0 4px rgba(63,122,82,0.25);}
.hero-status-row{display:none;align-items:center;gap:10px;flex-wrap:wrap;font-family:'Archivo',sans-serif;font-weight:600;font-size:1.05rem;margin:0 0 26px;color:rgba(251,249,244,0.92);}
.hero-headline{font-size:clamp(1.9rem,3.2vw,2.9rem);font-weight:800;line-height:1.12;max-width:620px;margin:18px 0 26px;}
.hero-status-sep{opacity:0.35;}
.btn-primary{background:var(--sage);color:var(--white);font-family:'Archivo',sans-serif;font-weight:700;font-size:0.96rem;padding:15px 24px;border-radius:8px;display:inline-flex;align-items:center;gap:10px;transition:transform .15s,background .15s;}
.btn-primary:hover{background:#4F9362;transform:translateY(-1px);}
.btn-ghost{font-family:'Archivo',sans-serif;font-weight:600;font-size:0.9rem;color:rgba(251,249,244,0.75);border-bottom:1px solid rgba(251,249,244,0.35);padding-bottom:3px;}

.legacy-card{background:rgba(255,255,255,0.04);border:1px solid var(--line-dark);border-radius:18px;padding:28px;}
@media (max-width:780px){
  .hero-headline{display:none;}
  .hero-grid{grid-template-columns:1fr;gap:0;padding-top:50px;padding-bottom:40px;}
  .hero-status-row{display:flex;}
  .hero-hours-card{display:none;}
}

.status-dot{width:9px;height:9px;border-radius:50%;background:var(--sage);box-shadow:0 0 0 4px rgba(63,122,82,0.25);flex:none;}
.status-dot.closed{background:var(--amber-deep);box-shadow:0 0 0 4px rgba(168,100,43,0.25);}
.hours-status{display:flex;align-items:center;gap:9px;font-family:'Archivo',sans-serif;font-weight:700;font-size:0.98rem;margin-bottom:18px;padding-bottom:18px;border-bottom:1px solid var(--line-dark);}
.hours-row{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px solid var(--line-dark);font-family:'Archivo',sans-serif;font-size:0.9rem;}
.hours-row:last-of-type{border-bottom:none;}
.hours-row .day{opacity:0.65;}
.hours-row .time{font-family:'IBM Plex Mono',monospace;font-weight:600;}
.hours-flag{font-family:'IBM Plex Mono',monospace;font-size:0.66rem;color:rgba(251,249,244,0.4);margin-top:16px;line-height:1.5;}

.trust-strip{border-top:1px solid var(--line-dark);background:rgba(0,0,0,0.18);}
.trust-inner{max-width:1180px;margin:0 auto;padding:14px 28px;font-family:'Archivo',sans-serif;font-size:0.86rem;font-weight:600;color:rgba(251,249,244,0.88);}
.trust-inner .stars{color:var(--amber);font-family:'IBM Plex Mono',monospace;letter-spacing:0.04em;}

/* MINI SHELVES (homepage per-category sections) */
.mini-shelf{padding-top:30px;padding-bottom:10px;}
.mini-shelf-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:16px;}
.mini-shelf-head h2{font-size:1.3rem;font-weight:800;}
.view-all-link{font-family:'Archivo',sans-serif;font-weight:700;font-size:0.86rem;color:var(--sage);white-space:nowrap;}
.view-all-bar{display:block;text-align:center;background:var(--bone-soft);border:1px solid var(--line);border-radius:10px;padding:15px;font-family:'Archivo',sans-serif;font-weight:700;font-size:0.92rem;color:var(--ink);margin-top:16px;}
.view-all-bar:hover{border-color:var(--sage);}

/* PAGE HEADER (non-homepage pages) */
.page-header{padding-top:44px;padding-bottom:10px;}
.disclaimer{background:var(--bone-soft);border:1px solid var(--line);border-radius:14px;padding:22px 24px;font-family:'Lora',serif;font-size:0.95rem;color:#444840;line-height:1.7;}
.disclaimer strong{color:var(--ink);}
.page-header .crumb{font-family:'IBM Plex Mono',monospace;font-size:0.74rem;color:var(--sage);margin-bottom:10px;display:block;}
.page-header .crumb a{opacity:0.7;}
.page-header .crumb a:hover{opacity:1;text-decoration:underline;}
.page-header h1{font-size:1.8rem;font-weight:800;margin-bottom:8px;}
.page-header .lede{font-family:'Lora',serif;color:#4A4E47;max-width:540px;font-size:0.94rem;}

/* PRODUCT DETAIL */
.product-grid{display:grid;grid-template-columns:0.85fr 1fr;gap:56px;padding:24px 0 60px;align-items:start;}
.product-media{position:sticky;top:90px;}
.badge-row{display:flex;gap:8px;margin-bottom:18px;flex-wrap:wrap;}
.badge{font-family:'IBM Plex Mono',monospace;font-size:0.7rem;font-weight:600;letter-spacing:0.05em;text-transform:uppercase;padding:6px 12px;border-radius:20px;background:var(--bone-soft);border:1px solid var(--line);color:#4A4E47;}
.badge.dose{background:var(--ink);color:var(--white);border-color:var(--ink);}
.product-frame{background:var(--white);border:1px solid var(--line);border-radius:18px;padding:50px 30px;display:flex;justify-content:center;min-height:380px;align-items:center;}
.product-frame img{height:300px;width:auto;max-width:100%;object-fit:contain;filter:drop-shadow(0 20px 20px rgba(32,38,43,0.2));transition:opacity .15s;}
.product-name{font-size:1.9rem;font-weight:800;line-height:1.15;margin-bottom:6px;}
.product-variant{font-family:'Archivo',sans-serif;font-weight:600;color:var(--sage);font-size:1.05rem;margin-bottom:22px;}
.variant-select{width:100%;font-family:'Archivo',sans-serif;font-weight:600;font-size:0.92rem;padding:14px 16px;border:1px solid var(--line);border-radius:10px;background:var(--white);color:var(--ink);margin-bottom:18px;}
.tag-row{display:flex;gap:8px;margin-bottom:22px;flex-wrap:wrap;}
.tag-row .pill{padding:7px 14px;font-size:0.78rem;}
.product-copy{font-family:'Lora',serif;color:#444840;line-height:1.7;font-size:0.96rem;margin-bottom:26px;}
.price-row{display:flex;align-items:center;gap:20px;margin-bottom:14px;}
.price-row .price-big{font-family:'IBM Plex Mono',monospace;font-size:1.8rem;font-weight:600;}
.stock-note{font-family:'IBM Plex Mono',monospace;font-size:0.74rem;color:var(--sage);margin-bottom:22px;}
.verify-line{font-family:'Lora',serif;font-size:0.84rem;color:#6A6E64;border-top:1px solid var(--line);padding-top:18px;margin-top:6px;}
.verify-line a{color:var(--sage);font-weight:600;}
@media (max-width:860px){ .product-grid{grid-template-columns:1fr;} .product-media{position:static;} }

.expect-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:30px;}
.expect-card{border:1px solid var(--line);border-radius:14px;padding:22px;background:var(--white);}
.expect-card .icon{width:34px;height:34px;margin-bottom:14px;}
.expect-card h3{font-size:0.98rem;font-weight:700;margin-bottom:8px;}
.expect-card p{font-family:'Lora',serif;font-size:0.86rem;color:#565a52;line-height:1.5;}
@media (max-width:760px){ .expect-grid{grid-template-columns:1fr;} }

/* CATEGORY STRIP */
.cat-strip{padding-top:46px;padding-bottom:8px;}
.cat-strip h2{font-size:1.4rem;font-weight:700;margin-bottom:18px;}
.cat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;}
.cat-card{background:var(--white);border:1px solid var(--line);border-radius:14px;padding:20px;text-align:center;transition:border-color .15s,transform .15s;}
.cat-card:hover{border-color:var(--amber);transform:translateY(-2px);}
.cat-card .icon{margin:0 auto 10px;width:38px;height:38px;}
.cat-card .name{font-family:'Archivo',sans-serif;font-weight:700;font-size:0.96rem;}
.cat-card .tag{font-family:'IBM Plex Mono',monospace;font-size:0.68rem;color:var(--sage);margin-top:4px;display:block;}
@media (max-width:700px){ .cat-row{grid-template-columns:repeat(2,1fr);} }

/* NEED PILLS */
.needs{padding-top:36px;padding-bottom:10px;}
.needs h2{font-size:1.15rem;font-weight:700;margin-bottom:6px;}
.needs .lede{font-family:'Lora',serif;color:#4A4E47;max-width:520px;margin-bottom:18px;font-size:0.92rem;}
.pill-row{display:flex;gap:12px;flex-wrap:wrap;}
.pill{border:1px solid var(--line);background:var(--white);padding:10px 18px;border-radius:30px;font-family:'Archivo',sans-serif;font-weight:600;font-size:0.86rem;display:flex;align-items:center;gap:8px;transition:border-color .15s,background .15s;}
.pill:hover{border-color:var(--amber);background:var(--bone-soft);}
.pill .dot{width:7px;height:7px;border-radius:50%;}

/* CAROUSEL (homepage preview) */
.shelf{padding-top:42px;padding-bottom:64px;}
.shelf-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:26px;gap:20px;flex-wrap:wrap;}
.shelf-head h2{font-size:1.6rem;font-weight:800;max-width:520px;line-height:1.15;}
.shelf-head .lede{font-family:'Lora',serif;color:#4A4E47;max-width:380px;font-size:0.92rem;}
.carousel{display:flex;gap:20px;overflow-x:auto;padding:56px 4px 20px;scroll-snap-type:x mandatory;scrollbar-width:none;}
.carousel::-webkit-scrollbar{display:none;}
.shelf-nav{display:flex;gap:10px;}
.shelf-arrow{width:36px;height:36px;border-radius:50%;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:0.95rem;background:var(--white);}
.shelf-arrow:hover{border-color:var(--ink);}

/* FILTER TABS (shared: homepage tabs + shop page tabs) */
.shelf-tabs{display:flex;gap:8px;margin-bottom:22px;flex-wrap:wrap;}
.tab{font-family:'Archivo',sans-serif;font-weight:600;font-size:0.82rem;padding:8px 16px;border-radius:20px;border:1px solid var(--line);background:var(--white);}
.tab.active{background:var(--ink);color:var(--white);border-color:var(--ink);}

/* PRODUCT CARD (used in carousel + grid) */
.card{flex:0 0 230px;background:var(--white);border:1px solid var(--line);border-radius:16px;padding:0 16px 24px;position:relative;overflow:visible;}
.carousel .card{scroll-snap-align:start;}
.card-art{height:140px;margin:-48px 0 40px;display:flex;justify-content:center;filter:drop-shadow(0 16px 16px rgba(32,38,43,0.22));}
.card-art svg{height:170px;}
.card-art img{height:166px;width:auto;max-width:100%;object-fit:contain;}
.card-art img.tilt{transform:rotate(-9deg);}
.product-frame img.tilt{transform:rotate(-9deg);}
.card-tag{font-family:'IBM Plex Mono',monospace;font-size:0.65rem;color:var(--sage);font-weight:600;letter-spacing:0.05em;text-transform:uppercase;display:flex;align-items:center;gap:6px;margin-bottom:8px;}
.card-tag.neutral{color:#8a8367;}
.card-tag::before{content:"✓";font-size:0.74rem;}
.card-tag.neutral::before{content:"★";}
.card h3{font-size:1rem;font-weight:700;line-height:1.25;margin-bottom:4px;}
.card .blurb{font-family:'Lora',serif;font-size:0.82rem;color:#5C6058;margin-bottom:12px;line-height:1.42;}
.card-foot{display:flex;justify-content:space-between;align-items:center;margin-top:14px;}
.price{font-family:'IBM Plex Mono',monospace;font-weight:600;font-size:0.96rem;}
.add-btn{width:34px;height:34px;border-radius:50%;background:var(--ink);color:var(--white);font-size:1.15rem;line-height:1;display:flex;align-items:center;justify-content:center;transition:background .15s;}
.add-btn:hover{background:var(--amber-deep);}

/* CATALOG GRID (shop page) */
.shop-controls{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:16px;}
.sort-select{font-family:'Archivo',sans-serif;font-size:0.84rem;font-weight:600;padding:9px 14px;border-radius:20px;border:1px solid var(--line);background:var(--white);color:var(--ink);}
.catalog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));column-gap:22px;row-gap:60px;padding:56px 4px 70px;}
.catalog-grid .card{flex:initial;}
.empty-state{font-family:'Lora',serif;color:#7A7E72;font-style:italic;padding:40px 0;text-align:center;display:none;}

/* SHELF POLICY (replaces lab/COA section) */
.policy{background:var(--white);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:64px 0;}
.policy h2{font-size:1.7rem;font-weight:800;max-width:560px;line-height:1.18;margin-bottom:12px;}
.policy .lede{font-family:'Lora',serif;color:#444840;line-height:1.6;max-width:560px;margin-bottom:36px;}
.policy-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.policy-card{border:1px solid var(--line);border-radius:14px;padding:24px;}
.policy-card .mark{font-family:'IBM Plex Mono',monospace;font-size:0.72rem;color:var(--sage);margin-bottom:10px;}
.policy-card h3{font-size:0.98rem;font-weight:700;margin-bottom:8px;line-height:1.3;}
.policy-card p{font-family:'Lora',serif;font-size:0.86rem;color:#565a52;line-height:1.5;}
@media (max-width:820px){ .policy-grid{grid-template-columns:1fr;} }

/* PROOF */
.proof{background:var(--ink);color:var(--white);padding-top:64px;padding-bottom:64px;}
.proof-top{display:flex;align-items:center;gap:28px;flex-wrap:wrap;margin-bottom:34px;}
.proof-score{font-family:'IBM Plex Mono',monospace;font-size:3rem;font-weight:600;line-height:1;}
.proof-stars{color:var(--amber);font-family:'IBM Plex Mono',monospace;font-size:1.05rem;margin-top:6px;}
.proof-count{font-family:'Archivo',sans-serif;font-size:0.92rem;color:rgba(251,249,244,0.7);margin-top:4px;}
.proof-link{margin-left:auto;font-family:'Archivo',sans-serif;font-weight:600;font-size:0.88rem;border-bottom:1px solid rgba(251,249,244,0.4);padding-bottom:2px;}
.proof-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.proof-card{background:rgba(255,255,255,0.06);border:1px solid rgba(251,249,244,0.18);border-radius:14px;padding:22px;font-family:'Lora',serif;color:rgba(251,249,244,0.96);font-size:0.96rem;line-height:1.65;}
.proof-card .quote{font-style:normal;}
.proof-card .reviewer{display:block;margin-top:14px;font-family:'Archivo',sans-serif;font-style:normal;font-weight:700;font-size:0.82rem;color:var(--white);}
.proof-card .reviewer .meta{font-family:'IBM Plex Mono',monospace;font-weight:500;font-size:0.68rem;color:rgba(251,249,244,0.5);display:block;margin-top:2px;letter-spacing:0.03em;}
@media (max-width:820px){ .proof-grid{grid-template-columns:1fr;} .proof-link{margin-left:0;} }

/* WHY TRUST */
.why{padding-top:68px;padding-bottom:68px;}
.why h2{font-size:1.7rem;font-weight:800;max-width:560px;margin-bottom:32px;}
.why-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.why-card{background:var(--white);border:1px solid var(--line);border-radius:14px;padding:24px;}
.why-card .idx{font-family:'IBM Plex Mono',monospace;font-size:0.72rem;color:var(--sage);margin-bottom:10px;}
.why-card h3{font-size:0.98rem;font-weight:700;line-height:1.3;margin-bottom:8px;}
.why-card p{font-family:'Lora',serif;font-size:0.86rem;color:#565a52;line-height:1.5;}
@media (max-width:820px){ .why-grid{grid-template-columns:1fr;} }

/* LOCATION / FOOTER */
.local{background:var(--bone-soft);border-top:1px solid var(--line);padding-top:60px;padding-bottom:60px;}
.local-inner{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start;}
.local h2{font-size:1.3rem;font-weight:800;margin-bottom:14px;}
.local p{font-family:'Lora',serif;color:#43473F;line-height:1.6;margin-bottom:6px;}
.local .flag{font-family:'IBM Plex Mono',monospace;font-size:0.72rem;color:var(--amber-deep);margin-top:10px;}
.find-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:26px;}
.find-actions .btn-primary{padding:13px 22px;font-size:0.9rem;}
.id-note{font-family:'IBM Plex Mono',monospace;font-size:0.74rem;color:#6A6E64;margin-top:18px;line-height:1.5;}
.map-block{aspect-ratio:16/10;background:var(--ink);border-radius:16px;overflow:hidden;}
.map-block iframe{width:100%;height:100%;border:0;display:block;}
@media (max-width:760px){ .local-inner{grid-template-columns:1fr;} }

footer{background:var(--ink);color:rgba(251,249,244,0.8);padding:48px 0 30px;}
.foot-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:36px;margin-bottom:34px;}
.foot-grid h4{font-family:'Archivo',sans-serif;font-size:0.8rem;text-transform:uppercase;letter-spacing:0.07em;color:rgba(251,249,244,0.5);margin-bottom:12px;}
.foot-grid p,.foot-grid a{font-family:'Lora',serif;font-size:0.9rem;line-height:1.65;display:block;color:rgba(251,249,244,0.85);}
.foot-bottom{border-top:1px solid var(--line-dark);padding-top:20px;display:flex;justify-content:space-between;font-family:'IBM Plex Mono',monospace;font-size:0.72rem;color:rgba(251,249,244,0.45);flex-wrap:wrap;gap:10px;}
@media (max-width:760px){ .foot-grid{grid-template-columns:1fr;} }

/* CART PANEL */
.cart-overlay{position:fixed;inset:0;background:rgba(32,38,43,0.4);opacity:0;pointer-events:none;transition:opacity .2s;z-index:90;}
.cart-overlay.open{opacity:1;pointer-events:auto;}
.cart-panel{position:fixed;top:0;right:-380px;width:360px;max-width:92vw;height:100%;background:var(--white);box-shadow:-12px 0 30px rgba(32,38,43,0.18);z-index:100;transition:right .25s ease;display:flex;flex-direction:column;}
.cart-panel.open{right:0;}
.cart-panel-head{display:flex;justify-content:space-between;align-items:center;padding:20px 22px;border-bottom:1px solid var(--line);}
.cart-panel-head h3{font-size:1.1rem;font-weight:800;}
.cart-panel-close{font-size:1.5rem;line-height:1;background:none;border:none;cursor:pointer;color:var(--ink);padding:0;}
.cart-items{flex:1;overflow-y:auto;padding:10px 22px;}
.cart-empty{font-family:'Lora',serif;color:#7A7E72;font-style:italic;text-align:center;padding:50px 0;}
.cart-item{display:flex;gap:12px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line);}
.cart-item img{width:48px;height:48px;object-fit:contain;flex:none;}
.cart-item-noimg{width:48px;height:48px;flex:none;background:var(--bone-soft);border-radius:8px;}
.cart-item-info{flex:1;min-width:0;}
.cart-item-info .name{font-family:'Archivo',sans-serif;font-weight:700;font-size:0.84rem;line-height:1.3;}
.cart-item-info .meta{font-family:'IBM Plex Mono',monospace;font-size:0.74rem;color:#7A7E72;margin-top:4px;}
.cart-item-remove{background:none;border:none;color:#B5564B;font-family:'IBM Plex Mono',monospace;font-size:0.68rem;cursor:pointer;text-decoration:underline;flex:none;}
.cart-panel-foot{padding:20px 22px;border-top:1px solid var(--line);}
.cart-subtotal{display:flex;justify-content:space-between;font-family:'Archivo',sans-serif;font-weight:700;margin-bottom:14px;}
.cart-subtotal .amt{font-family:'IBM Plex Mono',monospace;}
.cart-checkout-btn{width:100%;background:var(--sage);color:var(--white);font-family:'Archivo',sans-serif;font-weight:700;padding:13px;border-radius:8px;border:none;cursor:pointer;}
.cart-checkout-btn:hover{background:#4F9362;}
.cart-checkout-note{display:none;font-family:'IBM Plex Mono',monospace;font-size:0.68rem;color:#7A7E72;text-align:center;margin-top:10px;line-height:1.5;}
.cart-checkout-note.show{display:block;}
.cart-toast{position:fixed;bottom:24px;right:24px;background:var(--ink);color:var(--white);padding:12px 20px;border-radius:30px;font-family:'Archivo',sans-serif;font-weight:600;font-size:0.86rem;opacity:0;transform:translateY(10px);transition:opacity .2s,transform .2s;z-index:110;pointer-events:none;}
.cart-toast.show{opacity:1;transform:translateY(0);}
