/* ============================================================
   Navia Marketing Site — shared component styles
   Built entirely on the Navia design-system tokens (styles.css).
   Pages link:  ../styles.css  +  assets/site.css  +  assets/site.js
   ============================================================ */

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{ margin:0; font-family:var(--font-sans); color:var(--text-body); background:var(--surface-card);
  -webkit-font-smoothing:antialiased; overflow-x:hidden; }
h1,h2,h3,h4{ font-family:var(--font-display); color:var(--text-strong); letter-spacing:var(--ls-tight);
  line-height:1.08; margin:0; text-wrap:balance; }
p{ margin:0; text-wrap:pretty; }
a{ color:inherit; text-decoration:none; }
img{ max-width:100%; display:block; }
.wrap{ width:100%; max-width:1180px; margin:0 auto; padding:0 20px; }
.num{ font-variant-numeric:tabular-nums lining-nums; }
.accent{ color:var(--accent); }
.brandc{ color:var(--brand); }

/* ============ accessibility ============ */
.skip-link{ position:fixed; top:-60px; left:12px; z-index:200; background:var(--brand); color:#fff;
  font-weight:700; font-size:14px; padding:11px 18px; border-radius:0 0 var(--radius-md) var(--radius-md);
  transition:top .2s; text-decoration:none; }
.skip-link:focus{ top:0; outline:3px solid var(--accent); outline-offset:2px; }
:focus-visible{ outline:3px solid var(--brand); outline-offset:2px; border-radius:3px; }
.btn:focus-visible, .btn-accent:focus-visible{ outline-color:var(--accent); }
main:focus{ outline:none; }

/* text-size preference (set on <html data-a11y-size>) */
html[data-a11y-size="lg"]{ font-size:18px; }
html[data-a11y-size="xl"]{ font-size:20px; }
html[data-a11y-size="lg"] body{ font-size:1.06rem; }
html[data-a11y-size="xl"] body{ font-size:1.12rem; }

/* high-contrast mode */
html.a11y-contrast{ --text-body:#10131a; --text-muted:#2b3242; --text-subtle:#3a4252; --border-default:#5a6678; --border-subtle:#7783954d; }
html.a11y-contrast a:not(.btn){ text-decoration:underline; }
html.a11y-contrast .btn-secondary{ border-color:var(--text-strong); }
html.a11y-contrast .hdr__link, html.a11y-contrast .ft-grid a{ color:var(--text-body); }

/* accessibility toolbar widget */
.a11y{ position:fixed; right:16px; bottom:16px; z-index:85; }
@media(max-width:767px){ .a11y{ bottom:84px; } } /* clear the mobile sticky CTA */
.a11y__btn{ width:48px; height:48px; border-radius:50%; background:var(--brand); color:#fff; border:0;
  cursor:pointer; box-shadow:var(--shadow-lg); display:flex; align-items:center; justify-content:center; }
.a11y__btn:hover{ background:var(--brand-hover); }
.a11y__menu{ position:absolute; right:0; bottom:58px; width:248px; background:var(--surface-card);
  border:1px solid var(--border-default); border-radius:var(--radius-lg); box-shadow:var(--shadow-xl); padding:16px; }
.a11y__menu[hidden]{ display:none; }
.a11y__row{ display:flex; align-items:center; justify-content:space-between; gap:12px; font-size:14px;
  font-weight:600; color:var(--text-body); padding:8px 0; }
.a11y__seg{ display:flex; gap:4px; background:var(--bg-subtle); border:1px solid var(--border-subtle); border-radius:var(--radius-full); padding:3px; }
.a11y__seg button{ width:36px; height:32px; border:0; background:transparent; cursor:pointer; border-radius:var(--radius-full);
  font-family:var(--font-display); font-weight:800; color:var(--text-muted); line-height:1; }
.a11y__seg button[aria-pressed="true"]{ background:var(--surface-card); color:var(--brand); box-shadow:var(--shadow-xs); }
.a11y__toggle{ cursor:pointer; border-top:1px solid var(--border-subtle); margin-top:4px; }
.a11y__toggle input{ width:20px; height:20px; accent-color:var(--brand); cursor:pointer; }
.a11y__reset{ width:100%; margin-top:10px; padding:9px; border:1px solid var(--border-default); background:var(--surface-card);
  border-radius:var(--radius-md); font-weight:700; font-size:13px; color:var(--text-body); cursor:pointer; }
.a11y__reset:hover{ background:var(--bg-subtle); }
.a11y__readaloud{ width:100%; margin-top:12px; padding:11px; border:0; background:var(--brand); color:#fff;
  border-radius:var(--radius-md); font-family:var(--font-sans); font-weight:700; font-size:13px; cursor:pointer;
  display:flex; align-items:center; justify-content:center; gap:8px; }
.a11y__readaloud:hover{ background:var(--brand-hover); }
.a11y__readaloud.on{ background:var(--accent); }
.a11y__readaloud svg{ flex:none; }

/* language switcher */
.langsw{ display:inline-flex; border:1px solid var(--border-default); border-radius:var(--radius-full); overflow:hidden; }
.langsw button{ border:0; background:var(--surface-card); color:var(--text-muted); cursor:pointer; font-family:var(--font-sans);
  font-weight:700; font-size:13px; padding:7px 12px; line-height:1; }
.langsw button[aria-pressed="true"]{ background:var(--brand); color:#fff; }
.langsw button:not([aria-pressed="true"]):hover{ background:var(--bg-subtle); color:var(--text-strong); }
.langsw--m{ width:100%; margin-bottom:10px; }
.langsw--m button{ flex:1; padding:12px; font-size:15px; }

/* ============ eKYC checklist card (open-demat) ============ */
.ekyc-card{ width:300px; max-width:100%; background:var(--surface-card); border:1px solid var(--border-subtle);
  border-radius:var(--radius-lg); box-shadow:var(--shadow-xl); padding:20px; }
.ekyc-card__head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; }
.ekyc-card__badge{ display:inline-flex; align-items:center; gap:6px; font-size:12px; font-weight:700;
  color:var(--profit); background:var(--profit-bg); padding:5px 10px; border-radius:var(--radius-full); }
.ekyc-card__time{ font-size:13px; font-weight:700; color:var(--text-muted); }
.ekyc-row{ display:flex; align-items:center; gap:12px; padding:12px 0; border-bottom:1px solid var(--border-subtle); }
.ekyc-row__ic{ width:38px; height:38px; flex:none; border-radius:10px; background:var(--brand-subtle); color:var(--brand);
  display:flex; align-items:center; justify-content:center; }
.ekyc-row__t{ flex:1; font-size:14px; font-weight:600; color:var(--text-strong); }
.ekyc-row__ck{ width:24px; height:24px; flex:none; border-radius:50%; background:var(--profit-bg); color:var(--profit);
  display:flex; align-items:center; justify-content:center; }
.ekyc-card__foot{ display:flex; align-items:center; justify-content:space-between; margin-top:16px; }
.ekyc-card__done{ display:inline-flex; align-items:center; gap:7px; font-size:14px; font-weight:800; color:var(--text-strong); }
.ekyc-card__done svg{ color:var(--profit); }
.ekyc-card__cost{ font-size:13px; font-weight:700; color:var(--accent); }

/* ============ buttons ============ */
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:8px; cursor:pointer;
  font-family:var(--font-sans); font-weight:var(--fw-bold); border:1px solid transparent; white-space:nowrap;
  border-radius:var(--radius-md); transition:background .15s, box-shadow .15s, transform .12s, border-color .15s;
  height:52px; padding:0 24px; font-size:16px; }
