/* ===================================================================
   NOVIX Storefront — dark navy / electric blue theme
   Scoped under .novix-root so it won't fight your theme globally.
   =================================================================== */
.novix-root{
  --nvx-bg:#00060F;
  --nvx-bg-2:#04101F;
  --nvx-panel:#081726;
  --nvx-panel-2:#0B2035;
  --nvx-line:#16324C;
  --nvx-blue:#0584F4;
  --nvx-blue-2:#2C7BE5;
  --nvx-blue-soft:#5E9BEA;
  --nvx-ink:#EAF2FB;
  --nvx-ink-soft:#93AEC8;
  --nvx-white:#FFFFFF;
  --nvx-shadow:0 2px 8px rgba(0,0,0,.4),0 20px 50px rgba(0,0,0,.35);
  --nvx-mono:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;

  background:var(--nvx-bg);
  color:var(--nvx-ink);
  font-family:"Inter",system-ui,sans-serif;
  line-height:1.55;
  font-size:16px;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
.novix-root *{box-sizing:border-box}
.novix-root h1,.novix-root h2,.novix-root h3{
  font-family:"Barlow Condensed","Inter",sans-serif;
  font-weight:700;line-height:.98;letter-spacing:.005em;text-transform:uppercase;
  margin:0;
}
.novix-root a{text-decoration:none;color:inherit}
.nvx-wrap{max-width:1200px;margin:0 auto;padding:0 28px}
.nvx-mono{font-family:var(--nvx-mono)}

/* buttons */
.nvx-btn{
  display:inline-block;font-family:"Barlow Condensed",sans-serif;font-weight:600;
  font-size:16px;letter-spacing:.06em;text-transform:uppercase;
  padding:14px 30px;background:var(--nvx-blue);color:#fff;border:1px solid var(--nvx-blue);
  border-radius:4px;cursor:pointer;transition:.18s;
}
.nvx-btn:hover{background:#0A93FF;border-color:#0A93FF;transform:translateY(-1px)}
.nvx-btn.ghost{background:transparent;color:var(--nvx-ink);border-color:var(--nvx-line)}
.nvx-btn.ghost:hover{border-color:var(--nvx-blue);color:#fff;background:rgba(5,132,244,.08)}
.nvx-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:6px}

/* eyebrow + section heads */
.nvx-eyebrow{
  font-family:"Barlow Condensed",sans-serif;font-weight:600;font-size:15px;
  letter-spacing:.22em;text-transform:uppercase;color:var(--nvx-blue);
  display:flex;align-items:center;gap:10px;margin-bottom:16px;
}
.nvx-h1{
  font-size:clamp(44px,7vw,88px);color:#fff;margin-bottom:20px;letter-spacing:.01em;
}
.nvx-h2{font-size:clamp(30px,4.4vw,50px);color:#fff}
.nvx-lede{font-size:18px;color:var(--nvx-ink-soft);max-width:470px;margin-bottom:30px;line-height:1.55}
.nvx-sec-head{max-width:660px;margin-bottom:42px}
.nvx-sec-head p{color:var(--nvx-ink-soft);margin-top:14px;font-size:16.5px}

/* ---------- Ticker ---------- */
.nvx-ticker{background:#020B16;border-bottom:1px solid var(--nvx-line);overflow:hidden;white-space:nowrap}
.nvx-run{display:inline-block;padding:9px 0;animation:nvx-scroll 32s linear infinite}
.nvx-ticker span{font-family:var(--nvx-mono);font-size:12px;letter-spacing:.04em;color:var(--nvx-ink-soft);padding:0 26px}
.nvx-ticker span b{color:var(--nvx-blue)}
@keyframes nvx-scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ---------- Image hero ---------- */
.nvx-hero-img{
  background-size:cover;background-position:center right;
  border-bottom:1px solid var(--nvx-line);position:relative;
}
.nvx-hero-inner{padding:96px 28px 90px;max-width:1200px;margin:0 auto}
.nvx-hero-img .nvx-h1{max-width:640px}
.nvx-hero-img .nvx-lede{max-width:440px}

/* trust row under hero */
.nvx-trust-row{display:flex;gap:0;margin-top:44px;flex-wrap:wrap}
.nvx-trust-item{
  display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px;
  padding:0 26px;position:relative;
}
.nvx-trust-item + .nvx-trust-item::before{
  content:"";position:absolute;left:0;top:6px;bottom:14px;width:1px;background:var(--nvx-line);
}
.nvx-trust-item .ic{
  width:52px;height:52px;border:1.5px solid var(--nvx-blue);border-radius:50%;
  display:flex;align-items:center;justify-content:center;color:#fff;
}
.nvx-trust-item .ic svg{width:24px;height:24px}
.nvx-trust-item .ic.gmp{font-family:"Barlow Condensed";font-weight:700;font-size:15px;color:var(--nvx-blue);letter-spacing:.02em}
.nvx-trust-item .lbl{
  font-family:"Barlow Condensed",sans-serif;font-weight:600;font-size:14.5px;
  letter-spacing:.08em;text-transform:uppercase;color:var(--nvx-ink);line-height:1.25;
}

/* text hero fallback */
.nvx-hero-txt{padding:90px 0;border-bottom:1px solid var(--nvx-line);
  background:radial-gradient(1000px 500px at 80% 0%,rgba(5,132,244,.12),transparent 60%),var(--nvx-bg)}

/* ---------- sections ---------- */
.novix-root section{padding:78px 0}

/* trust band */
.nvx-band{background:var(--nvx-bg-2);border-bottom:1px solid var(--nvx-line)}
.nvx-band-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.nvx-band-cell{
  background:var(--nvx-panel);border:1px solid var(--nvx-line);border-radius:8px;padding:30px 26px;
  transition:.2s;
}
.nvx-band-cell:hover{border-color:var(--nvx-blue);transform:translateY(-3px)}
.nvx-band-cell .ic{width:36px;height:36px;color:var(--nvx-blue);margin-bottom:16px}
.nvx-band-cell h3{font-size:23px;color:#fff;margin-bottom:9px}
.nvx-band-cell p{font-size:14px;color:var(--nvx-ink-soft);line-height:1.55}

/* ---------- product grid ---------- */
.nvx-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.nvx-card{
  background:var(--nvx-panel);border:1px solid var(--nvx-line);border-radius:8px;overflow:hidden;
  display:flex;flex-direction:column;transition:.2s;
}
.nvx-card:hover{transform:translateY(-4px);border-color:var(--nvx-blue);box-shadow:var(--nvx-shadow)}
.nvx-vial{
  height:170px;position:relative;display:flex;align-items:center;justify-content:center;
  background:radial-gradient(circle at 50% 120%,rgba(5,132,244,.20),transparent 62%),var(--nvx-bg-2);
  border-bottom:1px solid var(--nvx-line);overflow:hidden;
}
.nvx-vial.has-img{padding:14px}
.nvx-vial .nvx-prod-img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}
.nvx-vialsvg{filter:drop-shadow(0 8px 16px rgba(5,132,244,.25))}
.nvx-badge{
  position:absolute;top:12px;left:12px;font-family:var(--nvx-mono);font-size:10px;font-weight:600;
  letter-spacing:.06em;text-transform:uppercase;background:var(--nvx-blue);color:#fff;
  padding:4px 9px;border-radius:3px;z-index:2;
}
.nvx-badge.sale{background:#E5484D}
.nvx-card-body{padding:18px;display:flex;flex-direction:column;flex:1}
.nvx-cat{font-family:var(--nvx-mono);font-size:10.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--nvx-blue-soft);margin-bottom:8px}
.nvx-card-title{font-size:22px;line-height:1;margin-bottom:9px}
.nvx-card-title a{color:#fff;transition:.15s}
.nvx-card-title a:hover{color:var(--nvx-blue)}
.nvx-desc{font-size:13px;color:var(--nvx-ink-soft);line-height:1.5;flex:1;margin-bottom:15px}
.nvx-card-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid var(--nvx-line);padding-top:14px}
.nvx-price{font-family:"Barlow Condensed",sans-serif;font-weight:700;font-size:22px;color:#fff}
.nvx-price del{color:var(--nvx-ink-soft);font-weight:400;font-size:15px;margin-right:5px}
.nvx-price ins{text-decoration:none}
.nvx-add{
  font-family:"Barlow Condensed",sans-serif;font-weight:600;font-size:13.5px;letter-spacing:.05em;
  text-transform:uppercase;border:1px solid var(--nvx-blue);background:transparent;color:var(--nvx-blue);
  padding:9px 15px;border-radius:4px;cursor:pointer;transition:.15s;white-space:nowrap;
}
.nvx-add:hover,.nvx-add.added{background:var(--nvx-blue);color:#fff}
.nvx-add.loading{opacity:.6;pointer-events:none}
.nvx-catalog-foot{text-align:center;margin-top:40px}
.nvx-empty{padding:50px;text-align:center;border:1px dashed var(--nvx-line);border-radius:8px;color:var(--nvx-ink-soft)}

/* ---------- story ---------- */
.nvx-story{background:var(--nvx-bg-2);border-top:1px solid var(--nvx-line);border-bottom:1px solid var(--nvx-line)}
.nvx-story-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:56px;align-items:center}
.nvx-plate{background:var(--nvx-panel);border:1px solid var(--nvx-line);border-radius:8px;padding:28px}
.nvx-plate .lot{display:flex;justify-content:space-between;font-family:var(--nvx-mono);font-size:12.5px;color:var(--nvx-ink-soft);padding:11px 0;border-bottom:1px solid var(--nvx-line)}
.nvx-plate .lot:last-child{border-bottom:none}
.nvx-plate .lot b{color:#fff;font-weight:600}
.nvx-plate .lot .ok{color:var(--nvx-blue-soft)}
.nvx-story p{color:var(--nvx-ink-soft);margin:16px 0 0;font-size:16px}
.nvx-story p strong{color:#fff;font-weight:600}
.nvx-sign{font-family:var(--nvx-mono);font-size:13px;color:var(--nvx-ink-soft);margin-top:22px;padding-top:18px;border-top:1px solid var(--nvx-line)}

/* ---------- cta ---------- */
.nvx-cta{text-align:center;background:radial-gradient(800px 400px at 50% 0%,rgba(5,132,244,.10),transparent 65%),var(--nvx-bg)}
.nvx-cta .nvx-eyebrow{display:block}

/* ---------- age gate ---------- */
#nvx-gate{position:fixed;inset:0;z-index:99999;background:rgba(0,4,10,.92);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:24px}
#nvx-gate[hidden]{display:none}
#nvx-gate .card{background:var(--nvx-panel);border:1px solid var(--nvx-line);max-width:460px;width:100%;padding:38px 34px;border-radius:10px;box-shadow:0 40px 90px rgba(0,0,0,.6)}
#nvx-gate .ey{color:var(--nvx-blue);font-size:12px;letter-spacing:.16em;text-transform:uppercase}
#nvx-gate h2{color:#fff;font-size:30px;margin:14px 0 14px}
#nvx-gate p{font-size:14px;color:var(--nvx-ink-soft);margin-bottom:10px}
#nvx-gate .row{display:flex;gap:12px;margin-top:24px;flex-wrap:wrap}

/* ---------- responsive ---------- */
@media(max-width:1000px){
  .nvx-grid{grid-template-columns:repeat(2,1fr)}
  .nvx-story-grid{grid-template-columns:1fr;gap:36px}
}
@media(max-width:820px){
  .nvx-band-grid{grid-template-columns:1fr}
  .nvx-hero-img{background-position:center right -120px}
  .nvx-hero-img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 30%,rgba(0,6,15,.55));pointer-events:none}
  .nvx-hero-inner{position:relative;z-index:1}
  .nvx-trust-item{padding:0 16px}
}
@media(max-width:560px){
  .nvx-wrap{padding:0 20px}
  .nvx-grid{grid-template-columns:1fr}
  .novix-root section{padding:56px 0}
  .nvx-hero-inner{padding:70px 20px 64px}
  .nvx-trust-row{gap:18px 0;margin-top:34px}
  .nvx-trust-item{width:50%;padding:0}
  .nvx-trust-item + .nvx-trust-item::before{display:none}
}
@media(prefers-reduced-motion:reduce){
  .novix-root *{animation:none!important}
}
.novix-root :focus-visible{outline:2px solid var(--nvx-blue);outline-offset:2px}
