:root{
  --navy:#0B1D33; --blue:#1565FF; --blue-deep:#0F4FD8; --red:#E31937;
  --steel:#6B7280; --silver:#D1D5DB; --white:#FFFFFF; --tint:#F2F5F9; --field:#F8FAFC;
  --body:#1F2E45; --line-soft:#E7EBF0; --ok:#4ADE9B; --ok-dark:#1B8A5A;
  --on-navy:#A9B6C6; --label-navy:#8FA1B8; --line-navy:rgba(255,255,255,.14); --line-navy-soft:rgba(255,255,255,.08);
  --sans:Montserrat, system-ui, -apple-system, "Segoe UI", Helvetica, Arial, sans-serif;
  --wrap:1440px; --prose:1000px;
  --pad-x:clamp(16px,3.5vw,44px); --pad-y:clamp(32px,4.5vw,68px);
}
*,*::before,*::after{box-sizing:border-box;}
html{ -webkit-text-size-adjust:100%; }
body{
  margin:0; background:var(--white); color:var(--navy); font-family:var(--sans);
  font-size:16px; line-height:1.65; -webkit-font-smoothing:antialiased; overflow-x:hidden;
  min-height:100dvh; display:flex; flex-direction:column;
}
img{max-width:100%; display:block;}
a{color:var(--blue-deep);}
button,input,select,textarea{font-family:inherit;}
a,button,input,select,textarea,.chip{ -webkit-tap-highlight-color:transparent; }
button,a,.chip,.seg button{ touch-action:manipulation; }
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{ outline:2px solid var(--blue); outline-offset:2px; }
@keyframes vds-pulse{0%,100%{opacity:1}50%{opacity:.3}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;}}

.skip{position:absolute; left:-9999px; top:8px; z-index:90; background:var(--navy); color:#fff; padding:12px 18px; font-weight:600; text-decoration:none;}
.skip:focus{left:8px;}

/* layout primitives */
.wrap{max-width:var(--wrap); margin-inline:auto; padding-inline:var(--pad-x);}
.prose{max-width:var(--prose); margin-inline:auto; padding-inline:var(--pad-x);}
.py{padding-block:var(--pad-y);}
.section{max-width:var(--wrap); margin-inline:auto; padding:var(--pad-y) var(--pad-x);}
.grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,var(--min,320px)),1fr)); gap:var(--gap,clamp(28px,4vw,56px));}
.start{align-items:start;} .center{align-items:center;} .end{align-items:end;}
main{flex:1;}

/* hairline grid: gap over a silver container, each cell white */
.hgrid{display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,var(--min,300px)),1fr)); gap:1px; background:var(--silver); border:1px solid var(--silver);}
.hgrid>*{background:var(--white);}
.hgrid.on-navy{background:var(--line-navy); border-color:var(--line-navy);}
.hgrid.on-navy>*{background:var(--navy);}

