:root{--ease:cubic-bezier(.19,1,.22,1);--dur:.85s;--navy:#0B1F33;--blue:#1E6ADD;--amber:#F5B544;--bg:#F5F7FA}
*{box-sizing:border-box}
body.site{font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif;color:#0b1f33;margin:0;background:#fff}
.site-header{position:sticky;top:0;background:#fff;backdrop-filter:saturate(180%) blur(10px);border-bottom:1px solid #e7edf5;z-index:20}
.site-header .inner{display:flex;align-items:center;gap:1rem;justify-content:space-between;max-width:1200px;margin:0 auto;padding:.75rem 1rem}
.site-header .logo{font-weight:800;letter-spacing:.02em;color:#0b1f33;text-decoration:none}
.main-nav{display:flex;gap:1rem;align-items:center}
.main-nav a{color:#0b1f33;text-decoration:none;font-weight:500}
.main-nav a.cta{background:var(--blue);color:#fff;padding:.55rem .9rem;border-radius:30px}
.main-nav a.active{color:var(--blue);position:relative}
.main-nav a.active::after{content:"";position:absolute;left:0;right:0;bottom:-6px;margin:auto;width:24px;height:2px;background:var(--blue);border-radius:2px}
.nav-toggle{display:none}

[data-anim]{opacity:0;transform:translateY(24px);transition:opacity .6s var(--ease),transform .8s var(--ease)}
[data-anim].in{opacity:1;transform:none}
[data-anim="slide-left"]{transform:translateX(60px)}
[data-anim="slide-right"]{transform:translateX(-60px)}
[data-anim="slide-left"].in,[data-anim="slide-right"].in{transform:translateX(0)}
[data-anim="fade-down"]{transform:translateY(-24px)}
[data-anim="fade-in"]{transform:none;opacity:0}
[data-anim="fade-in"].in{opacity:1;transition:opacity .9s var(--ease)}

.hero{position:relative;min-height:88vh;display:flex;align-items:center;color:#fff;background:#000}
.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(.45)}
.hero-overlay{position:absolute;inset:0;background:radial-gradient(circle at 30% 50%,rgba(30,106,221,.35),rgba(0,0,0,.75))}
.hero-content{position:relative;max-width:980px;padding:5rem 1.25rem;margin:0 auto}
.hero-content h1{font-size:clamp(28px,4.2vw,54px);line-height:1.05;margin:0 0 .6rem}
.hero-content .lead{font-size:clamp(16px,1.2vw,18px);opacity:.9;max-width:70ch}
.hero-ctas{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:1rem}
.hero-form{margin-top:1rem;background:rgba(255,255,255,.82);backdrop-filter:blur(6px);border:1px solid rgba(0,0,0,.08);border-radius:14px;padding:1rem;box-shadow:0 4px 18px -6px rgba(0,0,0,.35)}
.hero-form .row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.75rem;margin:.5rem 0}
.hero-form label{display:flex;flex-direction:column;color:#0b1f33;font-size:.8rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase}
.hero-form input{margin-top:.35rem;padding:.7rem .75rem;border-radius:10px;border:1px solid #cfd8e3;background:#fff;color:#0b1f33;font:inherit;box-shadow:0 1px 2px rgba(0,0,0,.06)}
.hero-form input:focus{outline:2px solid var(--blue);outline-offset:1px}
.hero-form input::placeholder{color:#6b7280}
/* Hide number spinners */
.hero-form input[type=number]::-webkit-outer-spin-button,
.hero-form input[type=number]::-webkit-inner-spin-button{ -webkit-appearance: none; margin: 0; }
.hero-form input[type=number]{ appearance: textfield; -moz-appearance: textfield; }
.hero-form .actions .small.muted{color:#475569}
.hero-form .adv-fields{border:1px solid #d9e2ec;border-radius:10px;padding:.75rem .75rem;background:#f8fafc}
.hero-form .adv-fields .row{margin-top:.5rem}
.hero-form select{margin-top:.35rem;padding:.7rem 2.25rem .7rem .75rem;border-radius:10px;border:1px solid #cfd8e3;background:#fff;color:#0b1f33;font:inherit;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' viewBox='0 0 24 24'%3E%3Cpath d='M6 9l6 6 6-6' stroke='%23566' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .65rem center;background-size:16px}
.hero-form select:focus{outline:2px solid var(--blue);outline-offset:1px;box-shadow:0 0 0 2px rgba(30,106,221,.15)}
.hero-form select::-ms-expand{display:none}
.hero-form .carrier-other input{margin-top:.35rem}
.hero-form .actions{display:flex;align-items:center;gap:.75rem;margin-top:.5rem;flex-wrap:wrap}
.hero-form .btn:not(.primary){
  background:#fff;
  color:#0b1f33;
  border:1px solid #cfd8e3;
}
.hero-form .btn:not(.primary):hover,
.hero-form .btn:not(.primary):focus{
  border-color:#94a3b8;
  box-shadow:0 0 0 2px rgba(148,163,184,.25);
}
.hero-metrics{display:flex;flex-wrap:wrap;gap:2rem;margin-top:2rem}
.hero-metrics>div{flex:1 1 180px;font-size:.85rem;line-height:1.3}
.hero-metrics strong{font-size:2.2rem;display:block;color:var(--amber)}

/* Light variant hero for interior pages */
.hero--light{background:#fff;color:#0b1f33;min-height:auto}
.hero--light .hero-overlay{display:none}
.hero--light .hero-content{padding:3rem 1.25rem}

/* Generic layout utilities (ported for Home) */
.container{max-width:1200px;margin:0 auto;padding:4rem 1.25rem}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}
/* Trust/Social sections: fixed media column + flexible content column */
.trust-grid{display:grid;grid-template-columns:auto 1fr;gap:1.25rem;align-items:start}
.trust-grid > *{min-width:0}
.grid-2 > *{min-width:0}
.card{background:#fff;border:1px solid #e3e8ef;border-radius:12px;padding:1.25rem;box-shadow:0 4px 16px -6px rgba(0,0,0,.05)}
blockquote{border-left:3px solid #e3e8ef;margin:0;padding:10px 14px;background:#f8fafc;border-radius:10px}

.cred-strip{background:#fff;padding:1rem 0;overflow:hidden;border-top:1px solid #edf2f7;border-bottom:1px solid #edf2f7}
.logo-marquee{max-width:1200px;margin:0 auto;overflow:hidden}
.logo-marquee .track{display:flex;gap:4rem;animation:marquee 28s linear infinite;align-items:center;opacity:.8}
.logo-marquee img{height:32px;filter:grayscale(1)}
@keyframes marquee{to{transform:translateX(-50%)}}

.dual{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));min-height:60vh}
.dual .panel{padding:4rem 3rem;display:flex;flex-direction:column;justify-content:center}
.dual .panel.accent{background:linear-gradient(135deg,#1E6ADD,#0B1F33);color:#fff}
.check{margin:0;padding-left:1.2rem}
.check li{margin:.25rem 0}

.pillars{padding:5rem 1.25rem;background:var(--bg);text-align:center}
.pillars h2{margin:0}
.pillar-grid{margin-top:2rem;display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));max-width:1200px;margin-inline:auto}
.pillar-grid article{background:#fff;padding:1.25rem;border:1px solid #e3e8ef;border-radius:12px;box-shadow:0 4px 16px -6px rgba(0,0,0,.05)}
.pillar-grid article svg{width:28px;height:28px;color:#1E6ADD;display:block;margin-bottom:.5rem}

.outcomes{padding:5rem 1.25rem}
.outcomes h2{margin:0 auto;max-width:1200px}
.outcomes .metrics{display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin:1.25rem auto 0;max-width:1200px}
.outcomes .metric{font-size:2rem;color:#0B1F33;font-weight:800}
.outcomes label{display:block;color:#42526b;font-size:.85rem;margin-top:.25rem}

.architecture{padding:5rem 1.25rem;background:#fff;display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(420px,1fr));align-items:start;max-width:1200px;margin:0 auto}
.arch-nav{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}
.arch-nav button{background:#f0f3f7;padding:.6rem 1rem;border-radius:30px;border:0;font:inherit;cursor:pointer}
.arch-nav button.active{background:var(--blue);color:#fff}
.arch-panels .panel{display:none;animation:fadePanel .5s var(--ease)}
.arch-panels .panel.active{display:block}
@keyframes fadePanel{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}

.cases{padding:5rem 1.25rem;background:#fff}
.cases h2{max-width:1200px;margin:0 auto 1rem}
.case-carousel{position:relative;overflow:hidden;max-width:1200px;margin:0 auto;width:100%}
.case-carousel .track{display:flex;gap:2rem;transition:transform .7s var(--ease)}
.case{flex:0 0 clamp(260px,30%,340px);background:#fff;border:1px solid #e3e8ef;padding:1.25rem;border-radius:14px;box-shadow:0 2px 10px -4px rgba(0,0,0,.08)}
.case .tag{display:inline-block;margin-top:.5rem;font-size:.65rem;letter-spacing:.06em;background:#1E6ADD;color:#fff;padding:.25rem .55rem;border-radius:12px}
.controls{display:flex;align-items:center;justify-content:center;gap:.75rem;margin-top:1rem}
.controls button{background:#0B1F33;color:#fff;border:0;width:42px;height:42px;border-radius:50%;cursor:pointer;font-size:1.2rem}
.controls .dots{display:flex;gap:.4rem}
.controls .dots button{width:10px;height:10px;border-radius:50%;border:0;background:#c5ced8;cursor:pointer}
.controls .dots button.active{background:#1E6ADD}

.timeline{padding:5rem 1.25rem;background:var(--bg)}
.timeline h2{max-width:1200px;margin:0 auto 1rem}
.h-scroll{position:relative;overflow-x:auto;scroll-snap-type:x mandatory;max-width:1200px;margin:0 auto}
.hs-track{display:flex;gap:2rem;min-width:max-content;padding-bottom:1rem}
.hs-step{background:#fff;padding:2rem 1.5rem;border-radius:14px;width:300px;scroll-snap-align:start;border:1px solid #e1e6ec}
.hs-progress{position:absolute;left:0;bottom:0;height:4px;background:#dfe5ec;width:100%}
.hs-progress span{display:block;height:100%;width:0;background:linear-gradient(90deg,#1E6ADD,#0B1F33);transition:width .25s linear}

.advisors{padding:5rem 1.25rem;background:#fff}
.advisors h2{max-width:1200px;margin:0 auto 1rem}
.people-carousel{max-width:1200px;margin:0 auto}
.people-carousel .track{display:flex;gap:2rem;transition:transform .6s var(--ease)}
.people-carousel figure{flex:0 0 220px;background:#fff;border:1px solid #e3e8ef;border-radius:16px;overflow:hidden;text-align:center;padding:1rem}
.people-carousel img{width:100%;height:180px;object-fit:cover;border-radius:12px}

.resources{padding:5rem 1.25rem;background:#fff}
.resources h2{max-width:1200px;margin:0 auto 1rem}
.resources .cards{display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));max-width:1200px;margin:0 auto}
.resources article{background:#f8fafc;padding:1.5rem 1.25rem;border-radius:12px;border:1px solid #e5eaf0}

/* Half-size video utility for trust/social sections */
.video-half{width:50%;height:auto;display:block}

/* Square framing utility to match square video */
.square-inner{width:50%;aspect-ratio:1/1;margin:0 auto;display:flex;align-items:center;justify-content:center;overflow:hidden}
.square-inner > *{width:100%;height:100%}

/* Media box: size video; let carousel take remaining width */
.media-box video{display:block;width:clamp(240px,25vw,420px);height:auto}

/* Small text and muted tone utilities */
.small{font-size:.9rem}
.muted{color:#64748b}

.cta-final{padding:6rem 1.25rem;background:linear-gradient(135deg,#0B1F33,#142c45);color:#fff;text-align:center}
.cta-final .cta-inner{max-width:900px;margin:0 auto}
.cta-final form{margin-top:2rem;display:flex;flex-direction:column;gap:1rem;max-width:720px;margin-inline:auto}
.cta-final .row{display:flex;gap:1rem;flex-wrap:wrap}
.cta-final input,.cta-final textarea{flex:1 1 200px;padding:.9rem 1rem;border-radius:10px;border:1px solid #35516d;background:#102537;color:#fff}

.btn{display:inline-flex;align-items:center;gap:.4rem;padding:.85rem 1.4rem;border-radius:40px;font-weight:600;text-decoration:none}
.btn.primary{background:var(--blue);color:#fff}
.btn.ghost{background:rgba(0,0,0,.12);color:#fff}

/* Improve hero CTA contrast on dark backgrounds */
.hero:not(.hero--light) .btn:not(.primary){
  background:transparent;
  color:#fff;
  border:2px solid rgba(255,255,255,.55);
}
.hero:not(.hero--light) .btn:not(.primary):hover,
.hero:not(.hero--light) .btn:not(.primary):focus{
  border-color:#fff;
}
.hero:not(.hero--light) .btn.ghost{background:transparent}

.site-footer{background:#0B1F33;color:#e5e7eb;padding:4rem 1.25rem 2rem}
.site-footer .cols{display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));max-width:1200px;margin:0 auto 2rem}
@media (min-width: 640px){
  .site-footer .cols{grid-template-columns:repeat(4,minmax(0,1fr))}
}
.site-footer h4,.site-footer strong{color:#fff}
.site-footer h4{margin:0 0 .25rem 0;font-weight:700}
.site-footer p,.site-footer .small{color:#e5e7eb}
.site-footer a{color:#cbd5e1;text-decoration:none}
.site-footer nav a{display:block;margin:.25rem 0}
.site-footer a:hover,.site-footer a:focus{color:#fff;text-decoration:underline}
.site-footer .legal{max-width:1200px;margin:0 auto;opacity:1;color:#9ca3af;border-top:1px solid rgba(255,255,255,.12);padding-top:1rem;text-align:center}
/* Accessible focus ring */
.site-footer a:focus-visible{outline:2px dashed #93c5fd;outline-offset:2px}

@media (max-width:880px){
  .hero{min-height:100vh}
  .architecture{grid-template-columns:1fr}
  .dual{grid-template-columns:1fr}
  .hero-metrics{gap:1.25rem}
  .grid-2{grid-template-columns:1fr}
  .trust-grid{grid-template-columns:1fr}
  .video-half{width:100%}
  .square-inner{width:100%}
  .media-box video{width:100%}
  .main-nav{position:fixed;top:56px;right:0;left:0;flex-direction:column;gap:.75rem;background:#fff;border-bottom:1px solid #e7edf5;padding:1rem;display:none}
  .main-nav.open{display:flex}
  .nav-toggle{display:inline-flex;width:36px;height:36px;border-radius:8px;border:1px solid #d9e2ef;background:#f5f7fb;align-items:center;justify-content:center}
  .nav-toggle::before{content:'\2630';font-size:18px;line-height:1;color:#0b1f33}
}
