
/* =========================================================
   RESET / BASE
   ========================================================= */
*, *::before, *::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; overflow-x:hidden; }
body{
  margin:0;
  background:linear-gradient(165deg, #DCEEF7 0%, #E7F3F8 22%, #F1F8FA 48%, #F6FAFB 75%, #F6FAFB 100%);
  background-attachment:fixed;
  color:var(--nova-ink);
  font-family:'IBM Plex Sans', sans-serif;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ color:inherit; }
ul{ margin:0; padding:0; }
button{ font-family:inherit; cursor:pointer; }
h1,h2,h3,h4{ font-family:'Space Grotesk', sans-serif; letter-spacing:-0.01em; margin:0; }

:root{
  --nova-bg:#F5FAFB;
  --nova-panel:#FFFFFF;
  --nova-ink:#10232C;
  --nova-ink-soft:#54707A;
  --nova-navy:#0D2A3B;
  --nova-navy-2:#123A50;
  --nova-teal:#2F6FED;
  --nova-teal-dark:#1D4FC4;
  --nova-line:#D7E6EA;
  --nova-line-strong:#B9CFD6;
  --nova-amber:#E2A24B;
  --nova-maxw:1240px;
}

.nova-wrap{ max-width:var(--nova-maxw); margin:0 auto; padding:0 32px; }
.nova-btn{
  display:inline-flex; align-items:center; gap:8px;
  padding:13px 24px; font-size:14.5px; font-weight:600;
  border-radius:10px; border:1px solid transparent; text-decoration:none;
  transition:transform .15s ease, box-shadow .15s ease, background .15s ease;
}
.nova-btn-primary{ background:var(--nova-navy); color:#F5FAFB; }
.nova-btn-primary:hover{ background:var(--nova-teal-dark); color:#fff; transform:translateY(-1px); }
.nova-btn-ghost{ border-color:var(--nova-line-strong); color:var(--nova-navy); background:transparent; }
.nova-btn-ghost:hover{ border-color:var(--nova-navy); }
.nova-btn-ghost-dark{ border-color:rgba(255,255,255,0.35); color:#EAF6F5; }
.nova-btn-ghost-dark:hover{ border-color:#fff; }

/* =========================================================
   CORE BLOCK COMPATIBILITY — the homepage/About/FAQ content is
   now built from real WordPress blocks (Buttons, Image, Details)
   instead of custom markup. These rules make core blocks with our
   className applied render with the exact same visual result the
   original hand-written HTML did.
   ========================================================= */
.wp-block-button.nova-btn-primary .wp-block-button__link{
  background:var(--nova-navy); color:#F5FAFB; border-radius:10px;
  padding:13px 24px; font-size:14.5px; font-weight:600; text-decoration:none;
  display:inline-flex; align-items:center; gap:8px;
}
.wp-block-button.nova-btn-primary .wp-block-button__link:hover{ background:var(--nova-teal-dark); color:#fff; }
.wp-block-button.nova-btn-ghost .wp-block-button__link{
  border:1px solid var(--nova-line-strong); color:var(--nova-navy); background:transparent;
  border-radius:10px; padding:13px 24px; font-size:14.5px; font-weight:600; text-decoration:none;
}
.wp-block-button.nova-btn-ghost .wp-block-button__link:hover{ border-color:var(--nova-navy); }
.wp-block-button.nova-btn-ghost-dark .wp-block-button__link{
  border:1px solid rgba(255,255,255,0.35); color:#EAF6F5; background:transparent;
  border-radius:10px; padding:13px 24px; font-size:14.5px; font-weight:600; text-decoration:none;
}
.wp-block-button.nova-btn-ghost-dark .wp-block-button__link:hover{ border-color:#fff; }
.wp-block-buttons.nova-hero-ctas, .wp-block-buttons.nova-community-ctas{ gap:14px; margin:0; }

/* Image blocks used for the floating bottles — position/size per spot */
.wp-block-image.nova-floating-bottle{ margin:0 !important; }
.wp-block-image.nova-floating-bottle img{ border-radius:0; }
.nova-bottle-hero-1{ --rot:9deg; width:448px; top:-30%; right:-14%; }
.nova-bottle-hero-2{ --rot:-10deg; width:760px; top:14%; right:-38%; }
.nova-bottle-bestsellers{ --rot:6deg; width:78px; top:8%; right:4%; }
.nova-bottle-bundles{ --rot:7deg; width:82px; top:4%; right:5%; }
.nova-bottle-community{ --rot:-4deg; width:80px; top:-8px; right:10%; filter:drop-shadow(0 16px 20px rgba(0,0,0,0.35)); }

/* Eyebrow dot — generated via CSS instead of a nested <span>, so the
   eyebrow can be a plain, fully-editable Paragraph block. */
.nova-eyebrow::before{
  content:''; display:inline-block; width:6px; height:6px; border-radius:50%;
  background:var(--nova-teal); margin-right:8px; vertical-align:middle;
}

/* Reset default core block spacing inside our custom-styled groups so
   the original tight spacing (controlled by our own CSS, not block
   defaults) is preserved exactly. */
.nova-hero-title, .nova-hero-lead, .nova-hero-note, .nova-eyebrow,
.nova-hero-stat .num, .nova-hero-stat .label,
.nova-community h2, .nova-community p,
.nova-mission-card h3, .nova-mission-card p,
.nova-trust-item h3, .nova-trust-item p{ margin:0; }

/* Native <details> accordion — replaces the old JS tab-switcher for
   Testing & Documentation, and is used for the FAQ page too. Zero
   custom JS: this is the browser's own native expand/collapse. */
.nova-details{
  background:var(--nova-panel); border:1px solid var(--nova-line); border-radius:12px;
  padding:0; margin-bottom:10px; overflow:hidden;
}
.nova-details summary{
  padding:18px 20px; font-size:15px; font-weight:600; color:var(--nova-navy);
  cursor:pointer; list-style:none; display:flex; justify-content:space-between; align-items:center;
}
.nova-details summary::-webkit-details-marker{ display:none; }
.nova-details summary::after{
  content:'+'; font-size:20px; font-weight:400; color:var(--nova-teal-dark); flex:none; margin-left:16px;
}
.nova-details[open] summary::after{ content:'−'; }
.nova-details .nova-details-body{ padding:0 20px 18px; font-size:14px; line-height:1.65; color:var(--nova-ink-soft); }
.nova-details .nova-details-body p{ margin:0 0 10px; }
.nova-details .nova-details-body p:last-child{ margin-bottom:0; }
.nova-details .nova-details-why{ border-top:1px dashed var(--nova-line-strong); margin-top:10px; padding-top:10px; }
.nova-details .nova-details-why b{ color:var(--nova-navy); font-family:'IBM Plex Mono', monospace; font-size:11.5px; letter-spacing:.04em; display:block; margin-bottom:4px; }

/* =========================================================
   SITE HEADER
   ========================================================= */
.nova-marquee-strip{
  background:var(--nova-teal); overflow:hidden; white-space:nowrap;
  border-bottom:1px solid rgba(255,255,255,0.12);
}
.nova-marquee-track{ display:inline-flex; align-items:center; animation:novaMarquee 26s linear infinite; }
.nova-marquee-strip:hover .nova-marquee-track{ animation-play-state:paused; }
.nova-marquee-item{
  display:inline-flex; align-items:center; gap:14px;
  font-family:'IBM Plex Mono', monospace; font-size:11.5px; font-weight:500;
  letter-spacing:.05em; color:#FFFFFF; padding:9px 0;
}
.nova-marquee-item .sep{ color:rgba(255,255,255,0.55); font-size:10px; margin-right:14px; }
@keyframes novaMarquee{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
@media (prefers-reduced-motion:reduce){ .nova-marquee-track{ animation:none; overflow-x:auto; } }

header.nova-site-header{
  position:sticky; top:0; z-index:50;
  background:rgba(245,250,251,0.92); backdrop-filter:blur(8px);
  border-bottom:1px solid var(--nova-line);
}
.nova-nav{ display:flex; align-items:center; justify-content:space-between; padding:18px 0; }
.nova-brand{
  display:flex; align-items:center; gap:10px;
  font-family:'Space Grotesk', sans-serif; font-weight:700; font-size:19px;
  text-decoration:none; color:var(--nova-navy);
}
.nova-brand-mark{ width:28px; height:28px; flex:none; }

/* WordPress custom logo (Appearance → Customize → Site Identity).
   the_custom_logo() outputs its own <a class="custom-logo-link"><img class="custom-logo"></a> —
   without this rule the image renders at its full uploaded resolution. */
.nova-brand--custom-logo{ display:flex; align-items:center; line-height:0; }
.nova-brand--custom-logo .custom-logo-link{ display:flex; align-items:center; }
.nova-brand--custom-logo img.custom-logo{
  max-height:36px;
  width:auto;
  height:auto;
  display:block;
}
.nova-navlinks{ display:flex; gap:28px; align-items:center; list-style:none; margin:0; padding:0; }
.nova-navlinks li{ list-style:none; }
.nova-navlinks a{
  text-decoration:none; color:var(--nova-ink-soft); font-size:14.5px; font-weight:500;
  padding:6px 2px; border-bottom:1px solid transparent;
}
.nova-navlinks a:hover{ color:var(--nova-navy); border-color:var(--nova-teal); }
.nova-navlink-utility{
  text-transform:uppercase; font-size:11.5px !important; letter-spacing:.06em;
  font-family:'IBM Plex Mono', monospace; color:var(--nova-navy) !important;
  border-left:1px solid var(--nova-line-strong); padding-left:16px !important;
}
.nova-nav-actions{ display:flex; align-items:center; gap:18px; }
.nova-icon-btn{
  background:none; border:none; color:var(--nova-navy); position:relative;
  display:flex; align-items:center; justify-content:center; padding:6px; text-decoration:none;
}
.nova-cart-count{
  position:absolute; top:-4px; right:-4px;
  background:var(--nova-amber); color:#241505; font-size:10px; font-weight:700;
  width:16px; height:16px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-family:'IBM Plex Mono', monospace;
}
.nova-mobile-toggle{ display:none; background:none; border:none; color:var(--nova-navy); }

@media (max-width:980px){
  .nova-navlinks{ display:none; }
  .nova-navlinks.nova-nav-open{
    display:flex; flex-direction:column; gap:4px;
    position:absolute; top:100%; left:0; right:0;
    background:var(--nova-panel); border-bottom:1px solid var(--nova-line);
    padding:16px 32px 20px; z-index:60;
  }
  .nova-navlinks.nova-nav-open a{ padding:10px 0; border-bottom:1px solid var(--nova-line); }
  .nova-mobile-toggle{ display:flex; }
}

/* =========================================================
   HERO
   ========================================================= */
.nova-hero{
  position:relative; padding:96px 0 88px; overflow:hidden; border-bottom:1px solid var(--nova-line);
  background:linear-gradient(160deg, #DCEEF7 0%, #E7F3F8 40%, #F1F8FA 100%);
  /* Full-bleed: escapes any centered/max-width container the active
     theme wraps page content in (e.g. Blocksy's default page template),
     without needing a custom page template. */
  width:100vw; max-width:100vw;
  margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw);
}
.nova-hero::before{
  content:''; position:absolute; inset:0; pointer-events:none; z-index:0;
  background:
    radial-gradient(circle at 88% 20%, rgba(47,111,237,0.10), transparent 45%),
    radial-gradient(circle at 15% 85%, rgba(47,111,237,0.06), transparent 40%);
}
.nova-hero-grid{ display:grid; grid-template-columns:1.1fr 0.9fr; gap:56px; align-items:center; position:relative; z-index:1; }
.nova-eyebrow{
  display:inline-flex; align-items:center; gap:8px;
  font-family:'IBM Plex Mono', monospace; font-size:12px; letter-spacing:.08em;
  text-transform:uppercase; color:var(--nova-teal-dark);
  background:rgba(47,184,172,0.09); border:1px solid rgba(47,184,172,0.28);
  padding:6px 12px; border-radius:100px; margin-bottom:22px;
}
.nova-hero-title{ font-size:52px; line-height:1.05; font-weight:700; color:var(--nova-navy); max-width:620px; }
.nova-hero-title em{ font-style:normal; color:var(--nova-teal-dark); }
.nova-hero-lead{ margin-top:22px; font-size:17px; line-height:1.65; color:var(--nova-ink-soft); max-width:480px; }
.nova-hero-ctas{ margin-top:34px; display:flex; gap:14px; }
.nova-hero-note{ margin-top:20px; font-size:12.5px; color:var(--nova-ink-soft); font-family:'IBM Plex Mono', monospace; }
.nova-hero-stats{ display:flex; align-items:center; gap:22px; margin-top:30px; }
.nova-hero-stat{ display:flex; flex-direction:column; gap:4px; }
.nova-hero-stat .num{ font-family:'Space Grotesk', sans-serif; font-weight:700; font-size:22px; color:var(--nova-navy); }
.nova-hero-stat .label{ font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:.05em; color:var(--nova-ink-soft); text-transform:uppercase; }
.nova-hero-stat-div{ width:1px; height:32px; background:var(--nova-line-strong); }

.nova-hero-visual{ position:relative; }
.nova-coa-card{ background:var(--nova-panel); border:1px solid var(--nova-line); padding:30px 32px 26px; position:relative; }
.nova-coa-card::before{ content:''; position:absolute; top:14px; right:14px; bottom:14px; left:14px; border:1px dashed var(--nova-line-strong); pointer-events:none; }
.nova-coa-card-top{ display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:20px; }
.nova-coa-lot-label{ font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:.1em; color:var(--nova-ink-soft); margin-bottom:4px; }
.nova-coa-lot-num{ font-family:'Space Grotesk', sans-serif; font-weight:700; font-size:24px; color:var(--nova-navy); }
.nova-coa-verified{
  display:inline-flex; align-items:center; gap:5px;
  font-family:'IBM Plex Mono', monospace; font-size:10.5px; font-weight:600; letter-spacing:.06em;
  color:var(--nova-teal-dark); background:rgba(47,184,172,0.1); border:1px solid rgba(47,184,172,0.32);
  padding:5px 9px; border-radius:100px; white-space:nowrap;
}
.nova-coa-compound{ font-size:15px; color:var(--nova-ink); font-weight:500; margin-bottom:4px; }
.nova-coa-formula{ font-family:'IBM Plex Mono', monospace; font-size:12.5px; color:var(--nova-ink-soft); margin-bottom:22px; }
.nova-coa-divider{ border-top:1px solid var(--nova-line); margin:0 0 18px; }
.nova-coa-divider--dashed{ border-top:1px dashed var(--nova-line-strong); margin:20px 0 16px; }
.nova-coa-data{ display:flex; flex-direction:column; gap:13px; }
.nova-coa-data-row{ display:flex; justify-content:space-between; align-items:baseline; }
.nova-coa-data-row .label{ font-family:'IBM Plex Mono', monospace; font-size:11.5px; letter-spacing:.06em; color:var(--nova-ink-soft); }
.nova-coa-data-row .val{ font-size:14px; color:var(--nova-navy); font-weight:600; }
.nova-coa-data-row .val-lg{ font-family:'Space Grotesk', sans-serif; font-size:19px; font-weight:700; color:var(--nova-teal-dark); }
.nova-coa-report-link{ display:flex; justify-content:space-between; align-items:center; text-decoration:none; color:var(--nova-ink-soft); font-size:12.5px; font-family:'IBM Plex Mono', monospace; }
.nova-coa-report-link .cta{ color:var(--nova-navy); font-weight:600; }

.nova-floating-bottle{ position:absolute; pointer-events:none; z-index:0; filter:drop-shadow(0 22px 26px rgba(13,42,59,0.20)); animation:novaFloat 7s ease-in-out infinite; }
.nova-floating-bottle img{ width:100%; height:auto; display:block; transform:rotate(var(--rot,0deg)); }
@keyframes novaFloat{ 0%,100%{ transform:translateY(0);} 50%{ transform:translateY(-16px);} }
@media (prefers-reduced-motion:reduce){ .nova-floating-bottle{ animation:none; } }
@media (max-width:980px){ .nova-floating-bottle{ display:none; } }

/* =========================================================
   TRUST STRIP
   ========================================================= */
.nova-trust{ padding:0; margin:-38px 0 0; position:relative; z-index:2; }
.nova-trust .nova-wrap{
  background:#fff; border:1px solid var(--nova-line); border-radius:14px;
  box-shadow:0 12px 32px rgba(13,42,59,0.08);
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:36px;
  padding:32px 42px;
}
.nova-trust-item{ display:flex; align-items:flex-start; gap:16px; font-size:13px; color:var(--nova-ink-soft); flex:1 1 200px; min-width:200px; }
.nova-trust-icon{
  flex:none; width:42px; height:42px; border-radius:11px;
  background:rgba(47,111,237,0.1); color:var(--nova-teal-dark);
  display:flex; align-items:center; justify-content:center;
}
.nova-trust-item strong{ display:block; color:var(--nova-navy); font-size:13.5px; font-weight:700; margin-bottom:4px; }
.nova-trust-item span.sub{ display:block; font-size:12px; color:var(--nova-ink-soft); line-height:1.5; }

/* section directly after the trust card needs breathing room since the
   card overlaps upward into the hero's bottom padding */
#nova-value-bundles{ padding-top:96px; }

/* =========================================================
   SECTION HEAD (bestsellers / testing-docs / generic)
   ========================================================= */
.nova-section{ padding:80px 0; position:relative; z-index:1; }
.nova-section-head{
  display:flex; justify-content:space-between; align-items:flex-end;
  margin-bottom:40px; gap:24px; flex-wrap:wrap;
  border-bottom:1px solid var(--nova-line); padding-bottom:22px;
}
.nova-section-head .tag{ font-family:'IBM Plex Mono', monospace; font-size:12px; color:var(--nova-teal-dark); text-transform:uppercase; letter-spacing:.08em; margin-bottom:8px; display:block; }
.nova-section-head h2{ font-size:32px; color:var(--nova-navy); font-weight:700; }
.nova-section-head p{ color:var(--nova-ink-soft); max-width:420px; font-size:14.5px; line-height:1.6; margin:0; }

/* =========================================================
   VALUE BUNDLES
   ========================================================= */
.nova-bundles-head{ margin-bottom:16px; }
.nova-bundle-grid{ display:grid; grid-template-columns:repeat(3, 1fr); gap:20px; margin-bottom:44px; padding-bottom:44px; border-bottom:1px solid var(--nova-line); }
.nova-bundle-card{ background:linear-gradient(165deg, #0D2A3B 0%, #123A50 100%); border:1px solid var(--nova-navy); border-radius:14px; padding:24px; position:relative; color:#fff; display:flex; flex-direction:column; }
.nova-bundle-save{ position:absolute; top:0; right:0; background:var(--nova-amber); color:#241505; font-family:'IBM Plex Mono', monospace; font-size:11px; font-weight:700; padding:5px 10px; border-radius:0 14px 0 10px; }
.nova-bundle-card h3{ font-size:18px; margin-bottom:6px; padding-right:70px; }
.nova-bundle-sub{ font-size:12px; color:#9FC7C2; font-family:'IBM Plex Mono', monospace; margin-bottom:16px; }
.nova-bundle-items{ list-style:none; margin:0 0 20px; padding:0; display:flex; flex-direction:column; gap:7px; flex:1; }
.nova-bundle-items li{ font-size:13px; color:#D9EDEB; display:flex; align-items:center; gap:8px; }
.nova-bundle-items li::before{ content:'+'; color:var(--nova-teal); font-weight:700; }
.nova-bundle-footer{ display:flex; align-items:center; justify-content:space-between; }
.nova-bundle-price{ display:flex; align-items:baseline; gap:8px; }
.nova-bundle-price .now{ font-family:'Space Grotesk', sans-serif; font-weight:700; font-size:20px; color:#fff; }
.nova-bundle-price .was{ font-size:12.5px; color:#7FA6A0; text-decoration:line-through; }
.nova-bundle-add{ background:var(--nova-teal); color:#0D2A3B; border:none; padding:9px 16px; font-size:12.5px; font-weight:700; border-radius:10px; cursor:pointer; }
.nova-bundle-add:hover{ background:#66E0D5; }
.nova-bundle-add[disabled]{ opacity:.6; cursor:default; }
@media (max-width:980px){ .nova-bundle-grid{ grid-template-columns:1fr; } }

/* =========================================================
   TESTING & DOCUMENTATION TABS
   ========================================================= */
.nova-doc-tabs{ display:flex; gap:6px; flex-wrap:wrap; }
.nova-doc-tab{
  background:var(--nova-panel); border:1px solid var(--nova-line); border-bottom:none;
  color:var(--nova-ink-soft); padding:12px 20px; font-size:13.5px; font-weight:600;
  font-family:'IBM Plex Mono', monospace; position:relative; top:1px; cursor:pointer;
}
.nova-doc-tab.active{ background:var(--nova-navy); border-color:var(--nova-navy); color:#fff; }
.nova-doc-panels{ background:var(--nova-panel); border:1px solid var(--nova-line); padding:36px; }
.nova-doc-panel{ display:none; }
.nova-doc-panel.active{ display:block; }
.nova-doc-panel .title{ font-size:22px; color:var(--nova-navy); margin-bottom:4px; font-family:'Space Grotesk',sans-serif; font-weight:700; }
.nova-doc-panel .sub{ font-family:'IBM Plex Mono', monospace; font-size:12.5px; color:var(--nova-teal-dark); margin-bottom:20px; }
.nova-doc-panel .body{ font-size:14.5px; line-height:1.7; color:var(--nova-ink); max-width:680px; margin-bottom:20px; }
.nova-doc-panel .why{ border-top:1px dashed var(--nova-line-strong); padding-top:18px; max-width:680px; }
.nova-doc-panel .why b{ color:var(--nova-navy); font-family:'IBM Plex Mono', monospace; font-size:12px; letter-spacing:.04em; display:block; margin-bottom:6px; }
.nova-doc-panel .why p{ font-size:14px; line-height:1.65; color:var(--nova-ink-soft); margin:0; }
@media (max-width:980px){ .nova-doc-tabs{ overflow-x:auto; flex-wrap:nowrap; } }

/* =========================================================
   RESEARCH COMMUNITY BAND
   ========================================================= */
.nova-community{
  background:var(--nova-navy); padding:64px 0; position:relative; overflow:hidden;
  width:100vw; max-width:100vw;
  margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw);
}
.nova-community::before{ content:''; position:absolute; inset:0; background:radial-gradient(circle at 85% 20%, rgba(47,184,172,0.18), transparent 45%); }
.nova-community-inner{ position:relative; z-index:1; display:flex; align-items:center; justify-content:space-between; gap:40px; }
.nova-community h2{ font-size:30px; color:#fff; margin:8px 0 14px; font-weight:700; }
.nova-community p{ font-size:14.5px; line-height:1.65; color:#AFC9C6; max-width:460px; margin:0 0 26px; }
.nova-community-ctas{ display:flex; gap:14px; align-items:center; flex-wrap:wrap; }
.nova-community-badge{ flex:none; width:110px; height:110px; border-radius:50%; background:rgba(47,184,172,0.12); border:1px solid rgba(47,184,172,0.3); display:flex; align-items:center; justify-content:center; }
@media (max-width:780px){ .nova-community-inner{ flex-direction:column; align-items:flex-start; } .nova-community-badge{ display:none; } }

/* =========================================================
   NOTICE / DISCLOSURE BAND
   ========================================================= */
.nova-notice{ background:var(--nova-navy); color:#CFE8E5; padding:36px 0; }
.nova-notice-inner{ display:flex; gap:20px; align-items:flex-start; }
.nova-notice-inner svg{ flex:none; margin-top:2px; color:var(--nova-amber); }
.nova-notice-inner h4{ color:#fff; font-size:15px; margin-bottom:6px; font-family:'Space Grotesk',sans-serif; }
.nova-notice-inner p{ font-size:13.5px; line-height:1.6; color:#AFC9C6; margin:0; max-width:760px; }

/* =========================================================
   FOOTER
   ========================================================= */
footer.nova-site-footer{ border-top:1px solid var(--nova-line); padding:56px 0 28px; position:relative; z-index:1; }
.nova-footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; margin-bottom:40px; }
.nova-footer-grid h5{ font-size:12.5px; text-transform:uppercase; letter-spacing:.06em; color:var(--nova-navy); margin-bottom:16px; font-family:'IBM Plex Mono', monospace; }
.nova-footer-grid ul{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:10px; }
.nova-footer-grid a{ text-decoration:none; color:var(--nova-ink-soft); font-size:13.5px; }
.nova-footer-grid a:hover{ color:var(--nova-teal-dark); }
.nova-footer-bottom{
  border-top:1px solid var(--nova-line); padding-top:22px;
  display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px;
  font-size:12px; color:var(--nova-ink-soft); font-family:'IBM Plex Mono', monospace;
}
@media (max-width:980px){ .nova-footer-grid{ grid-template-columns:1fr 1fr; } }

/* =========================================================
   GENERIC PAGE / SINGLE POST CONTENT
   ========================================================= */
.nova-page-content, .nova-single-content{
  max-width:820px; margin:0 auto; padding:70px 32px 100px;
  position:relative; z-index:1;
}
.nova-page-content h1, .nova-single-content h1{ font-size:36px; color:var(--nova-navy); margin-bottom:24px; }
.nova-page-content p, .nova-single-content p{ font-size:15.5px; line-height:1.75; color:var(--nova-ink); }
.nova-404{ text-align:center; padding:120px 32px; }
.nova-404 h1{ font-size:64px; color:var(--nova-navy); }

/* =========================================================
   INNER PAGE HERO (Support / Track Order / COAs / FAQ / About)
   ========================================================= */
.nova-inner-hero{
  padding:76px 0 34px; border-bottom:1px solid var(--nova-line); position:relative; z-index:1;
  background:linear-gradient(180deg, rgba(47,184,172,0.07) 0%, rgba(47,184,172,0) 70%);
  overflow:hidden;
}
.nova-inner-hero::before{
  content:''; position:absolute; top:-60px; right:-60px; width:220px; height:220px; border-radius:50%;
  background:radial-gradient(circle, rgba(47,184,172,0.14), transparent 70%); pointer-events:none;
}
.nova-inner-hero-top{ display:flex; align-items:center; gap:16px; margin-bottom:6px; }
.nova-inner-hero-icon{
  flex:none; width:52px; height:52px; border-radius:14px; background:var(--nova-navy);
  color:var(--nova-teal); display:flex; align-items:center; justify-content:center;
}
.nova-inner-hero h1{ font-size:38px; color:var(--nova-navy); font-weight:700; margin-bottom:14px; }
.nova-inner-hero p{ font-size:15.5px; color:var(--nova-ink-soft); max-width:560px; line-height:1.65; margin:0; }

/* =========================================================
   FORMS (contact, order lookup)
   ========================================================= */
.nova-form{ max-width:560px; }
.nova-form-row{ display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:14px; }
.nova-form-row.single{ grid-template-columns:1fr; }
.nova-field label{ display:block; font-size:12px; color:var(--nova-ink-soft); margin-bottom:6px; font-family:'IBM Plex Mono', monospace; text-transform:uppercase; letter-spacing:.04em; }
.nova-field input, .nova-field select, .nova-field textarea{
  width:100%; padding:11px 12px; border:1px solid var(--nova-line-strong); background:#fff;
  font-family:'IBM Plex Sans', sans-serif; font-size:14px; color:var(--nova-ink); border-radius:10px;
}
.nova-field textarea{ resize:vertical; min-height:120px; }
.nova-field input:focus, .nova-field select:focus, .nova-field textarea:focus{ outline:2px solid var(--nova-teal); outline-offset:1px; border-color:var(--nova-teal); }
.nova-form-notice{
  padding:12px 16px; border-radius:10px; font-size:13.5px; margin-bottom:20px;
  border:1px solid rgba(47,184,172,0.35); background:rgba(47,184,172,0.08); color:var(--nova-teal-dark);
}
.nova-form-notice.is-error{ border-color:rgba(194,75,63,0.35); background:rgba(194,75,63,0.08); color:#B23B30; }

/* =========================================================
   SUPPORT PAGE EXTRAS
   ========================================================= */
.nova-support-grid{ display:grid; grid-template-columns:1.2fr 0.8fr; gap:56px; align-items:start; }
.nova-contact-card{ background:var(--nova-panel); border:1px solid var(--nova-line); border-radius:14px; padding:28px; box-shadow:0 4px 20px rgba(13,42,59,0.05); }
.nova-contact-card h3{ font-size:14px; color:var(--nova-navy); margin-bottom:6px; font-family:'IBM Plex Mono', monospace; text-transform:uppercase; letter-spacing:.04em; }
.nova-contact-card .val{ font-size:15px; color:var(--nova-ink); margin-bottom:20px; }
.nova-contact-card .val a{ color:var(--nova-teal-dark); text-decoration:none; }
.nova-discord-cta{
  display:flex; align-items:center; gap:12px; background:var(--nova-navy); color:#fff;
  padding:16px 20px; border-radius:10px; text-decoration:none; margin-top:22px; font-size:14px; font-weight:600;
}
.nova-discord-cta:hover{ background:var(--nova-teal-dark); }

/* =========================================================
   FAQ ACCORDION
   ========================================================= */
.nova-accordion{ max-width:760px; }
.nova-accordion-item{ border:1px solid var(--nova-line); background:var(--nova-panel); border-radius:12px; overflow:hidden; margin-bottom:10px; box-shadow:0 2px 10px rgba(13,42,59,0.04); transition:box-shadow .15s ease; }
.nova-accordion-item:hover{ box-shadow:0 4px 16px rgba(13,42,59,0.08); }
.nova-accordion-question{
  width:100%; text-align:left; background:none; border:none; padding:18px 20px;
  display:flex; justify-content:space-between; align-items:center; gap:16px;
  font-size:15px; font-weight:600; color:var(--nova-navy); cursor:pointer;
}
.nova-accordion-question .chev{ flex:none; transition:transform .2s ease; color:var(--nova-teal-dark); }
.nova-accordion-item.is-open .nova-accordion-question .chev{ transform:rotate(180deg); }
.nova-accordion-answer{ display:none; padding:0 20px 18px; font-size:14px; line-height:1.65; color:var(--nova-ink-soft); }
.nova-accordion-item.is-open .nova-accordion-answer{ display:block; }

/* =========================================================
   TRACK ORDER PAGE
   ========================================================= */
.nova-track-grid{ display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:start; }
.nova-order-result{ background:var(--nova-panel); border:1px solid var(--nova-line); border-radius:14px; padding:24px; margin-bottom:28px; box-shadow:0 4px 20px rgba(13,42,59,0.05); }
.nova-order-result-row{ display:flex; justify-content:space-between; padding:9px 0; border-bottom:1px dashed var(--nova-line-strong); font-size:13.5px; }
.nova-order-result-row:last-child{ border-bottom:none; }
.nova-order-result-row span:last-child{ color:var(--nova-navy); font-weight:600; font-family:'IBM Plex Mono', monospace; }
.nova-status-badge{
  font-family:'IBM Plex Mono', monospace; font-size:11px; font-weight:700; text-transform:uppercase;
  padding:4px 10px; border-radius:100px; color:var(--nova-teal-dark);
  background:rgba(47,184,172,0.1); border:1px solid rgba(47,184,172,0.3);
}
.nova-shipping-info{ display:flex; flex-direction:column; gap:18px; }
.nova-shipping-item{ display:flex; gap:14px; align-items:flex-start; }
.nova-shipping-item svg{ flex:none; color:var(--nova-teal-dark); margin-top:2px; }
.nova-shipping-item h4{ font-size:14.5px; color:var(--nova-navy); margin-bottom:4px; }
.nova-shipping-item p{ font-size:13.5px; color:var(--nova-ink-soft); margin:0; line-height:1.6; }

/* =========================================================
   COAs PAGE
   ========================================================= */
.nova-coa-table{ width:100%; border-collapse:collapse; background:var(--nova-panel); border:1px solid var(--nova-line); }
.nova-coa-table th{
  text-align:left; font-family:'IBM Plex Mono', monospace; font-size:11px; text-transform:uppercase;
  letter-spacing:.04em; color:var(--nova-ink-soft); padding:12px 16px; border-bottom:1px solid var(--nova-line);
  background:rgba(47,184,172,0.05);
}
.nova-coa-table td{ padding:14px 16px; border-bottom:1px solid var(--nova-line); font-size:13.5px; color:var(--nova-ink); vertical-align:middle; }
.nova-coa-table tr:last-child td{ border-bottom:none; }
.nova-coa-table .lot{ font-family:'IBM Plex Mono', monospace; color:var(--nova-navy); font-weight:600; }
.nova-coa-table .report-link{ color:var(--nova-teal-dark); text-decoration:none; font-weight:600; font-size:13px; }
.nova-coa-search{ display:flex; gap:10px; margin-bottom:28px; max-width:480px; }
.nova-coa-search input{ flex:1; padding:11px 14px; border:1px solid var(--nova-line-strong); border-radius:10px; font-size:14px; }
.nova-coa-empty{ padding:40px; text-align:center; color:var(--nova-ink-soft); font-size:14px; background:var(--nova-panel); border:1px solid var(--nova-line); }

/* =========================================================
   ABOUT PAGE
   ========================================================= */
.nova-about-hero{ display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center; padding-bottom:20px; }
.nova-about-hero img{ width:100%; height:auto; }
.nova-about-stats{ display:flex; gap:32px; margin-top:28px; flex-wrap:wrap; }
.nova-mission-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.nova-mission-card{ background:var(--nova-panel); border:1px solid var(--nova-line); border-radius:14px; padding:26px; box-shadow:0 4px 20px rgba(13,42,59,0.05); transition:transform .15s ease; }
.nova-mission-card:hover{ transform:translateY(-2px); }
.nova-mission-card h3{ font-size:16px; color:var(--nova-navy); margin-bottom:10px; }
.nova-mission-card p{ font-size:13.5px; color:var(--nova-ink-soft); line-height:1.6; margin:0; }

@media (max-width:900px){
  .nova-support-grid, .nova-track-grid, .nova-about-hero{ grid-template-columns:1fr; }
  .nova-form-row{ grid-template-columns:1fr; }
  .nova-mission-grid{ grid-template-columns:1fr; }
}
   Product data, prices, links, add-to-cart all remain native
   WooCommerce; this only restyles the default markup/classes.
   ========================================================= */
.woocommerce-page main, .nova-woo-wrap{
  max-width:var(--nova-maxw) !important; margin:0 auto !important; padding:56px 32px 100px !important; position:relative; z-index:1;
}
.woocommerce-page h1.page-title{ font-family:'Space Grotesk', sans-serif !important; color:var(--nova-navy) !important; font-size:32px !important; margin-bottom:32px !important; }

ul.products{ display:grid !important; grid-template-columns:repeat(3, 1fr) !important; gap:24px !important; margin:0 !important; }
ul.products li.product{
  background:var(--nova-panel) !important; border:1px solid var(--nova-line) !important;
  padding:0 0 20px !important; box-shadow:0 2px 12px rgba(13,42,59,0.04) !important; list-style:none;
  transition:border-color .15s ease, transform .15s ease, box-shadow .15s ease; float:none !important; width:auto !important;
  border-radius:14px !important; overflow:hidden;
}
ul.products li.product:hover{ border-color:var(--nova-teal) !important; transform:translateY(-3px); box-shadow:0 10px 24px rgba(13,42,59,0.10) !important; }
.nova-card-top{ display:flex; justify-content:space-between; align-items:flex-start; padding:20px 20px 0; }
.nova-purity-badge{
  font-family:'IBM Plex Mono', monospace; font-size:11px; font-weight:600;
  color:var(--nova-teal-dark); background:rgba(47,184,172,0.1); border:1px solid rgba(47,184,172,0.3);
  padding:3px 8px; border-radius:100px;
}
.nova-stock-dot{ display:flex; align-items:center; gap:6px; font-size:11px; color:var(--nova-ink-soft); font-family:'IBM Plex Mono', monospace; }
.nova-stock-dot .d{ width:6px; height:6px; border-radius:50%; background:var(--nova-teal); display:inline-block; }
.nova-coa-row{ display:flex; justify-content:space-between; font-size:11px; font-family:'IBM Plex Mono', monospace; color:var(--nova-ink-soft); padding:8px 20px 0; border-top:1px dashed var(--nova-line-strong); margin:10px 20px 0; }

ul.products li.product img{ padding:10px 20px 0 !important; }
ul.products li.product .woocommerce-loop-product__title, ul.products li.product h2{
  font-family:'Space Grotesk', sans-serif !important; color:var(--nova-navy) !important;
  font-size:18px !important; font-weight:700 !important; padding:12px 20px 4px !important; margin:0 !important;
}
ul.products li.product .price{ font-family:'Space Grotesk', sans-serif !important; color:var(--nova-navy) !important; font-weight:700 !important; font-size:19px !important; padding:0 20px !important; }
ul.products li.product .price ins{ text-decoration:none; }
ul.products li.product .button, ul.products li.product .add_to_cart_button{
  background:var(--nova-navy) !important; color:#fff !important; border:none !important;
  padding:9px 16px !important; font-size:13px !important; font-weight:600 !important;
  border-radius:10px !important; margin:14px 20px 0 !important; width:calc(100% - 40px) !important; text-align:center;
}
ul.products li.product .button:hover{ background:var(--nova-teal-dark) !important; }
ul.products li.product .star-rating{ margin:6px 20px 0 !important; }

.woocommerce-pagination{ margin-top:40px; text-align:center; }
.woocommerce-pagination .page-numbers{ font-family:'IBM Plex Mono', monospace; }

/* single product */
.single-product div.product .price{ color:var(--nova-navy) !important; font-family:'Space Grotesk', sans-serif !important; font-weight:700 !important; }
.single-product div.product .single_add_to_cart_button{
  background:var(--nova-navy) !important; border:none !important; color:#fff !important;
  border-radius:10px !important; padding:14px 28px !important; font-weight:600 !important;
}
.single-product div.product .single_add_to_cart_button:hover{ background:var(--nova-teal-dark) !important; }
.nova-single-coa{ margin:18px 0; border:1px solid var(--nova-line); background:var(--nova-panel); padding:14px 18px; max-width:320px; }
.nova-single-coa-row{ display:flex; justify-content:space-between; font-family:'IBM Plex Mono', monospace; font-size:12.5px; color:var(--nova-ink-soft); padding:6px 0; border-bottom:1px dashed var(--nova-line-strong); }
.nova-single-coa-row:last-child{ border-bottom:none; }
.nova-single-coa-row strong{ color:var(--nova-navy); }
.woocommerce-tabs ul.tabs li.active a{ color:var(--nova-teal-dark); }

/* cart */
.woocommerce-cart table.cart th{ font-family:'IBM Plex Mono', monospace !important; text-transform:uppercase; font-size:11.5px; letter-spacing:.04em; color:var(--nova-ink-soft) !important; }
.woocommerce-cart .cart_totals h2{ font-family:'Space Grotesk', sans-serif !important; color:var(--nova-navy) !important; }
.woocommerce-cart .button, .woocommerce-cart .checkout-button{ background:var(--nova-navy) !important; color:#fff !important; border:none !important; border-radius:10px !important; }
.woocommerce-cart .button:hover, .woocommerce-cart .checkout-button:hover{ background:var(--nova-teal-dark) !important; }

/* checkout */
.woocommerce-checkout input.input-text, .woocommerce-checkout select{ border:1px solid var(--nova-line-strong) !important; border-radius:10px !important; }
.woocommerce-checkout #place_order{ background:var(--nova-navy) !important; color:#fff !important; border:none !important; border-radius:10px !important; }
.woocommerce-checkout #place_order:hover{ background:var(--nova-teal-dark) !important; }
.woocommerce-checkout h3{ font-family:'Space Grotesk', sans-serif !important; color:var(--nova-navy) !important; }

/* my account */
.woocommerce-account .woocommerce-MyAccount-navigation ul{ list-style:none; }
.woocommerce-account .woocommerce-MyAccount-navigation a{ font-family:'IBM Plex Mono', monospace; font-size:13px; color:var(--nova-ink-soft); }
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a{ color:var(--nova-teal-dark); }
.woocommerce-account .button{ background:var(--nova-navy) !important; color:#fff !important; border-radius:10px !important; }

/* WooCommerce notices */
.woocommerce-message, .woocommerce-info{ border-top-color:var(--nova-teal) !important; }
.woocommerce-message::before, .woocommerce-info::before{ color:var(--nova-teal) !important; }
.woocommerce-error{ border-top-color:#C24B3F !important; }

@media (max-width:980px){
  .nova-hero-grid{ grid-template-columns:1fr; }
  .nova-hero-title{ font-size:38px; }
  ul.products{ grid-template-columns:repeat(2,1fr) !important; }
  .nova-footer-grid{ grid-template-columns:1fr 1fr; }
}
@media (max-width:600px){
  .nova-wrap{ padding:0 20px; }
  .nova-hero-title{ font-size:32px; }
  ul.products{ grid-template-columns:1fr !important; }
}

button:focus-visible, a:focus-visible{ outline:2px solid var(--nova-teal); outline-offset:2px; }
