/* ============================================================
   [2026-09-23] DUB DESIGN LAYER, loaded AFTER marketing.css (replaces marketing-vip.css).
   Reference: dub.co (dubinc/dub, 24.8k stars). Visual-only: type, colour, buttons, cards,
   frames, header, footer, grid rails. No markup, link or script changes.
   Revert = point the <link> back to /marketing-vip.css.
   ============================================================ */
:root{
  --ink:#0a0a0a; --ink-2:#262626; --muted:#525252; --muted-2:#737373;
  --line:#e5e5e5; --line-2:#d4d4d4; --soft:#fafafa; --soft-2:#f5f5f5; --white:#fff;
  --dark:#0a0a0a; --dark-2:#171717;
  --violet:#171717; --violet-2:#0a0a0a;
  --radius:12px; --shadow:0 1px 2px rgba(0,0,0,.04);
  --dub-ease:cubic-bezier(.2,.8,.2,1);
  /* keep vip tokens defined so any inline style that still references them resolves */
  --vip:#0a0a0a; --vip-2:#0a0a0a; --vip-soft:#f5f5f5; --vip-line:#e5e5e5; --vip-ink:#0a0a0a; --vip-muted:#525252;
  --vip-shadow-sm:0 1px 2px rgba(0,0,0,.04); --vip-shadow-md:0 1px 2px rgba(0,0,0,.04); --vip-shadow-lg:0 1px 2px rgba(0,0,0,.05);
}

