/* ============================================================
   DirectB2B Media — Design System
   Palette derived from logo: deep navy #0D2F8F / vivid blue #1774F4
   ============================================================ */
:root{
  --navy-950:#071A4F;
  --navy-900:#0A2472;
  --navy:#0D2F8F;
  --navy-700:#123CA6;
  --blue:#1774F4;
  --blue-600:#0E5FD8;
  --blue-300:#7FB5FF;
  --sky:#EAF2FF;
  --ice:#F5F8FF;
  --ink:#0E1B3A;
  --muted:#5C6B8A;
  --line:#E2E8F5;
  --bg:#F6F8FC;
  --white:#FFFFFF;
  --grad:linear-gradient(135deg,#0D2F8F 0%,#1774F4 100%);
  --grad-soft:linear-gradient(135deg,#EAF2FF 0%,#F5F8FF 100%);
  --sh-sm:0 6px 18px -12px rgba(13,47,143,.25);
  --sh-lg:0 24px 48px -20px rgba(13,47,143,.35);
  --sh-glow:0 14px 34px -12px rgba(23,116,244,.55);
  --r-lg:20px; --r-md:14px; --r-sm:10px;
  --nav-h:92px;
  --font:'Plus Jakarta Sans',system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;
}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-h) + 16px)}
html,body{overflow-x:hidden;max-width:100%}
body{font-family:var(--font);color:var(--ink);background:var(--bg);line-height:1.65;font-size:16px;-webkit-font-smoothing:antialiased;overflow-x:clip}
img{max-width:100%;display:block}
picture{display:block;max-width:100%}
picture>img{width:100%}
a{text-decoration:none;color:inherit}
ul{list-style:none}
button{font-family:inherit;cursor:pointer}
::selection{background:var(--blue);color:#fff}
::-webkit-scrollbar{width:10px}
::-webkit-scrollbar-track{background:var(--ice)}
::-webkit-scrollbar-thumb{background:linear-gradient(var(--navy),var(--blue));border-radius:8px}

.container{width:min(1180px,92%);margin-inline:auto}
section{padding:88px 0}

/* ---------- Typography ---------- */
h1,h2,h3,h4{color:var(--navy-900);line-height:1.2;font-weight:800}
.eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:.78rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--blue);margin-bottom:14px}
.eyebrow::before{content:"";width:34px;height:2px;background:var(--grad);border-radius:2px}
.sec-head{max-width:720px;margin-bottom:52px}
.sec-head.center{margin-inline:auto;text-align:center}
.sec-head.center .eyebrow{justify-content:center}
.sec-head.center .eyebrow::before{display:none}
.sec-head h2{font-size:clamp(1.75rem,3.2vw,2.4rem);margin-bottom:14px;letter-spacing:-.015em}
.sec-head p{color:var(--muted);font-size:1.05rem;line-height:1.7}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:10px;padding:15px 30px;border-radius:12px;font-weight:700;font-size:.98rem;border:0;transition:transform .3s ease,box-shadow .3s ease,background .3s ease,color .3s;position:relative;overflow:hidden}
.btn svg{transition:transform .3s}
.btn:hover svg{transform:translateX(4px)}
.btn-primary{background:var(--grad);color:#fff;box-shadow:var(--sh-glow)}
.btn-primary:hover{transform:translateY(-3px);box-shadow:0 20px 44px -14px rgba(23,116,244,.7)}
.btn-outline{background:transparent;color:var(--navy);border:2px solid var(--navy)}
.btn-outline:hover{background:var(--navy);color:#fff;transform:translateY(-3px)}
.btn-light{background:#fff;color:var(--navy)}
.btn-light:hover{transform:translateY(-3px);box-shadow:0 18px 40px -14px rgba(7,26,79,.5)}
.btn-ghost{background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.35)}
.btn-ghost:hover{background:rgba(255,255,255,.22);transform:translateY(-3px)}
.btn::after{content:"";position:absolute;top:0;left:-80%;width:50%;height:100%;background:linear-gradient(105deg,transparent,rgba(255,255,255,.35),transparent);transform:skewX(-20deg);transition:left .6s ease;pointer-events:none}
.btn:hover::after{left:130%}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--blue-300);outline-offset:3px;border-radius:6px}

