/* ============================================================
   Vuzon design system
   Black-led brand chrome, product-led surfaces, commercial density.
   ============================================================ */
:root{
  --ink:#0a0a0b; --ink-2:#4a4f5a; --ink-3:#8a909c;
  --bg:#ffffff; --bg-2:#f4f5f7; --bg-3:#e9ebef;
  --line:#e3e6ea; --line-dark:#26282f;
  --dark:#0a0a0b; --dark-2:#15171c; --dark-3:#1e2128;
  --accent:#ff4438; --accent-dark:#e02e23;
  --green:#12a05f; --green-soft:#e6f6ee;
  --r:10px; --r-lg:16px;
  --shadow:0 2px 6px rgba(10,10,11,.05), 0 12px 34px rgba(10,10,11,.08);
  --shadow-lift:0 12px 24px rgba(10,10,11,.10), 0 30px 60px rgba(10,10,11,.14);
  --max:1240px;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);
  font-family:"Inter","Segoe UI",system-ui,-apple-system,"Noto Sans Devanagari",sans-serif;
  font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
.wrap{max-width:var(--max);margin:0 auto;padding:0 22px}
h1,h2,h3{line-height:1.08;letter-spacing:-.025em;margin:0 0 .5em;font-weight:750}
h2{font-size:clamp(1.5rem,3vw,2.15rem)}
.muted{color:var(--ink-3)}
.eyebrow{font-size:.72rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3)}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;
  border:1px solid transparent;border-radius:999px;padding:13px 28px;
  font-weight:650;font-size:.95rem;cursor:pointer;transition:.16s ease;font-family:inherit}
