
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
:root{
  --g:#2D6B2D;--g2:#245724;--g3:#1A4A1A;
  --n:#0D2137;--n2:#1A3A5A;--n3:#071526;
  --r:#8B2332;--r2:#A02838;
  --off:#F7F6F3;--off2:#EFEEE9;--w:#fff;
  --ink:#111111;--mu:#555555;--faint:rgba(17,17,17,.07);--rule:rgba(17,17,17,.08);
  --mono:'Space Mono',monospace;--serif:'Cormorant Garamond',serif;--sans:'DM Sans',sans-serif;
  --ease:cubic-bezier(.25,.46,.45,.94);
  --sh:0 2px 22px rgba(7,21,38,.1);--sh2:0 8px 36px rgba(7,21,38,.14);
}
body{font-family:var(--sans);background:var(--w);color:var(--ink);-webkit-font-smoothing:antialiased;overflow-x:hidden}
button{font-family:inherit;cursor:pointer;border:none;background:none;padding:0}
a{text-decoration:none;color:inherit}

body::before{content:'';position:fixed;inset:0;pointer-events:none;z-index:9998;opacity:.015;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");}

@keyframes fup{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.25}}
@keyframes secIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

/* ── NAV ── */
.nav{height:68px;padding:0 52px;display:flex;align-items:center;justify-content:space-between;
  position:sticky;top:0;z-index:500;
  background:rgba(7,21,38,.97);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  border-bottom:1px solid rgba(255,255,255,.05);transition:box-shadow .3s}
.nav.up{box-shadow:0 2px 30px rgba(0,0,0,.42)}
.nav-brand{display:flex;align-items:center;gap:13px;cursor:pointer}
.nav-icon{width:34px;height:34px;border-radius:50%;border:1.5px solid rgba(255,255,255,.12);
  display:flex;align-items:center;justify-content:center;flex-shrink:0}