.btn:active{ transform:translateY(1px); }
.btn svg{ width:18px; height:18px; }
.btn-accent{ background:var(--accent); color:#fff; box-shadow:0 6px 18px rgba(237,77,55,.28); }
.btn-accent:hover{ background:var(--accent-hover); }
.btn-brand{ background:var(--brand); color:#fff; box-shadow:0 6px 18px rgba(34,56,114,.26); }
.btn-brand:hover{ background:var(--brand-hover); }
.btn-secondary{ background:var(--surface-card); color:var(--text-strong); border-color:var(--border-default); }
.btn-secondary:hover{ background:var(--bg-subtle); border-color:var(--border-strong); }
.btn-ghost-light{ background:rgba(255,255,255,.12); color:#fff; border-color:rgba(255,255,255,.3); }
.btn-ghost-light:hover{ background:rgba(255,255,255,.22); }
.btn-sm{ height:44px; padding:0 18px; font-size:14px; }
.btn-lg{ height:56px; padding:0 28px; font-size:17px; }
.btn-block{ width:100%; }

/* ============ header ============ */
.site-hdr{ position:sticky; top:0; z-index:90; background:color-mix(in oklab, var(--surface-card) 90%, transparent);
  backdrop-filter:blur(14px); border-bottom:1px solid var(--border-subtle); }
.hdr{ display:flex; align-items:center; justify-content:space-between; height:64px; gap:20px; }
.hdr__logo img{ height:34px; width:auto; }
.hdr__nav{ display:none; align-items:center; gap:4px; }
.hdr__link{ font-size:14px; font-weight:600; color:var(--text-body); padding:8px 12px; border-radius:var(--radius-sm);
  display:inline-flex; align-items:center; gap:5px; }
.hdr__link:hover{ color:var(--brand); background:var(--bg-subtle); }
.hdr__link.is-active{ color:var(--brand); }
.hdr__right{ display:flex; align-items:center; gap:10px; }
.hdr__login{ display:none; font-size:14px; font-weight:700; color:var(--text-body); padding:8px 6px; }
.hdr__login:hover{ color:var(--brand); }

/* dropdown */
.hdr__drop{ position:relative; }
.hdr__menu{ position:absolute; top:calc(100% + 10px); left:0; min-width:520px; background:var(--surface-card);
  border:1px solid var(--border-subtle); border-radius:var(--radius-lg); box-shadow:var(--shadow-xl);
  padding:12px; display:grid; grid-template-columns:1fr 1fr; gap:4px; opacity:0; visibility:hidden;
  transform:translateY(6px); transition:opacity .16s, transform .16s, visibility .16s; }
.hdr__drop:hover .hdr__menu{ opacity:1; visibility:visible; transform:translateY(0); }
.hdr__mi{ display:flex; gap:12px; padding:11px 12px; border-radius:var(--radius-md); }
.hdr__mi:hover{ background:var(--bg-subtle); }
.hdr__mi .ic{ width:38px; height:38px; flex:none; border-radius:10px; background:var(--brand-subtle); color:var(--brand);
  display:flex; align-items:center; justify-content:center; }
.hdr__mi h6{ margin:0; font-family:var(--font-sans); font-size:14px; font-weight:700; color:var(--text-strong); }
.hdr__mi p{ font-size:12px; color:var(--text-muted); margin-top:2px; line-height:1.4; }

/* hamburger */
.hdr__burger{ display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px;
  border:1px solid var(--border-default); border-radius:var(--radius-md); background:var(--surface-card);
  color:var(--text-strong); cursor:pointer; }
.hdr__burger svg{ width:22px; height:22px; }

/* mobile drawer */
.mnav{ position:fixed; inset:0; z-index:100; visibility:hidden; }
.mnav.open{ visibility:visible; }
.mnav__scrim{ position:absolute; inset:0; background:var(--overlay); opacity:0; transition:opacity .25s; }
.mnav.open .mnav__scrim{ opacity:1; }
.mnav__panel{ position:absolute; top:0; right:0; bottom:0; width:min(86vw,360px); background:var(--surface-card);
  box-shadow:var(--shadow-xl); transform:translateX(100%); transition:transform .28s var(--ease-out);
  display:flex; flex-direction:column; padding:18px; overflow-y:auto; }
.mnav.open .mnav__panel{ transform:translateX(0); }
.mnav__top{ display:flex; align-items:center; justify-content:space-between; margin-bottom:10px; }
.mnav__top img{ height:30px; }
.mnav__close{ width:42px; height:42px; border:1px solid var(--border-default); border-radius:var(--radius-md);
  background:var(--surface-card); cursor:pointer; display:flex; align-items:center; justify-content:center; color:var(--text-strong); }
.mnav__sec{ font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--text-subtle);
  margin:18px 8px 6px; }
.mnav__link{ display:flex; align-items:center; gap:10px; padding:12px 8px; font-size:16px; font-weight:600;
  color:var(--text-body); border-radius:var(--radius-md); }
.mnav__link:hover{ background:var(--bg-subtle); color:var(--brand); }
.mnav__cta{ margin-top:auto; padding-top:18px; display:flex; flex-direction:column; gap:10px; }

/* ============ hero (generic product) ============ */
.phero{ position:relative; overflow:hidden; padding:44px 0 48px; }
.phero::before{ content:""; position:absolute; inset:0; z-index:0;
  background:radial-gradient(120% 90% at 88% -10%, var(--brand-subtle) 0%, transparent 56%); }
.phero .wrap{ position:relative; z-index:1; }
.phero__grid{ display:grid; gap:36px; }
.eyebrow{ display:inline-flex; align-items:center; gap:7px; font-size:12px; font-weight:700; padding:6px 12px;
  border-radius:var(--radius-full); background:var(--accent-subtle); color:var(--accent); }
.eyebrow.profit{ background:var(--profit-bg); color:var(--profit); }
.eyebrow.brand{ background:var(--brand-subtle); color:var(--brand); }
.eyebrow .dot{ width:7px; height:7px; border-radius:50%; background:currentColor;
  box-shadow:0 0 0 3px color-mix(in oklab, currentColor 24%, transparent); }
.phero h1{ font-size:clamp(34px,9vw,56px); font-weight:800; margin:16px 0 0; }
.phero .lead{ font-size:clamp(16px,4.2vw,19px); color:var(--text-muted); margin-top:16px; max-width:540px; line-height:1.55; }
.hero-actions{ display:flex; flex-wrap:wrap; gap:12px; margin-top:26px; }
.hero-trust{ margin-top:20px; font-size:13px; color:var(--text-subtle); font-weight:600; display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
.hero-trust .tick{ color:var(--profit); }

/* lead capture */
.capture{ max-width:520px; }
.capture-row{ display:flex; flex-direction:column; gap:10px; }
.phone-field{ display:flex; align-items:center; height:52px; background:var(--surface-card);
  border:1.5px solid var(--border-default); border-radius:var(--radius-md); overflow:hidden;
  transition:border-color .15s, box-shadow .15s; }
.phone-field:focus-within{ border-color:var(--brand); box-shadow:0 0 0 3px var(--focus-ring); }
.phone-field .cc{ display:flex; align-items:center; padding:0 12px 0 16px; font-weight:700; color:var(--text-strong);
  border-right:1px solid var(--border-subtle); height:60%; font-size:16px; }
.phone-field input{ flex:1; min-width:0; border:0; outline:0; background:transparent; padding:0 14px;
  font-family:var(--font-sans); font-size:16px; color:var(--text-strong); }
.capture .hint{ font-size:12px; color:var(--text-subtle); margin-top:10px; }

/* phone mock */
.phone-mock{ width:248px; margin:0 auto; background:var(--slate-950); border-radius:34px; padding:5px; box-shadow:var(--shadow-xl); }
.phone-mock__s{ background:var(--bg-app); border-radius:29px; overflow:hidden; }
.pm-bar{ display:flex; justify-content:space-between; align-items:center; padding:9px 16px 5px; font-size:11px; font-weight:700; color:var(--text-strong); }
.pm-pad{ padding:6px 12px 16px; }
.pm-hero{ background:linear-gradient(135deg,#1B2D5C,#34508C); border-radius:14px; padding:14px; color:#fff; }
.pm-hero .l{ font-size:10px; color:rgba(255,255,255,.7); font-weight:600; }
.pm-hero .v{ font-family:var(--font-display); font-weight:800; font-size:22px; letter-spacing:-.02em; margin-top:1px; }
.pm-hero .chg{ display:inline-flex; align-items:center; gap:3px; background:rgba(255,255,255,.16); color:#7ef0c0; font-weight:700; font-size:11px; padding:3px 8px; border-radius:999px; margin-top:8px; }
.pm-row{ display:flex; justify-content:space-between; align-items:center; padding:11px 4px; border-bottom:1px solid var(--border-subtle); }
.pm-row:last-child{ border-bottom:0; }
.pm-row .s{ font-weight:700; font-size:13px; color:var(--text-strong); }
.pm-list-h{ font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--text-muted); margin:14px 4px 2px; }
/* real app screenshot in a phone bezel */
.phone-shot{ width:248px; margin:0 auto; background:#0b0f1a; border:6px solid #0b0f1a; border-radius:36px;
  box-shadow:var(--shadow-xl); overflow:hidden; }
.phone-shot img{ width:100%; display:block; border-radius:30px; }
.hero-art{ position:relative; }
.badge-float{ position:absolute; background:var(--surface-card); border:1px solid var(--border-subtle);
  box-shadow:var(--shadow-lg); border-radius:999px; padding:8px 14px; font-size:12px; font-weight:700; display:flex; align-items:center; gap:7px; }

/* ============ stat band ============ */
.statband{ background:var(--bg-subtle); border-top:1px solid var(--border-subtle); border-bottom:1px solid var(--border-subtle); }
.statband__grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--border-subtle); }
.statc{ background:var(--bg-subtle); padding:22px 16px; text-align:center; }
.statc .n{ font-family:var(--font-display); font-weight:800; font-size:30px; color:var(--brand); letter-spacing:-.02em; }
.statc .lab{ font-size:12.5px; color:var(--text-muted); font-weight:600; margin-top:4px; }

/* ============ sections ============ */
section.block{ padding:56px 0; }
section.alt{ background:var(--bg-subtle); }
.sec-head{ max-width:600px; margin:0 auto 32px; text-align:center; }
.sec-head.left{ margin-left:0; text-align:left; }
.kicker{ font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--accent); }
.sec-head h2{ font-size:clamp(27px,6.5vw,40px); font-weight:800; margin-top:10px; }
.sec-head p{ font-size:16px; color:var(--text-muted); margin-top:12px; line-height:1.55; }

/* card grids */
.cardgrid{ display:grid; grid-template-columns:repeat(2,1fr); gap:12px; }
.cardgrid.c3{ grid-template-columns:1fr; }
.card{ background:var(--surface-card); border:1px solid var(--border-subtle); border-radius:var(--radius-lg);
  box-shadow:var(--shadow-sm); padding:20px; transition:transform .18s, box-shadow .18s, border-color .18s; }
.card.hover:hover{ transform:translateY(-3px); box-shadow:var(--shadow-lg); border-color:var(--border-default); }
.card .ic{ width:44px; height:44px; border-radius:11px; background:var(--brand-subtle); color:var(--brand);
  display:flex; align-items:center; justify-content:center; margin-bottom:13px; }
.card .ic.accent{ background:var(--accent-subtle); color:var(--accent); }
/* Home product grid: neutral icons so the orange CTAs stay the single focal colour (better for conversion) */
#products .card .ic{ background:var(--slate-100); color:var(--slate-700); }
#products .card.hover:hover .ic{ background:var(--brand-subtle); color:var(--brand); transition:background .18s, color .18s; }
.card h3{ font-size:16px; }
.card p{ font-size:13.5px; color:var(--text-muted); margin-top:6px; line-height:1.5; }

/* feature rows */
.feature{ display:flex; gap:14px; align-items:flex-start; }
.feature .ic{ width:46px; height:46px; flex:none; border-radius:12px; background:var(--accent-subtle); color:var(--accent);
  display:flex; align-items:center; justify-content:center; }
.feature h3{ font-size:16px; }
.feature p{ font-size:13.5px; color:var(--text-muted); margin-top:5px; line-height:1.5; }

/* ============ tech feature cards (blog + watch links) ============ */
.featcard{ display:flex; flex-direction:column; background:var(--surface-card); border:1px solid var(--border-subtle);
  border-radius:var(--radius-lg); box-shadow:var(--shadow-sm); padding:22px; transition:transform .18s, box-shadow .18s, border-color .18s; }
.featcard:hover{ transform:translateY(-3px); box-shadow:var(--shadow-lg); border-color:var(--border-default); }
.featcard .ic{ width:48px; height:48px; flex:none; border-radius:12px; background:var(--brand-subtle); color:var(--brand);
  display:flex; align-items:center; justify-content:center; margin-bottom:14px; }
.featcard .ic.accent{ background:var(--accent-subtle); color:var(--accent); }
.featcard h3{ font-size:17px; }
.featcard p{ font-size:13.5px; color:var(--text-muted); margin-top:7px; line-height:1.55; flex:1; }
.featcard__links{ display:flex; gap:8px; margin-top:16px; flex-wrap:wrap; }
.featcard__links a{ display:inline-flex; align-items:center; gap:6px; font-size:13px; font-weight:700;
  padding:7px 13px; border-radius:var(--radius-full); transition:background .15s, color .15s, border-color .15s; }
.featcard__blog{ color:var(--brand); background:var(--brand-subtle); }
.featcard__blog:hover{ background:var(--brand); color:#fff; }
.featcard__watch{ color:var(--text-body); border:1px solid var(--border-default); }
.featcard__watch:hover{ border-color:var(--accent); color:var(--accent); }
.featcard__watch svg{ width:15px; height:15px; }

/* ============ Insta Options carousel ============ */
.insta-car{ position:relative; width:272px; max-width:100%; margin:0 auto; z-index:1; }
.insta-frame{ background:#fff; border:1px solid var(--border-default); border-radius:30px; padding:8px;
  box-shadow:var(--shadow-xl); }
.insta-track{ display:flex; overflow-x:auto; scroll-snap-type:x mandatory; scroll-behavior:smooth;
  border-radius:22px; }
.insta-track::-webkit-scrollbar{ display:none; }
.insta-slide{ flex:0 0 100%; scroll-snap-align:center; }
.insta-slide img{ width:100%; display:block; border-radius:22px; }
.insta-nav{ position:absolute; top:50%; transform:translateY(-50%); width:40px; height:40px; border-radius:50%;
  background:var(--surface-card); border:1px solid var(--border-default); box-shadow:var(--shadow-md);
  display:flex; align-items:center; justify-content:center; cursor:pointer; color:var(--text-strong); z-index:2; }
.insta-nav:hover{ background:var(--brand); color:#fff; border-color:var(--brand); }
.insta-nav svg{ width:20px; height:20px; }
.insta-nav.prev{ left:-14px; }
.insta-nav.next{ right:-14px; }
.insta-dots{ display:flex; gap:8px; justify-content:center; margin-top:18px; }
.insta-dot{ width:8px; height:8px; border-radius:50%; background:var(--border-strong); cursor:pointer;
  transition:background .2s, width .2s; padding:0; border:0; }
.insta-dot.active{ background:var(--brand); width:22px; border-radius:4px; }
.insta-cap{ text-align:center; margin-top:14px; font-size:13px; font-weight:700; color:var(--text-muted); }

/* split feature (image/illustration + text) */
.split{ display:grid; gap:28px; align-items:center; }
.split__visual{ background:linear-gradient(150deg,#101A35,#223872 60%,#34508C); border-radius:var(--radius-xl);
  min-height:280px; position:relative; overflow:hidden; display:flex; align-items:center; justify-content:center; padding:24px; }
.split__visual::after{ content:""; position:absolute; width:300px; height:300px; border-radius:50%; right:-110px; top:-90px;
  background:radial-gradient(circle, rgba(237,77,55,.34), transparent 60%); }

/* checklist */
.checks{ display:grid; gap:12px; margin-top:18px; }
.checks li{ list-style:none; display:flex; gap:12px; align-items:flex-start; font-size:15px; color:var(--text-body); }
.checks .ck{ width:24px; height:24px; flex:none; border-radius:50%; background:var(--profit-bg); color:var(--profit);
  display:flex; align-items:center; justify-content:center; margin-top:1px; }
.checks .ck svg{ width:14px; height:14px; }
ul.checks{ padding:0; margin:18px 0 0; }

/* ============ savings calculator ============ */
.calc{ background:linear-gradient(150deg,#101A35 0%,#223872 60%,#2E4A85 100%); color:#fff; position:relative; overflow:hidden; }
.calc::after{ content:""; position:absolute; width:380px; height:380px; border-radius:50%; right:-140px; top:-120px;
  background:radial-gradient(circle, rgba(237,77,55,.35), transparent 60%); }
.calc .wrap{ position:relative; z-index:1; padding:56px 20px; }
.calc h2{ color:#fff; font-size:clamp(27px,6.5vw,40px); font-weight:800; text-align:center; }
.calc .kicker{ color:#ffb8ab; text-align:center; display:block; margin-bottom:10px; }
.calc-card{ background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.16); border-radius:var(--radius-xl);
  padding:26px 22px; margin:30px auto 0; max-width:560px; backdrop-filter:blur(4px); }
.calc-lab{ display:flex; justify-content:space-between; font-size:14px; font-weight:600; color:rgba(255,255,255,.85); }
.calc-lab b{ color:#fff; font-size:16px; }
input[type=range]{ -webkit-appearance:none; appearance:none; width:100%; height:6px; border-radius:999px;
  background:rgba(255,255,255,.2); margin:16px 0 4px; outline:none; }
input[type=range]::-webkit-slider-thumb{ -webkit-appearance:none; appearance:none; width:26px; height:26px; border-radius:50%;
  background:var(--accent); border:3px solid #fff; cursor:pointer; box-shadow:0 2px 8px rgba(0,0,0,.3); }
input[type=range]::-moz-range-thumb{ width:24px; height:24px; border-radius:50%; background:var(--accent); border:3px solid #fff; cursor:pointer; }
.calc-out{ display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:24px; }
.calc-out .box{ border-radius:var(--radius-md); padding:16px; text-align:center; }
.calc-out .others{ background:rgba(255,255,255,.08); }
.calc-out .navia{ background:rgba(255,255,255,.96); color:var(--slate-950); }
.calc-out .t{ font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; opacity:.7; }
.calc-out .amt{ font-family:var(--font-display); font-weight:800; font-size:24px; letter-spacing:-.02em; margin-top:5px; }
.calc-out .others .amt{ color:#ff9a8f; text-decoration:line-through; text-decoration-color:rgba(255,154,143,.5); }
.calc-save{ text-align:center; margin-top:22px; }
.calc-save .big{ font-family:var(--font-display); font-weight:800; font-size:clamp(30px,9vw,46px); color:#fff; letter-spacing:-.02em; }
.calc-save .cap{ color:rgba(255,255,255,.8); font-size:14px; margin-top:4px; }
.calc .btn{ margin:22px auto 0; display:flex; max-width:340px; }

/* ============ comparison table ============ */
.ctable-wrap{ overflow-x:auto; border:1px solid var(--border-subtle); border-radius:var(--radius-lg); box-shadow:var(--shadow-sm); }
table.ctable{ width:100%; border-collapse:collapse; min-width:560px; background:var(--surface-card); }
.ctable th, .ctable td{ padding:14px 16px; text-align:left; font-size:14px; border-bottom:1px solid var(--border-subtle); }
.ctable thead th{ font-family:var(--font-display); font-size:14px; color:var(--text-strong); background:var(--bg-subtle); }
.ctable th.navia, .ctable td.navia{ background:color-mix(in oklab, var(--accent) 8%, var(--surface-card)); text-align:center; font-weight:700; }
.ctable thead th.navia{ background:var(--accent); color:#fff; }
.ctable td.navia{ color:var(--accent); }
.ctable td:not(:first-child){ text-align:center; color:var(--text-muted); }
.ctable tbody tr:last-child td{ border-bottom:0; }
.ctable .seg{ font-weight:700; color:var(--text-strong); }
.ctable td .note{ display:block; font-size:11px; color:var(--text-subtle); font-weight:500; margin-top:2px; }

/* ============ charges tabs ============ */
.ctabs{ display:flex; gap:6px; background:var(--bg-subtle); border:1px solid var(--border-subtle); border-radius:var(--radius-full);
  padding:5px; max-width:560px; margin:0 auto 22px; overflow-x:auto; -webkit-overflow-scrolling:touch; }
.ctabs::-webkit-scrollbar{ height:0; }
.ctab{ flex:1 0 auto; white-space:nowrap; appearance:none; border:0; cursor:pointer; font-family:var(--font-sans);
  font-weight:var(--fw-bold); font-size:14px; color:var(--text-muted); padding:10px 16px; border-radius:var(--radius-full);
  transition:background .15s, color .15s, box-shadow .15s; }
.ctab:hover{ color:var(--text-strong); }
.ctab.is-active{ background:var(--surface-card); color:var(--brand); box-shadow:var(--shadow-xs); }
.ctab-panel{ display:none; }
.ctab-panel.is-active{ display:block; animation:ctabfade .25s var(--ease-out); }
@keyframes ctabfade{ from{ opacity:0; transform:translateY(6px); } to{ opacity:1; transform:none; } }
.ctable td.navia .yes{ color:var(--profit); }

/* pricing cards */
.pcards{ display:grid; grid-template-columns:1fr; gap:14px; }
.pcard{ background:var(--surface-card); border:1px solid var(--border-subtle); border-radius:var(--radius-lg);
  padding:22px; box-shadow:var(--shadow-sm); }
.pcard .seg{ font-size:13px; font-weight:700; color:var(--text-muted); }
.pcard .price{ font-family:var(--font-display); font-weight:800; font-size:34px; color:var(--accent); letter-spacing:-.02em; margin:6px 0 2px; }
.pcard .desc{ font-size:13px; color:var(--text-muted); line-height:1.5; }

/* ============ steps ============ */
.steps-grid{ display:grid; grid-template-columns:1fr; gap:14px; max-width:760px; margin:0 auto; }
.step{ display:flex; gap:16px; align-items:flex-start; background:var(--surface-card); border:1px solid var(--border-subtle);
  border-radius:var(--radius-lg); padding:20px; }
.step .n{ width:38px; height:38px; flex:none; border-radius:50%; background:var(--brand); color:#fff;
  font-family:var(--font-display); font-weight:800; display:flex; align-items:center; justify-content:center; }
.step h3{ font-size:17px; }
.step p{ font-size:14px; color:var(--text-muted); margin-top:5px; line-height:1.5; }

/* ============ testimonials ============ */
.quotes{ display:grid; grid-template-columns:1fr; gap:16px; }
.quote{ background:var(--surface-card); border:1px solid var(--border-subtle); border-radius:var(--radius-lg); padding:24px; box-shadow:var(--shadow-sm); }
.quote .stars{ color:var(--accent); font-size:15px; letter-spacing:2px; }
.quote p{ font-size:15px; color:var(--text-body); line-height:1.6; margin-top:12px; }
.quote .who{ display:flex; align-items:center; gap:12px; margin-top:18px; }
.quote .av{ width:42px; height:42px; border-radius:50%; background:var(--brand); color:#fff; display:flex; align-items:center; justify-content:center; font-family:var(--font-display); font-weight:700; }
.quote .nm{ font-weight:700; font-size:14px; color:var(--text-strong); }
.quote .loc{ font-size:12.5px; color:var(--text-muted); }

/* ============ FAQ ============ */
.faq{ max-width:760px; margin:0 auto; display:grid; gap:10px; }
.faq-item{ border:1px solid var(--border-subtle); border-radius:var(--radius-md); background:var(--surface-card); overflow:hidden; }
.faq-q{ width:100%; text-align:left; background:transparent; border:0; cursor:pointer; padding:18px 20px;
  font-family:var(--font-sans); font-size:15px; font-weight:700; color:var(--text-strong);
  display:flex; align-items:center; justify-content:space-between; gap:12px; }
.faq-q .pm{ flex:none; width:22px; height:22px; position:relative; transition:transform .2s; }
.faq-q .pm::before, .faq-q .pm::after{ content:""; position:absolute; background:var(--accent); border-radius:2px; }
.faq-q .pm::before{ top:10px; left:3px; right:3px; height:2px; }
.faq-q .pm::after{ left:10px; top:3px; bottom:3px; width:2px; transition:opacity .2s; }
.faq-item.open .faq-q .pm::after{ opacity:0; }
.faq-a{ max-height:0; overflow:hidden; transition:max-height .26s var(--ease-standard); }
.faq-a p{ padding:0 20px 18px; font-size:14px; color:var(--text-muted); line-height:1.6; }

/* ============ timeline (about) ============ */
.timeline{ max-width:760px; margin:0 auto; position:relative; padding-left:28px; }
.timeline::before{ content:""; position:absolute; left:7px; top:6px; bottom:6px; width:2px; background:var(--border-default); }
.tl{ position:relative; padding:0 0 26px 10px; }
.tl::before{ content:""; position:absolute; left:-25px; top:4px; width:14px; height:14px; border-radius:50%;
  background:var(--accent); border:3px solid var(--surface-card); box-shadow:0 0 0 2px var(--accent); }
.tl .yr{ font-family:var(--font-display); font-weight:800; font-size:18px; color:var(--brand); }
.tl h4{ font-size:16px; margin-top:2px; }
.tl p{ font-size:14px; color:var(--text-muted); margin-top:5px; line-height:1.55; }

/* ============ CTA band ============ */
.ctaband{ background:linear-gradient(135deg,#1B2D5C,#34508C); color:#fff; text-align:center; }
.ctaband .wrap{ padding:60px 20px; }
.ctaband h2{ color:#fff; font-size:clamp(27px,7vw,42px); font-weight:800; }
.ctaband p{ color:rgba(255,255,255,.85); font-size:17px; margin:14px 0 26px; }
.ctaband .capture{ margin:0 auto; }
.ctaband .phone-field{ background:rgba(255,255,255,.96); border-color:transparent; }
.ctaband .hint{ color:rgba(255,255,255,.72); text-align:center; }
.ctaband .or{ color:rgba(255,255,255,.6); font-size:13px; margin:14px 0 4px; }

/* guest demo strip */
.guest{ display:inline-flex; align-items:center; gap:10px; flex-wrap:wrap; justify-content:center;
  background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.22); border-radius:var(--radius-full);
  padding:8px 8px 8px 18px; font-size:14px; font-weight:600; color:#fff; }

/* ============ footer ============ */
.site-ft{ background:var(--slate-950); color:var(--slate-300); padding:48px 0 110px; }
.ft-main{ display:grid; grid-template-columns:1fr; gap:32px; }
.ft-brand img{ height:30px; }
.ft-brand p{ font-size:13px; color:var(--slate-400); margin-top:14px; line-height:1.6; max-width:340px; }
.ft-apps{ display:flex; gap:10px; margin-top:18px; flex-wrap:wrap; }
.ft-app{ display:inline-flex; align-items:center; gap:8px; background:#fff; color:var(--slate-950); border-radius:10px; padding:9px 14px; font-size:13px; font-weight:700; }
.ft-social{ display:flex; gap:10px; margin-top:18px; flex-wrap:wrap; }
.ft-social a{ width:36px; height:36px; border-radius:50%; background:rgba(255,255,255,.08); display:flex; align-items:center; justify-content:center; color:var(--slate-300); transition:background .15s,color .15s; }
.ft-social a:hover{ background:var(--accent); color:#fff; }
.ft-social svg{ width:17px; height:17px; }
.ft-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:24px; }
.ft-grid h5{ color:#fff; font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; margin:0 0 12px; }
.ft-grid a{ display:block; font-size:13.5px; color:var(--slate-300); margin-bottom:9px; }
.ft-grid a:hover{ color:#fff; }
.ft-reglinks{ margin-top:30px; padding-top:20px; border-top:1px solid rgba(255,255,255,.1); display:flex; flex-wrap:wrap; gap:8px 18px; }
.ft-quick{ margin-top:30px; padding-top:20px; border-top:1px solid rgba(255,255,255,.1); display:flex; flex-wrap:wrap; align-items:center; gap:8px 16px; }
.ft-quick__lbl{ font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:var(--slate-500); }
.ft-quick a{ font-size:13px; color:var(--slate-300); font-weight:600; }
.ft-quick a:hover{ color:#fff; }
.ft-reglinks{ margin-top:18px; }
.ft-reglinks a{ font-size:12.5px; color:var(--slate-400); font-weight:600; }
.ft-reglinks a:hover{ color:#fff; }
.ft-reg{ margin-top:24px; font-size:12px; line-height:1.7; color:var(--slate-400); }
.ft-reg b{ color:var(--slate-200); }
.ft-disclosures{ margin-top:18px; display:grid; gap:10px; }
.ft-disclosures p{ font-size:10.5px; line-height:1.65; color:var(--slate-500); margin:0; }
.ft-disclosures a{ color:var(--blue-300); }
.ft-risk{ color:var(--slate-300)!important; background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.1); border-radius:10px; padding:14px 16px; font-size:11px!important; }
.ft-risk b{ color:#fff; }
.ft-copy{ margin-top:18px; font-size:11px; color:var(--slate-500); }

/* ============ blog feed ============ */
.blog-grid{ display:grid; grid-template-columns:1fr; gap:16px; }
.blogc{ display:flex; flex-direction:column; background:var(--surface-card); border:1px solid var(--border-subtle);
  border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-sm); color:inherit;
  transition:transform .18s, box-shadow .18s, border-color .18s; }
.blogc:hover{ transform:translateY(-3px); box-shadow:var(--shadow-lg); border-color:var(--border-default); text-decoration:none; }
.blogc__img{ aspect-ratio:16/9; background:linear-gradient(150deg,#223872,#34508C); background-size:cover; background-position:center; }
.blogc__img--ph{ display:flex; align-items:center; justify-content:center; color:rgba(255,255,255,.55); }
.blogc__body{ padding:16px 16px 18px; display:flex; flex-direction:column; flex:1; }
.blogc__meta{ display:flex; align-items:center; gap:10px; margin-bottom:8px; }
.blogc__cat{ font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:var(--accent);
  background:var(--accent-subtle); padding:3px 8px; border-radius:var(--radius-full); }
.blogc__date{ font-size:12px; color:var(--text-subtle); font-weight:600; }
.blogc__title{ font-size:16px; line-height:1.3; color:var(--text-strong); }
.blogc__ex{ font-size:13px; color:var(--text-muted); margin-top:8px; line-height:1.5; flex:1; }
.blogc__more{ display:inline-flex; align-items:center; gap:6px; margin-top:14px; font-size:13px; font-weight:700; color:var(--brand); }
@media (min-width:620px){ .blog-grid{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:980px){ .blog-grid{ grid-template-columns:repeat(4,1fr); } }

/* sticky mobile CTA */
.sticky-cta{ position:fixed; left:0; right:0; bottom:0; z-index:80; padding:12px 16px calc(12px + env(safe-area-inset-bottom));
  background:color-mix(in oklab, var(--surface-card) 94%, transparent); backdrop-filter:blur(12px);
  border-top:1px solid var(--border-subtle); transform:translateY(120%); transition:transform .3s var(--ease-out);
  display:flex; gap:10px; }
.sticky-cta.show{ transform:translateY(0); }
.sticky-cta .btn{ flex:1; }

/* ============ desktop ============ */
@media (min-width:768px){
  .hdr__nav{ display:flex; } .hdr__login{ display:inline; } .hdr__burger{ display:none; }
  .statband__grid{ grid-template-columns:repeat(4,1fr); }
  .cardgrid{ grid-template-columns:repeat(4,1fr); }
  .cardgrid.c3{ grid-template-columns:repeat(3,1fr); }
  .cardgrid.c2{ grid-template-columns:repeat(2,1fr); }
  .capture-row{ flex-direction:row; flex-wrap:wrap; }
  .capture-row .phone-field{ flex:1 1 260px; min-width:240px; }
  .capture-row .btn{ flex:0 0 auto; }
  .quotes{ grid-template-columns:repeat(2,1fr); }
  .steps-grid{ grid-template-columns:repeat(3,1fr); }
  .pcards{ grid-template-columns:repeat(3,1fr); }
  .split{ grid-template-columns:1fr 1fr; }
  .ft-main{ grid-template-columns:1.3fr 2fr; }
  .ft-grid{ grid-template-columns:repeat(4,1fr); }
  .sticky-cta{ display:none; }
  section.block{ padding:80px 0; }
  .calc .wrap{ padding:80px 20px; }
}
@media (min-width:980px){
  .phero{ padding:64px 0 72px; }
  .phero__grid{ grid-template-columns:1.05fr .95fr; align-items:center; }
  .phone-mock{ width:296px; }
}

/* reveal flourish — content visible by default; JS adds .in for motion */
@media (prefers-reduced-motion: no-preference){
  body.js .reveal{ opacity:0; transform:translateY(20px); }
  body.js .reveal.in{ opacity:1; transform:none; transition:opacity .6s var(--ease-out), transform .6s var(--ease-out); }
}