/* bands */
.navy{background:var(--navy); color:#fff;}
.navy a{color:#fff;}
.tint{background:var(--tint);}
.ruled{border-top:1px solid var(--silver); border-bottom:1px solid var(--silver);}
.blue-band{background:var(--blue-deep); color:#fff;}
.blue-band a{color:#fff;}

/* type */
.eyebrow{margin:0; font-size:11px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--blue-deep);}
.eyebrow.muted{color:var(--steel);} .eyebrow.on-navy{color:var(--blue);} .eyebrow.red{color:var(--red);}
.h1{margin:0; font-size:clamp(32px,4.6vw,60px); line-height:1.02; letter-spacing:-.025em; font-weight:700; text-wrap:balance;}
.h2{margin:0; font-size:clamp(26px,3.4vw,40px); line-height:1.06; letter-spacing:-.025em; font-weight:700; text-wrap:balance;}
.h3{margin:0; font-size:clamp(21px,2.8vw,30px); line-height:1.1; letter-spacing:-.025em; font-weight:700;}
.h4{margin:0; font-size:clamp(17px,1.7vw,19px); line-height:1.15; letter-spacing:-.015em; font-weight:700;}
.lede{margin:0; font-size:clamp(16.5px,1.4vw,18.5px); line-height:1.65; color:var(--body); max-width:56ch; text-wrap:pretty;}
.lede.on-navy{color:var(--on-navy);}
.body{margin:0; font-size:16px; line-height:1.65; color:var(--body); max-width:52ch; text-wrap:pretty;}
.body.on-navy{color:var(--on-navy);}
.note{font-size:13.5px; line-height:1.6; color:var(--steel);}
.reassure{font-size:13px; color:var(--steel);}
.reassure.on-navy{color:var(--label-navy);}

/* buttons: 0 radius, primary 56px, others 48-52 */
.btn{display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:0 26px; font-size:15px; font-weight:700; text-decoration:none; border:0; cursor:pointer; white-space:nowrap; transition:background .12s ease, color .12s ease, border-color .12s ease;}
.btn--primary{background:var(--blue-deep); color:#fff;}
.btn--navy{background:var(--navy); color:#fff;}
.btn--ghost{background:transparent; color:var(--navy); border:1px solid var(--silver); font-weight:600;}
.btn--ghost.on-navy{color:#fff; border-color:rgba(255,255,255,.3);}
.btn--outline{background:transparent; color:var(--navy); border:1px solid var(--navy); font-weight:700;}
.btn--big{min-height:56px; padding:0 30px; font-size:15.5px;}
@media (hover:hover) and (pointer:fine){
  .btn--primary:hover{background:var(--navy); color:#fff;}
  .btn--navy:hover{background:var(--blue-deep); color:#fff;}
  .btn--ghost:hover{border-color:var(--navy);}
  .btn--ghost.on-navy:hover{border-color:#fff;}
  .btn--outline:hover{background:var(--navy); color:#fff;}
  .navy .btn--primary:hover, .blue-band .btn--navy:hover{background:#fff; color:var(--navy);}
}
.btn--primary:active,.btn--navy:active{transform:translateY(1px);}
.textlink{display:inline-block; font-size:14.5px; font-weight:700; text-decoration:none; color:var(--blue-deep); border-bottom:1px solid var(--blue); padding-bottom:2px;}
.textlink.soft{border-bottom-color:var(--silver); color:var(--navy);}
.textlink.on-navy{color:#fff; border-bottom-color:var(--blue);}

/* console / status */
.console{padding:26px;}
.console .row{display:flex; justify-content:space-between; gap:16px; padding:14px 0; font-size:14px; border-bottom:1px solid var(--line-navy-soft);}
.console .row:last-child{border-bottom:0;}
.console .k{color:var(--label-navy);}
.console .v{font-weight:600;}
.dot{display:inline-block; width:8px; height:8px; border-radius:50%; background:var(--ok); margin-right:7px; animation:vds-pulse 2.4s ease-in-out infinite;}
.dot.static{animation:none; background:var(--ok-dark);}
.illus{font-size:10px; font-weight:600; letter-spacing:.12em; color:var(--steel);}

/* numbered rows */
.rows{border-top:1px solid var(--silver);}
.rows .item{display:flex; gap:20px; padding:20px 0; border-bottom:1px solid var(--line-soft); align-items:baseline;}
.rows .item:last-child{border-bottom:0;}
.rows .n{font-size:11px; font-weight:700; color:var(--blue); letter-spacing:.1em; min-width:26px;}
.rows .t{display:block; font-size:16.5px; font-weight:700;}
.rows .d{display:block; margin-top:5px; font-size:14.5px; line-height:1.6; color:var(--body); max-width:62ch;}

/* step cards */
.steps{display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,var(--min,230px)),1fr)); gap:20px;}
.step{border-top:2px solid var(--navy); padding-top:18px;}
.step .s{font-size:11px; font-weight:700; color:var(--blue-deep); letter-spacing:.1em;}
.step h4{margin:10px 0 0;}
.step p{margin:8px 0 0; font-size:14px; line-height:1.6; color:var(--body);}

/* photo slots */
.photo{background:repeating-linear-gradient(135deg,#E7EBF0 0 12px,#EFF2F6 12px 24px); display:flex; align-items:center; justify-content:center; padding:24px; min-height:300px;}
.photo.on-navy{background:repeating-linear-gradient(135deg,#12263D 0 12px,#0E2038 12px 24px); border:1px solid var(--line-navy);}
.photo .cap{font-size:11.5px; font-weight:600; letter-spacing:.1em; color:var(--steel); text-align:center; line-height:1.8;}
.photo.on-navy .cap{color:var(--label-navy);}
.shot{position:relative; overflow:hidden; background:var(--tint);}
.shot.on-navy{background:#12263D;}
.shot img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block;}

/* chips */
.chips{display:flex; flex-wrap:wrap; gap:8px;}
.chipflat{border:1px solid var(--silver); background:var(--white); padding:7px 12px; font-size:13.5px; color:var(--body);}
.chip{display:inline-flex; align-items:center; min-height:44px; border:1px solid var(--silver); background:var(--white); color:var(--body); padding:0 15px; font-size:13.5px; font-weight:600; cursor:pointer; transition:border-color .12s ease, transform .1s ease;}
.chip[aria-pressed="true"]{background:var(--navy); color:#fff; border-color:var(--navy);}
@media (hover:hover) and (pointer:fine){ .chip:hover{border-color:var(--navy);} }
.chip:active{transform:scale(.97);}

/* segmented control (coverage) */
.seg{display:flex; border:1px solid var(--silver); width:fit-content;}
.seg button{background:transparent; border:0; border-right:1px solid var(--line-soft); cursor:pointer; padding:0 18px; height:44px; display:flex; align-items:center; font-size:13.5px; font-weight:600; color:var(--body);}
.seg button:last-child{border-right:0;}
.seg button[aria-pressed="true"]{background:var(--navy); color:#fff; font-weight:700;}
@media (hover:hover) and (pointer:fine){ .seg button:not([aria-pressed="true"]):hover{background:var(--tint);} }

/* forms */
.field{display:flex; flex-direction:column; gap:7px; font-size:13px; font-weight:600; letter-spacing:.02em; color:var(--body);}
.field .req{color:var(--blue-deep);} .field .opt{color:var(--steel); font-weight:500;}
.field input,.field select,.field textarea{border:1px solid var(--silver); background:var(--field); padding:0 14px; height:48px; font-size:15px; color:var(--navy); font-weight:400; width:100%;}
.field textarea{padding:13px 14px; height:auto; resize:vertical;}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--navy); outline:none; box-shadow:0 0 0 2px rgba(21,101,255,.16);}
.inline-check{display:flex; flex-wrap:wrap;}
.inline-check input{flex:1; min-width:180px; border:1px solid var(--silver); background:var(--white); padding:0 16px; height:52px; font-size:15.5px; color:var(--navy);}
.inline-check input:focus{border-color:var(--navy); outline:none;}
.inline-check button{background:var(--navy); color:#fff; border:0; padding:0 22px; height:52px; font-size:14.5px; font-weight:700; cursor:pointer;}
@media (hover:hover) and (pointer:fine){ .inline-check button:hover{background:var(--blue-deep);} }
.result{border-left:3px solid var(--blue); padding:12px 16px; background:var(--white);}
.result b{display:block; font-size:15px;} .result span{display:block; margin-top:5px; font-size:14.5px; line-height:1.6; color:var(--body);}
.formcard{background:var(--white); border:1px solid var(--silver); border-top:3px solid var(--blue); padding:clamp(22px,3vw,32px);}
.selectbtn{background:var(--white); border:1px solid var(--silver); padding:18px; cursor:pointer; text-align:left; width:100%; display:block;}
.selectbtn[aria-pressed="true"]{background:var(--navy); color:#fff; border-color:var(--navy);}
.selectbtn b{display:block; font-size:16px; font-weight:700;}
.selectbtn .sub{display:block; margin-top:5px; font-size:13.5px; line-height:1.55; color:var(--body);}
.selectbtn[aria-pressed="true"] .sub{color:var(--on-navy);}
@media (hover:hover) and (pointer:fine){ .selectbtn:not([aria-pressed="true"]):hover{border-color:var(--navy);} }

/* accordion */
.acc{border-top:1px solid var(--silver);}
.acc .qa{border-bottom:1px solid var(--line-soft);}
.acc button{width:100%; background:transparent; border:0; padding:20px 0; display:flex; align-items:baseline; justify-content:space-between; gap:20px; cursor:pointer; text-align:left; color:var(--navy); min-height:44px;}
.acc .q{font-size:clamp(16.5px,1.5vw,18.5px); font-weight:700; letter-spacing:-.01em; max-width:62ch;}
.acc .sign{font-size:16px; font-weight:700; color:var(--blue-deep); line-height:1;}
.acc .a{margin:0; padding:0 0 22px; font-size:16px; line-height:1.7; color:var(--body); max-width:70ch; text-wrap:pretty;}
.acc .a[hidden]{display:none;}

/* 1st FP lockup (red is allowed here) */
.fp{display:flex; align-items:baseline; gap:8px;}
.fp .n1{font-weight:800; color:var(--red); letter-spacing:-.02em;}
.fp .fp2{font-weight:800; letter-spacing:-.02em;}
.fp .co{font-size:10px; font-weight:700; letter-spacing:.22em; color:var(--steel); padding-left:4px;}

/* header chrome */
.topbar{background:var(--navy); color:#fff; font-size:11px; font-weight:600; letter-spacing:.14em; padding:9px var(--pad-x); display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;}
.topbar a{color:var(--label-navy); text-decoration:none; letter-spacing:.14em;}
.topbar a:hover{color:#fff;}
.topbar .tel{color:#fff; letter-spacing:.08em;}
.topbar .lic{color:var(--label-navy);}
.topbar .stat{color:var(--ok);}
.nav{position:sticky; top:0; z-index:60; background:var(--white); border-bottom:1px solid var(--silver); display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; padding:14px var(--pad-x);}
.brand{display:flex; align-items:center; gap:14px; text-decoration:none; color:var(--navy); flex:none;}
.brand-logo{width:auto; display:block;}
.logo{display:flex; align-items:center; gap:2px;}
.logo .cut{width:0; height:0; border-left:9px solid transparent; border-top:26px solid var(--blue); display:block;}
.logo b{font-weight:800; font-size:30px; letter-spacing:-.02em; line-height:1;}
.brand .divider{width:1px; height:34px; background:var(--silver); display:block;}
.brand .stack{font-weight:700; font-size:9.5px; letter-spacing:.1em; line-height:1.45; color:var(--navy);}
.brand .stack .sec{color:var(--blue);}
.navlinks{display:flex; gap:2px; align-items:center; flex-wrap:wrap;}
.navlinks a,.navlinks button{background:transparent; border:0; color:var(--body); font-size:13.5px; font-weight:600; padding:9px 12px; text-decoration:none; cursor:pointer; display:flex; align-items:center; gap:7px;}
.navlinks a:hover,.navlinks button:hover{color:var(--navy);}
.navlinks a[aria-current="page"] span,.navlinks .current{color:var(--navy); border-bottom:2px solid var(--blue); padding-bottom:6px;}
.menu{position:relative;}
.menu .caret{font-size:8px; color:var(--steel);}
.dropdown{position:absolute; top:calc(100% + 10px); left:0; width:320px; background:var(--white); border:1px solid var(--silver); box-shadow:0 18px 40px -22px rgba(11,29,51,.45); display:flex; flex-direction:column; z-index:70;}
.dropdown[hidden]{display:none;}
.dropdown a{padding:13px 18px; text-decoration:none; color:var(--navy); border-bottom:1px solid var(--line-soft); display:flex; gap:12px; align-items:baseline;}
.dropdown a:last-child{border-bottom:0; background:var(--tint);}
.dropdown a:hover{background:var(--tint);}
.dropdown .n{font-size:10px; font-weight:700; color:var(--blue); letter-spacing:.08em;}
.dropdown .l{display:block; font-size:14.5px; font-weight:700;}
.dropdown .s{display:block; font-size:12.5px; color:var(--steel); margin-top:2px;}

/* mobile chrome */
.mobbar{background:var(--navy); color:#fff; font-size:10.5px; font-weight:600; letter-spacing:.12em; padding:8px 16px; display:flex; align-items:center; justify-content:space-between; gap:12px;}
.mobbar a{color:#fff; text-decoration:none; letter-spacing:.08em;}
.mobbar .stat{color:var(--ok);}
.mobnav{position:sticky; top:0; z-index:60; background:var(--white); border-bottom:1px solid var(--silver);}
.mobnav .barrow{display:flex; align-items:center; justify-content:space-between; gap:10px; padding:12px 16px;}
.mobnav .call{border:1px solid var(--silver); color:var(--navy); padding:0 16px; height:44px; font-size:13px; font-weight:700; text-decoration:none; display:flex; align-items:center;}
.mobnav .toggle{background:var(--navy); color:#fff; border:0; padding:0 18px; height:44px; font-size:13px; font-weight:700; cursor:pointer;}
.mobpanel{border-top:1px solid var(--silver); background:var(--white); padding:16px; display:flex; flex-direction:column;}
.mobpanel[hidden]{display:none;}
.mobpanel a.link{padding:15px 4px; border-bottom:1px solid var(--line-soft); text-decoration:none; color:var(--navy); font-size:16px; font-weight:600; display:flex; justify-content:space-between; align-items:center; min-height:44px;}
.mobpanel a.link .m{font-size:11px; color:var(--blue);}
.actionbar{position:fixed; bottom:0; left:0; right:0; z-index:70; height:76px; background:var(--white); border-top:1px solid var(--silver); display:flex; align-items:center; gap:10px; padding:0 16px;}
.actionbar a{height:52px; display:flex; align-items:center; justify-content:center; font-size:14.5px; font-weight:700; text-decoration:none;}
.actionbar .call{flex:0 0 auto; border:1px solid var(--silver); color:var(--navy); padding:0 20px;}
.actionbar .cta{flex:1; background:var(--blue-deep); color:#fff; padding:0 18px; text-align:center;}

/* footer */
.foot{background:var(--navy); color:#fff;}
.foot .cols{max-width:var(--wrap); margin-inline:auto; padding:clamp(36px,4.5vw,56px) var(--pad-x) 32px; display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,178px),1fr)); gap:28px;}
.foot .col h4{font-size:10.5px; font-weight:600; letter-spacing:.16em; color:var(--label-navy); margin:0;}
.foot .col .links{margin-top:14px; display:flex; flex-direction:column; gap:10px;}
.foot a{color:#fff; font-size:14.5px; text-decoration:none;}
.foot a:hover{color:var(--blue);}
.foot .blurb{margin:16px 0 0; font-size:14.5px; line-height:1.7; color:var(--on-navy); max-width:34ch;}
.foot .lic{margin-top:16px; font-size:11px; font-weight:600; letter-spacing:.1em; color:var(--label-navy); line-height:1.9;}
.foot .bottom{max-width:var(--wrap); margin-inline:auto; padding:18px var(--pad-x) 36px; border-top:1px solid var(--line-navy); display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap; align-items:center; font-size:10.5px; font-weight:600; letter-spacing:.1em; color:var(--label-navy);}
.foot .bottom a{color:var(--label-navy); font-size:10.5px;} .foot .bottom a:hover{color:#fff;}
.foot .bottom .fp .fp2{color:#fff;}

/* utility */
@media (max-width:899px){ .desktop-chrome{display:none;} }
@media (min-width:900px){ .mobile-chrome{display:none;} }
[hidden]{display:none!important;}
