/* VerificationFactory – base styles */
:root{--navy:#0B1F4B;--blue:#1D4ED8;--sky:#EAF1FF;--line:#D6E0F5;--ink:#14213D;--muted:#55627F;--white:#fff;--r:12px;
--head:'Bricolage Grotesque',system-ui,sans-serif;--body:'Figtree',system-ui,sans-serif}
*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth}
body{font-family:var(--body);color:var(--ink);background:var(--white);line-height:1.6}
h1,h2,h3,.logo{font-family:var(--head);color:var(--navy);line-height:1.15}
h1{font-size:clamp(2.2rem,5vw,3.6rem);font-weight:800}
h2{font-size:clamp(1.6rem,3vw,2.2rem);font-weight:800;margin-bottom:1.5rem}
a{color:inherit;text-decoration:none}
.container{width:min(1120px,92%);margin-inline:auto}
.narrow{max-width:720px}
:focus-visible{outline:3px solid var(--blue);outline-offset:2px}
.btn{display:inline-block;background:var(--blue);color:#fff;border:2px solid var(--blue);padding:.75rem 1.4rem;border-radius:8px;font:600 1rem var(--body);cursor:pointer;transition:background .2s}
.btn:hover{background:var(--navy);border-color:var(--navy)}
.btn-sm{padding:.4rem 1rem}
.btn-ghost{background:transparent;color:var(--blue)}
.btn-ghost:hover{color:#fff}
.btn-light{background:#fff;color:var(--navy);border-color:#fff}
.btn-light:hover{background:var(--sky);color:var(--navy)}
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.95);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;justify-content:space-between;height:68px}
.logo{font-size:1.35rem;font-weight:800;white-space:nowrap;flex:none}
.logo span{color:var(--blue)}
.nav-links{display:flex;align-items:center;gap:1.5rem;list-style:none;padding:0}
.nav-links a:not(.btn){font-weight:500}
.nav-links a.active{color:var(--blue);border-bottom:2px solid var(--blue)}
[hidden]{display:none!important}
.nav-toggle{display:none;background:none;border:0;cursor:pointer;padding:.7rem .6rem;min-width:44px;min-height:44px;margin-right:-.6rem;-webkit-tap-highlight-color:transparent}
.nav-toggle span{display:block;width:24px;height:2px;background:var(--navy);margin:5px 0}
.hero{background:var(--sky);padding:4.5rem 0}
.hero-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:3rem;align-items:center}
.lead{font-size:1.15rem;color:var(--muted);margin:1.2rem 0 1.8rem;max-width:52ch}
.hero-cta{display:flex;gap:1rem;flex-wrap:wrap}
.live-card{background:var(--navy);color:#fff;padding:1.8rem;border-radius:var(--r)}
.live-top{display:flex;align-items:center;gap:.5rem;font-size:.9rem;color:#B9CBF5;margin-bottom:1rem}
.dot{width:10px;height:10px;border-radius:50%;background:#4ADE80;animation:pulse 1.6s infinite}
.live-label{font-size:.85rem;color:#B9CBF5;margin-top:.8rem}
.live-number{font:800 1.5rem var(--head)}
.live-code{font:800 2.4rem var(--head);letter-spacing:.2em;min-height:3rem}
.live-foot{font-size:.85rem;color:#B9CBF5;margin-top:.8rem}
@keyframes pulse{50%{opacity:.35}}
.slider{position:relative;margin-top:2.5rem;overflow:hidden;border-radius:var(--r);background:var(--blue)}
.slide{display:none;padding:3rem 3.5rem 4rem;color:#fff}
.slide.active{display:grid;grid-template-columns:1.1fr .9fr;align-items:center;gap:2rem}
.slide img{width:100%;height:auto;max-height:260px;object-fit:contain}
.slide img{width:100%;height:auto;max-height:260px;object-fit:contain}
.slide h2{color:#fff;margin-bottom:.6rem}
.slide p{max-width:50ch;margin-bottom:1.2rem}
.arrow{position:absolute;top:50%;transform:translateY(-50%);width:42px;height:42px;border-radius:50%;border:0;background:rgba(255,255,255,.2);color:#fff;font-size:1.6rem;cursor:pointer}
.arrow:hover{background:rgba(255,255,255,.4)}
.prev{left:.6rem}.next{right:.6rem}
.dots{position:absolute;bottom:1rem;left:0;right:0;display:flex;justify-content:center;gap:.5rem}
.dots button{width:10px;height:10px;border-radius:50%;border:0;background:rgba(255,255,255,.4);cursor:pointer}
.dots button.on{background:#fff}
.section{padding:4rem 0}
.alt{background:var(--sky)}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;list-style:none;padding:0;counter-reset:s}
.steps li{counter-increment:s;border-left:3px solid var(--blue);padding-left:1.2rem}
.steps li::before{content:counter(s);font:800 1.8rem var(--head);color:var(--blue)}
.steps p{color:var(--muted)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:1rem}
.svc{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:1.2rem;transition:border-color .2s}
.svc:hover{border-color:var(--blue)}
.svc b{display:block;font-family:var(--head);color:var(--navy)}
.svc span{color:var(--muted);font-size:.9rem}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;text-align:center}
.stats strong{display:block;font:800 2.4rem var(--head);color:var(--blue)}
.stats span{color:var(--muted)}
details{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:1rem 1.2rem;margin-bottom:.8rem}
summary{font-weight:600;cursor:pointer}
details p{margin-top:.6rem;color:var(--muted)}
.footer{background:var(--navy);color:#B9CBF5;padding:3rem 0 1.5rem}
.footer .logo{color:#fff}
.footer .logo span{color:#8FB3FF}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:2rem}
.footer h4{color:#fff;margin-bottom:.6rem}
.footer a:not(.logo){display:block;margin-bottom:.3rem}
.footer a:hover{color:#fff}
.copy{text-align:center;margin-top:2rem;font-size:.85rem}
@media(max-width:860px){
 .hero-grid,.steps,.footer-grid{grid-template-columns:1fr}
 .stats{grid-template-columns:repeat(2,1fr)}
 .slide{padding:2rem 3.2rem 3.5rem}
 .slide.active{grid-template-columns:1fr;gap:1rem}
 .slide img{max-height:150px}
 .slide.active{grid-template-columns:1fr;gap:1rem}
 .slide img{max-height:150px}
}

/* Menu button instead of a row of links: phones, tablets, and any window narrower than 1100px */
@media(max-width:1100px){
 .nav-toggle{display:block}
 .nav-links{display:none;position:absolute;top:68px;left:0;right:0;flex-direction:column;align-items:flex-start;gap:.9rem;background:#fff;padding:1rem 4% 1.2rem;border-bottom:1px solid var(--line);box-shadow:0 12px 24px rgba(11,31,75,.08)}
 .nav-links.open{display:flex}
 .nav-links a:not(.btn),.nav-links button{padding:.35rem 0}

}
/* Scroll reveal: content eases in as it comes into view (see the "Scroll reveal" block in main.js) */
.rv{opacity:0;transform:translateY(22px);transition:opacity .6s ease var(--rv,0ms),transform .6s ease var(--rv,0ms)}
.rv.in{opacity:1;transform:none}

/* Page transitions: the page fades and rises slightly; the header and sidebar stay still while it happens.
   Chrome, Edge and Safari do this between pages. Browsers without support just change pages as before. */
@view-transition{navigation:auto}
::view-transition-old(root){animation:vf-out .16s ease both}
::view-transition-new(root){animation:vf-in .3s ease both}
@keyframes vf-out{to{opacity:0}}
@keyframes vf-in{from{opacity:0;transform:translateY(10px)}}
.site-header{view-transition-name:site-header}
.sidebar{view-transition-name:sidebar}
.app-topbar{view-transition-name:topbar}
/* Older browsers: a soft fade when each page opens */
@supports not (view-transition-name:none){body{animation:vf-in .35s ease both}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}html{scroll-behavior:auto}::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}