/*
Theme Name: VYTAL Research 341
Description: Custom WooCommerce theme for VYTAL Research. Converted from the original static site design.
Version: 36.7.0
Author: VYTAL Research
*/
/* VYTAL Research. White theme, science blue (pink limited)
   Single shared stylesheet. Accent colors live in :root. */

:root {
  --bg: #ffffff;
  --bg-soft: #f4f8ff;
  --surface: #ffffff;
  --surface-2: #eaf1fe;
  --border: #e0e8f5;
  --text: #0f1a33;
  --muted: #57617a;
  --accent: #2348e0;        /* science blue (primary) */
  --accent-dim: #1933b8;
  --accent-2: #14b3d6;      /* cyan secondary */
  --accent-glow: rgba(35, 72, 224, 0.22);
  --grad: linear-gradient(100deg, #2f5cff 0%, #2348e0 52%, #14b3d6 100%);
  --grad-soft: linear-gradient(100deg, rgba(47,92,255,0.12) 0%, rgba(35,72,224,0.10) 52%, rgba(20,179,214,0.12) 100%);
  --radius: 16px;
  --maxw: 1180px;
  --font: "Poppins", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; overflow-x: clip; max-width: 100%; -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body {
  background: var(--bg); color: var(--text); font-family: var(--font);
  line-height: 1.6; -webkit-font-smoothing: antialiased; overflow-x: clip;
}
a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }
.wrap { max-width: var(--maxw); margin: 0 auto; padding: 0 24px; }

h1, h2, h3 { line-height: 1.15; letter-spacing: -0.02em; font-weight: 700; }
h1 { font-size: clamp(2.4rem, 6vw, 4.6rem); }
h2 { font-size: clamp(1.8rem, 4vw, 2.8rem); }
h3 { font-size: 1.25rem; }
.muted { color: var(--muted); }
.accent { background: var(--grad); -webkit-background-clip: text; background-clip: text; color: transparent; }
.fill-blank { letter-spacing: 0.04em; }
section { padding: 96px 0; }

/* ---------- Top utility bar ---------- */
.topbar { background: var(--grad); color: #fff; }
.topbar-inner { display: flex; align-items: center; justify-content: space-between; gap: 16px; height: 42px; }
.topbar-social { display: flex; gap: 14px; align-items: center; flex: 1; }
.topbar-social a { display: inline-flex; color: #fff; opacity: .9; transition: opacity .2s; }
.topbar-social a:hover { opacity: 1; }
.topbar-social svg { width: 16px; height: 16px; fill: currentColor; }
.topbar-tag { font-weight: 700; letter-spacing: .08em; text-transform: uppercase; font-size: .78rem; white-space: nowrap; text-align: center; }
.topbar-links { display: flex; gap: 22px; flex: 1; justify-content: flex-end; }
.topbar-links a { color: #fff; opacity: .92; text-transform: uppercase; letter-spacing: .05em; font-size: .72rem; font-weight: 600; white-space: nowrap; transition: opacity .2s; }
.topbar-links a:hover { opacity: 1; }

/* ---------- Scrolling promo marquee ---------- */
.marquee { background: var(--text); color: #aebbd9; overflow: hidden; white-space: nowrap; -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
.marquee-track { display: inline-flex; align-items: center; padding: 8px 0; animation: marquee 30s linear infinite; }
.marquee span { font-size: .72rem; line-height: 1; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; padding: 0 22px; -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
.marquee:hover .marquee-track { animation-play-state: paused; }
@keyframes marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (max-width: 820px) {
  .marquee-track { padding: 5px 0; }
  .marquee span { font-size: .64rem; letter-spacing: .1em; padding: 0 16px; }
}

/* ---------- Promo banner ---------- */
.promo-banner { background: #2348E0; color: #fff; }
@media (prefers-reduced-motion: reduce) { .promo-banner { animation: none; } }
.promo-inner { display: flex; align-items: center; justify-content: center; padding: 9px 20px; }
.promo-set { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 6px 14px; }
.promo-set span { font-size: .82rem; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; line-height: 1.3; display: inline-flex; align-items: center; }
.promo-set .promo-main { font-weight: 800; color: #ffd76a; } /* highlight one item in gold/amber */
.promo-set .promo-code { line-height: 1; background: #ffd76a; color: #3a2c00; font-weight: 800; border-radius: 999px; padding: 6px 16px; letter-spacing: .06em; }
.promo-set .promo-perk { color: #dbe6ff; }
/* bullet separators sit BETWEEN items, never inside the code pill */
.promo-set .promo-perk::before { content: "\2022"; margin-right: 12px; opacity: .5; color: #fff; font-weight: 700; }
.promo-set--dup { display: none; }
/* Mobile: small compact static band */
@media (max-width: 820px) {
  .promo-inner { padding: 6px 12px; }
  .promo-set { gap: 3px 9px; }
  .promo-set span { font-size: .64rem; letter-spacing: .02em; }
  .promo-set .promo-code { font-size: .62rem; padding: 3px 10px; }
  .promo-set .promo-perk::before { margin-right: 9px; }
}

/* ---------- Mid-page promo CTA band ---------- */
.promo-cta { background: linear-gradient(100deg, #1b2b57 0%, var(--accent) 52%, var(--accent-2) 100%); color: #fff; padding: 0; }
.promo-cta-in { display: flex; align-items: center; justify-content: space-between; gap: 26px; padding: 42px 24px; flex-wrap: wrap; }
.promo-cta-copy { flex: 1; min-width: 260px; }
.promo-cta-kick { font-size: .72rem; letter-spacing: .2em; text-transform: uppercase; font-weight: 800; color: #bcd2ff; margin-bottom: 8px; }
.promo-cta h2 { font-family: Poppins, sans-serif; font-weight: 800; font-size: clamp(1.6rem, 3.4vw, 2.4rem); color: #fff; margin: 0 0 8px; }
.promo-cta h2 span { color: #ffd76a; }
.promo-cta p { color: #e6eefc; font-size: 1rem; margin: 0; }
.promo-cta p strong { color: #ffd76a; }
.promo-cta-btn { background: #fff; color: var(--accent); font-weight: 800; white-space: nowrap; box-shadow: 0 8px 22px rgba(0,0,0,.18); }
.promo-cta-btn:hover { transform: translateY(-2px); color: var(--accent-dim); }
@media (max-width: 700px) { .promo-cta-in { flex-direction: column; align-items: flex-start; padding: 30px 22px; } .promo-cta-btn { width: 100%; justify-content: center; } }

/* ---------- Nav ---------- */
.nav { position: sticky; top: 0; z-index: 50; background: #fff; border-bottom: 1px solid var(--border); }
.nav-inner { display: flex; align-items: center; justify-content: space-between; height: 76px; }
.logo { display: flex; align-items: center; gap: 10px; color: var(--text); }
.logo .logo-mark { width: 42px; height: 42px; flex: none; color: var(--accent); }
.logo .wordmark { display: flex; flex-direction: column; line-height: 1; }
.logo .wordmark b { font-size: 1.45rem; font-weight: 800; letter-spacing: .14em; color: var(--text); }
.logo .wordmark span { font-size: 0.7rem; font-weight: 600; letter-spacing: .36em; color: var(--muted); margin-top: 4px; }
.nav-links { display: flex; gap: 48px; align-items: center; margin-left: auto; }
.nav-links a { color: var(--muted); font-size: 1.06rem; font-weight: 500; transition: color .2s; }
.nav-links a:hover, .nav-links a.active { color: var(--accent); }
.nav-links a.btn-primary, .nav-links a.btn-primary:hover { color: #fff; }
.nav-toggle { display: none; background: none; border: 0; color: var(--text); font-size: 1.6rem; cursor: pointer; }
.nav-icons { display: flex; gap: 20px; align-items: center; margin-left: 26px; }
.nav-icons .nicon { display: inline-flex; background: none; border: 0; padding: 0; cursor: pointer; color: var(--text); transition: color .2s; }
.nav-icons .nicon:hover { color: var(--accent); }
.nav-icons svg { width: 23px; height: 23px; }
@media (max-width: 900px) { .nav-icons { gap: 16px; margin-left: 0; margin-right: 14px; } }

/* ---------- Buttons ---------- */
.btn { display: inline-flex; align-items: center; gap: 8px; padding: 13px 26px; border-radius: 999px; font-weight: 600; font-size: 0.95rem; transition: transform .15s ease, box-shadow .2s ease, background .2s, color .2s; cursor: pointer; border: 1px solid transparent; }
.btn-primary { background: var(--grad); color: #fff; box-shadow: 0 6px 20px var(--accent-glow); }
.btn-primary:hover { transform: translateY(-2px); box-shadow: 0 12px 34px var(--accent-glow); }
.btn-ghost { border-color: var(--border); color: var(--text); background: transparent; }
.btn-ghost:hover { border-color: var(--accent); color: var(--accent); }
.btn-lg { padding: 16px 32px; font-size: 1rem; }

/* ---------- Hero ---------- */
.hero { position: relative; overflow: hidden; text-align: center; padding: 0 0 96px; }
.hero::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 46vh; pointer-events: none;
  background: url("dna-bg.jpg") no-repeat center 30%; background-size: cover;
  -webkit-mask-image: linear-gradient(180deg, #000 0%, #000 50%, transparent 100%);
  mask-image: linear-gradient(180deg, #000 0%, #000 50%, transparent 100%); }
.hero::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 60%; pointer-events: none;
  background:
    radial-gradient(520px 300px at 15% 70%, rgba(35,72,224,0.07), transparent 62%),
    radial-gradient(560px 320px at 85% 80%, rgba(20,179,214,0.08), transparent 60%); }
.hero-inner { position: relative; z-index: 1; max-width: 880px; margin: 0 auto; padding-top: 40vh; }
.hero-loc { display: inline-flex; align-items: center; gap: 7px; color: var(--accent); font-size: 0.78rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; margin-bottom: 20px; }
.hero-title { font-family: Poppins, sans-serif; font-size: clamp(2.1rem, 5.2vw, 3.7rem); font-weight: 800; letter-spacing: -.02em; line-height: 1.06; color: var(--text); margin: 0 0 18px; }
.hero-title .accent { color: var(--accent); }
.hero-sub { font-size: 1.1rem; color: var(--muted); line-height: 1.65; max-width: 540px; margin: 0 auto 14px; }
.eyebrow { display: inline-flex; align-items: center; gap: 8px; font-size: 0.8rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--accent); border: 1px solid var(--border); padding: 7px 14px; border-radius: 999px; margin-bottom: 26px; background: var(--surface-2); }
.hero-ruo-mini { display: block; color: var(--muted); font-weight: 600; font-size: .85rem; margin: 0 auto 26px; }
.hero-cta { display: flex; gap: 16px; flex-wrap: wrap; justify-content: center; }
.hero-trust { margin-top: 30px; display: flex; gap: 10px 26px; justify-content: center; flex-wrap: wrap; }
.hero-trust span { display: inline-flex; align-items: center; gap: 8px; color: var(--muted); font-size: 0.88rem; font-weight: 500; }
.hero-trust span b { color: var(--accent); font-weight: 800; }
/* hero stats row (Onyx-style density) */
.hero-stats { display: flex; justify-content: center; gap: 18px; margin-top: 34px; flex-wrap: wrap; }
.hero-stats .hs-item { min-width: 130px; padding: 4px 18px; border-right: 1px solid var(--border); }
.hero-stats .hs-item:last-child { border-right: 0; }
.hero-stats .hs-n { font-family: Poppins, sans-serif; font-weight: 800; font-size: 1.9rem; color: var(--text); line-height: 1; }
.hero-stats .hs-l { color: var(--muted); font-size: 0.82rem; margin-top: 6px; }
/* Hero trust row: ★ Trusted by N + 99% Purity (white on the blue hero) */
.hero-trustrow { display: flex; align-items: center; gap: 30px; flex-wrap: wrap; margin-top: 22px; }
.hero-trustrow .htr-item { display: flex; align-items: center; gap: 10px; }
.hero-trustrow .htr-stars { color: #ffd54a; letter-spacing: 1px; font-size: .95rem; line-height: 1; }
.hero-trustrow b { font-weight: 800; font-size: .9rem; color: #fff; line-height: 1.15; }
.hero-trustrow small { display: block; color: #b8c4e0; font-size: .74rem; font-weight: 600; line-height: 1.2; }
.hero-trustrow .htr-tx { display: flex; flex-direction: column; }
.hero-trustrow .htr-ic { width: 30px; height: 30px; border-radius: 8px; background: rgba(127,176,255,.18); flex: none; padding: 6px; box-sizing: border-box; fill: none; stroke: #7fb0ff; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
@media (min-width: 561px) { .hero-trustrow { flex-wrap: nowrap; } } /* keep both items on one row like the reference */
.hero--home .hero-inner--left .hero-trustrow { justify-content: flex-start; }
@media (max-width: 560px) { .hero-trustrow { gap: 16px; margin-top: 16px; } .hero-trustrow b { font-size: .82rem; } }

/* Catalog row moved up to second section (Onyx-style header with Shop all link) */
.catrow { padding-top: 72px; }
.catrow-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; margin-bottom: 30px; flex-wrap: wrap; }
.catrow-head .kicker { color: var(--accent); letter-spacing: .16em; text-transform: uppercase; font-weight: 700; font-size: .8rem; }
.catrow-head h2 { font-size: 2rem; margin: 8px 0 0; }
.catrow-all { color: var(--accent); font-weight: 700; font-size: .95rem; white-space: nowrap; }
.catrow-all:hover { color: var(--accent-dim); }
.catgrid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; }
.catgrid .shop-card { min-width: 0; }
.catgrid .shop-card .pthumb { min-height: 0; aspect-ratio: 1 / 1; padding: 20px; }
@media (max-width: 1000px) { .catgrid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 700px) {
  .catgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .catgrid .shop-card .pthumb { padding: 14px; border-radius: 14px; }
  .catgrid .shop-card h3 { font-size: .82rem; margin-top: 12px; }
  .catgrid .shop-card .pts { font-size: .82rem; }
}
@media (max-width: 600px) { .catrow { padding-top: 38px; } .catrow-head h2 { font-size: 1.5rem; } }

/* Coming Soon cards */
.soonrow { padding-top: 8px; }
.soon-card { cursor: default; }
.soon-card:hover { transform: none; box-shadow: none; }
.soon-thumb { display: grid; place-items: center; background: var(--grad-soft); }
.soon-thumb .soon-mark { color: var(--accent); opacity: .32; display: grid; place-items: center; }
.soon-thumb .soon-mark svg { width: 68px; height: 68px; }
.badge.soon-badge { background: #0f1a33 !important; color: #fff; letter-spacing: .04em; }
.soon-card h3 { color: var(--text); }
.soon-card h3 .soon-mg { color: var(--muted); font-weight: 600; }
.soon-note { color: var(--muted) !important; font-size: .82rem; line-height: 1.5; }

/* ============ COA / LAB RESULTS. Card grid + popup ============ */
.coa-intro { color: var(--muted); font-size: .88rem; line-height: 1.6; max-width: 720px; margin: 0 0 24px; }
.coa-search-wrap { position: relative; max-width: 460px; margin: 0 0 30px; }
.coa-search-ic { position: absolute; left: 16px; top: 50%; transform: translateY(-50%); font-size: .95rem; opacity: .6; }
.coa-search { width: 100%; padding: 14px 18px 14px 42px; border: 1px solid var(--border); border-radius: 999px; font-family: inherit; font-size: .98rem; color: var(--text); background: #fff; }
.coa-search:focus { outline: none; border-color: var(--accent); }
.coa-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.coa-card { text-align: left; background: #fff; border: 1px solid var(--border); border-radius: var(--radius); padding: 0 0 16px; cursor: pointer; font-family: inherit; display: flex; flex-direction: column; overflow: hidden; transition: transform .2s, border-color .2s, box-shadow .2s; }
.coa-card:not(.soon):hover { transform: translateY(-5px); border-color: var(--accent); box-shadow: 0 18px 44px rgba(35,72,224,.14); }
.coa-card.soon { cursor: default; opacity: .85; }
.coa-thumb { position: relative; background: linear-gradient(180deg,#f7faff,#eaf1fe); aspect-ratio: 1/1; display: block; }
.coa-thumb img { width: 100%; height: 100%; object-fit: cover; }
.coa-badge { position: absolute; top: 10px; right: 10px; background: var(--text); color: #fff; font-size: .6rem; font-weight: 800; letter-spacing: .08em; padding: 4px 9px; border-radius: 6px; }
.coa-card.soon .coa-badge { background: var(--muted); }
.coa-eyebrow { color: var(--accent); font-size: .64rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; margin: 16px 16px 6px; }
.coa-name { color: var(--text); font-family: Poppins, sans-serif; font-weight: 700; font-size: 1.02rem; line-height: 1.25; margin: 0 16px 8px; }
.coa-lot { color: var(--muted); font-size: .78rem; letter-spacing: .03em; margin: 0 16px 12px; }
.coa-foot { display: flex; align-items: center; justify-content: space-between; border-top: 1px solid var(--border); padding: 12px 16px 0; margin-top: auto; }
.coa-purity { color: var(--text); font-weight: 700; font-size: .85rem; }
.coa-purity.soon { color: var(--muted); font-weight: 600; }
.coa-arrow { color: var(--accent); font-weight: 800; }
.coa-empty { color: var(--muted); text-align: center; padding: 30px 0; }
/* modal */
.coa-modal { position: fixed; inset: 0; z-index: 10000; display: none; }
.coa-modal.open { display: block; }
.coa-modal-overlay { position: absolute; inset: 0; background: rgba(15,26,51,.6); backdrop-filter: blur(4px); }
.coa-modal-card { position: relative; z-index: 1; background: #fff; max-width: 760px; width: calc(100% - 32px); max-height: 90vh; margin: 5vh auto 0; border-radius: 18px; box-shadow: 0 30px 90px rgba(15,26,51,.4); display: flex; flex-direction: column; overflow: hidden; }
.coa-modal-close { position: absolute; top: 12px; right: 14px; z-index: 2; background: var(--bg-soft); border: 1px solid var(--border); width: 34px; height: 34px; border-radius: 50%; font-size: 22px; line-height: 1; color: var(--muted); cursor: pointer; }
.coa-modal-head { padding: 26px 28px 16px; border-bottom: 1px solid var(--border); }
.coa-modal-eyebrow { color: var(--accent); font-size: .68rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.coa-modal-head h2 { font-family: Poppins, sans-serif; font-size: 1.5rem; margin: 6px 0 12px; }
.coa-modal-meta { display: flex; gap: 8px; flex-wrap: wrap; }
.coa-chip { background: var(--surface-2); color: var(--text); font-size: .78rem; font-weight: 600; padding: 5px 11px; border-radius: 999px; }
.coa-modal-doc { flex: 1; min-height: 0; background: #f1f4fa; }
.coa-modal-doc iframe { width: 100%; height: 56vh; border: 0; display: block; }
.coa-modal-foot { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 16px 28px; border-top: 1px solid var(--border); flex-wrap: wrap; }
.coa-modal-foot span { color: var(--muted); font-size: .82rem; }
.coa-modal-foot .btn { padding: 11px 20px; font-size: .9rem; }
@media (max-width: 1000px) { .coa-grid { grid-template-columns: repeat(3,1fr); } }
@media (max-width: 700px) {
  .coa-grid { grid-template-columns: repeat(2,1fr); gap: 12px; }
  .coa-name { font-size: .92rem; }
  .coa-modal-card { width: calc(100% - 16px); max-height: 94vh; margin-top: 3vh; }
  .coa-modal-doc iframe { height: 60vh; }
  .coa-modal-head { padding: 20px 18px 14px; }
  .coa-modal-foot { padding: 14px 18px; }
}

/* ---------- Page header (inner pages) ---------- */
.page-head { padding: 90px 0 30px; position: relative; overflow: hidden; }
.page-head::before { content:""; position:absolute; inset:0; pointer-events:none;
  background: radial-gradient(480px 300px at 12% 10%, rgba(35,72,224,0.10), transparent 60%), radial-gradient(520px 320px at 86% 20%, rgba(20,179,214,0.10), transparent 60%); }
.page-head .wrap { position: relative; z-index: 1; }
.page-head .eyebrow { margin-bottom: 18px; }
.page-head p { color: var(--muted); max-width: 620px; margin-top: 16px; font-size: 1.1rem; }

/* ---------- Cards / features ---------- */
.grid { display: grid; gap: 22px; }
.grid-3 { grid-template-columns: repeat(3, 1fr); }
.grid-4 { grid-template-columns: repeat(4, 1fr); }
.card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: 30px; box-shadow: 0 1px 2px rgba(15,26,51,0.04); transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease; }
.card:hover { transform: translateY(-4px); border-color: var(--accent); box-shadow: 0 16px 40px rgba(35,72,224,0.14); }
.card .ico { width: 46px; height: 46px; border-radius: 12px; display: grid; place-items: center; font-size: 1.3rem; background: var(--grad-soft); border: 1px solid var(--border); margin-bottom: 18px; }
.card h3 { margin-bottom: 8px; }
.card p { color: var(--muted); font-size: 0.96rem; }
.section-head { max-width: 620px; margin-bottom: 48px; }
.section-head p { color: var(--muted); margin-top: 14px; font-size: 1.05rem; }

/* ---------- Product cards ---------- */
.product { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; display: flex; flex-direction: column; box-shadow: 0 1px 2px rgba(15,26,51,0.04); transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease; }
.product:hover { transform: translateY(-5px); border-color: var(--accent); box-shadow: 0 18px 46px rgba(35,72,224,0.16); }
.product .thumb { min-height: 210px; height: auto; padding: 22px 0; position: relative; display: grid; place-items: center; background: var(--grad-soft); border-bottom: 1px solid var(--border); }
.product .thumb .pvial { width: 104px; }
.product .bottle { width: 86px; height: 150px; border-radius: 14px; background: linear-gradient(180deg, #ffffff, #eef3fe); border: 1px solid #d6e1f4; position: relative; box-shadow: 0 16px 32px rgba(35,72,224,0.16); }
.product .bottle::before { content: ""; position: absolute; left: 12px; right: 12px; top: 36px; bottom: 22px; border-radius: 8px; background: var(--grad); opacity: 0.85; }
.product .bottle::after { content: ""; position: absolute; left: 50%; top: -14px; transform: translateX(-50%); width: 34px; height: 20px; border-radius: 4px 4px 0 0; background: #d6e1f4; border: 1px solid #c2d2ee; border-bottom: 0; }
.product .tag { position: absolute; top: 14px; left: 14px; font-size: 0.72rem; letter-spacing: .1em; text-transform: uppercase; background: var(--grad); color: #fff; padding: 5px 10px; border-radius: 999px; font-weight: 700; }
.product .body { padding: 24px; display: flex; flex-direction: column; flex: 1; }
.product .cat { font-size: 0.78rem; letter-spacing: .14em; text-transform: uppercase; color: var(--accent); font-weight: 600; }
.product h3 { margin: 8px 0 6px; }
.product .desc { color: var(--muted); font-size: 0.93rem; flex: 1; }
.product .foot { display: flex; align-items: center; justify-content: space-between; margin-top: 20px; }
.product .price { font-size: 1.4rem; font-weight: 800; }
.product .price small { font-size: 0.8rem; color: var(--muted); font-weight: 400; }

/* ---------- About split + bulk pricing + vial ---------- */
.about-section { background: linear-gradient(135deg, var(--bg-soft), var(--bg)); }
/* Centered, image-free About block */
.about-solo { padding: 84px 0; }
.about-solo .about-copy { max-width: 780px; margin: 0 auto; text-align: center; display: flex; flex-direction: column; align-items: center; }
.about-solo .about-copy .kicker { display: inline-flex; align-items: center; gap: 8px; }
.about-solo .about-copy .kicker::before,
.about-solo .about-copy .kicker::after { content: ""; width: 26px; height: 2px; background: var(--accent); opacity: .5; border-radius: 2px; }
.about-solo .about-copy h2 { max-width: 16ch; }
.about-solo .about-copy p { max-width: 620px; margin-left: auto; margin-right: auto; }
@media (max-width: 640px) { .about-solo { padding: 56px 0; } }
.about-grid { display: grid; grid-template-columns: 1fr 1.05fr; gap: 48px; align-items: center; }
.about-visual { position: relative; border-radius: var(--radius); border: 1px solid var(--border); background: linear-gradient(160deg, #eef3fe, #ffffff); padding: 34px 24px 40px; overflow: hidden; min-height: 480px; box-shadow: 0 12px 36px rgba(35,72,224,0.08); }
.about-visual::before { content: ""; position: absolute; inset: 0; background: url("dna-bg.jpg") center/cover; opacity: .12; }
.about-visual > * { position: relative; z-index: 1; }
.about-photo { padding: 0; min-height: 0; }
.about-photo::before { display: none; }
.about-photo img { display: block; width: 100%; height: auto; }
.tiers { text-align: center; color: var(--muted); font-size: 0.98rem; line-height: 1.7; }
.tiers .pop { color: var(--text); font-weight: 800; }
.tiers .small { display: block; font-size: 0.85rem; margin-top: 12px; }
.vial { width: 132px; margin: 28px auto 0; }
.vial .cap { height: 26px; background: #d6e1f4; border: 1px solid #c2d2ee; border-radius: 8px 8px 3px 3px; }
.vial .neck { height: 12px; width: 58%; margin: 0 auto; background: #eef3fe; border-left: 1px solid #c2d2ee; border-right: 1px solid #c2d2ee; }
.vial .vbody { border: 1px solid #c2d2ee; border-radius: 6px 6px 14px 14px; background: linear-gradient(180deg, rgba(35,72,224,0.14), rgba(20,179,214,0.08)); padding: 22px 10px 16px; display: flex; flex-direction: column; align-items: center; gap: 9px; }
.vial .vlabel { background: #ffffff; border: 1px solid #d6e1f4; border-radius: 5px; width: 88%; padding: 11px 6px; text-align: center; }
.vial .vlabel .vn { color: var(--text); font-weight: 800; letter-spacing: .06em; font-size: 1.05rem; }
.vial .vlabel .vmg { display: inline-block; margin-top: 7px; background: var(--surface-2); border: 1px solid var(--border); color: var(--muted); font-size: 0.66rem; padding: 2px 8px; border-radius: 4px; letter-spacing: .05em; }
.vial .vfine { color: var(--muted); font-size: 0.58rem; letter-spacing: .06em; text-align: center; line-height: 1.5; }
.about-copy .kicker { color: var(--accent); letter-spacing: .16em; text-transform: uppercase; font-weight: 700; font-size: 0.85rem; }
.about-copy h2 { text-transform: uppercase; font-size: clamp(1.7rem, 3.3vw, 2.9rem); line-height: 1.08; margin: 16px 0 20px; }
.about-copy p { color: var(--muted); font-size: 1.05rem; line-height: 1.8; max-width: 560px; }
.about-copy .btn { margin-top: 28px; }

/* ---------- FAQ accordion ---------- */
.faq-section { background: var(--bg-soft); }
.faq-grid { display: block; max-width: 860px; margin: 0 auto; }
.faq-head .kicker { color: var(--accent); letter-spacing: .16em; text-transform: uppercase; font-weight: 700; font-size: 0.85rem; }
.faq-head h2 { text-transform: uppercase; font-size: clamp(1.8rem, 3.6vw, 3rem); margin-top: 12px; }
.faq-list { margin-top: 26px; }
.faq-item { border-top: 1px solid var(--border); }
.faq-item:last-child { border-bottom: 1px solid var(--border); }
.faq-item summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 20px 0; color: var(--text); font-weight: 700; text-transform: uppercase; letter-spacing: .02em; font-size: 1rem; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item .pm { flex: none; width: 28px; height: 28px; border-radius: 50%; border: 1.5px solid var(--muted); display: grid; place-items: center; color: var(--muted); transition: .2s; }
.faq-item .pm::before { content: "+"; font-size: 1.1rem; line-height: 1; }
.faq-item[open] .pm { border-color: var(--accent); color: var(--accent); }
.faq-item[open] .pm::before { content: "\2013"; }
.faq-item p { color: var(--muted); line-height: 1.8; padding: 0 0 22px; max-width: 640px; }

/* ---------- Trust / social proof section ---------- */
.trust-section { text-align: center; position: relative; overflow: hidden;
  background: radial-gradient(720px 380px at 50% -12%, rgba(35,72,224,0.12), transparent 62%), var(--bg); }
.trust-section .kicker { color: var(--accent); letter-spacing: .18em; text-transform: uppercase; font-weight: 700; font-size: 0.9rem; }
.trust-section h2 { text-transform: uppercase; font-size: clamp(2.1rem, 5.2vw, 3.8rem); line-height: 1.06; max-width: 920px; margin: 18px auto 0; }
.trust-section p { color: var(--muted); font-size: 1.12rem; margin: 22px auto 0; max-width: 640px; }
.trust-section .btn { margin-top: 32px; }

/* ---------- Split / about page ---------- */
.split { display: grid; grid-template-columns: 1.1fr 1fr; gap: 56px; align-items: center; }
.split p { color: var(--muted); margin-top: 16px; }
.media-box { border-radius: var(--radius); border: 1px solid var(--border); min-height: 360px; position: relative; overflow: hidden; display: grid; place-items: center; box-shadow: 0 12px 36px rgba(35,72,224,0.08); }
.media-box::before { content: ""; position: absolute; inset: 0; background: url("dna-bg.jpg") center/cover; }
.media-box .media-cap { position: relative; z-index: 1; align-self: end; justify-self: start; margin: 0 0 20px 20px; padding: 8px 16px; border-radius: 999px; background: rgba(15,26,51,0.6); backdrop-filter: blur(6px); color: #fff; font-size: 0.85rem; font-weight: 600; letter-spacing: .02em; }
.value-list { list-style: none; margin-top: 26px; display: grid; gap: 16px; }
.value-list li { display: flex; gap: 14px; align-items: flex-start; color: var(--muted); }
.value-list .chk { flex: none; width: 24px; height: 24px; border-radius: 50%; background: var(--grad); color: #fff; display: grid; place-items: center; font-size: 0.8rem; font-weight: 800; margin-top: 3px; }
.value-list strong { color: var(--text); display: block; }

/* ---------- CTA band (legacy) ---------- */
.cta-band { position: relative; overflow: hidden; background: var(--grad-soft), var(--surface-2); border: 1px solid var(--border); border-radius: 24px; padding: 64px 48px; text-align: center; }
.cta-band > * { position: relative; z-index: 1; }
.cta-band p { color: var(--muted); margin: 16px auto 30px; max-width: 520px; }

/* ---------- Contact ---------- */
.contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; }
.field { margin-bottom: 20px; }
.field label { display: block; font-size: 0.85rem; color: var(--muted); margin-bottom: 8px; }
.field input, .field textarea, .field select { width: 100%; padding: 14px 16px; border-radius: 12px; background: var(--surface); border: 1px solid var(--border); color: var(--text); font-family: inherit; font-size: 0.95rem; transition: border-color .2s, box-shadow .2s; }
.field input:focus, .field textarea:focus, .field select:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-glow); }
.field textarea { resize: vertical; min-height: 130px; }
.contact-info .row { display: flex; gap: 16px; align-items: flex-start; margin-bottom: 26px; }
.contact-info .ico { flex: none; width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; background: var(--grad-soft); border: 1px solid var(--border); font-size: 1.2rem; }
.contact-info .row strong { display: block; }
.contact-info .row span { color: var(--muted); font-size: 0.95rem; }
.form-note { font-size: 0.85rem; color: var(--muted); margin-top: 10px; }

/* ---------- Support band (pre-footer CTA) ---------- */
.support-band { position: relative; overflow: hidden; background: linear-gradient(180deg, rgba(234,241,254,0.92), rgba(234,241,254,0.96)), url("dna-bg.jpg") center/cover; border-bottom: 3px solid var(--accent); }
.support-inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 44px 0; flex-wrap: wrap; }
.support-inner h2 { color: var(--text); text-transform: uppercase; font-size: clamp(1.3rem, 2.8vw, 1.95rem); letter-spacing: .01em; }

/* ---------- Footer (dark gradient) ---------- */
.footer { background: linear-gradient(180deg, #16213c 0%, #0c1426 60%, #080d18 100%); color: #c2cbdd; padding: 0 0 0; border-top: 0; position: relative; overflow: hidden; }
.footer-watermark { position: absolute; top: 50%; right: -6%; transform: translateY(-50%); width: min(620px, 60vw); height: auto; color: #2a3d69; opacity: .16; pointer-events: none; z-index: 0; }
.footer > *:not(.footer-watermark) { position: relative; z-index: 1; }
@media (max-width: 700px) { .footer-watermark { right: -20%; top: 22%; width: 82vw; opacity: .12; } }
.footer > .wrap { padding-top: 56px; }
/* email signup band */
.footer-email { background: rgba(255,255,255,0.03); border-bottom: 1px solid rgba(255,255,255,0.1); }
.footer-email .fe-inner { display: flex; justify-content: space-between; align-items: center; gap: 26px; padding: 34px 24px; flex-wrap: wrap; }
.footer-email .fe-copy h3 { color: #fff; font-size: 1.5rem; margin: 0 0 6px; }
.footer-email .fe-copy p { color: #9fb0d8; margin: 0; font-size: .96rem; }
.footer-email .fe-form { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; position: relative; }
.footer-email .fe-form input { border: 1px solid rgba(255,255,255,0.3); background: rgba(255,255,255,0.06); color: #fff; border-radius: 999px; padding: 13px 20px; font-family: inherit; font-size: .96rem; min-width: 260px; }
.footer-email .fe-form input::placeholder { color: #8ea0c4; }
.footer-email .fe-form input:focus { outline: none; border-color: var(--accent-2); }
.footer-email .fe-note { width: 100%; font-size: .82rem; color: var(--accent-2); margin-top: 2px; }
.footer-grid { display: grid; grid-template-columns: 1.8fr 1fr 1fr 1fr; gap: 40px; }
.footer-badges { display: flex; gap: 10px; margin-top: 22px; flex-wrap: wrap; }
.footer-badges span { border: 1px solid rgba(255,255,255,0.18); border-radius: 8px; padding: 8px 14px; font-size: .78rem; font-weight: 700; color: #cdd8f2; letter-spacing: .03em; }
.footer-billing { color: #8c98b3; font-size: .8rem; line-height: 1.7; margin: 18px 0 0; }
.footer-billing strong { color: #cdd8f2; font-weight: 700; }
.footer-billing a { color: #cdd8f2; text-decoration: underline; }
.footer-pay { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin: 18px 0 0; }
.footer-pay .fp-label { color: #6f7a95; font-size: .72rem; font-weight: 600; letter-spacing: .02em; }
.footer-pay .fp-badges { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.footer-pay .fp-mark { height: 17px; width: auto; display: block; opacity: .8; }
.footer-pay .fp-text { color: #9aa6c2; font-size: .72rem; font-weight: 600; opacity: .9; }
.footer-bottom { display: flex; justify-content: space-between; align-items: center; gap: 18px; flex-wrap: wrap; border-top: 1px solid rgba(255,255,255,0.1); margin-top: 22px; padding: 22px 0 40px; }
.footer-bottom .copy { color: #8c98b3; font-size: .85rem; margin: 0; }
.footer-legal { display: flex; gap: 22px; flex-wrap: wrap; }
.footer-legal a { color: #aab4c8; font-size: .88rem; }
.footer-legal a:hover { color: #fff; }
.footer-logo { display: flex; align-items: center; gap: 13px; margin-bottom: 20px; }
.footer-logo .logo-mark { width: 46px; height: 46px; flex: none; color: #8ea6ff; }
.footer-logo .wordmark { display: flex; flex-direction: column; line-height: 1; }
.footer-logo .wordmark b { color: #ffffff; font-size: 1.5rem; font-weight: 800; letter-spacing: .1em; }
.footer-logo .wordmark span { color: #aab4c8; font-size: 0.78rem; font-weight: 600; letter-spacing: .42em; margin-top: 4px; }
.footer .blurb { color: #a9b4c9; max-width: 340px; font-size: 0.95rem; line-height: 1.7; margin: 0; }
.footer-sep { height: 1px; background: rgba(255,255,255,0.16); margin: 28px 0 18px; max-width: 340px; }
.footer .copy { color: #94a0b8; font-size: 0.85rem; margin: 0; }
.footer-col h4 { color: #ffffff; text-transform: uppercase; letter-spacing: .06em; font-size: 0.98rem; font-weight: 700; margin-bottom: 20px; }
.footer-col ul { list-style: none; display: grid; gap: 13px; }
.footer-col li { position: relative; padding-left: 18px; }
.footer-col li::before { content: ""; position: absolute; left: 0; top: 9px; width: 5px; height: 5px; border-radius: 50%; background: #8ea6ff; }
.footer-col a { color: #c2cbdd; font-size: 0.95rem; transition: color .2s; }
.footer-col a:hover { color: #ffffff; }
.footer-contact .crow { display: flex; gap: 14px; align-items: flex-start; margin-bottom: 20px; }
.footer-contact .ci { flex: none; color: #8ea6ff; margin-top: 2px; }
.footer-contact .ci svg { width: 22px; height: 22px; display: block; }
.footer-contact a, .footer-contact span { color: #c2cbdd; font-size: 0.95rem; line-height: 1.55; }
.footer-contact a:hover { color: #ffffff; }
.footer-disclaimer { color: #8b97b3; font-family: inherit; font-size: 0.82rem; line-height: 1.6; letter-spacing: 0; margin: 40px 0 0; padding: 26px 0 0; max-width: 900px; border-top: 1px solid rgba(255,255,255,0.1); }
.footer-disclaimer strong { color: #cdd8f2; font-weight: 700; }
.footer-support { background: #05070d; text-align: center; padding: 20px 16px; color: #c2cbdd; font-size: 0.95rem; }
.footer-support a { color: #ffffff; font-weight: 700; text-decoration: underline; }

/* ---------- FDA disclaimer band ---------- */
.fda-band { background: #0c1430; color: #7e8aa6; padding: 28px 0 32px; }
.fda-band h4 { color: #aeb8cc; text-transform: uppercase; letter-spacing: .1em; font-size: 0.72rem; font-weight: 700; margin-bottom: 12px; }
.fda-band p { font-size: 0.76rem; line-height: 1.6; margin-bottom: 10px; max-width: 900px; }
.fda-band p:last-child { margin-bottom: 0; }

/* ---------- Hover price overlay ---------- */
.price-hover { position: absolute; inset: 0; z-index: 2; display: flex; align-items: center; justify-content: center;
  background: rgba(255,255,255,0.78); backdrop-filter: blur(2px);
  font-weight: 800; font-size: 1.35rem; color: var(--text); letter-spacing: .01em;
  opacity: 0; transition: opacity .2s ease; pointer-events: none; border-radius: inherit;
  padding: 10px; text-align: center; line-height: 1.25; }
.pthumb:hover .price-hover { opacity: 1; }
@media (max-width: 700px) { .price-hover { font-size: .92rem; padding: 8px; } }
@media (max-width: 480px) { .price-hover { font-size: .8rem; } }

/* ---------- Product photo fill ---------- */
.pthumb-photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border-radius: inherit; }
.shop-card .badge, .pdp-imgpanel .badge, .product .tag { z-index: 1; }

/* ---------- Terms & Conditions ---------- */
.tc-hero { position: relative; overflow: hidden; color: #fff; text-align: center; padding: 78px 0 64px;
  background: linear-gradient(125deg, #162c72 0%, #1f3b9c 55%, #2848b4 100%); }
/* depth glow (soft top-left highlight + faint cyan pool bottom-right) */
.tc-hero::before { content: ""; position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(60% 85% at 14% 6%, rgba(255,255,255,0.10), transparent 60%),
              radial-gradient(50% 80% at 96% 104%, rgba(20,179,214,0.15), transparent 62%); }
/* faint dot texture for a modern feel */
.tc-hero::after { content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .10;
  background-image: radial-gradient(rgba(255,255,255,0.9) 1px, transparent 1.5px); background-size: 22px 22px; }
.tc-hero > * { position: relative; z-index: 1; }
.tc-hero h1 { font-size: clamp(2.6rem, 6.4vw, 4.7rem); font-weight: 800; text-transform: uppercase;
  color: #fff; letter-spacing: -.015em; line-height: 1.02; margin: 0;
  text-shadow: 0 2px 30px rgba(6,18,64,0.30); }
.tc-hero .crumbs { display: inline-flex; align-items: center; gap: 8px; margin-top: 22px;
  font-size: .8rem; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; color: #e2e9ff;
  background: rgba(255,255,255,0.12); border: 1px solid rgba(255,255,255,0.20); padding: 8px 16px; border-radius: 999px;
  -webkit-backdrop-filter: blur(5px); backdrop-filter: blur(5px); }
.tc-hero .crumbs a { color: #fff; }
.tc-hero .crumbs a:hover { color: #fff; text-decoration: underline; }
/* 7-point testing eyebrow + test-name pills in the banner */
.tc-eyebrow { display: inline-flex; align-items: center; gap: 7px; margin: 0 0 14px;
  color: #bcd0ff; font-size: .76rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.tc-tests { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin: 22px auto 0; max-width: 780px; }
.tc-tests span { font-size: .72rem; font-weight: 600; letter-spacing: .01em; color: #eaf0ff;
  background: rgba(255,255,255,0.10); border: 1px solid rgba(255,255,255,0.18); padding: 6px 12px; border-radius: 999px; }
.tc-hero .tc-tests + .crumbs { margin-top: 20px; }
.tc-intro { padding: 72px 0 24px; }
.tc-intro h2 { text-transform: uppercase; font-size: clamp(1.9rem, 4vw, 3rem); margin-bottom: 22px; }
.tc-intro p { color: var(--muted); font-size: 1.12rem; line-height: 1.8; max-width: 1040px; }
.tc-section { padding: 40px 0 80px; position: relative; }
.tc-section::before { content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .5;
  background:
    radial-gradient(360px 260px at 12% 12%, rgba(35,72,224,0.05), transparent 60%),
    radial-gradient(420px 300px at 88% 45%, rgba(20,179,214,0.05), transparent 60%),
    radial-gradient(380px 280px at 18% 85%, rgba(35,72,224,0.05), transparent 60%); }
.tc-list { position: relative; z-index: 1; }
.tc-item { display: grid; grid-template-columns: 120px 1fr; gap: 0 16px; margin-bottom: 58px; align-items: start; }
.tc-num { width: 88px; height: 88px; border: 1px solid var(--border); border-radius: 50%; display: grid; place-items: center; font-size: 1.9rem; font-weight: 700; color: var(--accent); background: var(--bg); }
.tc-item h3 { text-transform: uppercase; font-size: 1.65rem; font-weight: 800; margin-bottom: 12px; }
.tc-item p { color: var(--muted); font-size: 1.08rem; line-height: 1.85; margin-bottom: 12px; }
.tc-item p strong { color: var(--text); }
.tc-item ol { margin: 14px 0 0 22px; color: var(--muted); font-size: 1.08rem; line-height: 1.85; display: grid; gap: 8px; }

/* ---------- Policy pages (privacy / shipping / refunds) ---------- */
.tc-item ul { margin: 14px 0 0 22px; color: var(--muted); font-size: 1.08rem; line-height: 1.85; display: grid; gap: 8px; }
.pol-h1 { text-transform: uppercase; font-size: clamp(1.9rem, 4vw, 3rem); margin-bottom: 20px; }
.pol-body p { color: var(--muted); font-size: 1.1rem; line-height: 1.85; margin-bottom: 20px; max-width: 1080px; }
.pol-body h2 { text-transform: uppercase; font-size: clamp(1.5rem, 3vw, 2.2rem); margin: 46px 0 16px; }
.pol-body h3 { text-transform: uppercase; font-size: 1.08rem; font-weight: 800; margin: 30px 0 12px; }
.pol-body ul { margin: 0 0 20px 24px; color: var(--muted); font-size: 1.1rem; line-height: 1.9; display: grid; gap: 6px; }
.pol-body strong { color: var(--text); }

/* ---------- Track your order ---------- */
.track-grid { display: grid; grid-template-columns: 1.25fr 0.75fr; gap: 56px; align-items: center; }
.track-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.track-fields label { display: block; font-weight: 700; font-size: 1.05rem; margin-bottom: 10px; }
.track-fields input { width: 100%; padding: 16px; border: 1px solid var(--border); border-radius: 10px; font-family: inherit; font-size: 0.98rem; color: var(--text); }
.track-fields input:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-glow); }
.track-btn { width: 100%; margin-top: 26px; border: 0; background: var(--accent); color: #fff; font-family: inherit; font-weight: 700; font-size: 1.05rem; letter-spacing: .08em; text-transform: uppercase; padding: 18px; border-radius: 10px; cursor: pointer; transition: background .2s, transform .15s; }
.track-btn:hover { background: var(--accent-dim); transform: translateY(-1px); }
@media (max-width: 900px) {
  .track-grid { grid-template-columns: 1fr; gap: 32px; }
  .track-fields { grid-template-columns: 1fr; }
}

/* ---------- Confidence band (pre-footer) ---------- */
.confidence-band { position: relative; overflow: hidden; color: #fff;
  background: linear-gradient(rgba(9,14,28,0.78), rgba(9,14,28,0.84)), url("dna-bg.jpg") center/cover;
  border-top: 4px solid var(--accent); border-bottom: 4px solid var(--accent); }
.confidence-inner { display: flex; align-items: center; justify-content: space-between; gap: 28px; padding: 64px 0; flex-wrap: wrap; }
.confidence-inner .kick { font-size: 0.85rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #d7deeb; margin-bottom: 14px; }
.confidence-inner h2 { color: #fff; text-transform: uppercase; font-size: clamp(1.9rem, 4.4vw, 3.4rem); line-height: 1.05; }
.confidence-inner .sub { margin-top: 16px; font-size: 0.95rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #c9d3e6; }
.btn-white { background: #fff; color: #0f1a33; border: 0; }
.btn-white:hover { transform: translateY(-2px); box-shadow: 0 12px 30px rgba(0,0,0,.35); }

/* ---------- About page (clone) ---------- */
.ab-split { display: grid; grid-template-columns: 1fr 1.08fr; gap: 60px; align-items: center; }
.ab-photo { border-radius: 22px; overflow: hidden; line-height: 0; box-shadow: 0 14px 40px rgba(35,72,224,0.10); }
.ab-photo img { width: 100%; height: 100%; object-fit: cover; }
.ab-kicker { color: var(--accent); font-weight: 700; text-transform: uppercase; letter-spacing: .06em; font-size: 1.05rem; }
.ab-title { font-size: clamp(2rem, 4.4vw, 3.3rem); text-transform: uppercase; line-height: 1.12; margin: 14px 0 26px; }
.ab-copy p { color: var(--muted); font-size: 1.1rem; line-height: 1.85; margin-bottom: 20px; }
.mission-band { background: #1e3a96; color: #fff; clip-path: polygon(50% 0, 100% 22%, 100% 78%, 50% 100%, 0 78%, 0 22%); padding: 150px 24px; text-align: center; }
.mission-band h2 { color: #fff; text-transform: uppercase; font-size: clamp(2rem, 4.6vw, 3.1rem); margin-bottom: 30px; }
.mission-band p { max-width: 1180px; margin: 0 auto; font-size: 1.13rem; line-height: 1.85; color: #e8edf8; }
@media (max-width: 900px) {
  .ab-split { grid-template-columns: 1fr; gap: 34px; }
  .mission-band { clip-path: polygon(50% 0, 100% 10%, 100% 90%, 50% 100%, 0 90%, 0 10%); padding: 110px 20px; }
}

/* ---------- Contact page (clone) ---------- */
.contact2-grid { display: grid; grid-template-columns: 1fr 1.08fr; gap: 56px; align-items: start; }
.c2-kicker { color: var(--accent); font-weight: 700; text-transform: uppercase; letter-spacing: .06em; font-size: 1.05rem; }
.c2-title { font-size: clamp(2.4rem, 5vw, 3.7rem); text-transform: uppercase; margin: 12px 0 20px; line-height: 1; }
.c2-sub { text-transform: uppercase; font-weight: 800; font-size: 1.05rem; letter-spacing: .01em; margin-bottom: 24px; }
.c2-div { height: 1px; background: var(--border); margin-bottom: 38px; }
.c2-row { display: flex; gap: 20px; align-items: flex-start; margin-bottom: 34px; }
.c2-ico { color: var(--accent); flex: none; margin-top: 2px; }
.c2-ico svg { width: 38px; height: 38px; display: block; }
.c2-row strong { display: block; font-size: 1.2rem; margin-bottom: 6px; }
.c2-row span { color: var(--text); font-size: 1.08rem; line-height: 1.65; }
/* Contact info cards (Ascend-style) */
.c2-cards { display: grid; grid-template-columns: 1fr; gap: 16px; margin-top: 30px; }
.c2-card { background: var(--bg-soft); border: 1px solid var(--border); border-radius: 18px; padding: 24px 24px 22px;
  transition: border-color .2s, box-shadow .2s, transform .2s; }
.c2-card:hover { border-color: var(--accent); box-shadow: 0 12px 30px rgba(35,72,224,0.08); transform: translateY(-2px); }
.c2-cico { display: inline-flex; align-items: center; justify-content: center; width: 46px; height: 46px; border-radius: 12px;
  background: rgba(35,72,224,0.10); color: var(--accent); margin-bottom: 16px; }
.c2-cico svg { width: 22px; height: 22px; }
.c2-card h3 { font-size: 1.15rem; margin: 0 0 6px; color: var(--text); }
.c2-card p { color: var(--muted); font-size: .95rem; line-height: 1.5; margin: 0 0 12px; }
.c2-card a { color: var(--accent); font-weight: 700; font-size: 1.02rem; word-break: break-word; }
.c2-card a:hover { text-decoration: underline; }
@media (min-width: 520px) { .c2-cards { grid-template-columns: 1fr 1fr; } }

/* Contact page. Ascend-style centered header band + card row (no message form) */
.contact-hero { background: linear-gradient(180deg, var(--bg-soft), #fff); padding: 84px 0 62px; text-align: center; }
.contact-head { max-width: 760px; margin: 0 auto; }
.contact-head .c2-title { margin: 12px 0 16px; }
.contact-lead { color: var(--muted); font-size: 1.12rem; line-height: 1.7; max-width: 640px; margin: 0 auto; }
.contact-cards-sec { padding: 0 0 88px; }
.contact-cards { max-width: 1060px; margin: -26px auto 0; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.contact-cards .c2-card { padding: 30px 26px 26px; background: #fff; box-shadow: 0 8px 30px rgba(15,26,51,0.05); }
.contact-cards .c2-card:hover { box-shadow: 0 16px 40px rgba(35,72,224,0.10); }
@media (max-width: 860px) { .contact-cards { grid-template-columns: 1fr; max-width: 460px; } .contact-hero { padding: 60px 0 44px; } }
.msg-card { background: #1e3a96; border-radius: 26px; padding: 52px 46px; color: #fff; }
.msg-card h2 { color: #fff; text-transform: uppercase; font-size: clamp(1.6rem, 3.1vw, 2.4rem); line-height: 1.3; margin-bottom: 36px; }
.msg-card .mrow { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.msg-card input, .msg-card textarea { width: 100%; background: transparent; border: 1.5px solid rgba(255,255,255,0.9); border-radius: 10px; padding: 17px 18px; color: #fff; font-family: inherit; font-size: 1rem; margin-bottom: 20px; }
.msg-card input::placeholder, .msg-card textarea::placeholder { color: rgba(255,255,255,0.92); }
.msg-card input:focus, .msg-card textarea:focus { outline: none; border-color: #fff; box-shadow: 0 0 0 3px rgba(255,255,255,0.18); }
.msg-card textarea { min-height: 150px; resize: vertical; }
.msg-submit { width: 100%; background: #fff; color: #0f1a33; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; border: 0; border-radius: 8px; padding: 18px; font-size: 1.05rem; font-family: inherit; cursor: pointer; transition: transform .15s, box-shadow .2s; }
.msg-submit:hover { transform: translateY(-2px); box-shadow: 0 10px 26px rgba(0,0,0,0.25); }
.msg-note { color: #fff; font-size: .9rem; margin-top: 14px; }
.contact-map { margin-top: 72px; line-height: 0; }
.contact-map iframe { width: 100%; height: 520px; border: 0; }
@media (max-width: 900px) {
  .contact2-grid { grid-template-columns: 1fr; gap: 40px; }
  .msg-card { padding: 38px 26px; }
  .msg-card .mrow { grid-template-columns: 1fr; gap: 0; }
}

/* ---------- Checkout ---------- */
.checkout-grid { display: grid; grid-template-columns: 1.5fr 1fr; gap: 48px; align-items: start; }
.co-step { display: flex; align-items: center; gap: 14px; margin-bottom: 8px; }
.co-stepnum { width: 32px; height: 32px; border-radius: 50%; background: var(--surface-2); border: 1px solid var(--border); color: var(--muted); display: grid; place-items: center; font-weight: 700; flex: none; }
.co-stepnum.on { background: var(--accent); color: #fff; border-color: var(--accent); }
.co-h { font-size: 1.35rem; }
.co-note { color: var(--muted); margin: 0 0 18px 46px; font-size: 0.95rem; }
.co-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: 28px; box-shadow: 0 1px 2px rgba(15,26,51,0.04); }
.co-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.co-locked { color: var(--muted); text-align: center; padding: 18px; font-size: 0.98rem; }
.co-done-row { display: flex; align-items: center; gap: 14px; }
.co-check { width: 34px; height: 34px; border-radius: 50%; background: var(--accent); color: #fff; display: grid; place-items: center; font-weight: 800; flex: none; }
.co-done-row strong { display: block; }
.upsell-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.up-card { border: 1px solid var(--border); border-radius: 14px; padding: 18px 14px; text-align: center; transition: border-color .2s, box-shadow .2s; }
.up-card:hover { border-color: var(--accent); box-shadow: 0 8px 24px rgba(35,72,224,0.10); }
.up-card .uico { font-size: 1.9rem; }
.up-name { font-weight: 700; margin: 10px 0 4px; font-size: 0.98rem; }
.up-sub { color: var(--muted); font-size: 0.8rem; line-height: 1.5; min-height: 38px; }
.up-price { font-weight: 800; margin: 10px 0 12px; font-size: 1.05rem; }
.up-btn { width: 100%; border: 1.5px solid var(--accent); color: var(--accent); background: var(--bg); border-radius: 999px; padding: 9px; font-weight: 700; font-family: inherit; font-size: 0.88rem; cursor: pointer; transition: background .15s, color .15s; }
.up-btn.on { background: var(--accent); color: #fff; }
@media (max-width: 560px) { .upsell-grid { grid-template-columns: 1fr; } }
.co-summary { background: var(--surface-2); border: 1px solid var(--border); border-radius: var(--radius); padding: 26px; position: sticky; top: 96px; }
.co-summary h3 { margin-bottom: 18px; }
.ship-note { background: var(--grad-soft); border: 1px solid var(--border); border-radius: 10px; padding: 11px 14px; font-size: 0.86rem; color: var(--text); margin-bottom: 16px; font-weight: 600; line-height: 1.5; }
.co-line { display: flex; justify-content: space-between; padding: 10px 0; color: var(--muted); border-bottom: 1px solid var(--border); font-size: 0.95rem; }
.co-line.promo { color: var(--accent); font-weight: 600; }
.co-line.co-total { color: var(--text); font-weight: 800; font-size: 1.15rem; border-bottom: 0; padding-top: 14px; }
.co-fine { color: var(--muted); font-size: 0.76rem; margin-top: 14px; }

/* ---------- Product detail page ---------- */
.pdp-grid { display: grid; grid-template-columns: 1fr 1.1fr; gap: 52px; align-items: start; }
.pdp-imgpanel { position: relative; border: 1px solid var(--border); border-radius: 18px; background: linear-gradient(180deg, #f7faff, #eaf1fe); min-height: 500px; display: flex; align-items: center; justify-content: center; }
.pdp-imgpanel .badge { position: absolute; top: 16px; left: 16px; color: #fff; font-size: 0.74rem; font-weight: 800; letter-spacing: .04em; padding: 7px 14px; border-radius: 8px; background: var(--accent); text-transform: uppercase; }
.pdp-imgpanel .badge.best { background: var(--text); }
.pdp-imgpanel .pvial { width: 175px; }
.pdp-imgpanel .plabel .pname { font-size: 1.25rem; }
.pdp-imgpanel .plabel .plogo svg { width: 20px; height: 20px; }
.pdp-imgpanel .plabel .plogo b { font-size: 0.78rem; }
.pdp-imgpanel .plabel .pmg { font-size: 0.7rem; }
.pdp-imgpanel .plabel .pfine { font-size: 0.58rem; }
.pdp-thumbs { display: flex; gap: 10px; margin-top: 14px; flex-wrap: wrap; }
.pdp-thumb { width: 86px; height: 86px; border: 1px solid var(--border); border-radius: 10px; background: #fff; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; color: var(--muted); cursor: pointer; transition: border-color .2s; }
.pdp-thumb:hover, .pdp-thumb.active { border-color: var(--accent); }
.pdp-thumb .doc { width: 40px; height: 52px; border: 1px solid var(--border); border-radius: 3px; background: repeating-linear-gradient(180deg, #fff 0 5px, #e8edf6 5px 8px); }
.pdp-thumb small { font-size: 0.52rem; letter-spacing: .04em; text-transform: uppercase; }
.pdp-title { font-size: clamp(2rem, 4.5vw, 3.2rem); text-transform: uppercase; line-height: 1.04; }
.pdp-price { font-size: 1.7rem; font-weight: 600; margin: 16px 0 22px; }
.pdp-desc { color: var(--text); font-weight: 600; line-height: 1.75; font-size: 1.04rem; }
.ptable { width: 100%; border-collapse: collapse; margin: 28px 0 6px; border: 1px solid var(--border); }
.ptable th, .ptable td { text-align: left; padding: 14px 18px; border-bottom: 1px solid var(--border); font-size: 0.98rem; }
.ptable th { background: var(--surface-2); font-weight: 700; }
.ptable td + td, .ptable th + th { border-left: 1px solid var(--border); }
.ptable tr:last-child td { border-bottom: 0; }
.pdp-points { margin: 20px 0 4px; font-size: 1rem; }
.pdp-label { font-weight: 700; margin: 20px 0 10px; font-size: 1.05rem; }
.pdp-select { padding: 13px 16px; border: 1px solid var(--border); border-radius: 10px; min-width: 240px; background: var(--surface); font-family: inherit; font-size: 0.96rem; color: var(--text); }
.pdp-select:focus { outline: none; border-color: var(--accent); }
.qty-row { display: flex; gap: 16px; align-items: center; margin-top: 26px; flex-wrap: wrap; }
.qty { display: inline-flex; border: 1px solid var(--border); border-radius: 10px; overflow: hidden; }
.qty button { width: 44px; height: 48px; border: 0; background: var(--surface-2); cursor: pointer; font-size: 1.15rem; color: var(--text); font-family: inherit; }
.qty button:hover { background: var(--border); }
.qty input { width: 56px; text-align: center; border: 0; font-family: inherit; font-size: 1rem; color: var(--text); }
.qty input:focus { outline: none; }

/* ---------- Shop layout (sidebar + grid) ---------- */
.shop-title { font-size: clamp(2.6rem, 6vw, 4rem); text-transform: uppercase; }
.crumbs { color: var(--muted); margin-top: 8px; font-size: 0.95rem; }
.crumbs a:hover { color: var(--accent); }
.shop-layout { display: grid; grid-template-columns: 250px 1fr; gap: 44px; align-items: start; }
.shop-side .sblock { margin-bottom: 36px; }
.shop-side h4 { text-transform: uppercase; font-size: 1rem; letter-spacing: .04em; margin-bottom: 14px; }
.srow { display: flex; gap: 10px; }
.srow input { flex: 1; min-width: 0; padding: 12px 14px; border: 1px solid var(--border); border-radius: 10px; background: var(--surface-2); font-family: inherit; font-size: .92rem; color: var(--text); }
.srow input:focus { outline: none; border-color: var(--accent); }
.srow .btn { border-radius: 10px; padding: 12px 18px; font-size: .85rem; }
.price-range { width: 100%; accent-color: var(--accent); }
.prow { display: flex; justify-content: space-between; margin-top: 10px; }
.pbox { border: 1px solid var(--border); border-radius: 8px; padding: 6px 14px; color: var(--muted); font-size: 0.9rem; background: var(--surface); }
.chk-row { display: flex; align-items: center; gap: 10px; color: var(--muted); margin-bottom: 10px; cursor: pointer; font-size: .95rem; }
.chk-row input { accent-color: var(--accent); width: 16px; height: 16px; }
.cat-row { display: flex; justify-content: space-between; align-items: center; color: var(--muted); padding: 9px 0; border-bottom: 1px dashed var(--border); font-size: .95rem; }
.cat-row .cnt { background: var(--surface-2); border: 1px solid var(--border); border-radius: 999px; font-size: 0.75rem; padding: 2px 10px; }
.results-bar { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 26px; flex-wrap: wrap; }
.results-bar .rb-left, .results-bar .rb-right { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.results-bar .woocommerce-product-search { display: flex; align-items: center; gap: 8px; margin: 0; }
.results-bar .woocommerce-product-search .search-field { height: 46px; box-sizing: border-box; border: 1px solid var(--border); border-radius: 10px; padding: 0 14px; font-family: inherit; font-size: .92rem; min-width: 220px; }
.results-bar .woocommerce-product-search .search-field:focus { outline: none; border-color: var(--brand, #2348e0); }
.results-bar .woocommerce-product-search button { height: 46px; box-sizing: border-box; white-space: nowrap; border-radius: 10px; padding: 0 20px; }
.results-bar .woocommerce-ordering { margin: 0; }
.results-bar .woocommerce-ordering select,
.results-bar select { height: 46px; box-sizing: border-box; margin: 0; padding: 0 14px; border: 1px solid var(--border); border-radius: 10px; font-family: inherit; font-size: .92rem; background: #fff; color: var(--text); vertical-align: middle; }
.filters-btn { display: none; align-items: center; gap: 9px; padding: 14px 22px; border: 1px solid var(--border); border-radius: 12px; background: var(--surface-2); font-family: inherit; font-weight: 600; font-size: 1rem; color: var(--text); cursor: pointer; }
.results-bar select { padding: 10px 14px; border: 1px solid var(--border); border-radius: 10px; background: var(--surface); color: var(--text); font-family: inherit; font-size: .92rem; }
.shop-main .shop-grid { grid-template-columns: repeat(3, 1fr); }
.shop-card .pts { margin-top: 8px; color: var(--text); font-size: 0.92rem; }
.pthumb.sq { aspect-ratio: 1 / 1; min-height: 0; }
a.shop-card { display: block; color: var(--text); }

/* ---------- Shop grid (products page) ---------- */
.shop-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.shop-card { text-align: center; }
.shop-card .pthumb { position: relative; border: 1px solid var(--border); border-radius: 18px; background: linear-gradient(180deg, #f7faff, #eaf1fe); padding: 28px 18px; display: flex; align-items: center; justify-content: center; min-height: 300px; box-shadow: 0 1px 2px rgba(15,26,51,0.04); transition: transform .2s, box-shadow .2s, border-color .2s; }
.shop-card:hover .pthumb { transform: translateY(-4px); box-shadow: 0 16px 40px rgba(35,72,224,0.14); border-color: var(--accent); }
.shop-card .badge { position: absolute; top: 14px; left: 14px; color: #fff; font-size: 0.7rem; font-weight: 800; letter-spacing: .04em; padding: 6px 12px; border-radius: 8px; background: var(--accent); text-transform: uppercase; }
.shop-card .badge.best { background: var(--text); }
.shop-card h3 { margin-top: 18px; font-size: 0.98rem; text-transform: uppercase; letter-spacing: .02em; }
.shop-card .cta { display: inline-block; margin-top: 10px; color: var(--accent); font-weight: 700; text-transform: uppercase; letter-spacing: .08em; font-size: 0.8rem; }
.shop-card .cta:hover { text-decoration: underline; }

/* ---- shop-card buy controls (AJAX add + inline size selector) ---- */
/* Equal-height cards: everything stacks, the buy control is pinned to the bottom so
   Add-to-cart buttons line up across a row regardless of title length. */
.shop-main .shop-card { display: flex; flex-direction: column; height: 100%; }
.shop-main .shop-card h3 { margin-top: 16px; }
.shop-main .shop-card .vytal-buy { margin-top: auto; padding-top: 12px; position: relative; }
.cta-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; width: 100%; box-sizing: border-box; border: 0; cursor: pointer; font-family: inherit; font-weight: 700; font-size: .9rem; letter-spacing: .01em; padding: 13px 18px; border-radius: 999px; text-decoration: none; text-align: center; transition: transform .15s, box-shadow .15s, background .15s, opacity .15s; }
.cta-add, a.cta-add { background: linear-gradient(90deg, #2348e0, #2f7be6); color: #fff; box-shadow: 0 8px 20px rgba(35,72,224,.22); }
.cta-add:hover { transform: translateY(-1px); box-shadow: 0 12px 26px rgba(35,72,224,.30); color: #fff; }
.cta-add.added { background: linear-gradient(90deg, #2348e0, #2f7be6); box-shadow: 0 8px 20px rgba(35,72,224,.22); }
.cta-add .cta-price { font-weight: 800; opacity: .95; }
.cta-add[disabled], .cta-btn[disabled] { opacity: .45; cursor: not-allowed; box-shadow: none; transform: none; }
/* Size panel: hidden on desktop entirely (desktop uses the product page). */
.vytal-sizes { display: none; background: #fff; border: 1px solid var(--border); border-radius: 16px; padding: 14px; box-shadow: 0 18px 44px rgba(15,26,51,.16); text-align: left; }
.vytal-sizes-head { display: flex; align-items: center; justify-content: space-between; font-size: .68rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); margin: 0 0 12px; }
.vytal-sizes-x { border: 0; background: none; font-size: 20px; line-height: 1; color: var(--muted); cursor: pointer; padding: 0 2px; }
.vytal-size-list { display: flex; flex-direction: column; gap: 8px; margin-bottom: 12px; }
.vytal-size { display: flex; align-items: center; justify-content: space-between; gap: 10px; width: 100%; box-sizing: border-box; border: 1.5px solid var(--border); background: #fff; border-radius: 999px; padding: 12px 16px; cursor: pointer; font-family: inherit; transition: border-color .15s, background .15s, color .15s; }
.vytal-size .vs-mg { font-weight: 800; font-size: .92rem; color: #1c2a4e; }
.vytal-size .vs-pr { font-weight: 700; font-size: .9rem; color: var(--accent); }
.vytal-size .vs-pr del { color: var(--muted); font-weight: 500; margin-right: 5px; }
.vytal-size:hover { border-color: var(--accent); }
.vytal-size.sel { background: linear-gradient(90deg, #2348e0, #2f7be6); border-color: transparent; }
.vytal-size.sel .vs-mg, .vytal-size.sel .vs-pr { color: #fff; }
.vytal-size.sel .vs-pr del { color: rgba(255,255,255,.7); }
.vytal-size.oos { opacity: .4; cursor: not-allowed; }
/* Opening the panel floats it upward over the card (desktop + mobile), like Ascend. */
.vytal-buy-var.open .vytal-sizes { display: block; position: absolute; left: 0; right: 0; bottom: calc(100% + 10px); z-index: 30; animation: vsizeup .18s ease; }
.vytal-buy-var.open .vytal-var-cta { visibility: hidden; }
@keyframes vsizeup { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
@media (max-width: 600px) {
  .cta-btn { padding: 12px 14px; font-size: .9rem; }
  .vytal-sizes { padding: 11px; border-radius: 14px; }
  .vytal-sizes-head { margin-bottom: 8px; }
  .vytal-size-list { gap: 6px; margin-bottom: 9px; }
  .vytal-size { padding: 9px 13px; border-width: 1px; }
  .vytal-size .vs-mg { font-size: .84rem; }
  .vytal-size .vs-pr { font-size: .82rem; }
}
.shop-foot { text-align: center; margin-top: 48px; }

/* VYTAL vial mockup with label */
.pvial { width: 122px; }
.pvial .pcap { height: 24px; border-radius: 7px 7px 2px 2px; background: linear-gradient(180deg, #ccd6e8 0%, #aebcd6 55%, #c2cee4 100%); }
.pvial .pneck { height: 8px; width: 64%; margin: 0 auto; background: linear-gradient(180deg, #dde6f3, #cdd9ee); }
.pvial .pglass { position: relative; border: 1px solid #cdd9ee; border-top: 0; border-radius: 3px 3px 13px 13px; background: linear-gradient(180deg, rgba(255,255,255,0.95), rgba(223,231,245,0.9)); padding: 9px 0 0; box-shadow: inset 0 -10px 18px rgba(35,72,224,0.05); }
.pvial .plabel { margin: 8px 7px 16px; border-radius: 3px; padding: 10px 7px 12px; background: linear-gradient(180deg, #1b2748, #0f1a33); color: #fff; }
.pvial .plabel .plogo { display: flex; align-items: center; justify-content: center; gap: 5px; color: #fff; }
.pvial .plabel .plogo svg { width: 15px; height: 15px; }
.pvial .plabel .plogo b { font-size: 0.6rem; letter-spacing: .12em; font-weight: 800; }
.pvial .plabel .pname { font-size: 0.92rem; font-weight: 800; margin-top: 9px; line-height: 1.15; }
.pvial .plabel .pmg { display: inline-block; margin-top: 8px; border: 1px solid rgba(255,255,255,0.32); font-size: 0.56rem; padding: 2px 8px; border-radius: 3px; letter-spacing: .05em; }
.pvial .plabel .pfine { font-size: 0.45rem; color: #9fabc6; margin-top: 9px; line-height: 1.55; letter-spacing: .05em; }

/* ---------- Disclaimer (legacy) ---------- */
.disclaimer { font-size: 0.78rem; color: var(--muted); max-width: 760px; margin-top: 14px; }

/* ---------- Responsive ---------- */
@media (max-width: 900px) {
  .grid-3, .grid-4 { grid-template-columns: repeat(2, 1fr); }
  .split, .contact-grid { grid-template-columns: 1fr; gap: 36px; }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 32px; }
  .support-inner { flex-direction: column; align-items: flex-start; gap: 18px; }
  .about-grid, .faq-grid { grid-template-columns: 1fr; gap: 32px; }
  .shop-layout { display: block; }
  .shop-side { display: none; margin-bottom: 30px; }
  .shop-side.open { display: block; }
  .filters-btn { display: inline-flex; flex: 1; justify-content: center; }
  .results-bar { justify-content: flex-start; }
  .results-bar .muted { display: none; }
  .results-bar .rb-left, .results-bar .rb-right { width: 100%; }
  .results-bar .rb-right { flex-direction: column; align-items: stretch; }
  .results-bar .woocommerce-product-search { width: 100%; }
  .results-bar .woocommerce-product-search .search-field { flex: 1; min-width: 0; }
  .results-bar .woocommerce-ordering, .results-bar select { width: 100%; flex: 1; }
  .shop-main .shop-grid { grid-template-columns: repeat(2, 1fr); }
  .pdp-grid { grid-template-columns: 1fr; gap: 36px; }
  .pdp-imgpanel { min-height: 400px; }
  .checkout-grid { grid-template-columns: 1fr; gap: 32px; }
  .co-summary { position: static; }
  .about-visual { min-height: 380px; }
  .hero::before { height: 34vh; }
  .hero-inner { padding-top: 30vh; }
  .nav-links { position: absolute; top: 76px; left: 0; right: 0; flex-direction: column; gap: 0; background: var(--bg); border-bottom: 1px solid var(--border); padding: 8px 0; display: none; }
  .nav-links.open { display: flex; }
  .nav-links a { padding: 14px 24px; width: 100%; }
  .nav-toggle { display: block; }
}
@media (max-width: 760px) {
  .topbar-tag { display: none; }
  .topbar-social, .topbar-links { flex: 0 0 auto; }
  .topbar-inner { justify-content: space-between; }
}
@media (max-width: 480px) {
  .topbar-links a:first-child { display: none; }
}
@media (max-width: 560px) {
  .grid-3, .grid-4 { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: 1fr; gap: 30px; }
  section { padding: 64px 0; }
  .cta-band { padding: 44px 24px; }
}
@media (max-width: 900px) {
  .shop-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) {
  .shop-grid { grid-template-columns: repeat(2, 1fr); gap: 14px; }
}

/* ---- Related products band (PDP bottom) ---- */
.related { padding: 28px 0 96px; border-top: 1px solid var(--border); margin-top: 8px; background: var(--bg); }
.related-title { font-size: 1.5rem; text-transform: uppercase; letter-spacing: .02em; margin: 34px 0 26px; }
.related-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.related .pthumb { min-height: 0; aspect-ratio: 1 / 1; padding: 14px; }
.related h3 { font-size: 1rem; margin: 14px 0 4px; }
.related .pts { margin-bottom: 12px; }
@media (max-width: 980px) { .related-grid { grid-template-columns: repeat(2, 1fr); gap: 16px; } }

/* ============================================================
   WORDPRESS / WOOCOMMERCE OVERRIDES (appended for theme build)
   ============================================================ */
img { max-width: 100%; height: auto; }
.pthumb img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border-radius: inherit; }

/* shop sidebar category list */
.cat-list { list-style: none; margin: 0; padding: 0; }
.cat-list li { display: flex; justify-content: space-between; padding: 9px 0; border-bottom: 1px solid var(--border); font-size: 0.95rem; }
.cat-list li a { color: var(--text); text-decoration: none; }
.cat-list li a:hover { color: var(--accent); }

/* woocommerce result bar + ordering */
.results-bar .woocommerce-result-count { margin: 0; color: var(--muted); font-size: 0.95rem; }
.results-bar .woocommerce-ordering select { border: 1px solid var(--border); border-radius: 10px; padding: 9px 12px; font-family: inherit; color: var(--text); background: #fff; }

/* woo buttons → brand gradient pill */
.woocommerce .button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit, .wp-element-button, button[type=submit],
.woocommerce button.button.alt {
  background: var(--grad) !important; color: #fff !important; border: 0 !important;
  border-radius: 999px !important; font-weight: 700 !important; font-family: inherit !important;
  padding: 13px 26px !important; cursor: pointer; text-decoration: none !important;
}
.woocommerce .button:hover { filter: brightness(1.06); }

/* single product */
.woocommerce div.product { color: var(--text); }
.woocommerce div.product .product_title { color: var(--text); font-weight: 700; }
.woocommerce div.product p.price, .woocommerce div.product span.price { color: var(--accent); font-size: 1.5rem; font-weight: 700; }
.woocommerce div.product form.cart .variations select { border: 1px solid var(--border); border-radius: 12px; padding: 12px 14px; font-family: inherit; min-width: 220px; }
.woocommerce div.product form.cart div.quantity .qty { border: 1px solid var(--border); border-radius: 10px; padding: 14px 12px; width: 88px; font-size: 1.05rem; }
.woocommerce span.onsale { background: var(--accent); color: #fff; border-radius: 999px; padding: 6px 14px; font-weight: 700; min-height: 0; line-height: 1.4; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--accent); }
.woocommerce .related.products > h2, .woocommerce .upsells.products > h2 { font-size: 1.5rem; text-transform: uppercase; }

/* forms (checkout, account, contact) */
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea,
.woocommerce form .form-row select, .woocommerce-page form .form-row input.input-text {
  border: 1px solid var(--border); border-radius: 12px; padding: 12px 14px; font-family: inherit; color: var(--text);
}
.woocommerce form.checkout h3, .woocommerce-account h2 { color: var(--text); }
.woocommerce-info, .woocommerce-message { border-top-color: var(--accent); }

/* pagination */
.woocommerce nav.woocommerce-pagination { margin-top: 30px; text-align: center; }
.woocommerce nav.woocommerce-pagination ul { border: 0; display: inline-flex; gap: 10px; margin: 0; padding: 0; }
.woocommerce nav.woocommerce-pagination ul li { border: 0; margin: 0; }
.woocommerce nav.woocommerce-pagination ul li a, .woocommerce nav.woocommerce-pagination ul li span {
  display: inline-flex; align-items: center; justify-content: center; min-width: 46px; height: 46px; box-sizing: border-box;
  border: 1px solid var(--border); border-radius: 12px; padding: 0 12px; color: var(--text); font-weight: 700; margin: 0;
}
.woocommerce nav.woocommerce-pagination ul li a:hover { border-color: var(--accent); color: var(--accent); }
.woocommerce nav.woocommerce-pagination ul li span.current { background: var(--accent); color: #fff; border-color: var(--accent); }

/* page template banner */
.tc-hero h1 { margin: 0; }
.pol-wrap { padding: 48px 0 80px; }

/* ===== AGE GATE PLUGIN → match original JS gate ===== */
.age-gate-wrapper { background: rgba(15,26,51,.55) !important; backdrop-filter: blur(8px); }
.age-gate, .age-gate * { font-family: "Poppins", sans-serif !important; }
.age-gate { background: #fff !important; max-width: 440px !important; margin: auto; border-radius: 18px !important; padding: 44px 38px !important; box-shadow: 0 30px 80px rgba(15,26,51,.35); }
.age-gate-heading, .age-gate h1, .age-gate h2 { color: #0f1a33 !important; font-weight: 700 !important; font-size: 26px !important; }
.age-gate p, .age-gate-subheading { color: #57617a !important; font-size: 15px !important; }
.age-gate-buttons { display: flex; flex-direction: column; gap: 12px; margin-top: 18px; }
.age-gate-buttons button { width: 100%; border-radius: 999px !important; padding: 14px 26px !important; font-weight: 700 !important; font-size: 16px !important; cursor: pointer; }
.age-gate-submit-yes { order: -1; background: linear-gradient(100deg,#2f5cff,#2348e0 52%,#14b3d6) !important; color: #fff !important; border: 0 !important; }
.age-gate-submit-no { background: #fff !important; color: #0f1a33 !important; border: 1px solid #e0e8f5 !important; }
.age-gate-remember-wrapper, .age-gate-remember-wrapper label { color: #57617a !important; }

/* ===== POPUP MAKER + MAILPOET → match original promo ===== */
.pum-container, .pum-container * { font-family: "Poppins", sans-serif !important; }
.pum-container { max-width: 470px !important; border-radius: 18px !important; padding: 40px 34px !important; box-shadow: 0 30px 80px rgba(15,26,51,.35) !important; }
.pum-overlay { background: rgba(15,26,51,.55) !important; backdrop-filter: blur(8px); }
.pum-container .pum-close { background: none !important; border: 0 !important; color: #9aa3b8 !important; font-size: 20px !important; top: 14px !important; right: 16px !important; }
.pum-container .mailpoet_text { width: 100% !important; border: 1px solid #e0e8f5 !important; border-radius: 12px !important; padding: 15px 18px !important; font-size: 16px !important; text-align: center; color: #0f1a33 !important; }
.pum-container .mailpoet_submit { width: 100% !important; background: linear-gradient(100deg,#2f5cff,#2348e0 52%,#14b3d6) !important; color: #fff !important; font-weight: 700 !important; border: 0 !important; border-radius: 999px !important; padding: 16px 20px !important; font-size: 17px !important; margin-top: 12px; cursor: pointer; }
.pum-container .mailpoet_paragraph { margin: 0 !important; }
.pum-container .mailpoet_validate_success { color: #1b8a4a !important; font-weight: 700; }

/* sidebar product search form */
.sblock .woocommerce-product-search { display: flex; gap: 8px; }
.sblock .woocommerce-product-search .search-field { flex: 1; min-width: 0; border: 1px solid var(--border); border-radius: 10px; padding: 10px 12px; font-family: inherit; }
.sblock .woocommerce-product-search button { white-space: nowrap; }

/* WP admin bar offset for sticky nav (logged-in view only) */
body.admin-bar .nav { top: 32px; }
@media (max-width: 782px) { body.admin-bar .nav { top: 46px; } }

/* fix: no forced min-height on the about photo card on mobile (kills white gap under image) */
@media (max-width: 900px) {
  .about-visual.about-photo { min-height: 0; }
}

/* ============ Freedom Diagnostics COA cards (single product page) ============ */
.vy-coa { grid-column: 1 / -1; margin: 24px 0 8px; }
.vy-coa-head h2 { font-family: Poppins, sans-serif; font-size: clamp(1.5rem, 3vw, 2rem); color: var(--text); margin: 0 0 8px; }
.vy-coa-head p { color: var(--muted); font-size: .95rem; line-height: 1.6; margin: 0; max-width: 720px; }
.vy-coa-head a { color: var(--accent); font-weight: 700; white-space: nowrap; }
.vy-coa-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 250px)); justify-content: start; gap: 16px; margin-top: 18px; }
.vy-coa-card { border: 1px solid var(--border); border-radius: 14px; padding: 16px 16px 14px; background: #fff; box-shadow: 0 5px 18px rgba(15,26,51,0.05); }
.vy-coa-badges { display: flex; gap: 7px; margin-bottom: 10px; flex-wrap: wrap; }
.vcb { font-size: .55rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; padding: 3px 8px; border-radius: 999px; }
.vcb-latest { background: var(--text); color: #fff; }
.vcb-test { background: rgba(35,72,224,0.10); color: var(--accent); border: 1px solid rgba(35,72,224,0.20); }
.vy-coa-pur { font-family: Poppins, sans-serif; font-size: 1.85rem; font-weight: 800; color: #1c8a5b; line-height: 1; text-align: center; }
.vy-coa-pur span { display: block; font-size: .62rem; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); font-weight: 700; margin-top: 5px; }
.vy-coa-pass { text-align: center; color: #1c8a5b; font-weight: 700; font-size: .8rem; margin: 9px 0 14px; }
.vy-coa-meta { background: var(--bg-soft); border-radius: 10px; padding: 10px 13px; }
.vy-coa-meta div { display: flex; justify-content: space-between; gap: 12px; padding: 4px 0; font-size: .74rem; }
.vy-coa-meta span { color: var(--muted); flex: none; }
.vy-coa-meta b { color: var(--text); text-align: right; font-weight: 700; }
.vy-coa-panel { margin-top: 13px; }
.vy-coa-panel-h { display: flex; justify-content: space-between; align-items: baseline; font-size: .66rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; color: var(--text); padding-bottom: 7px; border-bottom: 1px solid var(--border); }
.vy-coa-panel-h span { color: var(--accent); font-size: .58rem; }
.vy-coa-panel ul { list-style: none; margin: 0; padding: 0; }
.vy-coa-panel li { display: flex; justify-content: space-between; gap: 12px; padding: 6px 0; border-bottom: 1px solid var(--border); font-size: .74rem; }
.vy-coa-panel li:last-child { border-bottom: 0; }
.vy-coa-panel li span { color: var(--muted); flex: none; }
.vy-coa-panel li b { color: var(--text); text-align: right; font-weight: 700; }
.vy-coa-foot { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--border); }
.vy-coa-foot > span { display: block; font-size: .62rem; color: var(--muted); letter-spacing: .04em; }
.vy-coa-foot a { display: inline-block; margin-top: 7px; color: var(--accent); font-weight: 700; font-size: .78rem; }
@media (max-width: 560px) { .vy-coa-grid { grid-template-columns: 1fr; } }

/* ============ SINGLE PRODUCT PAGE LAYOUT (match original pdp-grid) ============ */
.woocommerce div.product { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 52px; row-gap: 0; align-items: start; }
.woocommerce div.product > * { min-width: 0; }
.woocommerce div.product div.images,
.woocommerce div.product div.summary,
.woocommerce div.product div.entry-summary { width: 100% !important; float: none !important; margin: 0 !important; }
.woocommerce div.product div.images img { width: 100%; border-radius: 18px; border: 1px solid var(--border); background: linear-gradient(180deg, #f7faff, #eaf1fe); }
.woocommerce div.product { position: relative; }
.woocommerce div.product div.images { position: relative; }
.woocommerce div.product .onsale { position: absolute !important; top: 16px; left: 16px; right: auto; bottom: auto; margin: 0 !important; z-index: 5; }
.woocommerce div.product .woocommerce-tabs,
.woocommerce div.product .related.products,
.woocommerce div.product .up-sells { grid-column: 1 / -1; }
.woocommerce div.product .woocommerce-product-gallery__trigger { display: none !important; }
@media (max-width: 900px) { .woocommerce div.product { grid-template-columns: minmax(0, 1fr); gap: 28px; } }

/* product grids (related products + any ul.products) */
.woocommerce ul.products { display: grid !important; grid-template-columns: repeat(4, 1fr); gap: 24px; margin: 0 0 24px !important; }
.woocommerce ul.products li.product { width: 100% !important; float: none !important; margin: 0 !important; text-align: left; }
.woocommerce ul.products li.product a img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; border-radius: 18px; border: 1px solid var(--border); background: linear-gradient(180deg, #f7faff, #eaf1fe); margin: 0 0 12px !important; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 1rem; font-weight: 700; color: var(--text); }
.woocommerce ul.products li.product .price { color: var(--accent); font-weight: 700; }
.woocommerce .related.products > h2 { margin-bottom: 22px; }
@media (max-width: 900px) { .woocommerce ul.products { grid-template-columns: repeat(2, 1fr); gap: 16px; } }

/* kill stray focus outlines / blue page border */
main :focus { outline: none; }
.woocommerce, .woocommerce div.product, main, article { outline: none !important; box-shadow: none !important; }

/* ============ FIX: static-site .product card class collides with Woo's div.product/li.product ============ */
.woocommerce div.product, .woocommerce li.product,
.woocommerce div.product:hover, .woocommerce li.product:hover {
  border: 0 !important; padding: 0 !important; background: transparent !important;
  transform: none !important; box-shadow: none !important; border-radius: 0 !important;
}

/* Woo clearfix pseudo-elements become phantom grid cells. Remove them */
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none !important; content: none !important; }
.woocommerce ul.products li.product { clear: none !important; }

/* stray focus rings */
:focus { outline: none; }
:focus-visible { outline: none; }

/* gallery figure tightening */
.woocommerce div.product div.images figure { margin: 0; }

/* mobile PDP breathing room */
@media (max-width: 760px) {
  .woocommerce div.product { gap: 22px; }
  .woocommerce div.product div.images img { border-radius: 14px; }
  .woocommerce div.product .product_title { font-size: 1.7rem; }
  .woocommerce div.product .summary, .woocommerce div.product .entry-summary { padding: 0 2px; }
  .woocommerce ul.products { grid-template-columns: repeat(2, 1fr) !important; gap: 14px; }
}

/* equal-height product cards: button always pinned to bottom of card */
.woocommerce ul.products li.product { display: flex !important; flex-direction: column; }
.woocommerce ul.products li.product .button { margin-top: auto !important; align-self: stretch; text-align: center; }

/* ============ PDP REDESIGN (Onyx-style, VYTAL palette) ============ */
/* size-appropriate title + eyebrow */
.woocommerce div.product .product_title { font-size: clamp(1.9rem, 2.6vw, 2.6rem) !important; line-height: 1.08; letter-spacing: -.02em; margin: 4px 0 8px; }
.vytal-eyebrow { color: var(--muted); font-family: ui-monospace, "SFMono-Regular", Menlo, monospace; font-size: .72rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; margin: 0 0 2px; }
.woocommerce div.product p.price, .woocommerce div.product span.price { font-size: 1.85rem; }
.woocommerce div.product .woocommerce-product-details__short-description { color: var(--muted); font-size: 1.02rem; line-height: 1.7; margin: 6px 0 18px; }

/* variation dropdown → selectable buttons */
.woocommerce div.product form.cart .variations { margin: 4px 0 16px; border: 0; }
.woocommerce div.product form.cart .variations tbody,
.woocommerce div.product form.cart .variations tr,
.woocommerce div.product form.cart .variations th,
.woocommerce div.product form.cart .variations td { display: block; width: 100%; text-align: left; padding: 0; border: 0; }
.woocommerce div.product form.cart .variations th.label { margin: 0 0 8px; }
.woocommerce div.product form.cart .variations th.label label { text-transform: uppercase; letter-spacing: .14em; font-size: .72rem; font-weight: 800; color: var(--muted); font-family: ui-monospace, "SFMono-Regular", Menlo, monospace; margin: 0; }
.woocommerce div.product form.cart .variations select.vytal-select-hidden { display: none !important; }
.vytal-swatches { display: flex; flex-wrap: wrap; gap: 10px; }
.vytal-swatch { border: 1px solid var(--border); background: var(--surface); color: var(--text); border-radius: 12px; padding: 12px 20px; font-weight: 700; font-size: .95rem; font-family: inherit; cursor: pointer; min-width: 60px; text-align: center; transition: border-color .15s, background .15s, color .15s, box-shadow .15s; }
.vytal-swatch:hover { border-color: var(--accent); }
.vytal-swatch.is-active { background: var(--grad); color: #fff; border-color: transparent; box-shadow: 0 6px 18px var(--accent-glow); }
.woocommerce div.product form.cart .reset_variations { display: none !important; }

/* spec strip */
.vytal-specs { display: grid; grid-template-columns: repeat(3, 1fr); border: 1px solid var(--border); border-radius: 14px; overflow: hidden; margin: 22px 0 16px; }
.vytal-specs .vsp { padding: 14px 16px; border-right: 1px solid var(--border); }
.vytal-specs .vsp:last-child { border-right: 0; }
.vytal-specs .k { display: block; color: var(--muted); font-size: .64rem; letter-spacing: .14em; text-transform: uppercase; font-family: ui-monospace, "SFMono-Regular", Menlo, monospace; margin: 0 0 6px; }
.vytal-specs .v { display: block; color: var(--text); font-weight: 800; font-size: 1rem; }

/* trust checklist */
.vytal-trust { list-style: none; margin: 0 0 18px; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 8px 18px; }
.vytal-trust li { position: relative; padding-left: 24px; color: var(--text); font-size: .92rem; }
.vytal-trust li::before { content: "\2713"; position: absolute; left: 0; top: 0; color: var(--accent); font-weight: 800; }

/* full-width trust band below the summary */
.vytal-pdp-strip { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(4, 1fr); border: 1px solid var(--border); border-radius: 16px; overflow: hidden; margin: 26px 0 0; background: var(--bg-soft); }
.vytal-pdp-strip .it { padding: 18px 20px; border-right: 1px solid var(--border); display: flex; gap: 12px; align-items: flex-start; }
.vytal-pdp-strip .it:last-child { border-right: 0; }
.vytal-pdp-strip .it .ic { width: 38px; height: 38px; border-radius: 10px; background: var(--grad-soft); border: 1px solid var(--border); display: grid; place-items: center; font-size: 1.1rem; flex: none; }
.vytal-pdp-strip .it h4 { margin: 0 0 3px; font-size: .95rem; color: var(--text); font-weight: 700; }
.vytal-pdp-strip .it p { margin: 0; font-size: .82rem; color: var(--muted); line-height: 1.5; }

@media (max-width: 900px) {
  .vytal-pdp-strip { grid-template-columns: 1fr 1fr; }
  .vytal-pdp-strip .it:nth-child(2) { border-right: 0; }
  .vytal-pdp-strip .it:nth-child(1), .vytal-pdp-strip .it:nth-child(2) { border-bottom: 1px solid var(--border); }
}
@media (max-width: 600px) {
  .vytal-pdp-strip { grid-template-columns: 1fr; }
  .vytal-pdp-strip .it { border-right: 0; border-bottom: 1px solid var(--border); }
  .vytal-pdp-strip .it:last-child { border-bottom: 0; }
  .vytal-specs { grid-template-columns: 1fr; }
  .vytal-specs .vsp { border-right: 0; border-bottom: 1px solid var(--border); }
  .vytal-specs .vsp:last-child { border-bottom: 0; }
  .vytal-trust { grid-template-columns: 1fr; }
}
.woocommerce ul.products li.product .price { margin: 4px 0 16px !important; }

/* ============ COA: gallery thumbnails + "View Certificate of Analysis" link ============ */
/* Product gallery thumbnails. Uploaded gallery images (incl. COA scans) render here, styled to match the original pdp-thumb look */
.woocommerce div.product .flex-control-thumbs { display: flex; gap: 10px; margin: 14px 0 0; padding: 0; list-style: none; flex-wrap: wrap; }
.woocommerce div.product .flex-control-thumbs li { width: 86px; margin: 0; }
.woocommerce div.product .flex-control-thumbs img { width: 86px; height: 86px; object-fit: cover; border: 1px solid var(--border); border-radius: 10px; background: #fff; opacity: .72; cursor: pointer; transition: border-color .2s, opacity .2s; }
.woocommerce div.product .flex-control-thumbs img:hover,
.woocommerce div.product .flex-control-thumbs img.flex-active { opacity: 1; border-color: var(--accent); }

/* "View Certificate of Analysis →" button under add-to-cart */
.vytal-coa-link { display: inline-flex; align-items: center; gap: 7px; margin: 18px 0 4px; font-weight: 700; font-size: .98rem; color: var(--accent); text-decoration: none; border: 1px solid var(--border); border-radius: 999px; padding: 12px 22px; transition: background .2s, border-color .2s; }
.vytal-coa-link:hover { background: var(--bg-soft); border-color: var(--accent); }
.woocommerce-cart table.shop_table td.product-thumbnail img { width: 84px; height: 84px; object-fit: cover; border-radius: 12px; border: 1px solid var(--border); }
.woocommerce-cart table.shop_table td.product-name a { font-weight: 700; color: var(--text); }
.woocommerce-cart table.shop_table td { vertical-align: middle; }
/* Keep the vial thumbnail visible on mobile (WooCommerce hides it by default). */
@media (max-width: 768px) {
  .woocommerce-cart table.shop_table.cart td.product-thumbnail { display: block; text-align: center; padding-top: 18px; }
  .woocommerce-cart table.shop_table.cart td.product-thumbnail::before { display: none; }
  .woocommerce-cart table.shop_table.cart td.product-thumbnail img { width: 110px; height: 110px; }
}

/* ---- Cart page: two-column layout, sticky summary, less dead space ---- */
@media (min-width: 861px) {
  .woocommerce-cart .woocommerce { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 36px; align-items: start; }
  .woocommerce-cart .woocommerce-notices-wrapper { grid-column: 1 / -1; }
  .woocommerce-cart form.woocommerce-cart-form { grid-column: 1; margin: 0; }
  .woocommerce-cart .cart-collaterals { grid-column: 2; width: 100% !important; float: none !important; position: sticky; top: 100px; }
  .woocommerce-cart .cart-collaterals .cart_totals { width: 100% !important; float: none !important; }
}
.woocommerce-cart .cart-collaterals .cross-sells { display: none; }
.woocommerce-cart .cart_totals { background: linear-gradient(180deg, #f7faff, #eef3ff); border: 1px solid var(--border); border-radius: 20px; padding: 26px; }
.woocommerce-cart .cart_totals h2 { font-size: 1.15rem; text-transform: uppercase; letter-spacing: .04em; margin: 0 0 16px; }
.woocommerce-cart .cart_totals table { margin: 0; }
/* Don't state the total twice: hide the redundant Subtotal row (Total already shows it). */
.woocommerce-cart .cart_totals tr.cart-subtotal { display: none; }
.woocommerce-cart .cart_totals .order-total .amount { font-size: 1.5rem; color: var(--accent); }
.woocommerce-cart .wc-proceed-to-checkout { padding: 4px 0 0; }
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button { display: block; background: linear-gradient(90deg, #2348e0, #2f7be6) !important; color: #fff !important; border-radius: 999px !important; padding: 16px 20px !important; font-weight: 800 !important; font-size: 1.05rem !important; text-align: center; box-shadow: 0 10px 26px rgba(35,72,224,.28); }
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover { transform: translateY(-1px); }
.cart-trust { margin: 18px 0 0; padding: 0; }
.cart-trust li { list-style: none; display: flex; align-items: center; gap: 10px; color: var(--muted); font-size: .9rem; margin: 0 0 10px; }
.cart-trust li svg { width: 18px; height: 18px; color: #12a150; flex: none; }

/* ============ HOMEPAGE: OUR PROMISE ============ */
.promise { padding: 22px 0 40px; }
.promise-head { max-width: 560px; margin: 0 0 18px; }
.promise-head h2 { font-size: clamp(1.5rem, 3vw, 2.1rem); font-weight: 800; letter-spacing: -.01em; margin: 0 0 8px; }
.promise-head h2 span { color: var(--accent); }
.promise-head p { color: var(--muted); font-size: .92rem; line-height: 1.55; margin: 0; }
/* Dark full-banner style: one navy band with icon + title + subtitle columns. */
.promise-grid { display: grid; grid-template-columns: 1fr; gap: 0;
  background: linear-gradient(158deg, #131f3d 0%, #0c1428 100%);
  border: 1px solid rgba(255,255,255,.07); border-radius: 20px; padding: 10px 14px;
  box-shadow: 0 22px 54px rgba(12,20,45,.20); }
.promise-card { display: flex; flex-direction: row; align-items: center; gap: 15px;
  background: transparent; border: 0; border-radius: 0; box-shadow: none; padding: 18px 6px; position: relative; }
.promise-card .pc-ic { flex: none; width: 48px; height: 48px; border-radius: 14px;
  background: rgba(91,127,224,.18); color: #9db6f5; display: flex; align-items: center; justify-content: center; }
.promise-card .pc-ic svg { width: 23px; height: 23px; }
.promise-card .pc-body h3 { margin: 0 0 3px; font-size: 1.02rem; font-weight: 800; color: #fff; line-height: 1.2; }
.promise-card .pc-body p { margin: 0; color: #9fb0cf; font-size: .86rem; line-height: 1.45; }
/* mobile: single column with a horizontal divider between each row */
.promise-card + .promise-card::before { content: ""; position: absolute; top: 0; left: 6px; right: 6px; height: 1px; background: rgba(255,255,255,.1); }
@media (min-width: 1000px) {
  .promise-grid { grid-template-columns: repeat(4, 1fr); padding: 20px 6px; }
  .promise-card { padding: 14px 26px; }
  .promise-card .pc-body h3 { font-size: 1.02rem; }
  .promise-card .pc-body p { font-size: .86rem; }
  /* desktop: switch dividers to vertical between the columns */
  .promise-card + .promise-card::before { top: 18%; bottom: 18%; left: 0; right: auto; height: auto; width: 1px; }
}

/* ============ HOMEPAGE: WHY CHOOSE VYTAL ============ */
.whyvytal { padding: 66px 0 76px; background: linear-gradient(180deg, var(--bg-soft), #fff); }
.wv-head { text-align: center; max-width: 640px; margin: 0 auto 40px; }
.wv-head h2 { font-size: clamp(1.9rem, 4vw, 2.7rem); font-weight: 800; letter-spacing: -.01em; margin: 0 0 12px; }
.wv-head h2 span { color: var(--accent); }
.wv-head p { color: var(--muted); font-size: 1.02rem; line-height: 1.6; margin: 0; }
.wv-grid { display: grid; grid-template-columns: 1fr; gap: 24px 40px; max-width: 900px; margin: 0 auto; }
.wv-item { display: flex; align-items: flex-start; gap: 18px; }
.wv-item .wv-ic { flex: none; width: 54px; height: 54px; border-radius: 15px; background: var(--grad); color: #fff; display: flex; align-items: center; justify-content: center; box-shadow: 0 8px 20px var(--accent-glow); }
.wv-item .wv-ic svg { width: 26px; height: 26px; }
.wv-item h3 { margin: 4px 0 5px; font-size: 1.12rem; font-weight: 800; color: var(--text); }
.wv-item p { margin: 0; color: var(--muted); font-size: .96rem; line-height: 1.55; }
@media (min-width: 720px) { .wv-grid { grid-template-columns: 1fr 1fr; } }

/* ============ HOMEPAGE BULK BAND ============ */
.bulkband { padding: 20px 0 40px; }
.bulkband-inner { background: linear-gradient(140deg,#eef3ff,#e6f7ef); border: 1px solid #dfe7fb; border-radius: 24px; padding: 44px 48px; display: grid; grid-template-columns: 1.15fr .85fr; gap: 34px; align-items: center; }
.bb-eyebrow { display: inline-block; font-size: .72rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: #2348e0; background: #fff; border: 1px solid #dbe4fb; padding: 6px 14px; border-radius: 999px; }
.bb-copy h2 { font-size: clamp(1.7rem, 3vw, 2.4rem); font-weight: 800; letter-spacing: -.01em; margin: 16px 0 10px; }
.bb-copy h2 span { color: var(--accent); }
.bb-copy p { color: var(--muted); font-size: 1rem; line-height: 1.6; max-width: 520px; margin: 0 0 20px; }
.bb-tiers { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 24px; }
.bb-chip { font-size: .82rem; font-weight: 700; padding: 9px 16px; border-radius: 999px; }
.bb-chip.dark { background: var(--text); color: #fff; }
.bb-chip.soft { background: #d7f4e5; color: #12784a; }
.bb-chip.line { background: #fff; color: var(--text); border: 1px solid var(--border); }
.bb-btn { display: inline-block; background: var(--text); color: #fff; font-weight: 800; font-size: 1rem; padding: 15px 30px; border-radius: 999px; transition: background .2s, transform .15s; }
.bb-btn:hover { background: var(--accent); color: #fff; transform: translateY(-1px); }
.bb-card { background: #fff; border: 1px solid var(--border); border-radius: 20px; padding: 22px; box-shadow: 0 20px 50px rgba(15,26,51,.10); }
.bb-card-row { display: flex; align-items: center; gap: 16px; }
.bb-vial { position: relative; flex: none; }
.bb-vial svg { width: 46px; height: 90px; display: block; }
.bb-vial b { position: absolute; bottom: -4px; right: -8px; background: var(--text); color: #fff; font-size: .7rem; font-weight: 800; padding: 3px 8px; border-radius: 999px; }
.bb-card-info { flex: 1; min-width: 0; }
.bb-card-name { font-weight: 800; font-size: 1.05rem; }
.bb-card-name small { display: block; color: var(--muted); font-weight: 500; font-size: .82rem; }
.bb-card-applied { margin-top: 8px; display: inline-block; font-size: .72rem; font-weight: 800; color: #12784a; background: #d7f4e5; padding: 4px 10px; border-radius: 6px; }
.bb-card-price { text-align: right; line-height: 1.3; }
.bb-card-price del { display: block; color: var(--muted); font-size: .85rem; }
.bb-card-price b { font-size: 1.5rem; color: var(--text); }
.bb-card-price span { display: block; color: #12784a; font-weight: 700; font-size: .8rem; }
@media (max-width: 860px) {
  .bulkband-inner { grid-template-columns: 1fr; padding: 32px 24px; gap: 26px; }
  .bb-copy p { max-width: none; }
}

/* ============ PRODUCT PAGE: BUNDLE & SAVE TILES ============ */
.woocommerce div.product .vytal-bundle { margin: 16px 0 14px; }
.vytal-bundle { margin: 20px 0; }
.vytal-bundle .vb-tiles { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.vytal-bundle .vb-tile { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; padding: 14px 8px; border: 1.5px solid var(--border); border-radius: 14px; background: #fff; cursor: pointer; font-family: inherit; text-align: center; transition: border-color .15s, box-shadow .15s, background .15s; }
.vytal-bundle .vb-tile b { font-size: .92rem; color: var(--text); }
.vytal-bundle .vb-tile span { font-size: .74rem; font-weight: 800; color: var(--accent); min-height: 1em; }
.vytal-bundle .vb-tile:hover { border-color: var(--accent); }
.vytal-bundle .vb-tile.sel { border-color: var(--accent); box-shadow: 0 0 0 3px rgba(35,72,224,.14); background: #f5f8ff; }
.vytal-bundle .vb-tile .vb-tag { position: absolute; top: -9px; left: 50%; transform: translateX(-50%); background: var(--accent); color: #fff; font-size: .58rem; font-weight: 800; letter-spacing: .06em; padding: 3px 8px; border-radius: 6px; min-height: 0; }
.vytal-bundle .vb-note { font-size: .78rem; color: var(--muted); margin-top: 10px; }
@media (max-width: 480px) { .vytal-bundle .vb-tile { padding: 12px 5px; } .vytal-bundle .vb-tile b { font-size: .82rem; } .vytal-bundle .vb-tile span { font-size: .68rem; } }

/* ============ CONVERSION HELPERS ============ */
/* Free-shipping progress bar */
.vfs-bar { margin: 0 0 18px; }
.vfs-msg { font-size: .88rem; color: var(--text); margin: 0 0 8px; }
.vfs-msg strong { color: var(--accent); }
.vfs-track { height: 8px; border-radius: 999px; background: var(--surface-2); overflow: hidden; }
.vfs-track i { display: block; height: 100%; background: var(--grad); border-radius: 999px; transition: width .4s ease; }
#vcart .vfs-bar { margin: 0 0 14px; }
/* Same-day cutoff */
.vytal-cutoff { display: inline-flex; align-items: center; gap: 9px; font-size: .88rem; color: var(--text); font-weight: 600; margin: 2px 0 12px; }
.vytal-cutoff .vc-dot { width: 9px; height: 9px; border-radius: 50%; background: #12a150; box-shadow: 0 0 0 4px rgba(18,161,80,.15); flex: none; }
.vytal-cutoff.vc-off .vc-dot { background: #b0b8c8; box-shadow: 0 0 0 4px rgba(176,184,200,.15); }
.vytal-cutoff strong { color: var(--accent); }
/* Pay-by-Zelle note */
.vytal-pay-note { font-size: .86rem; color: var(--muted); margin: 10px 0 0; }
.vytal-pay-note strong { color: var(--accent); }
/* Trust / guarantee strip */
.vytal-trust { list-style: none; padding: 16px 0 0; margin: 16px 0 0; border-top: 1px solid var(--border); display: grid; grid-template-columns: 1fr 1fr; gap: 9px 18px; }
.vytal-trust li { position: relative; padding-left: 24px; font-size: .86rem; color: var(--muted); line-height: 1.35; }
.vytal-trust li::before { content: "\2713"; position: absolute; left: 0; top: 0; color: var(--accent); font-weight: 800; }
@media (max-width: 480px) { .vytal-trust { grid-template-columns: 1fr; } }

/* Product page: reconstitution add-on checkbox */
.woocommerce div.product form.cart .vytal-addon { display: flex; gap: 10px; align-items: flex-start; border: 1px solid var(--border); border-radius: 12px; padding: 12px 14px; margin: 0 0 14px; background: var(--bg-soft); cursor: pointer; font-size: .86rem; color: var(--text); line-height: 1.4; }
.vytal-addon input { margin-top: 2px; width: 17px; height: 17px; accent-color: var(--accent); flex: none; }
.vytal-addon strong { color: var(--accent); }

/* Recommended add-on (reconstitution) in cart */
.vytal-recommend { border: 1px solid var(--border); border-radius: 14px; padding: 12px 14px; margin: 0 0 16px; background: var(--bg-soft); }
.vytal-recommend .vr-head { font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; color: var(--accent); font-weight: 800; margin-bottom: 10px; }
.vytal-recommend .vr-row { display: flex; align-items: center; gap: 12px; }
.vytal-recommend .vr-thumb img { width: 48px !important; height: 48px !important; object-fit: cover; border-radius: 8px; border: 1px solid var(--border); float: none !important; margin: 0 !important; }
.vytal-recommend .vr-info { flex: 1; min-width: 0; }
.vytal-recommend .vr-name { font-weight: 700; font-size: .9rem; color: var(--text); }
.vytal-recommend .vr-sub { font-size: .74rem; color: var(--muted); line-height: 1.3; }
.vytal-recommend .vr-price { font-weight: 800; color: var(--accent); font-size: .85rem; margin-top: 2px; }
.vytal-recommend .vr-add { flex: none; background: var(--grad); color: #fff; border: 0; border-radius: 999px; padding: 9px 18px; font-weight: 700; font-size: .82rem; cursor: pointer; white-space: nowrap; }
.vytal-recommend .vr-add:hover { filter: brightness(1.05); }

/* ============ COMPACT PDP (Design 1): title + price inline, tighter spacing ============ */
/* Research-use-only restriction shown in the product heading block (compliance framing). */
.woocommerce div.product .pdp-ruo { font-size: .8rem; line-height: 1.4; color: var(--muted); font-weight: 600; margin: 2px 0 12px; }
/* Single price, directly under the product name (desktop + mobile). */
.pdp-titlerow { display: flex; align-items: baseline; gap: 16px; flex-wrap: wrap; margin: 2px 0 8px; }
.pdp-titlerow .product_title { margin: 0; line-height: 1.1; }
.pdp-topprice { font-weight: 800; color: var(--accent); font-size: clamp(1.4rem, 2.6vw, 1.9rem); }
.pdp-topprice .amount { color: var(--accent); }
.pdp-topprice del { color: var(--muted); font-weight: 600; font-size: .7em; margin-right: 6px; }
.pdp-topprice del .amount { color: var(--muted); }
/* Hide WooCommerce's duplicate variation price below the size selector. */
.woocommerce div.product .woocommerce-variation-price { display: none !important; }
/* On mobile, stack the price under the name. */
@media (max-width: 768px) { .pdp-titlerow { display: block; } .pdp-titlerow .product_title { margin-bottom: 6px; } }
/* trim vertical rhythm in the summary column */
.woocommerce div.product .entry-summary .vytal-eyebrow { margin: 0 0 4px; }
.woocommerce div.product .entry-summary > .woocommerce-product-details__short-description { margin: 6px 0 14px; font-size: .92rem; }
.woocommerce div.product form.cart { margin: 8px 0 12px; }
.woocommerce div.product form.cart .variations { margin: 2px 0 12px; }
.woocommerce div.product .vytal-coa-link { margin-top: 10px; }

/* ============ CART COUNT BADGE ============ */
.nicon { position: relative; }
.cart-count { position: absolute; top: -7px; right: -9px; background: var(--accent); color: #fff; font-size: 0.65rem; font-weight: 700; min-width: 17px; height: 17px; border-radius: 999px; display: flex; align-items: center; justify-content: center; padding: 0 4px; line-height: 1; }

/* ============ SLIDE-OUT CART DRAWER ============ */
#vcart-overlay { position: fixed; inset: 0; background: rgba(15,26,51,.45); backdrop-filter: blur(4px); opacity: 0; pointer-events: none; transition: opacity .25s; z-index: 9998; }
#vcart-overlay.open { opacity: 1; pointer-events: auto; }
#vcart { position: fixed; top: 0; right: 0; height: 100%; width: min(440px, 94vw); background: #fff; z-index: 9999; transform: translateX(105%); transition: transform .3s ease; box-shadow: -20px 0 60px rgba(15,26,51,.22); display: flex; flex-direction: column; }
#vcart.open { transform: none; }
.vcart-head { display: flex; justify-content: space-between; align-items: center; padding: 20px 26px; border-bottom: 1px solid var(--border); }
.vcart-head h3 { margin: 0; font-size: 1.3rem; text-transform: uppercase; letter-spacing: .04em; }
#vcart-close { background: none; border: 0; font-size: 26px; color: var(--muted); cursor: pointer; line-height: 1; }
#vcart .widget_shopping_cart_content { flex: 1; overflow-y: auto; padding: 18px 26px 26px; display: flex; flex-direction: column; }
#vcart ul.woocommerce-mini-cart { list-style: none; margin: 0; padding: 0; flex: 1; }
#vcart li.woocommerce-mini-cart-item { display: flex; gap: 14px; align-items: center; padding: 16px 28px 16px 0; border-bottom: 1px solid var(--border); position: relative; margin: 0; }
#vcart li.woocommerce-mini-cart-item a { color: var(--text); font-weight: 600; text-decoration: none; display: flex; align-items: center; gap: 14px; }
#vcart li.woocommerce-mini-cart-item img { width: 64px; height: 64px; object-fit: cover; border-radius: 10px; border: 1px solid var(--border); float: none !important; margin: 0 !important; }
#vcart li.woocommerce-mini-cart-item a.remove { position: absolute; right: 0; top: 50%; transform: translateY(-50%); color: #c0392b !important; font-size: 20px; font-weight: 400; width: 24px; height: 24px; display: flex; align-items: center; justify-content: center; }
/* Compact drawer: hide verbose item meta (e.g. Build a Box contents) — shown in full cart/checkout instead. */
#vcart li.woocommerce-mini-cart-item dl.variation { display: none; }
#vcart .quantity { color: var(--muted); font-size: .92rem; display: block; margin-top: 4px; }
#vcart .woocommerce-mini-cart__total { display: flex; justify-content: space-between; font-weight: 700; font-size: 1.05rem; padding: 18px 0 14px; border-top: 2px solid var(--border); margin: auto 0 0; color: var(--text); }
#vcart .woocommerce-mini-cart__buttons { display: flex; gap: 10px; margin: 0; }
#vcart .woocommerce-mini-cart__buttons a { flex: 1; text-align: center; }
#vcart .woocommerce-mini-cart__empty-message { color: var(--muted); text-align: center; margin-top: 40px; }

/* ============ CART PAGE ============ */
.woocommerce-cart table.shop_table { border: 1px solid var(--border); border-radius: 14px; }
.woocommerce-cart table.shop_table th { color: var(--text); }
.woocommerce-cart table.shop_table img { width: 72px; border-radius: 10px; border: 1px solid var(--border); }
.woocommerce-cart .cart_totals { background: var(--bg-soft); border: 1px solid var(--border); border-radius: 18px; padding: 24px; }
.woocommerce-cart .cart_totals h2 { margin-top: 0; font-size: 1.25rem; }
.woocommerce-cart .quantity .qty { border: 1px solid var(--border); border-radius: 10px; padding: 8px; width: 64px; }

/* ============ CHECKOUT PAGE (two-column like the original) ============ */
/* Explicit grid rows so the Order Summary sits at the TOP of the right column and
   stays in view, instead of being pushed to the bottom of the long left column. */
.woocommerce-checkout form.checkout {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  grid-template-rows: auto 1fr;
  column-gap: 44px;
  row-gap: 14px;
  align-items: start;
}
.woocommerce-checkout #customer_details { grid-column: 1; grid-row: 1 / span 2; }
.woocommerce-checkout #customer_details .col-1,
.woocommerce-checkout #customer_details .col-2 { width: 100% !important; float: none !important; }
.woocommerce-checkout #order_review_heading { grid-column: 2; grid-row: 1; margin: 0 0 14px; font-size: 1.25rem; align-self: start; }
.woocommerce-checkout #order_review { grid-column: 2; grid-row: 2; align-self: start; background: var(--bg-soft); border: 1px solid var(--border); border-radius: 18px; padding: 24px 26px 26px; position: sticky; top: 100px; }
.woocommerce-checkout #order_review table.shop_table { background: transparent; border: 0; }
.woocommerce-checkout form .form-row label { color: var(--text); font-weight: 600; font-size: .92rem; }

/* tighten vertical spacing so the form is compact, not half-empty */
.woocommerce-checkout #customer_details .form-row { margin: 0 0 12px; }
.woocommerce-checkout #customer_details h3 { margin: 4px 0 14px; font-size: 1.25rem; }
.woocommerce-checkout #customer_details .woocommerce-additional-fields { margin-top: 6px; }
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper { margin-top: 4px; }
.woocommerce-checkout .woocommerce-form-login-toggle,
.woocommerce-checkout .woocommerce-info { margin: 0 0 16px; }

/* Hide the native top "Have a coupon? Click here" toggle. Replaced by the
   discount-code field inside the order summary (.vytal-coupon). */
.woocommerce-checkout .woocommerce-form-coupon-toggle { display: none !important; }

/* Discount / coupon code field in the order summary */
.vytal-coupon { margin: 0 0 18px; }
.vytal-coupon > label { display: block; font-weight: 600; font-size: .92rem; color: var(--text); margin: 0 0 8px; }
.vytal-coupon-row { display: flex; gap: 8px; }
.vytal-coupon-row input { flex: 1 1 auto; min-width: 0; padding: 12px 14px; border: 1px solid var(--border); border-radius: 10px; background: var(--surface); color: var(--text); font-family: inherit; font-size: .95rem; }
.vytal-coupon-row input:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-glow); }
.vytal-coupon-row button { flex: 0 0 auto; border: 0; border-radius: 10px; padding: 0 22px; font-family: inherit; font-weight: 700; font-size: .92rem; color: #fff; background: var(--grad); cursor: pointer; transition: transform .15s, box-shadow .2s; }
.vytal-coupon-row button:hover { transform: translateY(-1px); box-shadow: 0 8px 20px var(--accent-glow); }
.vytal-coupon-msg { margin: 8px 0 0; font-size: .85rem; color: var(--muted); }

/* new-customer account helper note near the email/billing fields */
.vytal-acct-note { background: var(--grad-soft); border: 1px solid var(--border); border-radius: 10px; padding: 12px 15px; font-size: 0.88rem; color: var(--text); margin: 0 0 18px; line-height: 1.55; }

/* "Account required before checkout" banner on the My Account page */

/* constrain oversized payment-method logos (e.g. NOWPayments crypto) */
.woocommerce-checkout .wc_payment_methods img,
.woocommerce-checkout li.wc_payment_method img,
.woocommerce-checkout .payment_methods label img { max-width: 130px !important; width: auto !important; height: auto !important; display: inline-block; vertical-align: middle; }

@media (max-width: 900px) {
  .woocommerce-checkout form.checkout { grid-template-columns: 1fr; grid-template-rows: none; }
  .woocommerce-checkout #customer_details { grid-column: 1; grid-row: auto; }
  .woocommerce-checkout #order_review_heading, .woocommerce-checkout #order_review { grid-column: 1; grid-row: auto; position: static; }
}

/* checkout intro step header */
.co-intro { display: flex; gap: 16px; align-items: flex-start; margin: 0 0 20px; }
.co-title { margin: 0 0 6px; font-size: 1.8rem; }
.co-sub { margin: 0; color: var(--muted); max-width: 560px; }
.vytal-age-confirm { margin: 14px 0 !important; }
.vytal-age-confirm label { color: var(--text); font-size: .95rem; }
/* place order button full width */
.woocommerce-checkout #place_order { width: 100%; font-size: 1.05rem; padding: 16px !important; }

/* Zelle instructions box (order-received page + email) */
.vytal-zelle-box { background: var(--bg-soft); border: 1px solid var(--border); border-left: 4px solid var(--accent); border-radius: 14px; padding: 22px 24px; margin: 0 0 28px; color: var(--text); }
.vytal-zelle-save { margin: 10px 0 0; font-size: .88rem; color: var(--accent); font-weight: 600; }
/* "Save 5%" badge shown right on the Zelle option (visible without selecting it) */
.woocommerce-checkout #payment ul.payment_methods li label[for="payment_method_vytal_zelle"]::after {
  content: "Save 5%"; display: inline-block; vertical-align: middle; margin-left: 10px;
  background: #e7f6ec; color: #1c8a5b; border: 1px solid #bfe6cd;
  font-size: .66rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase;
  padding: 3px 9px; border-radius: 999px; }
.vytal-zelle-box h3 { color: var(--text); }

/* "New to crypto?" callout above payment methods */
.vytal-crypto-note { display: flex; gap: 12px; align-items: flex-start; text-decoration: none;
  background: var(--bg-soft); border: 1px solid var(--border); border-left: 4px solid var(--accent);
  border-radius: 12px; padding: 14px 16px; margin: 0 0 18px; transition: border-color .2s, background .2s; }
.vytal-crypto-note:hover { border-color: var(--accent); background: var(--surface-2); }
.vytal-crypto-note .vcn-ic { font-size: 1.3rem; line-height: 1.2; flex: none; }
.vytal-crypto-note span { color: var(--text); font-size: .9rem; line-height: 1.5; }
.vytal-crypto-note .vcn-go { display: inline-block; color: var(--accent); font-weight: 700; margin-top: 2px; }

/* ============ ORDER-RECEIVED / VIEW-ORDER. Cleaner post-checkout layout ============ */
.woocommerce-order { max-width: 760px; margin-left: auto; margin-right: auto; }

/* "Thank you, your order has been received" as a calm confirmation banner */
.woocommerce-order > .woocommerce-notice,
.woocommerce-order p.woocommerce-thankyou-order-received,
.woocommerce-thankyou-order-received {
  font-family: Poppins, sans-serif; font-weight: 700; font-size: 1.1rem; line-height: 1.4; color: var(--text);
  background: var(--bg-soft); border: 1px solid var(--border); border-left: 4px solid var(--accent);
  border-radius: 12px; padding: 18px 22px; margin: 0 0 26px; }

/* Order overview (number / date / email / total / method) as a tidy 2-up card grid.
   High specificity + !important to override WooCommerce's default dashed borders / tight padding. */
.woocommerce ul.woocommerce-order-overview {
  list-style: none; margin: 0 0 30px; padding: 0; border: 1px solid var(--border); border-radius: 14px;
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); overflow: hidden; }
.woocommerce ul.woocommerce-order-overview li {
  padding: 18px 22px !important; margin: 0 !important; border: 0 !important;
  border-bottom: 1px solid var(--border) !important;
  font-size: .72rem; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); font-weight: 700; }
.woocommerce ul.woocommerce-order-overview li:nth-child(odd) { border-right: 1px solid var(--border) !important; }
.woocommerce ul.woocommerce-order-overview li strong {
  display: block; margin-top: 7px; font-size: 1.02rem; letter-spacing: 0; text-transform: none;
  color: var(--text); font-weight: 800; overflow-wrap: anywhere; line-height: 1.4; }

/* Order details table. Clean, boxed, evenly spaced */
.woocommerce-order .woocommerce-table--order-details {
  width: 100%; border-collapse: collapse; border: 1px solid var(--border); border-radius: 14px; overflow: hidden; }
.woocommerce .woocommerce-order .woocommerce-table--order-details th,
.woocommerce .woocommerce-order .woocommerce-table--order-details td {
  padding: 15px 20px !important; border-bottom: 1px solid var(--border); text-align: left; vertical-align: middle; }
.woocommerce-order .woocommerce-table--order-details tfoot tr:last-child th,
.woocommerce-order .woocommerce-table--order-details tfoot tr:last-child td { border-bottom: 0; }
.woocommerce-order .woocommerce-table--order-details tfoot th { color: var(--muted); font-weight: 700; }
.woocommerce-order .woocommerce-table--order-details tfoot .order-total th,
.woocommerce-order .woocommerce-table--order-details tfoot .order-total td { font-weight: 800; color: var(--text); }

/* Pay / Cancel action buttons. Inline, right-sized, never overlapping.
   Cancel becomes a quiet secondary so it doesn't fight the primary. */
.woocommerce-order a.button.pay, .woocommerce-order a.woocommerce-button.pay,
.woocommerce-view-order a.button.pay, .woocommerce-view-order a.woocommerce-button.pay,
.woocommerce-order a.button.cancel, .woocommerce-order a.woocommerce-button.cancel,
.woocommerce-view-order a.button.cancel, .woocommerce-view-order a.woocommerce-button.cancel {
  display: inline-block !important; width: auto !important; float: none !important; vertical-align: middle;
  margin: 4px 10px 4px 0 !important; padding: 11px 24px !important; font-size: .92rem !important;
  border-radius: 10px !important; box-shadow: none !important; }
.woocommerce-order a.button.cancel, .woocommerce-order a.woocommerce-button.cancel,
.woocommerce-view-order a.button.cancel, .woocommerce-view-order a.woocommerce-button.cancel {
  background: #fff !important; background-image: none !important; color: var(--text) !important;
  border: 1px solid var(--border) !important; }

/* Billing / shipping address blocks. Light cards, even spacing */
.woocommerce-order .woocommerce-customer-details address {
  border: 1px solid var(--border); border-radius: 12px; padding: 16px 18px; line-height: 1.6; font-style: normal; }
.woocommerce-order .woocommerce-column__title, .woocommerce-order .woocommerce-columns--addresses h2 { margin-bottom: 10px; }

@media (max-width: 560px) {
  .woocommerce ul.woocommerce-order-overview { grid-template-columns: 1fr; }
  .woocommerce ul.woocommerce-order-overview li:nth-child(odd) { border-right: 0 !important; }
}

/* ============ SHIPPING PAGE (marketing, Onyx-style) ============ */
.sh-hero { padding: 80px 0 56px; }
.sh-hero .ey { color: var(--accent); letter-spacing: .2em; text-transform: uppercase; font-size: .74rem; font-weight: 800; font-family: ui-monospace, "SFMono-Regular", Menlo, monospace; }
.sh-hero h1 { font-family: Poppins, sans-serif; font-weight: 800; font-size: clamp(2.4rem, 6vw, 4.4rem); line-height: 1.03; letter-spacing: -.025em; color: var(--text); max-width: 14ch; margin: 18px 0 0; }
.sh-hero h1 .mut { color: var(--muted); }
.sh-hero .lead { color: var(--muted); font-size: 1.15rem; line-height: 1.7; max-width: 600px; margin: 24px 0 0; }
.sh-stats { display: flex; gap: 0; margin-top: 44px; flex-wrap: wrap; }
.sh-stats .s { padding-right: 40px; margin-right: 40px; border-right: 1px solid var(--border); }
.sh-stats .s:last-child { border-right: 0; margin-right: 0; }
.sh-stats .n { font-family: Poppins, sans-serif; font-weight: 800; font-size: 2.2rem; color: var(--text); line-height: 1; }
.sh-stats .l { color: var(--muted); font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; margin-top: 8px; font-family: ui-monospace, "SFMono-Regular", Menlo, monospace; }
.sh-split { padding: 40px 0; }
.sh-ey { color: var(--accent); letter-spacing: .18em; text-transform: uppercase; font-size: .72rem; font-weight: 800; font-family: ui-monospace, "SFMono-Regular", Menlo, monospace; }
.sh-h2 { font-family: Poppins, sans-serif; font-size: clamp(1.9rem, 3.6vw, 2.7rem); font-weight: 800; letter-spacing: -.02em; margin: 12px 0 0; color: var(--text); }
.sh-head { max-width: 620px; margin-bottom: 36px; }
.sh-features { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.sh-card { background: #fff; border: 1px solid var(--border); border-radius: 18px; padding: 32px 28px; transition: transform .2s, border-color .2s, box-shadow .2s; }
.sh-card:hover { transform: translateY(-4px); border-color: var(--accent); box-shadow: 0 16px 40px rgba(35,72,224,.1); }
.sh-card .ic { width: 50px; height: 50px; border-radius: 13px; background: linear-gradient(135deg, var(--accent), var(--accent-2)); display: grid; place-items: center; margin-bottom: 18px; }
.sh-card .ic svg { width: 25px; height: 25px; stroke: #fff; fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.sh-card h3 { font-family: Poppins, sans-serif; font-size: 1.18rem; margin: 0 0 8px; color: var(--text); }
.sh-card p { color: var(--muted); font-size: .96rem; line-height: 1.6; margin: 0; }
.sh-packed { background: var(--bg-soft); border: 1px solid var(--border); border-radius: 22px; padding: 54px 50px; }
.sh-packed .grid { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; }
.sh-lead { color: var(--muted); font-size: 1.08rem; line-height: 1.7; margin: 14px 0 0; }
.sh-check { list-style: none; margin: 0; padding: 0; }
.sh-check li { display: flex; gap: 12px; align-items: flex-start; padding: 14px 0; border-top: 1px solid var(--border); color: var(--text); font-size: 1rem; }
.sh-check li:first-child { border-top: 0; padding-top: 0; }
.sh-check li .ck { flex: none; width: 22px; height: 22px; border-radius: 50%; background: var(--accent); color: #fff; display: grid; place-items: center; font-size: .7rem; font-weight: 800; margin-top: 1px; }
.sh-btns { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 26px; }
@media (max-width: 860px) {
  .sh-features { grid-template-columns: 1fr; }
  .sh-packed { padding: 34px 24px; }
  .sh-packed .grid { grid-template-columns: 1fr; gap: 24px; }
  .sh-stats .s { padding-right: 22px; margin-right: 22px; }
  .sh-stats .n { font-size: 1.7rem; }
  .sh-hero { padding: 56px 0 40px; }
}

/* ============ ABOUT PAGE (editorial redesign) ============ */
.ab2-hero { padding: 80px 0 56px; }
.ab2-hero .ey { color: var(--accent); letter-spacing: .2em; text-transform: uppercase; font-size: .74rem; font-weight: 800; font-family: ui-monospace, "SFMono-Regular", Menlo, monospace; }
.ab2-hero h1 { font-family: Poppins, sans-serif; font-weight: 800; font-size: clamp(2.4rem, 6vw, 4.6rem); line-height: 1.02; letter-spacing: -.025em; color: var(--text); max-width: 13ch; margin: 18px 0 0; }
.ab2-hero h1 .mut { color: var(--muted); }
.ab2-hero .lead { color: var(--muted); font-size: 1.15rem; line-height: 1.7; max-width: 620px; margin: 26px 0 0; }
.ab2-stats { display: flex; gap: 0; margin-top: 46px; flex-wrap: wrap; }
.ab2-stats .s { padding: 0 40px 0 0; margin-right: 40px; border-right: 1px solid var(--border); }
.ab2-stats .s:last-child { border-right: 0; margin-right: 0; }
.ab2-stats .n { font-family: Poppins, sans-serif; font-weight: 800; font-size: 2.4rem; color: var(--text); line-height: 1; }
.ab2-stats .l { color: var(--muted); font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; margin-top: 8px; font-family: ui-monospace, "SFMono-Regular", Menlo, monospace; }
.ab2-body { padding: 20px 0 80px; border-top: 1px solid var(--border); }
.ab2-body .col { max-width: 780px; }
.ab2-body h2 { font-family: Poppins, sans-serif; font-size: 1.7rem; font-weight: 800; margin: 48px 0 16px; color: var(--text); }
.ab2-body p { color: var(--muted); font-size: 1.08rem; line-height: 1.85; margin: 0 0 16px; }
.ab2-cards { padding: 20px 0 90px; }
.ab2-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.ab2-card { position: relative; background: #fff; border: 1px solid var(--border); border-radius: 18px; padding: 36px 32px; overflow: hidden; transition: transform .2s, border-color .2s, box-shadow .2s; }
.ab2-card:hover { transform: translateY(-5px); border-color: var(--accent); box-shadow: 0 18px 44px rgba(35,72,224,.12); }
.ab2-card .idx { position: absolute; top: 24px; right: 28px; font-family: Poppins, sans-serif; font-weight: 800; font-size: 2.6rem; color: var(--surface-2); line-height: 1; }
.ab2-card .ic { width: 56px; height: 56px; border-radius: 15px; background: linear-gradient(135deg, var(--accent), var(--accent-2)); display: grid; place-items: center; margin-bottom: 24px; box-shadow: 0 8px 22px rgba(35,72,224,.22); }
.ab2-card .ic svg { width: 28px; height: 28px; stroke: #fff; fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.ab2-card .num { color: var(--accent); letter-spacing: .14em; text-transform: uppercase; font-size: .66rem; font-weight: 800; font-family: ui-monospace, "SFMono-Regular", Menlo, monospace; }
.ab2-card h3 { font-family: Poppins, sans-serif; font-size: 1.32rem; margin: 6px 0 10px; color: var(--text); }
.ab2-card p { color: var(--muted); font-size: .98rem; line-height: 1.65; margin: 0; }
.ab2-cta { background: var(--text); color: #fff; border-radius: 22px; text-align: center; padding: 70px 30px; }
.ab2-cta h2 { font-family: Poppins, sans-serif; font-size: clamp(2rem, 4vw, 2.8rem); font-weight: 800; margin: 0 0 12px; }
.ab2-cta p { color: #aab8d8; max-width: 560px; margin: 0 auto 30px; font-size: 1.05rem; }
.ab2-cta .btns { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }
.ab2-cta .b1 { background: #fff; color: var(--text); border: 0; padding: 15px 30px; border-radius: 999px; font-weight: 700; text-decoration: none; transition: transform .15s; }
.ab2-cta .b1:hover { transform: translateY(-2px); }
.ab2-cta .b2 { background: transparent; color: #fff; border: 1.5px solid rgba(255,255,255,.5); padding: 15px 30px; border-radius: 999px; font-weight: 700; text-decoration: none; }
.ab2-cta .b2:hover { background: rgba(255,255,255,.12); border-color: #fff; }
@media (max-width: 860px) {
  .ab2-grid { grid-template-columns: 1fr; }
  .ab2-stats .s { padding-right: 24px; margin-right: 24px; }
  .ab2-stats .n { font-size: 1.9rem; }
  .ab2-hero { padding: 56px 0 40px; }
}
/* Compact About hero on phones so the catalog button / featured card show sooner */
@media (max-width: 600px) {
  .ab2-hero { padding: 30px 0 26px; }
  .ab2-hero h1 { font-size: clamp(1.85rem, 8.5vw, 2.35rem); line-height: 1.06; max-width: 18ch; margin-top: 12px; }
  .ab2-hero .lead { font-size: 1rem; line-height: 1.55; margin-top: 16px; }
  .ab2-stats { margin-top: 24px; }
  .ab2-stats .n { font-size: 1.55rem; }
  .ab-sugg { margin-top: 0; padding-top: 20px; }
}

/* ============ TRUST STRIP (accredited labs) ============ */
.trustbar { padding: 56px 0; background: var(--bg-soft); border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.trustbar-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
.tb-item { background: #fff; border: 1px solid var(--border); border-radius: var(--radius); padding: 26px 22px; text-align: center; }
.tb-ic { display: inline-grid; place-items: center; width: 52px; height: 52px; margin: 0 auto 14px; border-radius: 14px; background: linear-gradient(135deg, var(--accent), var(--accent-2)); font-size: 1.45rem; }
.tb-item h3 { font-size: 1.02rem; margin-bottom: 8px; line-height: 1.25; }
.tb-item p { color: var(--muted); font-size: .9rem; line-height: 1.5; }
@media (max-width: 900px) { .trustbar-grid { grid-template-columns: repeat(2, 1fr); } }

/* ============ MOBILE COMPACTNESS. Onyx-style density, less scroll to the main points ============ */
@media (max-width: 600px) {
  /* tighten the hero so headline + CTAs + stats land near the top of the screen */
  .hero::before { height: 18vh; }
  .hero-inner { padding-top: 15vh; }
  .hero { padding-bottom: 30px; }
  .hero-loc { margin-bottom: 12px; }
  .hero-title { font-size: clamp(1.85rem, 8.6vw, 2.4rem); margin-bottom: 8px; }
  .hero-sub { font-size: .94rem; line-height: 1.45; margin-bottom: 8px; max-width: 360px; }
  .hero-ruo-mini { font-size: .78rem; line-height: 1.4; max-width: 320px; margin: 0 auto 12px; }
  .hero-cta { gap: 10px; }
  .hero-cta .btn,
  .hero--video .hero-cta .btn { flex: 1 1 auto; padding: 12px 18px; font-size: .9rem; }
  .hero-stats { margin-top: 18px; }
  /* stats become a compact 3-up row that fits above the fold */
  .hero-stats { margin-top: 22px; gap: 0; }
  .hero-stats .hs-item { min-width: 0; flex: 1; padding: 0 8px; }
  .hero-stats .hs-n { font-size: 1.4rem; }
  .hero-stats .hs-l { font-size: .7rem; margin-top: 4px; }
  .hero-trust { display: none; }
  section { padding: 40px 0; }
  .trustbar { padding: 28px 0; }
  .trustbar-grid { gap: 12px; }
  .tb-item { padding: 16px 13px; }
  .tb-ic { width: 42px; height: 42px; font-size: 1.2rem; margin-bottom: 9px; }
  .tb-item h3 { font-size: .9rem; }
  .tb-item p { font-size: .8rem; line-height: 1.4; }
  .about-visual { min-height: 200px !important; }
  .about-grid { gap: 24px; }
  .section-head { margin-bottom: 22px; }
}


/* ===== Homepage hero background video ===== */
.hero--video { background: #0b1226; }
.hero--video::before, .hero--video::after { display: none !important; }
.hero-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; border: 0; pointer-events: none; }
.hero-overlay { position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: linear-gradient(180deg, rgba(9,14,30,0.55) 0%, rgba(9,14,30,0.50) 45%, rgba(9,14,30,0.68) 100%); }
.hero--video .hero-inner { position: relative; z-index: 2; }
/* light text so it stays readable over the moving background */
.hero--video .hero-title { color: #ffffff; }
.hero--video .hero-title .accent {
  background: linear-gradient(100deg, #7fb0ff 0%, #57d6ff 20%, #a99bff 40%, #57d6ff 60%, #7fb0ff 80%, #cde8ff 100%);
  background-size: 220% auto;
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; color: transparent;
  filter: drop-shadow(0 0 14px rgba(90,200,255,.28));
  animation: vytalHolo 6s linear infinite;
}
@keyframes vytalHolo { to { background-position: 220% center; } }
@media (prefers-reduced-motion: reduce) { .hero--video .hero-title .accent { animation: none; } }
.hero--video .hero-sub { color: #d3ddf3; }
.hero--video .hero-loc { color: #9ec0ff; }
.hero--video .hero-ruo-mini { color: #aab8d6; }
.hero--video .hero-stats .hs-n { color: #ffffff; }
.hero--video .hero-stats .hs-l { color: #b8c4e0; }
.hero--video .hero-stats .hs-item { border-right-color: rgba(255,255,255,0.18); }
.hero--video .btn-ghost { color: #fff; border-color: rgba(255,255,255,0.45); background: transparent; }
.hero--video .btn-ghost:hover { border-color: #fff; background: rgba(255,255,255,0.08); }

/* compact hero height (Onyx-style). Kills the tall 40vh top gap */
.hero--video { padding: 0 0 52px !important; }
.hero--video .hero-inner { padding-top: 84px !important; }
.hero--video .hero-stats { margin-top: 28px; }
@media (max-width: 760px) {
  .hero--video .hero-inner { padding-top: 52px !important; }
  .hero--video { padding-bottom: 38px !important; }
  .hero--video .hero-stats { margin-top: 22px; }
}

/* ===== Homepage hero: floating-vials image + text (desktop left, mobile centered) ===== */
.hero--home { background: #0b1226 url('assets/hero3-desktop.jpg') center / cover no-repeat; }
.hero--home .hero-overlay { background: linear-gradient(90deg, rgba(6,11,26,.72) 0%, rgba(6,11,26,.42) 36%, rgba(6,11,26,.08) 62%, rgba(6,11,26,0) 100%); }
.hero--home .hero-inner--left { max-width: 600px; margin: 0; text-align: left; }
.hero--home .hero-inner--left .hero-sub { margin-left: 0; margin-right: 0; max-width: 500px; }
.hero--home .hero-inner--left .hero-ruo-mini { margin-left: 0; }
.hero--home .hero-inner--left .hero-cta { justify-content: flex-start; }
.hero--home .hero-inner--left .hero-stats { justify-content: flex-start; }
.hero--home .hero-inner--left .hero-stats .hs-item:first-child { padding-left: 0; }
/* Desktop: tighten the hero so the CTA buttons sit within view (not below the fold) */
@media (min-width: 821px) {
  .hero--home { min-height: calc(100vh - 150px); display: grid; align-content: center; padding-top: 0 !important; padding-bottom: 0 !important; }
  .hero--home.hero--video .hero-inner { padding-top: 0 !important; }
  .hero--home .hero-loc { margin-bottom: 14px; }
  .hero--home .hero-title { font-size: clamp(2rem, 4.4vw, 3.15rem); margin-bottom: 12px; }
  .hero--home .hero-sub { margin-bottom: 16px; }
  .hero--home .hero-ruo-mini { margin-bottom: 18px; }
  .hero--home .hero-stats { margin-top: 22px; }
}
.hero-photo { display: none; }
@media (max-width: 820px) {
  /* Mobile: crisp vials image band on top, text on a solid dark panel below (no overlap) */
  .hero--home { background: #0a1020 !important; padding-bottom: 40px !important; }
  .hero--home .hero-overlay { display: none; }
  .hero-photo { display: block; width: 100%; aspect-ratio: 16 / 10; max-height: 32vh; background:
      linear-gradient(180deg, rgba(10,16,32,.55) 0%, rgba(10,16,32,0) 22%, rgba(10,16,32,0) 52%, rgba(10,16,32,.75) 84%, #0a1020 100%),
      var(--hero-img) center 45% / cover no-repeat, #0a1020; margin-bottom: -1px; }
  .hero--home .hero-inner--left { max-width: none; text-align: center; margin: -34px auto 0; padding-top: 0 !important; position: relative; z-index: 2; }
  .hero--home .hero-title { margin-bottom: 10px; }
  .hero--home .hero-inner--left .hero-sub { margin: 0 auto 12px; font-size: .9rem; line-height: 1.5; max-width: 34ch; }
  .hero--home .hero-inner--left .hero-ruo-mini { margin: 0 auto 16px; }
  .hero--home .hero-inner--left .hero-cta { justify-content: center; }
  .hero--home .hero-inner--left .hero-stats { justify-content: center; }
  /* center the trust row to match the centered mobile hero */
  .hero--home .hero-inner--left .hero-trustrow { justify-content: center; row-gap: 12px; column-gap: 24px; }
}

/* ===== Onyx-match: rectangular hero CTAs ===== */
.hero--video .btn, .hero--video .btn-lg { border-radius: 999px !important; font-weight: 700; padding: 16px 30px; justify-content: center; text-align: center; }
.hero--video .btn-primary { background: #ffffff !important; color: #0f1a33 !important; box-shadow: none !important; }
.hero--video .btn-primary:hover { background: #eef2fb !important; transform: translateY(-1px); }
.hero--video .btn-ghost { background: transparent !important; color: #fff !important; border: 1px solid rgba(255,255,255,0.5) !important; }
.hero--video .btn-ghost:hover { border-color: #fff !important; background: rgba(255,255,255,0.08) !important; }

/* ===== Onyx-match: bordered "Shop all" button ===== */
.catrow-all { border: 1px solid var(--border); border-radius: 4px; padding: 12px 18px; color: var(--text); background: #fff; transition: border-color .2s, color .2s; }
.catrow-all:hover { border-color: var(--accent); color: var(--accent); }

/* ===== Mobile: compact catalog header so product cards peek into view ===== */
@media (max-width: 600px) {
  .catrow { padding-top: 18px; }
  .catrow-head { margin-bottom: 14px; align-items: center; gap: 12px; flex-wrap: nowrap; }
  .catrow-head h2 { font-size: 1.3rem; line-height: 1.12; margin-top: 4px; }
  .catrow-head .kicker { font-size: .72rem; }
  .catrow-all { padding: 10px 14px; font-size: .82rem; flex: none; white-space: nowrap; }
}

/* ===== Onyx-style product card badges (category top-left, sale top-right) ===== */
.pcat { position: absolute; top: 12px; left: 12px; z-index: 3; background: rgba(15,26,51,0.72); color: #fff;
  font-family: ui-monospace, "SFMono-Regular", Menlo, monospace; font-size: .56rem; font-weight: 700;
  letter-spacing: .12em; text-transform: uppercase; padding: 5px 9px; border-radius: 4px; }
.shop-card .badge.badge-sale { top: 12px; right: 12px; left: auto; z-index: 3; background: var(--text); border-radius: 4px; }
.shop-card .badge.badge-best { top: 10px; right: 10px; left: auto; z-index: 3; background: linear-gradient(90deg,#f0b429,#ffd54a); color: #3a2c00; border-radius: 4px; font-size: .58rem; padding: 4px 8px; letter-spacing: .02em; white-space: nowrap; }
@media (max-width: 700px) {
  .pcat { font-size: .5rem; padding: 4px 7px; top: 9px; left: 9px; letter-spacing: .08em; }
  .shop-card .badge.badge-sale { top: 9px; right: 9px; padding: 5px 9px; }
  .shop-card .badge.badge-best { top: 8px; right: 8px; padding: 3px 7px; font-size: .52rem; }
}
/* Small purity label on product cards (replaces the category tag) */
.ppurity { position: absolute; top: 12px; left: 12px; z-index: 3; display: inline-flex; align-items: center; gap: 5px;
  background: rgba(35,72,224,0.10); color: var(--accent); border: 1px solid rgba(35,72,224,0.18);
  font-size: .58rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; padding: 5px 9px; border-radius: 999px; }
.ppurity::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--accent); flex: none; }
/* Mobile: move the purity chip to the bottom-left corner (clear of the vial cap
   and the SALE badge), and drop the "Purity" word so it's a compact percentage. */
@media (max-width: 700px) {
  .ppurity { top: auto; bottom: 10px; left: 10px; font-size: .56rem; padding: 4px 8px; }
  .ppurity .pp-word { display: none; }
}

/* ===== Cleaner email-list band (inline input + button, rectangular. Onyx-style) ===== */
.footer-email .fe-inner { padding: 30px 24px; }
.footer-email .fe-form { flex-wrap: wrap; gap: 10px; width: 100%; max-width: 480px; }
.footer-email .fe-form input { flex: 1 1 auto; min-width: 0; border-radius: 6px; padding: 14px 16px; }
.footer-email .fe-form .btn { flex: 0 0 auto; border-radius: 6px !important; padding: 14px 26px !important; }
@media (max-width: 700px) {
  .footer-email .fe-inner { padding: 24px 20px; gap: 14px; }
  .footer-email .fe-copy h3 { font-size: 1.28rem; }
  .footer-email .fe-copy p { font-size: .9rem; }
  .footer-email .fe-form { max-width: 100%; }
}

/* ===== Refined trust-strip icons (clean line icons in a soft container) ===== */
.trustbar .tb-ic { display: inline-grid; place-items: center; width: 56px; height: 56px; margin: 0 auto 16px;
  border-radius: 14px; background: var(--grad-soft); border: 1px solid var(--border); color: var(--accent); font-size: 0; }
.trustbar .tb-ic svg { width: 28px; height: 28px; }
@media (max-width: 600px) {
  .trustbar .tb-ic { width: 46px; height: 46px; border-radius: 12px; margin-bottom: 10px; }
  .trustbar .tb-ic svg { width: 24px; height: 24px; }
}

/* ===== Trust strip. Option B: bare line icons, borderless band ===== */
.trustbar { background: #fff; }
.trustbar .tb-item { background: transparent; border: 0; border-radius: 0; padding: 8px 22px; }
.trustbar .tb-ic { width: auto; height: auto; margin: 0 auto 14px; border: 0; background: none; border-radius: 0; color: var(--text); }
.trustbar .tb-ic svg { width: 32px; height: 32px; stroke-width: 1.45; }
@media (max-width: 600px) {
  .trustbar .tb-item { padding: 6px 12px; }
  .trustbar .tb-ic { margin-bottom: 10px; }
  .trustbar .tb-ic svg { width: 26px; height: 26px; }
}

/* ===== Seamless hero video: hide iOS/Safari native play button & controls ===== */
.hero-video::-webkit-media-controls,
.hero-video::-webkit-media-controls-enclosure,
.hero-video::-webkit-media-controls-panel,
.hero-video::-webkit-media-controls-start-playback-button,
.hero-video::-webkit-media-controls-play-button,
.hero-video::-webkit-media-controls-overlay-play-button {
  display: none !important;
  -webkit-appearance: none !important;
  opacity: 0 !important;
}
.hero-video { pointer-events: none; }

/* ===== Cleaner, minimal checkout payment area (Zelle-first, low clutter) ===== */
.woocommerce-checkout #payment { background: transparent !important; border-radius: 0; }
.woocommerce-checkout #payment ul.payment_methods {
  border: 0 !important; padding: 0 !important; margin: 0 0 8px !important; background: transparent !important; }
.woocommerce-checkout #payment ul.payment_methods li.wc_payment_method {
  list-style: none; margin: 0 0 10px; padding: 0; background: transparent; }
.woocommerce-checkout #payment ul.payment_methods li.wc_payment_method > label {
  display: flex; align-items: center; gap: 10px; margin: 0; cursor: pointer;
  border: 1px solid var(--border); border-radius: 12px; padding: 15px 16px;
  font-weight: 600; color: var(--text); background: #fff;
  transition: border-color .15s, box-shadow .15s; }
.woocommerce-checkout #payment ul.payment_methods li.wc_payment_method > input { accent-color: var(--accent); }
.woocommerce-checkout #payment ul.payment_methods li.wc_payment_method > input:checked + label {
  border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-glow); }
.woocommerce-checkout #payment .payment_box {
  background: var(--bg-soft) !important; border-radius: 10px !important;
  margin: 8px 0 2px !important; padding: 14px 16px !important; font-size: .9rem; color: var(--muted); }
.woocommerce-checkout #payment .payment_box::before { display: none !important; }

/* ===== "Card payments coming soon" notice + tighter checkout ===== */
.vytal-cc-soon { display: flex; align-items: center; gap: 8px; margin: 0 0 14px; padding: 10px 14px;
  border: 1px dashed var(--border); border-radius: 10px; background: var(--bg-soft);
  color: var(--muted); font-size: .84rem; line-height: 1.35; }
.vytal-cc-soon .vcc-ic { font-size: 1rem; flex: none; }
/* Required RUO / 21+ attestation above Place Order */
.vytal-attest { margin: 4px 0 14px; padding: 12px 14px; border: 1px solid var(--border);
  border-left: 4px solid #2f5cff; border-radius: 10px; background: var(--bg-soft); }
.woocommerce-checkout .vytal-attest .vytal-attest-row,
.vytal-attest .vytal-attest-row { display: flex !important; align-items: flex-start;
  cursor: pointer; color: var(--text); font-size: .85rem; line-height: 1.5; }
/* Spacing lives as a right margin ON the checkbox, so it holds even if the label
   layout is overridden by a checkout style. */
.woocommerce-checkout .vytal-attest .vytal-attest-row input[type="checkbox"],
.vytal-attest .vytal-attest-row input[type="checkbox"] {
  -webkit-appearance: checkbox; appearance: checkbox; box-sizing: border-box; flex: 0 0 auto; vertical-align: top;
  width: 18px !important; height: 18px !important; min-width: 18px !important; max-width: 18px !important;
  margin: 3px 14px 0 0 !important; padding: 0 !important; float: none !important; position: static !important;
  accent-color: #2f5cff; cursor: pointer; }
.vytal-attest-row > span { flex: 1 1 auto; min-width: 0; }
.vytal-attest-row b { font-weight: 700; }
/* compact spacing */
.woocommerce-checkout #customer_details .form-row { margin: 0 0 10px; }
@media (min-width: 901px) { .woocommerce-checkout #order_review { padding: 22px 24px; } }
.woocommerce-checkout #payment .vytal-age-confirm { margin: 12px 0 !important; }

/* ===== Fix mobile checkout overflow / off-center payment rows ===== */
.woocommerce-checkout #order_review,
.woocommerce-checkout #order_review * { box-sizing: border-box; }
.woocommerce-checkout #order_review { max-width: 100%; overflow-x: hidden; }
.woocommerce-checkout #payment ul.payment_methods li.wc_payment_method { position: relative; }
/* Radio pinned to the TITLE row (top-aligned), so it never drifts onto the
   expanded description in a tall box like Zelle. */
.woocommerce-checkout #payment ul.payment_methods li.wc_payment_method > input {
  position: absolute; left: 16px; top: 20px; transform: none; margin: 0; z-index: 2; }
.woocommerce-checkout #payment ul.payment_methods li.wc_payment_method > label {
  display: block; width: 100%; padding-left: 46px; min-height: 20px; }
/* Keep the expanded description clear of the radio column so nothing overlaps. */
.woocommerce-checkout #payment .payment_box { max-width: 100%; overflow-wrap: anywhere; margin-left: 46px; clear: both; }
.woocommerce-checkout #payment ul.payment_methods li.wc_payment_method > label img { max-height: 24px; width: auto; vertical-align: middle; }

/* ===== Account gate (full-screen create-account / sign-in wall). Soft light card ===== */
#vytal-gate { position: fixed; inset: 0; z-index: 2147483000; display: flex; flex-direction: column;
  background: #eef1f7; font-family: "Inter","Poppins",sans-serif; overflow-y: auto; -webkit-overflow-scrolling: touch; }
.vg-wrap { flex: 1; display: flex; align-items: center; justify-content: center; padding: 28px 16px; }
.vg-card { width: 100%; max-width: 430px; text-align: center; background: #fff; border-radius: 20px;
  padding: 32px 30px 26px; box-shadow: none; }
.vg-badge { width: 54px; height: 54px; margin: 0 auto 16px; border-radius: 15px; background: #eef3ff;
  border: 1px solid #dce6ff; display: flex; align-items: center; justify-content: center; }
.vg-badge svg { width: 28px; height: 28px; }
.vg-logo { margin: 0 auto 20px; }
.vg-logo img { display: block; margin: 0 auto; width: 210px; max-width: 78%; height: auto; }
.vg-h { color: #141c30; font-family: "Poppins","Inter",sans-serif; font-size: 1.5rem; font-weight: 800; letter-spacing: -.02em; margin: 0 0 6px; }
.vg-sub { color: #697487; font-size: .9rem; line-height: 1.5; margin: 0 0 22px; }
.vg-seg { display: flex; background: #f0f2f7; border-radius: 999px; padding: 4px; margin-bottom: 22px; }
.vg-tab { flex: 1; background: none; border: 0; color: #697487; font-family: inherit; font-weight: 600; font-size: .9rem; padding: 10px 0; border-radius: 999px; cursor: pointer; }
.vg-tab.is-active { background: #fff; color: #141c30; box-shadow: 0 2px 6px rgba(28,40,72,.12); }
.vg-form { text-align: left; }
.vg-lbl { display: block; color: #4a5468; font-size: .8rem; font-weight: 600; margin: 0 0 7px; }
.vg-lbl span { color: #9aa1b2; font-weight: 400; }
.vg-form input { width: 100%; box-sizing: border-box; background: #f5f7fb; border: 1px solid #e7ebf3; border-radius: 12px; padding: 13px 15px; color: #141c30; font-family: inherit; font-size: .95rem; margin: 0 0 15px; }
.vg-form input::placeholder { color: #a3abbd; }
.vg-form input:focus { outline: none; border-color: #3b6fe0; box-shadow: 0 0 0 3px rgba(59,111,224,.14); background: #fff; }
.vg-select { width: 100%; box-sizing: border-box; background: #f5f7fb; border: 1px solid #e7ebf3; border-radius: 12px; padding: 13px 15px; color: #141c30; font-family: inherit; font-size: .95rem; margin: 0 0 15px; }
.vg-select:focus { outline: none; border-color: #3b6fe0; box-shadow: 0 0 0 3px rgba(59,111,224,.14); background: #fff; }
.vg-help { font-size: .78rem; color: #8a92a5; line-height: 1.45; margin: -8px 0 15px; }
.vg-esign-text { font-size: .8rem; color: #4a5468; line-height: 1.5; margin: 0 0 10px; }
.vg-esign-text a { color: #3b6fe0; }
.vg-hidden { display: none !important; }
/* split business email: name @ institution [tld] */
.vg-email3 { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0 0 6px; }
.vg-email3 #vgEmName { flex: 1 1 90px; margin: 0; }
.vg-email3 #vgEmInst { flex: 1 1 90px; margin: 0; }
.vg-email3 .vg-select { flex: 1 1 130px; margin: 0; }
.vg-email3 .vg-at { color: #8a92a5; font-weight: 700; flex: none; }
/* legal name + entity type side by side */
.vg-row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 4px; }
.vg-row2 input, .vg-row2 .vg-select { margin-bottom: 0; }
@media (max-width: 460px) { .vg-row2 { grid-template-columns: 1fr; } }
/* attestation checkbox group + e-signature panel */
.vg-checkgroup { border: 1px solid #e7ebf3; border-radius: 12px; padding: 14px 16px; margin: 4px 0 14px; display: flex; flex-direction: column; gap: 12px; background: #fbfcfe; }
.vg-checkgroup .vg-agree { margin: 0; }
.vg-esign { border: 1px solid #e7ebf3; border-radius: 12px; padding: 16px; margin: 0 0 14px; background: #fbfcfe; text-align: left; }
.vg-esign-h { font-weight: 800; color: #141c30; font-size: .98rem; margin: 0 0 8px; }
.vg-esign input { margin-bottom: 0; }
.vg-msg { font-size: .85rem; margin: 0 0 12px; }
.vg-msg.err { color: #d64545; }
.vg-msg.ok { color: #1c8a5b; }
.vg-submit { width: 100%; border: 0; background: #141c30; color: #fff; font-family: inherit; font-weight: 700; font-size: .98rem; padding: 14px; border-radius: 12px; cursor: pointer; transition: filter .15s, transform .15s; }
.vg-submit:hover { filter: brightness(1.12); transform: translateY(-1px); }
.vg-submit:disabled { opacity: .7; cursor: default; transform: none; }
.vg-forgot { display: block; text-align: center; color: #3b6fe0; font-size: .84rem; margin: 14px 0 0; text-decoration: none; }
.vg-forgot:hover { text-decoration: underline; }
.vg-foot { color: #9aa1b2; font-size: .78rem; text-align: center; margin: 16px 0 0; }
.vg-badges { display: flex; justify-content: center; flex-wrap: wrap; gap: 8px 18px; margin: 14px 0 0; }
.vg-badges span { color: #9aa1b2; font-size: .74rem; }
@media (max-width: 480px) { .vg-h { font-size: 1.35rem; } .vg-wrap { padding: 22px 12px; } .vg-card { padding: 26px 20px 22px; } }

/* keep the account gate above any plugin overlay (e.g. Age Gate) */
#vytal-gate { z-index: 2147483000 !important; }

/* Suppress the separate Age Gate plugin overlay. The account gate replaces it */
[class*="age-gate"], [id*="age-gate"], .age-gate-wrapper, .age-gate-overlay { display: none !important; }

/* Account gate: agreement checkboxes (21+/RUO and Terms/Privacy) */
.vg-agree { display: flex; align-items: flex-start; gap: 10px; text-align: left; margin: 2px 0 14px;
  color: #586074; font-size: .8rem; line-height: 1.5; cursor: pointer; }
.vg-agree input { margin: 2px 0 0; width: 18px; height: 18px; flex: none; accent-color: #3b6fe0; cursor: pointer; }
.vg-agree b { color: #141c30; font-weight: 700; }
.vg-agree a { color: #3b6fe0; }

/* ===== "Testing in progress" overlay + product-page notice ===== */
.testing-overlay { position: absolute; inset: 0; z-index: 4; display: flex; align-items: center; justify-content: center;
  background: rgba(15,26,51,0.48); backdrop-filter: blur(1.5px); border-radius: inherit; }
.testing-overlay .to-badge { display: inline-flex; align-items: center; gap: 8px; background: #0f1a33; color: #fff;
  font-size: .72rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; padding: 9px 15px;
  border-radius: 999px; border: 1px solid rgba(255,255,255,.22); box-shadow: 0 6px 18px rgba(15,26,51,.3); }
.testing-overlay .to-badge::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: #ffb02e; flex: none;
  box-shadow: 0 0 0 0 rgba(255,176,46,.6); animation: to-pulse 1.6s infinite; }
@keyframes to-pulse { 0% { box-shadow: 0 0 0 0 rgba(255,176,46,.55); } 70% { box-shadow: 0 0 0 8px rgba(255,176,46,0); } 100% { box-shadow: 0 0 0 0 rgba(255,176,46,0); } }
@media (max-width: 700px) { .testing-overlay .to-badge { font-size: .6rem; padding: 7px 11px; } }

.vytal-testing-note { display: flex; align-items: flex-start; gap: 9px; margin: 0 0 18px; padding: 12px 15px;
  border: 1px solid var(--border); border-left: 4px solid #ffb02e; border-radius: 10px; background: #fff9ef;
  color: var(--text); font-size: .9rem; line-height: 1.5; }
.vytal-testing-note .vtn-dot { width: 9px; height: 9px; border-radius: 50%; background: #ffb02e; flex: none; margin-top: 5px;
  box-shadow: 0 0 0 0 rgba(255,176,46,.6); animation: to-pulse 1.6s infinite; }

/* Shop card: very small "Testing in progress" note under the product title (new products) */
.vytal-loop-testing { display: inline-flex; align-items: center; gap: 5px; margin: 3px 0 2px;
  font-size: .62rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: #9a6b00; line-height: 1.2; }
.vytal-loop-testing .vlt-dot { width: 6px; height: 6px; border-radius: 50%; background: #ffb02e; flex: none;
  box-shadow: 0 0 0 0 rgba(255,176,46,.6); animation: to-pulse 1.6s infinite; }

/* Small corner "Testing" chip on homepage catalog cards (no image blur, no big overlay) */
.shop-card .pthumb { position: relative; }
.testing-chip { position: absolute; left: 10px; bottom: 10px; z-index: 3;
  display: inline-flex; align-items: center; gap: 5px; padding: 4px 9px; border-radius: 999px;
  background: rgba(15,26,51,.82); color: #ffd68a; border: 1px solid rgba(255,255,255,.16);
  -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px);
  font-size: .58rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; line-height: 1; }
.testing-chip svg { width: 11px; height: 11px; color: #ffb02e; flex: none; }

/* ===== Coming Soon dropdown (homepage) ===== */
.soon-drop { padding: 8px 0 4px; }
.soon-acc { border: 1px solid var(--border); border-radius: 16px; background: var(--bg-soft); overflow: hidden; }
.soon-acc > summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 20px 24px; }
.soon-acc > summary::-webkit-details-marker { display: none; }
.soon-head { display: flex; flex-direction: column; gap: 4px; }
.soon-head .kicker { color: var(--muted); letter-spacing: .18em; text-transform: uppercase; font-weight: 700; font-size: .68rem; font-family: ui-monospace, "SFMono-Regular", Menlo, monospace; }
.soon-title { font-family: Poppins, sans-serif; font-weight: 800; font-size: 1.5rem; letter-spacing: -.02em; color: var(--text); }
.soon-chev { color: var(--accent); font-size: 1.1rem; transition: transform .2s ease; }
.soon-acc[open] .soon-chev { transform: rotate(180deg); }
.soon-body { padding: 0 24px 24px; }
.soon-list { display: flex; flex-wrap: wrap; gap: 10px; }
.soon-pill { display: inline-flex; align-items: center; gap: 8px; border: 1px solid var(--border); background: #fff; color: var(--text); font-weight: 600; font-size: .92rem; padding: 10px 16px; border-radius: 999px; }
.soon-pill::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--accent-2); flex: none; }
.soon-note { margin: 16px 0 0; color: var(--muted); font-size: .92rem; }
.soon-note a { color: var(--accent); font-weight: 700; }
@media (max-width: 600px) { .soon-title { font-size: 1.25rem; } .soon-acc > summary { padding: 16px 18px; } .soon-body { padding: 0 18px 18px; } }

/* ===== Coming Soon. Dark cinematic band with email capture ===== */
.soon2 { padding: 20px 0 8px; }
.soon2-band { position: relative; overflow: hidden; border-radius: 20px; padding: 46px 38px;
  background:
    radial-gradient(680px 340px at 82% -18%, rgba(47,92,255,.42), transparent 60%),
    radial-gradient(520px 300px at 8% 120%, rgba(20,179,214,.28), transparent 60%),
    #0a1024; }
.soon2-grid { position: absolute; inset: 0; pointer-events: none;
  background-image: linear-gradient(rgba(255,255,255,.04) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.04) 1px, transparent 1px);
  background-size: 34px 34px; }
.soon2-inner { position: relative; }
.soon2-eyebrow { font-family: ui-monospace, "SFMono-Regular", Menlo, monospace; font-size: .68rem; letter-spacing: .24em; text-transform: uppercase; color: #7fb0ff; margin: 0; }
.soon2-title { color: #fff; font-family: Poppins, sans-serif; font-size: clamp(1.9rem, 4vw, 2.6rem); font-weight: 800; letter-spacing: -.03em; line-height: 1.02; margin: 12px 0 8px; }
.soon2-sub { color: #aeb9d8; font-size: 1.02rem; line-height: 1.6; max-width: 48ch; margin: 0 0 24px; }
.soon2-pills { display: flex; flex-wrap: wrap; gap: 11px; margin-bottom: 28px; }
.soon2-pill { display: inline-flex; align-items: center; gap: 9px; padding: 11px 18px; border-radius: 999px;
  color: #eaf1ff; font-weight: 600; font-size: .92rem; background: rgba(255,255,255,.06);
  border: 1px solid rgba(127,176,255,.32); box-shadow: inset 0 0 22px rgba(47,92,255,.14); }
.soon2-pill i { width: 7px; height: 7px; border-radius: 50%; background: #5fd0ff; box-shadow: 0 0 10px #5fd0ff;
  flex: none; animation: soon2-pulse 2.2s ease-in-out infinite; }
@keyframes soon2-pulse { 0%,100% { opacity: 1; } 50% { opacity: .35; } }
.soon2-form { display: flex; flex-wrap: wrap; gap: 10px; max-width: 470px; }
.soon2-form input { flex: 1 1 auto; min-width: 0; box-sizing: border-box; background: rgba(255,255,255,.07);
  border: 1px solid rgba(255,255,255,.2); border-radius: 12px; padding: 14px 16px; color: #fff; font-family: inherit; font-size: .95rem; }
.soon2-form input::placeholder { color: #8ea0c4; }
.soon2-form input:focus { outline: none; border-color: #2f5cff; box-shadow: 0 0 0 3px rgba(47,92,255,.28); }
.soon2-btn { flex: 0 0 auto; border: 0; cursor: pointer; background: linear-gradient(100deg,#2f5cff,#2348e0 52%,#14b3d6);
  color: #fff; font-family: inherit; font-weight: 700; font-size: .95rem; padding: 14px 24px; border-radius: 12px;
  box-shadow: 0 10px 26px rgba(47,92,255,.4); transition: transform .15s, filter .2s; }
.soon2-btn:hover { transform: translateY(-1px); filter: brightness(1.06); }
.soon2-note { flex-basis: 100%; font-size: .85rem; color: #aeb9d8; margin-top: 4px; }
.soon2-note.err { color: #ff9a9a; }
.soon2-note.ok { color: #7fe0a8; }
@media (max-width: 600px) { .soon2-band { padding: 30px 20px; } .soon2-sub { font-size: .92rem; } }

/* account gate: low-friction "takes 10 seconds" line */
.vg-social { display: inline-flex; align-items: center; gap: 8px; margin: -6px 0 22px; padding: 8px 14px;
  border: 1px solid rgba(127,176,255,.28); background: rgba(255,255,255,.05); border-radius: 999px;
  color: #b7c3de; font-size: .82rem; }
.vg-social .vg-social-ic { font-size: 1rem; }

/* ===== Reconstitution add-on: live total under the checkbox ===== */
.vytal-addon-total { margin: 8px 0 0; font-size: .92rem; color: #33405c; }
.vytal-addon-total strong { color: var(--accent); }

/* ===== Frequently bought together (single product page) ===== */
/* Full-bleed band across the whole bottom of the page. */
.vytal-fbt { width: 100vw; position: relative; left: 50%; right: 50%; margin-left: -50vw; margin-right: -50vw;
  margin-top: 56px; margin-bottom: 0; padding: 46px 0 48px;
  background: linear-gradient(180deg, #f7faff 0%, #eef4ff 100%); border-top: 1px solid var(--border); }
.vytal-fbt .fbt-title { margin: 0 0 22px; font-size: 1.5rem; font-family: Poppins, sans-serif; color: #17253f; }
.fbt-row { display: flex; align-items: stretch; flex-wrap: wrap; gap: 12px; }
.fbt-plus { display: flex; align-items: center; font-size: 1.6rem; font-weight: 700; color: #90a2c4; padding: 0 2px; }
.fbt-item { flex: 0 1 240px; display: flex; gap: 12px; align-items: center; background: #fff;
  border: 1px solid var(--border); border-radius: 16px; padding: 14px; cursor: pointer;
  transition: border-color .15s, box-shadow .15s; }
label.fbt-item:hover { border-color: #b9cdf3; box-shadow: 0 8px 22px rgba(35,72,224,.08); }
.fbt-item.fbt-current { cursor: default; border-color: #cddcff; background: #fbfdff; }
.fbt-thumb { flex: none; width: 64px; height: 64px; border-radius: 12px; overflow: hidden; background: #f2f6ff;
  display: flex; align-items: center; justify-content: center; }
.fbt-thumb img { width: 100%; height: 100%; object-fit: cover; margin: 0 !important; border-radius: 12px; }
.fbt-pick { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.fbt-this { font-size: .68rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--accent); }
.fbt-check { display: inline-flex; align-items: center; gap: 7px; font-size: .72rem; font-weight: 800;
  letter-spacing: .04em; text-transform: uppercase; color: #57617a; }
.fbt-check input { width: 16px; height: 16px; accent-color: var(--accent); margin: 0; }
.fbt-name { font-weight: 700; font-size: .92rem; color: #17253f; line-height: 1.25;
  overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.fbt-price { font-size: .9rem; color: #33405c; }
.fbt-price .woocommerce-Price-amount { font-weight: 700; }
.fbt-foot { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; margin-top: 22px; }
.fbt-total { font-size: 1.05rem; color: #33405c; }
.fbt-total strong { font-size: 1.25rem; color: #17253f; }
.fbt-add { min-width: 220px; }
.fbt-add.is-loading { opacity: .6; pointer-events: none; }
@media (max-width: 640px) {
  .vytal-fbt { padding: 34px 0 36px; }
  .vytal-fbt .fbt-title { font-size: 1.2rem; }
  .fbt-row { flex-direction: column; align-items: stretch; }
  .fbt-plus { justify-content: center; padding: 2px 0; }
  .fbt-item { flex: 1 1 auto; }
  .fbt-foot { flex-direction: column; align-items: stretch; }
  .fbt-add { width: 100%; min-width: 0; }
}

/* ===== Checkout: shipping protection row ===== */
.vytal-ship-protect th { font-weight: 700; vertical-align: top; }
.vytal-ship-protect td { text-align: right; }
.vytal-ship-protect .vsp-label { display: inline-flex; align-items: center; gap: 8px; font-weight: 700; cursor: pointer; }
.vytal-ship-protect .vsp-label input { width: 16px; height: 16px; accent-color: var(--accent); margin: 0; }
.vytal-ship-protect .vsp-note { display: block; margin-top: 4px; font-size: .78rem; color: var(--muted); font-weight: 400; line-height: 1.4; }

/* ===== Checkout add-on cards ===== */
.vytal-addons { display: grid; gap: 12px; margin: 0 0 22px; }
.vaddon { position: relative; display: grid; grid-template-columns: auto auto 1fr auto; align-items: center; gap: 14px;
  background: #fff; border: 1.5px solid var(--border); border-radius: 16px; padding: 16px 18px; cursor: pointer;
  transition: border-color .15s, box-shadow .15s, background .15s; }
.vaddon:hover { border-color: #b9cdf3; }
.vaddon.is-on { border-color: var(--accent); background: #f5f8ff; box-shadow: 0 8px 24px rgba(47,92,255,.12); }
.vaddon .vaddon-cb { position: absolute; opacity: 0; pointer-events: none; }
.vaddon .vaddon-check { flex: none; width: 26px; height: 26px; border-radius: 8px; border: 2px solid #cdd8ec; background: #fff; position: relative; transition: background .15s, border-color .15s; }
.vaddon .vaddon-check { border-color: #cdd8ec; }
.vaddon.is-on .vaddon-check { background: linear-gradient(120deg,#2f5cff,#23b3d6); border-color: transparent; }
.vaddon.is-on .vaddon-check::after { content: ""; position: absolute; left: 8px; top: 4px; width: 6px; height: 11px;
  border: solid #fff; border-width: 0 2.5px 2.5px 0; transform: rotate(45deg); }
.vaddon .vaddon-ic { flex: none; width: 46px; height: 46px; border-radius: 13px; display: flex; align-items: center; justify-content: center;
  background: rgba(47,92,255,.12); color: var(--accent); }
.vaddon.is-on .vaddon-ic { background: rgba(47,92,255,.18); }
.vaddon .vaddon-ic svg { width: 23px; height: 23px; }
.vaddon .vaddon-body { min-width: 0; }
.vaddon .vaddon-title { display: block; font-weight: 800; color: #17253f; font-size: 1rem; line-height: 1.2; }
.vaddon .vaddon-desc { display: block; color: var(--muted); font-size: .82rem; line-height: 1.4; margin-top: 3px; }
.vaddon .vaddon-price { font-weight: 800; color: #17253f; font-size: 1.02rem; white-space: nowrap; }
@media (max-width: 560px) {
  .vaddon { grid-template-columns: auto auto 1fr; row-gap: 8px; padding: 14px; }
  .vaddon .vaddon-price { grid-column: 3; text-align: right; }
}

/* ===== Checkout upsell: "Researchers also bought" ===== */
.vytal-cku { border: 1px solid var(--border); border-radius: 16px; padding: 16px 18px; margin: 0 0 26px; background: #fff; }
.vcku-head { font-size: .72rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: #8391ad; margin-bottom: 10px; }
.vcku-row { display: flex; align-items: center; gap: 12px; padding: 10px 0; border-top: 1px solid #eef2f8; }
.vcku-row:first-of-type { border-top: 0; }
.vcku-thumb { flex: none; width: 46px; height: 46px; border-radius: 10px; overflow: hidden; background: #f2f6ff; }
.vcku-thumb img { width: 100%; height: 100%; object-fit: cover; margin: 0 !important; border-radius: 10px; }
.vcku-info { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.vcku-name { font-weight: 700; color: #17253f; font-size: .9rem; line-height: 1.2; }
.vcku-price { color: var(--muted); font-size: .84rem; }
.vcku-price .amount { color: #17253f; font-weight: 700; }
.vcku-add { flex: none; border: 1.5px solid var(--accent); background: #fff; color: var(--accent); border-radius: 999px;
  padding: 8px 18px; font-weight: 800; font-size: .82rem; cursor: pointer; text-decoration: none; transition: background .15s, color .15s; }
.vcku-add:hover { background: var(--accent); color: #fff; }
.vcku-add.is-added { border-color: #1c8a5b; color: #1c8a5b; background: #e7f6ec; }
.vcku-add.is-loading { opacity: .6; pointer-events: none; }

/* ===== Holographic-blue Place Order button ===== */
#place_order, .woocommerce-checkout #payment #place_order {
  background: linear-gradient(100deg,#2f5cff 0%,#23b3d6 32%,#6a7bff 52%,#2f5cff 74%,#23b3d6 100%) !important;
  background-size: 220% auto !important; color: #fff !important; border: 0 !important; border-radius: 999px !important;
  font-weight: 800 !important; letter-spacing: .01em; padding: 16px 28px !important;
  box-shadow: 0 12px 30px rgba(47,92,255,.28) !important; animation: vytalHolo 7s linear infinite; }
#place_order:hover { filter: brightness(1.04); }
@media (prefers-reduced-motion: reduce) { #place_order { animation: none; } }

/* ===== Homepage bulk-discount banner (thin, full-width, subtle holo) ===== */
.bulk-band { width: 100%; padding: 0 !important; margin: 0;
  background: linear-gradient(90deg,#1b2b57 0%,#2f5cff 55%,#2f5cff 100%); color: #fff; }
.bulk-band .bulk-in { display: flex; align-items: center; justify-content: space-between; gap: 22px; flex-wrap: wrap; padding: 16px 20px; }
.bulk-copy { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.bulk-copy .bulk-kick { font-size: .68rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: rgba(255,255,255,.8); }
.bulk-copy .bulk-title { font-family: Poppins, sans-serif; font-size: clamp(.95rem, 1.7vw, 1.2rem); font-weight: 800; color: #fff; line-height: 1.25; }
.bulk-tiers { display: flex; gap: 10px; flex-wrap: nowrap; }
.bulk-tier { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px;
  background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.24); border-radius: 12px; padding: 8px 16px; min-width: 88px; }
.bulk-tier .bt-qty { font-size: .72rem; font-weight: 700; color: rgba(255,255,255,.9); letter-spacing: .02em; }
.bulk-tier .bt-off { font-size: 1.05rem; font-weight: 800; color: #fff; line-height: 1.1; }
.bulk-tier--best { background: #ffd76a; border-color: #ffd76a; }
.bulk-tier--best .bt-qty { color: #5a4600; }
.bulk-tier--best .bt-off { color: #3a2c00; }
@media (prefers-reduced-motion: reduce) { .bulk-band { animation: none; } }
@media (max-width: 720px) {
  .bulk-band .bulk-in { flex-direction: column; align-items: flex-start; gap: 14px; padding: 16px; }
  .bulk-tiers { width: 100%; }
  .bulk-tier { flex: 1 1 0; min-width: 0; padding: 8px 6px; }
}

/* ===== Checkout top band: upsell + add-ons side by side, above the form ===== */
.co-top { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; align-items: start; margin: 8px 0 30px; }
.co-top .vytal-cku, .co-top .vytal-addons { margin: 0; }
@media (max-width: 900px) { .co-top { grid-template-columns: 1fr; gap: 16px; } }

/* ===== Checkout: shipping options on a single line each ===== */
.woocommerce-checkout #order_review tr.woocommerce-shipping-totals { display: block; }
.woocommerce-checkout #order_review tr.woocommerce-shipping-totals th,
.woocommerce-checkout #order_review tr.woocommerce-shipping-totals td {
  display: block; width: 100%; text-align: left; padding-left: 0; padding-right: 0; }
.woocommerce-checkout #order_review tr.woocommerce-shipping-totals th { padding-bottom: 8px; }
.woocommerce-checkout #order_review ul#shipping_method { margin: 0; padding: 0; list-style: none; }
.woocommerce-checkout #order_review ul#shipping_method li {
  display: flex; align-items: center; gap: 8px; margin: 0 0 8px; line-height: 1.25; white-space: nowrap; }
.woocommerce-checkout #order_review ul#shipping_method li:last-child { margin-bottom: 0; }
.woocommerce-checkout #order_review ul#shipping_method li input { flex: none; margin: 0; }
.woocommerce-checkout #order_review ul#shipping_method li label {
  display: inline; margin: 0; white-space: nowrap; font-size: .92rem; }

/* ===== Checkout "Choose Size" modal (upsell variable products) ===== */
html.vcku-locked, html.vcku-locked body { overflow: hidden; }
.vcku-modal { position: fixed; inset: 0; z-index: 2147483000; display: none; align-items: center; justify-content: center; padding: 20px; }
.vcku-modal.open { display: flex; }
.vcku-modal .vcku-backdrop { position: absolute; inset: 0; background: rgba(15,26,51,.5); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
.vcku-modal .vcku-card { position: relative; z-index: 1; width: 100%; max-width: 460px; background: #fff; border-radius: 22px; padding: 24px 24px 22px; box-shadow: 0 30px 70px rgba(15,26,51,.3); }
.vcku-mhead { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 18px; }
.vcku-mtitle { font-family: Poppins, sans-serif; font-weight: 800; font-size: 1.25rem; color: #17253f; line-height: 1.2; }
.vcku-close { flex: none; width: 34px; height: 34px; border-radius: 999px; border: 0; background: #f1f4fa; color: #57617a; font-size: 1.25rem; line-height: 1; cursor: pointer; }
.vcku-close:hover { background: #e6ebf5; }
.vcku-mlabel { font-size: .72rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: #8391ad; margin-bottom: 10px; }
.vcku-sizes { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 20px; }
.vcku-size { border: 1.5px solid var(--border); background: #fff; color: #17253f; border-radius: 999px; padding: 12px 22px; font-weight: 800; font-size: .95rem; cursor: pointer; transition: border-color .15s, background .15s, color .15s; }
.vcku-size:hover { border-color: #b9cdf3; }
.vcku-size.sel { border-color: var(--accent); background: var(--accent); color: #fff; }
.vcku-addvar { width: 100%; border: 0; border-radius: 999px; padding: 15px; font-weight: 800; font-size: 1rem; color: #fff; background: var(--accent); cursor: pointer; }
.vcku-addvar:disabled { opacity: .5; cursor: not-allowed; }
.vcku-addvar.is-loading { opacity: .7; pointer-events: none; }

/* ===== Free-gift cart styling ===== */
.vytal-gift-badge { display: inline-block; margin-left: 8px; background: #e7f6ec; color: #1c8a5b; border: 1px solid #bfe6cd;
  font-size: .66rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; padding: 2px 8px; border-radius: 999px; vertical-align: middle; }
.vytal-gift-free { font-weight: 800; color: #1c8a5b; letter-spacing: .04em; }
.vytal-gift-bar { background: linear-gradient(90deg,#f5f8ff,#eef4ff); border: 1px solid #dbe6ff; border-radius: 12px;
  padding: 11px 16px; margin: 0 0 16px; font-size: .9rem; color: #33405c; }
.vytal-gift-bar strong { color: var(--accent); }
.vytal-gift-bar.all { background: #e7f6ec; border-color: #bfe6cd; color: #14663f; }
.vytal-gift-bar.all strong { color: #14663f; }

/* ===== Mini-cart quantity stepper ===== */
.vqty { display: inline-flex; align-items: center; gap: 0; border: 1px solid var(--border); border-radius: 999px; overflow: hidden; vertical-align: middle; }
.vqty.busy { opacity: .55; pointer-events: none; }
.vqty .vqty-btn { border: 0; background: #f4f7fc; color: var(--accent); width: 26px; height: 26px; font-size: 1rem; line-height: 1; cursor: pointer; font-weight: 800; display: flex; align-items: center; justify-content: center; }
.vqty .vqty-btn:hover { background: var(--accent); color: #fff; }
.vqty .vqty-n { min-width: 26px; text-align: center; font-weight: 800; font-size: .85rem; color: var(--ink, #0f1a33); }
.vqty-price { color: var(--muted); font-size: .88rem; margin-left: 6px; }
.vqty-gift { font-size: .88rem; color: var(--muted); }

/* ===== Homepage trust band ===== */
.trust-band { padding: 0 !important; border-bottom: 1px solid var(--border); background: #fff; }
.trust-band-in { display: grid; grid-template-columns: repeat(4,1fr); gap: 18px; padding: 20px 24px; }
.trust-band .tb-item { display: flex; align-items: center; gap: 12px; }
.trust-band .tb-item svg { width: 26px; height: 26px; flex: none; fill: none; stroke: var(--accent); stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.trust-band .tb-item b { display: block; font-size: .92rem; color: #17253f; line-height: 1.15; }
.trust-band .tb-item small { color: var(--muted); font-size: .78rem; }
/* Mobile: collapse the 4 trust cards into one compact banner row (icon + short label) */
@media (max-width: 820px){
  .trust-band { background: #f4f8ff; }
  .trust-band-in { grid-template-columns: repeat(4,1fr); gap: 4px; padding: 12px 8px; }
  .trust-band .tb-item { flex-direction: column; align-items: center; text-align: center; gap: 5px; }
  .trust-band .tb-item svg { width: 20px; height: 20px; }
  .trust-band .tb-item b { font-size: .64rem; line-height: 1.15; }
  .trust-band .tb-item small { display: none; }
}

/* ===== Cart reassurance note ===== */
.vytal-cart-note { background: #f5f8ff; border: 1px solid #dbe6ff; border-radius: 12px; padding: 11px 14px; font-size: .85rem; color: #33405c; margin: 16px 0 30px; }
.woocommerce-cart .cart-collaterals, .woocommerce-cart .cart_totals { margin-top: 10px; }
.vytal-cart-note strong { color: var(--accent); }

/* ===== Sticky mobile add-to-cart ===== */
.vytal-sticky-atc { position: fixed; left: 0; right: 0; bottom: 0; z-index: 1200; display: none;
  background: #fff; border-top: 1px solid var(--border); box-shadow: 0 -8px 24px rgba(15,26,51,.10);
  padding: 10px 14px calc(10px + env(safe-area-inset-bottom)); align-items: center; gap: 12px; }
.vytal-sticky-atc .sa-name { flex: 1; min-width: 0; font-weight: 700; font-size: .9rem; color: #17253f; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.vytal-sticky-atc .sa-price { font-weight: 800; color: var(--accent); font-size: .95rem; white-space: nowrap; }
.vytal-sticky-atc .sa-btn { border: 0; background: var(--accent); color: #fff; font-weight: 800; border-radius: 999px; padding: 12px 20px; font-size: .9rem; }
@media (max-width: 820px){ body.single-product .vytal-sticky-atc.show { display: flex; } }

/* ===== Shop category filter list ===== */
.shop-side .cat-list { list-style: none; margin: 0; padding: 0; }
.shop-side .cat-list li { margin: 0 0 2px; }
.shop-side .cat-list a { display: flex; justify-content: space-between; align-items: center; gap: 8px;
  padding: 8px 10px; border-radius: 9px; color: #3a4665; font-size: .9rem; text-decoration: none; }
.shop-side .cat-list a:hover { background: #f4f8ff; color: var(--accent); }
.shop-side .cat-list li.on a { background: var(--accent); color: #fff; font-weight: 700; }
.shop-side .cat-list a span { font-size: .74rem; opacity: .7; }
.shop-side .cat-list li.on a span { opacity: .9; }

/* ===== Account access page (Create account / Sign in) ===== */
.woocommerce-account .woocommerce { max-width: 960px; margin: 0 auto; padding: 34px 20px 72px; }
.woocommerce-account .woocommerce-notices-wrapper { max-width: 720px; margin: 0 auto; }
.woocommerce-account .woocommerce-info,
.woocommerce-account .woocommerce-message { border-radius: 12px; border-top-color: var(--accent); font-size: .9rem; }
.acc-access { max-width: 720px; margin: 0 auto 26px; text-align: center; }
.acc-access .acc-eyebrow { font-size: .72rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--accent); }
.acc-access .acc-h1 { font-family: Poppins, sans-serif; font-weight: 800; font-size: clamp(1.6rem,4.4vw,2.3rem); color: #17253f; margin: 10px 0 8px; line-height: 1.12; }
.acc-access .acc-sub { color: var(--muted); max-width: 46ch; margin: 0 auto; line-height: 1.6; font-size: .95rem; }

#customer_login { display: grid !important; grid-template-columns: 1fr 1fr; gap: 20px; align-items: stretch; max-width: 880px; margin: 0 auto; float: none !important; width: auto !important; }
#customer_login::before, #customer_login::after { display: none !important; content: none !important; } /* kill clearfix that breaks grid */
#customer_login > div { width: 100% !important; float: none !important; margin: 0 !important; box-sizing: border-box;
  background: #fff; border: 1px solid var(--border); border-radius: 20px; padding: 26px 24px; box-shadow: 0 12px 34px rgba(15,26,51,.06); }
#customer_login > div + div { border-color: #cddcff; background: linear-gradient(180deg,#ffffff,#f5f8ff); }
#customer_login h2 { font-family: Poppins, sans-serif; font-weight: 800; font-size: 1.25rem; color: #17253f; margin: 0 0 16px; }
#customer_login > div:first-child h2::after { content: " — welcome back"; font-weight: 600; font-size: .85rem; color: var(--muted); }
#customer_login > div + div h2::after { content: " — it takes a minute"; font-weight: 600; font-size: .85rem; color: var(--muted); }
.woocommerce-account .woocommerce-form-row label,
.woocommerce-account .woocommerce form .form-row label { display: block; font-weight: 700; font-size: .86rem; color: #17253f; margin-bottom: 6px; }
.woocommerce-account .woocommerce form .form-row { margin: 0 0 14px; }
.woocommerce-account .woocommerce form .form-row input.input-text,
.woocommerce-account .woocommerce .woocommerce-form-row input.input-text {
  width: 100%; box-sizing: border-box; border: 1.5px solid var(--border); border-radius: 12px; padding: 13px 15px; font-size: 1rem; background: #fff; }
.woocommerce-account .woocommerce form .form-row input.input-text:focus { border-color: var(--accent); outline: none; box-shadow: 0 0 0 3px rgba(47,92,255,.12); }
.woocommerce-account .password-input,
.woocommerce-account .woocommerce-password-hint { width: 100%; }
.woocommerce-account .woocommerce-form button.button,
.woocommerce-account .woocommerce button.button {
  width: 100%; background: var(--accent) !important; color: #fff !important; border: 0 !important; border-radius: 999px !important;
  padding: 14px 22px !important; font-weight: 800 !important; font-size: 1rem !important; box-shadow: 0 10px 24px rgba(47,92,255,.24); cursor: pointer; margin-top: 6px; float: none !important; }
.woocommerce-account .woocommerce-form-login__rememberme { display: block; margin: 10px 0; font-size: .85rem; color: var(--muted); }
.woocommerce-account .woocommerce-form-login__submit,
.woocommerce-account .woocommerce-form-register__submit { width: 100%; }
.woocommerce-account .woocommerce-form-login .lost_password { font-size: .85rem; margin-top: 10px; }
.woocommerce-account .woocommerce-form-login .lost_password a,
.woocommerce-account .woocommerce-privacy-policy-text a { color: var(--accent); }
.woocommerce-account .woocommerce-privacy-policy-text { font-size: .78rem; color: var(--muted); margin-top: 10px; }
/* ===== Logged-in account — VYTAL Concierge (Concept C) ===== */
.woocommerce-account .woocommerce { max-width: 1000px; margin: 0 auto; }
.woocommerce-account img.avatar { display: none !important; } /* no gravatar, ever */
.woocommerce-account .woocommerce-MyAccount-navigation { width: 340px; float: left; }
.woocommerce-account .woocommerce-MyAccount-content { overflow: hidden; padding-left: 28px; }

.vacc-hi { display: flex; align-items: center; gap: 14px; margin-bottom: 16px; }
.vacc-g { font-family: Poppins, sans-serif; font-weight: 800; font-size: 1.15rem; color: #17253f; }
.vacc-s { color: var(--muted); font-size: .82rem; }
.vacc-mono { width: 54px; height: 54px; border-radius: 16px; flex: none; display: flex; align-items: center; justify-content: center;
  color: #fff; font-family: Poppins, sans-serif; font-weight: 800; font-size: 1.2rem;
  background: linear-gradient(90deg,#2f5cff,#23b3d6,#a99bff,#23b3d6,#2f5cff); background-size: 220% auto;
  animation: vytalHolo 6s linear infinite; box-shadow: 0 10px 24px rgba(47,92,255,.35); }

.vacc-quick { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 16px; }
.vacc-qb { display: flex; flex-direction: column; gap: 6px; padding: 16px; border-radius: 16px; text-decoration: none;
  background: linear-gradient(90deg,#2348e0,#2f7be6); color: #fff;
  box-shadow: 0 10px 26px rgba(35,72,224,.28); }
.vacc-qb.alt { background: #fff; border: 1px solid var(--border); color: #17253f; animation: none; box-shadow: none; }
.vacc-qb .t { font-weight: 800; }
.vacc-qb small { font-size: .74rem; opacity: .9; }
.vacc-qb.alt small { color: var(--muted); opacity: 1; }
.vacc-ico { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

.vacc-list { background: #fff; border: 1px solid var(--border); border-radius: 16px; overflow: hidden; }
.vacc-row { display: flex; align-items: center; gap: 14px; padding: 15px 16px; border-bottom: 1px solid #eef2f9; text-decoration: none; color: #17253f; }
.vacc-row:last-child { border-bottom: 0; }
.vacc-row .vacc-rico { width: 38px; height: 38px; border-radius: 11px; background: #f4f8ff; color: var(--accent); display: flex; align-items: center; justify-content: center; flex: none; }
.vacc-row .vacc-tx b { font-size: .95rem; font-weight: 700; }
.vacc-row .vacc-ch { margin-left: auto; color: #b8c2d6; font-size: 1.3rem; line-height: 1; }
.vacc-row.is-active { background: #f4f8ff; }
.vacc-row.is-active .vacc-tx b { color: var(--accent); }
.vacc-row.out .vacc-rico { background: #fdeaea; color: #e5484d; }
.vacc-row.out .vacc-tx b { color: #e5484d; }

.vacc-welcome { position: relative; overflow: hidden; border-radius: 18px; padding: 26px 24px; margin-bottom: 18px;
  background: radial-gradient(120% 140% at 85% 0%, #16295e 0%, #0b1226 60%); color: #fff; }
.vacc-welcome-glow { position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(90deg, transparent 0%, rgba(127,176,255,.22) 50%, transparent 100%); background-size: 220% 100%; animation: vytalHolo 7s linear infinite; }
.vacc-welcome-in { position: relative; }
.vacc-kick { font-size: .7rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; color: #7fb0ff; }
.vacc-welcome h2 { font-family: Poppins, sans-serif; font-weight: 800; font-size: 1.6rem; margin: 6px 0 8px;
  background: linear-gradient(90deg,#7fb0ff,#57d6ff,#a99bff,#57d6ff,#7fb0ff); background-size: 220% auto;
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; animation: vytalHolo 6s linear infinite; }
.vacc-welcome p { color: #c4d0e6; font-size: .9rem; line-height: 1.55; margin: 0; max-width: 52ch; }
.vacc-card { background: #fff; border: 1px solid var(--border); border-radius: 16px; padding: 18px; margin-bottom: 18px; }
.vacc-card-h { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; }
.vacc-card-h h3 { margin: 0; font-family: Poppins, sans-serif; font-size: 1.05rem; }
.vacc-card-h a { color: var(--accent); font-weight: 700; font-size: .85rem; text-decoration: none; }
.vacc-order { display: flex; align-items: center; gap: 12px; padding: 12px 0; border-top: 1px solid #eef2f9; }
.vacc-order:first-child { border-top: 0; }
.vacc-order-main { flex: 1; min-width: 0; }
.vacc-order-id { font-weight: 800; color: #17253f; text-decoration: none; }
.vacc-order-meta { display: block; color: var(--muted); font-size: .8rem; }
.vacc-order-st { font-size: .68rem; font-weight: 700; padding: 3px 9px; border-radius: 999px; background: #eef2f9; color: #5b6a86; white-space: nowrap; }
.vacc-order-st.st-processing, .vacc-order-st.st-completed { background: #e7f6ec; color: #1c8a5b; }
.vacc-order-again { color: var(--accent); font-weight: 700; font-size: .82rem; text-decoration: none; white-space: nowrap; }

@media (prefers-reduced-motion: reduce) { .vacc-mono, .vacc-qb, .vacc-welcome-glow, .vacc-welcome h2 { animation: none; } }
@media (max-width: 820px) {
  #customer_login { grid-template-columns: 1fr !important; }
  .woocommerce-account .woocommerce { padding: 22px 16px 60px; }
  .woocommerce-account .woocommerce-MyAccount-navigation { width: 100%; float: none; margin-bottom: 18px; }
  .woocommerce-account .woocommerce-MyAccount-content { padding-left: 0; }
}

/* ===== Homepage featured cards: add-to-cart button ===== */
/* Homepage featured cards: one padded card containing image + text + button. */
.catgrid .shop-card { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--border);
  border-radius: 18px; padding: 14px 14px 16px; box-shadow: 0 6px 20px rgba(15,26,51,.05);
  transition: transform .15s, box-shadow .15s; }
.catgrid .shop-card:hover { transform: translateY(-3px); box-shadow: 0 14px 34px rgba(15,26,51,.10); }
.catgrid .shop-card .pthumb { text-decoration: none; background: transparent; border: 0;
  border-radius: 0; margin: 0 0 12px; aspect-ratio: 1 / 1; padding: 4px; min-height: 0; }
.catgrid .shop-card .sc-titlelink { text-decoration: none; }
.catgrid .shop-card .sc-titlelink h3 { margin: 0 0 4px; }
.catgrid .shop-card .pts { margin: 0 0 4px; }
.catgrid .shop-card .sc-buy { margin-top: auto; padding-top: 12px; }
.catgrid .shop-card .sc-buy .button {
  display: block; width: 100%; text-align: center; box-sizing: border-box;
  background: linear-gradient(90deg,#2348e0,#2f7be6); color: #fff; border: 0; border-radius: 999px;
  padding: 11px 14px; font-weight: 800; font-size: .88rem; text-decoration: none; cursor: pointer;
  transition: box-shadow .15s, filter .15s; }
.catgrid .shop-card .sc-buy .button:hover { filter: brightness(1.05); box-shadow: 0 8px 20px rgba(35,72,224,.24); }
.catgrid .shop-card .sc-buy .button.loading { opacity: .7; }
.catgrid .shop-card .sc-buy .added_to_cart { display: none; } /* drawer opens instead of a 'view cart' link */
@media (max-width: 560px) {
  .catgrid .shop-card { padding: 12px 12px 14px; }
  .catgrid .shop-card .pthumb { margin-bottom: 10px; padding: 2px; border-radius: 0; }
  .catgrid .shop-card .sc-buy .button { font-size: .8rem; padding: 10px 10px; }
}

/* ===== Card processing fee disclosure (small) ===== */
.vytal-card-fee { font-size: .78rem; color: #7a8699; margin: 6px 0 0; line-height: 1.4; }
.vytal-card-fee strong { color: #57617a; }

/* ===== Shop category pills (mobile) — replaces the filter sidebar ===== */
.shop-catpills { display: none; }
@media (max-width: 900px) {
  .shop-catpills { display: flex; gap: 8px; overflow-x: auto; -webkit-overflow-scrolling: touch;
    scrollbar-width: none; padding: 2px 2px 14px; margin: 0 -4px 2px; }
  .shop-catpills::-webkit-scrollbar { display: none; }
  .shop-catpills .pill { flex: 0 0 auto; white-space: nowrap; border: 1px solid var(--border); background: #fff;
    color: #3a4665; border-radius: 999px; padding: 9px 16px; font-weight: 700; font-size: .85rem; text-decoration: none; }
  .shop-catpills .pill.on { background: var(--accent); color: #fff; border-color: var(--accent); }
  /* no filter sidebar or Filters button on mobile — pills only */
  .shop-side { display: none !important; }
  .filters-btn { display: none !important; }
}

/* ===== Footer social buttons ===== */
.footer-socials { display: flex; gap: 10px; margin-top: 16px; }
.footer-socials a { width: 38px; height: 38px; border-radius: 10px; display: flex; align-items: center; justify-content: center;
  background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.12); color: #cdd8f2; transition: background .15s, color .15s, border-color .15s; }
.footer-socials a:hover { background: var(--accent); color: #fff; border-color: var(--accent); }
.footer-socials svg { width: 18px; height: 18px; }

/* ===== Product page — Concept C buy-box ===== */
.pdp-buybox { background: linear-gradient(180deg,#ffffff,#f7faff); border: 1.5px solid #dbe6ff; border-radius: 16px; padding: 16px 16px 18px; margin: 14px 0; }
.pdp-buybox .pdp-topprice { font-family: Poppins, sans-serif; font-weight: 800; font-size: 1.5rem; color: #17253f; line-height: 1; margin-bottom: 2px; }
.pdp-buybox .pdp-topprice .woocommerce-Price-amount { color: var(--accent); }
.pdp-buybox .vytal-pay-note { margin: 5px 0 12px; font-size: .85rem; color: var(--muted); }
.pdp-buybox .vytal-pay-note strong { color: var(--accent); }
.pdp-buybox form.cart { margin: 0; }
.pdp-pills { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 16px 0 0; }
.pdp-pills span { display: inline-flex; align-items: center; gap: 8px; background: #f4f8ff; border: 1px solid #dbe6ff;
  border-radius: 10px; padding: 9px 12px; font-size: .74rem; font-weight: 700; color: #17253f; }
.pdp-pills span::before { content: "\2713"; display: inline-flex; align-items: center; justify-content: center;
  width: 16px; height: 16px; border-radius: 50%; background: var(--accent); color: #fff; font-weight: 800; font-size: .62rem; flex: none; }
.pdp-guarantee { display: flex; gap: 8px; align-items: center; background: #eefaf2; border: 1px solid #cde0d6; border-radius: 12px; padding: 10px 13px; font-size: .84rem; color: #14663f; margin-top: 10px; line-height: 1.4; }
.pdp-guarantee .pg-ic { font-size: 1rem; flex: none; }
.pdp-guarantee svg { width: 16px; height: 16px; flex: none; fill: none; stroke: #1c8a5b; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
/* Low-stock urgency inside the buy box */
.pdp-buybox .pdp-lowstock { display: flex; align-items: center; gap: 7px; color: #b23b1e; font-weight: 800; font-size: .86rem; margin: 4px 0 12px; }
.pdp-buybox .pdp-lowstock svg { width: 15px; height: 15px; flex: none; fill: #e5573d; }
/* Payment reassurance under Add to cart */
.pdp-assure { margin-top: 12px; }
.pdp-pay { display: flex; align-items: center; gap: 8px; justify-content: center; flex-wrap: wrap; color: var(--muted); font-size: .74rem; }
.pdp-pay span { font-weight: 700; }
.pdp-pay em { font-style: normal; font-weight: 800; color: #17253f; border: 1px solid var(--border); border-radius: 6px; padding: 3px 8px; font-size: .7rem; background: #fff; }

/* ===== Product page — "Stock up & save" tiles ===== */
.vstock { margin: 14px 0 4px; }
.vstock-head { font-size: .78rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: #17253f; margin: 0 0 10px; }
.vstock-head span { color: var(--muted); font-weight: 700; }
.vstock-tiles { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.vstock-tile { position: relative; display: flex; flex-direction: column; align-items: center; gap: 2px; text-align: center;
  background: #fff; border: 1.5px solid var(--border); border-radius: 14px; padding: 14px 8px 12px; cursor: pointer;
  transition: border-color .15s, box-shadow .15s, transform .15s; }
.vstock-tile:hover { border-color: var(--accent); box-shadow: 0 8px 20px rgba(47,92,255,.12); transform: translateY(-2px); }
.vstock-tile.vstock-best { border-color: var(--accent); }
.vstock-tag { position: absolute; top: -10px; left: 50%; transform: translateX(-50%); white-space: nowrap;
  background: var(--accent); color: #fff; font-size: .58rem; font-weight: 800; letter-spacing: .06em; padding: 3px 8px; border-radius: 999px; }
.vstock-q { font-size: .8rem; font-weight: 700; color: #3a4665; }
.vstock-total { font-family: Poppins, sans-serif; font-weight: 800; font-size: 1.05rem; color: #17253f; line-height: 1.1; }
.vstock-per { font-size: .68rem; color: var(--muted); }
.vstock-save { margin-top: 4px; background: #e7f6ec; color: #1c8a5b; font-size: .66rem; font-weight: 800; padding: 3px 8px; border-radius: 999px; }
.vstock-save.vstock-none { background: transparent; color: var(--muted); font-weight: 600; }
@media (max-width: 560px) { .vstock-tiles { grid-template-columns: 1fr 1fr; gap: 8px; } }

/* Hide the "In stock" availability text on product pages (keep out-of-stock notices) */
.single-product p.stock.in-stock,
.single-product .woocommerce-variation-availability p.stock.in-stock { display: none !important; }

/* Quantity stepper: - [ n ] + */
/* Force the stepper clickable even when the Min/Max Quantities plugin locks the field
   ("busy" -> pointer-events:none). Without this, real clicks pass straight through. */
.pdp-buybox .quantity.vqty,
.pdp-buybox .quantity.vqty.busy,
.pdp-buybox .quantity.vqty .vqty-btn,
.pdp-buybox .quantity.vqty input.qty { pointer-events: auto !important; }
.pdp-buybox .quantity.vqty.busy { opacity: 1 !important; }
.pdp-buybox .quantity.vqty { display: inline-flex !important; align-items: center; height: 48px; border: 1.5px solid var(--border); border-radius: 12px; overflow: hidden; background: #fff; vertical-align: middle; padding: 0 !important; }
.pdp-buybox .quantity.vqty input.qty { width: 48px !important; height: 46px !important; text-align: center; border: 0 !important; border-radius: 0 !important; background: transparent; font-weight: 800; font-size: 1.05rem; padding: 0 !important; margin: 0 !important; line-height: 46px; box-shadow: none !important; -moz-appearance: textfield; order: 2; }
.pdp-buybox .quantity.vqty input.qty:focus { outline: none; box-shadow: none !important; }
.pdp-buybox .quantity.vqty input.qty::-webkit-outer-spin-button,
.pdp-buybox .quantity.vqty input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.pdp-buybox .quantity.vqty .vqty-btn { border: 0 !important; background: #eaf1ff !important; color: var(--accent) !important; font-size: 1.4rem !important; font-weight: 800 !important; line-height: 1 !important; width: 44px !important; height: 46px !important; min-height: 46px !important; padding: 0 !important; margin: 0 !important; border-radius: 0 !important; cursor: pointer; display: flex !important; align-items: center; justify-content: center; box-sizing: border-box; opacity: 1 !important; flex: 0 0 auto; -webkit-tap-highlight-color: transparent; }
.pdp-buybox .quantity.vqty .vqty-minus { order: 1; border-right: 1px solid #dbe6ff !important; }
.pdp-buybox .quantity.vqty .vqty-plus { order: 3; border-left: 1px solid #dbe6ff !important; }
.pdp-buybox .quantity.vqty .vqty-btn:hover { background: #dbe7fb !important; }
.pdp-buybox .quantity.vqty .vqty-btn:active { background: #cddcff !important; }
/* hide the screen-reader label so it never affects the flex row */
.pdp-buybox .quantity.vqty label.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

/* Compact stock-up tiers below the buy box: 3 across, just count + discount */
.vstock-tiles { grid-template-columns: repeat(3, 1fr); }
.vstock-tile { padding: 10px 6px; border-radius: 12px; gap: 4px; }
.vstock-q { font-size: .82rem; font-weight: 800; color: #17253f; }
.vstock-save { margin-top: 2px; }
/* Highlight the tier the current quantity has reached */
.vstock-tile.vstock-sel { border-color: var(--accent); background: #eef3ff; box-shadow: 0 0 0 2px rgba(35,72,224,.18); transform: none; }
.vstock-tile.vstock-sel .vstock-save { background: var(--accent); color: #fff; }
@media (max-width: 560px) { .vstock-tiles { grid-template-columns: repeat(3, 1fr); gap: 7px; } }

/* ===== Welcome offer popup (20% off) — neon glow ===== */
.vpromo { position: fixed; inset: 0; z-index: 2147482000; display: none; align-items: center; justify-content: center; padding: 20px; }
.vpromo.open { display: flex; }
.vpromo-backdrop { position: absolute; inset: 0; background: rgba(6,11,24,.62); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.vpromo-card { position: relative; z-index: 1; width: 100%; max-width: 430px; border-radius: 24px; padding: 36px 30px 28px; text-align: center; overflow: hidden;
  background: radial-gradient(120% 120% at 70% 8%, #173a8f 0%, #0b1226 62%); box-shadow: 0 30px 80px rgba(0,0,0,.6); color: #fff; }
.vpromo-card::before { content: ""; position: absolute; inset: 0; pointer-events: none;
  background-image: linear-gradient(rgba(127,176,255,.08) 1px, transparent 1px), linear-gradient(90deg, rgba(127,176,255,.08) 1px, transparent 1px); background-size: 30px 30px; }
.vpromo-card > * { position: relative; }
.vpromo-x { position: absolute; top: 12px; right: 14px; width: 34px; height: 34px; border: 0; border-radius: 999px; background: rgba(255,255,255,.1); color: #cdd8f2; font-size: 1.3rem; line-height: 1; cursor: pointer; z-index: 2; }
.vpromo-x:hover { background: rgba(255,255,255,.2); }
.vpromo-kick { font-size: .7rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; color: #7fb0ff; }
.vpromo-big { font-family: Poppins, sans-serif; font-weight: 800; font-size: 3.6rem; line-height: .9; margin: 8px 0 0;
  background: linear-gradient(90deg,#7fb0ff,#57d6ff,#a99bff,#57d6ff,#7fb0ff,#cde8ff); background-size: 220% auto;
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: transparent;
  filter: drop-shadow(0 0 18px rgba(90,200,255,.45)); animation: vytalHolo 5s linear infinite; }
.vpromo-big small { display: block; font-family: Inter, sans-serif; font-size: 1.05rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase;
  color: #dbe8ff; -webkit-text-fill-color: #dbe8ff; filter: none; margin-top: 4px; }
.vpromo-sub { color: #c4d0e6; font-size: .9rem; line-height: 1.55; margin: 12px auto 16px; max-width: 32ch; }
.vpromo-form { display: flex; flex-direction: column; gap: 10px; }
.vpromo-form input { width: 100%; border: 1.5px solid rgba(255,255,255,.18); background: rgba(255,255,255,.06); color: #fff; border-radius: 12px; padding: 14px 16px; font-size: 1rem; text-align: center; }
.vpromo-form input::placeholder { color: #8ea3c8; }
.vpromo-form input:focus { border-color: #7fb0ff; outline: none; box-shadow: 0 0 0 3px rgba(127,176,255,.25); }
.vpromo-btn { border: 0; border-radius: 999px; padding: 14px; font-weight: 800; font-size: 1rem; color: #fff; cursor: pointer;
  background: linear-gradient(90deg,#2f5cff,#23b3d6); background-size: 200% auto; box-shadow: 0 12px 30px rgba(47,92,255,.5); animation: vytalHolo 6s linear infinite; }
.vpromo-fine { font-size: .72rem; color: #8ea3c8; margin: 12px 0 6px; }
.vpromo-skip { border: 0; background: transparent; color: #8ea3c8; font-size: .82rem; cursor: pointer; text-decoration: underline; }
.vpromo-check { width: 54px; height: 54px; border-radius: 999px; background: rgba(36,227,200,.18); color: #4ff0cf; font-size: 1.7rem; display: flex; align-items: center; justify-content: center; margin: 4px auto 12px; }
.vpromo-code { border: 2px dashed #7fb0ff; color: #fff; font-family: Poppins, sans-serif; font-weight: 800; letter-spacing: .1em; font-size: 1.4rem; border-radius: 12px; padding: 14px; margin: 8px auto 16px; cursor: pointer; background: rgba(127,176,255,.08); }
.vpromo-shop { display: inline-block; background: #fff; color: #12408f; font-weight: 800; border-radius: 999px; padding: 12px 24px; text-decoration: none; }
@media (prefers-reduced-motion: reduce) { .vpromo-big, .vpromo-btn { animation: none; } }
@media (max-width: 480px) { .vpromo-card { padding: 32px 22px 24px; } .vpromo-big { font-size: 3rem; } }

/* ===== Neutralize legacy "Testing in progress" overlay (was in Customizer > Additional CSS) ===== */
a.shop-card[href*="/ghk-cu/"] .pthumb::after,
a.shop-card[href*="tb-500-10mg"] .pthumb::after,
a.shop-card[href*="wolverine"] .pthumb::after,
a.pthumb[href*="/ghk-cu/"]::after,
a.pthumb[href*="tb-500-10mg"]::after,
a.pthumb[href*="wolverine"]::after,
.testing-overlay,
.testing-chip {
  content: none !important;
  background: none !important;
  display: none !important;
}

/* ===== About page: suggested product card (v273) ===== */
.ab-sugg{padding:0 0 8px;margin-top:-24px}
.ab-sugg-lab{font-size:.72rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#5b6b88;margin-bottom:12px}
.ab-sugg-card{display:flex;align-items:center;gap:22px;text-decoration:none;color:#0f1a33;
  border:1px solid #e5ebf5;border-radius:18px;padding:18px;background:linear-gradient(180deg,#fbfdff,#fff);
  box-shadow:0 18px 44px -34px rgba(15,26,51,.5);transition:box-shadow .18s ease,transform .18s ease}
.ab-sugg-card:hover{box-shadow:0 22px 52px -30px rgba(27,58,143,.55);transform:translateY(-2px)}
.ab-sugg-thumb{position:relative;width:104px;height:104px;flex:none;border-radius:14px;overflow:hidden;background:#eef3fb;display:flex;align-items:center;justify-content:center}
.ab-sugg-thumb img{width:100%;height:100%;object-fit:cover}
.ab-sugg-info{flex:1;min-width:180px;display:flex;flex-direction:column;gap:5px}
.ab-sugg-name{font-family:Poppins,sans-serif;font-weight:800;font-size:1.18rem;line-height:1.1}
.ab-sugg-desc{color:#5b6b88;font-size:.88rem;line-height:1.45}
.ab-sugg-price{font-weight:800;font-size:1.05rem;color:#0f1a33;margin-top:2px}
.ab-sugg-price del{color:#9fb0c8;font-weight:600;font-size:.85rem;margin-left:6px}
.ab-sugg-price ins{text-decoration:none}
.ab-sugg-btn{flex:none;display:inline-flex;align-items:center;gap:8px;background:linear-gradient(135deg,#2b56d6,#3f6bff);
  color:#fff;font-weight:800;font-size:.92rem;border-radius:999px;padding:12px 22px;white-space:nowrap}
@media(max-width:640px){
  .ab-sugg-card{flex-direction:column;text-align:center}
  .ab-sugg-info{min-width:0;align-items:center}
  .ab-sugg-btn{width:100%;justify-content:center}
}

/* About suggested card: clean badge pill (v274) */
.ab-sugg-badge{display:inline-block;align-self:flex-start;background:#eafff2;color:#0b7a45;font-weight:800;font-size:.66rem;letter-spacing:.06em;text-transform:uppercase;padding:4px 10px;border-radius:999px}
@media(max-width:640px){.ab-sugg-badge{align-self:center}}

/* About hero: small "Browse catalog" button next to the eyebrow (v276) */
.ab2-eyerow{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.ab2-ey-btn{display:inline-flex;align-items:center;gap:6px;background:#2b56d6;color:#fff;text-decoration:none;font-weight:800;font-size:.76rem;letter-spacing:.02em;padding:7px 14px;border-radius:999px;line-height:1;transition:background .16s ease,transform .16s ease}
.ab2-ey-btn:hover{background:#1b3a8f;transform:translateY(-1px)}

/* ===== About hero: bold blue band (Concept 2) v277 ===== */
.ab2-hero--band{background:linear-gradient(150deg,#0f1a33,#1b3a8f 62%,#274fbf);color:#fff;padding:44px 0 46px;margin-top:0}
.ab2-hero--band .ey{color:#9ec0ff}
.ab2-hero--band .ab2-ey-btn{background:#fff;color:#1b3a8f}
.ab2-hero--band .ab2-ey-btn:hover{background:#eaf1ff;color:#1b3a8f}
.ab2-hero--band h1{color:#fff}
.ab2-hero--band h1 .mut{color:#7fc4ff}
.ab2-hero--band .lead{color:#d3ddf3}
.ab2-statcards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:34px;max-width:560px}
.ab2-statcards .sc{background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.16);border-radius:14px;padding:18px 12px;text-align:center}
.ab2-statcards .sc .n{font-family:Poppins,sans-serif;font-weight:800;font-size:1.7rem;line-height:1;color:#fff}
.ab2-statcards .sc .l{font-size:.66rem;letter-spacing:.06em;text-transform:uppercase;color:#aebfe0;margin-top:7px}
.ab2-hero--band + .ab-sugg{margin-top:0;padding-top:26px}
@media (max-width:600px){
  .ab2-hero--band{padding:30px 0 30px}
  .ab2-statcards{gap:8px;margin-top:24px}
  .ab2-statcards .sc{padding:14px 8px}
  .ab2-statcards .sc .n{font-size:1.35rem}
  .ab2-statcards .sc .l{font-size:.58rem}
}



/* ===== Homepage testimonials (v286) ===== */
.testimonials{padding:72px 0;background:#f7f9fc}
.vt-head{text-align:center;max-width:680px;margin:0 auto 40px}
.vt-eyebrow{display:block;color:#2348E0;font-weight:800;font-size:.76rem;letter-spacing:.16em;text-transform:uppercase;margin-bottom:12px}
.vt-title{color:#14213E;font-family:Poppins,sans-serif;font-weight:800;font-size:clamp(1.8rem,4vw,2.6rem);line-height:1.05;letter-spacing:-.02em;margin:0 0 16px}
.vt-rating{display:inline-flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:center}
.vt-stars{color:#2348E0;letter-spacing:2px;font-size:1.05rem;line-height:1}
.vt-rating-txt{color:#5b6b88;font-size:.95rem}
.vt-rating-txt b{color:#14213E}
.vt-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.vt-card{margin:0;background:#fff;border:1px solid #e7ebf3;border-radius:16px;padding:26px 24px;box-shadow:0 18px 44px -34px rgba(20,33,62,.45);display:flex;flex-direction:column;gap:14px}
.vt-card .vt-stars{font-size:1rem}
.vt-quote{margin:0;color:#2b3652;font-size:1rem;line-height:1.6;flex:1}
.vt-cite{display:flex;flex-direction:column;gap:2px;border-top:1px solid #eef1f7;padding-top:14px}
.vt-name{font-weight:800;color:#14213E;font-size:.95rem}
.vt-role{color:#8792a8;font-size:.82rem}
.vt-trustbar{text-align:center;margin-top:38px;color:#5b6b88;font-weight:700;font-size:.86rem;letter-spacing:.02em}
@media(max-width:860px){
  .vt-grid{grid-template-columns:1fr;gap:16px}
  .testimonials{padding:52px 0}
}

/* our card replaces the default "Returning customer?" toggle line */
.woocommerce-checkout .woocommerce-form-login-toggle{display:none}
@media(max-width:600px){.vytal-guest{padding:18px}}



/* PDP top price: quantity/tier note (v297) */
.pdp-total-note{display:block;margin-top:4px;font-size:.78rem;font-weight:700;color:#0b7a45;letter-spacing:.01em}

/* ===== Build a Box (v298) ===== */
.bab-hero{background:linear-gradient(180deg,#f4f6fb,#fff);padding:52px 0 26px;text-align:center}
.bab-eyebrow{display:inline-block;background:#eaf0ff;color:#2348E0;font-weight:800;font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;padding:7px 14px;border-radius:999px;margin-bottom:16px}
.bab-hero h1{font-family:Inter,system-ui,sans-serif;font-weight:800;font-size:clamp(2rem,5vw,3.2rem);line-height:1.03;letter-spacing:-.03em;color:#14213E;margin:0 0 14px}
.bab-hero h1 .accent{color:#2348E0}
.bab-lead{max-width:620px;margin:0 auto 22px;color:#5b6b88;font-size:1.05rem;line-height:1.6}
.bab-perks{display:flex;justify-content:center;gap:14px;flex-wrap:wrap}
.bab-perk{display:flex;flex-direction:column;background:#fff;border:1px solid #e7ebf3;border-radius:12px;padding:12px 18px;min-width:150px}
.bab-perk .n{font-weight:800;font-size:1.3rem;color:#2348E0}
.bab-perk .l{font-size:.78rem;color:#5b6b88;margin-top:2px;line-height:1.35}

.bab-main{padding:30px 0 70px}
.bab-layout{display:grid;grid-template-columns:1fr 340px;gap:28px;align-items:start}
.bab-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.bab-card{background:#fff;border:1px solid #e7ebf3;border-radius:16px;padding:14px;display:flex;flex-direction:column;box-shadow:0 14px 40px -34px rgba(20,33,62,.4)}
.bab-thumb{position:relative;background:#f4f6fb;border-radius:11px;aspect-ratio:1/1;overflow:hidden;margin-bottom:10px;display:flex;align-items:center;justify-content:center}
.bab-thumb img{width:100%;height:100%;object-fit:cover}
.bab-coa{position:absolute;top:8px;left:8px;background:rgba(20,33,62,.86);color:#fff;font-size:.6rem;font-weight:800;letter-spacing:.04em;padding:4px 8px;border-radius:999px}
.bab-card h3{margin:0 0 8px;font-size:1rem;color:#14213E}
.bab-size{width:100%;margin-bottom:10px;padding:9px 10px;border:1px solid #e7ebf3;border-radius:9px;font-size:.85rem;font-family:inherit;background:#fff}
.bab-price{display:flex;align-items:baseline;gap:6px;margin-bottom:12px;flex-wrap:wrap}
.bab-inbox{font-weight:800;font-size:1.15rem;color:#14213E}
.bab-retail{color:#9aa6bd;font-size:.85rem}
.bab-inbox-lbl{font-size:.7rem;color:#0b7a45;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.bab-add{margin-top:auto;border:1.5px solid #2348E0;background:#eaf0ff;color:#2348E0;font-weight:800;font-size:.9rem;font-family:inherit;border-radius:10px;padding:11px;cursor:pointer;transition:background .15s ease,color .15s ease}
.bab-add:hover{background:#2348E0;color:#fff}

.bab-summary{position:sticky;top:100px}
.bab-sum-card{background:#fff;border:1px solid #e7ebf3;border-radius:18px;padding:22px;box-shadow:0 20px 50px -34px rgba(20,33,62,.5)}
.bab-sum-head{display:flex;justify-content:space-between;align-items:baseline;font-weight:800;font-size:1.05rem;color:#14213E;margin-bottom:14px}
.bab-sum-head span{font-size:.8rem;font-weight:700;color:#2348E0}
.bab-slots{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}
.bab-slot{border:1.5px dashed #d7deec;border-radius:11px;padding:11px 13px;display:flex;align-items:center;justify-content:space-between;min-height:46px}
.bab-slot.filled{border-style:solid;border-color:#e7ebf3;background:#f8fafd}
.bab-slot-e{color:#9aa6bd;font-size:.85rem}
.bab-slot-t{font-size:.86rem;font-weight:700;color:#14213E}
.bab-slot-t em{font-style:normal;color:#5b6b88;font-weight:600}
.bab-slot-p{font-weight:800;font-size:.86rem;color:#14213E;margin-left:auto;padding:0 8px}
.bab-remove{border:0;background:none;color:#9aa6bd;font-size:1.2rem;line-height:1;cursor:pointer}
.bab-remove:hover{color:#e23a3a}
.bab-gift{display:flex;justify-content:space-between;align-items:center;background:#f0f7f2;border:1px solid #cdebd8;border-radius:11px;padding:10px 13px;margin-bottom:12px;font-size:.84rem;font-weight:700;color:#0b7a45}
.bab-gift-price del{color:#9aa6bd;font-weight:600;margin-right:5px}
.bab-lines{border-top:1px solid #eef1f7;padding-top:12px;margin-bottom:8px;display:flex;flex-direction:column;gap:7px}
.bab-line{display:flex;justify-content:space-between;font-size:.85rem;color:#5b6b88}
.bab-total{display:flex;justify-content:space-between;font-weight:800;font-size:1.15rem;color:#14213E;border-top:1px solid #eef1f7;padding-top:12px;margin-bottom:14px}
.bab-start{width:100%;border:0;border-radius:12px;padding:15px;font-weight:800;font-size:1rem;font-family:inherit;color:#fff;background:linear-gradient(135deg,#2348E0,#3f6bff);cursor:pointer;transition:filter .15s ease}
.bab-start:hover:not(:disabled){filter:brightness(1.07)}
.bab-start:disabled{opacity:.5;cursor:not-allowed;background:#9aa6bd}
.bab-start.bab-flash{animation:babflash .4s ease}
@keyframes babflash{0%,100%{transform:translateX(0)}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}
.bab-fine{color:#9aa6bd;font-size:.72rem;line-height:1.45;margin:12px 0 0}
@media(max-width:980px){.bab-grid{grid-template-columns:repeat(2,1fr)}.bab-layout{grid-template-columns:1fr}.bab-summary{position:static}}
@media(max-width:520px){.bab-grid{grid-template-columns:1fr 1fr}.bab-card h3{font-size:.9rem}}

/* ===== Product page: best-sellers carousel (v299) ===== */
.vbest{grid-column:1 / -1;width:100%;max-width:100%;margin:40px 0;overflow:hidden;clear:both}
.vbest>.wrap{overflow:hidden;max-width:1200px;margin:0 auto;padding:0 20px}
.vbest *{box-sizing:border-box}
.vbest-track{max-width:100%;scroll-behavior:smooth}
.vbest-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:18px}
.vbest-kick{display:block;color:#2348E0;font-weight:800;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;margin-bottom:6px}
.vbest-head h2{font-family:Inter,system-ui,sans-serif;font-weight:800;font-size:clamp(1.5rem,3vw,2rem);letter-spacing:-.02em;color:#14213E;margin:0}
.vbest-nav{display:flex;gap:8px;flex:none}
.vbest-arrow{width:48px;height:48px;border-radius:50%;border:2px solid #14213E;background:#fff;color:#14213E;font-size:1.5rem;font-weight:700;line-height:1;cursor:pointer;box-shadow:0 6px 16px -8px rgba(20,33,62,.5);transition:background .15s ease,color .15s ease,transform .1s ease}
.vbest-arrow:hover{background:#2348E0;color:#fff;border-color:#2348E0}
.vbest-arrow:active{transform:scale(.94)}
.vbest-track{display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;-ms-overflow-style:none;scrollbar-width:none;padding-bottom:6px}
.vbest-track::-webkit-scrollbar{display:none}
.vbest-card{flex:0 0 285px;scroll-snap-align:start;background:#fff;border:1px solid #e7ebf3;border-radius:18px;padding:14px;display:flex;flex-direction:column;box-shadow:0 14px 40px -30px rgba(20,33,62,.45)}
.vbest-thumb{position:relative;background:#f4f6fb;border-radius:12px;aspect-ratio:1/1;overflow:hidden;margin-bottom:12px}
.vbest-imglink{display:block;width:100%;height:100%}
.vbest-thumb img{width:100%;height:100%;object-fit:cover}
.vbest-coa{position:absolute;bottom:8px;left:8px;background:rgba(255,255,255,.94);color:#0b7a45;font-size:.66rem;font-weight:800;letter-spacing:.02em;padding:5px 9px;border-radius:999px;text-decoration:none;box-shadow:0 2px 8px -3px rgba(20,33,62,.4)}
.vbest-name{display:block;font-weight:700;font-size:.98rem;color:#14213E;text-decoration:none;margin-bottom:4px}
.vbest-name:hover{color:#2348E0}
.vbest-price{font-weight:800;color:#14213E;font-size:.95rem;margin-bottom:12px}
.vbest-price del{color:#9aa6bd;font-weight:600;font-size:.82rem;margin-right:4px}
.vbest-price ins{text-decoration:none}
.vbest-add{margin-top:auto;display:block;text-align:center;background:#14213E;color:#fff;font-weight:800;font-size:.95rem;font-family:inherit;border:0;border-radius:999px;padding:14px;text-decoration:none;cursor:pointer;transition:background .15s ease}
.vbest-add:hover{background:#2348E0;color:#fff}
.vbest-add.added{background:#0b7a45}
@media(max-width:600px){.vbest-card{flex-basis:230px}.vbest-head h2{font-size:1.4rem}}

/* ===== Homepage: Build a Box section (v306) ===== */
.home-bab{padding:0}
.home-bab>.wrap{max-width:none;padding:0;width:100%}
.home-bab-card{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center;background:#fff;border-radius:0;padding:64px 7vw;color:#14213E;overflow:hidden;border-top:1px solid #e7ebf3}
.home-bab-copy{max-width:560px;margin-left:auto}
.home-bab-visual{max-width:560px}
.home-bab-kick{display:inline-block;background:#eaf0ff;color:#2348E0;font-weight:800;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;padding:6px 13px;border-radius:999px;margin-bottom:14px}
.home-bab-copy h2{font-family:Inter,system-ui,sans-serif;font-weight:800;font-size:clamp(1.8rem,4vw,2.6rem);line-height:1.05;letter-spacing:-.02em;color:#14213E;margin:0 0 12px}
.home-bab-copy h2 .accent{color:#2348E0}
.home-bab-copy p{color:#5b6b88;font-size:1rem;line-height:1.6;max-width:52ch;margin:0 0 16px}
.home-bab-feats{display:flex;flex-direction:column;gap:7px;margin-bottom:22px}
.home-bab-feats span{color:#14213E;font-size:.92rem;font-weight:600}
.home-bab .btn-primary{background:linear-gradient(135deg,#2348E0,#3f6bff);color:#fff}
.home-bab-visual{position:relative}
.home-bab-visual img{width:100%;height:auto;display:block;border-radius:16px;box-shadow:0 24px 60px -24px rgba(0,0,0,.55)}
@media(max-width:820px){
  .home-bab-card{grid-template-columns:1fr;padding:30px 24px;gap:24px}
  .home-bab-visual{max-width:420px;margin:0 auto}
}

/* Nav "New" badge (v312) */
.nav-links a.nav-hasbadge{position:relative;display:inline-flex;align-items:center;gap:6px}
.nav-new{display:inline-block;background:#2348E0;color:#fff;font-size:.58rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;padding:2px 6px;border-radius:999px;line-height:1.4;vertical-align:top}

/* ===== VYTAL Points (v314) ===== */
.vytal-points{margin:18px 0;background:#f7f9fc;border:1px solid #e7ebf3;border-left:4px solid #2348E0;border-radius:12px;padding:14px 16px}
.vytal-points--guest{color:#5b6b88;font-size:.9rem}
.vytal-points--guest a{color:#2348E0;font-weight:700;text-decoration:none}
.vytal-points .vp-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.vytal-points .vp-ic{color:#2348E0;font-size:1rem}
.vytal-points .vp-bal{color:#14213E;font-size:.95rem}
.vytal-points .vp-btn{margin-left:auto;border-radius:999px;padding:9px 16px;font-weight:800;font-size:.85rem;text-decoration:none}
.vytal-points .vp-on{background:linear-gradient(135deg,#2348E0,#3f6bff);color:#fff}
.vytal-points .vp-off{background:#eef2f8;color:#5b6b88;border:1px solid #d7deec}
.vytal-points .vp-sub{color:#8792a8;font-size:.78rem;margin-top:6px}
.vytal-points-card{background:linear-gradient(135deg,#14213E,#2348E0);color:#fff;border-radius:14px;padding:20px 22px;margin:0 0 22px}
.vytal-points-card .vpc-bal{font-family:Inter,system-ui,sans-serif;font-weight:800;font-size:2rem;line-height:1}
.vytal-points-card .vpc-bal span{font-size:.95rem;font-weight:700;color:#bcd2ff}
.vytal-points-card .vpc-val{color:#cdd8f5;font-size:.85rem;margin-top:6px}

/* ===== Membership page (v315) ===== */
.mem-hero{background:linear-gradient(180deg,#f4f6fb,#fff);padding:56px 0 26px;text-align:center}
.mem-eyebrow{display:inline-block;background:#eaf0ff;color:#2348E0;font-weight:800;font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;padding:7px 14px;border-radius:999px;margin-bottom:16px}
.mem-hero h1{font-family:Inter,system-ui,sans-serif;font-weight:800;font-size:clamp(2rem,5vw,3.2rem);line-height:1.03;letter-spacing:-.03em;color:#14213E;margin:0 0 14px}
.mem-hero h1 .accent{color:#2348E0}
.mem-lead{max-width:640px;margin:0 auto 24px;color:#5b6b88;font-size:1.05rem;line-height:1.6}
.mem-toggle{display:inline-flex;background:#eef2f8;border:1px solid #e0e7f3;border-radius:999px;padding:5px;gap:2px}
.mem-toggle button{border:0;background:transparent;font-family:inherit;font-weight:800;font-size:.95rem;color:#5b6b88;padding:11px 24px;border-radius:999px;cursor:pointer;display:inline-flex;align-items:center;gap:8px}
.mem-toggle button.on{background:#2348E0;color:#fff}
.mem-toggle .save{background:#e7f7ee;color:#0b7a45;font-size:.68rem;font-weight:800;padding:3px 8px;border-radius:999px;text-transform:uppercase;letter-spacing:.04em}
.mem-toggle button.on .save{background:rgba(255,255,255,.22);color:#fff}

.mem-plans{padding:30px 0 24px}
.mem-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;align-items:start}
.mem-card{position:relative;background:#fff;border:1px solid #e7ebf3;border-radius:18px;padding:20px;box-shadow:0 18px 48px -34px rgba(20,33,62,.4)}
.mem-card--pop{border:2px solid #2348E0;box-shadow:0 30px 64px -30px rgba(35,72,224,.5)}
.mem-card--dark{background:#14213E;color:#fff;border:0}
.mem-pop{position:absolute;top:-13px;left:50%;transform:translateX(-50%);background:linear-gradient(135deg,#2348E0,#3f6bff);color:#fff;font-weight:800;font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;padding:6px 14px;border-radius:999px;white-space:nowrap}

/* membership "card" visual */
.mc-card{position:relative;border-radius:14px;padding:16px;margin-bottom:16px;min-height:130px;display:flex;flex-direction:column;color:#14213E;overflow:hidden}
.mc-card--member{background:linear-gradient(135deg,#eef1f6,#dfe4ee)}
.mc-card--insider{background:linear-gradient(135deg,#e9edf3,#c2ccda);color:#1a2740}
.mc-card--vip{background:linear-gradient(135deg,#2348E0,#3f6bff);color:#fff}
.mc-card--founder{background:linear-gradient(135deg,#0c1327,#1b2b52);color:#fff;border:1px solid rgba(255,255,255,.12)}
.mc-logo{display:flex;align-items:center;gap:6px;font-family:Poppins,sans-serif;font-weight:800;font-size:.9rem;letter-spacing:.02em}
.mc-logo svg{width:16px;height:16px}
.mc-logo b{font-weight:800}
.mc-logo i{font-style:normal;font-weight:600;font-size:.5rem;letter-spacing:.32em;opacity:.75;align-self:center}
.mc-mult{position:absolute;top:14px;right:16px;font-family:Inter,sans-serif;font-weight:800;font-size:1.5rem}
.mc-name{margin-top:auto;font-family:Inter,sans-serif;font-weight:800;font-size:1.35rem;letter-spacing:.02em}
.mc-rate{font-size:.62rem;letter-spacing:.06em;text-transform:uppercase;opacity:.8;margin-top:2px}

.mem-price{display:flex;align-items:baseline;gap:2px;margin-bottom:4px}
.mem-price .cur{font-weight:800;font-size:1.3rem}
.mem-price .amt{font-family:Inter,system-ui,sans-serif;font-weight:800;font-size:2.3rem;line-height:1;letter-spacing:-.02em}
.mem-price .per{color:#8792a8;font-weight:700;font-size:.85rem}
.mem-card--dark .mem-price .per{color:#aebbd8}
.mem-note{color:#8792a8;font-size:.8rem;margin-bottom:16px}
.mem-card--dark .mem-note{color:#aebbd8}
.mem-btn{display:block;width:100%;text-align:center;border:0;border-radius:12px;padding:13px;font-weight:800;font-size:.95rem;font-family:inherit;text-decoration:none;cursor:pointer;margin-bottom:18px}
.mem-btn-primary{background:linear-gradient(135deg,#2348E0,#3f6bff);color:#fff}
.mem-btn-ghost{background:#f4f6fb;color:#14213E;border:1.5px solid #e0e7f3}
.mem-btn-light{background:#fff;color:#14213E}
.mem-feats-head{font-size:.68rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#8792a8;margin-bottom:10px;padding-bottom:10px;border-bottom:1px solid #eef1f7}
.mem-card--dark .mem-feats-head{color:#aebbd8;border-color:rgba(255,255,255,.14)}
.mem-feats{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}
.mem-feats li{position:relative;padding-left:24px;font-size:.88rem;line-height:1.45;color:#2b3652}
.mem-card--dark .mem-feats li{color:#dbe3f5}
.mem-feats li:before{content:"";position:absolute;left:0;top:2px;width:16px;height:16px;border-radius:50%;background:#eaf0ff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%232348E0' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center/10px no-repeat}
.mem-card--dark .mem-feats li:before{background-color:rgba(143,176,255,.2)}

.mem-how{padding:52px 0;background:#f4f6fb}
.mem-how h2,.mem-cta h2{text-align:center;font-family:Inter,system-ui,sans-serif;font-weight:800;font-size:clamp(1.6rem,3.5vw,2.2rem);color:#14213E;letter-spacing:-.02em;margin:0 0 34px}
.mem-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.mem-step{background:#fff;border:1px solid #e7ebf3;border-radius:16px;padding:24px}
.mem-step .n{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:10px;background:#2348E0;color:#fff;font-weight:800;margin-bottom:12px}
.mem-step h3{margin:0 0 6px;font-size:1.05rem;color:#14213E}
.mem-step p{margin:0;color:#5b6b88;font-size:.9rem;line-height:1.55}
.mem-cta{padding:60px 0;text-align:center;background:linear-gradient(135deg,#14213E,#2348E0);color:#fff}
.mem-cta h2{color:#fff}.mem-cta p{color:#cdd8f5;margin:0 0 22px}
.mem-btn-lg{display:inline-block;width:auto;padding:15px 34px;margin:0 auto;background:#fff;color:#14213E}
.mem-fine{color:#9fb0d8;font-size:.76rem;max-width:560px;margin:20px auto 0;line-height:1.5}
@media(max-width:980px){.mem-grid{grid-template-columns:1fr 1fr}.mem-steps{grid-template-columns:1fr}}
@media(max-width:560px){.mem-grid{grid-template-columns:1fr}}

/* Checkout card-load note (v318) */
.vytal-card-wait{display:flex;align-items:center;gap:7px;background:#f4f6fb;border:1px solid #e0e7f3;border-radius:10px;padding:9px 12px;margin:0 0 14px;color:#5b6b88;font-size:.82rem;line-height:1.4}
.vytal-card-wait:before{content:"\23F1";font-size:.95rem}

/* ===== Top announcement bar: 20% off + timer (v325) ===== */
.vytal-topbar{background:#2348E0;color:#fff}
.vytal-topbar .vt-in{display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap;padding:7px 20px;text-align:center}
.vytal-topbar .vt-offer{font-size:.8rem;font-weight:700;letter-spacing:.01em}
.vytal-topbar .vt-offer b{font-weight:800}
.vytal-topbar .vt-clock{font-size:.78rem;font-weight:700;color:#dbe6ff}
.vytal-topbar .vt-clock b{color:#fff;font-family:ui-monospace,Menlo,monospace;font-weight:800;font-variant-numeric:tabular-nums}
@media(max-width:600px){
  .vytal-topbar .vt-in{gap:8px;padding:6px 12px}
  .vytal-topbar .vt-offer{font-size:.68rem}
  .vytal-topbar .vt-clock{font-size:.66rem}
}

/* About: opening mission line (v326) */
.ab2-body .ab2-intro{font-size:1.2rem;line-height:1.6;color:#14213E;font-weight:600;margin:0 0 22px;padding-bottom:20px;border-bottom:1px solid var(--border)}


/* US flag on the 7x stat card (v332) */
.ab2-statcards .us-flag{display:inline-block;width:20px;height:11px;border-radius:2px;vertical-align:-1px;margin-right:5px;box-shadow:0 0 0 1px rgba(255,255,255,.25)}

/* ===== About hero: white variant (v333) ===== */
.ab2-hero--white{background:#fff;padding:60px 0 30px;border-bottom:1px solid var(--border)}
.ab2-hero--white .ey{color:#2348E0}
.ab2-hero--white .ab2-ey-btn{background:#2348E0;color:#fff}
.ab2-hero--white .ab2-ey-btn:hover{background:#1b3a8f;color:#fff}
.ab2-hero--white h1{color:#14213E}
.ab2-hero--white h1 .mut{color:#2348E0}
.ab2-hero--white .lead{color:#5b6b88}
.ab2-hero--white .ab2-statcards .sc{background:#f7f9fc;border:1px solid #e7ebf3}
.ab2-hero--white .ab2-statcards .sc .n{color:#14213E}
.ab2-hero--white .ab2-statcards .sc .l{color:#5b6b88}
.ab2-hero--white .us-flag{box-shadow:0 0 0 1px rgba(20,33,62,.12)}
.ab2-hero--white + .ab-sugg{margin-top:0;padding-top:26px}

/* About stat band: 4 across (v333) */
.ab2-statcards--4{grid-template-columns:repeat(4,1fr);max-width:840px}
@media(max-width:720px){ .ab2-statcards--4{grid-template-columns:1fr 1fr} }
