/* Website Design & SEO Solutions — site.css */
@font-face{font-family:"Bricolage Grotesque";src:url(/fonts/bricolage-grotesque-latin-wght.woff2) format("woff2");font-weight:200 800;font-display:swap}
@font-face{font-family:"Source Serif 4";src:url(/fonts/source-serif-4-latin-wght.woff2) format("woff2");font-weight:200 900;font-style:normal;font-display:swap}
@font-face{font-family:"Source Serif 4";src:url(/fonts/source-serif-4-latin-wght-italic.woff2) format("woff2");font-weight:200 900;font-style:italic;font-display:swap}

:root{
  --navy:#002B53; --night:#001A33; --orange:#FF8900; --orange-ink:#A85500;
  --ice:#EDF2F6; --ink:#15222F; --steel:#4F6072; --rule:#CCD8E2; --white:#fff;
  --serp-blue:#1A0DAB; --serp-url:#4D5156;
  --display:"Bricolage Grotesque",ui-sans-serif,system-ui,sans-serif;
  --text:"Source Serif 4",Georgia,"Times New Roman",serif;
  --wrap:1240px; --gut:clamp(20px,4vw,48px);
  --s1:.5rem; --s2:1rem; --s3:1.5rem; --s4:2.5rem; --s5:4rem; --s6:clamp(4rem,9vw,7.5rem);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:96px}
body{margin:0;background:var(--white);color:var(--ink);font:400 1.125rem/1.68 var(--text);font-optical-sizing:auto;text-rendering:optimizeLegibility}
img{max-width:100%;height:auto;display:block}
a{color:var(--navy);text-decoration-color:var(--orange);text-decoration-thickness:2px;text-underline-offset:.2em}
a:hover{color:var(--orange-ink)}
:focus-visible{outline:3px solid var(--orange);outline-offset:3px;border-radius:2px}
h1,h2,h3{font-family:var(--display);color:var(--navy);margin:0;text-wrap:balance}
h1{font-size:clamp(2.6rem,5.6vw,4.75rem);line-height:.98;font-weight:780;letter-spacing:-.035em}
h2{font-size:clamp(1.85rem,3.1vw,2.7rem);line-height:1.05;font-weight:720;letter-spacing:-.025em}
h3{font-size:1.25rem;line-height:1.2;font-weight:680;letter-spacing:-.01em}
p{margin:0 0 1.1em}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gut)}
.sr,.skip{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip:focus{position:fixed;left:12px;top:12px;width:auto;height:auto;clip:auto;z-index:100;background:var(--white);padding:.6rem 1rem;font-family:var(--display)}

/* ---------- buttons */
.btn{white-space:nowrap;display:inline-flex;align-items:center;gap:.55rem;font:650 1rem/1 var(--display);padding:.95rem 1.35rem;border-radius:6px;text-decoration:none;border:2px solid transparent;transition:background-color .15s,color .15s,border-color .15s}
.btn svg{width:1.05em;height:1.05em;flex:none}
.btn-primary{background:var(--orange);color:var(--night)}
.btn-primary:hover{background:#FFA033;color:var(--night)}
.btn-ghost{border-color:var(--navy);color:var(--navy)}
.btn-ghost:hover{background:var(--navy);color:var(--white)}
.btn-ghost-light{border-color:rgba(255,255,255,.55);color:var(--white)}
.btn-ghost-light:hover{background:var(--white);color:var(--navy)}
.actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:var(--s3)}

/* ---------- header */
.utility{background:var(--navy);color:#CFE0EE;font:500 .85rem/1 var(--display);border-bottom:3px solid var(--orange)}
.utility .wrap{display:flex;justify-content:space-between;gap:1rem;padding-top:.6rem;padding-bottom:.6rem}
.utility p{margin:0}
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.97);backdrop-filter:saturate(1.4) blur(8px);border-bottom:1px solid var(--rule)}
.site-header .wrap{display:flex;align-items:center;gap:.75rem;min-height:76px}
.logo{flex:none}
.logo img{width:clamp(200px,20vw,250px)}
.nav{margin-left:auto}
.nav-list{display:flex;align-items:center;gap:.1rem;list-style:none;margin:0;padding:0}
.nav-group{position:relative}
.nav summary,.nav-link{white-space:nowrap;display:flex;align-items:center;gap:.3rem;cursor:pointer;list-style:none;font:600 .97rem/1 var(--display);color:var(--navy);padding:.7rem .5rem;border-radius:6px;text-decoration:none}
.nav summary::-webkit-details-marker{display:none}
.nav summary svg{width:.75rem;height:.75rem;transition:transform .15s}
.nav details[open] summary svg{transform:rotate(180deg)}
.nav summary:hover,.nav-link:hover,.nav details[open] summary{background:var(--ice)}
.nav details[data-active] summary,.nav-link[aria-current]{box-shadow:inset 0 -3px 0 var(--orange)}
.nav-menu{position:absolute;left:0;top:calc(100% + 8px);min-width:250px;list-style:none;margin:0;padding:.5rem;background:var(--white);border:1px solid var(--rule);border-top:3px solid var(--orange);border-radius:0 0 8px 8px;box-shadow:0 18px 40px -18px rgba(0,26,51,.35)}
.nav-menu a{display:block;padding:.6rem .8rem;font:500 .98rem/1.25 var(--display);color:var(--ink);text-decoration:none;border-radius:4px}
.nav-menu a:hover{background:var(--ice);color:var(--navy)}
.nav-menu a[aria-current]{color:var(--orange-ink);font-weight:650}
.btn-call{background:var(--navy);color:var(--white);padding:.8rem 1.1rem}
.btn-call:hover{background:var(--night);color:var(--white)}
.menu-toggle{display:none}
.nav-mobile{display:none}

