/* HushAmour storefront. Every colour comes from the theme variables printed in <head>. */
@font-face{font-family:Inter;src:url(/assets/fonts/inter-latin.woff2) format("woff2");font-weight:400 700;font-display:swap}
@font-face{font-family:Fraunces;src:url(/assets/fonts/fraunces-latin.woff2) format("woff2");font-weight:400 700;font-display:swap}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.6 Inter,system-ui,-apple-system,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
a:hover:not(.ha-sup):not(.btn):not(.btn-gold):not(.btn-ghost){color:var(--link-hover,var(--brand))}
h1,h2,h3,h4{font-family:Fraunces,Georgia,serif;font-weight:600;line-height:1.15;margin:0 0 .5em;letter-spacing:-.01em;color:var(--ink)}
h1{font-size:clamp(2rem,4.2vw,3.4rem)}h2{font-size:clamp(1.5rem,2.6vw,2.2rem)}h3{font-size:1.15rem}
p{margin:0 0 1em}
.wrap{max-width:1280px;margin:0 auto;padding:0 20px}
.muted{color:var(--muted)}
.skip{position:absolute;left:-9999px}.skip:focus{left:12px;top:12px;z-index:99;background:var(--surface);padding:8px 12px;border-radius:8px}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;background:var(--brand);color:var(--brand-ink);border:1px solid var(--brand);border-radius:999px;padding:.8em 1.5em;font:600 .95rem Inter,sans-serif;cursor:pointer;transition:transform .15s,background .2s,box-shadow .2s;text-align:center}
.btn:hover{color:var(--brand-ink);transform:translateY(-1px);box-shadow:0 8px 22px -10px var(--brand)}
.btn-gold{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn-gold:hover{color:var(--accent-ink)}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--line)}.btn-ghost:hover{color:var(--ink);border-color:var(--ink)}
.btn-sm{padding:.55em 1.1em;font-size:.85rem}.btn-block{width:100%}
.btn[disabled]{opacity:.5;pointer-events:none}
.topbar{background:var(--brand);color:var(--brand-ink);font-size:.8rem}
.topbar .wrap{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:36px;flex-wrap:wrap}
.tb-right{display:flex;gap:18px;align-items:center}.topbar a:hover{color:var(--accent)}
.store-sw{border:1px solid color-mix(in srgb,var(--brand-ink) 30%,transparent);border-radius:999px;padding:2px 10px}.store-sw small{opacity:.7}
.hdr{position:sticky;top:0;z-index:40;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:saturate(1.4) blur(14px);border-bottom:1px solid var(--line)}
.hdr-in{display:flex;align-items:center;gap:16px;min-height:64px;flex-wrap:nowrap}
.logo{display:flex;align-items:center;flex:1 1 auto;min-width:0;max-width:100%;justify-content:flex-start}.logo-svg{height:36px;width:auto;max-width:100%;display:block}.logo-img{max-height:40px;width:auto;max-width:min(180px,46vw);object-fit:contain}
.mainnav{display:flex;flex-wrap:nowrap;align-items:center;gap:0;flex:1 1 auto;min-width:0}
.mn-item{position:relative;flex:0 0 auto}
.mn-item>a{display:block;padding:8px 9px;font-weight:500;font-size:.86rem;border-radius:8px;white-space:nowrap;line-height:1.2}
.mn-item>a.hot{color:var(--accent)}
.mega{position:absolute;left:0;top:100%;min-width:520px;display:grid;grid-template-columns:1fr 1fr;gap:4px;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:14px;box-shadow:0 30px 60px -30px rgba(0,0,0,.35);opacity:0;visibility:hidden;transform:translateY(6px);transition:.18s}
.mega{z-index:60;pointer-events:none}
.mn-item:hover .mega,.mn-item:has(:focus-visible) .mega{pointer-events:auto;opacity:1;visibility:visible;transform:none}
.mega a{display:block;padding:10px 12px;border-radius:10px}.mega a:hover{background:var(--surface2);color:var(--ink)}
.mega b{display:block;font-weight:600;font-size:.92rem}.mega small{color:var(--muted);font-size:.78rem}
.hsearch{flex:0 1 200px;min-width:140px;max-width:220px}.hsearch input{width:100%;min-width:0;border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:.55em .9em;font:inherit;font-size:.86rem;color:var(--ink)}
.hdr-actions{display:flex;align-items:center;gap:2px;flex:0 0 auto;margin-left:auto}
.hicon{position:relative;display:grid;place-items:center;width:42px;height:42px;border-radius:50%;flex:0 0 auto}
.hicon:hover{background:var(--surface2)}
.hicon svg,.trustbar svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.cc{position:absolute;top:2px;right:0;background:var(--accent);color:var(--accent-ink);font-size:.7rem;min-width:18px;height:18px;border-radius:9px;display:grid;place-items:center;padding:0 4px}
.cc:empty{display:none}
.burger{display:none;background:none;border:0;width:40px;height:40px;cursor:pointer;padding:9px}
.burger span{display:block;width:18px;height:2px;background:var(--ink);margin:5px 0;border-radius:2px}
.drawer,.minicart{position:fixed;top:0;bottom:0;z-index:60;width:min(420px,92vw);background:var(--surface);transition:transform .25s ease;overflow:auto;box-shadow:0 0 60px rgba(0,0,0,.25)}
.drawer{left:0;transform:translateX(-105%)}.minicart{right:0;transform:translateX(105%)}
.drawer.open,.minicart.open{transform:none}
.drawer-in,.mc-in{padding:24px}
.drawer a,.drawer summary{display:block;padding:10px 0;border-bottom:1px solid var(--line);font-weight:500;cursor:pointer}
.drawer details a{padding-left:14px;font-weight:400}
.drawer input{width:100%;padding:.7em 1em;border:1px solid var(--line);border-radius:12px;margin:24px 0 8px;font:inherit}
.x{position:absolute;right:14px;top:10px;background:none;border:0;font-size:1.8rem;cursor:pointer;color:var(--ink)}
.scrim{position:fixed;inset:0;background:rgba(10,6,12,.45);z-index:55;opacity:0;visibility:hidden;transition:.2s}
.scrim.on{opacity:1;visibility:visible}
/* Quick Exit removed in patch14 */
.crumbs{font-size:.82rem;color:var(--muted);padding-top:18px}.crumbs span{margin:0 4px}
.flash{margin:16px 0;padding:12px 16px;border-radius:12px;background:var(--surface2);border:1px solid var(--line)}
.flash-err,.flash-error{border-color:var(--danger);color:var(--danger)}.flash-success{border-color:var(--success)}
/* hero */
.hero{background:radial-gradient(1200px 500px at 85% -10%,color-mix(in srgb,var(--accent) 35%,transparent),transparent 60%),linear-gradient(135deg,var(--hero1),var(--hero2));color:var(--hero-ink);overflow:hidden}
.hero-in{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center;padding:80px 20px 90px}
.hero .eyebrow{display:inline-block;letter-spacing:.18em;text-transform:uppercase;font-size:.75rem;color:var(--accent);margin-bottom:16px}
.hero h1{color:var(--hero-ink)}.hero h1 em{color:var(--accent);font-style:italic;font-weight:500}
.hero p{font-size:1.1rem;opacity:.85;max-width:540px}
.hero .ctas{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.hero .btn-ghost{color:var(--hero-ink);border-color:color-mix(in srgb,var(--hero-ink) 35%,transparent)}
.hero-art{position:relative;aspect-ratio:1;max-width:480px;justify-self:center;width:100%}
.hero-art .orb{position:absolute;inset:8%;border-radius:50%;background:radial-gradient(circle at 30% 30%,color-mix(in srgb,var(--accent) 70%,#fff),var(--accent) 40%,transparent 72%);filter:blur(2px);opacity:.55;animation:float 9s ease-in-out infinite}
.hero-art > img{position:relative;border-radius:28px;box-shadow:0 40px 80px -30px rgba(0,0,0,.6);aspect-ratio:1;object-fit:contain;width:78%;margin:11%;background:#fff}
@keyframes float{50%{transform:translateY(-14px) scale(1.03)}}
.hero-stats{display:flex;gap:28px;margin-top:34px;font-size:.85rem;opacity:.85}.hero-stats b{display:block;font-size:1.3rem;font-family:Fraunces,serif;color:var(--accent)}
section.blk{padding:70px 0}
.blk-h{display:flex;justify-content:space-between;align-items:end;gap:16px;margin-bottom:28px}
.blk-h p{color:var(--muted);margin:0}
.catgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px}
.cat{position:relative;border-radius:20px;overflow:hidden;background:var(--surface2);aspect-ratio:4/5;display:flex;align-items:end}
.cat img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s}
.cat:hover img{transform:scale(1.05)}
.cat span{position:relative;width:100%;padding:16px;background:linear-gradient(transparent,rgba(10,6,12,.75));color:#fff;font-family:Fraunces,serif;font-size:1.15rem}
.cat span small{display:block;font:400 .78rem Inter,sans-serif;opacity:.85}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:22px}
.card{background:var(--surface);border:1px solid var(--line);border-radius:20px;overflow:hidden;display:flex;flex-direction:column;transition:box-shadow .2s,transform .2s}
.card:hover{box-shadow:0 24px 50px -30px rgba(0,0,0,.35);transform:translateY(-2px)}
.card-img{position:relative;background:#fff;aspect-ratio:1}
.card-img img{width:100%;height:100%;object-fit:contain;padding:14px}
.badge{position:absolute;left:12px;top:12px;background:var(--accent);color:var(--accent-ink);font-size:.72rem;font-weight:700;padding:3px 10px;border-radius:999px;text-transform:uppercase;letter-spacing:.05em}
.card-b{padding:14px 16px 18px;display:flex;flex-direction:column;gap:4px;flex:1}
.card .brand{font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}
.card h3{font:600 .98rem/1.35 Inter,sans-serif;margin:0}
.card .add{margin-top:auto;align-self:flex-start}
.price{display:flex;gap:8px;align-items:baseline;margin:4px 0 10px}.price b{font-size:1.08rem}.price s{color:var(--muted);font-size:.88rem}
.stars{color:var(--accent);font-size:.85rem}.stars small{color:var(--muted)}
.band{background:var(--surface2)}
.usp{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.usp div{background:var(--surface);border-radius:20px;padding:28px;border:1px solid var(--line)}
.usp b{font-family:Fraunces,serif;font-size:1.2rem;display:block;margin-bottom:6px}
.trustbar{border-top:1px solid var(--line);background:var(--surface)}
.tb-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;padding:26px 20px}
.tb-grid div{display:grid;grid-template-columns:auto 1fr;column-gap:12px;font-size:.88rem}
.tb-grid svg{grid-row:span 2;color:var(--accent);width:28px;height:28px}.tb-grid span{color:var(--muted);font-size:.8rem}
.ftr{background:var(--footer);color:var(--footer-ink);padding:60px 0 24px;font-size:.9rem}
.ftr-grid{display:grid;grid-template-columns:1.6fr repeat(4,1fr);gap:28px}
.ftr h4{font:600 .8rem Inter,sans-serif;text-transform:uppercase;letter-spacing:.14em;color:var(--accent)}
.ftr a{display:block;padding:3px 0;opacity:.85}.ftr a:hover{opacity:1;color:var(--accent)}
.ftr-brand p{opacity:.8;margin:14px 0}
.news label{display:block;font-weight:600;margin-bottom:8px}
.news div{display:flex;background:color-mix(in srgb,var(--footer-ink) 10%,transparent);border-radius:999px;padding:4px}
.news input{flex:1;background:transparent;border:0;color:inherit;padding:.6em 1em;font:inherit;min-width:0}
.news button{background:var(--accent);color:var(--accent-ink);border:0;border-radius:999px;padding:.6em 1.2em;font-weight:600;cursor:pointer}
.ftr-bottom{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;border-top:1px solid color-mix(in srgb,var(--footer-ink) 15%,transparent);margin-top:40px;padding-top:20px;opacity:.75;font-size:.8rem}
.ftr-bottom a{display:inline}
/* listing */
.cat-hero{padding:34px 0 10px}.cat-hero p{max-width:760px;color:var(--muted);font-size:1.05rem}
.subcats{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 26px}
.chip{border:1px solid var(--line);border-radius:999px;padding:.4em 1em;font-size:.85rem;background:var(--surface)}
.chip.on,.chip:hover{background:var(--brand);color:var(--brand-ink);border-color:var(--brand)}
.toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;gap:12px;flex-wrap:wrap}
select,input[type=text],input[type=email],input[type=tel],input[type=search],input[type=number],textarea{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:.7em .9em;width:100%}
.toolbar select{width:auto}
.prose{max-width:780px}.prose h2{margin-top:1.4em}.prose a{color:var(--link,var(--brand));text-decoration:underline}.prose a:hover:not(.ha-sup):not(.btn):not(.btn-gold):not(.btn-ghost){color:var(--link-hover,var(--brand))}
.prose ul{padding-left:1.2em}.prose table{border-collapse:collapse;width:100%}.prose td,.prose th{border:1px solid var(--line);padding:8px;text-align:left}
.faqs details{border-bottom:1px solid var(--line);padding:14px 0}
.faqs summary{cursor:pointer;font-weight:600;list-style:none;display:flex;justify-content:space-between}
.faqs summary::after{content:"+";color:var(--accent);font-size:1.3rem}.faqs details[open] summary::after{content:"–"}
.faqs details div{padding-top:8px;color:var(--muted)}
/* product */
.pdp{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;padding:20px 0 50px}
.gallery{position:sticky;top:96px;align-self:start}
.g-main{background:#fff;border-radius:24px;border:1px solid var(--line);aspect-ratio:1;overflow:hidden}
.g-main img{width:100%;height:100%;object-fit:contain}
.g-thumbs{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin-top:12px}
.g-thumbs button{border:1px solid var(--line);background:#fff;border-radius:12px;padding:0;aspect-ratio:1;overflow:hidden;cursor:pointer}
.g-thumbs button.on{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}
.g-thumbs img{width:100%;height:100%;object-fit:cover}
.pdp .brand{text-transform:uppercase;letter-spacing:.14em;font-size:.78rem;color:var(--muted)}
.pdp h1{font-size:clamp(1.7rem,3vw,2.5rem);margin:.2em 0 .3em}
.pdp .price b{font-size:1.7rem;font-family:Fraunces,serif}
.pdp .lead{color:var(--muted);font-size:1.03rem}
.buybox{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:20px;margin:18px 0}
.qty{display:inline-flex;border:1px solid var(--line);border-radius:999px;overflow:hidden}
.qty button{background:none;border:0;width:40px;font-size:1.1rem;cursor:pointer;color:var(--ink)}.qty input{width:44px;text-align:center;border:0;border-radius:0;padding:.55em 0}
.buyrow{display:flex;gap:12px;align-items:center}.buyrow .btn{flex:1}
.ticks{list-style:none;padding:0;margin:14px 0 0;display:grid;gap:6px;font-size:.88rem}
.ticks li::before{content:"✓";color:var(--success);font-weight:700;margin-right:8px}
.stockline{font-size:.85rem;color:var(--success);margin:10px 0 0}.stockline.low{color:var(--danger)}
.tabs{border-top:1px solid var(--line);margin-top:20px}
.tabs details{border-bottom:1px solid var(--line)}.tabs summary{padding:16px 0;font-weight:600;cursor:pointer}
.tabs details>div{padding:0 0 18px;color:var(--ink)}
.drugfacts{border:2px solid var(--ink);padding:14px;font-size:.88rem;background:var(--surface)}
.drugfacts h4{font-family:Inter,sans-serif;font-weight:800;border-bottom:3px solid var(--ink);margin:0 0 8px}
.fbt{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:20px;margin:24px 0}
.fbt-items{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.fbt-items label{display:flex;gap:8px;align-items:center;font-size:.88rem;background:var(--bg);padding:8px;border-radius:14px}
.fbt-items img{width:56px;height:56px;object-fit:contain;background:#fff;border-radius:10px}
.notice{border-left:3px solid var(--accent);background:var(--surface2);padding:12px 16px;border-radius:10px;font-size:.88rem;margin:14px 0}
.reviews .rv{border-bottom:1px solid var(--line);padding:16px 0}.rv .vb{color:var(--success);font-size:.78rem;font-weight:600}
/* cart & checkout */
.shipbar{background:var(--surface2);border-radius:14px;padding:12px 14px;font-size:.88rem;margin:0 0 16px}
.shipbar .bar{height:8px;background:var(--surface);border-radius:4px;margin-top:8px;overflow:hidden}
.shipbar .bar i{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--brand));border-radius:4px;transition:width .4s}
.cartgrid{display:grid;grid-template-columns:1.4fr .9fr;gap:36px;padding:24px 0 60px}
.line{display:grid;grid-template-columns:84px 1fr auto;gap:14px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}
.line img{width:84px;height:84px;object-fit:contain;background:#fff;border-radius:12px;border:1px solid var(--line)}
.line .nm{font-weight:600;font-size:.95rem}.line .rm{background:none;border:0;color:var(--muted);font-size:.8rem;cursor:pointer;text-decoration:underline;padding:0}
.summary{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:22px;position:sticky;top:96px;align-self:start}
.summary .row{display:flex;justify-content:space-between;padding:6px 0;font-size:.93rem}
.summary .row.disc{color:var(--success)}.summary .row.tot{border-top:1px solid var(--line);margin-top:8px;padding-top:12px;font-size:1.15rem;font-weight:700}
.co-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:36px;padding:24px 0 60px}
fieldset{border:1px solid var(--line);border-radius:20px;padding:20px;margin:0 0 18px;background:var(--surface)}
legend{font-family:Fraunces,serif;font-size:1.15rem;padding:0 8px}
.f2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.f3{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:12px}
.fld{margin-bottom:12px}.fld label{display:block;font-size:.8rem;font-weight:600;margin-bottom:4px}
.fld .err{color:var(--danger);font-size:.8rem}
.check{display:flex;gap:10px;align-items:flex-start;font-size:.9rem;margin:8px 0}.check input{margin-top:5px}
.coins{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.coins label{border:1px solid var(--line);border-radius:14px;padding:10px;cursor:pointer;font-size:.82rem;display:flex;gap:8px;align-items:center;background:var(--bg)}
.coins input{accent-color:var(--brand)}.coins label:has(input:checked){border-color:var(--brand);box-shadow:0 0 0 2px var(--brand) inset}
.xsell{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:12px}
.xsell .mini{border:1px solid var(--line);border-radius:14px;padding:10px;font-size:.8rem;background:var(--bg);text-align:center}
.xsell .mini img{width:64px;height:64px;object-fit:contain;margin:0 auto 6px;background:#fff;border-radius:8px}
/* pay */
.paybox{max-width:860px;margin:30px auto 60px;display:grid;grid-template-columns:260px 1fr;gap:30px;background:var(--surface);border:1px solid var(--line);border-radius:24px;padding:28px}
.qr{background:#fff;border-radius:16px;padding:14px;border:1px solid var(--line)}.qr canvas,.qr img{width:100%;height:auto}
.addr{font-family:ui-monospace,Menlo,monospace;word-break:break-all;background:var(--bg);border:1px dashed var(--line);border-radius:12px;padding:10px 12px;font-size:.88rem}
.copy{margin-left:6px}
.amount{font-size:1.6rem;font-weight:700;font-family:ui-monospace,Menlo,monospace}
.timer{font-weight:700;color:var(--danger)}
.steps{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}
.steps span{font-size:.78rem;padding:4px 10px;border-radius:999px;background:var(--bg);border:1px solid var(--line);color:var(--muted)}
.steps span.on{background:var(--brand);color:var(--brand-ink);border-color:var(--brand)}
.verify{max-width:620px;margin:40px auto;background:var(--surface);border:1px solid var(--line);border-radius:24px;padding:32px}
.result{border-radius:16px;padding:18px;margin-top:18px;font-weight:600}
.result.ok{background:color-mix(in srgb,var(--success) 15%,transparent);color:var(--success)}
.result.warn{background:color-mix(in srgb,var(--accent) 20%,transparent)}
.result.bad{background:color-mix(in srgb,var(--danger) 12%,transparent);color:var(--danger)}
.offercards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px}
.offer{background:var(--surface);border:1px solid var(--line);border-radius:22px;padding:24px;position:relative;overflow:hidden}
.offer::before{content:"";position:absolute;right:-40px;top:-40px;width:120px;height:120px;border-radius:50%;background:var(--accent);opacity:.18}
.offer .tag{font-size:.72rem;text-transform:uppercase;letter-spacing:.14em;color:var(--accent);font-weight:700}
.agegate{position:fixed;inset:0;z-index:100;background:color-mix(in srgb,var(--hero2) 92%,transparent);backdrop-filter:blur(10px);display:grid;place-items:center;padding:20px}
.agegate[hidden]{display:none}
.ag-card{background:var(--surface);border-radius:26px;padding:36px;max-width:440px;text-align:center;box-shadow:0 40px 80px -20px rgba(0,0,0,.5)}
.ag-logo{display:flex;justify-content:center;margin-bottom:18px}.ag-btns{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:18px}
.mc-line{display:grid;grid-template-columns:56px 1fr auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line);font-size:.86rem}
.mc-line img{width:56px;height:56px;object-fit:contain;background:#fff;border-radius:10px}
.brands{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}
.brands a{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:18px;font-weight:600;text-align:center}
.posts{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:22px}
.post{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:24px}
.post .tag{color:var(--accent);font-size:.75rem;text-transform:uppercase;letter-spacing:.12em}
.pager{display:flex;gap:6px;justify-content:center;margin:30px 0}
.pager a,.pager span{border:1px solid var(--line);border-radius:10px;padding:6px 12px}.pager span{background:var(--brand);color:var(--brand-ink)}
.status-pill{display:inline-block;padding:3px 12px;border-radius:999px;background:var(--surface2);font-size:.82rem;font-weight:600}
/* Desktop nav: keep labels on one line; tighten before drawer breakpoint */
@media (max-width:1360px) and (min-width:1181px){
  .hdr-in{gap:10px}
  .mn-item>a{padding:8px 7px;font-size:.82rem}
  .hsearch{flex-basis:160px;max-width:180px}
  .logo-svg{height:32px}
}
@media (max-width:1180px){
  .mainnav{display:none!important}
  .hsearch{display:none!important}
  .hdr-in{
    display:grid!important;
    grid-template-columns:40px minmax(0,1fr) auto;
    grid-template-areas:"burger logo actions";
    align-items:center;
    gap:8px;
    min-height:56px;
    padding-top:6px;padding-bottom:6px;
    flex-wrap:nowrap!important;
  }
  .burger{display:flex!important;flex-direction:column;justify-content:center;align-items:center;grid-area:burger;width:40px;height:40px;padding:9px;box-sizing:border-box}
  .burger span{width:18px;flex:0 0 auto;margin:2.5px 0}
  .logo{grid-area:logo;display:flex;justify-content:center;align-items:center;min-width:0;flex:unset;max-width:100%}
  .logo-svg{height:30px;width:auto;max-width:min(160px,48vw)}
  .logo-img{max-height:30px;max-width:min(160px,48vw)}
  .hdr-actions{grid-area:actions;display:flex;align-items:center;gap:0;margin-left:0}
  .hicon{width:40px;height:40px}
  .ftr-grid{grid-template-columns:1fr 1fr}
  .ftr-brand{grid-column:1/-1}
}
@media (max-width:860px){.hero-in,.pdp,.cartgrid,.co-grid,.paybox{grid-template-columns:1fr}.hero-in{padding:50px 20px}.gallery,.summary{position:static}.usp,.tb-grid{grid-template-columns:1fr 1fr}.grid{grid-template-columns:repeat(2,1fr);gap:12px}.tb-right a:not(.store-sw){display:none}.coins,.xsell{grid-template-columns:1fr 1fr}.f3{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.usp,.tb-grid{grid-template-columns:1fr}.f2,.f3{grid-template-columns:1fr}.card-b{padding:10px}.card h3{font-size:.88rem}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
/* compat for account/auth pages carried over from the base platform */
.legacy{padding-bottom:40px}.rx-wrap{max-width:1180px;margin:0 auto;padding:0 20px}.rx-narrow{max-width:560px}.rx-center{text-align:center}
/* Auth shell (login/register) — layout was only in site.css; shop_head loads shop.css only */
.rx-auth{padding:clamp(24px,5vw,56px) 0 clamp(8px,3vw,24px)}
.rx-wrap.rx-auth-grid,.rx-auth-grid{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:clamp(20px,3vw,36px);align-items:stretch;max-width:min(1080px,100%);margin:0 auto;width:100%}
.rx-auth-panel{position:relative;overflow:hidden;isolation:isolate;border-radius:22px;padding:clamp(28px,4vw,44px);background:linear-gradient(160deg,var(--brand),var(--hero2));color:var(--brand-ink);border:1px solid color-mix(in srgb,var(--brand-ink) 12%,transparent);display:flex;flex-direction:column;gap:18px;min-height:100%}
.rx-auth-glow{position:absolute;inset:-30% -20% auto auto;width:120%;height:90%;z-index:-1;background:radial-gradient(50% 55% at 70% 30%,color-mix(in srgb,var(--accent) 55%,transparent),transparent 70%),radial-gradient(40% 45% at 25% 70%,color-mix(in srgb,var(--accent) 28%,transparent),transparent 70%);filter:blur(10px);opacity:.85;pointer-events:none}
.rx-auth-brand{display:inline-flex;align-items:center;gap:10px;color:var(--brand-ink);text-decoration:none;font-family:Fraunces,Georgia,serif;font-weight:700;font-size:1.25rem;letter-spacing:-.02em}
.rx-auth-brand img{width:40px;height:40px;border-radius:12px;flex:none}
.rx-auth-ph{margin:18px 0 0;font-family:Fraunces,Georgia,serif;font-weight:700;font-size:clamp(1.4rem,3vw,2rem);line-height:1.15;letter-spacing:-.02em;color:var(--brand-ink)}
.rx-auth-pl{margin:0;color:color-mix(in srgb,var(--brand-ink) 78%,transparent);font-size:.95rem;line-height:1.55;max-width:42ch}
.rx-auth-points{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:14px}
.rx-auth-points li{display:flex;gap:12px;align-items:flex-start;font-size:.9rem;line-height:1.5;color:color-mix(in srgb,var(--brand-ink) 78%,transparent)}
.rx-auth-points li b{color:var(--brand-ink);font-weight:700}
.rx-auth-pi{flex:none;display:grid;place-items:center;width:36px;height:36px;border-radius:11px;background:color-mix(in srgb,var(--brand-ink) 8%,transparent);border:1px solid color-mix(in srgb,var(--brand-ink) 14%,transparent);color:var(--accent)}
.rx-auth-pi svg{width:18px;height:18px;display:block;flex:none}
.rx-kicker{margin:0 0 6px;font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
.rx-coins,.rx-auth-coins{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:auto;padding-top:10px}
.rx-coin{display:inline-flex;align-items:center;gap:6px;padding:6px 11px;border-radius:999px;background:var(--surface2);border:1px solid var(--line);font-size:.8rem;font-weight:700;color:var(--ink);line-height:1;white-space:nowrap}
.rx-coin img{width:18px;height:18px;flex:none;display:block}
.rx-auth-panel .rx-coin{background:color-mix(in srgb,var(--brand-ink) 8%,transparent);border-color:color-mix(in srgb,var(--brand-ink) 14%,transparent);color:var(--brand-ink)}

.rx-auth-main{display:flex;flex-direction:column;justify-content:center;min-width:0}
.rx-auth-card{background:var(--surface);border:1px solid var(--line);border-radius:22px;padding:clamp(24px,4vw,40px);box-shadow:0 20px 50px -28px rgba(0,0,0,.35)}
.rx-auth-title{margin:0 0 8px;font-family:Fraunces,Georgia,serif;font-weight:700;font-size:clamp(1.4rem,3.2vw,2rem);line-height:1.15;letter-spacing:-.02em;color:var(--ink)}
.rx-auth-sub{margin:0 0 20px;color:var(--muted);font-size:.95rem;line-height:1.5}
.rx-auth-form{gap:6px;max-width:none;margin:0}
.rx-pw{position:relative}
.rx-pw input{padding-right:92px!important}
.rx-pw-btn{position:absolute;top:50%;right:6px;transform:translateY(-50%);display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 10px;border:0;border-radius:9px;background:transparent;color:var(--muted);font:600 13px Inter,system-ui,sans-serif;cursor:pointer}
.rx-pw-btn:hover,.rx-pw-btn:focus-visible{background:var(--surface2);color:var(--ink);outline:none}
@media (max-width:900px){
  .rx-wrap.rx-auth-grid,.rx-auth-grid{grid-template-columns:1fr}
  .rx-auth-main{order:-1}
  .rx-auth-panel{padding:24px}
  .rx-auth-ph{margin-top:6px;font-size:1.35rem}
  .rx-auth-glow{opacity:.55}
}
@media (max-width:560px){
  .rx-auth-card{padding:22px 18px}
  .rx-auth-panel .rx-auth-brand{display:none}
}

.rx-hero{padding:46px 0 20px}.rx-hero-sm{padding:34px 0 10px}.rx-eyebrow{color:var(--accent);text-transform:uppercase;letter-spacing:.16em;font-size:.75rem}
.rx-lead{color:var(--muted);font-size:1.05rem}.rx-muted{color:var(--muted)}.rx-small{font-size:.85rem}.rx-mt{margin-top:24px}.rx-mt-sm{margin-top:12px}
.rx-sec{padding:40px 0}.rx-sec-sm,.rx-sec-tight{padding:20px 0}.rx-sec-alt{background:var(--surface2)}.rx-g3{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:18px}
.rx-card{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:22px}.rx-prose{max-width:760px}
.rx-form,.rx-auth-form{background:var(--surface);border:1px solid var(--line);border-radius:22px;padding:26px;max-width:460px;margin:0 auto;text-align:left}
.rx-auth-card .rx-form,.rx-auth-card .rx-auth-form{background:transparent;border:0;border-radius:0;padding:0;max-width:none;margin:0;box-shadow:none}
.rx-form label{display:block;font-size:.82rem;font-weight:600;margin:12px 0 4px}.rx-form input:not([type=checkbox]):not([type=radio]),.rx-form select,.rx-form textarea{width:100%}
input[type=password]{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:.7em .9em;width:100%}
.rx-btn{display:inline-flex;align-items:center;justify-content:center;background:var(--brand);color:var(--brand-ink);border:1px solid var(--brand);border-radius:999px;padding:.8em 1.5em;font-weight:600;cursor:pointer;font-family:inherit}
.rx-btn-ghost,.rx-btn-light{background:transparent;color:var(--ink);border-color:var(--line)}.rx-btn-gold{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.rx-btn-block{width:100%;margin-top:16px}.rx-btn-lg{padding:.95em 1.6em}.rx-auth-err,.rx-flash{background:color-mix(in srgb,var(--danger) 12%,transparent);color:var(--danger);padding:10px 14px;border-radius:12px;margin:10px 0}
.rx-auth-alt,.rx-auth-fine,.rx-auth-note{text-align:center;color:var(--muted);font-size:.88rem;margin-top:14px}.rx-auth-alt a,.rx-auth-fine a{color:var(--link,var(--brand));text-decoration:underline}.rx-auth-alt a:hover,.rx-auth-fine a:hover:not(.ha-sup):not(.btn):not(.btn-gold):not(.btn-ghost){color:var(--link-hover,var(--brand))}
.rx-auth-row{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:.88rem;margin-top:10px}.rx-hp,.rx-sr{position:absolute;left:-9999px}
.rx-cta-row{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:18px}.rx-chip{border:1px solid var(--line);border-radius:999px;padding:.3em .9em;font-size:.8rem}
/* ===== Patch 8: modern form fields (all themes, via theme vars) ===== */
input:not([type]),input[type=text],input[type=email],input[type=tel],input[type=search],input[type=number],input[type=url],input[type=password],input[type=date],select,textarea{font:inherit;font-size:.95rem;color:var(--ink);background:var(--surface);border:1.5px solid var(--line);border-radius:12px;padding:.75em .95em;width:100%;min-height:46px;transition:border-color .15s,box-shadow .15s;-webkit-appearance:none;appearance:none}
select{background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 18px) 50%,calc(100% - 13px) 50%;background-size:5px 5px;background-repeat:no-repeat;padding-right:2.4em}
textarea{min-height:90px;resize:vertical}
input:hover,select:hover,textarea:hover{border-color:var(--muted)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 4px color-mix(in srgb,var(--brand) 18%,transparent)}
input::placeholder,textarea::placeholder{color:var(--muted);opacity:.75}
.fld{margin-bottom:14px}.fld label{display:block;font-size:.82rem;font-weight:600;margin-bottom:6px;color:var(--ink)}
.fld .err{display:block;margin-top:4px}
.fld.bad input,.fld.bad select{border-color:var(--danger)}
fieldset{padding:22px 22px 10px}fieldset legend{font-weight:600;padding:0 8px}
.f2{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}.f3{display:grid;grid-template-columns:1.2fr 1fr .9fr;gap:0 14px}
.check{display:flex;gap:10px;align-items:flex-start;margin:8px 0;font-size:.9rem}.check input{width:18px;height:18px;min-height:0;accent-color:var(--brand);margin-top:3px}
.summary input[name=coupon]{min-height:40px}
@media (max-width:640px){.f2,.f3{grid-template-columns:1fr}fieldset{padding:16px 14px 6px}}
/* off badge + banners */
.card-img{position:relative}.card-img .off{position:absolute;right:10px;top:10px;background:var(--danger,#c0392b);color:#fff;font-weight:700;font-size:.75rem;padding:3px 8px;border-radius:999px;z-index:2}
.pdp-off{display:inline-block;background:var(--danger,#c0392b);color:#fff;font-weight:700;font-size:.8rem;padding:2px 9px;border-radius:999px;margin-left:8px;vertical-align:middle}
.cat-intro{max-width:760px}.cat-intro p{margin:.4em 0}
.hb{position:relative;margin:14px 0}.hb img{width:100%;height:auto;border-radius:16px}.hb picture{display:block}
.hb-top{margin:0}.hb-top img{border-radius:0}
.hb-x{position:absolute;right:8px;top:8px;border:0;background:rgba(0,0,0,.45);color:#fff;border-radius:999px;width:28px;height:28px;cursor:pointer;font-size:16px;line-height:28px}
.hb-text{display:flex;justify-content:center;align-items:center;gap:12px;padding:9px 44px;font-size:.9rem;font-weight:600;text-align:center}.hb-text a{text-decoration:underline}

/* patch 9 discreet delivery */
.dd{display:flex;gap:8px;align-items:flex-start;margin:12px 0 0;padding:10px 12px;border:1px solid var(--line,#e5e5e5);border-radius:10px;background:color-mix(in srgb,var(--accent,#7a1f3d) 7%,transparent);color:var(--ink,inherit);font-size:.9rem;line-height:1.4}.dd svg{flex:0 0 16px;margin-top:2px;color:var(--accent,#7a1f3d)}.dd-sum{font-size:.82rem;margin:10px 0}.dd-s{display:flex;gap:5px;align-items:center;font-size:.75rem;color:var(--muted,#666);margin:4px 0 8px}.dd-s svg{width:13px;height:13px;color:var(--accent,#7a1f3d)}

/* Scrollable category thumbnails; native swipe and keyboard navigation. */
.category-carousel{position:relative;min-width:0}.category-controls{display:flex;justify-content:flex-end;gap:8px;margin-bottom:12px}.category-controls button:disabled{opacity:.4;cursor:default}.category-track{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x proximity;overscroll-behavior-inline:contain;padding:4px 2px 18px;scrollbar-width:thin;scrollbar-color:var(--accent) var(--surface2)}.category-track .cat{flex:0 0 190px;display:flex;flex-direction:column;aspect-ratio:auto;align-items:stretch;justify-content:flex-start;scroll-snap-align:start;min-width:0;overflow:hidden}.category-track .cat img{width:100%;height:140px;object-fit:contain;position:static;display:block;background:#fff}.category-track .cat span{position:static;padding:12px;overflow-wrap:anywhere;background:var(--surface2);color:var(--ink);flex:1}.category-track .cat small{display:block}.category-track:focus-visible,.category-controls button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.hero-in>*{min-width:0}.hero-art img{max-width:100%;object-fit:contain}@media(max-width:640px){.category-track .cat{flex-basis:155px}.category-track .cat img{height:120px}.category-track{gap:12px}.category-controls{justify-content:space-between}.pdp>div{min-width:0}.pdp h1{overflow-wrap:anywhere}}


.partner-program{padding-top:36px;padding-bottom:64px}.partner-hero{padding:clamp(28px,6vw,72px);border:1px solid var(--line);border-radius:28px;background:var(--surface2);margin-bottom:28px}.partner-hero h1{max-width:850px}.partner-hero p{max-width:720px}.partner-benefits,.partner-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:24px 0 44px}.partner-benefits>div,.partner-steps>div{border:1px solid var(--line);border-radius:20px;padding:24px;background:var(--surface);min-width:0}.partner-program .prose{max-width:860px}.partner-program details{padding:16px 0;border-bottom:1px solid var(--line)}.partner-program summary{cursor:pointer;font-weight:600}.partner-program details p{margin:12px 0 0}@media(max-width:760px){.partner-benefits,.partner-steps{grid-template-columns:1fr}.partner-hero{padding:26px}.partner-program{padding-top:24px}.partner-hero .ctas{flex-wrap:wrap}}

.offer-thumb,.blog-card-img{width:100%;height:190px;object-fit:contain;background:#fff;border-radius:12px;margin-bottom:16px}.offer-detail-thumb{max-width:600px;width:100%;height:300px;object-fit:contain;background:#fff;border-radius:16px;margin:20px 0}.blog-cover{width:100%;height:auto;aspect-ratio:3/2;object-fit:contain;border-radius:16px;margin:24px 0}.blog-card-img{object-fit:cover}@media(max-width:640px){.offer-thumb,.blog-card-img{height:160px}.offer-detail-thumb{height:220px}}
/* Patch14: /brands/ index tiles (large) + compact category brand filters + mega thumbs */
.brands{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:16px}
.brands>a{display:flex;flex-direction:column;align-items:center;gap:10px;padding:14px;background:var(--surface,#fff);border:1px solid var(--line,#e6e0e8);border-radius:16px;text-align:center;min-width:0}
.brands .brand-mark{display:flex;align-items:center;justify-content:center;width:100%;aspect-ratio:5/3;max-width:220px;min-height:88px;padding:14px;background:#fff;border:1px solid var(--line,#ece7ef);border-radius:12px;overflow:hidden;color:#211629;box-sizing:border-box}
.brands .brand-mark.is-dark,.brand-mark.is-dark{background:#211629;color:#fff}
.brands .brand-mark img{display:block;width:100%;height:100%;object-fit:contain;object-position:center}
.brand-wordmark{font-family:Inter,system-ui,sans-serif;font-weight:600;font-size:.95rem;line-height:1.25;text-align:center;overflow-wrap:anywhere}
.brand-tile-name{font-weight:600;font-size:.9rem;overflow-wrap:anywhere}

/* Compact horizontal brand filter on category/search pages */
.brand-filters{display:flex;flex-wrap:nowrap;align-items:stretch;gap:8px;margin:14px 0 8px;padding:4px 2px 10px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x proximity;overscroll-behavior-inline:contain;scrollbar-width:thin;scrollbar-color:var(--accent) var(--surface2);-webkit-overflow-scrolling:touch;max-width:100%}
.brand-filter{flex:0 0 auto;scroll-snap-align:start;display:inline-flex;align-items:center;gap:8px;min-height:44px;max-width:200px;padding:6px 12px 6px 6px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink);text-decoration:none;line-height:1.2;transition:border-color .15s,box-shadow .15s,background .15s}
.brand-filter:hover,.brand-filter:focus-visible{border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 16%,transparent);outline:none}
.brand-filter.on,.brand-filter[aria-current=true]{border-color:var(--brand);background:color-mix(in srgb,var(--brand) 10%,var(--surface));box-shadow:0 0 0 2px color-mix(in srgb,var(--brand) 22%,transparent)}
.brand-filter-label{font-size:.82rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:120px}
.brand-mark-filter,.brand-filters .brand-mark{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;min-height:0;max-width:40px;aspect-ratio:1;padding:5px;border-radius:999px;border:1px solid var(--line);background:#fff;overflow:hidden;flex:0 0 auto;box-sizing:border-box}
.brand-mark-filter img,.brand-filters .brand-mark img{width:100%;height:100%;object-fit:contain;display:block}
.brand-mark-filter.is-dark,.brand-filters .brand-mark.is-dark{background:#211629;border-color:#211629}
.brand-mark-small{display:inline-flex;align-items:center;justify-content:center;width:56px;height:28px;min-height:0;padding:3px;border-radius:8px;border:1px solid var(--line);background:#fff;overflow:hidden}
.brand-mark-small img{width:100%;height:100%;object-fit:contain}
.brand-page-head .brand-mark{width:120px;height:72px;min-height:0;aspect-ratio:auto;padding:10px;border-radius:12px;border:1px solid var(--line);background:#fff;display:inline-flex;align-items:center;justify-content:center;overflow:hidden}
.brand-page-head .brand-mark img{width:100%;height:100%;object-fit:contain}

/* Mega menu with product thumbs */
.mega{position:absolute;left:0;top:100%;min-width:min(640px,92vw);max-width:720px;display:grid;grid-template-columns:1fr 1fr;gap:8px;background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:14px;box-shadow:0 30px 60px -30px rgba(0,0,0,.35);opacity:0;visibility:hidden;transform:translateY(6px);transition:.18s;z-index:60;pointer-events:none}
.mn-item:hover .mega,.mn-item:focus-within .mega,.mn-item:has(:focus-visible) .mega{pointer-events:auto;opacity:1;visibility:visible;transform:none}
.mega a{display:grid;grid-template-columns:56px 1fr;gap:10px;align-items:center;padding:8px 10px;border-radius:12px;min-width:0;color:inherit;text-decoration:none}
.mega a:hover,.mega a:focus-visible{background:var(--surface2);outline:none}
.mega-thumb{display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:12px;background:#fff;border:1px solid var(--line);overflow:hidden}
.mega-thumb img{width:100%;height:100%;object-fit:contain;display:block}
.mega-copy{min-width:0}.mega-copy b{display:block;font-weight:600;font-size:.9rem;line-height:1.25}.mega-copy small{display:block;color:var(--muted);font-size:.75rem;line-height:1.3;margin-top:2px;overflow:hidden;text-overflow:ellipsis}
.mega a:not(:has(.mega-thumb)){grid-template-columns:1fr}
@media(max-width:640px){
  .brands{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .brands .brand-mark{min-height:72px;padding:10px}
  .brand-filter{max-width:170px}
  .brand-filter-label{max-width:96px}
}

/* Patch14: PDP brand strip + hero rotator + mobile overflow guards */
.pdp-brand{display:inline-flex;align-items:center;gap:10px;margin:0 0 10px;padding:6px 12px 6px 6px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:inherit;text-decoration:none;max-width:100%}
.pdp-brand:hover,.pdp-brand:focus-visible{border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 14%,transparent);outline:none}
.brand-mark-pdp{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;min-height:0;padding:4px;border-radius:999px;border:1px solid var(--line);background:#fff;overflow:hidden;flex:0 0 auto}
.brand-mark-pdp.is-dark{background:#211629;border-color:#211629}
.brand-mark-pdp img{width:100%;height:100%;object-fit:contain;display:block}
.pdp-brand-fallback{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:999px;background:var(--brand);color:var(--brand-ink);font-weight:700;font-size:.95rem;flex:0 0 auto}
.pdp-brand-meta{display:flex;flex-direction:column;min-width:0;line-height:1.15}
.pdp-brand-kicker{font-size:.65rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}
.pdp-brand-name{font-size:.88rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:220px}
.pdp .brand{display:none} /* legacy */

.hero-art{display:grid;place-items:center}
.hero-stage{position:relative;z-index:1;width:78%;margin:11%;aspect-ratio:1;max-width:100%}
.hero-slide{position:absolute;inset:0;display:block;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .45s ease;border-radius:28px;overflow:hidden;box-shadow:0 40px 80px -30px rgba(0,0,0,.6);background:#fff;color:inherit;text-decoration:none}
.hero-slide.is-on{opacity:1;visibility:visible;pointer-events:auto;z-index:2}
.hero-slide img{width:100%;height:100%;object-fit:contain;display:block;aspect-ratio:1;border-radius:28px;background:#fff}
.hero-slide-cap{position:absolute;left:12px;right:12px;bottom:12px;padding:8px 12px;border-radius:12px;background:rgba(20,10,24,.72);color:#fff;backdrop-filter:blur(6px)}
.hero-slide-cap b{display:block;font-size:.88rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hero-slide-cap small{display:block;opacity:.85;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em}
.hero-art > img{position:relative;border-radius:28px;box-shadow:0 40px 80px -30px rgba(0,0,0,.6);aspect-ratio:1;object-fit:contain;width:78%;margin:11%;background:#fff}
.hero-rot-controls{position:absolute;z-index:3;left:50%;bottom:2%;transform:translateX(-50%);display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:999px;background:rgba(20,10,24,.55);backdrop-filter:blur(8px)}
.hero-rot-btn{min-width:40px;min-height:40px;border:0;border-radius:999px;background:rgba(255,255,255,.14);color:#fff;font:inherit;font-weight:600;cursor:pointer;padding:0 12px}
.hero-rot-btn:hover,.hero-rot-btn:focus-visible,.hero-dot:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.hero-rot-dots{display:flex;gap:6px;align-items:center}
.hero-dot{width:10px;height:10px;min-width:10px;min-height:10px;padding:0;border:0;border-radius:999px;background:rgba(255,255,255,.35);cursor:pointer}
.hero-dot.on{background:var(--accent);transform:scale(1.15)}
.hero-rot-pause{font-size:.72rem;letter-spacing:.04em;text-transform:uppercase}
@media (prefers-reduced-motion:reduce){
  .hero-slide{transition:none}
  .hero-art .orb{animation:none!important}
}
@media (max-width:860px){
  .hero-stage{width:86%;margin:7% auto}
  .hero-rot-controls{bottom:0;flex-wrap:wrap;justify-content:center;max-width:94%}
  .pdp-brand-name{max-width:160px}
}
/* Narrow home: hero stats + topbar readability */
@media (max-width:720px){
  .hero-stats{display:grid;grid-template-columns:1fr;gap:12px;margin-top:22px}
  .hero-stats b{font-size:1.1rem}
  .topbar .wrap{align-items:flex-start}
  .topbar .eta-hint{display:block;margin-top:4px;line-height:1.35}
}
@media (max-width:400px){
  .usp{grid-template-columns:1fr;gap:12px}
  .hero-in{padding:36px 16px 48px;gap:24px}
}
/* Patch14 overflow guards — never override .wrap's 1280px content width */
html,body{overflow-x:clip}
img,video{max-width:100%;height:auto}
.hdr-in,.pdp,.grid,.brand-filters,.category-track{min-width:0;max-width:100%}
.hero-in{min-width:0}
.toolbar,.buyrow,.ctas{flex-wrap:wrap}.hdr-in{flex-wrap:nowrap}
.wrap{max-width:min(1280px,100%);margin-left:auto;margin-right:auto}
.drawer-cat{display:flex;align-items:center;gap:10px;padding:10px 4px;min-height:44px}
.drawer-cat img{width:40px;height:40px;object-fit:contain;border-radius:10px;background:#fff;border:1px solid var(--line);flex:0 0 auto}
.drawer details a{display:block}
.drawer details a.drawer-cat{display:flex}
/* Patch14 estimated delivery */
.eta{margin:12px 0 0;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:color-mix(in srgb,var(--success,#5F8A6E) 8%,var(--surface));max-width:100%}
.eta-top{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 12px}
.eta-k{font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.eta-range{font-size:1.05rem;font-family:Fraunces,serif;font-weight:600;color:var(--ink)}
.eta-note{margin:6px 0 0;font-size:.8rem;color:var(--muted);line-height:1.4}
.eta-switch{text-decoration:underline;text-underline-offset:2px}
.eta-hint,.eta-inline{font-weight:500}
.eta-hint b,.eta-inline .eta-range{font-weight:700}
.topbar .eta-hint{opacity:.95}
@media(max-width:640px){.topbar .eta-hint{display:block;margin-top:4px}.eta-range{font-size:.98rem}}
/* Patch14: keep header on one row at 320–390 */
@media (max-width:420px){
  .hdr-in{gap:6px;grid-template-columns:36px minmax(0,1fr) auto}
  .burger{width:36px;height:36px;padding:7px}
  .logo-svg{height:26px;max-width:min(140px,46vw)}
  .logo-img{max-height:26px;max-width:min(140px,46vw)}
  .hicon{width:36px;height:36px}
  .hicon svg{width:19px;height:19px}
}
body.qa-mega .mainnav{display:flex!important}
body.qa-mega .mn-item:nth-child(3) .mega{opacity:1!important;visibility:visible!important;pointer-events:auto!important;transform:none!important;display:grid!important}
/* Patch14 trust near purchase + mobile sticky ATC */
.pdp-trust{margin:14px 0 0;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--surface);font-size:.84rem;line-height:1.45;color:var(--muted)}
.pdp-trust b{color:var(--ink);font-weight:600}
.pdp-trust ul{margin:8px 0 0;padding:0;list-style:none}
.pdp-trust li{margin:0 0 6px;padding-left:0}
.pdp-trust a{text-decoration:underline;text-underline-offset:2px}
.pdp-pay-note{margin:10px 0 0;font-size:.82rem;color:var(--muted);line-height:1.4}
.pdp-sticky-atc{display:none}
@media (max-width:860px){
  .pdp-sticky-atc{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:45;gap:10px;align-items:center;padding:10px 12px calc(10px + env(safe-area-inset-bottom,0px));background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(12px);border-top:1px solid var(--line);box-shadow:0 -8px 24px rgba(0,0,0,.08)}
  .pdp-sticky-atc .btn{flex:1;min-height:44px}
  .pdp-sticky-atc .pdp-sticky-price{font-weight:700;font-family:Fraunces,serif;white-space:nowrap}
  body.has-sticky-atc{padding-bottom:76px}
}

/* Patch17 Support pill + cascade lock. Patch16/17: floating Support pill — explicit FG/BG (beats a{color:inherit} / a:hover brand). */
a.ha-sup,
a.ha-sup:link,
a.ha-sup:visited,
a.ha-sup:hover,
a.ha-sup:focus,
a.ha-sup:focus-visible,
a.ha-sup:active{
  position:fixed;
  right:max(12px,env(safe-area-inset-right,0px));
  bottom:max(12px,env(safe-area-inset-bottom,0px));
  z-index:50;
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:48px;
  min-width:48px;
  padding:10px 16px 10px 12px;
  border-radius:999px;
  box-sizing:border-box;
  text-decoration:none!important;
  /* Opaque brand fill + near-white ink — readable on light pages AND dark hero */
  color:#F7F8FA!important;
  background-color:#2B1B2F!important;
  background-image:linear-gradient(145deg,#2B1B2F 0%,#3D2844 55%,#2B1B2F 100%)!important;
  border:1px solid #C9A46A!important;
  box-shadow:0 14px 34px -12px rgba(40,16,48,.55);
  font:600 .88rem Inter,system-ui,sans-serif;
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
  cursor:pointer;
  -webkit-text-fill-color:#F7F8FA;
}
a.ha-sup:hover,
a.ha-sup:focus-visible{
  color:#FFFFFF!important;
  -webkit-text-fill-color:#FFFFFF;
  background-color:#3D2844!important;
  outline:2px solid #C9A46A;
  outline-offset:3px;
  transform:translateY(-1px);
}
a.ha-sup .ha-sup-ico,
a.ha-sup .ha-sup-label{
  color:#F7F8FA!important;
  -webkit-text-fill-color:#F7F8FA;
}
a.ha-sup:hover .ha-sup-ico,
a.ha-sup:hover .ha-sup-label,
a.ha-sup:focus-visible .ha-sup-ico,
a.ha-sup:focus-visible .ha-sup-label{
  color:#FFFFFF!important;
  -webkit-text-fill-color:#FFFFFF;
}
a.ha-sup .ha-sup-ico{display:grid;place-items:center;width:28px;height:28px;flex:0 0 auto}
a.ha-sup .ha-sup-ico svg{display:block;pointer-events:none;stroke:currentColor;color:inherit}
a.ha-sup .ha-sup-label{line-height:1;letter-spacing:.01em}
body.has-sticky-atc a.ha-sup{bottom:max(88px,calc(env(safe-area-inset-bottom,0px) + 80px))}
/* Mobile: compact icon-only (≥48px) + scroll clearance so cards/footer Help links can clear the float.
   Footer-near class (tiny IO in support-float.php) hides float while footer Support is on-screen. */
@media (max-width:640px){
  a.ha-sup,
  a.ha-sup:link,
  a.ha-sup:visited,
  a.ha-sup:hover,
  a.ha-sup:focus,
  a.ha-sup:focus-visible,
  a.ha-sup:active{
    width:48px;
    height:48px;
    min-width:48px;
    min-height:48px;
    max-width:48px;
    padding:0!important;
    gap:0;
    justify-content:center;
    right:max(10px,env(safe-area-inset-right,0px));
    bottom:max(14px,calc(env(safe-area-inset-bottom,0px) + 12px));
    border-radius:50%;
  }
  a.ha-sup .ha-sup-label{
    position:absolute;
    width:1px;height:1px;
    padding:0;margin:-1px;
    overflow:hidden;clip:rect(0,0,0,0);
    white-space:nowrap;border:0;
  }
  a.ha-sup .ha-sup-ico{width:24px;height:24px}
  a.ha-sup .ha-sup-ico svg{width:22px;height:22px}
  /* Reserve bottom space so last card/trustbar/footer links can scroll above the control */
  body:not(.has-sticky-atc){padding-bottom:max(72px,calc(env(safe-area-inset-bottom,0px) + 64px))}
  html{scroll-padding-bottom:max(72px,calc(env(safe-area-inset-bottom,0px) + 64px))}
  body.has-sticky-atc a.ha-sup{
    bottom:max(88px,calc(env(safe-area-inset-bottom,0px) + 80px));
  }
  /* While footer is in viewport, force-hide float across all link states (!important beats cascade). */
  body.ha-sup-footer-near a.ha-sup,
  body.ha-sup-footer-near a.ha-sup:link,
  body.ha-sup-footer-near a.ha-sup:visited,
  body.ha-sup-footer-near a.ha-sup:hover,
  body.ha-sup-footer-near a.ha-sup:focus,
  body.ha-sup-footer-near a.ha-sup:focus-visible,
  body.ha-sup-footer-near a.ha-sup:active,
  a.ha-sup[hidden],
  a.ha-sup[hidden]:link,
  a.ha-sup[hidden]:visited,
  a.ha-sup[hidden]:hover,
  a.ha-sup[hidden]:focus,
  a.ha-sup[hidden]:focus-visible,
  a.ha-sup[hidden]:active{
    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
    transform:none!important;
    -webkit-text-fill-color:transparent!important;
  }
  a.ha-sup{transition:opacity .18s ease, visibility .18s ease}
}
/* hidden attribute must win even outside the mobile media (JS sets it when footer is near) */
a.ha-sup[hidden]{
  display:none!important;
}

/* =====================================================================
   Patch16 mega-menu width fix (verified live QA 1280)
   ROOT CAUSE: Patch14/15 overflow-guard applied `.mega{min-width:0;max-width:100%}`.
   For position:absolute .mega, % resolves against the narrow .mn-item (~45–65px label),
   crushing the panel into a white strip; thumbs/grid spill and text clips.
   LIVE (patch15 COMBINED zip) still had .mega in that selector; local comparison was wide.
   FIX: never put .mega in that guard; set independent width in px/vw with !important.
   ===================================================================== */
.hdr,.hdr-in,.mainnav,.mn-item{overflow:visible!important}
.mainnav .mn-item{position:relative}
.mainnav .mn-item > .mega{
  position:absolute;
  left:0;
  top:100%;
  z-index:70;
  box-sizing:border-box;
  /* Independent of parent .mn-item width — do NOT use max-width:100% here */
  width:min(640px,92vw)!important;
  min-width:min(640px,92vw)!important;
  max-width:min(720px,96vw)!important;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  padding:14px;
  margin:0;
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:18px;
  box-shadow:0 30px 60px -30px rgba(0,0,0,.35);
  opacity:0;
  visibility:hidden;
  transform:translateY(6px);
  transition:opacity .18s,transform .18s,visibility .18s;
  pointer-events:none;
  overflow:visible;
}
.mainnav .mn-item:hover > .mega,
.mainnav .mn-item:focus-within > .mega,
.mainnav .mn-item:has(:focus-visible) > .mega{
  opacity:1;
  visibility:visible;
  transform:none;
  pointer-events:auto;
}
.mainnav .mn-item > .mega a{
  display:grid;
  grid-template-columns:56px minmax(0,1fr);
  gap:10px;
  align-items:center;
  padding:8px 10px;
  border-radius:12px;
  min-width:0;
  max-width:none;
  color:inherit;
  text-decoration:none;
  overflow:hidden;
}
.mainnav .mn-item > .mega a:hover,
.mainnav .mn-item > .mega a:focus-visible{background:var(--surface2);outline:none}
.mainnav .mn-item > .mega .mega-thumb{
  display:flex;align-items:center;justify-content:center;
  width:56px;height:56px;min-width:56px;max-width:56px;
  border-radius:12px;background:#fff;border:1px solid var(--line);overflow:hidden;
}
.mainnav .mn-item > .mega .mega-thumb img{
  width:100%;height:100%;max-width:100%;object-fit:contain;display:block;
}
.mainnav .mn-item > .mega .mega-copy{min-width:0;overflow:hidden}
.mainnav .mn-item > .mega .mega-copy b{display:block;font-weight:600;font-size:.9rem;line-height:1.25}
.mainnav .mn-item > .mega .mega-copy small{
  display:block;color:var(--muted);font-size:.75rem;line-height:1.3;margin-top:2px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.mainnav .mn-item > .mega a:not(:has(.mega-thumb)){grid-template-columns:minmax(0,1fr)}
/* Keep right-edge menus on-screen */
.mainnav .mn-item:last-child > .mega,
.mainnav .mn-item:nth-last-child(2) > .mega{left:auto;right:0}
@media (max-width:1180px){
  .mainnav .mn-item > .mega{display:none!important}
}
body.qa-mega .mainnav{display:flex!important}
body.qa-mega .mainnav .mn-item:nth-child(3) > .mega{
  opacity:1!important;visibility:visible!important;pointer-events:auto!important;
  transform:none!important;display:grid!important;
}

/* =====================================================================
   Patch16 palette typography (token-based; themes supply --* in :root)
   Default plum-gold: soft-neutral bg, white surfaces, plum links, gold decorative only.
   Do not force white onto --hero* / --footer / --brand panels.
   ===================================================================== */
body{background:var(--bg);color:var(--ink)}
.card,.drawer,.minicart,.rx-auth-card,.summary,.buybox,.offer,.post,.flash,.mega,
.mainnav .mn-item > .mega{background:var(--surface);color:var(--ink)}
.card a,.mega a,.drawer a{color:var(--ink)}
.mega-copy b,.card h3 a{color:var(--ink)}
.muted,.rx-muted,.fld .hint{color:var(--muted)}
input::placeholder,textarea::placeholder{color:var(--muted);opacity:.9}
input:disabled,textarea:disabled,select:disabled,.btn[disabled],.btn:disabled{
  opacity:.55;cursor:not-allowed;color:var(--muted)
}
input:focus-visible,textarea:focus-visible,select:focus-visible{
  outline:2px solid var(--accent);outline-offset:2px;border-color:var(--accent)
}
.fld .err,.flash-err,.flash-error,.rx-auth-err{color:var(--danger)}
/* Links on light surfaces: plum family (not gold body text) */
a:not(.btn):not(.btn-gold):not(.btn-ghost):not(.chip):not(.hicon):not(.ha-sup){color:inherit}
.prose a,.rx-auth-alt a,.rx-auth-fine a,a.text-link{color:var(--link,var(--brand))}
.prose a:hover,.rx-auth-alt a:hover,.rx-auth-fine a:hover,a.text-link:hover{color:var(--link-hover,var(--brand))}
/* Decorative gold OK on dark hero/footer / eyebrows / stars — not long body copy */
.hero .eyebrow,.hero h1 em,.hero-stats b,.ftr h4,.stars,.offer .tag,.post .tag,.rx-eyebrow,.rx-kicker,
.mn-item>a.hot,.topbar a:hover,.ftr a:hover{color:var(--accent)}
.hero,.hero h1{color:var(--hero-ink)}
.ftr{color:var(--footer-ink)}
.topbar,.btn,.rx-btn,.chip.on,.steps span.on{color:var(--brand-ink)}
.btn-gold,.rx-btn-gold,.news button,.badge,.cc{color:var(--accent-ink)}
/* Borders / surfaces */
.card,.buybox,.summary,.offer,.post,.rx-auth-card{border-color:var(--line)}


/* =====================================================================
   Patch18: homepage product grids — complete rows of 4 on desktop.
   Scoped to .home-prods only (catalog/category grids unchanged).
   ===================================================================== */
.home-prods .grid{
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:22px;
}
@media (max-width:1024px){
  .home-prods .grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
}
@media (max-width:860px){
  .home-prods .grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
}
@media (max-width:360px){
  /* Truly narrow only — even card counts still avoid mid-page orphans at 2-col above */
  .home-prods .grid{grid-template-columns:1fr;gap:12px}
}
