:root{--primary:#3A76B0;--primary-dark:#2E5E8D;--navy:#2B4864;--tint:#B1DCFB;--mist:#F5F5F5;--text:#4B4B4B}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:'Lato',system-ui,sans-serif;color:var(--text);overflow-x:hidden}
.font-display{font-family:'Fraunces',Georgia,serif;font-optical-sizing:auto}
.t-hero{font-size:clamp(2.75rem,7vw,5.75rem);line-height:1.02;letter-spacing:-.012em;font-variation-settings:"opsz" 72}
.t-h1{font-size:clamp(2.4rem,5.5vw,4.5rem);line-height:1.05;letter-spacing:-.02em}
.t-h2{font-size:clamp(1.9rem,3.8vw,3.1rem);line-height:1.1;letter-spacing:-.018em}
.t-h3{font-size:clamp(1.35rem,2vw,1.65rem);line-height:1.2;letter-spacing:-.015em}
.t-lead{font-size:clamp(1.075rem,1.4vw,1.25rem);line-height:1.7}
.prose-ec p{line-height:1.8;margin-bottom:1.1em}
.eyebrow{font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;font-weight:700}
.grecaptcha-badge{visibility:hidden}
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
/* header */
.site-header{transition:box-shadow .3s,background-color .3s}
.site-header.scrolled{box-shadow:0 8px 30px -12px rgba(43,72,100,.25);background-color:rgba(255,255,255,.88)}
.nav-link{position:relative}
.nav-link::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:2px;background:var(--primary);transform:scaleX(0);transform-origin:left;transition:transform .3s ease}
.nav-link:hover::after,.nav-link[aria-current=page]::after{transform:scaleX(1)}
/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-height:3.1rem;padding:.8rem 1.5rem;border-radius:999px;font-weight:700;transition:transform .25s ease,background-color .25s,box-shadow .25s,color .25s}
.btn:hover{transform:translateY(-2px)}
.btn svg{transition:transform .25s}
.btn:hover svg{transform:translateX(3px)}
.btn-primary{background:var(--primary);color:#fff;box-shadow:0 12px 28px -12px rgba(58,118,176,.7)}
.btn-primary:hover{background:var(--primary-dark)}
.btn-light{background:#fff;color:var(--navy)}
.btn-light:hover{background:var(--tint)}
.btn-ghost{border:1.5px solid currentColor}
.btn-ghost:hover{background:rgba(255,255,255,.1)}
/* cards */
.card-lift{transition:transform .35s ease,box-shadow .35s ease}
.card-lift:hover{transform:translateY(-6px);box-shadow:0 28px 50px -24px rgba(43,72,100,.35)}
.zoom{overflow:hidden}.zoom img{transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.zoom:hover img,.card-lift:hover .zoom img{transform:scale(1.06)}
.brand-tile img{mix-blend-mode:multiply;filter:grayscale(1);opacity:.75;transition:filter .3s,opacity .3s}
.brand-tile:hover img{filter:none;opacity:1}
/* hero decor */
.hero-grad{background:radial-gradient(1200px 600px at 85% 20%,rgba(58,118,176,.9),transparent 60%),radial-gradient(800px 500px at 10% 110%,rgba(177,220,251,.18),transparent 60%),var(--navy)}
.grain::before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.06) 1px,transparent 1px);background-size:22px 22px;pointer-events:none}
/* reveal */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}
.reveal-d1{transition-delay:.1s}.reveal-d2{transition-delay:.2s}.reveal-d3{transition-delay:.3s}
/* accordion */
.acc summary{list-style:none;cursor:pointer}
.acc summary::-webkit-details-marker{display:none}
.acc .chev{transition:transform .3s}
.acc[open] .chev{transform:rotate(45deg)}
/* strip scroller */
.snap-x{scroll-snap-type:x mandatory;scrollbar-width:none}
.snap-x::-webkit-scrollbar{display:none}
.snap-x>*{scroll-snap-align:start}
/* lightbox */
#lightbox{position:fixed;inset:0;z-index:80;background:rgba(20,34,48,.92);display:none;align-items:center;justify-content:center;padding:1.5rem}
#lightbox.open{display:flex}
#lightbox img{max-width:min(1000px,100%);max-height:85vh;background:#fff;border-radius:1rem;padding:1rem}
/* form */
.field{width:100%;border:1.5px solid #d6dee7;border-radius:.9rem;padding:.85rem 1rem;background:#fff;color:#1f2f40;transition:border-color .2s,box-shadow .2s;font-size:1rem}
.field:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 4px rgba(58,118,176,.18)}
label.lbl{display:block;font-weight:700;font-size:.9rem;color:var(--navy);margin-bottom:.4rem}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}