/* ---------- hero */
.hero{background:var(--ice);padding:clamp(2.5rem,6vw,5rem) 0 clamp(3rem,7vw,6rem);overflow:hidden}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(2rem,5vw,4.5rem);align-items:center}
.crumbs ol{display:flex;flex-wrap:wrap;gap:.4rem;list-style:none;margin:0 0 var(--s3);padding:0;font:500 .9rem/1.2 var(--display);color:var(--steel)}
.crumbs li+li::before{content:"/";margin-right:.4rem;color:var(--rule)}
.crumbs a{color:var(--steel);text-decoration:none}
.crumbs a:hover{color:var(--navy);text-decoration:underline}
.hero-kicker{display:flex;align-items:center;gap:.6rem;font:600 1rem/1.3 var(--display);color:var(--steel);margin-bottom:1.1rem}
.hero-kicker::before{content:"";width:.7rem;height:.7rem;background:var(--orange);flex:none}
.hero-kicker:empty{display:none}
.lead{font-size:clamp(1.15rem,1.6vw,1.32rem);line-height:1.6;color:#2A3A4A;margin:1.4rem 0 0;max-width:36em}
.lead strong{color:var(--navy);font-weight:650}
.chips{display:flex;flex-wrap:wrap;gap:.5rem 1.4rem;list-style:none;margin:var(--s4) 0 0;padding:var(--s3) 0 0;border-top:1px solid var(--rule);font:550 .95rem/1.2 var(--display);color:var(--navy)}
.chips li{display:flex;align-items:center;gap:.45rem}
.chips li::before{content:"";width:.95rem;height:.95rem;border-radius:50%;background:var(--orange) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.3l2.6 2.5L12 5.5' fill='none' stroke='%23001A33' stroke-width='2.2'/%3E%3C/svg%3E") center/80% no-repeat}
.hero-media{position:relative;margin:0 0 3.5rem}
.hero-media img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:10px;box-shadow:0 30px 60px -30px rgba(0,26,51,.45)}
.serp{position:absolute;left:-2.25rem;right:2.5rem;bottom:-3.5rem;background:var(--white);border-radius:10px;padding:1.05rem 1.25rem 1.1rem;box-shadow:0 24px 50px -20px rgba(0,26,51,.45),0 0 0 1px rgba(0,43,83,.08);font-family:Arial,Helvetica,sans-serif;animation:serp-in .7s cubic-bezier(.2,.8,.2,1) .25s both}
.serp-label{font:600 .72rem/1 var(--display);color:var(--orange-ink);letter-spacing:.02em;margin:0 0 .7rem}
.serp-site{display:flex;align-items:center;gap:.6rem;font-size:.82rem;line-height:1.25;color:#202124}
.serp-site small{color:var(--serp-url);font-size:.76rem}
.serp-fav{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#F1F3F4;flex:none}
.serp-title{color:var(--serp-blue);font-size:1.15rem;line-height:1.3;margin:.45rem 0 .25rem;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
.serp-desc{color:var(--serp-url);font-size:.85rem;line-height:1.5;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
@keyframes serp-in{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.alerts{background:var(--navy);border-radius:10px;padding:1.4rem 1.4rem 9rem;box-shadow:0 30px 60px -30px rgba(0,26,51,.45)}
.alerts-label{font:600 .8rem/1 var(--display);color:var(--orange);margin:0 0 1rem}
.alerts ul{list-style:none;margin:0;padding:0;display:grid;gap:.7rem}
.alert{background:var(--white);border-radius:8px;padding:.85rem 1rem .9rem 1.1rem;border-left:4px solid var(--orange);animation:alert-in .5s cubic-bezier(.2,.8,.2,1) both}
.alert:nth-child(2){animation-delay:.15s;margin-left:1.25rem}
.alert:nth-child(3){animation-delay:.3s;margin-left:2.5rem}
.alert p{margin:0}
.alert-src{font:600 .76rem/1.2 var(--display);color:var(--steel)}
.alert-job{font:680 1.05rem/1.25 var(--display);color:var(--navy);margin:.2rem 0 .35rem!important;letter-spacing:-.01em}
.alert-meta{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.25rem 1rem;font:500 .82rem/1.3 var(--display);color:#3A4A5A}
.alert-note{color:#16733A}
.alert-note::before{content:"";display:inline-block;width:.45rem;height:.45rem;border-radius:50%;background:#1E9E4F;margin-right:.4rem;vertical-align:.08em}
.hero-alerts .serp{animation-delay:.5s}
@keyframes alert-in{from{opacity:0;transform:translateX(16px)}to{opacity:1;transform:none}}
.hero-plain{padding-bottom:clamp(2.5rem,5vw,4rem)}
.hero-plain h1{max-width:16em}
.hero-plain .lead{max-width:40em}

/* ---------- sections */
.sec{padding:var(--s6) 0}
.sec.alt{background:var(--ice)}
.sec-head .dek{font:italic 400 1.15rem/1.5 var(--text);color:var(--steel);margin:.9rem 0 0}
.sec-head .intro{margin:1rem 0 0;color:#2A3A4A;max-width:40em}
.sec-head.wide{max-width:46rem;margin-bottom:var(--s4)}
.split{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(2rem,6vw,6rem);align-items:start}
.split>.sec-head{position:sticky;top:110px}
.split>.sec-head h2::after,.sec-head.wide h2::after,.media .sec-head h2::after{content:"";display:block;width:3rem;height:4px;background:var(--orange);margin-top:1.1rem}
.prose{max-width:38em}
.prose p:last-child{margin-bottom:0}
.prose a{font-weight:500}
.prose strong{font-weight:650}

.media{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(2rem,6vw,5.5rem);align-items:center}
.media.flip .media-fig{order:2}
.media-fig{margin:0}
.media-fig img{width:100%;border-radius:10px}
.media .sec-head{margin-bottom:var(--s3)}

.cards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2.75rem 2.5rem}
.cards-many{grid-template-columns:repeat(4,minmax(0,1fr));gap:2.25rem 2rem}
.card{border-top:2px solid var(--navy);padding-top:1.1rem}
.card h3{margin-bottom:.6rem}
.card p{font-size:1.02rem;line-height:1.6;color:#2E3D4C;margin:0}
.card-link{position:relative}
.card-link h3 a{text-decoration:none;color:var(--navy)}
.card-link h3 a::after{content:"";position:absolute;inset:0}
.card-link:hover{border-top-color:var(--orange)}
.card-link:hover h3 a{text-decoration:underline;text-decoration-color:var(--orange)}

.steps-sec{background:var(--navy);color:#DCE7F0}
.steps-sec h2,.steps-sec h3{color:var(--white)}
.steps-sec .dek,.steps-sec .intro{color:#A9C0D3}
.steps-side{position:sticky;top:110px}
.split>.steps-side>.sec-head{position:static}
.steps-fig{margin:2.25rem 0 0}
.steps-fig img{width:100%;border-radius:10px;opacity:.95}
.final.has-bg{background:var(--night)}
.final-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:grayscale(1) blur(1.5px);opacity:.22;mix-blend-mode:luminosity}
.final.has-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--night) 0%,rgba(0,26,51,.55) 60%,rgba(0,26,51,.8) 100%)}
.final.has-bg .final-in{z-index:1}
.steps{list-style:none;margin:0;padding:0;counter-reset:s}
.steps li{display:grid;grid-template-columns:4.5rem 1fr;gap:1.25rem;padding:1.6rem 0;border-top:1px solid rgba(255,255,255,.18)}
.steps li:first-child{border-top:0;padding-top:0}
.step-n{font:780 2.6rem/1 var(--display);color:var(--orange);letter-spacing:-.04em}
.timeline li{grid-template-columns:8.5rem 1fr}
.timeline .step-n{font-size:1.35rem;line-height:1.15;letter-spacing:-.015em;padding-top:.35rem}
.steps h3{margin:.35rem 0 .5rem}
.steps p{margin:0;font-size:1.05rem}

.band{background:var(--orange);color:var(--night)}
.band-in{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding-top:clamp(2.2rem,4vw,3.2rem);padding-bottom:clamp(2.2rem,4vw,3.2rem)}
.band p{font:650 clamp(1.3rem,2.3vw,1.85rem)/1.25 var(--display);letter-spacing:-.015em;margin:0;max-width:30em}
.band .btn-primary{background:var(--night);color:var(--white);flex:none}
.band .btn-primary:hover{background:var(--navy)}

.faq details{border-top:1px solid var(--rule)}
.faq details:last-child{border-bottom:1px solid var(--rule)}
.faq summary{display:flex;justify-content:space-between;align-items:center;gap:1.5rem;padding:1.3rem 0;cursor:pointer;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary h3{font-size:1.15rem;font-weight:620}
.faq summary:hover h3{color:var(--orange-ink)}
.pm{position:relative;width:1.1rem;height:1.1rem;flex:none}
.pm::before,.pm::after{content:"";position:absolute;left:0;right:0;top:50%;height:2px;margin-top:-1px;background:var(--orange-ink);transition:transform .2s}
.pm::after{transform:rotate(90deg)}
.faq details[open] .pm::after{transform:rotate(0)}
.ans{padding:0 2.5rem 1.4rem 0;color:#2E3D4C}
.ans p{margin:0}

.gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}
.gallery figure{margin:0}
.gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:10px}
.gallery figcaption{font:500 .9rem/1.4 var(--display);color:var(--steel);margin-top:.7rem}

.related{border-top:1px solid var(--rule)}
.rel{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.25rem}
.rel a{display:flex;flex-direction:column;height:100%;padding:1.4rem 1.3rem 1.5rem;border:1px solid var(--rule);border-radius:10px;text-decoration:none;color:var(--ink);transition:border-color .15s,background-color .15s}
.rel a:hover{border-color:var(--navy);background:var(--ice)}
.rel-cluster{font:600 .82rem/1 var(--display);color:var(--orange-ink);margin-bottom:.7rem}
.rel-name{font:700 1.3rem/1.15 var(--display);color:var(--navy);letter-spacing:-.015em;margin-bottom:.6rem}
.rel-desc{font-size:.98rem;line-height:1.55;color:var(--steel)}

.final{background:var(--night);color:#C9D8E5;padding:var(--s6) 0;position:relative;overflow:hidden}
.final::before{content:"";position:absolute;right:-8rem;top:-8rem;width:26rem;height:26rem;border:3.5rem solid var(--navy);border-radius:50%}
.final-in{position:relative;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(2rem,6vw,5rem);align-items:end}
.final h2{color:var(--white);font-size:clamp(2.2rem,4.4vw,3.6rem);line-height:1}
.final p{font-size:1.15rem}

/* contact */
.contact-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(2rem,6vw,5rem)}
.contact-cards{display:grid;gap:1rem}
.ccard{display:grid;gap:.35rem;padding:1.5rem 1.6rem;border:1px solid var(--rule);border-radius:10px;text-decoration:none;color:var(--ink)}
.ccard:hover{border-color:var(--navy);background:var(--ice);color:var(--ink)}
.ccard-main{background:var(--navy);border-color:var(--navy);color:#C9D8E5}
.ccard-main:hover{background:var(--night);color:#C9D8E5}
.ccard-main .cv{color:var(--white);font-size:clamp(2rem,4vw,3rem)}
.cl{font:600 .9rem/1 var(--display);color:var(--orange-ink)}
.ccard-main .cl{color:var(--orange)}
.cv{font:720 1.45rem/1.15 var(--display);color:var(--navy);letter-spacing:-.02em;overflow-wrap:anywhere}
.cn{font-size:1rem;color:var(--steel)}
.ccard-main .cn{color:#A9C0D3}
.contact-side h2{font-size:1.4rem;margin:0 0 1rem}
.contact-side h2+*{margin-bottom:2.25rem}
.hours{border-collapse:collapse;width:100%;font-family:var(--display)}
.hours th,.hours td{text-align:left;padding:.65rem 0;border-bottom:1px solid var(--rule);font-weight:500}
.hours td{text-align:right;color:var(--navy);font-weight:650}
.ticks{list-style:none;padding:0;margin:0}
.ticks li{padding-left:1.6rem;position:relative;margin-bottom:.6rem}
.ticks li::before{content:"";position:absolute;left:0;top:.55em;width:.7rem;height:.7rem;background:var(--orange)}
.svc-list{list-style:none;margin:0;padding:0;columns:3 15rem;column-gap:2.5rem}
.svc-list li{break-inside:avoid;border-top:1px solid var(--rule)}
.svc-list a{display:block;padding:.8rem 0;font:600 1.05rem/1.3 var(--display);text-decoration:none}
.svc-list a:hover{color:var(--orange-ink)}
.doc{max-width:42em}
.doc h2{font-size:1.6rem;margin:2.2rem 0 .8rem}
.doc h3{margin:1.6rem 0 .6rem}

/* ---------- 404 */
.nf{position:relative;overflow:hidden;color:#C9D8E5;background:radial-gradient(1200px 700px at 75% 45%,#0B3560 0%,#04223F 45%,var(--night) 75%)}
.nf::before{content:"";position:absolute;inset:0;background-image:radial-gradient(1px 1px at 12% 22%,rgba(255,255,255,.55) 50%,transparent 51%),radial-gradient(1px 1px at 28% 78%,rgba(255,255,255,.4) 50%,transparent 51%),radial-gradient(1.5px 1.5px at 44% 12%,rgba(255,255,255,.5) 50%,transparent 51%),radial-gradient(1px 1px at 63% 88%,rgba(255,255,255,.35) 50%,transparent 51%),radial-gradient(1px 1px at 86% 16%,rgba(255,255,255,.5) 50%,transparent 51%),radial-gradient(1.5px 1.5px at 93% 64%,rgba(255,255,255,.4) 50%,transparent 51%),radial-gradient(1px 1px at 7% 58%,rgba(255,255,255,.35) 50%,transparent 51%),radial-gradient(1px 1px at 55% 40%,rgba(255,255,255,.3) 50%,transparent 51%);pointer-events:none}
.nf-grid{position:relative;display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);align-items:center;gap:2rem;min-height:min(86vh,820px);padding-top:3rem;padding-bottom:3rem}
.nf-code{display:inline-block;font:800 clamp(5rem,13vw,10rem)/.85 var(--display);letter-spacing:-.05em;margin:0 0 1rem;background:linear-gradient(180deg,#FFB347 0%,#FF8900 55%,#C25E00 100%);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 0 30px rgba(255,137,0,.35))}
.nf h1{color:var(--white)}
.nf .lead{color:#C9D8E5;max-width:32em}
.nf .lead strong{color:var(--white)}
.nf-pop-label{font:600 .9rem/1 var(--display);color:var(--orange);margin:2.5rem 0 .9rem}
.nf-pop{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.5rem}
.nf-pop a{display:inline-block;padding:.55rem .9rem;border:1px solid rgba(255,255,255,.22);border-radius:999px;color:#E2ECF5;text-decoration:none;font:550 .92rem/1 var(--display);transition:background-color .2s,border-color .2s}
.nf-pop a:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.5);color:var(--white)}
.nf-stage{position:relative;aspect-ratio:1/1;width:100%;max-width:640px;justify-self:center}
#nf-globe{width:100%;height:100%;display:block;cursor:grab;touch-action:none;animation:globe-in 1.2s cubic-bezier(.2,.8,.2,1) both}
#nf-globe.grabbing{cursor:grabbing}
.nf-hint{position:absolute;left:0;right:0;bottom:2%;text-align:center;font:500 .82rem/1 var(--display);color:rgba(201,216,229,.6);margin:0}
@keyframes globe-in{from{opacity:0;transform:scale(.9) rotate(-8deg)}to{opacity:1;transform:none}}
@media (max-width:1020px){.nf-grid{grid-template-columns:1fr;min-height:0}.nf-stage{max-width:460px;order:-1;margin-bottom:-1rem}.nf-code{font-size:clamp(4rem,18vw,6rem)}}

/* ---------- thank you */
.ty-badge{display:inline-flex;align-items:center;gap:.6rem;font:650 .95rem/1 var(--display);color:#D9F5E4;background:rgba(30,158,79,.18);border:1px solid rgba(30,158,79,.55);padding:.55rem .9rem .55rem .6rem;border-radius:999px;margin:0 0 1.6rem}
.ty-check{width:1.35rem;height:1.35rem;border-radius:50%;background:#1E9E4F url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.4l2.6 2.5L12 5.4' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' stroke-dasharray='14' stroke-dashoffset='14'%3E%3Canimate attributeName='stroke-dashoffset' from='14' to='0' dur='.5s' begin='.4s' fill='freeze'/%3E%3C/path%3E%3C/svg%3E") center/80% no-repeat;animation:pop .45s cubic-bezier(.3,1.6,.5,1) .15s both}
.ty h1{font-size:clamp(2.4rem,4.8vw,4rem)}
.ty-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2.5rem}
.ty-steps li{border-top:2px solid var(--navy);padding-top:1.25rem}
.ty-n{display:inline-grid;place-items:center;width:2.4rem;height:2.4rem;border-radius:50%;background:var(--orange);color:var(--night);font:780 1.1rem/1 var(--display);margin-bottom:1rem}
.ty-steps h3{margin-bottom:.5rem}
.ty-steps p{margin:0;font-size:1.02rem;color:#2E3D4C}
@media (max-width:1020px){.ty-steps{grid-template-columns:1fr;gap:1.75rem}}

/* ---------- contact */
.ct{position:relative;overflow:hidden;color:#C9D8E5;background:radial-gradient(1100px 600px at 50% 110%,#0E4377 0%,#04223F 50%,var(--night) 80%)}
.ct::before{content:"";position:absolute;inset:0;background-image:radial-gradient(1px 1px at 8% 18%,rgba(255,255,255,.5) 50%,transparent 51%),radial-gradient(1.5px 1.5px at 22% 42%,rgba(255,255,255,.4) 50%,transparent 51%),radial-gradient(1px 1px at 38% 10%,rgba(255,255,255,.5) 50%,transparent 51%),radial-gradient(1px 1px at 57% 30%,rgba(255,255,255,.35) 50%,transparent 51%),radial-gradient(1.5px 1.5px at 74% 8%,rgba(255,255,255,.45) 50%,transparent 51%),radial-gradient(1px 1px at 90% 34%,rgba(255,255,255,.4) 50%,transparent 51%),radial-gradient(1px 1px at 96% 12%,rgba(255,255,255,.5) 50%,transparent 51%);pointer-events:none}
.ct-planet{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;animation:planet-rise 1.6s cubic-bezier(.2,.8,.2,1) both}
@keyframes planet-rise{from{opacity:0;transform:translateY(80px)}to{opacity:1;transform:none}}
.ct-grid{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.95fr);gap:clamp(2rem,5vw,4.5rem);align-items:start;padding-top:clamp(2.5rem,5vw,4rem);padding-bottom:clamp(15rem,26vw,22rem)}
.ct .crumbs a,.ct .crumbs ol{color:#9FB6CC}
.ct h1{color:var(--white);font-size:clamp(2.3rem,4.4vw,3.8rem)}
.ct .lead{color:#C9D8E5;max-width:34em}
.ct-badge{margin-bottom:1.4rem;background:rgba(255,137,0,.14);border-color:rgba(255,137,0,.5);color:#FFE2BF}
.ct-dot{width:.6rem;height:.6rem;border-radius:50%;background:var(--orange);margin-left:.3rem;box-shadow:0 0 0 0 rgba(255,137,0,.7);animation:live 2s infinite}
@keyframes live{0%{box-shadow:0 0 0 0 rgba(255,137,0,.6)}70%{box-shadow:0 0 0 10px rgba(255,137,0,0)}100%{box-shadow:0 0 0 0 rgba(255,137,0,0)}}
.ct-methods{list-style:none;margin:2rem 0 0;padding:0;display:grid;gap:.7rem;max-width:30rem}
.ct-methods a{display:flex;align-items:center;gap:1rem;padding:.9rem 1.1rem;border-radius:12px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);backdrop-filter:blur(6px);color:var(--white);text-decoration:none;transition:background-color .2s,border-color .2s,transform .25s cubic-bezier(.2,.8,.2,1)}
.ct-methods a:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.35);transform:translateX(4px);color:var(--white)}
.ct-ic{display:grid;place-items:center;width:2.6rem;height:2.6rem;border-radius:10px;background:var(--orange);color:var(--night);flex:none}
.ct-ic svg{width:1.2rem;height:1.2rem}
.ct-l{display:block;font:600 .78rem/1 var(--display);color:#9FB6CC;margin-bottom:.3rem}
.ct-v{display:block;font:650 1.08rem/1.2 var(--display);overflow-wrap:anywhere}
.ct-hours{position:relative;text-shadow:0 1px 8px rgba(0,26,51,.9);display:flex;flex-wrap:wrap;gap:.5rem 1.6rem;margin:1.6rem 0 0;font:500 .92rem/1.3 var(--display)}
.ct-hours div{display:flex;gap:.4rem}.ct-hours dt{color:#9FB6CC}.ct-hours dd{margin:0;color:var(--white);font-weight:650}
.ct-card{position:relative;background:var(--white);color:var(--ink);border-radius:16px;padding:clamp(1.5rem,3vw,2.25rem);box-shadow:0 40px 80px -30px rgba(0,0,0,.6),0 0 0 1px rgba(255,255,255,.08);border-top:4px solid var(--orange);animation:card-in .8s cubic-bezier(.2,.8,.2,1) .2s both}
@keyframes card-in{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
.ct-card h2{font-size:1.75rem}
.ct-card-sub{color:var(--steel);margin:.5rem 0 1.25rem;font-size:1rem}
.crm-wrap{min-height:320px}
.crm-wrap [data-crm-form]:not(:empty)+.form-fallback{display:none}
.form-fallback{font-size:.98rem;color:var(--steel);padding:1rem;border:1px dashed var(--rule);border-radius:10px}
.ct-privacy{font-size:.85rem;color:var(--steel);margin:1rem 0 0}
@media (max-width:1020px){.ct-grid{grid-template-columns:1fr;padding-bottom:clamp(12rem,55vw,18rem)}}

/* ---------- footer */
.site-footer{background:var(--night);color:#A9C0D3;border-top:1px solid rgba(255,255,255,.08)}
.footer-top{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:clamp(2rem,6vw,5rem);padding-top:var(--s5);padding-bottom:var(--s5)}
.fbig{font:700 1.6rem/1.2 var(--display);color:var(--white);letter-spacing:-.02em;margin:0 0 1.5rem}
.site-footer address{font-style:normal;margin-top:1.75rem;font-size:1rem;line-height:1.7}
.site-footer a{color:#DCE7F0;text-decoration:none}
.site-footer a:hover{color:var(--orange)}
.site-footer .btn-primary{color:var(--night)}
.fnav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1.5rem}
.fhead{font:650 .95rem/1 var(--display);color:var(--orange);margin:0 0 1rem}
.fcol ul{list-style:none;margin:0;padding:0}
.fcol li{margin:0 0 .55rem;font:500 .95rem/1.3 var(--display)}
.footer-base{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding-top:1.25rem;padding-bottom:1.5rem;border-top:1px solid rgba(255,255,255,.12);font:500 .88rem/1.3 var(--display)}
.footer-base p{margin:0}
.footer-base a{margin-left:1.25rem}

/* ---------- responsive */
@media (max-width:1100px){
  .cards-many{grid-template-columns:repeat(3,minmax(0,1fr))}
  .rel{grid-template-columns:repeat(2,minmax(0,1fr))}
  .fnav{grid-template-columns:repeat(3,minmax(0,1fr))}
  .footer-top{grid-template-columns:1fr}
}
@media (max-width:1240px){
  .nav-mobile{display:block}
  .utility p+p{display:none}
  .btn-call span{display:none}
  .btn-call{padding:.8rem;margin-left:auto}
  .menu-toggle{display:grid;place-items:center;width:46px;height:46px;border:1px solid var(--rule);border-radius:6px;background:var(--white);cursor:pointer}
  .menu-toggle>span:first-child,.menu-toggle>span:first-child::before,.menu-toggle>span:first-child::after{display:block;width:20px;height:2px;background:var(--navy);position:relative;transition:transform .2s}
  .menu-toggle>span:first-child::before,.menu-toggle>span:first-child::after{content:"";position:absolute;left:0}
  .menu-toggle>span:first-child::before{top:-6px}.menu-toggle>span:first-child::after{top:6px}
  .menu-toggle[aria-expanded="true"]>span:first-child{background:transparent}
  .menu-toggle[aria-expanded="true"]>span:first-child::before{transform:translateY(6px) rotate(45deg)}
  .menu-toggle[aria-expanded="true"]>span:first-child::after{transform:translateY(-6px) rotate(-45deg)}
  .nav{display:none;position:absolute;left:0;right:0;top:100%;background:var(--white);border-bottom:1px solid var(--rule);max-height:calc(100vh - 80px);overflow:auto;padding:.5rem var(--gut) 1.5rem;box-shadow:0 20px 30px -20px rgba(0,26,51,.3)}
  .nav.open{display:block}
  .nav-list{flex-direction:column;align-items:stretch}
  .nav summary,.nav-link{justify-content:space-between;padding:1rem .25rem;font-size:1.08rem;border-bottom:1px solid var(--ice);border-radius:0}
  .nav details[data-active] summary,.nav-link[aria-current]{box-shadow:none;color:var(--orange-ink)}
  .nav-menu{position:static;box-shadow:none;border:0;padding:.25rem 0 .75rem .75rem;min-width:0}
}
@media (max-width:1020px){
  .hero-grid,.split,.media,.final-in,.contact-grid{grid-template-columns:1fr}
  .split>.sec-head,.steps-side{position:static}
  .media.flip .media-fig{order:0}
  .hero-media{margin-bottom:4.5rem}
  .serp{left:1rem;right:1rem}
  .cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .band-in{flex-direction:column;align-items:flex-start}
}
@media (max-width:640px){
  body{font-size:1.075rem}
  .utility{display:none}
  .site-header .wrap{min-height:66px;gap:.75rem}
  .logo img{width:200px}
  .cards,.cards-many,.rel,.gallery{grid-template-columns:1fr}
  .steps li{grid-template-columns:3.2rem 1fr}
  .step-n{font-size:2rem}
  .timeline li{grid-template-columns:1fr;gap:.25rem}
  .alert:nth-child(2),.alert:nth-child(3){margin-left:0}
  .fnav{grid-template-columns:1fr 1fr}
  .footer-base a{margin:0 1rem 0 0}
  .ans{padding-right:0}
}
/* ---------- motion */
.js-anim [data-reveal]{opacity:0;transform:translateY(16px);transition:opacity .65s ease,transform .65s cubic-bezier(.2,.8,.2,1);transition-delay:var(--d,0ms)}
.js-anim [data-reveal].in{opacity:1;transform:none}
.js-anim .media-fig[data-reveal],.js-anim .steps-fig[data-reveal]{transform:translateY(16px) scale(.985)}
.js-anim .media-fig[data-reveal].in,.js-anim .steps-fig[data-reveal].in{transform:none}
.js-anim .sec-head h2::after{transform:scaleX(0);transform-origin:left;transition:transform .8s cubic-bezier(.2,.8,.2,1) .25s}
.js-anim .sec-head.in h2::after{transform:scaleX(1)}
.site-header{transition:box-shadow .25s ease}
.site-header.scrolled{box-shadow:0 10px 30px -18px rgba(0,26,51,.35)}
.btn{transition:background-color .15s,color .15s,border-color .15s,transform .2s cubic-bezier(.2,.8,.2,1),box-shadow .2s}
.btn:hover{transform:translateY(-2px)}
.btn-primary:hover{box-shadow:0 10px 20px -10px rgba(168,85,0,.6)}
.btn:active{transform:translateY(0)}
.btn:hover svg{animation:ring .55s ease}
@keyframes ring{0%,100%{transform:rotate(0)}20%{transform:rotate(-14deg)}40%{transform:rotate(12deg)}60%{transform:rotate(-8deg)}80%{transform:rotate(5deg)}}
.rel a{transition:border-color .2s,background-color .2s,transform .25s cubic-bezier(.2,.8,.2,1),box-shadow .25s}
.rel a:hover{transform:translateY(-4px);box-shadow:0 18px 30px -22px rgba(0,26,51,.5)}
.ccard{transition:border-color .2s,background-color .2s,transform .25s cubic-bezier(.2,.8,.2,1)}
.ccard:hover{transform:translateY(-3px)}
.card{transition:border-color .25s}
.card-link h3 a{transition:color .2s}
.media-fig img,.gallery img{transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.media-fig,.gallery figure{overflow:hidden;border-radius:10px}
.media-fig:hover img,.gallery figure:hover img{transform:scale(1.025)}
.gallery figure{overflow:visible}.gallery figure img{will-change:transform}
.faq details[open] .ans{animation:faq-open .35s ease}
@keyframes faq-open{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.chips li::before{animation:pop .4s cubic-bezier(.3,1.6,.5,1) both}
.chips li:nth-child(2)::before{animation-delay:.1s}.chips li:nth-child(3)::before{animation-delay:.2s}
@keyframes pop{from{transform:scale(0)}to{transform:scale(1)}}
.hero-kicker::before{animation:pop .4s cubic-bezier(.3,1.6,.5,1) .1s both}
.nav-menu{animation:menu-in .18s ease}
@keyframes menu-in{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.step-n{transition:color .3s}
.steps li:hover .step-n{color:#FFB04D}

@media (prefers-reduced-motion:reduce){
  .js-anim [data-reveal]{opacity:1!important;transform:none!important}
  *,*::before,*::after{animation:none!important;transition:none!important}
}
@media print{.utility,.site-header,.band,.final,.site-footer,.related{display:none}}