.nav-icon svg{width:14px;height:14px;stroke:#fff;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.nav-name{font-family:var(--serif);font-size:16px;font-weight:400;color:#fff;letter-spacing:.025em;line-height:1.2}
.nav-dept{font-family:var(--mono);font-size:10px;letter-spacing:.28em;text-transform:uppercase;color:#8AA8BA;margin-top:1px}
.nav-links{display:flex;align-items:center;gap:2px}
.nav-link{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;
  color:#B8C5D0;padding:7px 11px;border-radius:5px;transition:all .2s;
  position:relative;border:none;background:none}
.nav-link:hover{color:rgba(255,255,255,.85);background:rgba(255,255,255,.05)}
.nav-link.active{color:#fff}
.nav-link.active::after{content:'';position:absolute;bottom:-2px;left:11px;right:11px;height:2px;background:var(--g);border-radius:1px}
.nav-cta{font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;
  background:var(--g);color:#fff;padding:8px 18px;border-radius:100px;border:none;
  transition:all .2s;margin-left:10px;flex-shrink:0}
.nav-cta:hover{background:var(--g2);transform:translateY(-1px)}
.nav-toggle{display:none;flex-direction:column;gap:5px;padding:4px;background:none;border:none}
.nav-toggle span{display:block;width:22px;height:1.5px;background:rgba(255,255,255,.6);border-radius:1px;transition:all .28s}

/* ── SECTION ── */
.section{display:none;animation:secIn .32s var(--ease)}
.section.active{display:block}

/* ── COMMON ── */
.sec{padding:80px 60px}
.sec-w{background:var(--w)}.sec-o{background:var(--off)}
.label{font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--mu);margin-bottom:14px;display:flex;align-items:center;gap:10px}
.label::before{content:'';width:18px;height:1px;background:currentColor;opacity:.5;flex-shrink:0}
.label-g{color:var(--g)}.label-n{color:var(--n2)}.label-r{color:var(--r)}
.heading{font-family:var(--serif);font-size:clamp(30px,4vw,52px);font-weight:300;color:var(--n3);line-height:1.08;letter-spacing:-.01em;margin-bottom:14px}
.heading em{font-style:italic}
.heading-sm{font-family:var(--serif);font-size:clamp(22px,3vw,36px);font-weight:300;color:var(--n3);line-height:1.1;letter-spacing:-.01em}
.body-text{font-size:15px;color:var(--mu);line-height:1.8;font-weight:300}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:start}
.three-col{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.main-side{display:grid;grid-template-columns:1fr 320px;gap:38px;align-items:start}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px}

/* ── BUTTONS ── */
.btn{font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;
  padding:11px 24px;border-radius:100px;transition:all .2s;display:inline-flex;align-items:center;gap:8px;cursor:pointer}
.btn-dark{background:var(--n3);color:#fff;border:none}.btn-dark:hover{background:var(--n2);transform:translateY(-1px)}
.btn-green{background:var(--g);color:#fff;border:none}.btn-green:hover{background:var(--g2);transform:translateY(-1px)}
.btn-outline{background:transparent;border:1.5px solid rgba(17,17,17,.18);color:var(--ink)}.btn-outline:hover{border-color:var(--n);background:var(--n);color:#fff}
.btn-outline-w{background:transparent;border:1.5px solid rgba(255,255,255,.2);color:rgba(255,255,255,.7)}.btn-outline-w:hover{border-color:rgba(255,255,255,.5);color:#fff}
.btn-sm{padding:9px 18px;font-size:11px}

/* ── CARDS ── */
.card{background:var(--w);border:1px solid var(--faint);border-radius:12px;padding:28px;
  transition:transform .25s var(--ease),box-shadow .25s var(--ease);cursor:pointer}
.card:hover{transform:translateY(-3px);box-shadow:var(--sh2)}
.card-tag{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;margin-bottom:10px}
.ct-g{color:var(--g)}.ct-n{color:var(--n2)}.ct-r{color:var(--r)}
.card-h{font-family:var(--serif);font-size:20px;font-weight:400;color:var(--n3);line-height:1.25;margin-bottom:8px}
.card-p{font-size:13px;color:var(--mu);line-height:1.72;font-weight:300}
.card-arr{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--n2);margin-top:14px;display:inline-flex;align-items:center;gap:5px;transition:gap .2s}
.card:hover .card-arr{gap:9px}

/* ── STATS ── */
.stats{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--faint);border-bottom:1px solid var(--faint);background:var(--w)}
.stat{padding:30px 26px;border-right:1px solid var(--rule)}
.stat:last-child{border-right:none}
.stat-n{font-family:var(--serif);font-size:48px;font-weight:300;color:var(--n);line-height:1;margin-bottom:6px}
.stat-n em{font-style:italic;color:var(--g)}
.stat-l{font-size:13px;color:var(--mu);line-height:1.55;font-weight:300}
.stat-line{height:3px;margin-bottom:14px;border-radius:1px}

/* ── PAGE HERO ── */
.phero{background:var(--n3);padding:72px 60px 72px 68px;position:relative;overflow:hidden}
.phero::after{content:'';position:absolute;inset:0;background:linear-gradient(135deg,var(--n3),rgba(7,21,38,.9))}
.phero-stripe{position:absolute;left:0;top:0;bottom:0;width:4px;z-index:1;display:flex;flex-direction:column}
.phs-n{background:var(--n2);flex:3}.phs-g{background:var(--g);flex:1}
.phero-content{position:relative;z-index:2;max-width:700px}
.phero-tag{font-family:var(--mono);font-size:11px;letter-spacing:.26em;text-transform:uppercase;color:rgba(45,107,45,.72);margin-bottom:16px}
.phero-h{font-family:var(--serif);font-size:clamp(38px,5vw,66px);font-weight:300;color:#fff;line-height:1.06;letter-spacing:-.01em;margin-bottom:14px}
.phero-h em{font-style:italic;color:#B8C5D0}
.phero-sub{font-size:16px;color:#B8C5D0;line-height:1.72;font-weight:300;max-width:540px}

/* ── FORM ── */
.field{margin-bottom:18px}
.field-label{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--n2);display:block;margin-bottom:7px}
.field-input{width:100%;background:var(--off);border:1.5px solid var(--faint);border-radius:8px;padding:11px 15px;font-size:13.5px;font-family:var(--sans);color:var(--ink);transition:all .2s}
.field-input:focus{border-color:var(--n);background:var(--w);box-shadow:0 0 0 3px rgba(13,33,55,.06)}
.field-input::placeholder{color:rgba(17,17,17,.24)}
textarea.field-input{resize:vertical;min-height:110px}
select.field-input{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23777' fill='none' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 13px center;padding-right:34px}

/* ── SIDEBAR BOXES ── */
.sbox{background:var(--w);border:1px solid var(--faint);border-radius:12px;overflow:hidden;margin-bottom:14px}
.sbox-h{padding:16px 20px;border-bottom:1px solid var(--faint);font-family:var(--serif);font-size:16px;font-weight:400;color:var(--n3)}
.sbox-b{padding:16px 20px}
.slink{display:flex;align-items:center;gap:9px;padding:8px 0;border-bottom:1px solid var(--faint);font-size:13px;color:var(--ink);cursor:pointer;background:none;width:100%;text-align:left;transition:color .2s}
.slink:last-child{border-bottom:none}.slink:hover{color:var(--n2)}.slink::before{content:'→';font-size:10px;color:var(--g);flex-shrink:0}

/* ── ACCORDION ── */
.acc{background:var(--w);border:1px solid var(--faint);border-radius:10px;margin-bottom:7px;overflow:hidden}
.acc-h{padding:16px 20px;display:flex;justify-content:space-between;align-items:center;cursor:pointer;font-size:14.5px;font-weight:500;color:var(--n3);transition:background .2s}
.acc-h:hover{background:var(--off)}
.acc-icon{width:20px;height:20px;border-radius:50%;border:1.5px solid var(--faint);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .25s}
.acc-h.open .acc-icon{background:var(--n3);border-color:var(--n3);transform:rotate(45deg)}
.acc-icon span{font-size:12px;color:var(--mu);line-height:1}
.acc-h.open .acc-icon span{color:#fff}
.acc-body{max-height:0;overflow:hidden;transition:max-height .35s var(--ease)}
.acc-body.open{max-height:400px}
.acc-inner{padding:0 20px 18px;font-size:13.5px;color:var(--mu);line-height:1.78;border-top:1px solid var(--faint)}

/* ── BADGE ── */
.badge{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;padding:3px 9px;border-radius:100px;display:inline-block}
.bg-g{background:rgba(45,107,45,.1);color:var(--g2)}.bg-n{background:rgba(13,33,55,.1);color:var(--n2)}.bg-r{background:rgba(139,35,50,.1);color:var(--r)}

/* ── FOOTER ── */
footer{background:var(--n3);padding:60px 60px 28px}
.ft-top{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:48px;padding-bottom:44px;border-bottom:1px solid rgba(255,255,255,.07)}
.ft-name{font-family:var(--serif);font-size:20px;color:#fff;font-weight:400;margin-bottom:2px}
.ft-sub{font-family:var(--mono);font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:#7A9AB0;margin-bottom:16px}
.ft-addr{font-size:12px;color:#9BB5C4;line-height:1.9}
.ft-phone{font-size:14px;color:#C4D3DC;margin-top:10px;font-weight:500}
.ft-col h5{font-family:var(--mono);font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:#7A9AB0;margin-bottom:14px;font-weight:400}
.ft-col a,.ft-col button{display:block;font-size:12.5px;color:#9BB5C4;margin-bottom:8px;background:none;border:none;padding:0;text-align:left;cursor:pointer;transition:color .2s;text-decoration:none}
.ft-col a:hover,.ft-col button:hover{color:#fff}
.ft-bottom{padding-top:24px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px}
.ft-copy{font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:#7A9AB0}
.ft-legal{display:flex;gap:18px}
.ft-legal a{font-family:var(--mono);font-size:11px;color:#7A9AB0;text-decoration:none;transition:color .2s}
.ft-legal a:hover{color:#B8C5D0}

/* ── TOAST ── */
#toast-root{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);z-index:9999;display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none}

/* ── MOBILE ── */
#mobile-nav{display:none;position:fixed;top:68px;left:0;right:0;bottom:0;background:var(--n3);z-index:498;padding:28px;overflow-y:auto}
.mnav-btn{display:block;font-family:var(--serif);font-size:26px;font-weight:300;color:rgba(255,255,255,.72);background:none;border:none;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.07);width:100%;text-align:left;cursor:pointer;transition:color .2s}
.mnav-btn:hover{color:#fff}

@media(max-width:960px){
  .nav-links{display:none}.nav-toggle{display:flex}
  .sec{padding:56px 24px}.phero{padding:56px 24px 56px 32px}
  .two-col,.three-col,.main-side{grid-template-columns:1fr}
  .stats{grid-template-columns:1fr 1fr}.stat{border-right:none;border-bottom:1px solid var(--rule)}
  .ft-top{grid-template-columns:1fr 1fr;gap:28px}
  .nav{padding:0 22px}.grid-2{grid-template-columns:1fr}
  footer{padding:48px 24px 24px}
}
@media(max-width:600px){.stats,.ft-top,.three-col{grid-template-columns:1fr}}

/* ─── WCAG 2.4.1: Skip navigation ─── */
.skip-link{position:absolute;top:-100px;left:16px;z-index:99999;background:var(--n3);color:#fff;padding:12px 22px;border-radius:0 0 8px 8px;font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;transition:top .2s}
.skip-link:focus{top:0}
/* ─── WCAG 1.3.1: Screen-reader utility ─── */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
/* ─── WCAG 2.4.7: Focus indicators (replaces outline:none violations) ─── */
:focus{outline:none}
:focus-visible{outline:3px solid #4A90D9;outline-offset:2px;border-radius:3px}
@media(forced-colors:active){:focus-visible{outline:3px solid ButtonText}}
.nav :focus-visible,.ebar :focus-visible,#mobile-nav :focus-visible,footer :focus-visible{outline:3px solid #FFD700;outline-offset:2px}
/* ─── WCAG 1.4.11: UI component borders 3:1 min ─── */
.field-input{border:2px solid #767676!important}
.field-input:focus-visible{border-color:var(--n)!important;outline:3px solid #4A90D9;outline-offset:2px}
/* ─── WCAG 2.3.3: Prefers-reduced-motion ─── */
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
/* ─── Accessible nav text on dark background ─── */
.nav-link{color:#B8C5D0!important}
.nav-link:hover,.nav-link.active{color:#fff!important}
.nav-dept{color:#8AA8BA!important}
/* ─── Accessible footer text ─── */
.ft-sub{color:#8AA8BA!important}
.ft-col h5{color:#8AA8BA!important}
.ft-col a,.ft-col button{color:#9BB5C4!important}
.ft-col a:hover,.ft-col button:hover{color:#fff!important}
.ft-addr{color:#9BB5C4!important}
.ft-phone{color:#C4D3DC!important}
.ft-copy{color:#7A9AB0!important}
.ft-legal a{color:#7A9AB0!important}
.ft-legal a:hover{color:#C4D3DC!important}
/* ─── Accordion keyboard button ─── */
.acc-h[role=button]{cursor:pointer;display:flex;justify-content:space-between;align-items:center;padding:16px 20px;font-size:14.5px;font-weight:500;color:var(--n3);transition:background .2s;background:none;border:none;width:100%;text-align:left}
.acc-h[role=button]:hover{background:var(--off)}
.acc-h[role=button]:focus-visible{outline:3px solid #4A90D9;outline-offset:-2px}
/* ─── Cards as buttons ─── */
.card[role=button]{text-align:left;display:block;width:100%}
/* ─── Touch targets WCAG 2.5.5 ─── */
.btn,.nav-cta,.mnav-btn,.acc-h[role=button]{min-height:44px}
.nav-link{min-height:40px}
/* ─── Stat layout with icon ─── */
.stat{display:flex;flex-direction:column;padding:30px 26px}
.stat-line{margin-top:10px!important;margin-bottom:14px}
/* ─── Emergency bar ─── */
.ebar-text{color:rgba(255,255,255,.92)!important}

/* ─── Font size floor: informational ≥11px, interactive ≥12px ─── */
.nav-link{font-size:11px!important;letter-spacing:.12em!important}
.nav-cta{font-size:12px!important;letter-spacing:.12em!important}
.nav-dept{font-size:10px!important;letter-spacing:.22em!important}
.label{font-size:11px!important;letter-spacing:.2em!important}
.badge,.card-tag{font-size:11px!important;letter-spacing:.08em!important}
.btn{font-size:12px!important;letter-spacing:.12em!important}
.btn-sm{font-size:11px!important;padding:9px 18px!important}
.card-arr{font-size:11px!important}
.field-label{font-size:12px!important;letter-spacing:.14em!important}
.phero-tag{font-size:11px!important;letter-spacing:.2em!important}
.acc-h[role=button]{font-size:14.5px!important}
.ft-sub{font-size:10px!important;letter-spacing:.2em!important}
.ft-col h5{font-size:10px!important;letter-spacing:.2em!important}
.ft-col a,.ft-col button{font-size:13px!important}
.ft-addr{font-size:13px!important}
.ft-copy,.ft-legal a{font-size:11px!important}
.stat-l{font-size:13px!important}
.acc-inner{font-size:13.5px!important}
.sbox-b,.slink{font-size:13px!important}
.ebar-text{font-size:13px!important}
.ebar-num{font-size:20px!important}

/* ─── Secondary body text: 6.2:1 on white/off-white ─── */
/* (--mu fixed inline per file) */
/* ─── Hero/dark section text: accessible on navy3 ─── */
/* All opacity-based rgba(255,255,255,<.65) on dark are overridden via !important below */

/* ── CMS Body Styles ──────────────────────────────── */
.cms-body { color: var(--ink); }
.cms-body h2 { font-family: var(--serif); font-size: clamp(24px, 3vw, 36px); font-weight: 300; color: var(--n3); margin: 0 0 12px; line-height: 1.2; }
.cms-body h3 { font-family: var(--serif); font-size: 20px; font-weight: 400; color: var(--n3); margin: 28px 0 10px; }
.cms-body p { font-size: 15px; line-height: 1.78; color: var(--mu); margin-bottom: 16px; }
.cms-body ul, .cms-body ol { padding-left: 22px; margin-bottom: 16px; }
.cms-body li { font-size: 15px; line-height: 1.78; color: var(--mu); margin-bottom: 6px; }
.cms-body a { color: var(--n2); text-decoration: underline; }
.cms-body a:hover { opacity: .8; }
.cms-body strong { color: var(--n3); font-weight: 500; }
.cms-body hr { border: none; border-top: 1px solid var(--faint); margin: 28px 0; }
.cms-body .stats-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 16px; margin: 24px 0; }
.cms-body .stat-box { padding: 20px; background: var(--off); border: 1px solid var(--faint); border-radius: 12px; text-align: center; }
.cms-body .stat-box .num { font-family: var(--serif); font-size: 36px; font-weight: 300; color: var(--n3); }
.cms-body .stat-box .label { font-size: 12px; color: var(--mu); margin-top: 4px; }
