
:root{
  --navy:#14406F; --navy-d:#0E3055; --mid:#205282; --accent:#266AA6;
  --ice:#EDF3F8; --ink:#1B2733; --body:#41505E; --muted:#7A8894;
  --line:#DFE6EC; --bg:#fff; --soft:#F6F9FB;
  --radius:6px; --wrap:1360px;
  --shadow:0 1px 2px rgba(16,40,64,.05), 0 8px 24px rgba(16,40,64,.06);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
#form{scroll-margin-top:124px}
body{
  margin:0; background:var(--bg); color:var(--body);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  font-size:17px; line-height:1.65; -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{color:var(--navy); margin:0 0 .5em; line-height:1.2; font-weight:700}
h1{font-size:clamp(32px,4.6vw,50px); letter-spacing:-.5px}
h2{font-size:clamp(25px,3vw,34px); letter-spacing:-.3px}
h3{font-size:19px}
p{margin:0 0 1em}
a{color:var(--accent); text-decoration:none}
a:hover{text-decoration:underline}
img{max-width:100%}
.wrap{max-width:var(--wrap); margin:0 auto; padding:0 24px}
.eyebrow{
  font-size:12px; font-weight:700; letter-spacing:2.5px; text-transform:uppercase;
  color:var(--accent); margin:0 0 14px;
}
.lede{font-size:19px; color:var(--body); max-width:62ch}
.center{text-align:center}
.center .lede{margin-left:auto; margin-right:auto}

/* show banner */
.show-banner{
  background:#000; color:#fff; text-align:center; font-size:14px; font-weight:600;
  padding:10px 16px; max-width:640px; margin:20px auto 0; border-radius:var(--radius);
}
.show-banner a{color:#fff; text-decoration:underline}

/* header */
header{
  position:sticky; top:0; z-index:50; background:rgba(255,255,255,.95);
  backdrop-filter:saturate(180%) blur(8px); border-bottom:1px solid var(--line);
}
.nav{display:flex; align-items:center; gap:30px; height:100px}
.brand{display:flex; align-items:center; flex-shrink:0}
.brand img{height:87px; width:auto; display:block}
.links{display:flex; gap:26px; margin-left:auto; align-items:center}
.links a{
  color:var(--navy); font-size:15px; font-weight:600; text-decoration:none;
  padding:6px 0; border-bottom:2px solid transparent;
}
.links a:hover{border-bottom-color:var(--accent); text-decoration:none}
.links a.on{border-bottom-color:var(--accent)}
.links .btn{padding:13px 30px; margin-left:6px}
.btn{
  display:inline-block; background:var(--accent); color:#fff !important; font-weight:600;
  padding:12px 22px; border-radius:var(--radius); font-size:15px; text-decoration:none !important;
  border:1px solid var(--accent); transition:background .15s,border-color .15s;
}
.btn:hover{background:var(--navy); border-color:var(--navy)}
.btn.ghost{background:transparent; color:var(--navy) !important; border-color:var(--line)}
.btn.ghost:hover{border-color:var(--navy); background:var(--soft)}
.btn.light{background:#fff; color:var(--navy) !important; border-color:#fff}
.btn.light:hover{background:var(--ice); border-color:var(--ice)}
.btn.lg{padding:15px 30px; font-size:16px}
.burger{display:none}

/* hero */
.hero{
  background:linear-gradient(160deg,var(--mid) 0%,var(--navy) 60%,var(--navy-d) 100%);
  color:#DCE8F2; position:relative; overflow:hidden;
}
.hero.photo{
  background-image:linear-gradient(100deg,rgba(14,48,85,.94) 0%,rgba(20,64,111,.86) 42%,rgba(32,82,130,.55) 100%),
    var(--heroimg); background-size:cover; background-position:center; background-repeat:no-repeat;
}
.hero.tall .wrap{padding-top:96px; padding-bottom:132px}
.hero .wrap{padding-top:96px; padding-bottom:90px; position:relative; z-index:1}
.hero h1{color:#fff; max-width:19ch}
.hero .lede{color:#C9DCEC; font-size:20px; max-width:58ch; margin-bottom:32px}
.hero .eyebrow{color:#8FC1E8}
.cta-row{display:flex; gap:14px; flex-wrap:wrap}

/* stat strip */
.stats{background:var(--soft); border-bottom:1px solid var(--line)}
.stats .wrap{display:grid; grid-template-columns:repeat(4,1fr); gap:26px; padding-top:36px; padding-bottom:36px}
.stat b{display:block; font-size:34px; color:var(--navy); line-height:1.1; font-weight:700}
.stat span{font-size:14px; color:var(--muted)}

section{padding:78px 0}
section.tint{background:var(--soft); border-top:1px solid var(--line); border-bottom:1px solid var(--line)}
.head{max-width:64ch; margin-bottom:44px}
.head.center{margin-left:auto; margin-right:auto; text-align:center}

/* grids + cards */
.grid{display:grid; gap:22px}
.g2{grid-template-columns:repeat(2,1fr)}
.g3{grid-template-columns:repeat(3,1fr)}
.g4{grid-template-columns:repeat(4,1fr)}
.card{
  background:#fff; border:1px solid var(--line); border-radius:var(--radius);
  padding:28px 26px; transition:box-shadow .18s,transform .18s,border-color .18s;
}
.card:hover{box-shadow:var(--shadow); transform:translateY(-2px); border-color:#C9D6E2}
.card h3{margin-bottom:8px}
.card p{font-size:15.5px; margin-bottom:0; color:var(--body)}
.card .ico{
  width:42px; height:42px; border-radius:5px; background:var(--ice);
  display:flex; align-items:center; justify-content:center; margin-bottom:16px;
}
.card .ico svg{width:22px; height:22px; stroke:var(--navy); fill:none; stroke-width:1.7}
.card.flat:hover{transform:none; box-shadow:none}

.pill{
  display:inline-block; background:var(--ice); color:var(--mid); border-radius:100px;
  padding:5px 13px; font-size:13px; font-weight:600; margin:0 6px 8px 0;
}

/* table */
.tbl{width:100%; border-collapse:collapse; font-size:15px; background:#fff}
.tbl th{
  background:var(--navy); color:#fff; text-align:left; padding:13px 16px;
  font-size:13px; letter-spacing:.6px; text-transform:uppercase; font-weight:600;
}
.tbl td{padding:13px 16px; border-bottom:1px solid var(--line); vertical-align:top}
.tbl tr:last-child td{border-bottom:0}
.tbl tr:nth-child(even) td{background:#FBFDFE}
.tbl-wrap{overflow-x:auto; border:1px solid var(--line); border-radius:var(--radius)}

/* imagery */
.media{border-radius:var(--radius); overflow:hidden; line-height:0; box-shadow:var(--shadow)}
.media img{width:100%; height:100%; object-fit:cover; display:block}
.imgcard{
  background:#fff; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden;
  transition:box-shadow .18s,transform .18s,border-color .18s; display:flex; flex-direction:column;
}
.imgcard:hover{box-shadow:var(--shadow); transform:translateY(-2px); border-color:#C9D6E2}
.imgcard .ph{aspect-ratio:16/10; overflow:hidden; background:var(--ice)}
.imgcard .ph img{width:100%; height:100%; object-fit:cover; display:block}
.imgcard .bd{padding:24px 24px 26px}
.imgcard h3{margin-bottom:8px}
.imgcard p{font-size:15.5px; margin-bottom:0}
.strip{display:grid; grid-template-columns:repeat(3,1fr); gap:16px}
.strip .media{aspect-ratio:4/3}

/* split */
.split{display:grid; grid-template-columns:1.05fr .95fr; gap:60px; align-items:center}
.panel{
  background:var(--navy); color:#CFDEEA; border-radius:var(--radius); padding:34px 32px;
}
.panel h3{color:#fff}
.panel ul{margin:0; padding-left:18px}
.panel li{margin-bottom:9px; font-size:15.5px}

/* quote band */
.band{background:var(--navy); color:#CFDEEA; text-align:center}
.band h2{color:#fff}
.band .lede{color:#B9CDDD; margin:0 auto 26px}

/* testimonial */
.quote{
  max-width:760px; margin:0 auto; text-align:center; font-size:22px; line-height:1.55;
  color:var(--navy); font-weight:500;
}
.quote cite{display:block; margin-top:20px; font-size:15px; color:var(--muted); font-style:normal}

/* form */
.form{background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:32px}
.field{margin-bottom:18px}
.field label{display:block; font-size:14px; font-weight:600; color:var(--navy); margin-bottom:6px}
.field input,.field select,.field textarea{
  width:100%; padding:11px 13px; border:1px solid var(--line); border-radius:5px;
  font-size:15.5px; font-family:inherit; color:var(--ink); background:#fff;
}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none; border-color:var(--accent); box-shadow:0 0 0 3px rgba(38,106,166,.12);
}
.field textarea{min-height:120px; resize:vertical}
.two{display:grid; grid-template-columns:1fr 1fr; gap:18px}
.note{font-size:13.5px; color:var(--muted)}
.ok{
  display:none; background:#EAF6EE; border:1px solid #BFE3CC; color:#1E6B3A;
  padding:14px 16px; border-radius:5px; margin-bottom:18px; font-size:15px;
}

/* footer */
footer{background:#0C2743; color:#93AABF; font-size:14.5px; padding:56px 0 28px}
footer h4{color:#fff; font-size:13px; letter-spacing:1.6px; text-transform:uppercase; margin-bottom:14px}
footer a{color:#B7CBDC; text-decoration:none}
footer a:hover{color:#fff; text-decoration:underline}
.fgrid{display:grid; grid-template-columns:1.5fr 1fr 1fr 1.2fr; gap:36px; padding-bottom:34px}
.fgrid img{height:87px; margin-bottom:16px}
.fbot{border-top:1px solid #1B3A57; padding-top:20px; display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; font-size:13.5px}
footer ul{list-style:none; margin:0; padding:0}
footer li{margin-bottom:9px}

@media (max-width:940px){
  .strip{grid-template-columns:1fr}
  .g4{grid-template-columns:repeat(2,1fr)}
  .g3{grid-template-columns:repeat(2,1fr)}
  .split{grid-template-columns:1fr; gap:34px}
  .fgrid{grid-template-columns:1fr 1fr; gap:28px}
  .stats .wrap{grid-template-columns:repeat(2,1fr); gap:22px}
}
@media (max-width:720px){
  body{font-size:16px}
  .burger{display:block; margin-left:auto; background:none; border:0; padding:8px; cursor:pointer}
  .burger svg{width:26px; height:26px; stroke:var(--navy); stroke-width:2}
  .links{
    display:none; position:absolute; top:100px; left:0; right:0; background:#fff;
    flex-direction:column; align-items:stretch; gap:0; padding:8px 24px 20px;
    border-bottom:1px solid var(--line); box-shadow:var(--shadow);
  }
  .links.open{display:flex}
  .links a{padding:13px 0; border-bottom:1px solid var(--line)}
  .links .btn{margin-top:14px; text-align:center}
  .g2,.g3,.g4{grid-template-columns:1fr}
  .two{grid-template-columns:1fr}
  section{padding:56px 0}
  .hero .wrap{padding-top:62px; padding-bottom:58px}
}