/* ---------- Type: Inter, medium-weight display with tight tracking ---------- */
html,body{font-family:InterVar,Inter,system-ui,-apple-system,"Segoe UI",sans-serif!important;}
body{color:var(--ink-2);background:#fff;font-weight:400;letter-spacing:-.006em;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;}
h1,h2,h3,h4{font-family:InterVar,Inter,system-ui,sans-serif!important;color:var(--ink);text-wrap:balance;}
h1{font-weight:600!important;letter-spacing:-.042em!important;line-height:1.04!important;}
h2{font-weight:600!important;letter-spacing:-.035em!important;line-height:1.1!important;}
h3{font-weight:600!important;letter-spacing:-.02em!important;}
.hero h1,.page-hero h1{font-size:clamp(2.45rem,5.2vw,4.35rem)!important;max-width:980px;}
.section-head h2{font-size:clamp(1.85rem,3.3vw,2.7rem)!important;}
p,li{color:inherit;}
.lede,.hero .lede,.page-hero .lede,.page-hero p,.section-head p{color:var(--muted)!important;font-size:clamp(1.02rem,1.35vw,1.18rem);line-height:1.6;}
strong,b{font-weight:600;}

/* ---------- Eyebrow: uppercase blue label becomes a Dub pill ---------- */
.eyebrow{display:inline-flex!important;align-items:center;gap:8px;padding:5px 12px 5px 10px;margin-bottom:18px;
  border:1px solid var(--line);border-radius:999px;background:#fff;
  color:var(--ink-2)!important;font-size:.8125rem!important;font-weight:500!important;letter-spacing:0!important;text-transform:none!important;
  box-shadow:0 1px 2px rgba(0,0,0,.03);}
.eyebrow::before{width:6px!important;height:6px!important;border-radius:50%;background:#0a0a0a!important;}
.section-dark .eyebrow{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.14);color:#e5e5e5!important;}
.section-dark .eyebrow::before{background:#fff!important;}

/* ---------- Buttons: black primary, bordered white secondary, 8px radius ---------- */
.btn{border-radius:8px!important;font-weight:500!important;letter-spacing:-.01em!important;box-shadow:none!important;transform:none!important;
  transition:background .15s ease,border-color .15s ease,color .15s ease!important;}
.btn:hover{transform:none!important;}
.btn-primary,.btn-dark{background:var(--ink)!important;color:#fff!important;border:1px solid var(--ink)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08)!important;}
.btn-primary:hover,.btn-dark:hover{background:#262626!important;border-color:#262626!important;}
.btn-secondary{background:#fff!important;color:var(--ink)!important;border:1px solid var(--line)!important;box-shadow:0 1px 2px rgba(0,0,0,.04)!important;}
.btn-secondary:hover{background:var(--soft)!important;border-color:var(--line-2)!important;}
.section-dark .btn-primary,.cta-band .btn-primary{background:#fff!important;color:var(--ink)!important;border-color:#fff!important;}
.section-dark .btn-primary:hover,.cta-band .btn-primary:hover{background:#e5e5e5!important;border-color:#e5e5e5!important;}
.section-dark .btn-secondary,.cta-band .btn-secondary{background:transparent!important;color:#fff!important;border-color:rgba(255,255,255,.24)!important;box-shadow:none!important;}
.section-dark .btn-secondary:hover,.cta-band .btn-secondary:hover{background:rgba(255,255,255,.08)!important;}

/* ---------- Header: white glass, centred links, visible on desktop ---------- */
/* glass only on desktop: below 1200px backdrop-filter makes the 64px header the containing block of the
   position:fixed .mobile-panel, clipping the open menu to a 40px strip (QA 2026-09-23, was live on every page). */
.site-header{background:#fff!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;
  border-bottom:1px solid var(--line)!important;box-shadow:none!important;}
@media(min-width:1200px){.site-header{background:rgba(255,255,255,.8)!important;-webkit-backdrop-filter:saturate(180%) blur(14px)!important;backdrop-filter:saturate(180%) blur(14px)!important;}}
.site-header .nav{height:64px!important;gap:20px!important;}
.brand{font-weight:600!important;letter-spacing:-.025em!important;color:var(--ink)!important;}
.brand img{width:30px!important;height:30px!important;border-radius:8px!important;}
.brand span{font-size:1.04rem;}
.brand small{display:none!important;}
.nav-links a{color:var(--ink-2)!important;font-size:.9rem!important;font-weight:500!important;padding:7px 11px!important;border-radius:8px!important;background:transparent!important;}
.nav-links a:hover,.nav-links a[aria-current="page"],.nav-links a.active{color:var(--ink)!important;background:var(--soft-2)!important;}
.nav-actions .btn{min-height:36px!important;padding:7px 14px!important;font-size:.875rem!important;}
@media(min-width:1200px){
  .site-header .nav-links{display:flex!important;}
  .site-header .menu-toggle{display:none!important;}
  .site-header .nav-actions .btn-secondary{display:inline-flex!important;}
  .site-header .mobile-panel{display:none!important;}
}
.menu-toggle{border-radius:8px!important;border-color:var(--line)!important;box-shadow:none!important;}
.mobile-panel a{color:var(--ink-2)!important;font-weight:500!important;}

/* ---------- Heroes: white + faint grid that fades out (Dub hero) ---------- */
.hero,.page-hero{background:#fff!important;color:var(--ink)!important;}
.hero::after,.page-hero::after{display:none!important;}
.hero::before,.page-hero::before{content:""!important;position:absolute!important;inset:0!important;height:auto!important;width:auto!important;pointer-events:none;z-index:0;
  background:
    linear-gradient(to right,rgba(10,10,10,.055) 1px,transparent 1px) 0 0/64px 64px,
    linear-gradient(to bottom,rgba(10,10,10,.055) 1px,transparent 1px) 0 0/64px 64px!important;
  -webkit-mask-image:radial-gradient(ellipse 70% 62% at 50% 0%,#000 30%,transparent 78%);
          mask-image:radial-gradient(ellipse 70% 62% at 50% 0%,#000 30%,transparent 78%);
  filter:none!important;opacity:1!important;transform:none!important;}
.hero>*,.page-hero>*{position:relative;z-index:1;}
.hero .trust-line,.page-hero .trust-line{color:var(--muted-2)!important;}

/* ---------- Sections: hairline rhythm, soft greys, neutral dark ---------- */
.section{padding-top:clamp(56px,7vw,100px)!important;padding-bottom:clamp(56px,7vw,100px)!important;}
.section-soft{background:var(--soft)!important;border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.section-dark{background:var(--dark)!important;color:#fff;}
.section-dark h2,.section-dark h3{color:#fff!important;}
.section-dark .section-head p,.section-dark p{color:#a3a3a3!important;}
.cta-band{background:var(--dark)!important;border-radius:16px!important;box-shadow:none!important;}
.cta-band h2,.cta-band h3{color:#fff!important;}

/* ---------- Cards: hairline, 12px, no lift ---------- */
.card,.price-card,.feature-card,.ai-card,.motion-surface,.preview-card,.coverage-card,.campaign-card,.lp-step,.contact-card{
  border:1px solid var(--line)!important;border-radius:12px!important;background:#fff;box-shadow:none!important;transform:none!important;
  transition:border-color .15s ease,box-shadow .15s ease!important;}
.card:hover,.price-card:hover,.feature-card:hover,.ai-card:hover,.preview-card:hover,.coverage-card:hover,.campaign-card:hover{
  border-color:var(--line-2)!important;box-shadow:0 4px 16px -8px rgba(0,0,0,.10)!important;transform:none!important;}
.price-card.featured{border:1.5px solid var(--ink)!important;box-shadow:0 12px 32px -16px rgba(0,0,0,.25)!important;}
.price-card .price{letter-spacing:-.04em;color:var(--ink);}
.section-dark .card,.section-dark .feature-card{background:#111!important;border-color:#262626!important;}

/* ---------- Product frames: Dub double border (soft ring + hairline) ---------- */
.product-window,.hero-shot,.nvd-shot{border:1px solid var(--line)!important;border-radius:12px!important;transform:none!important;
  box-shadow:0 0 0 7px var(--soft-2),0 0 0 8px var(--line),0 30px 60px -30px rgba(0,0,0,.20)!important;}
.product-window .window-bar{background:var(--soft)!important;border-bottom:1px solid var(--line)!important;}
.hero-caption{color:var(--muted-2)!important;}

/* ---------- Badges, status, links, FAQ ---------- */
.status,.badge,.pill{border-radius:999px!important;}
.status-live{background:#f0fdf4!important;color:#15803d!important;}
a.text-link,.link-accent{color:var(--ink)!important;text-decoration:underline;text-decoration-color:var(--line-2);text-underline-offset:3px;}
a.text-link:hover,.link-accent:hover{text-decoration-color:var(--ink);}
.faq details{border:1px solid var(--line)!important;border-radius:12px!important;background:#fff;box-shadow:none!important;}
.faq details[open]{border-color:var(--line-2)!important;box-shadow:none!important;}
.faq summary{font-weight:500;color:var(--ink);}
:focus-visible{outline:2px solid var(--ink)!important;outline-offset:2px;}

/* ---------- Footer: light, columns, small grey links ---------- */
.site-footer{background:#fff!important;color:var(--ink)!important;border-top:1px solid var(--line);padding:64px 0 28px!important;}
.site-footer .brand{color:var(--ink)!important;}
.site-footer p,.site-footer .footer-meta,.site-footer .footer-contact-list span{color:var(--muted-2)!important;}
.site-footer h3{color:var(--ink)!important;font-size:.875rem!important;font-weight:600!important;letter-spacing:-.01em!important;text-transform:none!important;}
.site-footer a{color:var(--muted)!important;}
.site-footer a:hover{color:var(--ink)!important;}
.footer-bottom{border-top:1px solid var(--line)!important;color:var(--muted-2)!important;}

/* ---------- Page rails: two hairlines at the content edges (Dub signature) ---------- */
@media(min-width:1260px){
  main{position:relative;}
  /* wide enough to clear the AI logo marquee (max 1480px = --max + 100) by 24px a side, never wider than the window */
  main::after{content:"";position:absolute;top:0;bottom:0;left:50%;width:min(calc(100% - 24px),calc(var(--max,1180px) + 148px));transform:translateX(-50%);
    border-left:1px solid rgba(10,10,10,.06);border-right:1px solid rgba(10,10,10,.06);pointer-events:none;z-index:3;}
}

/* ---------- Structural fixes carried over from the vip layer (unchanged) ---------- */
.account-intelligence-section .intelligence-split{grid-template-columns:minmax(0,.94fr) minmax(0,1.06fr);align-items:center}
.account-intelligence-section .copy h2{max-width:none}
.account-intelligence-section .copy>p{max-width:520px}
.account-intelligence-section .check-list li{font-size:.93rem}
@media(max-width:1040px){
  .account-intelligence-section .intelligence-split{grid-template-columns:1fr;gap:34px}
  .account-intelligence-section .copy>p{max-width:none}
  .intelligence-console{max-width:660px;margin-inline:auto;width:100%}
}

/* ---------- Chat widget (injected by marketing.js): violet -> ink ---------- */
#rvc-btn{background:var(--ink)!important;box-shadow:0 10px 24px -8px rgba(0,0,0,.45),0 2px 6px rgba(0,0,0,.10)!important;}
#rvc-btn:hover{box-shadow:0 14px 30px -8px rgba(0,0,0,.5),0 3px 8px rgba(0,0,0,.12)!important;}
.rvc-m.v,.rvc-m.v .rvc-file,#rvc-send,#rvc-go{background:var(--ink)!important;}
#rvc-in:focus,#rvc-gate input:focus{border-color:var(--ink)!important;box-shadow:0 0 0 3px rgba(10,10,10,.08)!important;}
.rvc-m.a .fic{background:var(--soft-2)!important;color:var(--ink)!important;}

/* ---------- Fixes after first visual pass (2026-09-23) ---------- */
/* no sideways scroll from the AI logo marquee; clip keeps the sticky header working (hidden would not) */
html,body{overflow-x:clip!important;}
/* hero grid: an older rule hid the pseudo-element on motion heroes */
.hero::before,.page-hero::before{display:block!important;}
.hero h1,.page-hero h1{color:var(--ink)!important;}
/* AI ecosystem band + marquee: neutral instead of blue-grey */
.ai-ecosystem{background:var(--soft)!important;border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.ai-ecosystem .ai-marquee,.ai-marquee{border-color:var(--line)!important;border-radius:12px!important;box-shadow:none!important;background:#fff!important;}
.ai-platform{border-color:var(--line)!important;box-shadow:none!important;border-radius:10px!important;}
/* account-intelligence band is dark but not .section-dark: neutral ink + inverted buttons */
.account-intelligence-section{background:var(--dark)!important;}
.account-intelligence-section .btn-primary{background:#fff!important;color:var(--ink)!important;border-color:#fff!important;}
.account-intelligence-section .btn-primary:hover{background:#e5e5e5!important;border-color:#e5e5e5!important;}
.account-intelligence-section .btn-secondary{background:transparent!important;color:#fff!important;border-color:rgba(255,255,255,.28)!important;box-shadow:none!important;}
.account-intelligence-section .eyebrow{background:rgba(255,255,255,.06)!important;border-color:rgba(255,255,255,.14)!important;color:#e5e5e5!important;}
.account-intelligence-section .eyebrow::before{background:#fff!important;}
/* footer brand name was white on the old dark footer */
.site-footer .brand span,.site-footer .brand{color:var(--ink)!important;}
/* CTA band sits inside the rails like Dub, not edge to edge */
main>.cta-band{width:min(calc(100% - 32px),calc(var(--max,1180px) + 64px));margin:0 auto clamp(48px,6vw,88px)!important;}
.cta-band .btn-secondary{border:1px solid rgba(255,255,255,.28)!important;}
/* FAQ: one marker only */
.faq summary{list-style:none!important;}
.faq summary::-webkit-details-marker{display:none!important;}
.faq summary::marker{content:""!important;}
.faq summary::after{color:var(--muted-2)!important;}

/* ---------- Homepage: Dub announcement pill ---------- */
.dub-announce{display:inline-flex;align-items:stretch;margin:0 auto 22px;border:1px solid var(--line);border-radius:999px;background:#fff;
  font-size:.8125rem;font-weight:500;line-height:1;color:var(--ink-2);text-decoration:none;box-shadow:0 1px 2px rgba(0,0,0,.04);overflow:hidden;
  transition:border-color .15s ease;}
.dub-announce:hover{border-color:var(--line-2);}
.dub-announce-l{padding:8px 12px 8px 14px;}
.dub-announce-r{display:inline-flex;align-items:center;gap:5px;padding:8px 13px 8px 11px;border-left:1px solid var(--line);color:var(--muted-2);}
.dub-announce:hover .dub-announce-r{color:var(--ink);}
.hero-copy{text-align:center;}

/* ---------- Homepage: Dub product tabs + stage + dark caption ---------- */
.dub-preview .section-head{margin-bottom:26px!important;}
.dub-tabs{display:flex;justify-content:center;flex-wrap:wrap;gap:6px;margin-bottom:26px;}
.dub-tab{display:inline-flex;align-items:center;gap:8px;padding:7px 14px;border-radius:8px;border:1px solid transparent;background:transparent;
  font:inherit;font-size:.875rem;font-weight:500;color:var(--muted);cursor:pointer;transition:background .15s,border-color .15s,color .15s;}
.dub-tab i{width:14px;height:14px;border-radius:4px;display:inline-block;opacity:.9;}
.dub-tab:hover{color:var(--ink);background:rgba(10,10,10,.03);}
.dub-tab.on{background:#fff;border-color:var(--line);color:var(--ink);box-shadow:0 1px 2px rgba(0,0,0,.05);}
.dub-stage{position:relative;padding-bottom:6px;}
.dub-panel[hidden],.dub-stage .product-window[hidden]{display:none!important;}
.dub-panel img{display:block;width:100%;height:auto;border-radius:11px;}
.dub-caption{position:absolute;left:50%;bottom:28px;transform:translateX(-50%);z-index:6;width:min(760px,calc(100% - 56px));
  display:flex;align-items:center;gap:14px;padding:12px 12px 12px 14px;border-radius:12px;background:#171717;color:#fff;
  box-shadow:0 18px 40px -12px rgba(0,0,0,.45);}
.dub-caption-ic{flex:none;width:32px;height:32px;border-radius:8px;display:grid;place-items:center;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.1);}
.dub-caption-ic i{width:14px;height:14px;border-radius:4px;display:block;}
.dub-caption-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;text-align:left;}
.dub-caption-t b{font-size:.95rem;font-weight:600;color:#fff;letter-spacing:-.01em;}
.dub-caption-t span{font-size:.8125rem;color:#a3a3a3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.dub-caption-a{flex:none;padding:8px 14px;border-radius:8px;background:#fff;color:var(--ink)!important;font-size:.875rem;font-weight:500;text-decoration:none;}
.dub-caption-a:hover{background:#e5e5e5;}
@media(max-width:760px){
  .dub-caption{position:static;transform:none;width:100%;margin-top:22px;}
  .dub-caption-t span{white-space:normal;}
  .dub-tabs{justify-content:flex-start;flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px;scrollbar-width:none;}
  .dub-tabs::-webkit-scrollbar{display:none;}
  .dub-tab{flex:none;}
  .dub-announce{font-size:.75rem;max-width:100%;}
  .dub-announce-l{white-space:normal;text-align:left;line-height:1.3;}
}
@media(max-width:760px){
  .dub-stage{display:flex;flex-direction:column;}
  .dub-stage .dub-caption{order:9;}
}
@media(max-width:520px){
  .dub-announce-r{display:none;}
  .dub-announce-l{padding:8px 14px;}
}

/* ---------- /signup (signup.css split card): Dub neutral treatment; sign-in logic untouched ---------- */
.join-body{background:#fff!important;color:var(--ink-2)!important;}
.join-shell{border:1px solid var(--line)!important;border-radius:16px!important;box-shadow:0 0 0 7px var(--soft-2),0 0 0 8px var(--line),0 30px 60px -30px rgba(0,0,0,.18)!important;}
.join-label{display:inline-flex!important;align-items:center;gap:8px;padding:5px 12px 5px 10px;border:1px solid var(--line);border-radius:999px;
  color:var(--ink-2)!important;font-size:.8125rem!important;font-weight:500!important;letter-spacing:0!important;text-transform:none!important;}
.join-label::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--ink);}
.join-product h1{color:var(--ink)!important;font-weight:600!important;letter-spacing:-.042em!important;}
.join-product-copy>p{color:var(--muted)!important;}
.join-preview-stage::before{border-color:var(--line)!important;background:var(--soft-2)!important;box-shadow:none!important;}
.join-preview{border-color:var(--line)!important;border-radius:12px!important;box-shadow:0 20px 40px -24px rgba(0,0,0,.25)!important;}
.join-preview-bar{background:var(--soft)!important;border-bottom-color:var(--line)!important;}
.join-preview figcaption{color:var(--muted-2)!important;border-top-color:var(--line)!important;}
.join-product-grid{border-color:var(--line)!important;}
.join-product-grid>div{border-right-color:var(--line)!important;}
.join-product-grid strong{color:var(--ink)!important;font-weight:600!important;}
.join-product-grid span{color:var(--muted-2)!important;}
.join-access{background:var(--dark)!important;}
.join-access-head{border-bottom-color:rgba(255,255,255,.1)!important;}
.join-access-index,.join-kicker{color:#a3a3a3!important;font-weight:500!important;letter-spacing:.06em!important;}
.join-access h2{color:#fff!important;font-weight:600!important;letter-spacing:-.04em!important;}
.join-access-intro{color:#a3a3a3!important;}
.join-google{border-radius:8px!important;border-color:#fff!important;background:#fff!important;color:var(--ink)!important;font-weight:500!important;}
.join-google:hover{background:#e5e5e5!important;border-color:#e5e5e5!important;}
.join-microsoft{border-radius:8px!important;background:#171717!important;border-color:#404040!important;}
.join-microsoft:hover{background:#262626!important;border-color:#525252!important;}
.join-access-foot{color:#737373!important;}
.join-access input,.join-access select{border-radius:8px!important;}

/* dark lead card on /features/: the global heading colour turned its title black-on-navy (contrast 1.13) */
.intel-feature-lead{background:var(--dark)!important;border-color:#262626!important;color:#fff!important;}
.intel-feature-lead h2,.intel-feature-lead h3,.intel-feature-lead h4{color:#fff!important;}

/* =====================  QA PASS 1 (2026-09-23): 229 findings from the 6-agent visual review  ===================== */
/* eyebrow pill on page heroes: an older page-hero rule stripped border/padding and hid ::before */
.page-hero .eyebrow,.hero .eyebrow,.eyebrow{padding:5px 12px 5px 10px!important;border:1px solid var(--line)!important;border-radius:999px!important;background:#fff!important;gap:8px!important;}
.eyebrow::before{content:""!important;display:inline-block!important;flex:none;width:6px!important;height:6px!important;border-radius:50%!important;background:var(--ink)!important;}
.section-dark .eyebrow,.account-intelligence-section .eyebrow,.query-lab-section .eyebrow{background:rgba(255,255,255,.06)!important;border-color:rgba(255,255,255,.14)!important;}
.section-dark .eyebrow::before,.account-intelligence-section .eyebrow::before,.query-lab-section .eyebrow::before{background:#fff!important;}
/* header chrome: blue nav underline, blue reading-progress bar */
.nav-links a::after,.site-header::after{display:none!important;}
.article-progress span{background:var(--ink)!important;}
/* footer column dividers were dark slate from the old dark footer */
.site-footer .footer-col,.footer-col{border-top-color:var(--line)!important;border-color:var(--line)!important;}
.footer-col a:hover{transform:none!important;}
/* status badges ("Guided setup", "Active monitoring", pricing labels): sentence case, neutral */
.status{text-transform:none!important;letter-spacing:0!important;font-size:.8125rem!important;font-weight:500!important;padding:4px 10px!important;background:#fff!important;color:var(--ink-2)!important;border:1px solid var(--line)!important;}
.status-live{background:#f0fdf4!important;color:#15803d!important;border-color:#bbf7d0!important;}
.price-card>.status,.price-card .status{align-self:flex-start!important;display:inline-flex!important;width:auto!important;margin-bottom:14px!important;font-size:.75rem!important;}
/* pricing cards */
.price-card.featured{outline:0!important;}
.price-card .price{font-weight:600!important;letter-spacing:-.03em!important;}
.price-card .price small,.price small{letter-spacing:0!important;font-weight:400!important;color:var(--muted-2)!important;margin-left:2px;}
.price-card .check-list{margin-bottom:24px!important;}
.price-card>.btn{margin-top:auto!important;}
/* body copy + checklists: neutral instead of navy-slate */
.copy>p,.ai-ecosystem-head p,.flow-step p,.contact-note,.risk-room-head>p,.intelligence-dossier-head>p,.agency-report-copy>p{color:var(--muted)!important;}
.check-list li{color:var(--ink-2)!important;}
.section-dark .copy>p,.account-intelligence-section .copy>p,.query-lab-intro p{color:#a3a3a3!important;}
.section-dark .check-list li,.account-intelligence-section .check-list li{color:#e5e5e5!important;}
/* .btn-dark is used as a SECONDARY button: outlined on dark bands, white-outlined on light heroes */
.cta-band .btn-dark,.section-dark .btn-dark,.account-intelligence-section .btn-dark,.query-lab-section .btn-dark{background:transparent!important;color:#fff!important;border:1px solid rgba(255,255,255,.28)!important;box-shadow:none!important;}
.cta-band .btn-dark:hover,.section-dark .btn-dark:hover,.account-intelligence-section .btn-dark:hover,.query-lab-section .btn-dark:hover{background:rgba(255,255,255,.08)!important;}
.page-hero .btn-dark,.hero .btn-dark,.error-page .btn-dark{background:#fff!important;color:var(--ink)!important;border:1px solid var(--line)!important;box-shadow:0 1px 2px rgba(0,0,0,.04)!important;}
.page-hero .btn-dark:hover,.hero .btn-dark:hover,.error-page .btn-dark:hover{background:var(--soft)!important;border-color:var(--line-2)!important;}
/* number chips (01, CSV, Pro...): neutral, never overflowing */
.card-number,.lp-num{width:auto!important;min-width:36px!important;height:32px!important;padding:0 10px!important;border-radius:8px!important;background:var(--soft-2)!important;border:1px solid var(--line)!important;color:var(--ink)!important;font-size:.8125rem!important;font-weight:600!important;box-shadow:none!important;}
/* card grids: separate Dub cards with a 12px gap (robust for 2, 3 or 4 columns) */
.article-page .feature-grid{gap:12px!important;border:0!important;box-shadow:none!important;background:transparent!important;overflow:visible!important;border-radius:0!important;}
.article-page .feature-grid .card:hover{background:#fff!important;box-shadow:0 4px 16px -8px rgba(0,0,0,.10)!important;transform:none!important;}
.article-page .feature-grid .card::before,.article-page .feature-grid .card:hover::before{display:none!important;}
/* workflow steps: active = ink, never white text on a white hover */
.article-page .workflow{border-color:var(--line)!important;border-radius:12px!important;box-shadow:none!important;}
.article-page .workflow .flow-step{border-color:var(--line)!important;}
.flow-step:hover{transform:none!important;box-shadow:none!important;}
.flow-step.active,.flow-step.active:hover{background:var(--ink)!important;color:#fff!important;}
.flow-step.active b,.flow-step.active h3{color:#fff!important;}
.flow-step.active p{color:#a3a3a3!important;}
.flow-step .n{background:#fff!important;color:var(--ink)!important;border:1px solid var(--line)!important;font-weight:600!important;}
.flow-step.active .n{background:rgba(255,255,255,.12)!important;border-color:rgba(255,255,255,.2)!important;color:#fff!important;}
/* comparison / spec tables: white, hairlines, sentence-case grey header */
.article-page .table-shell{border:1px solid var(--line)!important;border-radius:12px!important;box-shadow:none!important;}
.article-page .support-table thead th,.article-page .support-table thead th:first-child{background:var(--soft)!important;color:var(--muted)!important;text-transform:none!important;letter-spacing:0!important;font-size:.8125rem!important;font-weight:500!important;border-bottom:1px solid var(--line)!important;}
.article-page .support-table th,.article-page .support-table td{border-color:var(--line)!important;}
.article-page .support-table tbody tr:nth-child(even){background:#fff!important;}
.article-page .support-table tbody td:first-child{color:var(--ink)!important;font-weight:500!important;}
.table-shell::before{text-transform:none!important;letter-spacing:0!important;color:var(--muted-2)!important;font-weight:500!important;}
@media(max-width:760px){.article-page .support-table th:first-child,.article-page .support-table td:first-child{background:#fff!important;box-shadow:1px 0 var(--line)!important;}}
/* callouts */
.notice.info,.article-page .notice.info,.auth-required-note{background:var(--soft)!important;border:1px solid var(--line)!important;color:var(--muted)!important;border-radius:12px!important;font-weight:400!important;}
.notice.info b,.article-page .notice.info b{color:var(--ink)!important;font-weight:600!important;}
.auth-required-note::before{border-color:var(--line)!important;}
/* FAQ hover: no lift / tinted shadow */
.faq details:hover{transform:none!important;box-shadow:none!important;border-color:var(--line-2)!important;background:#fff!important;}
/* centred section heads: lede box centred under the heading */
.article-page .section-head p,.section-head.center p{margin-left:auto!important;margin-right:auto!important;}
/* AI marquee edge fades + tile text */
.ai-marquee::before{background:linear-gradient(90deg,#fff 10%,rgba(255,255,255,0))!important;}
.ai-marquee::after{background:linear-gradient(270deg,#fff 10%,rgba(255,255,255,0))!important;}
.ai-platform b{color:var(--ink)!important;font-weight:600!important;} .ai-platform small{color:var(--muted-2)!important;}
/* bands still navy / blue-grey / beige */
.query-lab-section{background:var(--dark)!important;}
.query-lab-section .btn-primary{background:#fff!important;color:var(--ink)!important;border-color:#fff!important;}
.query-lab-section .btn-primary:hover{background:#e5e5e5!important;border-color:#e5e5e5!important;}
.query-lab-section .btn-secondary{background:transparent!important;color:#fff!important;border:1px solid rgba(255,255,255,.28)!important;box-shadow:none!important;}
.suspension-risk-section,.intelligence-dossier-section,.agency-report-section{background:var(--soft)!important;border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.agency-report-options,.agency-report-options>div{border-color:var(--line)!important;}
.agency-report-options i{color:var(--muted-2)!important;font-weight:500!important;letter-spacing:0!important;font-style:normal;}
.agency-report-options b{color:var(--ink)!important;} .agency-report-options span{color:var(--muted)!important;}
.agency-report-copy h2{font-size:clamp(1.85rem,3.3vw,2.7rem)!important;}
/* features dossier cards */
.intel-feature-card{border-color:var(--line)!important;border-radius:12px!important;box-shadow:none!important;}
.intel-feature-card::before{display:none!important;}
.intel-feature-kicker{color:var(--muted-2)!important;text-transform:none!important;letter-spacing:0!important;font-size:.8125rem!important;font-weight:500!important;}
.intel-feature-lead .intel-feature-kicker{color:#a3a3a3!important;}
.intel-feature-lead p{color:#a3a3a3!important;}
.intel-feature-card a{color:var(--ink)!important;font-weight:500!important;}
.intel-feature-lead a{color:#fff!important;}
/* product visual frames on mobile */
@media(max-width:760px){.visual.product-visual{background:#fff!important;border:1px solid var(--line)!important;border-radius:12px!important;box-shadow:0 0 0 5px var(--soft-2),0 0 0 6px var(--line)!important;}}
/* legal pages: 16px gutter on mobile */
@media(max-width:760px){.wrap.content-grid{width:min(100% - 32px,var(--max,1180px))!important;margin-inline:auto!important;}}
/* about photo was stretched by its height attribute */
.editorial-photo img{height:auto!important;aspect-ratio:3/2;object-fit:cover;}
.editorial-photo-caption{color:var(--ink)!important;border-color:var(--line)!important;border-radius:10px!important;box-shadow:0 8px 24px -12px rgba(0,0,0,.25)!important;}
.editorial-photo-caption span{color:var(--muted-2)!important;text-transform:none!important;letter-spacing:0!important;font-size:.75rem!important;font-weight:500!important;}
/* 404 */
.error-page{background:#fff!important;color:var(--ink)!important;}
.error-page::before,.error-page::after{background-image:none!important;}
.error-card h1{color:var(--ink)!important;} .error-card p{color:var(--muted)!important;}
.error-code{background:none!important;-webkit-text-fill-color:currentColor!important;color:var(--ink)!important;font-weight:600!important;letter-spacing:-.06em!important;}
/* /start/ landing */
@media(min-width:1041px){.lp-hero .hero-actions,.lp-hero .trust-line{justify-content:flex-start!important;}}
.window-bar::after{background:#fff!important;color:var(--muted-2)!important;border:1px solid var(--line)!important;border-radius:999px!important;font-weight:500!important;letter-spacing:0!important;}
.lp-strip>.wrap{padding:0!important;border:0!important;}
@media(max-width:760px){.lp-strip .wrap>div{padding:18px 14px!important;}}
/* chat widget header / attach button */
#rvc-hd{background:var(--ink)!important;} #rvc-att{background:var(--soft-2)!important;color:var(--ink)!important;}
/* eyebrow text on dark bands (query-lab added in pass 1 without a text colour) */
.section-dark .eyebrow,.account-intelligence-section .eyebrow,.query-lab-section .eyebrow{color:#e5e5e5!important;}
/* number chips must hug their text (flex-column parents stretched them to full card width) */
.card-number,.lp-num{align-self:flex-start!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;flex:none!important;max-width:max-content!important;}

/* =====================  Zoom-scroll section transitions (marketing/zoomscroll.js)  =====================
   Only active when zoomscroll.js sets html[data-fx]; html[data-fx-dir] = down|up for the current step.
   The header and the chat button get their own transition names so they stay perfectly still while the page moves. */
html[data-fx] .site-header{view-transition-name:fx-header;}
html[data-fx] #rvc-btn{view-transition-name:fx-chat;}
html[data-fx]::view-transition-group(fx-header),html[data-fx]::view-transition-group(fx-chat){animation:none;}
html[data-fx]::view-transition-old(fx-header),html[data-fx]::view-transition-old(fx-chat){display:none;}
html[data-fx]::view-transition-new(fx-header),html[data-fx]::view-transition-new(fx-chat){animation:none;}
html[data-fx]::view-transition-old(root),html[data-fx]::view-transition-new(root){mix-blend-mode:normal;transform-origin:50% 45%;backface-visibility:hidden;}

/* 1) ZOOM: the current screen flies past you, the next one arrives from depth */
html[data-fx="zoom"][data-fx-dir="down"]::view-transition-old(root){animation:fxZoomPast .72s cubic-bezier(.65,0,.35,1) both;}
html[data-fx="zoom"][data-fx-dir="down"]::view-transition-new(root){animation:fxZoomArrive .9s cubic-bezier(.16,1,.3,1) .06s both;}
html[data-fx="zoom"][data-fx-dir="up"]::view-transition-old(root){animation:fxZoomRecede .72s cubic-bezier(.65,0,.35,1) both;}
html[data-fx="zoom"][data-fx-dir="up"]::view-transition-new(root){animation:fxZoomReturn .9s cubic-bezier(.16,1,.3,1) .06s both;}
@keyframes fxZoomPast{to{transform:scale(1.34);opacity:0;filter:blur(12px);}}
@keyframes fxZoomArrive{from{transform:scale(.84);opacity:0;filter:blur(14px);}}
@keyframes fxZoomRecede{to{transform:scale(.82);opacity:0;filter:blur(12px);}}
@keyframes fxZoomReturn{from{transform:scale(1.3);opacity:0;filter:blur(14px);}}
/* next page of the same (tall) section: the same move, lighter and quicker */
html[data-fx="zoom"][data-fx-kind="page"][data-fx-dir="down"]::view-transition-old(root){animation:fxZoomPastSoft .5s cubic-bezier(.65,0,.35,1) both;}
html[data-fx="zoom"][data-fx-kind="page"][data-fx-dir="down"]::view-transition-new(root){animation:fxZoomArriveSoft .62s cubic-bezier(.16,1,.3,1) .04s both;}
html[data-fx="zoom"][data-fx-kind="page"][data-fx-dir="up"]::view-transition-old(root){animation:fxZoomRecedeSoft .5s cubic-bezier(.65,0,.35,1) both;}
html[data-fx="zoom"][data-fx-kind="page"][data-fx-dir="up"]::view-transition-new(root){animation:fxZoomReturnSoft .62s cubic-bezier(.16,1,.3,1) .04s both;}
@keyframes fxZoomPastSoft{to{transform:scale(1.12);opacity:0;filter:blur(6px);}}
@keyframes fxZoomArriveSoft{from{transform:scale(.94);opacity:0;filter:blur(6px);}}
@keyframes fxZoomRecedeSoft{to{transform:scale(.93);opacity:0;filter:blur(6px);}}
@keyframes fxZoomReturnSoft{from{transform:scale(1.1);opacity:0;filter:blur(6px);}}

/* 2) PORTAL: the next screen opens through a growing circle while the current one pushes in and dims */
html[data-fx="portal"]::view-transition-old(root),html[data-fx="portal"]::view-transition-new(root){transform-origin:50% 56%;}
html[data-fx="portal"][data-fx-dir="down"]::view-transition-old(root){animation:fxPortalPush 1s cubic-bezier(.7,0,.2,1) both;}
html[data-fx="portal"][data-fx-dir="down"]::view-transition-new(root){animation:fxPortalOpen 1s cubic-bezier(.7,0,.2,1) both;}
html[data-fx="portal"][data-fx-dir="up"]::view-transition-old(root){z-index:2;animation:fxPortalClose 1s cubic-bezier(.7,0,.2,1) both;}
html[data-fx="portal"][data-fx-dir="up"]::view-transition-new(root){animation:fxPortalBack 1s cubic-bezier(.7,0,.2,1) both;}
@keyframes fxPortalPush{to{transform:scale(1.18);filter:brightness(.55) blur(3px);}}
@keyframes fxPortalOpen{from{clip-path:circle(0% at 50% 56%);transform:scale(1.14);}to{clip-path:circle(150% at 50% 56%);transform:scale(1);}}
@keyframes fxPortalClose{from{clip-path:circle(150% at 50% 56%);}to{clip-path:circle(0% at 50% 56%);transform:scale(1.14);}}
@keyframes fxPortalBack{from{transform:scale(1.18);filter:brightness(.55) blur(3px);}}

/* 3) DEPTH: the current screen tilts away into depth, the next rises in from below (and the reverse going up) */
html[data-fx="depth"]::view-transition{background:var(--soft-2,#f5f5f5);}
html[data-fx="depth"]::view-transition-old(root),html[data-fx="depth"]::view-transition-new(root){transform-origin:50% 100%;}
html[data-fx="depth"][data-fx-dir="down"]::view-transition-old(root){animation:fxDepthAway .8s cubic-bezier(.65,0,.35,1) both;}
html[data-fx="depth"][data-fx-dir="down"]::view-transition-new(root){animation:fxDepthRise .95s cubic-bezier(.16,1,.3,1) .1s both;}
html[data-fx="depth"][data-fx-dir="up"]::view-transition-old(root){animation:fxDepthDrop .8s cubic-bezier(.65,0,.35,1) both;}
html[data-fx="depth"][data-fx-dir="up"]::view-transition-new(root){animation:fxDepthLower .95s cubic-bezier(.16,1,.3,1) .1s both;}
@keyframes fxDepthAway{to{transform:perspective(1400px) translateY(-10%) scale(.88) rotateX(12deg);opacity:0;filter:brightness(.75);}}
@keyframes fxDepthRise{from{transform:perspective(1400px) translateY(24%) scale(.97) rotateX(-9deg);opacity:0;}}
@keyframes fxDepthDrop{to{transform:perspective(1400px) translateY(24%) scale(.97) rotateX(-9deg);opacity:0;}}
@keyframes fxDepthLower{from{transform:perspective(1400px) translateY(-10%) scale(.88) rotateX(12deg);opacity:0;filter:brightness(.75);}}
