:root{
--navy:#012268; --navy-deep:#011a4f; --navy-line:#1b3a80;
--white:#fff; --paper:#f4f6fa; --paper-2:#e7ebf3;
--slate:#5a6478; --line:#ccd4e3; --signal:#f5b32d; --muted:#a3acbd;
box-sizing:border-box;
padding-top:env(safe-area-inset-top,0px);
padding-bottom:env(safe-area-inset-bottom,0px);
}
:root:not([data-theme="light"]){ color-scheme:light; }
*,*::before,*::after{ box-sizing:inherit; }
html{ scroll-padding-top:calc(env(safe-area-inset-top,0px) + 104px); -webkit-text-size-adjust:100%; }
body{ margin:0; background:var(--paper); color:var(--navy);
font-family:"Barlow",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif; font-size:17px; line-height:1.55; }
img{ max-width:100%; display:block; }
h1,h2,h3{ font-family:"Barlow Condensed",system-ui,sans-serif; font-weight:700; line-height:1.03; margin:0; }
.wrap{ width:min(1080px,92vw); margin-inline:auto; }
.ph{ background:var(--signal); color:var(--navy-deep); padding:0 .28em; border-radius:2px; font-weight:600; }
.skip{ position:absolute; left:-9999px; }
.skip:focus{ left:1rem; top:1rem; background:#fff; color:var(--navy); padding:.6rem 1rem; z-index:99; }

/* --- header: logo is white on transparent, so the banner navy always shows through and matches --- */
.bar{ background:var(--navy-deep); position:sticky; top:env(safe-area-inset-top,0px); z-index:50; }
.bar > .wrap{ display:flex; align-items:center; gap:1rem; min-height:92px; padding-block:.55rem; width:min(1280px,94vw); }
.bar a.brand{ flex:none; }
.bar img.logo{ height:68px; width:auto; }
.menu{ flex:1 1 auto; min-width:0; display:flex; justify-content:center; }
.menu > ul{ list-style:none; margin:0; padding:0; display:flex; align-items:center; gap:.25rem; }
.menu li{ position:relative; }
.menu > ul > li > a{ display:flex; align-items:center; gap:.4rem; padding:.7rem .95rem; color:#fff; text-decoration:none;
font-family:"Barlow Condensed",sans-serif; font-weight:700; font-size:1.18rem; letter-spacing:.03em; text-transform:uppercase; white-space:nowrap; }
.menu > ul > li > a:hover, .menu > ul > li:focus-within > a, .menu > ul > li.cur > a{ color:var(--signal); }
.menu svg.chev{ width:14px; height:14px; transition:transform .15s; }
.menu li.has-sub:hover svg.chev, .menu li.has-sub:focus-within svg.chev{ transform:rotate(180deg); }
.menu li.hl > a{ background:var(--signal); color:var(--navy-deep); border-radius:2px; }
.menu li.hl > a:hover{ background:#ffc44d; color:var(--navy-deep); }
.menu .sub{ display:none; position:absolute; top:100%; left:0; min-width:230px; list-style:none; margin:0; padding:.4rem 0;
background:var(--white); border-top:3px solid var(--signal); box-shadow:0 14px 30px -12px rgba(1,26,79,.5); border-radius:0 0 4px 4px; z-index:60; }
.menu li.has-sub:hover > .sub, .menu li.has-sub:focus-within > .sub{ display:block; }
.menu .sub a{ display:block; padding:.55rem 1rem; color:var(--navy); text-decoration:none; font-weight:500; }
.menu .sub a:hover, .menu .sub a:focus-visible{ background:var(--paper-2); }
.callbtn{ flex:none; display:inline-flex; align-items:center; gap:.55rem; background:var(--signal); color:var(--navy-deep); text-decoration:none;
font-family:"Barlow Condensed",sans-serif; font-weight:700; font-size:1.3rem; letter-spacing:.02em;
padding:.5rem 1.1rem; border:2px solid #fff; border-radius:8px; white-space:nowrap; }
.callbtn:hover{ background:#ffc44d; }
.callbtn svg{ width:20px; height:20px; flex:none; }
@media (max-width:1400px){
.menu > ul > li > a{ padding:.6rem .55rem; font-size:1.05rem; }
.callbtn{ font-size:1.15rem; padding:.45rem .85rem; }
.bar img.logo{ height:58px; }
}
/* narrower screens: nav buttons drop to a second row under the logo instead of hiding */
@media (max-width:1100px){
.bar > .wrap{ flex-wrap:wrap; row-gap:.35rem; min-height:0; padding-bottom:.35rem; }
.callbtn{ margin-left:auto; }
.menu{ order:3; flex:1 1 100%; border-top:1px solid var(--navy-line); padding-top:.35rem; }
.menu > ul{ flex-wrap:wrap; justify-content:center; gap:.15rem .25rem; }
.menu > ul > li > a{ padding:.5rem .65rem; font-size:1.05rem; }
html{ scroll-padding-top:150px; }
}
.bar.compact > .wrap{ flex-wrap:wrap; row-gap:.35rem; min-height:0; padding-bottom:.35rem; }
.bar.compact .callbtn{ margin-left:auto; }
.bar.compact .menu{ order:3; flex:1 1 100%; border-top:1px solid var(--navy-line); padding-top:.35rem; }
.bar.compact .menu > ul{ flex-wrap:wrap; justify-content:center; gap:.15rem .25rem; }
.bar.compact .menu > ul > li > a{ padding:.5rem .65rem; font-size:1.05rem; }
@media (max-width:600px){
.menu svg.chev{ display:none; }
.menu .sub{ display:none !important; }
.menu > ul > li > a{ padding:.4rem .5rem; font-size:.98rem; letter-spacing:.02em; }
}
@media (max-width:520px){
.bar img.logo{ height:44px; }
.callbtn .num{ display:none; }
.callbtn::after{ content:"Call"; }
.callbtn{ font-size:1.1rem; padding:.45rem .75rem; }
}

.hero{ background:var(--navy); color:var(--white); padding:clamp(2.5rem,7vw,4.5rem) 0 0; }

/* --- photo hero (homepage) --- */
.hero.home{
background:
linear-gradient(180deg, rgba(1,34,104,.82) 0%, rgba(1,34,104,.88) 45%, rgba(1,34,104,.96) 100%),
url("hero.jpg") center 62% / cover no-repeat,
var(--navy);
}
@media (max-width:640px){
.hero.home{ background-position:center, 62% 62%, center; }
}
.card .shot{ position:relative; }
.card .shot img{ display:block; }
.hero.short{ padding-bottom:clamp(2.5rem,6vw,3.5rem); }
.hero h1{ font-size:clamp(2.4rem,7vw,4.6rem); max-width:18ch; }
.hero.short h1{ font-size:clamp(2.2rem,5.5vw,3.6rem); }
.hero .lede{ font-size:clamp(1.05rem,2.2vw,1.28rem); max-width:56ch; margin:1.1rem 0 0; color:#c4d1ec; }
.hero.home .lede{ font-size:clamp(1.15rem,2.6vw,1.5rem); font-weight:500; }
.hero .since{ margin-top:1.4rem; color:#93a6cd; font-size:.95rem; }
.priceband{ margin-top:clamp(2rem,5vw,3rem); background:var(--navy-deep); border-top:3px solid var(--signal); }
.priceband .wrap{ display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); }
.pcell{ padding:1.4rem 1.2rem 1.6rem; border-left:1px solid var(--navy-line); }
.pcell:first-child{ border-left:0; padding-left:0; }
.pcell a{ text-decoration:none; display:block; }
.pcell .amt{ font-family:"Barlow Condensed",sans-serif; font-size:2.9rem; font-weight:700; color:var(--white); line-height:1; }
.pcell .what{ margin-top:.35rem; color:#c4d1ec; font-size:1rem; }
.pcell .note{ color:#8a9dc4; font-size:.85rem; margin-top:.2rem; }
.pcell a:hover .what{ text-decoration:underline; }
@media (max-width:440px){ .pcell{ border-left:0; padding-left:0; border-top:1px solid var(--navy-line); } .pcell:first-child{ border-top:0; } }

section{ padding:clamp(3rem,7vw,4.75rem) 0; }
section h2{ font-size:clamp(1.9rem,4.5vw,2.75rem); max-width:24ch; }
section .sub{ color:var(--slate); max-width:62ch; margin:.7rem 0 2rem; }
.alt{ background:var(--paper-2); }

.steps{ display:grid; gap:1.5rem; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); }
.step{ border-top:2px solid var(--navy); padding-top:.9rem; }
.step .n{ font-family:"Barlow Condensed",sans-serif; font-weight:700; font-size:1.05rem; color:var(--slate); }
.step h3{ font-size:1.35rem; margin:.15rem 0 .4rem; }
.step p{ margin:0; color:var(--slate); font-size:.97rem; }

.cards{ display:grid; gap:1.75rem; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); }
.card{ background:var(--white); border:1px solid var(--line); }
.card .shot{ aspect-ratio:4/3; background:var(--paper-2); display:flex; align-items:center; justify-content:center;
color:var(--slate); font-size:.85rem; text-align:center; padding:1rem; border-bottom:1px solid var(--line); }
.card .shot img{ width:100%; height:100%; object-fit:cover; }
.cards.split{ grid-template-columns:minmax(260px,1fr) 1.4fr; align-items:start; }
@media (max-width:760px){ .cards.split{ grid-template-columns:1fr; } }
.card .body{ padding:1.1rem 1.2rem 1.4rem; }
.card h3{ font-size:1.3rem; margin-bottom:.35rem; }
.card p{ margin:0; color:var(--slate); font-size:.96rem; }
.card a{ display:inline-block; margin-top:.8rem; font-weight:600; }

/* --- services grid (homepage) --- */
.svc{ display:grid; gap:1.25rem; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); }
.svc article{ background:var(--white); border:1px solid var(--line); border-top:4px solid var(--navy);
border-radius:4px; padding:1.35rem 1.35rem 1.2rem; display:flex; flex-direction:column; }
.svc h3{ font-size:1.6rem; }
.svc .hook{ font-weight:600; margin:.45rem 0 .35rem; color:var(--navy); }
.svc p{ margin:0; color:var(--slate); font-size:.97rem; }
.svc a.more{ margin-top:auto; padding-top:1rem; font-weight:600; color:var(--navy); text-decoration:none; }
.svc a.more:hover{ text-decoration:underline; }

/* --- VIP teaser band (homepage) --- */
.vipband{ background:var(--navy); color:#d3ddf0; }
.vipband h2{ color:#fff; }
.vipband .sub{ color:#c4d1ec; }
.vipgrid{ display:grid; gap:1.5rem 3rem; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); align-items:center; }
.viplist{ list-style:none; margin:0; padding:0; }
.viplist li{ padding:.65rem 0 .65rem 1.8rem; border-bottom:1px solid var(--navy-line); position:relative; }
.viplist li::before{ content:"\2713"; position:absolute; left:.1rem; color:var(--signal); font-weight:700; }
.btn{ display:inline-block; background:var(--signal); color:var(--navy-deep); text-decoration:none; font-weight:600;
padding:.7rem 1.2rem; border-radius:3px; }
.btn:hover{ background:#ffc44d; }

/* --- plans --- */
.plans{ display:grid; gap:1.25rem; grid-template-columns:repeat(auto-fit,minmax(270px,1fr)); align-items:stretch; }
.plan{ background:var(--white); border:1px solid var(--line); border-radius:6px; padding:1.5rem 1.4rem 1.4rem;
display:flex; flex-direction:column; position:relative; }
.plan.featured{ border:2px solid var(--navy); box-shadow:0 10px 28px -14px rgba(1,34,104,.45); }
.plan .tier{ font-family:"Barlow Condensed",sans-serif; font-weight:700; text-transform:uppercase; letter-spacing:.06em; font-size:.9rem; color:var(--slate); }
.plan h3{ font-size:1.9rem; margin-top:.15rem; }
.plan .flag{ position:absolute; top:-.8rem; right:1rem; background:var(--signal); color:var(--navy-deep); font-weight:600; font-size:.8rem; padding:.2rem .6rem; border-radius:3px; }
.plan .desc{ color:var(--slate); font-size:.95rem; margin:.6rem 0 1rem; }
.plan .price{ font-family:"Barlow Condensed",sans-serif; font-weight:700; font-size:3rem; line-height:1; }
.plan .price small{ font-family:"Barlow",sans-serif; font-size:1rem; font-weight:500; color:var(--slate); }
.plan .alt-price{ color:var(--slate); font-size:.88rem; margin:.25rem 0 1rem; }
.plan ul{ list-style:none; margin:0 0 1.2rem; padding:0; border-top:1px solid var(--line); }
.plan li{ padding:.5rem 0 .5rem 1.6rem; border-bottom:1px solid var(--paper-2); position:relative; font-size:.95rem; }
.plan li::before{ content:"\2713"; position:absolute; left:.1rem; top:.5rem; font-weight:700; color:var(--navy); }
.plan li.no{ color:var(--muted); }
.plan li.no::before{ content:"\2715"; color:var(--muted); font-weight:400; }
.plan li b{ font-variant-numeric:tabular-nums; }
.plan .cta{ margin-top:auto; display:block; text-align:center; background:var(--navy); color:#fff; text-decoration:none; font-weight:600; padding:.7rem 1rem; border-radius:3px; }
.plan .cta:hover{ background:var(--navy-deep); }
.plan.light .cta{ background:var(--white); color:var(--navy); border:2px solid var(--navy); }
.treat{ display:grid; grid-template-columns:auto 1fr; gap:1rem 1.25rem; align-items:center; background:var(--navy); color:#fff; border-radius:6px; padding:1.3rem 1.4rem; margin:0 0 1.75rem; }
.treat .badge{ font-family:"Barlow Condensed",sans-serif; font-weight:700; font-size:1rem; text-transform:uppercase; letter-spacing:.06em; background:var(--signal); color:var(--navy-deep); padding:.45rem .7rem; border-radius:3px; white-space:nowrap; }
.treat p{ margin:0; color:#d3ddf0; }
.treat strong{ color:#fff; }
@media (max-width:560px){ .treat{ grid-template-columns:1fr; } .treat .badge{ justify-self:start; } }
.plannote{ color:var(--slate); font-size:.88rem; margin-top:1.3rem; max-width:70ch; }

table{ width:100%; border-collapse:collapse; font-size:1rem; }
caption{ text-align:left; font-weight:600; padding:1.7rem 0 .5rem; font-size:1.05rem; color:var(--navy); }
th,td{ text-align:left; padding:.7rem .6rem; border-bottom:1px solid var(--line); }
th{ font-weight:600; font-size:.9rem; color:var(--slate); }
td.amt{ text-align:right; white-space:nowrap; font-variant-numeric:tabular-nums; font-weight:600; }
.tablewrap{ overflow-x:auto; }
.finenote{ color:var(--slate); font-size:.9rem; margin-top:1.3rem; max-width:62ch; }

.urgent{ background:var(--navy-deep); color:#d3ddf0; }
.urgent h2{ color:var(--white); }
.urgent .sub{ color:#9bafd6; }
.urgent ul{ margin:1.2rem 0 0; padding-left:1.1rem; columns:2; column-gap:2.5rem; }
.urgent li{ margin-bottom:.5rem; break-inside:avoid; }
.urgent a{ color:#fff; }
@media (max-width:640px){ .urgent ul{ columns:1; } }

.panel{ background:var(--white); border:1px solid var(--line); border-radius:4px;
padding:clamp(1.2rem,3vw,2rem); margin-top:1.5rem; }
.embedslot{ border:2px dashed var(--navy); border-radius:4px; padding:2rem 1.2rem; text-align:center;
color:var(--navy); background:#eef2f9; }
.embedslot strong{ display:block; font-size:1.1rem; margin-bottom:.4rem; }
.embedslot span{ color:var(--slate); font-size:.93rem; }

/* --- proof strip (homepage) --- */
.proof{ background:var(--white); padding:clamp(2.25rem,5vw,3rem) 0; }
.proofgrid{ list-style:none; margin:0; padding:0; display:grid; gap:1.25rem; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); }
.proofgrid li{ border-left:4px solid var(--signal); padding-left:.9rem; }
.proofgrid strong{ display:block; font-family:"Barlow Condensed",sans-serif; font-size:2rem; line-height:1.1; }
.proofgrid span{ color:var(--slate); font-size:.95rem; }
.proofnote{ color:var(--slate); font-size:.92rem; margin:1.4rem 0 0; }

.counties{ display:grid; gap:1rem; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); margin-top:1.5rem; padding:0; list-style:none; }
.counties li{ background:var(--white); border:1px solid var(--line); border-left:4px solid var(--navy); padding:.8rem .9rem; font-weight:600; display:flex; flex-direction:column; }
.counties li small{ display:block; font-weight:400; color:var(--slate); font-size:.85rem; margin-top:auto; padding-top:.35rem; }

.prose{ max-width:66ch; }
.prose p{ color:var(--slate); }
.prose h3{ font-size:1.5rem; margin:2rem 0 .5rem; color:var(--navy); }
.checks{ list-style:none; padding:0; margin:1.5rem 0 0; display:grid; gap:1.1rem; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); }
.checks li{ border-left:4px solid var(--signal); padding-left:.9rem; }
.checks strong{ display:block; font-size:1.1rem; }
.checks span{ color:var(--slate); font-size:.95rem; }

.contactgrid{ display:grid; gap:2rem; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); }
.contactgrid h3{ font-size:1.3rem; margin-bottom:.4rem; }
.contactgrid p{ margin:.15rem 0; color:var(--slate); }
.big{ font-family:"Barlow Condensed",sans-serif; font-size:2.2rem; font-weight:700; color:var(--navy); text-decoration:none; }

/* --- careers --- */
.why{ display:grid; gap:1.5rem; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); margin-top:1.75rem; }
.why > div{ border-top:2px solid var(--navy); padding-top:.9rem; }
.why h3{ font-size:1.35rem; margin-bottom:.4rem; }
.why p{ margin:0; color:var(--slate); font-size:.97rem; }
.jobs{ display:grid; gap:1.25rem; }
.job{ background:var(--white); border:1px solid var(--line); border-left:5px solid var(--navy); border-radius:4px; padding:1.4rem 1.4rem 1.3rem; }
.job .top{ display:flex; flex-wrap:wrap; gap:.5rem 1rem; align-items:baseline; justify-content:space-between; }
.job h3{ font-size:1.75rem; }
.job .tags{ display:flex; flex-wrap:wrap; gap:.4rem; }
.job .tags span{ background:var(--paper-2); color:var(--navy); font-size:.82rem; font-weight:600; padding:.2rem .55rem; border-radius:3px; }
.job p{ color:var(--slate); margin:.6rem 0 0; max-width:70ch; }
.job .cols{ display:grid; gap:.5rem 2rem; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); margin-top:1rem; }
.job h4{ margin:0 0 .3rem; font-size:.95rem; }
.job ul{ margin:0; padding-left:1.1rem; color:var(--slate); font-size:.95rem; }
.job li{ margin-bottom:.25rem; }
.job .btn{ margin-top:1.1rem; background:var(--navy); color:#fff; }
.job .btn:hover{ background:var(--navy-deep); }
.applysteps{ margin:0; padding-left:1.2rem; max-width:62ch; }
.applysteps li{ margin-bottom:.6rem; }

footer{ background:var(--navy); color:#bac7e2; padding:2.75rem 0 2rem; font-size:.95rem; }
footer .wrap{ display:grid; gap:1.75rem; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); }
footer h3{ color:var(--white); font-size:1.2rem; margin-bottom:.5rem; }
footer a{ color:var(--white); }
footer p{ margin:.2rem 0; }
footer ul{ list-style:none; padding:0; margin:0; }
footer li{ margin:.2rem 0; }
footer .flogo{ height:56px; width:auto; margin-bottom:.6rem; }
.legal{ border-top:1px solid var(--navy-line); margin-top:2rem; padding-top:1.2rem; color:#8fa2c8; font-size:.85rem; }
a{ color:var(--navy); }
a:focus-visible,button:focus-visible{ outline:3px solid var(--signal); outline-offset:2px; }
@media (prefers-reduced-motion:reduce){ *{ animation:none!important; transition:none!important; } }
