/* ============================================================
   VapeHub — design system (Premium Neon)
   ============================================================ */
:root{
  --ink:#0E1116; --surface:#171A21; --surface-2:#1F2430; --line-dark:rgba(255,255,255,.10);
  --violet:#7B5CFF; --violet-2:#9a82ff; --mint:#17E0B0; --mint-2:#5cf0cf;
  --paper:#ffffff; --light:#F6F7FB; --light-2:#eef0f6;
  --text:#12141A; --muted:#626B7D; --line:#E6E8EF;
  --wrap:1240px; --radius:14px; --radius-lg:20px;
  --shadow:0 18px 44px rgba(14,17,22,.14);
  --shadow-violet:0 16px 40px rgba(123,92,255,.35);
  --grad:linear-gradient(105deg,var(--violet),var(--mint));
  --ff-display:"Baloo 2",system-ui,sans-serif;
  --ff-body:"Nunito",system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  --step:1rem;
}
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; overflow-x:clip; }
body{ margin:0; font-family:var(--ff-body); font-size:var(--step); line-height:1.65; color:var(--text); background:var(--paper); -webkit-font-smoothing:antialiased; overflow-x:clip; }
img{ max-width:100%; height:auto; display:block; }
a{ color:var(--violet); text-decoration:none; }
h1,h2,h3,h4{ font-family:var(--ff-display); font-weight:700; line-height:1.14; letter-spacing:-.005em; margin:0 0 .5em; color:var(--ink); }
.wrap{ width:100%; max-width:var(--wrap); margin:0 auto; padding:0 24px; }
.eyebrow{ font-family:var(--ff-body); font-weight:700; font-size:.78rem; letter-spacing:.16em; text-transform:uppercase; color:var(--violet); }
.eyebrow.on-dark{ color:var(--mint); }
.grad-text{ background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent; }
.section{ padding:3.6rem 0; }
.section-head{ max-width:640px; margin:0 auto 2rem; text-align:center; }
.section-head h2{ font-size:clamp(1.8rem,1.3rem + 2vw,2.7rem); }
.section-head p{ color:var(--muted); font-size:1.05rem; }
/* split header — commerce style: title left, "view all" right */
.section-head.split{ max-width:none; margin:0 0 2rem; text-align:left; display:flex; align-items:flex-end; justify-content:space-between; gap:1rem; flex-wrap:wrap; }
@media (max-width:760px){
  .section-head.split{ flex-direction:column; align-items:stretch; gap:.9rem; margin-bottom:1.4rem; }
  .section-head.split .dcar-controls{ justify-content:space-between; width:100%; }
  .section-head.split > a.see-all{ align-self:flex-start; }
}
.section-head.split h2{ margin-bottom:0; }
.see-all{ display:inline-flex; align-items:center; gap:.45em; font-weight:700; font-size:.94rem; color:var(--ink); border:1px solid var(--line); background:#fff; border-radius:999px; padding:.6em 1.2em; transition:.2s ease; white-space:nowrap; }
.see-all svg{ width:16px; height:16px; stroke:currentColor; fill:none; stroke-width:2.2; }
.see-all:hover{ border-color:var(--violet); color:var(--violet); transform:translateY(-2px); }

/* ---- scroll-reveal animation ---- */
.rv{ opacity:0; transform:translateY(34px); }
.rv.in{ opacity:1; transform:none; transition:opacity .75s ease, transform .75s cubic-bezier(.2,.7,.3,1); }
@media (prefers-reduced-motion: reduce){ .rv{ opacity:1; transform:none; } }

/* ---- buttons ---- */
.btn{ display:inline-flex; align-items:center; gap:.5em; font-family:var(--ff-display); font-weight:600; font-size:.98rem; padding:.9em 1.7em; border-radius:12px; border:1px solid transparent; cursor:pointer; transition:transform .16s ease, box-shadow .2s ease, background .2s ease, color .2s ease; white-space:nowrap; }
.btn-primary{ background:var(--grad); color:#fff; box-shadow:var(--shadow-violet); }
.btn-primary:hover{ transform:translateY(-2px); box-shadow:0 22px 48px rgba(123,92,255,.45); color:#fff; }
.btn-ghost{ background:transparent; color:#fff; border-color:rgba(255,255,255,.22); }
.btn-ghost:hover{ background:rgba(255,255,255,.08); transform:translateY(-2px); }
.btn-dark{ background:var(--ink); color:#fff; }
.btn-dark:hover{ transform:translateY(-2px); box-shadow:var(--shadow); color:#fff; }
.btn:active{ transform:scale(.97); }
@media (max-width:760px){ .woocommerce ul.products li.product .button{ font-size:.95rem!important; padding:.85em 1em!important; } }

/* ============================================================
   Announce + Header
   ============================================================ */
.announce{ background:var(--ink); color:#c7ccd6; font-size:.84rem; border-bottom:1px solid var(--line-dark); }
.announce .wrap{ display:flex; align-items:center; justify-content:center; gap:.6rem; min-height:40px; text-align:center; }
.announce b{ color:var(--mint); }

.site-header{ position:sticky; top:0; z-index:60; background:rgba(14,17,22,.97); border-bottom:1px solid var(--line-dark); }
.site-header .wrap{ display:flex; align-items:center; gap:1.5rem; min-height:74px; }
.brand{ display:flex; align-items:center; gap:.55rem; font-family:var(--ff-display); font-weight:800; font-size:1.5rem; letter-spacing:-.03em; color:#fff; }
.brand .mark{ width:34px; height:34px; border-radius:10px; background:var(--grad); display:grid; place-items:center; box-shadow:var(--shadow-violet); }
.brand .mark svg{ width:20px; height:20px; }
.brand b{ background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent; }
.main-nav{ margin-left:1rem; }
.nav-extra{ display:none; }
.main-nav ul{ list-style:none; display:flex; gap:1.7rem; margin:0; padding:0; align-items:center; }
.main-nav a{ font-family:var(--ff-display); font-weight:600; font-size:1.05rem; color:#d4d8e0; padding:.4em 0; position:relative; }
.main-nav a:hover{ color:#fff; }
.main-nav a::after{ content:""; position:absolute; left:0; bottom:-3px; height:2px; width:0; background:var(--grad); transition:width .2s ease; }
.main-nav a:hover::after{ width:100%; }
.header-actions{ margin-left:auto; display:flex; align-items:center; gap:.4rem; }
.hicon{ width:42px; height:42px; border-radius:11px; display:grid; place-items:center; color:#d4d8e0; position:relative; transition:background .18s ease, color .18s ease; background:none; border:0; padding:0; cursor:pointer; -webkit-appearance:none; appearance:none; }
.hicon:hover{ background:rgba(255,255,255,.08); color:#fff; }
.hicon svg{ width:20px; height:20px; stroke:currentColor; fill:none; stroke-width:1.8; }
.cart-count{ position:absolute; top:4px; right:4px; min-width:17px; height:17px; padding:0 4px; border-radius:9px; background:var(--mint); color:var(--ink); font-size:.66rem; font-weight:800; display:grid; place-items:center; }
.nav-toggle{ display:none; background:none; border:0; cursor:pointer; padding:.4rem; order:99; margin-left:.25rem; }
.nav-toggle span{ display:block; width:24px; height:2px; background:#fff; margin:5px 0; border-radius:2px; transition:.2s; }

/* ============================================================
   Hero banner slider (light, CVW-style)
   ============================================================ */
.hero-slider{ position:relative; overflow:hidden; border-bottom:1px solid var(--line); background:var(--ink); }
.hsl-track{ display:flex; transition:transform .55s cubic-bezier(.7,0,.3,1); }
.hsl-slide{ min-width:100%; }
.hsl-slide.t-violet{ background:radial-gradient(65% 120% at 82% 8%, rgba(123,92,255,.45), transparent 62%), radial-gradient(45% 100% at 6% 100%, rgba(23,224,176,.22), transparent 55%), var(--ink); }
.hsl-slide.t-mint{ background:radial-gradient(65% 120% at 82% 8%, rgba(23,224,176,.35), transparent 62%), radial-gradient(45% 100% at 6% 100%, rgba(123,92,255,.25), transparent 55%), #0d1418; }
.hsl-slide.t-warm{ background:radial-gradient(65% 120% at 82% 8%, rgba(255,140,66,.38), transparent 62%), radial-gradient(45% 100% at 6% 100%, rgba(123,92,255,.22), transparent 55%), #14100e; }
.hsl-slide{ position:relative; }
.hero-slider .hsl-slide.has-bg{ background-image:var(--bn) !important; background-size:cover !important; background-position:center right !important; background-repeat:no-repeat !important; }
@media (max-width:860px){ .hero-slider .hsl-slide.has-bg{ background-image:var(--bn-m) !important; background-position:center top !important; } }
.hsl-slide.has-bg::before{ content:""; position:absolute; inset:0; background:linear-gradient(90deg, rgba(8,10,14,.88) 0%, rgba(8,10,14,.55) 38%, rgba(8,10,14,.10) 62%, rgba(8,10,14,0) 100%); }
.hsl-slide > .wrap{ position:relative; z-index:2; }
.hsl-grid{ display:grid; grid-template-columns:minmax(0,660px); align-items:center; padding-top:3.2rem; padding-bottom:4rem; min-height:470px; }
@media (max-width:860px){ .hsl-slide.has-bg::before{ background:linear-gradient(180deg, rgba(8,10,14,.88) 0%, rgba(8,10,14,.62) 55%, rgba(8,10,14,.35) 100%); } }
.hsl-chip{ display:inline-block; background:rgba(255,255,255,.10); border:1px solid rgba(255,255,255,.16); color:var(--mint); font-size:.72rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; padding:.45em 1em; border-radius:999px; }
.hsl-h{ font-size:clamp(2.2rem,1.5rem + 3.2vw,3.6rem); margin:.7rem 0 .7rem; color:#fff; }
.hsl-text > p{ color:#c2c8d4; font-size:1.12rem; max-width:50ch; margin:0 0 1.6rem; }
.hsl-text > p b{ color:#fff; }
.hsl-cta{ display:flex; gap:.9rem; flex-wrap:wrap; }
.btn-outline{ background:rgba(255,255,255,.06); color:#fff; border-color:rgba(255,255,255,.24); }
.btn-outline:hover{ background:rgba(255,255,255,.12); color:#fff; transform:translateY(-2px); }
.hsl-media{ display:block; border-radius:var(--radius-lg); overflow:hidden; background:#fff; border:1px solid rgba(255,255,255,.16); box-shadow:0 30px 70px rgba(0,0,0,.5); transition:transform .25s ease; justify-self:end; width:min(400px,100%); }
.hsl-media img{ width:100%; aspect-ratio:1/1; object-fit:cover; display:block; }
.hsl-media:hover{ transform:translateY(-5px); }
/* chips inside dark slides */
.hsl-text .hero-chips{ margin-top:1.6rem; }
.hsl-text .chip{ background:rgba(255,255,255,.06); border-color:rgba(255,255,255,.14); color:#d4d8e0; }
/* nav: dots + arrows (on dark) */
.hsl-nav{ position:absolute; left:50%; transform:translateX(-50%); bottom:1.1rem; display:flex; align-items:center; justify-content:space-between; z-index:5; pointer-events:none; }
.hsl-dots{ display:flex; gap:.45rem; pointer-events:auto; }
.hsl-dot{ width:10px; height:10px; border-radius:999px; border:0; background:rgba(255,255,255,.30); cursor:pointer; padding:0; transition:.2s ease; }
.hsl-dot.on{ width:26px; background:#fff; }
.hsl-arrows{ display:flex; gap:.5rem; pointer-events:auto; }
.hsl-prev,.hsl-next{ width:38px; height:38px; border-radius:50%; border:1px solid rgba(255,255,255,.28); background:rgba(255,255,255,.08); color:#fff; font-size:1.3rem; line-height:1; cursor:pointer; display:grid; place-items:center; transition:.18s ease; }
.hsl-prev:hover,.hsl-next:hover{ background:rgba(255,255,255,.18); border-color:rgba(255,255,255,.5); }
@media (max-width:860px){
  .hsl-cta{ flex-direction:column; align-items:stretch; }
  .hsl-cta .btn{ justify-content:center; font-size:1.05rem; padding:1.05em 1.4em; border-radius:14px; }
  .hsl-cta .btn-primary{ box-shadow:0 14px 34px rgba(123,92,255,.5); }
  .hsl-grid{ grid-template-columns:1fr; gap:1.6rem; padding-top:2.2rem; padding-bottom:3.6rem; min-height:0; }
  .hsl-media{ justify-self:center; width:min(320px,86%); }
  .hsl-text .hero-chips{ display:none; }
}

/* ============================================================
   Hero (legacy dark — unused on home)
   ============================================================ */
.hero{ position:relative; background:var(--ink); color:#fff; overflow:hidden; padding:3.6rem 0 4.2rem; }
.hero::before{ content:""; position:absolute; top:-30%; right:-10%; width:60vw; height:60vw; max-width:760px; max-height:760px; border-radius:50%; background:radial-gradient(circle at 30% 30%, rgba(123,92,255,.55), transparent 62%); filter:blur(30px); z-index:0; }
.hero::after{ content:""; position:absolute; bottom:-40%; left:-15%; width:55vw; height:55vw; max-width:640px; max-height:640px; border-radius:50%; background:radial-gradient(circle at 50% 50%, rgba(23,224,176,.4), transparent 60%); filter:blur(40px); z-index:0; }
.hero .wrap{ position:relative; z-index:2; display:grid; grid-template-columns:1.1fr .9fr; gap:3rem; align-items:center; }
.hero h1{ font-size:clamp(2.4rem,1.6rem + 3.6vw,4rem); color:#fff; margin:.6rem 0 .8rem; }
.hero p.lead{ color:#c2c8d4; font-size:1.15rem; max-width:52ch; margin:0 0 1.8rem; }
.hero-cta{ display:flex; gap:.9rem; flex-wrap:wrap; }
.hero-chips{ display:flex; flex-wrap:wrap; gap:.6rem; margin-top:2rem; }
.chip{ display:inline-flex; align-items:center; gap:.45rem; padding:.5em .9em; border-radius:999px; background:rgba(255,255,255,.06); border:1px solid var(--line-dark); font-size:.82rem; font-weight:600; color:#d4d8e0; }
.chip .dot{ width:7px; height:7px; border-radius:50%; background:var(--mint); }
/* hero visual card */
.hero-visual{ position:relative; min-height:450px; display:flex; flex-direction:column; gap:14px; }
.hero-collage{ display:grid; grid-template-columns:1.18fr 1fr; grid-template-rows:1fr 1fr; gap:14px; flex:1; min-height:380px; }
.hero-collage .hs-img{ position:relative; display:block; border-radius:18px; overflow:hidden; border:1px solid var(--line-dark); background:#0b0e13; box-shadow:0 26px 60px rgba(0,0,0,.5); transition:transform .28s ease; }
.hero-collage .hs-img::after{ content:""; position:absolute; inset:0; box-shadow:inset 0 0 0 1px rgba(255,255,255,.05); border-radius:18px; }
.hero-collage .hs-img img{ width:100%; height:100%; object-fit:cover; display:block; }
.hero-collage .hc-main{ grid-row:1 / 3; }
.hero-collage .hs-img:hover{ transform:translateY(-5px); }
/* floating price chips on hero cutouts */
.hs-img .hp-chip{ position:absolute; left:12px; bottom:12px; z-index:3; background:var(--grad); color:#fff; font-family:var(--ff-display); font-weight:700; font-size:.8rem; letter-spacing:.01em; padding:.45em .85em; border-radius:999px; box-shadow:0 10px 26px rgba(123,92,255,.45); white-space:nowrap; }
.hs-img.hc-a .hp-chip, .hs-img.hc-b .hp-chip{ font-size:.72rem; padding:.4em .75em; }
/* slim wholesale spec strip under the collage */
.hero-strip{ display:flex; align-items:center; justify-content:space-between; gap:1rem; background:linear-gradient(160deg, rgba(23,26,33,.97), rgba(17,20,26,.97)); border:1px solid var(--line-dark); border-radius:16px; padding:.9rem 1.4rem; box-shadow:0 20px 50px rgba(0,0,0,.45); flex-wrap:wrap; }
.hero-strip .hs-badge{ background:var(--mint); color:var(--ink); font-size:.66rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; padding:.35em .7em; border-radius:6px; }
.hero-strip .hs-stat{ display:flex; flex-direction:column; line-height:1.15; }
.hero-strip .hs-stat b{ font-family:var(--ff-display); font-weight:800; font-size:1.15rem; background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent; }
.hero-strip .hs-stat span{ color:#99a0ad; font-size:.68rem; text-transform:uppercase; letter-spacing:.05em; }
.hero-card{ grid-column:2; grid-row:2; display:flex; flex-direction:column; justify-content:center; background:linear-gradient(160deg, rgba(23,26,33,.98), rgba(17,20,26,.98)); border:1px solid var(--line-dark); border-radius:18px; padding:1.3rem 1.4rem; box-shadow:0 26px 60px rgba(0,0,0,.5); }
.hero-card .hc-badge{ align-self:flex-start; display:inline-block; font-size:.68rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--ink); background:var(--mint); padding:.3em .7em; border-radius:6px; }
.hero-card h3{ color:#fff; font-size:1.5rem; margin:.9rem 0 .2rem; }
.hero-card .hc-sub{ color:#aab0bd; font-size:.82rem; margin-top:.6rem; line-height:1.4; }
.hero-card .hc-stats{ margin-top:1rem; padding-top:.9rem; gap:.6rem; }
.hero-card .hc-stats .n{ font-size:1.3rem; }
.hero-card .hc-stats{ display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; margin-top:1.6rem; padding-top:1.4rem; border-top:1px solid var(--line-dark); }
.hero-card .hc-stats .n{ font-family:var(--ff-display); font-weight:800; font-size:1.5rem; background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent; }
.hero-card .hc-stats .l{ color:#99a0ad; font-size:.72rem; text-transform:uppercase; letter-spacing:.05em; }

/* ---- brand strip ---- */
.brandstrip{ background:var(--ink); border-top:1px solid var(--line-dark); padding:1.6rem 0; }
.brandstrip .wrap{ display:flex; align-items:center; justify-content:space-between; gap:1.5rem; flex-wrap:wrap; }
.brandstrip span{ font-family:var(--ff-display); font-weight:700; color:rgba(255,255,255,.55); font-size:1.15rem; letter-spacing:.02em; }
.brandstrip .lbl{ font-size:.78rem; letter-spacing:.14em; text-transform:uppercase; color:var(--mint); font-family:var(--ff-body); font-weight:700; }

/* ============================================================
   Category cards
   ============================================================ */
.cat-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:1.2rem; }
@media(min-width:760px){ .cat-grid{ grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); } }
.cat-card{ position:relative; border-radius:var(--radius); overflow:hidden; min-height:210px; display:block; background:var(--surface); color:#fff; border:1px solid var(--line-dark); transition:transform .2s ease, box-shadow .2s ease; }
.cat-card .cc-media{ position:absolute; inset:0; display:block; }
.cat-card .cc-media img{ width:100%; height:100%; object-fit:cover; display:block; }
.cat-card::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(14,17,22,.12) 0%, rgba(14,17,22,.5) 52%, rgba(14,17,22,.92) 100%); }
.cat-card .cc-body{ position:absolute; left:0; right:0; bottom:0; z-index:2; padding:1.3rem 1.4rem; }
.cat-card .cc-body h3{ color:#fff; font-size:1.2rem; margin:0 0 .12rem; }
.cat-card .cc-sub{ color:#d3d8e0; font-size:.85rem; }
.cat-card .cc-go{ position:absolute; top:1rem; right:1rem; z-index:3; width:34px; height:34px; border-radius:50%; background:rgba(255,255,255,.16); backdrop-filter:blur(4px); display:grid; place-items:center; opacity:0; transform:translateY(-4px); transition:.2s ease; }
.cat-card .cc-go svg{ width:18px; height:18px; stroke:#fff; fill:none; stroke-width:2; }
.cat-card:hover{ transform:translateY(-5px); box-shadow:var(--shadow-violet); }
.cat-card:hover .cc-go{ opacity:1; transform:none; }
/* icon-variant category cards (text-free, clean) */
.cat-card.icon-card{ background:linear-gradient(160deg, var(--surface) 0%, #0e1218 100%); }
.cat-card.icon-card::after{ background:radial-gradient(120% 85% at 82% 8%, rgba(123,92,255,.28), transparent 58%), radial-gradient(90% 80% at 10% 100%, rgba(23,224,176,.14), transparent 60%); }
.cat-card.icon-card:nth-child(3)::after{ background:radial-gradient(120% 85% at 82% 8%, rgba(23,224,176,.24), transparent 58%); }
.cat-card.icon-card .cc-ic{ position:absolute; top:1.2rem; left:1.35rem; z-index:2; width:50px; height:50px; border-radius:13px; background:rgba(255,255,255,.09); border:1px solid rgba(255,255,255,.08); display:grid; place-items:center; }
.cat-card.icon-card .cc-ic svg{ width:26px; height:26px; stroke:#fff; fill:none; stroke-width:1.6; }

/* ---- Deals carousel ---- */
.dcar{ position:relative; overflow:hidden; }
.dcar-track{ display:flex; gap:1.3rem; overflow-x:auto; scroll-snap-type:x mandatory; scroll-behavior:smooth; scrollbar-width:none; -ms-overflow-style:none; padding:4px 4px 10px; }
.dcar-track::-webkit-scrollbar{ display:none; }
.dcar-track .pcard{ min-width:calc(25% - 1rem); scroll-snap-align:start; }
@media (max-width:1080px){ .dcar-track .pcard{ min-width:calc(33.34% - .9rem); } }
@media (max-width:760px){ .dcar-track .pcard{ min-width:calc(50% - .7rem); } }
@media (max-width:480px){ .dcar-track .pcard{ min-width:74%; } }
.dcar-controls{ display:flex; align-items:center; gap:.5rem; }
.dcar-btn{ width:40px; height:40px; border-radius:50%; border:1px solid var(--line); background:#fff; color:var(--ink); font-size:1.25rem; line-height:1; cursor:pointer; display:grid; place-items:center; transition:.18s ease; }
.dcar-btn:hover{ border-color:var(--violet); color:var(--violet); transform:translateY(-2px); }

/* ---- Shop by model (ozvaping-style device band) ---- */
@media (min-width:860px){ .model-band .dcar-btn{ display:none; } }
.model-band{ background:var(--paper); padding:3.2rem 0 3.4rem; border-bottom:1px solid var(--line); }
.model-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; }
@media(min-width:860px){ .model-grid{ grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); } }
@media(max-width:859px){
  .model-grid{ display:flex; overflow-x:auto; gap:.9rem; scroll-snap-type:x proximity; -webkit-overflow-scrolling:touch; scrollbar-width:none; padding-bottom:.5rem; }
  .model-grid::-webkit-scrollbar{ display:none; }
  .model-tile{ flex:none; width:44vw; max-width:190px; scroll-snap-align:start; }
}
.model-tile{ display:flex; flex-direction:column; align-items:center; text-align:center; background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:.9rem .7rem 1.1rem; transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.model-tile:hover{ transform:translateY(-5px); box-shadow:var(--shadow); border-color:transparent; }
.model-tile .mt-media{ width:100%; aspect-ratio:1/1; border-radius:12px; overflow:hidden; background:var(--light); margin-bottom:.7rem; }
.model-tile .mt-media img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .25s ease; }
.model-tile:hover .mt-media img{ transform:scale(1.06); }
.model-tile .mt-name{ font-family:var(--ff-display); font-weight:800; letter-spacing:.04em; color:var(--ink); font-size:.98rem; }
.model-tile .mt-count{ color:var(--muted); font-size:.74rem; margin-top:.1rem; }

/* ---- Shop by brand ---- */
.brand-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:1.1rem; }
@media(min-width:760px){ .brand-grid{ grid-template-columns:repeat(4,1fr); } }
.brand-tile{ display:flex; flex-direction:column; align-items:center; text-align:center; background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:1.2rem 1.2rem 1.4rem; transition:transform .2s ease, box-shadow .2s ease; }
.brand-tile:hover{ transform:translateY(-5px); box-shadow:var(--shadow); border-color:transparent; }
.brand-tile .bt-media{ width:100%; aspect-ratio:1/1; border-radius:12px; overflow:hidden; background:var(--light); margin-bottom:.9rem; }
.brand-tile .bt-media img{ width:100%; height:100%; object-fit:cover; display:block; }
.brand-tile .bt-name{ font-family:var(--ff-display); font-weight:700; color:var(--ink); font-size:1.1rem; }
.brand-tile .bt-count{ color:var(--muted); font-size:.82rem; margin-top:.15rem; }

/* ============================================================
   Product grid
   ============================================================ */
.products-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:1.2rem; }
@media(min-width:720px){ .products-grid{ grid-template-columns:repeat(3,1fr); } }
@media(min-width:1000px){ .products-grid{ grid-template-columns:repeat(4,1fr); } }
.pcard{ background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; transition:transform .2s ease, box-shadow .2s ease; display:flex; flex-direction:column; }
.pcard:hover{ transform:translateY(-5px); box-shadow:var(--shadow); }
.pcard .pc-media{ aspect-ratio:1/1; background:linear-gradient(160deg,var(--light),var(--light-2)); position:relative; display:grid; place-items:center; overflow:hidden; }
/* Flavour-forward tints (CVW-inspired, refined) — cycle appetising colours until real product imagery lands */
.products-grid .pcard:nth-child(6n+1) .pc-media,.bulkbuy .pcard:nth-child(6n+1) .pc-media{ background:linear-gradient(150deg,#ff5c8f26,#7b5cff1a); }
.products-grid .pcard:nth-child(6n+2) .pc-media{ background:linear-gradient(150deg,#17e0b026,#00b3ff1a); }
.products-grid .pcard:nth-child(6n+3) .pc-media{ background:linear-gradient(150deg,#ffb02426,#ff5c3a1a); }
.products-grid .pcard:nth-child(6n+4) .pc-media{ background:linear-gradient(150deg,#a15cff26,#ff5cc81a); }
.products-grid .pcard:nth-child(6n+5) .pc-media{ background:linear-gradient(150deg,#37d67a26,#17e0b01a); }
.products-grid .pcard:nth-child(6n+6) .pc-media{ background:linear-gradient(150deg,#4aa3ff26,#7b5cff1a); }
.pcard .pc-media .ph{ filter:drop-shadow(0 8px 16px rgba(14,17,22,.12)); }
.pcard .pc-media .ph{ width:46%; opacity:.5; }
.pcard .pc-media img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .35s ease; }
.pcard:hover .pc-media img{ transform:scale(1.06); }
.pcard .pc-add{ transition:transform .2s ease, box-shadow .2s ease; }
.pcard:hover .pc-add{ transform:rotate(90deg) scale(1.08); }
/* shop grid cards: same image zoom */
.woocommerce ul.products li.product a img{ transition:transform .35s ease; }
.woocommerce ul.products li.product:hover a img{ transform:scale(1.06); }
/* header wholesale CTA */
.hdr-cta{ margin-left:.5rem; padding:.62em 1.25em!important; font-size:.9rem!important; border-radius:10px!important; }
@media (max-width:700px){ .hdr-cta{ display:none; } }
.pcard .pc-tag{ position:absolute; top:10px; left:10px; background:var(--ink); color:#fff; font-size:.68rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase; padding:.3em .6em; border-radius:6px; }
.pcard .pc-body{ padding:1.1rem 1.1rem 1.3rem; display:flex; flex-direction:column; flex:1; }
.pcard .pc-brand{ font-size:.72rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--violet); }
.pcard .pc-title{ font-family:var(--ff-display); font-weight:600; font-size:1rem; color:var(--ink); margin:.2rem 0 .5rem; line-height:1.25; }
.pcard .pc-foot{ margin-top:auto; display:flex; align-items:center; justify-content:space-between; }
.pcard .pc-price{ font-family:var(--ff-display); font-weight:700; color:var(--ink); }
.pcard .pc-price small{ font-family:var(--ff-body); font-weight:500; color:var(--muted); font-size:.72rem; }
.pcard .pc-add{ width:38px; height:38px; border-radius:10px; background:var(--grad); display:grid; place-items:center; color:#fff; }
.pcard .pc-add svg{ width:18px; height:18px; stroke:#fff; fill:none; stroke-width:2; }

/* ============================================================
   Wholesale band
   ============================================================ */
.wholesale{ background:var(--ink); color:#fff; border-radius:var(--radius-lg); overflow:hidden; position:relative; }
.wholesale::before{ content:""; position:absolute; top:-40%; left:-5%; width:40vw; height:40vw; max-width:520px; max-height:520px; border-radius:50%; background:radial-gradient(circle,rgba(123,92,255,.5),transparent 60%); filter:blur(30px); }
.wholesale .ws-inner{ position:relative; z-index:1; display:grid; grid-template-columns:1.1fr .9fr; gap:2.5rem; align-items:center; padding:3rem; }
.wholesale h2{ color:#fff; font-size:clamp(1.7rem,1.3rem + 1.8vw,2.4rem); }
.wholesale p{ color:#c2c8d4; }
.ws-points{ list-style:none; margin:1.2rem 0 1.8rem; padding:0; display:grid; gap:.7rem; }
.ws-points li{ display:flex; gap:.6rem; align-items:center; color:#d4d8e0; font-weight:500; }
.ws-points li svg{ width:20px; height:20px; stroke:var(--mint); fill:none; stroke-width:2.2; flex:none; }
.ws-figures{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.ws-fig{ background:rgba(255,255,255,.05); border:1px solid var(--line-dark); border-radius:var(--radius); padding:1.3rem; }
.ws-fig .n{ font-family:var(--ff-display); font-weight:800; font-size:2rem; background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent; line-height:1; }
.ws-fig .l{ color:#aab0bd; font-size:.82rem; margin-top:.4rem; }

/* ============================================================
   Feature grid
   ============================================================ */
.feature-grid{ display:grid; grid-template-columns:1fr; gap:1.3rem; }
@media(min-width:600px){ .feature-grid{ grid-template-columns:repeat(2,1fr); } }
@media(min-width:960px){ .feature-grid{ grid-template-columns:repeat(4,1fr); } }
.feature{ background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); padding:1.7rem; transition:transform .2s ease, box-shadow .2s ease; }
.feature:hover{ transform:translateY(-4px); box-shadow:var(--shadow); }
.feature .fi{ width:50px; height:50px; border-radius:13px; background:linear-gradient(160deg,rgba(123,92,255,.14),rgba(23,224,176,.14)); display:grid; place-items:center; margin-bottom:1rem; }
.feature .fi svg{ width:26px; height:26px; stroke:var(--violet); fill:none; stroke-width:1.8; }
.feature h3{ font-size:1.1rem; margin:0 0 .35rem; }
.feature p{ color:var(--muted); font-size:.92rem; margin:0; }

/* ============================================================
   Footer
   ============================================================ */
.site-footer{ background:var(--ink); color:#aab0bd; border-top:1px solid var(--line-dark); }
/* price-list signup strip */
.fnews{ border-bottom:1px solid var(--line-dark); background:linear-gradient(120deg, rgba(123,92,255,.14), rgba(23,224,176,.08)); }
.fnews-in{ display:flex; align-items:center; justify-content:space-between; gap:2rem; padding-top:2.2rem; padding-bottom:2.2rem; flex-wrap:wrap; }
.fnews-text h3{ color:#fff; font-size:1.35rem; margin:0 0 .2rem; }
.fnews-text p{ margin:0; color:#aab0bd; font-size:1rem; }
.fnews-form{ display:flex; gap:.6rem; flex-wrap:wrap; }
.fnews-form input[type=email]{ min-width:280px; background:rgba(255,255,255,.06); border:1px solid var(--line-dark); border-radius:12px; color:#fff; padding:.85em 1.1em; font-family:var(--ff-body); font-size:.96rem; }
.fnews-form input[type=email]::placeholder{ color:#7a828f; }
.fnews-form input[type=email]:focus{ outline:none; border-color:var(--violet); box-shadow:0 0 0 3px rgba(123,92,255,.25); }
/* columns */
.site-footer .fcols{ display:grid; grid-template-columns:1.7fr 1fr 1fr 1fr; gap:2.5rem; padding-top:3.2rem; }
.site-footer h4{ color:#fff; font-size:1.02rem; letter-spacing:.06em; text-transform:uppercase; margin:0 0 1.1rem; font-family:var(--ff-display); font-weight:700; }
.site-footer ul{ list-style:none; margin:0; padding:0; display:grid; gap:.55rem; }
.site-footer a{ color:#aab0bd; font-size:1.02rem; transition:color .15s ease, padding-left .15s ease; }
.site-footer a:hover{ color:var(--mint); }
.site-footer .fcols > div:not(.fcol-brand) a:hover{ padding-left:4px; }
.site-footer .fbrand{ display:flex; align-items:center; gap:.55rem; font-family:var(--ff-display); font-weight:800; font-size:1.45rem; color:#fff; margin-bottom:.8rem; }
.site-footer .fbrand .mark{ width:32px; height:32px; border-radius:9px; background:var(--grad); display:grid; place-items:center; }
.site-footer .fbrand .mark svg{ width:18px; height:18px; }
.site-footer .fbrand b{ background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent; }
.ftag{ color:#99a0ad; font-size:1rem; max-width:36ch; margin:0 0 1.2rem; }
.fcontact{ display:grid; gap:.6rem!important; }
.fcontact li{ display:flex; align-items:center; gap:.6rem; font-size:.98rem; color:#aab0bd; }
.fcontact svg{ width:17px; height:17px; stroke:var(--mint); fill:none; stroke-width:1.8; flex:none; }
/* trust row */
.ftrust{ display:flex; gap:1.2rem 2.4rem; flex-wrap:wrap; border-top:1px solid var(--line-dark); margin-top:2.8rem; padding:1.5rem 0 1.8rem; }
.ftrust span{ display:inline-flex; align-items:center; gap:.55rem; font-size:.95rem; color:#c2c8d4; font-weight:600; }
.ftrust svg{ width:18px; height:18px; stroke:var(--mint); fill:none; stroke-width:1.8; }
/* bottom bar */
.footer-bottom{ border-top:1px solid var(--line-dark); padding:1.3rem 0; background:#0a0d11; }
.footer-bottom .wrap{ display:flex; align-items:center; justify-content:space-between; gap:1rem; font-size:.92rem; color:#8a92a0; flex-wrap:wrap; }
.age-note{ display:inline-flex; align-items:center; gap:.5rem; color:#c2c8d4; font-weight:600; }
.age-note b{ background:var(--mint); color:var(--ink); border-radius:50%; width:22px; height:22px; display:grid; place-items:center; font-size:.7rem; flex:none; }

/* ============================================================
   Trust / USP bar
   ============================================================ */
.trustbar{ background:#fff; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.trustbar .wrap{ display:grid; grid-template-columns:repeat(2,1fr); gap:1px; }
@media(min-width:820px){ .trustbar .wrap{ grid-template-columns:repeat(4,1fr); } }
.tb-item{ display:flex; align-items:center; gap:.7rem; padding:1.1rem 0; color:var(--text); }
.tb-item svg{ width:26px; height:26px; stroke:var(--violet); fill:none; stroke-width:1.7; flex:none; }
.tb-item b{ display:block; color:var(--ink); font-family:var(--ff-display); font-size:.95rem; font-weight:600; }
.tb-item span{ font-size:.78rem; color:var(--muted); }

/* ============================================================
   Bulk buy highlight
   ============================================================ */
.bulkbuy{ display:grid; grid-template-columns:1fr; gap:1.4rem; }
@media(min-width:860px){ .bulkbuy{ grid-template-columns:1.2fr 1fr 1fr; } }
.bulk-feature{ background:var(--ink); color:#fff; border-radius:var(--radius-lg); padding:2rem; position:relative; overflow:hidden; display:flex; flex-direction:column; justify-content:center; border:1px solid var(--line-dark); }
.bulk-feature::before{ content:""; position:absolute; top:-30%; right:-20%; width:70%; height:120%; background:radial-gradient(circle,rgba(23,224,176,.4),transparent 60%); filter:blur(30px); }
.bulk-feature .bf-tag{ position:relative; z-index:1; align-self:flex-start; background:var(--mint); color:var(--ink); font-size:.7rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; padding:.35em .8em; border-radius:6px; }
.bulk-feature h3{ position:relative; z-index:1; color:#fff; font-size:1.6rem; margin:.8rem 0 .3rem; }
.bulk-feature p{ position:relative; z-index:1; color:#c2c8d4; font-size:.95rem; margin:0 0 1.2rem; }
.bulk-feature .bf-price{ position:relative; z-index:1; font-family:var(--ff-display); font-weight:800; font-size:2rem; }
.bulk-feature .bf-price span{ font-size:.85rem; font-weight:500; color:#99a0ad; }
.bulk-feature .btn{ position:relative; z-index:1; align-self:flex-start; margin-top:1.2rem; }

/* ============================================================
   Reviews
   ============================================================ */
.reviews-grid{ display:grid; grid-template-columns:1fr; gap:1.2rem; }
@media(min-width:760px){ .reviews-grid{ grid-template-columns:repeat(3,1fr); } }
.review{ background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); padding:1.7rem; }
.review .stars{ display:flex; gap:.15rem; margin-bottom:.8rem; }
.review .stars svg{ width:18px; height:18px; fill:var(--mint); stroke:none; }
.review p{ color:var(--text); font-size:.96rem; line-height:1.6; margin:0 0 1.1rem; }
.review .who{ display:flex; align-items:center; gap:.7rem; }
.review .av{ width:38px; height:38px; border-radius:50%; background:var(--grad); display:grid; place-items:center; color:#fff; font-family:var(--ff-display); font-weight:700; font-size:.9rem; }
.review .who b{ display:block; color:var(--ink); font-size:.9rem; }
.review .who span{ color:var(--muted); font-size:.78rem; }

/* ============================================================
   Articles
   ============================================================ */
.articles-grid{ display:grid; grid-template-columns:1fr; gap:1.4rem; }
@media(min-width:720px){ .articles-grid{ grid-template-columns:repeat(3,1fr); } }
.acard{ background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; transition:transform .2s ease, box-shadow .2s ease; }
.acard:hover{ transform:translateY(-5px); box-shadow:var(--shadow); }
.acard .a-media{ aspect-ratio:16/10; background:linear-gradient(150deg,var(--surface),var(--surface-2)); position:relative; overflow:hidden; }
.acard .a-media img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .3s ease; }
.acard:hover .a-media img{ transform:scale(1.05); }
.acard .a-media::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(14,17,22,0) 55%, rgba(14,17,22,.25) 100%); }
.acard .a-body{ padding:1.3rem; }
.acard .a-cat{ font-size:.72rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--violet); }
.acard h3{ font-size:1.05rem; margin:.35rem 0 .4rem; line-height:1.3; }
.acard p{ color:var(--muted); font-size:.88rem; margin:0; }

/* ---- generic inner page ---- */
main#content{ min-height:40vh; }
/* ---- Contact page ---- */
.contact-grid{ display:grid; grid-template-columns:1fr; gap:1.6rem; align-items:start; }
@media(min-width:900px){ .contact-grid{ grid-template-columns:1.5fr 1fr; } }
.cform-card{ background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg); padding:2.4rem; position:relative; overflow:hidden; }
.cform-card::before{ content:""; position:absolute; top:0; left:0; right:0; height:5px; background:var(--grad); }
.cform-card h2{ font-size:1.5rem; margin-bottom:1.2rem; }
.cform{ display:flex; flex-direction:column; gap:1.1rem; }
.cform .f-row.two{ display:grid; grid-template-columns:1fr; gap:1.1rem; }
@media(min-width:640px){ .cform .f-row.two{ grid-template-columns:1fr 1fr; } }
.cform label{ display:flex; flex-direction:column; gap:.45rem; font-weight:700; font-size:.78rem; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); }
.cform label .opt{ color:var(--muted); font-weight:400; }
.cform input, .cform select, .cform textarea{ border:1.5px solid transparent; border-radius:12px; padding:.95em 1.1em; font-family:var(--ff-body); font-size:1rem; color:var(--ink); background:var(--light); transition:border-color .15s ease, box-shadow .15s ease, background .15s ease; width:100%; }
.cform input:focus, .cform select:focus, .cform textarea:focus{ outline:none; background:#fff; border-color:var(--violet); box-shadow:0 0 0 4px rgba(123,92,255,.14); }
.cform textarea{ resize:vertical; min-height:130px; }
.cform .btn{ align-self:stretch; justify-content:center; font-size:1.05rem; padding:1em; }
.form-note{ display:flex; align-items:center; gap:.6rem; border-radius:11px; padding:.9rem 1.1rem; font-size:.94rem; margin-bottom:1.2rem; }
.form-note.ok{ background:rgba(23,224,176,.12); color:#0b7a5f; border:1px solid rgba(23,224,176,.35); }
.form-note.ok svg{ width:20px; height:20px; stroke:#0b7a5f; fill:none; stroke-width:2.4; flex-shrink:0; }
.form-note.err{ background:#fdf1f1; color:#a13030; border:1px solid #f0caca; }
.contact-aside{ display:flex; flex-direction:column; gap:1.2rem; }
.cm-card{ background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg); padding:1.6rem; }
.cm-card h3{ font-size:1.05rem; margin-bottom:1rem; }
.cm-item{ display:flex; align-items:center; gap:.9rem; padding:.6rem 0; border-bottom:1px solid var(--light-2); }
.cm-item:last-child{ border-bottom:0; padding-bottom:0; }
.cm-item .cm-ic{ width:40px; height:40px; border-radius:11px; background:var(--light); display:grid; place-items:center; flex-shrink:0; }
.cm-item .cm-ic svg{ width:20px; height:20px; stroke:var(--violet); fill:none; stroke-width:1.8; }
.cm-item b{ display:block; font-size:.86rem; color:var(--ink); }
.cm-item a{ font-size:.92rem; }
.hours{ list-style:none; margin:0; padding:0; }
.hours li{ display:flex; justify-content:space-between; padding:.45rem 0; border-bottom:1px solid var(--light-2); font-size:.92rem; }
.hours li:last-child{ border-bottom:0; }
.hours span{ color:var(--muted); }
.cm-note{ color:var(--muted); font-size:.85rem; margin:1rem 0 0; }
.cm-card.mini p{ margin:0 0 1rem; color:var(--text); }

/* ---- About page ---- */
.about-split{ display:grid; grid-template-columns:1fr; gap:2.4rem; align-items:center; }
@media(min-width:900px){ .about-split{ grid-template-columns:1.05fr 1fr; } }
.as-text h2{ font-size:clamp(1.6rem,1.2rem + 1.6vw,2.2rem); margin:.5rem 0 1rem; }
.as-text p{ color:var(--text); line-height:1.75; margin:0 0 1rem; }
.as-media{ display:grid; grid-template-columns:1fr 1fr; grid-template-rows:1fr 1fr; gap:12px; min-height:400px; }
.as-media .am-img{ display:block; border-radius:16px; overflow:hidden; border:1px solid var(--line); background:var(--light); }
.as-media .am-img img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .25s ease; }
.as-media .am-img:hover img{ transform:scale(1.05); }
.as-media .am-0{ grid-row:1 / 3; }

/* ---- Shipping table ---- */
.ship-table-wrap{ overflow-x:auto; border:1px solid var(--line); border-radius:var(--radius-lg); background:#fff; }
.ship-table{ width:100%; border-collapse:collapse; min-width:640px; }
.ship-table th{ text-align:left; font-family:var(--ff-display); font-size:.9rem; color:var(--ink); background:var(--light); padding:1rem 1.3rem; border-bottom:1px solid var(--line); }
.ship-table td{ padding:1rem 1.3rem; border-bottom:1px solid var(--light-2); color:var(--text); font-size:.96rem; }
.ship-table tr:last-child td{ border-bottom:0; }

/* ---- FAQ: sidebar layout ---- */
.faq-layout{ display:grid; grid-template-columns:1fr; gap:2rem; align-items:start; }
@media(min-width:920px){ .faq-layout{ grid-template-columns:290px minmax(0,1fr); } }
.faq-side{ display:flex; flex-direction:column; gap:1.1rem; }
@media(min-width:920px){ .faq-side{ position:sticky; top:100px; } }
.fside-nav{ background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg); padding:1rem; }
.fside-label{ display:block; font-size:.72rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); padding:.3rem .6rem .6rem; }
.fside-link{ display:flex; align-items:center; gap:.7rem; padding:.68rem .7rem; border-radius:11px; color:var(--ink); font-weight:600; font-size:.95rem; transition:background .15s ease; }
.fside-link em{ margin-left:auto; font-style:normal; font-size:.74rem; font-weight:800; background:var(--light); color:var(--muted); border-radius:999px; min-width:24px; height:24px; display:grid; place-items:center; }
.fside-link .fs-ic{ width:32px; height:32px; border-radius:9px; display:grid; place-items:center; flex:none; }
.fside-link .fs-ic svg{ width:17px; height:17px; fill:none; stroke-width:1.9; }
.fside-link:hover{ background:var(--light); }
.g-violet .fs-ic{ background:rgba(123,92,255,.12); } .g-violet .fs-ic svg{ stroke:#7B5CFF; }
.g-mint .fs-ic{ background:rgba(23,224,176,.14); } .g-mint .fs-ic svg{ stroke:#0da583; }
.g-amber .fs-ic{ background:rgba(255,158,44,.16); } .g-amber .fs-ic svg{ stroke:#d97c0b; }
.g-rose .fs-ic{ background:rgba(255,92,143,.14); } .g-rose .fs-ic svg{ stroke:#e04f7f; }
.fside-card{ background:var(--ink); color:#c2c8d4; border-radius:var(--radius-lg); padding:1.5rem; }
.fside-card h3{ color:#fff; font-size:1.15rem; margin-bottom:.3rem; }
.fside-card p{ font-size:.9rem; margin:0 0 1rem; }
.fside-card.alt{ background:#fff; border:1px solid var(--line); color:var(--muted); }
.fside-card.alt h3{ color:var(--ink); }
/* groups */
.faq-main{ min-width:0; }
.faq-group{ margin-bottom:2.2rem; scroll-margin-top:110px; }
.faq-group h2{ display:flex; align-items:center; gap:.7rem; font-size:1.3rem; margin-bottom:1rem; }
.faq-group h2 .fg-ic{ width:38px; height:38px; border-radius:11px; display:grid; place-items:center; flex:none; }
.faq-group h2 .fg-ic svg{ width:20px; height:20px; fill:none; stroke-width:1.9; }
.g-violet h2 .fg-ic{ background:rgba(123,92,255,.12); } .g-violet h2 .fg-ic svg{ stroke:#7B5CFF; }
.g-mint h2 .fg-ic{ background:rgba(23,224,176,.14); } .g-mint h2 .fg-ic svg{ stroke:#0da583; }
.g-amber h2 .fg-ic{ background:rgba(255,158,44,.16); } .g-amber h2 .fg-ic svg{ stroke:#d97c0b; }
.g-rose h2 .fg-ic{ background:rgba(255,92,143,.14); } .g-rose h2 .fg-ic svg{ stroke:#e04f7f; }
.g-violet .faq-item[open]{ border-color:#7B5CFF; }
.g-mint .faq-item[open]{ border-color:#17E0B0; }
.g-amber .faq-item[open]{ border-color:#f0a24a; }
.g-rose .faq-item[open]{ border-color:#f27ba0; }
.faq-item{ background:#fff; border:1px solid var(--line); border-radius:13px; margin-bottom:.6rem; overflow:hidden; }
.faq-item summary{ list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1rem 1.2rem; font-weight:600; color:var(--ink); font-family:var(--ff-display); font-size:.98rem; }
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item summary .fi-ic{ width:28px; height:28px; border-radius:8px; background:var(--light); display:grid; place-items:center; flex-shrink:0; transition:transform .2s ease, background .2s ease; }
.faq-item summary .fi-ic svg{ width:15px; height:15px; stroke:var(--ink); fill:none; stroke-width:2.4; }
.faq-item[open]{ border-color:var(--violet); box-shadow:0 8px 26px rgba(123,92,255,.10); }
.faq-item[open] summary .fi-ic{ transform:rotate(45deg); background:var(--violet); }
.faq-item[open] summary .fi-ic svg{ stroke:#fff; }
.faq-a{ padding:0 1.2rem 1.1rem; color:var(--text); font-size:.95rem; line-height:1.7; }
.faq-a p{ margin:0; }
.faq-more{ margin-top:1.5rem; background:var(--light); border-radius:var(--radius-lg); padding:1.6rem; display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap; }
.faq-more p{ margin:0; }

/* ---- Wholesale landing page ---- */
.page-hero .ph-lead{ color:#c2c8d4; font-size:1.15rem; max-width:60ch; margin:1rem 0 1.6rem; }
.page-hero .ph-cta{ display:flex; gap:.9rem; flex-wrap:wrap; }
.steps-grid{ display:grid; grid-template-columns:1fr; gap:1.4rem; }
@media(min-width:760px){ .steps-grid{ grid-template-columns:repeat(3,1fr); } }
.step{ position:relative; background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); padding:2rem 1.6rem 1.6rem; transition:transform .2s ease, box-shadow .2s ease; }
.step:hover{ transform:translateY(-4px); box-shadow:var(--shadow); }
.step-n{ font-family:var(--ff-display); font-weight:800; font-size:1.6rem; background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent; }
.step h3{ margin:.5rem 0 .3rem; font-size:1.2rem; }
.step p{ color:var(--muted); margin:0; }
.tier-grid{ display:grid; grid-template-columns:1fr; gap:1.4rem; align-items:stretch; }
@media(min-width:820px){ .tier-grid{ grid-template-columns:repeat(3,1fr); } }
.tier{ position:relative; background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg); padding:2rem 1.7rem; display:flex; flex-direction:column; }
.tier.featured{ border-color:transparent; box-shadow:var(--shadow-violet); background:linear-gradient(180deg,#fff,#f7f5ff); }
@media(min-width:820px){ .tier.featured{ transform:translateY(-8px); } }
.tier-badge{ position:absolute; top:1rem; right:1rem; background:var(--grad); color:#fff; font-size:.66rem; font-weight:800; text-transform:uppercase; letter-spacing:.05em; padding:.35em .7em; border-radius:6px; }
.tier-name{ font-family:var(--ff-display); font-weight:700; color:var(--muted); text-transform:uppercase; letter-spacing:.06em; font-size:.82rem; }
.tier-price{ font-family:var(--ff-display); font-weight:800; font-size:2.4rem; color:var(--ink); margin:.3rem 0 .1rem; }
.tier-price span{ font-size:.95rem; font-weight:600; color:var(--muted); }
.tier-moq{ color:var(--violet); font-weight:600; font-size:.9rem; margin-bottom:1.2rem; }
.tier ul{ list-style:none; padding:0; margin:0 0 1.6rem; display:flex; flex-direction:column; gap:.65rem; }
.tier li{ display:flex; align-items:center; gap:.6rem; color:var(--text); font-size:.94rem; }
.tier li svg{ width:18px; height:18px; stroke:var(--mint); fill:none; stroke-width:2.4; flex-shrink:0; }
.tier .btn{ margin-top:auto; justify-content:center; }
.tier-note{ text-align:center; color:var(--muted); font-size:.85rem; margin-top:1.6rem; }
.ws-inner.ws-cta{ align-items:center; }
.ws-cta-actions{ display:flex; gap:.9rem; flex-wrap:wrap; }

.page-hero{ color:#fff; padding:3.2rem 0 2.8rem; position:relative; overflow:hidden; }
.page-hero h1{ color:#fff; }
.page-body{ padding:3rem 0; }

/* ============================================================
   WooCommerce light touch-ups
   ============================================================ */
.woocommerce-store-notice, p.demo_store{ background:var(--ink)!important; color:#fff!important; }
.woocommerce ul.products li.product, .woocommerce-page ul.products li.product{ }
.woocommerce a.button, .woocommerce button.button, .woocommerce .button, .woocommerce #respond input#submit{ background:var(--grad)!important; color:#fff!important; border-radius:10px!important; font-family:var(--ff-body)!important; font-weight:600!important; }
.woocommerce span.onsale{ background:var(--mint)!important; color:var(--ink)!important; border-radius:8px!important; }
.woocommerce div.product p.price, .woocommerce div.product span.price{ color:var(--ink)!important; }

/* ---- Prose (content pages) ---- */
.prose{ max-width:760px; margin-inline:auto; font-size:1.06rem; line-height:1.78; color:var(--text); }
.prose > :first-child{ margin-top:0; }
.prose > p:first-of-type{ font-size:1.2rem; line-height:1.65; color:var(--ink); }
.prose h2{ font-size:1.7rem; margin:2rem 0 .6rem; }
.prose h3{ font-size:1.3rem; margin:1.6rem 0 .5rem; }
.prose p{ margin:0 0 1.2rem; }
.prose ul,.prose ol{ margin:0 0 1.3rem 1.2rem; } .prose li{ margin:.45rem 0; }
.prose a{ color:var(--violet); font-weight:600; text-decoration:underline; }
.prose .btn{ color:#fff; text-decoration:none; }
.prose blockquote{ border-left:4px solid var(--violet); background:var(--light); padding:1rem 1.4rem; margin:1.4rem 0; border-radius:0 10px 10px 0; }
.prose hr{ border:0; border-top:1px solid var(--line); margin:2rem 0; }

/* ---- Shop cleanup (hide default sidebar) ---- */
.woocommerce .widget-area, .woocommerce-page aside.widget-area, #secondary.widget-area, .woocommerce-page #secondary{ display:none!important; }
.woocommerce-breadcrumb{ color:var(--muted); font-size:.85rem; margin-bottom:1rem; }
.woocommerce-result-count, .woocommerce-ordering{ color:var(--muted); }

/* ---- Single product (PDP) ---- */
.single-product div.product{ display:grid; grid-template-columns:1fr; gap:2rem 3rem; padding-top:1rem; grid-auto-rows:min-content; }
.single-product div.product > *{ min-width:0; }
@media(min-width:900px){
	.single-product div.product{ grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); align-items:start; }
}
/* tabs, related, upsells, why-strip always span the full width (not into the 2 columns) */
.single-product div.product > .woocommerce-tabs,
.single-product div.product > .related,
.single-product div.product > .upsells,
.single-product div.product > .pdp-why,
.single-product div.product > .woocommerce-product-gallery + .up-sells{ grid-column:1 / -1; }
/* breadcrumbs */
.pdp-crumbs{ display:flex; flex-wrap:wrap; align-items:center; gap:.4rem; color:var(--muted); font-size:.86rem; margin:0 0 1.2rem; }
.pdp-crumbs a{ color:var(--muted); font-weight:600; transition:color .15s ease; }
.pdp-crumbs a:hover{ color:var(--violet); }
.pdp-crumbs .crumb-sep{ color:#c3c8d4; }
.single-product .woocommerce-product-gallery{ border-radius:var(--radius-lg); overflow:hidden; background:var(--light); border:1px solid var(--line); margin:0!important; width:100%!important; }
.single-product .woocommerce-product-gallery__image img{ width:100%!important; display:block; }
.single-product .woocommerce-product-gallery__trigger{ z-index:5; }
.single-product div.product .product_title{ font-size:2.1rem; margin:.2rem 0 .4rem; }
.single-product div.product p.price, .single-product div.product span.price{ font-family:var(--ff-display); font-weight:700; font-size:1.7rem!important; }
.single-product .summary.entry-summary{ margin:0!important; width:100%!important; }
.single-product .woocommerce-product-gallery__wrapper{ margin:0; }
/* tabs */
.single-product .woocommerce-tabs{ margin-top:2rem; clear:both; position:relative; z-index:1; background:var(--light-0,#fff); }
.single-product .woocommerce-tabs ul.tabs{ padding:0 0 0 0!important; border-bottom:1px solid var(--line); }
.single-product .woocommerce-tabs ul.tabs::before{ border-color:var(--line)!important; }
.single-product .woocommerce-tabs ul.tabs li{ background:transparent!important; border:0!important; border-radius:0!important; margin:0 1.4rem 0 0!important; padding:0!important; }
.single-product .woocommerce-tabs ul.tabs li::before, .single-product .woocommerce-tabs ul.tabs li::after{ display:none!important; }
.single-product .woocommerce-tabs ul.tabs li a{ padding:.8rem .1rem!important; color:var(--muted)!important; font-weight:600; font-family:var(--ff-display); border-bottom:2px solid transparent; }
.single-product .woocommerce-tabs ul.tabs li.active a{ color:var(--ink)!important; border-bottom-color:var(--violet); }
.single-product .woocommerce-Tabs-panel{ padding-top:1.4rem; max-width:820px; }
.single-product .woocommerce-Tabs-panel h2{ font-size:1.4rem; }
/* related grid full-width, 4 cols */
.single-product .related.products{ margin-top:3rem; border-top:1px solid var(--line); padding-top:2rem; }
.wholesale-badge{ display:inline-flex; align-items:center; gap:.5rem; background:var(--ink); color:#fff; font-size:.76rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase; padding:.45em 1em; border-radius:8px; margin-bottom:1rem; }
.wholesale-badge b{ color:var(--mint); }
.pdp-note{ background:var(--light); border-left:3px solid var(--violet); border-radius:0 10px 10px 0; padding:1rem 1.2rem; margin:1.3rem 0; color:var(--muted); font-size:.9rem; }
.pdp-note b{ color:var(--ink); }
/* price row: amount + "per unit" */
.single-product div.product .summary > p.price{ display:flex; align-items:baseline; gap:.5rem; flex-wrap:wrap; margin:.1rem 0 .7rem; }
.single-product .summary .pdp-unit{ font-family:var(--ff-body); font-weight:600; font-size:.88rem; color:var(--muted); }
/* attribute chips */
.pdp-specs{ list-style:none; display:flex; flex-wrap:wrap; gap:.5rem; padding:0; margin:.1rem 0 1rem; }
.pdp-specs li{ display:inline-flex; align-items:baseline; gap:.5rem; background:var(--light); border:1px solid var(--line); border-radius:999px; padding:.42em 1em; font-size:.88rem; line-height:1.3; }
.pdp-specs li span{ color:var(--muted); font-weight:800; font-size:.66rem; letter-spacing:.08em; text-transform:uppercase; }
.pdp-specs li b{ color:var(--ink); font-family:var(--ff-display); font-weight:600; }
/* short description */
.single-product .woocommerce-product-details__short-description{ color:var(--muted); font-size:.98rem; }
.single-product .woocommerce-product-details__short-description p{ margin:.2rem 0 0; }
/* quantity stepper + add to cart: large, touch-friendly */
.single-product div.product form.cart{ display:flex; gap:.8rem; align-items:stretch; margin:1.3rem 0 .9rem; float:none; }
.single-product div.product form.cart .quantity{ margin:0; float:none; display:flex; align-items:stretch; height:56px; border:1.5px solid var(--ink); border-radius:999px; background:#fff; overflow:hidden; flex:none; transition:border-color .15s ease, box-shadow .15s ease; }
.single-product div.product form.cart .quantity:focus-within{ border-color:var(--violet); box-shadow:0 0 0 4px rgba(123,92,255,.14); }
.single-product div.product form.cart .vh-qty-btn{ width:46px; border:0; background:transparent; color:var(--ink); display:grid; place-items:center; cursor:pointer; padding:0; flex:none; transition:background .15s ease, color .15s ease; }
.single-product div.product form.cart .vh-qty-btn svg{ width:16px; height:16px; stroke:currentColor; fill:none; stroke-width:2.4; }
.single-product div.product form.cart .vh-qty-btn:hover{ background:var(--light); color:var(--violet); }
.single-product div.product form.cart .vh-qty-btn:active{ background:var(--light-2); }
.single-product div.product form.cart .qty{ width:52px; border:0; background:transparent; text-align:center; font-family:var(--ff-display); font-weight:700; font-size:1.12rem; color:var(--ink); padding:0; -moz-appearance:textfield; appearance:textfield; }
.single-product div.product form.cart .qty::-webkit-outer-spin-button,
.single-product div.product form.cart .qty::-webkit-inner-spin-button{ -webkit-appearance:none; margin:0; }
.single-product div.product form.cart .qty:focus{ outline:none; }
/* live order total */
.pdp-total{ display:flex; align-items:baseline; gap:.65rem; flex-wrap:wrap; margin:0 0 1.2rem; }
.pdp-total .pt-label{ font-size:.72rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); }
.pdp-total .pt-amount{ font-family:var(--ff-display); font-weight:800; font-size:1.5rem; color:var(--ink); line-height:1; }
.pdp-total .pt-amount span, .pdp-total .pt-amount bdi{ font:inherit; color:inherit; }
.pdp-total .pt-hint{ font-size:.86rem; color:var(--muted); }
.pdp-total .pt-hint .pt-qty{ font-weight:800; color:var(--ink); }
.single-product div.product form.cart .single_add_to_cart_button{ flex:1; min-height:56px; display:inline-flex; align-items:center; justify-content:center; font-family:var(--ff-display)!important; font-weight:700!important; font-size:1.06rem!important; border-radius:12px!important; padding:.85em 1.6em!important; box-shadow:var(--shadow-violet); transition:transform .16s ease, box-shadow .2s ease; }
.single-product div.product form.cart .single_add_to_cart_button:hover{ transform:translateY(-2px); box-shadow:0 22px 48px rgba(123,92,255,.45); }
.single-product div.product form.cart .single_add_to_cart_button:active{ transform:scale(.98); }
/* assurance rows */
.pdp-assure{ list-style:none; margin:0 0 1.2rem; padding:0; display:grid; gap:.5rem; }
.pdp-assure li{ display:flex; align-items:center; gap:.8rem; }
.pdp-assure .pa-ic{ width:36px; height:36px; flex:none; border-radius:10px; background:var(--light); border:1px solid var(--line); display:grid; place-items:center; }
.pdp-assure .pa-ic svg{ width:18px; height:18px; stroke:var(--violet); fill:none; stroke-width:1.9; }
.pdp-assure .pa-tx{ font-size:.88rem; color:var(--muted); line-height:1.35; }
.pdp-assure .pa-tx b{ display:block; color:var(--ink); font-family:var(--ff-display); font-weight:600; font-size:.92rem; }
/* reseller volume pricing box */
.pdp-bulk{ background:var(--light); border:1px solid var(--line); border-radius:var(--radius); padding:1.15rem 1.2rem 1rem; margin:0 0 1.2rem; }
.pdp-bulk .pb-head{ display:flex; align-items:center; gap:.55rem; margin-bottom:.8rem; }
.pdp-bulk .pb-head svg{ width:17px; height:17px; stroke:var(--violet); fill:none; stroke-width:2; flex:none; }
.pdp-bulk .pb-head b{ font-family:var(--ff-display); font-weight:700; font-size:.96rem; color:var(--ink); }
.pb-tiers{ display:grid; grid-template-columns:repeat(3,1fr); gap:.55rem; }
.pb-tier{ background:#fff; border:1px solid var(--line); border-radius:11px; padding:.62rem .4rem .55rem; text-align:center; }
.pb-tier > span{ display:block; font-size:.66rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); margin-bottom:.1rem; }
.pb-tier b{ font-family:var(--ff-display); font-weight:700; font-size:1.05rem; color:var(--ink); white-space:nowrap; }
.pb-tier b span, .pb-tier b bdi{ display:inline; font-size:inherit; color:inherit; letter-spacing:0; text-transform:none; margin:0; }
.pb-tier.best{ border-color:rgba(23,224,176,.55); background:rgba(23,224,176,.08); }
.pb-tier.best b{ color:#0b7a5f; }
.pb-note{ margin:.75rem 0 0; font-size:.8rem; color:var(--muted); line-height:1.55; }
/* meta row (SKU, category) */
.single-product div.product .summary .product_meta{ border-top:1px solid var(--line); margin-top:.2rem; padding-top:1rem; font-size:.85rem; color:var(--muted); display:flex; flex-wrap:wrap; gap:.35rem 1.5rem; }
.single-product div.product .summary .product_meta .sku,
.single-product div.product .summary .product_meta a{ color:var(--ink); font-weight:700; }
.single-product div.product .summary .product_meta a:hover{ color:var(--violet); }
/* additional information table */
.single-product table.woocommerce-product-attributes{ width:100%; max-width:560px; border:1px solid var(--line); border-radius:var(--radius); border-collapse:separate; border-spacing:0; overflow:hidden; margin:0; }
.single-product table.woocommerce-product-attributes th,
.single-product table.woocommerce-product-attributes td{ border:0!important; padding:.85rem 1.2rem!important; font-size:.93rem; line-height:1.5; background:transparent; }
.single-product table.woocommerce-product-attributes tr + tr th,
.single-product table.woocommerce-product-attributes tr + tr td{ border-top:1px solid var(--line)!important; }
.single-product table.woocommerce-product-attributes th{ width:36%; text-align:left; background:var(--light)!important; color:var(--muted); font-family:var(--ff-body); font-weight:800; font-size:.74rem; letter-spacing:.08em; text-transform:uppercase; }
.single-product table.woocommerce-product-attributes td{ color:var(--ink); font-weight:600; font-style:normal!important; }
.single-product table.woocommerce-product-attributes td p{ margin:0; padding:0; font-style:normal; }
/* reviews */
.single-product #reviews .woocommerce-Reviews-title{ font-size:1.15rem; }
.single-product #review_form_wrapper .comment-reply-title{ font-family:var(--ff-display); font-weight:700; color:var(--ink); }
.single-product p.stars a{ color:var(--mint); }
.single-product .woocommerce-noreviews{ background:var(--light); border:1px solid var(--line); border-radius:11px; padding:.9rem 1.2rem; color:var(--muted); }
/* why-resellers strip (between tabs and related) */
.single-product div.product > .pdp-why{ margin-top:2.6rem; border-top:1px solid var(--line); padding-top:2.2rem; }
.pdp-why h2{ font-size:1.5rem; margin-bottom:1.2rem; }
/* PDP mobile */
@media (max-width:600px){
	.single-product div.product .product_title{ font-size:1.65rem; }
	.single-product div.product p.price, .single-product div.product span.price{ font-size:1.5rem!important; }
	.single-product div.product form.cart .vh-qty-btn{ width:40px; }
	.single-product div.product form.cart .qty{ width:42px; }
	.pb-tier b{ font-size:.98rem; }
	.single-product .woocommerce-tabs ul.tabs{ display:flex; flex-wrap:nowrap; overflow-x:auto; scrollbar-width:none; -ms-overflow-style:none; -webkit-overflow-scrolling:touch; }
	.single-product .woocommerce-tabs ul.tabs::-webkit-scrollbar{ display:none; }
	.single-product .woocommerce-tabs ul.tabs li{ flex:none; white-space:nowrap; }
}

/* ---- Cart / checkout / account ---- */
.woocommerce table.shop_table{ border-radius:var(--radius); overflow:hidden; border-color:var(--line); }
.woocommerce .cart_totals, .woocommerce-checkout-review-order{ background:var(--light); border-radius:var(--radius); padding:1.4rem 1.6rem; }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select, .woocommerce-account input.input-text{ border:1px solid var(--line)!important; border-radius:10px!important; padding:.8em 1em!important; }
.woocommerce-MyAccount-navigation ul{ list-style:none; padding:0; margin:0; }
.woocommerce-MyAccount-navigation li{ border-bottom:1px solid var(--line); }
.woocommerce-MyAccount-navigation a{ display:block; padding:.75rem 0; color:var(--ink); font-weight:600; }
.woocommerce-message, .woocommerce-info, .woocommerce-error{ border-top-color:var(--violet)!important; }

/* ---- WooCommerce shop archive (professional grid) ---- */
.woo-page{ padding:2.5rem 0 4rem; }
.shop-pills{ display:inline-flex; gap:.25rem; flex-wrap:wrap; margin:.4rem 0 1.8rem; clear:both; background:var(--light); border:1px solid var(--line-2,var(--line)); border-radius:14px; padding:.35rem; max-width:100%; }
@media (max-width:760px){
  .shop-pills{ display:flex; flex-wrap:nowrap; overflow-x:auto; scroll-snap-type:x proximity; -webkit-overflow-scrolling:touch; scrollbar-width:none; -ms-overflow-style:none; border-radius:13px; }
  .shop-pills::-webkit-scrollbar{ display:none; }
  .shop-pills .pill{ flex:none; white-space:nowrap; scroll-snap-align:start; font-size:.92rem; padding:.55em .95em; }
}
.shop-pills .pill{ display:inline-flex; align-items:center; gap:.5em; border:0; background:transparent; color:#4a5162; font-weight:700; font-family:var(--ff-display); font-size:.95rem; border-radius:10px; padding:.55em 1.05em; transition:.16s ease; }
.shop-pills .pill span{ font-size:.72em; font-weight:800; background:rgba(14,17,22,.07); color:var(--muted); border-radius:999px; padding:.25em .6em; }
.shop-pills .pill:hover{ color:var(--ink); background:rgba(255,255,255,.7); }
.shop-pills .pill.on{ background:var(--ink); color:#fff; box-shadow:0 6px 16px rgba(14,17,22,.18); }
.shop-pills .pill.on span{ background:var(--mint); color:var(--ink); }
.woocommerce-products-header{ margin-bottom:1.2rem; }
.woocommerce-products-header__title.page-title, .woo-page h1.entry-title{ font-size:2rem; margin-bottom:.2rem; }
.woo-page .woocommerce-result-count{ float:none; display:inline-block; margin:0; font-size:.88rem; color:var(--muted); }
.woo-page .woocommerce-ordering{ float:right; margin:0 0 1.2rem; }
.woo-page .woocommerce-ordering select{ border:1px solid var(--line); border-radius:9px; padding:.55em .8em; background:#fff; font-family:var(--ff-body); font-size:.9rem; }
.woocommerce ul.products{ display:grid!important; grid-template-columns:repeat(2,1fr); gap:1.3rem; margin:0!important; padding:0!important; clear:both; }
@media (min-width:720px){ .woocommerce ul.products{ grid-template-columns:repeat(3,1fr); } }
@media (min-width:1080px){ .woocommerce ul.products{ grid-template-columns:repeat(4,1fr); } }
.woocommerce ul.products li.product{ width:auto!important; margin:0!important; float:none!important; padding:0!important; background:#fff; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; display:flex; flex-direction:column; position:relative; transition:transform .2s ease, box-shadow .2s ease; }
.woocommerce ul.products li.product:hover{ transform:translateY(-5px); box-shadow:var(--shadow); }
.woocommerce ul.products li.product a img{ margin:0!important; width:100%; aspect-ratio:1/1; object-fit:cover; border-radius:0; }
.woocommerce ul.products li.product .woocommerce-loop-product__title{ padding:.9rem 1rem .1rem!important; font-family:var(--ff-display); font-weight:600; font-size:1rem!important; color:var(--ink); line-height:1.25; }
.woocommerce ul.products li.product .price{ padding:.25rem 1rem 0!important; margin:0!important; font-family:var(--ff-display)!important; font-weight:700!important; color:var(--ink)!important; font-size:1.05rem!important; }
.woocommerce ul.products li.product .price del{ color:var(--muted); font-weight:400; font-size:.82em; margin-right:.3em; }
.woocommerce ul.products li.product .price ins{ text-decoration:none; }
.woocommerce ul.products li.product .button, .woocommerce ul.products li.product .added_to_cart{ margin:auto 1rem 1rem!important; border-radius:999px!important; text-align:center; font-size:.88rem!important; font-weight:700!important; padding:.68em 1em!important; background:#fff!important; color:var(--ink)!important; border:1.5px solid var(--line)!important; box-shadow:none!important; transition:.18s ease!important; font-family:var(--ff-display)!important; }
.woocommerce ul.products li.product .button:hover{ background:var(--ink)!important; color:#fff!important; border-color:var(--ink)!important; transform:translateY(-1px); }
.woocommerce ul.products li.product .added_to_cart{ background:var(--mint)!important; border-color:var(--mint)!important; color:var(--ink)!important; }
.woocommerce ul.products li.product .star-rating{ margin:.4rem 1rem 0; font-size:.85em; }
.woocommerce span.onsale{ position:absolute; top:12px; right:12px; left:auto; margin:0!important; min-height:0; min-width:0; padding:.5em .85em; line-height:1; border-radius:999px; background:var(--mint)!important; color:var(--ink)!important; font-weight:800; font-size:.74rem; letter-spacing:.06em; text-transform:uppercase; z-index:6; box-shadow:0 6px 16px rgba(23,224,176,.4); }
/* pagination */
.woocommerce nav.woocommerce-pagination{ margin-top:2.6rem; }
.woocommerce nav.woocommerce-pagination ul{ border:0!important; display:flex; gap:.4rem; justify-content:center; }
.woocommerce nav.woocommerce-pagination ul li{ border:0!important; margin:0; }
.woocommerce nav.woocommerce-pagination ul li a, .woocommerce nav.woocommerce-pagination ul li span{ border:1px solid var(--line)!important; border-radius:9px; min-width:42px; height:42px; line-height:40px; padding:0 .6rem; color:var(--ink); background:#fff; }
.woocommerce nav.woocommerce-pagination ul li span.current{ background:var(--ink)!important; color:#fff!important; border-color:var(--ink)!important; }
.woocommerce nav.woocommerce-pagination ul li a:hover{ border-color:var(--violet)!important; color:var(--violet); }
/* related + upsells headings */
.woocommerce .related > h2, .woocommerce .upsells > h2, .woocommerce .cross-sells > h2{ font-size:1.5rem; }
/* grid normalisation — kill WooCommerce first/last/clear so no empty cells */
.woocommerce ul.products li.product.first, .woocommerce ul.products li.product.last{ clear:none!important; margin:0!important; }
.woocommerce ul.products li.product{ grid-column:auto!important; }
.woocommerce ul.products::before, .woocommerce ul.products::after{ content:none!important; display:none!important; }

/* ---- Account: centre the login/register when logged out ---- */
.woocommerce-account:not(.logged-in) .woo-page .wrap > .woocommerce{ max-width:460px; margin-inline:auto; }
.woocommerce-account .woocommerce > h2, .woocommerce form.woocommerce-form-login > h2{ text-align:center; }
.woocommerce form.login, .woocommerce form.register{ border:1px solid var(--line)!important; border-radius:var(--radius-lg)!important; padding:2rem!important; max-width:460px; margin-inline:auto; }
.woocommerce form.login .woocommerce-form-login__submit{ width:100%; }
.woocommerce-form-login__rememberme{ display:inline-flex; align-items:center; gap:.4rem; }

/* ---- Page hero: subtle brand glow instead of flat black ---- */
.page-hero{ background:radial-gradient(60% 120% at 15% 0%, rgba(123,92,255,.28), transparent 60%), radial-gradient(50% 120% at 100% 100%, rgba(23,224,176,.16), transparent 55%), var(--ink); }
.page-hero .eyebrow.on-dark{ color:var(--mint); }

/* ---- Age gate ---- */
.agegate{ position:fixed; inset:0; z-index:9999; background:rgba(14,17,22,.94); backdrop-filter:blur(8px); display:grid; place-items:center; padding:1.5rem; }
.agegate[hidden]{ display:none; }
.agegate-card{ max-width:460px; width:100%; background:var(--surface); border:1px solid var(--line-dark); border-radius:var(--radius-lg); padding:2.6rem 2rem; text-align:center; box-shadow:0 30px 80px rgba(0,0,0,.6); }
.agegate .ag-mark{ width:56px; height:56px; margin:0 auto 1.2rem; border-radius:14px; background:var(--grad); display:grid; place-items:center; box-shadow:var(--shadow-violet); }
.agegate .ag-mark svg{ width:30px; height:30px; }
.agegate h2{ color:#fff; font-size:1.5rem; margin:0 0 .3rem; }
.agegate p{ color:#c2c8d4; font-size:.95rem; margin:.4rem 0 1.6rem; }
.agegate .ag-actions{ display:flex; gap:.8rem; justify-content:center; flex-wrap:wrap; }
.agegate .btn-no{ background:transparent; border:1px solid rgba(255,255,255,.22); color:#c2c8d4; }
.agegate .btn-no:hover{ background:rgba(255,255,255,.06); }
.agegate small{ display:block; color:#7a828f; margin-top:1.3rem; font-size:.78rem; line-height:1.5; }

/* ============================================================
   Responsive
   ============================================================ */
@media (max-width:960px){
  .hero .wrap{ grid-template-columns:1fr; }
  .hero-visual{ margin-top:2.5rem; min-height:380px; max-width:560px; }
  .hero-collage{ min-height:380px; }
  .wholesale .ws-inner{ grid-template-columns:1fr; padding:2.2rem; }
  .site-footer .fcols{ grid-template-columns:1fr 1fr; gap:2rem; }
}
@media (max-width:430px){
  .hero-collage{ grid-template-columns:1fr 1fr; grid-template-rows:200px 150px; min-height:0; }
  .hero-collage .hc-main{ grid-column:1 / -1; grid-row:1; }
  .hero-collage .hc-a{ grid-row:2; }
  .hero-collage .hc-b{ grid-row:2; }
  .hero-strip{ gap:1rem; justify-content:space-between; }
}
@media (max-width:820px){
  .nav-toggle{ display:block; z-index:80; }
  .main-nav{ position:fixed; inset:0 0 0 auto; width:min(86vw,340px); background:linear-gradient(170deg,#171A21 0%,#0e1116 100%); transform:translateX(100%); transition:transform .28s cubic-bezier(.3,.9,.3,1); padding:1.2rem 1.5rem 2rem; box-shadow:-24px 0 70px rgba(0,0,0,.55); overflow-y:auto; margin:0; z-index:75; display:flex; flex-direction:column; }
  .nav-extra{ display:flex; }
  .nav-top{ align-items:center; gap:.6rem; padding:.4rem 0 1.1rem; border-bottom:1px solid var(--line-dark); margin-bottom:.4rem; }
  .nav-top .mark{ width:34px; height:34px; border-radius:10px; background:var(--grad); display:grid; place-items:center; }
  .nav-top .mark svg{ width:19px; height:19px; }
  .nav-top b{ color:#fff; font-family:var(--ff-display); font-size:1.15rem; }
  .main-nav ul{ flex:1; }
  .main-nav li{ border-bottom:1px solid rgba(255,255,255,.07); }
  .main-nav li:last-child{ border-bottom:0; }
  .main-nav a{ display:flex; align-items:center; justify-content:space-between; font-family:var(--ff-display); font-size:1.18rem; padding:1.02rem .2rem; color:#e6e9ef; }
  .main-nav ul a::after{ content:"\203A"; position:static; width:auto; height:auto; background:none; color:#5a6272; font-size:1.3rem; transition:transform .15s ease, color .15s ease; }
  .main-nav ul a:hover::after, .main-nav ul a:active::after{ transform:translateX(4px); color:var(--mint); }
  .nav-cta{ flex-direction:column; gap:.9rem; border-top:1px solid var(--line-dark); padding-top:1.3rem; margin-top:.6rem; }
  .nav-cta .btn{ justify-content:center; width:100%; font-size:1.05rem; padding:1em; }
  .nav-mail{ color:#aab0bd; font-size:.95rem; text-align:center; padding:0!important; display:block!important; }
  .nav-mail::after{ display:none!important; }
  .nav-age{ display:flex; align-items:center; justify-content:center; gap:.5rem; color:#7a828f; font-size:.8rem; }
  .nav-age b{ background:var(--mint); color:var(--ink); border-radius:50%; width:20px; height:20px; display:grid; place-items:center; font-size:.64rem; flex:none; }
  .main-nav.open{ transform:none; }
  .main-nav ul{ flex-direction:column; align-items:flex-start; gap:.4rem; }
  .main-nav a{ font-size:1.05rem; padding:.6em 0; }
}
@media (max-width:600px){
  .section{ padding:3.5rem 0; }
  .site-footer .fcols{ grid-template-columns:1fr; }
  .announce .wrap{ font-size:.76rem; }
}

/* mobile nav backdrop */
.nav-ov{ position:fixed; inset:0; background:rgba(8,10,14,.55); backdrop-filter:blur(2px); opacity:0; pointer-events:none; transition:opacity .25s ease; z-index:59; }
.nav-ov.on{ opacity:1; pointer-events:auto; }

/* mobile panel: hard constraints (final overrides) */
.main-nav .nav-top{ align-items:center; gap:.6rem; padding:.3rem 0 1rem; border-bottom:1px solid rgba(255,255,255,.1); margin-bottom:.4rem; }
.main-nav .nav-top .mark{ width:34px; height:34px; min-width:34px; border-radius:10px; background:linear-gradient(105deg,#7B5CFF,#17E0B0); display:grid; place-items:center; flex:none; }
.main-nav .nav-top .mark svg{ width:19px; height:19px; display:block; }
.main-nav .nav-top b{ color:#fff; font-family:var(--ff-display); font-size:1.12rem; }

/* ============================================================
   Checkout: professional two-column layout
   ============================================================ */
.woocommerce-checkout .woo-page h1.entry-title{ margin-bottom:.4rem; }
.woocommerce-checkout form.checkout{ display:grid; grid-template-columns:1fr; gap:2rem; align-items:start; }
@media(min-width:1000px){ .woocommerce-checkout form.checkout{ grid-template-columns:minmax(0,1.25fr) minmax(0,1fr); } }
.woocommerce-checkout #customer_details{ background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg); padding:2rem; position:relative; overflow:hidden; }
.woocommerce-checkout #customer_details::before{ content:""; position:absolute; top:0; left:0; right:0; height:5px; background:var(--grad); }
.woocommerce-checkout #customer_details h3{ font-size:1.25rem; margin:0 0 1.2rem; }
.woocommerce-checkout .col-1, .woocommerce-checkout .col-2{ float:none!important; width:100%!important; }
.woocommerce-checkout .form-row label{ font-weight:700; font-size:.78rem; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); margin-bottom:.35rem; display:block; }
.woocommerce-checkout .form-row .required{ color:#e04f7f; text-decoration:none; }
.woocommerce-checkout .form-row input.input-text, .woocommerce-checkout .form-row textarea, .woocommerce-checkout .form-row select,
.woocommerce-checkout .select2-container--default .select2-selection--single{
  border:1.5px solid transparent!important; border-radius:12px!important; padding:.9em 1.05em!important; background:var(--light)!important;
  font-family:var(--ff-body)!important; font-size:1rem!important; color:var(--ink)!important; height:auto!important; transition:.15s ease;
}
.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__rendered{ line-height:1.4!important; padding:0!important; color:var(--ink)!important; }
.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow{ height:100%!important; }
.woocommerce-checkout .form-row input.input-text:focus, .woocommerce-checkout .form-row textarea:focus, .woocommerce-checkout .form-row select:focus{
  outline:none; background:#fff!important; border-color:var(--violet)!important; box-shadow:0 0 0 4px rgba(123,92,255,.14);
}
/* order review card */
.woocommerce-checkout #order_review_heading{ display:none; }
.woocommerce-checkout #order_review{ background:var(--ink); color:#c2c8d4; border-radius:var(--radius-lg); padding:1.8rem; position:sticky; top:100px; }
.woocommerce-checkout #order_review::before{ content:"Your order"; display:block; color:#fff; font-family:var(--ff-display); font-weight:700; font-size:1.25rem; margin-bottom:1rem; }
.woocommerce-checkout #order_review .shop_table{ background:transparent; border:0; color:#c2c8d4; margin-bottom:1rem; }
.woocommerce-checkout #order_review .shop_table th, .woocommerce-checkout #order_review .shop_table td{ border-color:rgba(255,255,255,.09)!important; background:transparent!important; color:#c2c8d4; font-size:.94rem; padding:.7rem .2rem; }
.woocommerce-checkout #order_review .shop_table .order-total td, .woocommerce-checkout #order_review .shop_table .order-total th{ color:#fff; font-family:var(--ff-display); font-size:1.15rem; }
.woocommerce-checkout #order_review .woocommerce-Price-amount{ color:var(--mint); font-weight:700; }
/* payment box (BTC) */
.woocommerce-checkout #payment{ background:transparent!important; border-radius:0; }
.woocommerce-checkout #payment ul.payment_methods{ border:0!important; padding:0!important; margin:0 0 1rem!important; }
.woocommerce-checkout #payment li{ list-style:none; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12); border-radius:12px; padding:1rem 1.2rem; }
.woocommerce-checkout #payment li label{ color:#fff; font-weight:700; font-family:var(--ff-display); font-size:1.02rem; display:inline; }
.woocommerce-checkout #payment div.payment_box{ background:rgba(255,255,255,.06)!important; color:#aab0bd!important; border-radius:10px; font-size:.9rem; margin-top:.7rem!important; }
.woocommerce-checkout #payment div.payment_box::before{ display:none!important; }
.woocommerce-checkout #place_order{ width:100%; background:var(--grad)!important; color:#fff!important; font-family:var(--ff-display)!important; font-size:1.1rem!important; padding:1.05em!important; border-radius:13px!important; border:0!important; box-shadow:0 14px 34px rgba(123,92,255,.45); transition:.18s ease; }
.woocommerce-checkout #place_order:hover{ transform:translateY(-2px); }
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper{ color:#8a92a0; font-size:.85rem; }
.woocommerce-checkout .woocommerce-privacy-policy-text a{ color:var(--mint); }
/* coupon + login notices */
.woocommerce-form-coupon-toggle .woocommerce-info, .woocommerce-checkout .woocommerce-info{ background:var(--light)!important; border-top:0!important; border-radius:12px; color:var(--text)!important; }
/* checkout trust footer */
.woocommerce-checkout #order_review .pv-trust{ display:flex; flex-direction:column; gap:.5rem; border-top:1px solid rgba(255,255,255,.09); padding-top:1rem; margin-top:1rem; font-size:.85rem; }

/* cart page qty + table polish */
.woocommerce-cart table.cart td.actions .coupon .input-text{ border:1.5px solid var(--line); border-radius:10px; padding:.7em 1em; background:#fff; }
.woocommerce-cart table.cart img{ border-radius:10px; width:64px; }
.woocommerce-cart .quantity .qty{ border:1.5px solid var(--line); border-radius:10px; padding:.55em .4em; width:64px; text-align:center; font-family:var(--ff-display); }

/* logo mark image */
.brand .mark-img{ width:40px; height:40px; border-radius:12px; box-shadow:var(--shadow-violet); display:block; }
.mark-img.sm{ width:34px; height:34px; border-radius:10px; }

/* ============================================================
   Cart + Checkout scale-up (bigger type, fill the width)
   ============================================================ */
.woocommerce-cart .woo-page, .woocommerce-checkout .woo-page{ font-size:1.05rem; }
.woocommerce-cart .woo-page h1.entry-title, .woocommerce-checkout .woo-page h1.entry-title{ font-size:2.4rem; }
/* checkout: wider, bigger */
.woocommerce-checkout form.checkout{ grid-template-columns:minmax(0,1.45fr) minmax(0,1fr); gap:2.4rem; }
@media (max-width:999px){ .woocommerce-checkout form.checkout{ grid-template-columns:1fr; } }
.woocommerce-checkout #customer_details{ padding:2.6rem; }
.woocommerce-checkout #customer_details h3{ font-size:1.6rem; }
.woocommerce-checkout .form-row label{ font-size:.88rem; }
.woocommerce-checkout .form-row input.input-text, .woocommerce-checkout .form-row textarea, .woocommerce-checkout .form-row select,
.woocommerce-checkout .select2-container--default .select2-selection--single{ font-size:1.06rem!important; padding:1em 1.15em!important; }
.woocommerce-checkout #order_review{ padding:2.3rem; }
.woocommerce-checkout #order_review::before{ font-size:1.5rem; }
.woocommerce-checkout #order_review .shop_table th, .woocommerce-checkout #order_review .shop_table td{ font-size:1.04rem; padding:.9rem .2rem; }
.woocommerce-checkout #order_review .shop_table .order-total td, .woocommerce-checkout #order_review .shop_table .order-total th{ font-size:1.35rem; }
.woocommerce-checkout #payment li label{ font-size:1.12rem; }
.woocommerce-checkout #payment div.payment_box{ font-size:1rem!important; }
.woocommerce-checkout #place_order{ font-size:1.18rem!important; }
/* cart: two-column layout, dark totals card */
.woocommerce-cart .wc-page-content > .woocommerce, .woocommerce-cart .woo-page .wrap > .woocommerce{ display:grid; grid-template-columns:minmax(0,1.6fr) minmax(0,1fr); gap:2.4rem; align-items:start; }
@media (max-width:960px){ .woocommerce-cart .woo-page .wrap > .woocommerce{ grid-template-columns:1fr; } }
.woocommerce-cart .woocommerce-notices-wrapper{ grid-column:1 / -1; }
.woocommerce-cart form.woocommerce-cart-form{ min-width:0; }
.woocommerce-cart table.cart{ font-size:1.05rem; }
.woocommerce-cart table.cart th{ font-family:var(--ff-display); font-size:1rem; }
.woocommerce-cart table.cart td.product-name a{ font-weight:700; color:var(--ink); font-size:1.06rem; }
.woocommerce-cart table.cart img{ width:84px; }
.woocommerce-cart .cart-collaterals{ width:100%; }
.woocommerce-cart .cart-collaterals .cart_totals{ float:none!important; width:100%!important; background:var(--ink); color:#c2c8d4; border-radius:var(--radius-lg); padding:2.2rem; position:sticky; top:100px; }
.woocommerce-cart .cart_totals h2{ color:#fff; font-size:1.5rem; margin-bottom:1rem; }
.woocommerce-cart .cart_totals .shop_table{ background:transparent; border:0; }
.woocommerce-cart .cart_totals .shop_table th, .woocommerce-cart .cart_totals .shop_table td{ background:transparent!important; border-color:rgba(255,255,255,.09)!important; color:#c2c8d4; font-size:1.05rem; }
.woocommerce-cart .cart_totals .order-total td, .woocommerce-cart .cart_totals .order-total th{ color:#fff; font-family:var(--ff-display); font-size:1.3rem; }
.woocommerce-cart .cart_totals .woocommerce-Price-amount{ color:var(--mint); font-weight:700; }
.woocommerce-cart .wc-proceed-to-checkout .checkout-button{ width:100%; background:var(--grad)!important; color:#fff!important; font-family:var(--ff-display)!important; font-size:1.15rem!important; padding:1.05em!important; border-radius:13px!important; box-shadow:0 14px 34px rgba(123,92,255,.45); }
.woocommerce-cart table.cart td.actions .button{ border-radius:10px!important; }

/* ---- search overlay ---- */
.search-ov{ position:fixed; inset:0; z-index:90; background:rgba(8,10,14,.78); backdrop-filter:blur(6px); display:grid; place-items:start center; padding:14vh 1.2rem 0; }
.search-ov[hidden]{ display:none; }
.search-box{ width:min(680px,100%); position:relative; }
.search-box form{ display:flex; align-items:center; gap:.8rem; background:#fff; border-radius:16px; padding:.7rem .9rem .7rem 1.2rem; box-shadow:0 40px 90px rgba(0,0,0,.5); }
.search-box form svg{ width:22px; height:22px; stroke:var(--muted); fill:none; stroke-width:2; flex:none; }
.search-box input[type=search]{ flex:1; border:0; outline:none; font-family:var(--ff-body); font-size:1.15rem; color:var(--ink); background:transparent; min-width:0; }
.search-box .btn{ flex:none; }
.search-hint{ color:#aab0bd; text-align:center; font-size:.92rem; margin-top:1rem; }
.search-close{ position:absolute; top:-3.4rem; right:0; width:42px; height:42px; border-radius:50%; border:1px solid rgba(255,255,255,.3); background:rgba(255,255,255,.1); color:#fff; font-size:1.5rem; cursor:pointer; }

/* wide WC page container */
.wc-page-content{ width:100%; max-width:none; }
/* mobile search overlay fit */
@media (max-width:560px){
  .search-ov{ padding:10vh 1rem 0; }
  .search-box form{ flex-wrap:wrap; padding:.8rem; gap:.6rem; }
  .search-box input[type=search]{ flex:1 1 100%; font-size:1.05rem; padding:.3rem .2rem; }
  .search-box .btn{ width:100%; justify-content:center; }
  .search-close{ top:-3rem; right:.2rem; }
}

/* mobile header: breathing room between brand and icons */
@media (max-width:700px){
  .site-header .wrap{ gap:1.1rem; }
  .header-actions{ gap:.65rem; }
  .brand{ font-size:1.35rem; }
}