/* ---------- Navbar ---------- */
.navbar{position:sticky;top:0;z-index:1000;background:rgba(255,255,255,.92);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid transparent;transition:box-shadow .3s,border-color .3s}
.navbar.scrolled{border-color:var(--line);box-shadow:0 10px 30px -18px rgba(13,47,143,.25)}
.nav-inner{height:var(--nav-h);display:flex;align-items:center;justify-content:space-between;gap:20px}
.brand{display:flex;align-items:center;gap:12px;flex-shrink:0}
.brand img{height:72px;width:auto;transition:transform .3s}
.brand:hover img{transform:scale(1.04)}
.nav-menu{display:flex;align-items:center;gap:6px}
.nav-link{position:relative;padding:10px 15px;font-weight:700;font-size:.94rem;color:var(--navy-900);border-radius:10px;transition:color .25s,background .25s;display:inline-flex;align-items:center;gap:7px}
.nav-link::after{content:"";position:absolute;left:15px;right:15px;bottom:4px;height:3px;border-radius:3px;background:var(--grad);transform:scaleX(0);transform-origin:left;transition:transform .3s ease}
.nav-link:hover{color:var(--blue)}
.nav-link:hover::after{transform:scaleX(1)}
.nav-link.active{color:var(--blue)}
.nav-link.active::after{transform:scaleX(1)}
.nav-cta{margin-left:10px}
.nav-cta .btn{padding:11px 22px;font-size:.9rem}
/* dropdowns */
.has-drop{position:relative}
.has-drop .caret{transition:transform .3s}
.has-drop:hover .caret,.has-drop.open .caret{transform:rotate(180deg)}
.drop{position:absolute;top:calc(100% + 12px);left:0;min-width:270px;background:#fff;border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--sh-lg);padding:10px;opacity:0;transform:translateY(12px);pointer-events:none;transition:opacity .28s ease,transform .28s ease}
.drop::before{content:"";position:absolute;top:-12px;left:0;right:0;height:12px}
.has-drop:hover .drop,.has-drop:focus-within .drop,.has-drop.open .drop{opacity:1;transform:translateY(0);pointer-events:auto}
.drop a{display:flex;align-items:center;gap:10px;padding:11px 14px;border-radius:9px;font-weight:600;font-size:.92rem;color:var(--navy-900);transition:background .22s,color .22s,padding-left .22s}
.drop a:hover{background:var(--sky);color:var(--blue);padding-left:20px}
.drop a .d-ico{width:8px;height:8px;border-radius:50%;background:var(--grad);flex-shrink:0;transition:transform .25s}
.drop a:hover .d-ico{transform:scale(1.5)}
/* hamburger */
.nav-toggle{display:none;width:46px;height:46px;border-radius:12px;border:1px solid var(--line);background:#fff;position:relative;z-index:1101}
.nav-backdrop{display:none}
.nav-toggle span{position:absolute;left:12px;right:12px;height:2.5px;border-radius:3px;background:var(--navy);transition:.35s ease}
.nav-toggle span:nth-child(1){top:15px}.nav-toggle span:nth-child(2){top:22px}.nav-toggle span:nth-child(3){top:29px}
.nav-open .nav-toggle span:nth-child(1){top:22px;transform:rotate(45deg)}
.nav-open .nav-toggle span:nth-child(2){opacity:0}
.nav-open .nav-toggle span:nth-child(3){top:22px;transform:rotate(-45deg)}

/* ---------- Hero (home) ---------- */
.hero{position:relative;padding:96px 0 90px;background:linear-gradient(180deg,#fff 0%,var(--ice) 100%);overflow:hidden}
.hero::before,.hero::after{content:"";position:absolute;border-radius:50%;filter:blur(90px);opacity:.5;pointer-events:none}
.hero::before{width:520px;height:520px;background:var(--sky);top:-160px;right:-120px}
.hero::after{width:420px;height:420px;background:#DCEBFF;bottom:-180px;left:-140px}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;position:relative;z-index:1}
.hero h1{font-size:clamp(2.2rem,4.6vw,3.5rem);letter-spacing:-.02em;margin:14px 0 20px}
.hero h1 .grad{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero .lead{font-size:1.12rem;color:var(--muted);max-width:560px;margin-bottom:32px}
.hero-ctas{display:flex;gap:16px;flex-wrap:wrap}
.hero-points{display:flex;gap:26px;flex-wrap:wrap;margin-top:34px}
.hero-points li{display:flex;align-items:center;gap:9px;font-weight:700;font-size:.9rem;color:var(--navy)}
.hero-points svg{color:var(--blue)}
.hero-visual{position:relative}
.hero-visual .frame{border-radius:26px;overflow:hidden;box-shadow:var(--sh-lg);border:6px solid #fff;position:relative}
.hero-visual .frame::after{content:"";position:absolute;inset:0;background:linear-gradient(160deg,rgba(13,47,143,.18),transparent 55%)}
.hero-visual img{width:100%;height:440px;object-fit:cover;animation:kenburns 18s ease-in-out infinite alternate}
@keyframes kenburns{from{transform:scale(1)}to{transform:scale(1.09)}}
.float-chip{position:absolute;background:#fff;border-radius:14px;box-shadow:var(--sh-lg);padding:14px 18px;display:flex;gap:12px;align-items:center;animation:floaty 5s ease-in-out infinite}
.float-chip .num{font-weight:800;font-size:1.25rem;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.float-chip .lbl{font-size:.78rem;font-weight:700;color:var(--muted);line-height:1.3}
.float-chip.c1{top:26px;left:-34px}
.float-chip.c2{bottom:30px;right:-26px;animation-delay:2.2s}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}

/* ---------- Page hero (sub pages) ---------- */
.page-hero{position:relative;background:var(--grad);color:#fff;padding:86px 0 78px;overflow:hidden}
.page-hero::before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.14) 1px,transparent 1px);background-size:26px 26px;opacity:.5}
.page-hero::after{content:"";position:absolute;width:560px;height:560px;border-radius:50%;background:rgba(255,255,255,.08);top:-260px;right:-160px}
.page-hero .container{position:relative;z-index:1}
.crumb{display:inline-flex;align-items:center;gap:8px;font-size:.85rem;font-weight:700;color:var(--blue-300);margin-bottom:16px}
.crumb a{color:#fff;opacity:.85;transition:opacity .25s}
.crumb a:hover{opacity:1;text-decoration:underline}
.page-hero h1{color:#fff;font-size:clamp(2rem,4vw,3rem);letter-spacing:-.02em;margin-bottom:14px}
.page-hero .lead{color:rgba(255,255,255,.85);max-width:680px;font-size:1.08rem}
.ph-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:52px;align-items:center}
.ph-img{border-radius:22px;overflow:hidden;border:5px solid rgba(255,255,255,.35);box-shadow:0 30px 60px -25px rgba(7,26,79,.6)}
.ph-img img{width:100%;height:340px;object-fit:cover}

/* ---------- Stats strip ---------- */
.stats-band{background:#fff;border-block:1px solid var(--line);padding:56px 0}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;text-align:center}
.stat{position:relative;padding:10px}
.stat + .stat::before{content:"";position:absolute;left:-14px;top:15%;bottom:15%;width:1px;background:var(--line)}
.stat-number{font-size:clamp(2rem,3.6vw,2.9rem);font-weight:800;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;line-height:1.1}
.stat-label{font-weight:700;color:var(--navy-900);margin-top:6px}
.stat-sub{font-size:.85rem;color:var(--muted)}

/* ---------- Cards & grids ---------- */
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:26px}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:30px;box-shadow:var(--sh-sm);transition:transform .35s ease,box-shadow .35s ease,border-color .35s ease;position:relative;overflow:hidden;transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg))}
.card::before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:var(--grad);transform:scaleX(0);transform-origin:left;transition:transform .4s ease}
.card:hover{transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) translateY(-8px);box-shadow:var(--sh-lg);border-color:rgba(23,116,244,.4)}
.card:hover::before{transform:scaleX(1)}
.icon-chip{width:56px;height:56px;border-radius:16px;background:var(--sky);color:var(--blue);display:grid;place-items:center;margin-bottom:20px;flex-shrink:0;transition:background .35s,color .35s,transform .35s}
.icon-chip svg{width:26px;height:26px;stroke-width:2}
.ind-card .icon-chip svg{width:24px;height:24px}
.fc-item .ic svg,.qc-link .ic svg{width:20px;height:20px}
.c-card .icon-chip svg{width:26px;height:26px}
.card:hover .icon-chip{background:var(--grad);color:#fff;transform:rotate(-6deg) scale(1.06)}
.card h3{font-size:1.15rem;margin-bottom:10px}
.card p{color:var(--muted);font-size:.95rem;line-height:1.7}
.card .feat{margin:16px 0 18px;display:grid;gap:9px}
.card .feat li{display:flex;gap:9px;align-items:flex-start;font-size:.9rem;font-weight:600;color:var(--navy)}
.card .feat svg{flex-shrink:0;margin-top:3px;color:var(--blue)}
.learn{display:inline-flex;align-items:center;gap:8px;font-weight:800;font-size:.9rem;color:var(--blue)}
.learn svg{transition:transform .3s}
.learn:hover svg{transform:translateX(5px)}
.learn:hover{text-decoration:underline}

/* industries */
.ind-card{padding:26px;text-align:left;display:flex;gap:16px;align-items:flex-start}
.ind-card .icon-chip{margin-bottom:0;flex-shrink:0;width:52px;height:52px;border-radius:14px}
.ind-card h3{font-size:1.02rem;margin-bottom:6px}
.ind-card p{font-size:.87rem}

/* ---------- Expertise band ---------- */
.expertise{background:var(--navy-950);position:relative;overflow:hidden}
.expertise::before{content:"";position:absolute;inset:0;background:radial-gradient(700px 340px at 85% 0%,rgba(23,116,244,.35),transparent 65%)}
.expertise .sec-head h2{color:#fff}
.expertise .sec-head p{color:rgba(255,255,255,.7)}
.expertise .eyebrow{color:var(--blue-300)}
.exp-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;position:relative}
.exp-card{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);border-radius:var(--r-lg);padding:28px;transition:transform .35s,background .35s,border-color .35s}
.exp-card:hover{transform:translateY(-8px);background:rgba(255,255,255,.1);border-color:rgba(127,181,255,.5)}
.exp-card .n{font-weight:800;font-size:.85rem;color:var(--blue-300);letter-spacing:.14em}
.exp-card h3{color:#fff;font-size:1.08rem;margin:12px 0 10px}
.exp-card p{color:rgba(255,255,255,.68);font-size:.9rem}

/* ---------- CTA band ---------- */
.cta-band{padding:40px 0 100px}
.cta-box{background:var(--grad);border-radius:28px;padding:64px 56px;position:relative;overflow:hidden;color:#fff;box-shadow:var(--sh-lg)}
.cta-box::before,.cta-box::after{content:"";position:absolute;border-radius:50%;background:rgba(255,255,255,.1)}
.cta-box::before{width:340px;height:340px;top:-170px;right:-90px}
.cta-box::after{width:240px;height:240px;bottom:-130px;left:-70px}
.cta-box h2{color:#fff;font-size:clamp(1.7rem,3.2vw,2.4rem);margin-bottom:12px;position:relative}
.cta-box p{color:rgba(255,255,255,.85);max-width:640px;margin-bottom:30px;position:relative}
.cta-box .hero-ctas{position:relative}

/* ---------- Process timeline ---------- */
.timeline{position:relative;max-width:860px;margin-inline:auto;display:grid;gap:0}
.timeline li{position:relative;padding:0 0 42px 78px}
.timeline li::before{content:"";position:absolute;left:27px;top:56px;bottom:-2px;width:2px;background:linear-gradient(var(--blue),var(--sky))}
.timeline li:last-child::before{display:none}
.tl-num{position:absolute;left:0;top:0;width:56px;height:56px;border-radius:50%;background:var(--grad);color:#fff;display:grid;place-items:center;font-weight:800;font-size:1.15rem;box-shadow:var(--sh-glow);transition:transform .3s}
.timeline li:hover .tl-num{transform:scale(1.12)}
.tl-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:22px 26px;box-shadow:var(--sh-sm);transition:transform .3s,box-shadow .3s}
.timeline li:hover .tl-card{transform:translateX(8px);box-shadow:var(--sh-lg)}
.tl-card h3{font-size:1.05rem;margin-bottom:6px}
.tl-card p{color:var(--muted);font-size:.92rem}

/* ---------- Comparison table ---------- */
.table-wrap{overflow-x:auto;border-radius:var(--r-lg);box-shadow:var(--sh-lg);border:1px solid var(--line)}
table.compare{width:100%;border-collapse:collapse;background:#fff;min-width:640px}
.compare th,.compare td{padding:16px 22px;text-align:left;font-size:.94rem}
.compare thead th{background:var(--grad);color:#fff;font-weight:800;font-size:.98rem}
.compare tbody tr{border-top:1px solid var(--line);transition:background .25s}
.compare tbody tr:nth-child(even){background:var(--ice)}
.compare tbody tr:hover{background:var(--sky)}
.compare td:first-child{font-weight:700;color:var(--navy-900)}
.compare .yes{color:#0A8A4A;font-weight:700}
.compare .no{color:#B4433A;font-weight:700}

/* ---------- Chips (tools) ---------- */
.chips{display:flex;flex-wrap:wrap;gap:12px}
.chip{display:inline-flex;align-items:center;background:#fff;border:1px solid var(--line);border-radius:999px;padding:10px 20px;font-weight:700;font-size:.9rem;color:var(--navy);box-shadow:var(--sh-sm);transition:transform .3s,background .3s,color .3s,border-color .3s}
.chip:hover{transform:translateY(-4px);background:var(--grad);color:#fff;border-color:transparent}

/* ---------- Trust / certification band (above footer) ---------- */
.trust-band{background:var(--navy-950);position:relative;overflow:hidden;padding:78px 0}
.trust-band::before{content:"";position:absolute;inset:0;background:radial-gradient(760px 380px at 12% 0%,rgba(23,116,244,.3),transparent 60%)}
.trust-band .sec-head h2{color:#fff}
.trust-band .sec-head p{color:rgba(255,255,255,.7)}
.trust-band .eyebrow{color:var(--blue-300)}
.badge-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;position:relative;align-items:stretch}
.badge-card{display:flex;flex-direction:column;align-items:center;background:#fff;border-radius:18px;padding:28px 20px 24px;text-align:center;min-height:100%;box-shadow:0 20px 44px -20px rgba(0,0,0,.5);transition:transform .35s ease,box-shadow .35s ease;position:relative;overflow:hidden;color:var(--ink)}
.badge-card::before{content:"";position:absolute;top:0;left:0;width:60%;height:100%;background:linear-gradient(105deg,transparent 0%,rgba(23,116,244,.14) 50%,transparent 100%);transform:translateX(-130%) skewX(-12deg);transition:transform .7s ease;pointer-events:none}
.badge-card::after{content:"";position:absolute;inset:auto 14px 0 14px;height:3px;border-radius:3px;background:var(--grad);transform:scaleX(0);transform-origin:left;transition:transform .4s ease}
.badge-card:hover{transform:translateY(-8px) scale(1.02);box-shadow:0 26px 54px -22px rgba(23,116,244,.6)}
.badge-card:hover::before{transform:translateX(240%) skewX(-12deg)}
.badge-card:hover::after{transform:scaleX(1)}
.badge-img,.badge-img.wide{width:96px;height:96px;object-fit:contain;padding:8px;margin:0 auto 16px;border-radius:50%;background:#fff;border:1px solid var(--line);box-shadow:0 10px 24px -12px rgba(13,47,143,.35);flex-shrink:0;transition:transform .35s,box-shadow .35s}
.badge-card:hover .badge-img{transform:scale(1.06);box-shadow:0 16px 30px -12px rgba(23,116,244,.45)}
.badge-card h3{font-size:1.02rem;margin-bottom:6px;letter-spacing:-.01em}
.badge-card p{font-size:.86rem;color:var(--muted);line-height:1.6;max-width:240px}
.badge-cta{display:inline-flex;align-items:center;gap:6px;margin-top:auto;padding-top:12px;font-size:.7rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--blue);opacity:0;transform:translateY(6px);transition:opacity .3s,transform .3s}
.badge-card:hover .badge-cta{opacity:1;transform:none}
.on-light .badge-card{border:1px solid var(--line);box-shadow:var(--sh-sm)}
.on-light .badge-card:hover{box-shadow:var(--sh-lg)}
.feat-label{font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:800;margin:16px 0 10px}

/* ---------- FAQ accordion ---------- */
.faq-list{max-width:840px;margin-inline:auto;display:grid;gap:14px}
details.faq{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;transition:box-shadow .3s,border-color .3s}
details.faq[open]{box-shadow:var(--sh-lg);border-color:rgba(23,116,244,.4)}
details.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:14px;padding:18px 22px;font-weight:700;color:var(--navy-900);font-size:.98rem;transition:color .25s}
details.faq summary:hover{color:var(--blue)}
details.faq summary::-webkit-details-marker{display:none}
details.faq summary .fx{width:28px;height:28px;border-radius:9px;background:var(--sky);color:var(--blue);display:grid;place-items:center;flex-shrink:0;font-weight:800;font-size:1.05rem;transition:transform .35s,background .3s,color .3s}
details.faq[open] summary .fx{transform:rotate(45deg);background:var(--grad);color:#fff}
details.faq .faq-body{padding:0 22px 20px;color:var(--muted);font-size:.94rem}

/* ---------- Cookie consent ---------- */
.cookie-bar{position:fixed;left:50%;transform:translateX(-50%) translateY(160%);bottom:18px;z-index:1300;width:min(760px,calc(100vw - 32px));background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--sh-lg);padding:18px 22px;display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap;transition:transform .5s ease}
.cookie-bar.show{transform:translateX(-50%) translateY(0)}
.cookie-bar p{font-size:.85rem;color:var(--muted);flex:1;min-width:240px}
.cookie-bar p a{color:var(--blue);font-weight:700}
.cookie-btns{display:flex;gap:10px}
.cookie-btns .btn{padding:11px 18px;font-size:.85rem}

/* ---------- Footer ---------- */
.footer{background:var(--navy-950);color:rgba(255,255,255,.72);position:relative;font-size:.94rem}
.footer::before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:var(--grad)}
.footer-main{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:48px;padding:64px 0 52px;align-items:start}
.footer-brand{max-width:340px}
.footer-logo{display:inline-flex;align-items:center;justify-content:flex-start;background:#fff;border-radius:12px;padding:8px 14px 8px 10px;margin-left:0;box-shadow:0 14px 34px -16px rgba(0,0,0,.6);transition:transform .35s,box-shadow .35s}
.footer-logo:hover{transform:translateY(-3px);box-shadow:0 18px 40px -14px rgba(23,116,244,.55)}
.footer-logo img{height:48px;width:auto;display:block}
.footer-brand{text-align:left}
.footer-brand .tagline{text-align:left}
.footer-brand .tagline{font-size:.94rem;line-height:1.7;margin:22px 0 22px;color:rgba(255,255,255,.72)}
.footer-seals{display:flex;gap:10px;flex-wrap:wrap}
.footer-seals a{display:inline-flex;border-radius:50%;transition:transform .3s}
.footer-seals a:hover{transform:translateY(-4px)}
.footer-seals img{width:48px;height:48px;object-fit:contain;border-radius:50%;background:#fff;padding:4px;box-shadow:0 8px 18px -8px rgba(0,0,0,.5)}
.footer-social{display:flex;align-items:center;gap:12px;margin-top:22px}
.footer-social .fs-label{font-size:.8rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.55)}
.social-btn{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);color:#fff;transition:background .25s,border-color .25s,transform .25s,box-shadow .25s}
.social-btn:hover,.social-btn:focus-visible{background:#0A66C2;border-color:#0A66C2;transform:translateY(-3px);box-shadow:0 12px 24px -10px rgba(10,102,194,.7);outline:none}
.social-btn svg{display:block}
.footer h4{color:#fff;font-size:.86rem;letter-spacing:.14em;text-transform:uppercase;margin-bottom:22px;position:relative;padding-bottom:12px;font-weight:800}
.footer h4::after{content:"";position:absolute;left:0;bottom:0;width:32px;height:3px;border-radius:3px;background:var(--grad)}
.footer ul{display:grid;gap:12px;justify-items:start}
.footer ul a{font-size:.94rem;line-height:1.5;color:rgba(255,255,255,.72);display:inline-flex;align-items:flex-start;gap:8px;transition:color .25s,transform .25s}
.footer ul a::before{content:"›";color:var(--blue-300);font-weight:800;line-height:inherit;flex-shrink:0;transition:transform .25s}
.footer ul a:hover{color:#fff;transform:translateX(4px)}
.footer-contact{border-top:1px solid rgba(255,255,255,.1);padding:38px 0}
.fc-grid{display:grid;grid-template-columns:1.2fr 1fr 1.3fr;gap:36px;align-items:start}
.fc-item{display:flex;gap:16px;align-items:flex-start}
.fc-item .ic{width:46px;height:46px;border-radius:12px;background:rgba(23,116,244,.18);color:var(--blue-300);display:grid;place-items:center;flex-shrink:0;transition:background .3s,color .3s,transform .3s}
.fc-item .ic svg{width:20px;height:20px}
.fc-item:hover .ic{background:var(--grad);color:#fff;transform:rotate(-8deg)}
.fc-label{display:block;font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--blue-300);font-weight:800;margin-bottom:8px}
.fc-item a{display:block;color:rgba(255,255,255,.88);font-weight:600;font-size:.94rem;line-height:1.5;margin-bottom:5px;transition:color .25s,transform .25s;word-break:break-word}
.fc-item a:hover{color:var(--blue-300);transform:translateX(3px)}
.fc-item .addr{display:block;color:rgba(255,255,255,.72);font-size:.94rem;line-height:1.65}
.fc-sub{display:block;font-size:.8rem;color:rgba(255,255,255,.5);margin-top:3px}
.footer-news{border-top:1px solid rgba(255,255,255,.1);padding:34px 0}
.news-box{display:flex;gap:24px;align-items:center;justify-content:space-between;flex-wrap:wrap;background:rgba(23,116,244,.14);border:1px solid rgba(127,181,255,.25);border-radius:18px;padding:22px 28px}
.news-box h4{color:#fff;margin:0;padding:0;font-size:1.02rem;letter-spacing:0;text-transform:none}
.news-box h4::after{display:none}
.news-box p{color:rgba(255,255,255,.7);font-size:.9rem;margin-top:6px}
.news-form{display:flex;gap:10px;flex-wrap:wrap}
.news-form input{border:1.5px solid rgba(255,255,255,.25);background:rgba(255,255,255,.08);color:#fff;border-radius:10px;padding:13px 16px;min-width:260px;outline:none;font-family:inherit;font-size:.94rem;transition:border-color .25s,background .25s}
.news-form input::placeholder{color:rgba(255,255,255,.5)}
.news-form input:focus{border-color:var(--blue-300);background:rgba(255,255,255,.14)}
.news-msg{font-size:.86rem;color:#7CFCB2;margin-top:12px;display:none;font-weight:700}
.news-msg.show{display:block}
.footer-bottom{border-top:1px solid rgba(255,255,255,.1);padding:22px 0}
.footer-bottom .container{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;font-size:.86rem;color:rgba(255,255,255,.55)}
.footer-bottom strong{color:rgba(255,255,255,.85)}
.footer-bottom-links{display:flex;gap:22px}
.footer-bottom-links a{color:rgba(255,255,255,.6);transition:color .25s}
.footer-bottom-links a:hover{color:#fff}

/* ---------- Back to top ---------- */
.to-top{position:fixed;right:26px;bottom:26px;width:50px;height:50px;border-radius:14px;background:var(--grad);color:#fff;border:0;display:grid;place-items:center;box-shadow:var(--sh-glow);opacity:0;transform:translateY(20px) scale(.9);pointer-events:none;transition:opacity .35s,transform .35s;z-index:900}
.to-top.show{opacity:1;transform:none;pointer-events:auto}
.to-top:hover{transform:translateY(-4px)}

/* ---------- Typing rotator ---------- */
.hero-typed{display:flex;align-items:center;gap:8px;margin:-8px 0 28px;font-weight:700;font-size:1rem;color:var(--navy)}
.hero-typed #typedText{color:var(--blue);min-height:1.4em}
.type-caret{width:2px;height:1.15em;background:var(--blue);animation:blink 1s steps(1) infinite}
@keyframes blink{50%{opacity:0}}

/* ---------- Quick contact widget ---------- */
.qc-fab{position:fixed;left:26px;bottom:26px;z-index:950;display:inline-flex;align-items:center;gap:10px;background:var(--grad);color:#fff;border:0;border-radius:999px;padding:14px 22px;font-weight:800;font-size:.92rem;font-family:inherit;box-shadow:var(--sh-glow);transition:transform .3s,box-shadow .3s}
.qc-fab:hover{transform:translateY(-4px);box-shadow:0 20px 44px -14px rgba(23,116,244,.75)}
.qc-fab .dot{width:9px;height:9px;border-radius:50%;background:#7CFCB2;box-shadow:0 0 0 0 rgba(124,252,178,.6);animation:pulse 2s infinite}
@keyframes pulse{to{box-shadow:0 0 0 12px rgba(124,252,178,0)}}
.qc-panel{position:fixed;left:26px;bottom:92px;z-index:950;width:min(330px,calc(100vw - 52px));background:#fff;border-radius:18px;border:1px solid var(--line);box-shadow:var(--sh-lg);padding:24px;opacity:0;transform:translateY(16px) scale(.97);pointer-events:none;transition:opacity .3s,transform .3s}
.qc-panel.open{opacity:1;transform:none;pointer-events:auto}
.qc-panel h3{font-size:1.05rem;margin-bottom:4px}
.qc-panel .qc-sub{font-size:.82rem;color:var(--muted);margin-bottom:16px;display:flex;align-items:center;gap:7px}
.qc-panel .qc-sub .dot{width:8px;height:8px;border-radius:50%;background:#18B26B;animation:pulse 2s infinite}
.qc-link{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:10px;font-weight:700;font-size:.88rem;color:var(--navy-900);transition:background .25s,color .25s;word-break:break-all}
.qc-link:hover{background:var(--sky);color:var(--blue)}
.qc-link .ic{width:36px;height:36px;border-radius:10px;background:var(--sky);color:var(--blue);display:grid;place-items:center;flex-shrink:0}
.qc-link:hover .ic{background:var(--grad);color:#fff}
.qc-cta{margin-top:12px;width:100%;justify-content:center}

/* ---------- Scroll progress ---------- */
.scroll-progress{position:fixed;top:0;left:0;height:3px;width:0;background:var(--grad);z-index:1200;box-shadow:0 0 12px rgba(23,116,244,.6);transition:width .08s linear}

/* ---------- Marquee ticker ---------- */
.marquee-band{background:#fff;border-block:1px solid var(--line);padding:16px 0;overflow:hidden;position:relative}
.marquee-band::before,.marquee-band::after{content:"";position:absolute;top:0;bottom:0;width:90px;z-index:1;pointer-events:none}
.marquee-band::before{left:0;background:linear-gradient(90deg,#fff,transparent)}
.marquee-band::after{right:0;background:linear-gradient(-90deg,#fff,transparent)}
.marquee{display:flex;width:max-content;animation:marquee 30s linear infinite}
.marquee-band:hover .marquee{animation-play-state:paused}
.marquee span{display:inline-flex;align-items:center;gap:14px;padding:0 22px;font-weight:800;font-size:.9rem;color:var(--navy);white-space:nowrap}
.marquee span::after{content:"";width:8px;height:8px;border-radius:50%;background:var(--grad)}
@keyframes marquee{to{transform:translateX(-50%)}}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  html{scroll-behavior:auto}
  .reveal{opacity:1;transform:none}
}

/* ---------- Reveal animations ---------- */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .75s ease,transform .75s ease}
.reveal.in{opacity:1;transform:none}
.reveal[data-delay="1"]{transition-delay:.12s}
.reveal[data-delay="2"]{transition-delay:.24s}
.reveal[data-delay="3"]{transition-delay:.36s}
.reveal[data-delay="4"]{transition-delay:.48s}
.reveal[data-delay="5"]{transition-delay:.6s}

/* ---------- Legal pages ---------- */
.legal-layout{display:grid;grid-template-columns:270px 1fr;gap:48px;align-items:start}
.legal-index{position:sticky;top:calc(var(--nav-h) + 24px);background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:24px;box-shadow:var(--sh-sm);max-height:calc(100vh - var(--nav-h) - 48px);overflow:auto}
.legal-index h3{font-size:.95rem;margin-bottom:14px}
.legal-index ol{display:grid;gap:4px;counter-reset:idx}
.legal-index a{display:flex;gap:10px;padding:8px 12px;border-radius:8px;font-size:.86rem;font-weight:600;color:var(--muted);transition:background .25s,color .25s;counter-increment:idx}
.legal-index a::before{content:counter(idx,decimal-leading-zero);font-weight:800;color:var(--blue-300);font-size:.78rem}
.legal-index a:hover,.legal-index a.active{background:var(--sky);color:var(--blue)}
.legal-body .l-sec{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:32px 36px;margin-bottom:24px;box-shadow:var(--sh-sm);transition:box-shadow .3s}
.legal-body .l-sec:hover{box-shadow:var(--sh-lg)}
.legal-body h2{font-size:1.3rem;margin-bottom:14px;display:flex;gap:12px;align-items:baseline}
.legal-body h2 .no{color:var(--blue);font-weight:800;font-size:1rem}
.legal-body h3{font-size:1.02rem;margin:18px 0 8px}
.legal-body p,.legal-body li{color:var(--muted);font-size:.94rem;margin-bottom:10px}
.legal-body ul{padding-left:4px;display:grid;gap:8px}
.legal-body ul li{display:flex;gap:10px}
.legal-body ul li::before{content:"•";color:var(--blue);font-weight:800}
.legal-body a{color:var(--blue);font-weight:600}
.legal-body a:hover{text-decoration:underline}
.updated-pill{display:inline-flex;gap:8px;align-items:center;background:var(--sky);color:var(--navy);font-weight:700;font-size:.85rem;border-radius:999px;padding:8px 18px;margin-bottom:26px}

/* ---------- Contact ---------- */
.contact-grid{display:grid;grid-template-columns:1fr 1.25fr;gap:30px;align-items:start}
.c-card{display:flex;gap:18px;align-items:flex-start}
.c-card .icon-chip{margin-bottom:0;flex-shrink:0}
.c-card h3{font-size:1.08rem;margin-bottom:8px}
.c-card a.mail{display:flex;align-items:center;gap:8px;color:var(--blue);font-weight:700;font-size:.95rem;margin-bottom:6px;transition:transform .25s}
.c-card a.mail:hover{transform:translateX(5px);text-decoration:underline}
.form-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:36px;box-shadow:var(--sh-lg)}
.form-card h3{font-size:1.3rem;margin-bottom:6px}
.form-card .sub{color:var(--muted);font-size:.92rem;margin-bottom:24px}
.f-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.f-group{margin-bottom:16px}
.f-group label{display:block;font-weight:700;font-size:.85rem;color:var(--navy-900);margin-bottom:7px}
.f-group input,.f-group select,.f-group textarea{width:100%;border:1.5px solid var(--line);border-radius:10px;padding:13px 15px;font-family:inherit;font-size:.94rem;color:var(--ink);background:var(--ice);transition:border-color .25s,box-shadow .25s,background .25s;outline:none}
.f-group input:focus,.f-group select:focus,.f-group textarea:focus{border-color:var(--blue);background:#fff;box-shadow:0 0 0 4px rgba(23,116,244,.14)}
.f-group textarea{min-height:120px;resize:vertical}
.form-note{display:flex;gap:8px;align-items:center;font-size:.82rem;color:var(--muted);margin-top:14px}
.form-success{display:none;background:#E9F9F0;border:1px solid #B7E7CC;color:#0A8A4A;font-weight:700;border-radius:12px;padding:14px 18px;margin-top:18px}
.form-success.show{display:block;animation:pop .4s ease}
.form-success.pending{background:#FFF7E6;border-color:#F1D28A;color:#8A5A00}
@keyframes pop{from{transform:scale(.94);opacity:0}to{transform:scale(1);opacity:1}}
.safe-strip{margin-top:34px;background:var(--grad);border-radius:var(--r-lg);padding:26px 30px;display:flex;gap:22px;align-items:center;justify-content:space-between;flex-wrap:wrap;color:#fff;box-shadow:var(--sh-glow)}
.safe-strip h3{color:#fff;font-size:1.1rem}
.safe-strip p{color:rgba(255,255,255,.8);font-size:.88rem}
.safe-badges{display:flex;gap:14px;flex-wrap:wrap}
.safe-badges img,.safe-badges img.wide{height:64px;width:64px;object-fit:contain;border-radius:50%;padding:5px;background:#fff;box-shadow:0 10px 24px -8px rgba(0,0,0,.45);transition:transform .3s}
.safe-badges a{display:inline-flex;border-radius:50%;transition:transform .3s}
.safe-badges a:hover{transform:translateY(-5px) scale(1.06)}
.safe-badges img:hover{transform:translateY(-5px) scale(1.06)}

/* ---------- About extras ---------- */
.story-grid{display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:center}
.story-grid img,.story-grid picture img{border-radius:var(--r-lg);box-shadow:var(--sh-lg);height:420px;width:100%;object-fit:cover}
.mv-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px}
.mv-card{border-top:5px solid transparent;background-image:linear-gradient(#fff,#fff),var(--grad);background-origin:border-box;background-clip:padding-box,border-box}
.value-card{text-align:center}
.value-card .icon-chip{margin-inline:auto}
.apart-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.apart-card{border-left:4px solid var(--blue);padding:24px}

/* ---------- Benefits list ---------- */
.benefit-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.benefit-card{text-align:center;padding:30px 22px}
.benefit-card .big{font-size:2rem;font-weight:800;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;line-height:1}

/* ---------- BANT cards ---------- */
.bant-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:34px}
.bant-card{position:relative;padding-top:38px;overflow:visible}
.bant-card::before{border-radius:var(--r-lg) var(--r-lg) 0 0}
.bant-letter{position:absolute;top:-26px;left:26px;width:56px;height:56px;border-radius:16px;background:var(--grad);color:#fff;display:grid;place-items:center;font-size:1.5rem;font-weight:800;box-shadow:var(--sh-glow);transition:transform .3s}
.bant-card:hover .bant-letter{transform:rotate(-8deg) scale(1.1)}
.q-list{margin-top:14px;display:grid;gap:8px}
.q-list li{font-size:.85rem;color:var(--muted);display:flex;gap:8px}
.q-list li::before{content:"?";color:var(--blue);font-weight:800}

/* ---------- Responsive ---------- */
@media (max-width:1080px){
  .grid-4,.badge-grid,.exp-grid,.apart-grid,.benefit-grid,.bant-grid{grid-template-columns:repeat(2,1fr)}
  .hero-grid,.ph-grid,.story-grid,.contact-grid,.mv-grid{grid-template-columns:1fr}
  .ph-img img,.hero-visual img{height:340px}
  .float-chip.c1{left:10px}
  .float-chip.c2{right:10px}
  .legal-layout{grid-template-columns:1fr}
  .legal-index{position:static;max-height:none}
  .legal-index ol{display:flex;flex-wrap:wrap;gap:6px}
  .legal-index a{border:1px solid var(--line)}
}
@media (max-width:960px){
  .navbar{backdrop-filter:none;-webkit-backdrop-filter:none;background:rgba(255,255,255,.98)}
  body.dark .navbar{background:rgba(10,17,40,.98)}
  .nav-toggle{display:block}
  .brand img{height:56px}
  .badge-card p{max-width:none}
  .fc-grid{grid-template-columns:1fr;gap:26px}
  .footer-main{grid-template-columns:1fr 1fr;gap:40px 32px}
  .footer-brand{grid-column:1 / -1;max-width:none}
  .nav-menu{position:fixed;top:0;right:0;height:100vh;height:100dvh;width:min(360px,88vw);background:#fff;flex-direction:column;align-items:stretch;padding:96px 26px 30px;gap:4px;transform:translateX(105%);visibility:hidden;transition:transform .45s cubic-bezier(.22,.9,.3,1),visibility 0s linear .45s;box-shadow:-20px 0 60px rgba(7,26,79,.2);overflow-y:auto;z-index:1100}
  .nav-open .nav-menu{transform:none;visibility:visible;transition-delay:0s}
  .nav-open{overflow:hidden}
  .nav-backdrop{display:block;position:fixed;inset:0;background:rgba(7,26,79,.5);opacity:0;pointer-events:none;transition:opacity .35s;z-index:1099}
  .nav-open .nav-backdrop{opacity:1;pointer-events:auto}
  .nav-link{padding:14px 12px;font-size:1.02rem}
  .nav-link::after{display:none}
  .has-drop .drop{position:static;opacity:1;transform:none;pointer-events:none;box-shadow:none;border:0;background:var(--ice);max-height:0;overflow:hidden;transition:max-height .45s ease;padding:0 10px;min-width:0}
  .has-drop.open .drop{max-height:480px;pointer-events:auto;padding:10px}
  .nav-cta{margin:14px 0 0}
  .stats{grid-template-columns:repeat(2,1fr)}
  .stat + .stat::before{display:none}
  .grid-3,.grid-2{grid-template-columns:1fr}
  .f-row{grid-template-columns:1fr}
  .cta-box{padding:46px 30px}
}
@media (max-width:620px){
  :root{--nav-h:72px}
  section{padding:60px 0}
  .container{width:min(1180px,90%)}
  .brand img{height:46px}
  .nav-inner{gap:10px}
  .theme-toggle,.nav-toggle{width:42px;height:42px}
  .sec-head{margin-bottom:34px}
  .sec-head h2{font-size:1.65rem}
  .sec-head p{font-size:.98rem}
  .eyebrow{font-size:.72rem;letter-spacing:.14em}
  .hero h1{font-size:2.05rem}
  .hero .lead{font-size:1rem}
  .card h3{font-size:1.08rem}
  .card p{font-size:.92rem}
  h3{font-size:1.08rem}
  .cta-box h2{font-size:1.6rem}
  .cta-box p{font-size:.96rem}
  .hero-ctas .btn,.cta-box .btn{width:100%;justify-content:center}
  .btn{padding:14px 22px;font-size:.94rem}
  .card{padding:24px 20px}
  .badge-grid{grid-template-columns:1fr 1fr;gap:12px}
  .badge-card{padding:18px 10px 16px;border-radius:14px}
  .badge-img,.badge-img.wide{width:76px;height:76px;padding:6px;margin-bottom:12px}
  .badge-card h3{font-size:.9rem}
  .badge-card p{font-size:.78rem}
  .badge-cta{display:none}
  .footer h4{margin-bottom:16px}
  .footer-contact,.footer-news{padding:28px 0}
  .footer-bottom .container{justify-content:center;text-align:center}
  .news-box{padding:18px}
  .news-form{width:100%}
  .news-form input{min-width:0;width:100%;flex:1 1 100%}
  .news-form .btn{width:100%;justify-content:center}
  .fc-item .ic{width:40px;height:40px}
  .footer-contact{padding:26px 0}
  .cta-box{padding:38px 22px;border-radius:20px}
  .to-top{right:16px;bottom:16px;width:44px;height:44px}
  .qc-fab{left:16px;bottom:16px;padding:12px 16px;font-size:.85rem}
  .qc-panel{left:16px;bottom:74px}
  .cookie-bar{bottom:0;left:0;transform:translateY(160%);width:100%;border-radius:16px 16px 0 0;padding:16px}
  .cookie-bar.show{transform:translateY(0)}
  .cookie-btns{width:100%}
  .cookie-btns .btn{flex:1;justify-content:center}
  .form-card{padding:24px 18px}
  .testi-card{padding:30px 22px}
  .testi-arrow{display:none}
  .ph-img img,.hero-visual img{height:240px}
  .page-hero{padding:56px 0 50px}
  .stat-number{font-size:1.9rem}
  .safe-badges{gap:10px}
  .safe-badges img,.safe-badges img.wide{height:52px;width:52px;padding:4px}
  .timeline li{padding-left:64px}
  .tl-num{width:46px;height:46px;font-size:1rem}
  .timeline li::before{left:22px;top:48px}
  .legal-body .l-sec{padding:22px 18px}
  .table-wrap{margin-inline:-5%;border-radius:0;border-left:0;border-right:0}
  .grid-4,.exp-grid,.apart-grid,.benefit-grid,.bant-grid{grid-template-columns:1fr}
  .stats{grid-template-columns:1fr 1fr;gap:18px}
  .footer-main{grid-template-columns:1fr 1fr;gap:34px 24px;padding:44px 0 36px}
  .footer-brand{grid-column:1 / -1;max-width:none}
  .footer ul{gap:10px}
  .footer ul a{font-size:.9rem}
  .hero{padding:64px 0}
  .hero-visual img{height:280px}
  .float-chip{display:none}
  .safe-strip{flex-direction:column;align-items:flex-start}
}

/* ---------- Testimonials carousel ---------- */
.testi-sec{background:#fff}
.testi-wrap{position:relative;max-width:880px;margin-inline:auto;overflow:hidden;padding:0 8px}
.testi-track{display:flex;transition:transform .6s cubic-bezier(.22,.9,.3,1)}
.testi-slide{min-width:100%;padding:10px}
.testi-card{background:var(--ice);border:1px solid var(--line);border-radius:20px;padding:42px 46px;text-align:center}
.testi-card .q{font-size:3rem;line-height:1;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;font-weight:800}
.testi-card p.quote{font-size:1.08rem;color:var(--ink);font-weight:600;margin:14px 0 18px;line-height:1.7}
.testi-card .who{font-weight:800;color:var(--navy-900)}
.testi-card .role{color:var(--muted);font-size:.85rem}
.testi-nav{display:flex;justify-content:center;gap:8px;margin-top:20px}
.testi-dot{width:10px;height:10px;border-radius:50%;background:var(--line);border:0;transition:.3s;cursor:pointer;padding:0}
.testi-dot.active{background:var(--blue);width:26px;border-radius:6px}
.testi-arrow{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--navy);display:grid;place-items:center;cursor:pointer;transition:.3s;z-index:2}
.testi-arrow:hover{background:var(--grad);color:#fff}
.testi-arrow.prev{left:0}.testi-arrow.next{right:0}

/* ---------- Theme toggle ---------- */
.theme-toggle{width:44px;height:44px;border-radius:12px;border:1px solid var(--line);background:#fff;display:grid;place-items:center;color:var(--navy);transition:.3s;flex-shrink:0}
.theme-toggle:hover{transform:translateY(-2px);box-shadow:var(--sh-sm)}

/* ---------- Dark theme ---------- */
body.dark{background:#0A1128;color:#DCE4F5;--ice:#0E1730;--sky:#12204A;--white:#0E1730;--ink:#E4EAF7;--muted:#9AA8C7;--line:rgba(148,163,204,.18);--navy-900:#F0F4FF;--navy:#CFE0FF;--blue:#4D94FF;--blue-300:#8FC0FF}
body.dark h1,body.dark h2,body.dark h3,body.dark h4{color:#F0F4FF}
body.dark .navbar{background:rgba(10,17,40,.92)}
body.dark .nav-link{color:#DCE4F5}
body.dark .nav-link:hover,body.dark .nav-link.active{color:var(--blue-300)}
body.dark .nav-toggle{background:#101A38;border-color:rgba(255,255,255,.15)}
body.dark .nav-toggle span{background:#fff}
body.dark .brand img{background:#fff;border-radius:12px;padding:6px 12px}
body.dark .drop{background:#101A38;border-color:rgba(255,255,255,.1)}
body.dark .drop a{color:#DCE4F5}
body.dark .drop a:hover{background:rgba(23,116,244,.16);color:var(--blue-300)}
body.dark .nav-menu{background:#0E1730}
body.dark .theme-toggle{background:#101A38;border-color:rgba(255,255,255,.15);color:#FFD66B}
body.dark .hero{background:linear-gradient(180deg,#0A1128,#0E1730)}
body.dark .hero-points li,body.dark .hero-typed{color:#DCE4F5}
body.dark .hero-visual .frame{border-color:#101A38}
body.dark .float-chip{background:#101A38}
body.dark .float-chip .lbl{color:#9AA8C7}
body.dark .card{background:#101A38;border-color:rgba(255,255,255,.08)}
body.dark .card p,body.dark .ind-card p,body.dark .card .feat li{color:#B9C5E2}
body.dark .icon-chip{background:rgba(23,116,244,.16)}
body.dark .stats-band,body.dark .marquee-band,body.dark .testi-sec{background:#0E1730;border-color:rgba(255,255,255,.08)}
body.dark .marquee span{color:#DCE4F5}
body.dark .marquee-band::before{background:linear-gradient(90deg,#0E1730,transparent)}
body.dark .marquee-band::after{background:linear-gradient(-90deg,#0E1730,transparent)}
body.dark section[style]{background:#0E1730 !important}
body.dark .btn-outline{color:#DCE4F5;border-color:#DCE4F5}
body.dark .btn-outline:hover{background:#DCE4F5;color:#0A1128}
body.dark .chip{background:#101A38;border-color:rgba(255,255,255,.12);color:#DCE4F5}
body.dark details.faq{background:#101A38;border-color:rgba(255,255,255,.1)}
body.dark details.faq summary{color:#F0F4FF}
body.dark details.faq .faq-body{color:#9AA8C7}
body.dark .legal-index{background:#101A38;border-color:rgba(255,255,255,.1)}
body.dark .legal-body .l-sec{background:#101A38;border-color:rgba(255,255,255,.1)}
body.dark .updated-pill{background:rgba(23,116,244,.16);color:#DCE4F5}
body.dark .form-card{background:#101A38;border-color:rgba(255,255,255,.1)}
body.dark .f-group label{color:#F0F4FF}
body.dark .f-group input,body.dark .f-group select,body.dark .f-group textarea{background:#0E1730;border-color:rgba(255,255,255,.15);color:#E4EAF7}
body.dark .tl-card{background:#101A38;border-color:rgba(255,255,255,.08)}
body.dark .tl-card p{color:#9AA8C7}
body.dark table.compare{background:#101A38}
body.dark .compare tbody tr{border-color:rgba(255,255,255,.08)}
body.dark .compare tbody tr:nth-child(even){background:#0E1730}
body.dark .compare td:first-child{color:#F0F4FF}
body.dark .compare td{color:#B9C5E2}
body.dark .mv-card{background-image:linear-gradient(#101A38,#101A38),var(--grad)}
body.dark .testi-card{background:#101A38;border-color:rgba(255,255,255,.08)}
body.dark .testi-card p.quote{color:#E4EAF7}
body.dark .testi-card .who{color:#F0F4FF}
body.dark .testi-arrow{background:#101A38;color:#fff;border-color:rgba(255,255,255,.15)}
body.dark .cookie-bar{background:#101A38;border-color:rgba(255,255,255,.12)}
body.dark .cookie-bar p{color:#9AA8C7}
body.dark .qc-panel{background:#101A38;border-color:rgba(255,255,255,.12)}
body.dark .qc-link{color:#DCE4F5}
body.dark .qc-link:hover{background:rgba(23,116,244,.16)}
body.dark ::-webkit-scrollbar-track{background:#0A1128}
/* white-bg components keep dark text in dark mode */
body.dark .badge-card{color:#12275E}
body.dark .badge-card h3{color:#0B1B4D}
body.dark .badge-card p{color:#54658A}
body.dark .badge-card .badge-cta{color:#1774F4}
body.dark .form-success{background:#0E2A1C;border-color:#1E5C3A;color:#7CFCB2}
body.dark .form-success.pending{background:#2E2410;border-color:#6B5320;color:#F5C86B}
body.dark .btn-light{color:#0B1B4D}

/* ---------- form validation states ---------- */
.f-group .err-msg{display:none;color:#E5484D;font-size:.78rem;font-weight:700;margin-top:6px}
.f-group.invalid .err-msg{display:block}
.f-group.invalid input,.f-group.invalid select,.f-group.invalid textarea{border-color:#E5484D !important;box-shadow:0 0 0 4px rgba(229,72,77,.12);background:#FFF6F6}
body.dark .f-group.invalid input,body.dark .f-group.invalid select,body.dark .f-group.invalid textarea{background:#2A1215}
@keyframes fshake{0%,100%{transform:translateX(0)}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}
.f-group.invalid{animation:fshake .28s ease}

@media (max-width:359px){.badge-grid{grid-template-columns:1fr}.footer-main{grid-template-columns:1fr}}
/* ---------- certification seals ---------- */
body.dark .badge-img{background:#fff;border-color:transparent}