.btn-primary{background:var(--accent);color:#fff}
.btn-primary:hover{background:var(--accent-dark)}
.btn-dark{background:var(--ink);color:#fff}
.btn-dark:hover{background:#000;transform:translateY(-1px)}
.btn-light{background:#fff;color:var(--ink)}
.btn-light:hover{transform:translateY(-1px)}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--line)}
.btn-ghost:hover{border-color:var(--ink)}
.btn-ghost-light{background:transparent;color:#fff;border-color:rgba(255,255,255,.3)}
.btn-ghost-light:hover{border-color:#fff}
.btn-block{width:100%}
.btn:disabled{opacity:.5;cursor:not-allowed}

/* ---------- offer marquee ---------- */
.marquee{background:var(--accent);color:#fff;overflow:hidden;font-size:.8rem;
  font-weight:650;letter-spacing:.02em;padding:9px 0;white-space:nowrap}
.marquee-track{display:inline-flex;gap:44px;padding-left:44px;
  animation:slide 34s linear infinite;will-change:transform}
.marquee span{display:inline-flex;align-items:center;gap:8px}
.marquee b{font-weight:800}
@keyframes slide{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ---------- header ---------- */
header{position:sticky;top:0;z-index:50;background:var(--dark);border-bottom:1px solid var(--line-dark)}
.nav{display:flex;align-items:center;gap:34px;height:70px}
.logo{display:flex;align-items:center;flex:none}
.logo img{height:24px;width:auto;display:block}
.nav-links{display:flex;gap:28px;font-size:.76rem;font-weight:650;
  letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.72)}
.nav-links a{transition:.15s}
.nav-links a:hover{color:#fff}
.nav-right{margin-left:auto;display:flex;align-items:center;gap:14px}
.cart-btn{position:relative;display:flex;align-items:center;gap:9px;font-weight:650;
  border:1px solid rgba(255,255,255,.25);border-radius:999px;padding:9px 17px;background:transparent;
  color:#fff;cursor:pointer;font-family:inherit;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;transition:.15s}
.cart-btn:hover{border-color:#fff}
.cart-count{background:var(--accent);color:#fff;border-radius:999px;
  min-width:19px;height:19px;font-size:.7rem;display:grid;place-items:center;font-weight:800;padding:0 5px;letter-spacing:0}

/* ---------- 3D hero ---------- */
.hero{position:relative;background:var(--dark);color:#fff;overflow:hidden;
  perspective:1200px;border-bottom:1px solid var(--line-dark)}
.hero::before{content:"";position:absolute;width:900px;height:900px;border-radius:50%;
  top:-42%;right:-14%;background:radial-gradient(circle,rgba(255,68,56,.20),transparent 62%);pointer-events:none}
.hero::after{content:"";position:absolute;width:700px;height:700px;border-radius:50%;
  bottom:-46%;left:-12%;background:radial-gradient(circle,rgba(90,120,255,.14),transparent 64%);pointer-events:none}
.hero-grid{position:relative;display:grid;grid-template-columns:1fr 1.05fr;gap:36px;
  align-items:center;padding-block:60px 66px;z-index:1}
.hero h1{font-size:clamp(2.6rem,7vw,5rem);font-weight:800;letter-spacing:-.045em;margin:0 0 6px;text-transform:uppercase}
.hero h1 em{font-style:normal;display:block;font-weight:300;letter-spacing:-.02em;
  font-size:.42em;text-transform:none;color:rgba(255,255,255,.62);margin-top:10px}
.hero .kicker{display:inline-flex;align-items:center;gap:9px;border:1px solid rgba(255,255,255,.22);
  border-radius:999px;padding:6px 15px;font-size:.74rem;font-weight:650;letter-spacing:.12em;
  text-transform:uppercase;color:rgba(255,255,255,.85);margin-bottom:22px}
.hero .kicker i{width:6px;height:6px;border-radius:50%;background:#31d67f;display:block;
  box-shadow:0 0 0 4px rgba(49,214,127,.18)}
.hero-specs{display:flex;gap:26px;flex-wrap:wrap;margin:26px 0 30px}
.hero-specs div{display:flex;align-items:center;gap:9px;font-size:.85rem;
  font-weight:600;color:rgba(255,255,255,.78)}
.hero-specs svg{width:19px;height:19px;flex:none;stroke:#fff;opacity:.85}
.hero-cta{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.hero-price{font-size:.86rem;color:rgba(255,255,255,.6)}
.hero-price b{color:#fff;font-size:1.25rem;font-weight:750;display:block;letter-spacing:-.02em}

/* the floating product — 3D stage */
.stage{position:relative;display:grid;place-items:center;transform-style:preserve-3d}
.stage-inner{position:relative;transform-style:preserve-3d;transition:transform .18s ease-out;will-change:transform}
.stage img{max-height:430px;width:auto;object-fit:contain;position:relative;z-index:2;
  filter:drop-shadow(0 40px 60px rgba(0,0,0,.55)) drop-shadow(0 8px 16px rgba(0,0,0,.4));
  animation:float 6s ease-in-out infinite}
.stage-glow{position:absolute;inset:8% 12%;border-radius:50%;z-index:1;
  background:radial-gradient(ellipse at center,rgba(255,255,255,.16),transparent 66%);filter:blur(26px)}
.stage-floor{position:absolute;bottom:4%;left:16%;right:16%;height:26px;z-index:0;
  background:radial-gradient(ellipse at center,rgba(0,0,0,.62),transparent 72%);filter:blur(14px)}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-14px)}}

/* ---------- stats band ---------- */
.stats{background:var(--dark-2);border-bottom:1px solid var(--line-dark);color:#fff}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;padding-block:26px}
.stat{display:flex;gap:13px;align-items:center}
.stat svg{width:26px;height:26px;flex:none;stroke:#fff;opacity:.9}
.stat b{display:block;font-size:.92rem;font-weight:700}
.stat small{color:rgba(255,255,255,.55);font-size:.78rem}

/* ---------- sections ---------- */
section{padding:66px 0}
.sec-head{margin-bottom:28px;display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap}
.sec-head p{color:var(--ink-3);margin:6px 0 0;max-width:60ch;font-size:.95rem}
.sec-head .link{font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  border-bottom:1px solid var(--ink);padding-bottom:3px;white-space:nowrap}

/* ---------- shop-by tiles ---------- */
.tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.tile{position:relative;border:1px solid var(--line);border-radius:var(--r-lg);padding:22px;
  background:var(--bg-2);overflow:hidden;transition:.18s;min-height:132px;display:flex;
  flex-direction:column;justify-content:flex-end}
.tile:hover{border-color:var(--ink);transform:translateY(-3px);box-shadow:var(--shadow)}
.tile b{font-size:1.05rem;letter-spacing:-.02em}
.tile small{color:var(--ink-3);font-size:.82rem}
.tile .tile-img{position:absolute;right:-8px;top:-6px;width:104px;opacity:.95;
  transform:rotate(-8deg);transition:.25s}
.tile:hover .tile-img{transform:rotate(-4deg) scale(1.06)}

/* ---------- product cards ---------- */
.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
@media (min-width:768px){ .grid{grid-template-columns:repeat(3,1fr);gap:18px} }
@media (min-width:1100px){ .grid{grid-template-columns:repeat(4,1fr)} }

.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);
  overflow:hidden;display:flex;flex-direction:column;
  transition:box-shadow .25s ease,transform .25s ease,border-color .25s ease}
.card:hover{box-shadow:var(--shadow-lift);transform:translateY(-3px);border-color:#d6dae1}
.card.is-out{opacity:.72}

.card-img{position:relative;display:block;background:var(--bg-2);aspect-ratio:1;overflow:hidden}
.card-img img{width:100%;height:100%;object-fit:cover;transition:transform .45s ease}
.card:hover .card-img img{transform:scale(1.04)}

/* top-left flag */
.card-flag{position:absolute;top:10px;left:10px;z-index:2;display:inline-flex;align-items:center;
  gap:5px;background:var(--ink);color:#fff;font-size:.68rem;font-weight:700;letter-spacing:.02em;
  padding:5px 10px;border-radius:999px}
.card-flag.flag-out{background:#6b7280}

/* amber spec strip across the foot of the image */
.card-meta{position:absolute;left:0;right:0;bottom:0;z-index:2;display:flex;align-items:center;
  justify-content:space-between;gap:8px;background:#FFC107;color:var(--ink);
  padding:7px 10px;font-size:.74rem;font-weight:650;line-height:1.2}
.card-meta > span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.card-rating{display:inline-flex;align-items:center;gap:3px;background:#fff;border-radius:999px;
  padding:2px 8px;font-size:.72rem;font-weight:700;flex:none}

.card-body{padding:14px;display:flex;flex-direction:column;gap:0;flex:1}
.card-body h3{font-size:.98rem;font-weight:650;letter-spacing:-.015em;margin:0;line-height:1.3}
.card-rule{border-top:1px dashed var(--line);margin:11px 0}
.card-row{display:flex;align-items:center;justify-content:space-between;gap:10px}
.card-now{font-size:1.18rem;font-weight:780;letter-spacing:-.03em}
.card-swatches{display:inline-flex;align-items:center;gap:4px;flex:none}
.card-swatches i{width:15px;height:15px;border-radius:50%;border:1px solid rgba(0,0,0,.18);display:block}
.card-swatches em{font-style:normal;font-size:.72rem;color:var(--ink-3);font-weight:650;margin-left:2px}
.card-sub{display:flex;align-items:baseline;gap:9px;margin-top:5px;font-size:.82rem}
.card-sub .was{color:var(--ink-3);text-decoration:line-through}
.card-sub .off{color:var(--green);font-weight:700}

/* ---------- feature icon strip (product page) ---------- */
.feature-strip{background:var(--bg-2);border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);margin:0 0 40px}
.feature-strip ul{list-style:none;margin:0;padding:34px 0;display:grid;
  grid-template-columns:repeat(2,1fr);gap:28px 12px}
@media (min-width:760px){ .feature-strip ul{grid-template-columns:repeat(4,1fr);padding:44px 0} }
.feature-strip li{display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px}
.feature-ic{width:62px;height:62px;border-radius:50%;background:#e6e8ec;display:grid;place-items:center;flex:none}
.feature-ic svg{width:28px;height:28px;stroke:var(--ink);fill:none;stroke-width:1.5;
  stroke-linecap:round;stroke-linejoin:round}
.feature-ic b{font-size:.92rem;font-weight:700;letter-spacing:-.01em}
.feature-strip span{font-size:.86rem;line-height:1.4;color:var(--ink-2);max-width:18ch}
.feature-strip span b{display:block;color:var(--ink);font-weight:650}

/* ---------- dark feature band ---------- */
.band{background:var(--dark);color:#fff}
.band h2{color:#fff}
.band .sec-head p{color:rgba(255,255,255,.55)}
.feat{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.feat div{background:var(--dark-2);border:1px solid var(--line-dark);border-radius:var(--r-lg);padding:24px;transition:.18s}
.feat div:hover{border-color:#3a3e48;transform:translateY(-3px)}
.feat svg{width:24px;height:24px;stroke:#fff;margin-bottom:14px;opacity:.9}
.feat b{display:block;margin-bottom:6px;font-size:1rem}
.feat p{margin:0;color:rgba(255,255,255,.55);font-size:.88rem;line-height:1.5}

/* ---------- reviews ---------- */
.reviews{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.review{border:1px solid var(--line);border-radius:var(--r-lg);padding:24px;background:#fff}
.review .rs{color:#f5a623;font-size:.9rem;margin-bottom:11px;letter-spacing:1px}
.review p{margin:0 0 16px;font-size:.93rem;color:var(--ink-2);line-height:1.55}
.review .who{display:flex;align-items:center;gap:11px}
.avatar{width:36px;height:36px;border-radius:50%;background:var(--ink);color:#fff;
  display:grid;place-items:center;font-weight:750;font-size:.85rem;flex:none}
.review b{display:block;font-size:.88rem}
.review small{color:var(--ink-3);font-size:.78rem}
.verified{color:var(--green);font-size:.72rem;font-weight:700}

/* ---------- faq ---------- */
details{border-bottom:1px solid var(--line);padding:17px 0}
summary{cursor:pointer;font-weight:650;list-style:none;display:flex;justify-content:space-between;gap:16px;font-size:.98rem}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";color:var(--accent);font-weight:700;font-size:1.25rem;line-height:1}
details[open] summary::after{content:"–"}
details p{color:var(--ink-2);margin:11px 0 0;font-size:.93rem}

/* ---------- footer ---------- */
footer{background:var(--dark);color:rgba(255,255,255,.62);padding:56px 0 26px;font-size:.9rem}
.foot-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:30px;margin-bottom:34px}
.foot-grid h4{font-size:.7rem;text-transform:uppercase;letter-spacing:.15em;color:#fff;margin:0 0 14px;font-weight:700}
.foot-grid a{display:block;color:rgba(255,255,255,.62);padding:4px 0;transition:.15s;font-size:.88rem}
.foot-grid a:hover{color:#fff}
.foot-logo{height:22px;width:auto;margin-bottom:14px}
.foot-bot{border-top:1px solid var(--line-dark);padding-top:20px;color:rgba(255,255,255,.42);
  font-size:.8rem;display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap}
.foot-bot a{color:rgba(255,255,255,.42)}
.foot-bot a:hover{color:#fff}

/* ---------- inner page hero ---------- */
.page-hero{background:var(--dark);color:#fff;padding:0 0 46px}
.page-hero h1{font-size:clamp(2rem,4.5vw,3rem);margin:8px 0 12px;text-transform:uppercase;letter-spacing:-.035em}
.page-hero .lede{font-size:1.02rem;color:rgba(255,255,255,.6);max-width:62ch;margin:0}
.page-hero .crumbs{padding:24px 0 0;color:rgba(255,255,255,.45)}
.page-hero .crumbs a{color:rgba(255,255,255,.7)}
.crumbs{font-size:.82rem;color:var(--ink-3);padding:18px 0}

/* ---------- long-form ---------- */
.prose{max-width:760px}
.prose h2{font-size:1.45rem;margin:46px 0 14px}
.prose h2:first-child{margin-top:0}
.prose h3{font-size:1.08rem;margin:28px 0 8px}
.prose p{color:var(--ink-2);margin:0 0 14px}
.prose ul,.prose ol{color:var(--ink-2);padding-left:22px;margin:0 0 16px}
.prose li{margin-bottom:8px}
.prose a{color:var(--accent);text-decoration:underline;text-underline-offset:2px}
.callout{background:var(--bg-2);border:1px solid var(--line);border-left:3px solid var(--accent);
  border-radius:0 var(--r) var(--r) 0;padding:16px 20px;margin:24px 0}
.callout b{display:block;margin-bottom:4px;font-size:.9rem}
.callout p{margin:0;font-size:.89rem;color:var(--ink-3)}

/* ---------- shop filters ---------- */
.filter-bar{display:flex;align-items:center;gap:18px;flex-wrap:wrap;
  padding-bottom:16px;border-bottom:1px solid var(--line);margin-bottom:16px}
.chips{display:flex;gap:8px;flex-wrap:wrap;flex:1}
.chip{border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 16px;
  font-size:.84rem;font-weight:650;cursor:pointer;font-family:inherit;color:var(--ink-2);transition:.15s}
.chip:hover{border-color:var(--ink)}
.chip.active{background:var(--ink);color:#fff;border-color:var(--ink)}
.sort{font-size:.84rem;color:var(--ink-3);display:flex;align-items:center;gap:8px;font-weight:650}
.sort select{border:1px solid var(--line);border-radius:9px;padding:8px 11px;
  font-family:inherit;font-size:.86rem;background:#fff;color:var(--ink)}
.count{font-size:.83rem;margin:0 0 20px}

/* ---------- support / contact ---------- */
.support-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.support-card{border:1px solid var(--line);border-radius:var(--r-lg);padding:22px;background:#fff;transition:.18s;display:block}
.support-card:hover{box-shadow:var(--shadow);transform:translateY(-3px);border-color:var(--ink)}
.support-card svg{width:24px;height:24px;stroke:var(--ink);margin-bottom:12px}
.support-card b{display:block;margin-bottom:3px}
.support-card small{color:var(--ink-3);font-size:.83rem}
.contact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:34px}
.contact-card{border:1px solid var(--line);border-radius:var(--r-lg);padding:24px;background:#fff;transition:.18s}
.contact-card:hover{box-shadow:var(--shadow);border-color:var(--ink)}
.contact-card svg{width:24px;height:24px;stroke:var(--ink);margin-bottom:12px}
.contact-card b{display:block;font-size:.78rem;color:var(--ink-3);font-weight:650;
  letter-spacing:.1em;text-transform:uppercase}
.contact-card .big{display:block;font-size:1.12rem;font-weight:750;margin:4px 0 5px}
.contact-card small{color:var(--ink-3);font-size:.82rem}
.two-col{display:grid;grid-template-columns:1.05fr .95fr;gap:22px;align-items:start}
.lang-row{display:flex;gap:8px;flex-wrap:wrap}
.lang-row span{background:var(--bg-2);border:1px solid var(--line);border-radius:999px;
  padding:6px 13px;font-size:.84rem;font-weight:600}

/* ---------- product detail: compact, buying decision first ---------- */
.crumbs{display:flex;align-items:center;gap:8px;font-size:.82rem;color:var(--ink-3);padding:14px 0}
.crumbs a:hover{color:var(--ink)}
.crumbs span{color:var(--line)}
.crumbs span:last-child{color:var(--ink-3)}

.pdp{display:grid;gap:22px;padding-bottom:40px;align-items:start}
@media (min-width:900px){
  .pdp{grid-template-columns:minmax(0,54fr) minmax(330px,46fr);gap:48px}
  .pdp-info{position:sticky;top:88px}
}
.pdp-media{min-width:0}
.gallery-main{position:relative;background:var(--bg-2);border:1px solid var(--line);
  border-radius:var(--radius-lg);aspect-ratio:1;overflow:hidden}
.gallery-main img{width:100%;height:100%;object-fit:cover}
.gallery-main .off-badge{top:0;left:0}
.thumbs{display:flex;gap:8px;margin-top:10px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}
.thumbs::-webkit-scrollbar{display:none}
.thumb{flex:0 0 60px;height:60px;padding:0;border:2px solid transparent;border-radius:10px;
  overflow:hidden;background:var(--bg-2);cursor:pointer;transition:border-color .2s}
.thumb img{width:100%;height:100%;object-fit:cover}
.thumb.active{border-color:var(--ink)}

.pdp-info{min-width:0}
.pdp-info h1{font-size:clamp(1.45rem,2.8vw,1.9rem);letter-spacing:-.03em;margin:0;line-height:1.2}

/* price, saving and stock on one line — the whole buying decision at a glance */
.price-block{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin:12px 0 0}
.price-block .now{font-size:1.85rem;font-weight:780;letter-spacing:-.035em;line-height:1}
.price-block .was{color:var(--ink-3);text-decoration:line-through;font-size:.95rem}
.off-pill{background:var(--accent);color:#fff;font-weight:700;font-size:.74rem;
  padding:4px 9px;border-radius:999px;letter-spacing:.01em}
.stock-dot{font-size:.8rem;font-weight:650;margin-left:auto;white-space:nowrap}
.stock-dot.yes{color:var(--green)} .stock-dot.no{color:#b3261e}
.stock-dot::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;
  background:currentColor;margin-right:6px;vertical-align:middle}

.pdp-lede{color:var(--ink-2);margin:12px 0 0;font-size:.92rem;line-height:1.55;
  display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.variant-block{margin-top:16px}

.buy-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:18px 0 0}
.buy-row .btn{width:100%;min-height:48px;padding:0 16px}
@media (max-width:380px){ .buy-row{grid-template-columns:1fr} }
.buy-msg{margin:10px 0 0;font-size:.85rem;color:var(--ink-2)}
.buy-msg-err{color:#b3261e}

.delivery-note{margin:14px 0 0;padding:12px 14px;background:var(--bg-2);
  border-radius:var(--radius);font-size:.86rem;color:var(--ink-2);line-height:1.5}
.delivery-note::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;
  background:var(--green);margin-right:8px;vertical-align:middle}

.trust-micro{list-style:none;display:flex;flex-wrap:wrap;gap:8px 16px;margin:16px 0 0;padding:14px 0 0;
  border-top:1px solid var(--line);font-size:.82rem;color:var(--ink-3)}
.trust-micro a{text-decoration:underline;text-underline-offset:2px}
.trust-micro a:hover{color:var(--ink)}

/* everything that is not a buying decision, folded away */
.details-block{border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  padding:0;margin:0 0 40px}
.details-block > summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;
  align-items:center;padding:18px 0;font-weight:650;min-height:48px}
.details-block > summary::-webkit-details-marker{display:none}
.details-block > summary::after{content:"";width:9px;height:9px;flex:none;
  border-right:1.8px solid var(--ink-3);border-bottom:1.8px solid var(--ink-3);
  transform:rotate(45deg);transition:transform .3s}
.details-block[open] > summary::after{transform:rotate(225deg)}
.prose{max-width:72ch;padding-bottom:24px}
.prose h2,.prose h3{font-size:1.05rem;margin:22px 0 8px}
.prose p{margin:0 0 12px;color:var(--ink-2)}
.prose ul,.prose ol{margin:0 0 14px;padding-left:22px;color:var(--ink-2)}
.prose li{margin-bottom:5px}

/* variant controls rendered by bindVariants() */
[data-az-option]{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
[data-az-option] button,[data-az-option] label{min-height:44px;padding:0 16px;display:inline-flex;
  align-items:center;border:1px solid var(--line);border-radius:999px;background:#fff;
  font:inherit;font-size:.9rem;cursor:pointer}
[data-az-option] [aria-pressed="true"],[data-az-option] .is-selected{
  border-color:var(--ink);background:var(--ink);color:#fff}
[data-az-option] [disabled]{opacity:.4;cursor:not-allowed;text-decoration:line-through}

/* mobile sticky buy bar — the checkout push */
.buybar{position:fixed;left:0;right:0;bottom:0;z-index:60;display:flex;align-items:center;gap:12px;
  padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:rgba(255,255,255,.96);
  backdrop-filter:blur(12px);border-top:1px solid var(--line)}
.buybar[hidden]{display:none}
@media (min-width:900px){ .buybar{display:none!important} }
.buybar-price{display:flex;align-items:baseline;gap:7px;flex:1;min-width:0}
.buybar-price b{font-size:1.15rem;font-weight:780;letter-spacing:-.02em}
.buybar-price span{color:var(--ink-3);text-decoration:line-through;font-size:.82rem}
.buybar .btn{min-height:46px;padding:0 26px;flex:0 0 auto}

/* ---------- cart drawer ---------- */
.drawer-bg{position:fixed;inset:0;background:rgba(10,10,11,.5);opacity:0;pointer-events:none;transition:.2s;z-index:98}
.drawer-bg.open{opacity:1;pointer-events:auto}
.drawer{position:fixed;top:0;right:0;height:100%;width:min(410px,100%);background:#fff;z-index:99;
  transform:translateX(100%);transition:.25s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column}
.drawer.open{transform:none}
.drawer-head{display:flex;align-items:center;justify-content:space-between;padding:20px;border-bottom:1px solid var(--line)}
.drawer-head b{font-size:.8rem;letter-spacing:.14em;text-transform:uppercase}
.drawer-head button{border:0;background:none;font-size:1.5rem;cursor:pointer;color:var(--ink-3);line-height:1}
.drawer-body{flex:1;overflow-y:auto;padding:8px 20px}
.drawer-foot{border-top:1px solid var(--line);padding:20px}
.ci{display:flex;gap:13px;padding:16px 0;border-bottom:1px solid var(--line)}
.ci-img{width:72px;height:72px;background:var(--bg-2);border-radius:var(--r);display:grid;
  place-items:center;padding:6px;flex:none;overflow:hidden}
.ci-img img{width:100%;height:100%;object-fit:contain}
.ci-info{flex:1;min-width:0}
.ci-info b{display:block;font-size:.92rem}
.ci-info small{color:var(--ink-3);font-size:.81rem}
.ci-bot{display:flex;align-items:center;justify-content:space-between;margin-top:9px}
.ci-rm{border:0;background:none;color:var(--ink-3);font-size:.78rem;cursor:pointer;text-decoration:underline;padding:0}
.empty{text-align:center;padding:60px 20px;color:var(--ink-3)}

/* ---------- checkout ---------- */
.checkout{display:grid;grid-template-columns:1.15fr .85fr;gap:36px;padding:28px 0 70px;align-items:start}
.panel{border:1px solid var(--line);border-radius:var(--r-lg);padding:26px;background:#fff}
.panel h2{font-size:.8rem;margin-bottom:20px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}
.field{margin-bottom:16px}
.field label{display:block;font-size:.83rem;font-weight:650;margin-bottom:6px}
.field input,.field textarea,.field select{width:100%;border:1px solid var(--line);border-radius:var(--r);
  padding:12px 14px;font-size:.95rem;font-family:inherit;background:#fff;color:var(--ink)}
.field input:focus,.field textarea:focus{outline:2px solid var(--ink);outline-offset:-1px;border-color:transparent}
.two{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.pay-opt{display:flex;gap:12px;border:1px solid var(--line);border-radius:var(--r);padding:15px;
  margin-bottom:11px;cursor:pointer;align-items:flex-start}
.pay-opt.sel{border-color:var(--ink);background:var(--bg-2)}
.pay-opt input{margin-top:3px;accent-color:var(--ink)}
.pay-opt b{display:block;font-size:.94rem}
.pay-opt small{color:var(--ink-3);font-size:.81rem}
.summary{position:sticky;top:92px;background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-lg);padding:24px}
.sum-row{display:flex;justify-content:space-between;padding:7px 0;font-size:.92rem;color:var(--ink-2)}
.sum-row.total{border-top:1px solid var(--line);margin-top:10px;padding-top:14px;
  font-size:1.16rem;font-weight:780;color:var(--ink)}
.note{background:var(--green-soft);color:var(--green);border-radius:var(--r);padding:11px 14px;
  font-size:.84rem;font-weight:650;margin-top:14px}
.err{background:#fdecea;color:#b3261e;border-radius:var(--r);padding:11px 14px;font-size:.87rem;margin-bottom:16px}
.done{max-width:560px;margin:70px auto;text-align:center}
.done .tick{width:64px;height:64px;border-radius:50%;background:var(--green-soft);
  display:grid;place-items:center;margin:0 auto 20px}
.done .tick svg{width:30px;height:30px;stroke:var(--green)}
.ref{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:var(--bg-2);
  border:1px solid var(--line);border-radius:var(--r);padding:12px 18px;display:inline-block;
  font-size:1.08rem;font-weight:700;letter-spacing:.04em}

/* ---------- responsive ---------- */
@media (max-width:960px){
  .hero-grid,.pdp,.checkout,.two-col{grid-template-columns:1fr;gap:28px}
  .stats-grid{grid-template-columns:1fr 1fr}
  .tiles{grid-template-columns:1fr 1fr}
  .feat,.reviews,.foot-grid,.contact-grid{grid-template-columns:1fr}
  .support-grid{grid-template-columns:1fr 1fr}
  .nav{gap:16px}
  .nav-links{gap:16px;font-size:.7rem}
  .nav-links a:nth-child(n+3){display:none}
  .summary{position:static}
  .checkout .summary{order:-1}
  section{padding:46px 0}
  .stage{order:-1}
  .stage img{max-height:270px}
  .hero-grid{padding-block:34px 44px}
}
@media (max-width:540px){
  .stats-grid,.tiles,.support-grid{grid-template-columns:1fr}
  .two{grid-template-columns:1fr}
  .grid{grid-template-columns:1fr 1fr;gap:12px}
  .card-body{padding:12px 12px 15px}
  .card-body h3{font-size:.9rem}
  .price .now{font-size:1.05rem}
  .off-badge{font-size:.68rem;padding:5px 9px}
  .tag{font-size:.56rem;padding:4px 7px;top:8px;right:8px}
  .buy-row .btn{min-width:0}
}
@media (prefers-reduced-motion:reduce){
  .marquee-track{animation:none}
  .stage img{animation:none}
  *{transition-duration:.01ms!important}
}

/* ============================================================
   Additions for the SDK build: search, account, banner slots,
   catalogue paging. Same design language as above.
   ============================================================ */
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-9999px}
.skip:focus{left:16px;top:16px;z-index:100;background:#fff;color:var(--ink);padding:8px 12px;border-radius:var(--r)}

/* header icon actions */
.icon-btn{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:999px;
  border:1px solid transparent;background:transparent;cursor:pointer;color:#fff;transition:.15s}
.icon-btn:hover{border-color:rgba(255,255,255,.3)}
.icon-btn svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.7;
  stroke-linecap:round;stroke-linejoin:round}
.cart-btn svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.7}

/* search sheet */
.search-sheet{position:fixed;inset:0;z-index:99;display:none}
.search-sheet[open]{display:block}
.search-scrim{position:absolute;inset:0;background:rgba(10,10,11,.5)}
.search-panel{position:relative;background:#fff;border-bottom:1px solid var(--line);padding:18px 0 24px}
.search-bar{display:flex;align-items:center;gap:12px;background:var(--bg-2);
  border:1px solid var(--line);border-radius:999px;padding:0 16px;height:50px}
.search-bar input{flex:1;border:0;background:none;font:inherit;outline:none;min-width:0;color:var(--ink)}
.search-bar svg{width:18px;height:18px;stroke:var(--ink-3);fill:none;stroke-width:1.7;flex:none}
.search-bar .icon-btn{color:var(--ink-3)}
.search-bar .icon-btn:hover{border-color:var(--line)}
.search-status{color:var(--ink-3);font-size:.82rem;margin:12px 0 0;min-height:18px}
.search-results{margin-top:10px;max-height:min(56vh,460px);overflow:auto;display:flex;flex-direction:column;gap:4px}
.search-hit{display:flex;gap:12px;align-items:center;padding:8px;border-radius:var(--r)}
.search-hit:hover{background:var(--bg-2)}
.search-hit img{width:52px;height:52px;border-radius:8px;flex:none;background:var(--bg-2);object-fit:contain}
.search-hit b{display:block;font-size:.92rem}
.search-hit span{color:var(--ink-3);font-size:.8rem}

/* banner slots, until the real banners land */
.banner{position:relative;background:var(--dark);overflow:hidden}
.banner-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;scroll-behavior:smooth}
.banner-track::-webkit-scrollbar{display:none}
.banner-slide{flex:0 0 100%;scroll-snap-align:center;position:relative;
  min-height:clamp(380px,56vh,560px);display:grid;align-items:center;justify-items:stretch}
/* The copy must sit on the same gutter as every other section. */
.banner-slide > .wrap{width:100%;justify-self:stretch}
.banner-slide img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.banner-slot{position:absolute;inset:16px;z-index:0;border:1px dashed #33363f;border-radius:var(--r-lg);
  background:var(--dark-2);display:grid;place-content:center;gap:4px;text-align:center;color:#6b7080}
.banner-slot span{font-weight:650;font-size:.95rem}
.banner-slot small{font-size:.78rem;opacity:.8}
.banner-ui{position:absolute;left:0;right:0;bottom:18px;z-index:3;display:flex;
  align-items:center;gap:12px;justify-content:center}
.banner-dots{display:flex;gap:7px}
.banner-dots button{width:8px;height:8px;padding:0;border:0;border-radius:999px;
  background:rgba(255,255,255,.35);cursor:pointer;transition:width .35s,background .3s}
.banner-dots button[aria-current="true"]{width:26px;background:#fff}
.banner-pause{width:30px;height:30px;border-radius:999px;border:1px solid rgba(255,255,255,.25);
  background:transparent;color:#fff;cursor:pointer;display:grid;place-items:center;font-size:10px}
.banner-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:3;width:42px;height:42px;
  border-radius:999px;border:1px solid rgba(255,255,255,.25);background:rgba(0,0,0,.4);color:#fff;
  cursor:pointer;display:none;place-items:center;font-size:1.2rem}
@media (min-width:900px){ .banner-arrow{display:grid} }
.banner-arrow.prev{left:18px} .banner-arrow.next{right:18px}

/* states */
.state{color:var(--ink-3);padding:28px 0}
.state-error{color:#b3261e}
.load-more{display:flex;justify-content:center;margin-top:32px}
.reviews-empty{border:1px dashed var(--line);border-radius:var(--r-lg);padding:46px 24px;
  text-align:center;background:#fff;grid-column:1/-1}
.reviews-empty b{display:block;font-size:1.1rem}
.reviews-empty p{color:var(--ink-3);margin:8px auto 0;max-width:48ch;font-size:.92rem}

/* account */
.account-wrap{max-width:460px;margin-inline:auto}
.panel{border:1px solid var(--line);border-radius:var(--r-lg);padding:26px;background:#fff}
.acct-row{display:flex;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid var(--line)}
.acct-row:last-child{border-bottom:0}
.acct-row span{color:var(--ink-3)}
.tabs{display:flex;gap:6px;margin-bottom:22px;border-bottom:1px solid var(--line)}
.tabs button{background:none;border:0;padding:12px 16px;font:inherit;cursor:pointer;color:var(--ink-3);
  border-bottom:2px solid transparent;margin-bottom:-1px}
.tabs button[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--accent)}
.msg{border-radius:var(--r);padding:11px 14px;font-size:.86rem;margin-bottom:16px}
.msg-err{background:#fdecea;color:#b3261e}
.msg-ok{background:var(--green-soft);color:var(--green)}
.link-btn{background:none;border:0;padding:0;font:inherit;color:var(--accent);text-decoration:underline;cursor:pointer}

/* photo rail */
.rail{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding-bottom:8px}
.rail::-webkit-scrollbar{display:none}
.rail figure{flex:0 0 76%;scroll-snap-align:center;margin:0;border-radius:var(--r-lg);
  overflow:hidden;background:var(--bg-2);border:1px solid var(--line)}
@media (min-width:768px){ .rail figure{flex-basis:36%} }
@media (min-width:1100px){ .rail figure{flex-basis:27%} }
.rail img{width:100%;aspect-ratio:4/5;object-fit:cover}

/* Placeholder for a product with no image — must hold its own width or the
   grid collapses and the row shifts. */
.ph{width:100%;display:block;border-radius:inherit;
  background:repeating-linear-gradient(45deg,var(--bg-2),var(--bg-2) 10px,var(--line) 10px,var(--line) 11px)}

/* ============================================================
   Reconciliation layer.
   The JS was written against a newer token set than the CSS that
   is in place, so these aliases and rules close the gap. Also
   fixes the mobile header, contrast and tap-target failures.
   ============================================================ */
:root{
  /* aliases the JS already references */
  --radius:var(--r); --radius-lg:var(--r-lg);
  --s1:4px; --s2:8px; --s3:12px; --s4:16px; --s5:24px;
  --s6:32px; --s7:48px; --s8:64px;
  --t-xs:.82rem; --t-s:1rem; --t-m:1.15rem;

  /* contrast: #8a909c on white is 3.21:1 and is the default secondary colour */
  --ink-3:#6b7280;
  /* a 1.25:1 hairline is invisible as a control border */
  --line-strong:#c3c8d0;
  /* white on #ff4438 is 3.42:1; this keeps the family and passes 4.5:1 */
  --accent:#d93a2b; --accent-dark:#b92f22;
}

/* ---------- mobile header: the actions must always be reachable ---------- */
.nav{gap:16px}
.logo,.nav-right{flex:none}
.nav-links{min-width:0;overflow:hidden}
@media (max-width:860px){
  .nav-links{display:none}          /* categories live in the shop toolbar */
  .nav{gap:10px}
  .cart-btn{padding:9px 12px;font-size:0;gap:0}   /* icon + count only */
  .cart-btn svg{width:18px;height:18px}
  .cart-count{font-size:.7rem}
}

/* ---------- button variants the JS emits ---------- */
.btn-brand{background:var(--accent);color:#fff}
.btn-brand:hover{background:var(--accent-dark)}
.btn-full{width:100%}
.btn-outline{background:#fff;color:var(--ink);border-color:var(--line-strong)}
.btn-outline:hover{border-color:var(--ink)}

/* ---------- shop toolbar ---------- */
.section-head{display:flex;justify-content:space-between;align-items:flex-end;
  gap:16px;flex-wrap:wrap;margin-bottom:22px}
.section-head p{color:var(--ink-3);margin:6px 0 0}
.toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;
  padding-bottom:16px;border-bottom:1px solid var(--line);margin-bottom:18px}
.sort-select{min-height:44px;border:1px solid var(--line-strong);border-radius:999px;
  padding:0 16px;font:inherit;font-size:16px;background:#fff;color:var(--ink);cursor:pointer}
.result-count{color:var(--ink-3);font-size:.85rem;margin:0 0 18px}

/* ---------- cart quantity stepper ---------- */
.qty{display:inline-flex;align-items:center;border:1px solid var(--line-strong);
  border-radius:999px;overflow:hidden}
.qty button{width:40px;height:40px;border:0;background:#fff;font-size:1.05rem;
  cursor:pointer;color:var(--ink-2);line-height:1}
.qty button:hover{background:var(--bg-2)}
.qty span{min-width:34px;text-align:center;font-weight:650;font-size:.92rem}

/* ---------- account form ---------- */
.field{margin-bottom:16px}
.field label{display:block;font-size:.84rem;font-weight:650;margin-bottom:7px}
.field input{width:100%;min-height:48px;border:1px solid var(--line-strong);
  border-radius:var(--r);padding:0 14px;font:inherit;font-size:16px;background:#fff;color:var(--ink)}
.field input:focus{outline:2px solid var(--ink);outline-offset:-1px;border-color:transparent}
.field .hint{font-size:.82rem;color:var(--ink-3);margin:7px 0 0}

/* ---------- control borders and focus ---------- */
.chip,.card,.pincode input,.deliver input{border-color:var(--line-strong)}
:focus-visible{outline:2px solid var(--ink);outline-offset:2px;border-radius:4px}
.band :focus-visible,.hero :focus-visible,.banner :focus-visible{outline-color:#fff}
.cart-btn{border-color:rgba(255,255,255,.55)}
.banner-arrow,.banner-pause{border-color:rgba(255,255,255,.55)}
.btn-ghost-light{border-color:rgba(255,255,255,.55)}
.foot-bot{color:rgba(255,255,255,.66)}

/* ---------- tap targets ---------- */
.banner-dots button{position:relative}
.banner-dots button::before{content:"";position:absolute;inset:-18px -8px}
.banner-pause{width:40px;height:40px}
.drawer-head button{width:44px;height:44px;display:grid;place-items:center;font-size:1.6rem}
.nav-links a{display:inline-flex;align-items:center;min-height:44px}
.foot-grid a{padding:9px 0}
.sec-head .link{display:inline-flex;align-items:center;min-height:44px}
details > summary{min-height:44px;align-items:center}
.card-body h3 a{display:inline-block;padding:2px 0}

/* ---------- carousel arrows must not sit on the copy ---------- */
@media (min-width:900px){
  .banner-arrow.prev{left:max(10px, calc((100vw - var(--max)) / 2 - 56px))}
  .banner-arrow.next{right:max(10px, calc((100vw - var(--max)) / 2 - 56px))}
}

/* Hero copy overlays the slider: autoplay changes the picture behind it,
   never the offer in front of it. */
.banner{position:relative}
.banner-tail{position:static}
.banner > .hero-grid{position:absolute;inset:0;z-index:2;pointer-events:none;
  display:grid;align-content:center}
.banner > .hero-grid > *{pointer-events:auto}
.banner > .hero-grid .hero-cta a{pointer-events:auto}
@media (max-width:899px){
  .banner > .hero-grid{position:relative;inset:auto;background:var(--dark);padding-block:28px 32px}
  .banner-slide{min-height:clamp(260px,42vh,360px)}
}

/* ============================================================
   Header: three columns — logo left, menu centred, actions right.
   A flex row left-packed the logo and menu together and left a
   dead gap in the middle on wide screens.
   ============================================================ */
.nav{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px}
.nav > .logo{justify-self:start}
.nav > .nav-links{justify-self:center}
.nav > .nav-right{justify-self:end;margin-left:0}
@media (max-width:860px){
  .nav{grid-template-columns:auto 1fr;gap:10px}
  .nav > .nav-right{grid-column:2}
}

/* ============================================================
   SDK-rendered forms (newsletter, contact) carry their own markup
   with no styling of their own, so they arrived as raw browser
   defaults. Theme them here, light by default, dark on dark.
   ============================================================ */
.aez-newsletter,form[class*="aez-"]{display:flex;flex-direction:column;gap:10px;margin:0}
.aez-field{display:block;margin:0}
.aez-field label,form[class*="aez-"] label{display:block;font-size:.78rem;font-weight:600;
  letter-spacing:.02em;margin:0 0 7px;color:var(--ink-2)}
.aez-newsletter input,form[class*="aez-"] input,form[class*="aez-"] textarea{
  width:100%;min-height:46px;box-sizing:border-box;border:1px solid var(--line-strong);
  border-radius:999px;background:#fff;color:var(--ink);padding:0 16px;font:inherit;font-size:16px}
form[class*="aez-"] textarea{border-radius:var(--r);padding:12px 16px;min-height:110px;resize:vertical}
.aez-newsletter input::placeholder,form[class*="aez-"] input::placeholder{color:var(--ink-3)}
.aez-newsletter input:focus,form[class*="aez-"] input:focus,form[class*="aez-"] textarea:focus{
  outline:2px solid var(--ink);outline-offset:-1px;border-color:transparent}
.aez-newsletter button,form[class*="aez-"] button{min-height:46px;border:0;border-radius:999px;
  background:var(--accent);color:#fff;font:inherit;font-weight:650;cursor:pointer;
  padding:0 24px;align-self:flex-start;transition:background .18s ease}
.aez-newsletter button:hover,form[class*="aez-"] button:hover{background:var(--accent-dark)}
.aez-form-note{margin:0;font-size:.8rem;color:var(--ink-3);min-height:1em}

/* dark surfaces: the footer and the dark band */
footer .aez-field label,footer form[class*="aez-"] label{color:rgba(255,255,255,.62)}
footer .aez-newsletter input,footer form[class*="aez-"] input,
footer form[class*="aez-"] textarea{background:var(--dark-2);border-color:#2b2f3a;color:#fff}
footer .aez-newsletter input::placeholder,footer form[class*="aez-"] input::placeholder{
  color:rgba(255,255,255,.4)}
footer .aez-newsletter input:focus,footer form[class*="aez-"] input:focus{
  outline-color:#fff;border-color:transparent}
footer .aez-form-note{color:rgba(255,255,255,.62)}

/* Feature band: four even cards, one line of copy each. */
.band .feat{display:grid;grid-template-columns:1fr;gap:14px}
@media (min-width:620px){ .band .feat{grid-template-columns:repeat(2,1fr);gap:16px} }
@media (min-width:1040px){ .band .feat{grid-template-columns:repeat(4,1fr)} }
.feat-card{background:var(--dark-2);border:1px solid var(--line-dark);border-radius:var(--r-lg);
  padding:24px 20px;display:flex;flex-direction:column;gap:10px;min-height:0}
.feat-card svg{width:22px;height:22px;stroke:#fff;opacity:.9;flex:none}
.feat-card b{font-size:1rem;font-weight:650;letter-spacing:-.01em;color:#fff}
.feat-card p{margin:0;color:rgba(255,255,255,.62);font-size:.88rem;line-height:1.5}

/* Hero copy, styled here rather than inline so the overlay rules can win. */
.banner > .hero-grid{align-items:center;z-index:2}
.hero-lede{color:rgba(255,255,255,.72);max-width:46ch;margin:0 0 6px}
.hero-was{text-decoration:line-through;opacity:.6;margin-left:6px}
.banner > .hero-grid .hero-cta{align-items:center}
