
:root{
  --navy:#1B2E4E; --navy-2:#24395D; --navy-3:#2E4670;
  --gold:#8F723B; --gold-on-navy:#D2B06A; --gold-soft:#F4ECDD;
  --paper:#FFFFFF; --mist:#F3F5F8; --ink:#131A24; --muted:#546071; --line:#DCE1E8;
  --on-navy:#F5F3EE; --on-navy-muted:#B7C0CD;
  --display:"Barlow Condensed", "Arial Narrow", "Roboto Condensed", sans-serif;
  --body:"Figtree", "Segoe UI", system-ui, -apple-system, sans-serif;
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px);
  padding-bottom:env(safe-area-inset-bottom,0px);
}
*,*::before,*::after{box-sizing:inherit}
html{scroll-padding-top:calc(env(safe-area-inset-top,0px) + 88px)}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
button{font:inherit}
:focus-visible{outline:3px solid var(--gold-on-navy);outline-offset:3px;border-radius:4px}
.wrap{max-width:1160px;margin:0 auto;padding:0 22px}
h1,h2,h3{font-family:var(--display);font-weight:600;line-height:1.05;letter-spacing:-.01em;margin:0}
h1{font-size:clamp(2.6rem,6.2vw,4.6rem)}
h2{font-size:clamp(2.1rem,4.4vw,3.2rem)}
h3{font-size:1.55rem}
p{margin:0 0 1em;max-width:64ch}
.muted{color:var(--muted)}
.fine{font-size:.85rem;color:var(--muted)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--gold-on-navy);color:#1A1406;font-weight:700;padding:15px 26px;border-radius:999px;border:0;cursor:pointer;text-decoration:none;transition:transform .15s, filter .15s}
.btn:hover{filter:brightness(1.06);transform:translateY(-1px)}
.btn.ghost{background:transparent;color:var(--on-navy);box-shadow:inset 0 0 0 1.5px rgba(245,243,238,.45)}
.btn.dark{background:var(--navy);color:var(--on-navy)}
@media (prefers-reduced-motion: reduce){.btn,.btn:hover{transition:none;transform:none}}

/* nav */
.nav{position:sticky;top:0;z-index:20;background:var(--navy);border-bottom:1px solid rgba(210,176,106,.18)}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;height:84px;gap:16px}
.nav .logo{height:64px;width:auto;cursor:pointer}
@media (max-width:600px){.nav .logo{height:52px}.nav .wrap{height:74px}}
.nav .links{display:none;gap:26px;align-items:center}
.nav .links button{background:none;border:0;color:var(--on-navy-muted);cursor:pointer;font-weight:500;padding:6px 0}
.nav .links button:hover{color:var(--on-navy)}
.nav .call{color:var(--on-navy);text-decoration:none;font-weight:600;font-size:.95rem;display:none}
.nav .btn{padding:11px 20px;font-size:.95rem}
@media (min-width:880px){.nav .links{display:flex}.nav .call{display:inline}}

/* hero */
.hero{background:var(--navy);color:var(--on-navy);position:relative;overflow:hidden}
.hero::before{content:"";position:absolute;inset:0;background:radial-gradient(900px 500px at 85% 20%, rgba(210,176,106,.14), transparent 60%);pointer-events:none}
.hero .wrap{display:grid;gap:36px;padding-top:56px;padding-bottom:64px;position:relative}
@media (min-width:980px){.hero .wrap{grid-template-columns:1.05fr 1fr;align-items:center;padding-top:72px;padding-bottom:88px}}
.hero h1 em{font-style:italic;color:var(--gold-on-navy);font-weight:500}
.hero .sub{font-size:1.15rem;color:var(--on-navy-muted);margin-top:22px;max-width:52ch}
.hero .actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.finder{margin-top:34px;max-width:480px;position:relative}
.finder label{display:block;font-size:.9rem;color:var(--on-navy-muted);margin-bottom:8px}
.finder input[type=text]{width:100%;font:inherit;padding:15px 18px;border-radius:12px;border:1px solid rgba(245,243,238,.2);background:rgba(255,255,255,.06);color:var(--on-navy)}
.finder input::placeholder{color:#8894A5}
.finder ul{list-style:none;margin:6px 0 0;padding:6px;position:absolute;left:0;right:0;background:var(--navy-2);border:1px solid var(--navy-3);border-radius:12px;max-height:280px;overflow:auto;z-index:5;box-shadow:0 18px 40px rgba(0,0,0,.35)}
.finder li button{width:100%;text-align:left;background:none;border:0;color:var(--on-navy);padding:10px 12px;border-radius:8px;cursor:pointer;display:flex;justify-content:space-between;gap:12px}
.finder li button:hover,.finder li button:focus-visible{background:var(--navy-3)}
.finder li small{color:var(--on-navy-muted)}

.mapcard{position:relative}
.mapcard svg{width:100%;height:auto;display:block;max-height:560px}
.st{fill:var(--navy-2);stroke:#2E4262;stroke-width:.8}
.st.ctx{fill:#131F33;stroke:#1F2D44}
.st-label{fill:var(--on-navy);opacity:.72;font:700 10px var(--body);letter-spacing:.04em;pointer-events:none}
.st-label.ctx{opacity:.38}
.st-lead{stroke:var(--on-navy-muted);stroke-width:.6;opacity:.5}
.pin circle.dot{fill:var(--gold-on-navy);stroke:var(--navy);stroke-width:1.5;cursor:pointer}
.pin circle.halo{fill:var(--gold-on-navy);opacity:0}
.pin.guide circle.dot{fill:#F5F3EE;stroke:var(--gold-on-navy);stroke-width:2.5}
.pin:hover circle.halo,.pin:focus circle.halo,.pin.on circle.halo{opacity:.25}
.pin:focus{outline:none}
.pin-label{fill:var(--on-navy);font:600 12px var(--body);pointer-events:none;paint-order:stroke;stroke:var(--navy);stroke-width:4px}
.maplegend{display:flex;gap:18px;flex-wrap:wrap;font-size:.85rem;color:var(--on-navy-muted);margin-top:6px}
.maplegend span{display:inline-flex;align-items:center;gap:7px}
.maplegend i{width:11px;height:11px;border-radius:50%;display:inline-block;background:var(--gold-on-navy)}
.maplegend i.g{background:#F5F3EE;box-shadow:inset 0 0 0 2px var(--gold-on-navy)}

/* promise strip */
.promises{background:var(--navy-2);color:var(--on-navy)}
.promises ul{list-style:none;margin:0;padding:22px 0;display:grid;grid-template-columns:1fr 1fr;gap:14px 24px}
@media (min-width:880px){.promises ul{grid-template-columns:repeat(4,1fr)}}
.promises li{padding-left:16px;border-left:2px solid var(--gold-on-navy);font-weight:500;font-size:.98rem;line-height:1.35}

section.block{padding:84px 0}
section.alt{background:var(--mist)}
.intro{max-width:720px;margin-bottom:44px}
.intro p{font-size:1.1rem;color:var(--muted);margin-top:14px}

/* steps */
.steps{list-style:none;margin:0;padding:0;display:grid;gap:34px;counter-reset:s}
@media (min-width:880px){.steps{grid-template-columns:repeat(3,1fr);gap:44px}}
.steps li{counter-increment:s;position:relative;padding-top:8px}
.steps li::before{content:counter(s);font-family:var(--display);font-size:4.6rem;line-height:.9;color:var(--gold);display:block;margin-bottom:10px;font-weight:600}
.steps h3{margin-bottom:10px}
.steps p{color:var(--muted);margin:0}

/* bases */
.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:26px}
.tab{background:transparent;border:1px solid var(--line);color:var(--ink);padding:9px 18px;border-radius:999px;cursor:pointer;font-weight:600;font-size:.95rem}
.tab[aria-selected="true"]{background:var(--navy);border-color:var(--navy);color:var(--on-navy)}
.baselist{list-style:none;margin:0;padding:0;border-top:1px solid var(--line);display:grid;column-gap:48px}
@media (min-width:900px){.baselist{grid-template-columns:1fr 1fr}.baselist li:nth-child(2){border-top:0}}
.baselist li{border-bottom:1px solid var(--line)}
.baselist .row{display:flex;flex-direction:column;align-items:flex-start;gap:12px;padding:20px 4px}
.baselist .nm{display:block;font-family:var(--display);font-size:1.45rem;font-weight:600;line-height:1.1}
.baselist .meta{display:block;color:var(--muted);font-size:.92rem;margin-top:4px}
.acts{display:flex;gap:8px;flex-wrap:wrap}
.acts button{font-weight:600;font-size:.88rem;padding:9px 15px;border-radius:999px;cursor:pointer;white-space:nowrap}
.acts .g{background:transparent;border:1px solid var(--line);color:var(--ink)}
.acts .g:hover{border-color:var(--gold)}
.acts .a{background:var(--navy);border:1px solid var(--navy);color:var(--on-navy)}
.acts .a:hover{filter:brightness(1.25)}
:root[data-theme="dark"] .acts .a{background:#2E4670;border-color:#34496A}
.bahcard{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:28px}
.bahcard .big{font-family:var(--display);font-size:4rem;line-height:1;color:var(--gold);font-weight:600}
.bahcard .big small{font-family:var(--body);font-size:1rem;color:var(--muted);margin-left:8px;font-weight:500}
.bahcard p{margin:10px 0 0}
.anywhere{margin-top:28px;font-size:1.05rem}
.anywhere button{background:none;border:0;color:var(--gold);font-weight:700;cursor:pointer;text-decoration:underline;text-underline-offset:4px;padding:0}

/* about */
.about{display:grid;gap:40px;align-items:center}
@media (min-width:880px){.about{grid-template-columns:.8fr 1.2fr;gap:64px}}
.portrait{position:relative;max-width:420px}
.portrait img{border-radius:6px;position:relative;z-index:1;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover}
.portrait::after{content:"";position:absolute;inset:18px -18px -18px 18px;border:2px solid var(--gold);border-radius:6px;z-index:0}
.about h2{margin-bottom:8px}
.about .creds{font-family:var(--body);font-size:.95rem;font-weight:700;letter-spacing:.02em;color:var(--gold);margin:0 0 18px}
.about p{font-size:1.07rem}
.sig{font-family:var(--display);font-style:italic;font-size:1.7rem;color:var(--gold);margin-top:8px}

/* faq */
.faq{max-width:820px}
.faq details{border-bottom:1px solid var(--line);padding:6px 0}
.faq summary{cursor:pointer;list-style:none;padding:18px 34px 18px 0;font-weight:600;font-size:1.1rem;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:4px;top:12px;font-size:1.6rem;color:var(--gold);font-weight:400}
.faq details[open] summary::after{content:"\2212"}
.faq details p{color:var(--muted);margin:0 0 18px}

/* form */
.formsec{background:var(--navy);color:var(--on-navy);padding:84px 0}
.formgrid{display:grid;gap:40px}
@media (min-width:980px){.formgrid{grid-template-columns:.85fr 1.15fr;gap:64px;align-items:start}}
.formsec .lead p{color:var(--on-navy-muted);font-size:1.1rem}
.formsec .lead .direct{margin-top:26px;border-top:1px solid var(--navy-3);padding-top:22px}
.formsec .lead .direct a{color:var(--gold-on-navy);font-weight:600;text-decoration:none;font-size:1.15rem}
.card{background:var(--paper);color:var(--ink);border-radius:18px;padding:30px;box-shadow:0 30px 60px rgba(0,0,0,.25)}
form{display:grid;gap:18px}
label,.legend{font-weight:600;font-size:.93rem;display:block;margin-bottom:7px}
.req{color:var(--muted);font-weight:400}
input[type=text],input[type=email],input[type=tel],input[type=month],select,textarea{width:100%;font:inherit;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--paper);color:var(--ink)}
input:focus,select:focus,textarea:focus{outline:2px solid var(--gold);outline-offset:1px}
textarea{min-height:92px;resize:vertical}
fieldset{border:0;padding:0;margin:0}
.row2{display:grid;gap:18px}
@media (min-width:600px){.row2{grid-template-columns:1fr 1fr}}
.options{display:flex;flex-wrap:wrap;gap:8px}
.opt{position:relative}
.opt input{position:absolute;opacity:0;inset:0;cursor:pointer;margin:0}
.opt span{display:inline-block;padding:9px 15px;border:1px solid var(--line);border-radius:999px;font-size:.93rem;font-weight:500}
.opt input:checked + span{background:var(--gold-on-navy);color:#1A1406;border-color:var(--gold-on-navy);font-weight:700}
.opt input:focus-visible + span{outline:3px solid var(--gold);outline-offset:2px}
.error{color:#B3261E;font-size:.9rem;min-height:1.2em;margin:0}
.card .btn{width:100%;background:var(--navy);color:var(--on-navy);font-size:1.02rem}
.done h3{margin-bottom:10px}
.done pre{white-space:pre-wrap;font-family:var(--body);font-size:.88rem;background:var(--mist);border-radius:10px;padding:14px;margin:14px 0}
.linkbtn{background:none;border:0;color:var(--gold);font-weight:700;text-decoration:underline;cursor:pointer;padding:0}
.done a{color:var(--gold);font-weight:600}

/* base page */
.basehero{background:var(--navy);color:var(--on-navy);padding:40px 0 56px;position:relative;overflow:hidden}
.basehero::before{content:"";position:absolute;inset:0;background:radial-gradient(700px 400px at 90% 0%, rgba(210,176,106,.16), transparent 60%)}
.basehero .wrap{position:relative}
.back{background:none;border:0;color:var(--on-navy-muted);cursor:pointer;padding:0;margin-bottom:26px;font-weight:500}
.back:hover{color:var(--on-navy)}
.basehero .where{color:var(--gold-on-navy);font-weight:600;margin-top:14px;font-size:1.05rem}
.basehero p.sub{color:var(--on-navy-muted);font-size:1.12rem;margin-top:14px;max-width:60ch}
.basehero .actions{margin-top:26px;display:flex;gap:12px;flex-wrap:wrap}

.drive{display:grid;gap:30px}
.drive > *,.two > *,.formgrid > *{min-width:0}
@media (min-width:920px){.drive{grid-template-columns:1.1fr .9fr;align-items:start}}
.drivemap{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:14px}
.drivemap svg{width:100%;height:auto;display:block}
.ring{fill:none;stroke:var(--line);stroke-width:1}
.ring-label{fill:var(--muted);font:500 10px var(--body)}
.town circle{fill:var(--navy);stroke:var(--paper);stroke-width:2;cursor:pointer}
:root:not([data-theme="light"]) .town circle{}
.town text{fill:var(--ink);font:500 11px var(--body);text-anchor:middle;pointer-events:none}
.town.active circle{fill:var(--gold)}
.town.active text{font-weight:700}
.town:focus{outline:none}
.town:focus-visible circle{stroke:var(--gold);stroke-width:3}
.gate-star{fill:var(--gold);stroke:var(--ink);stroke-width:.8}
.gate-label{fill:var(--ink);font:700 11px var(--body);text-anchor:middle}
:root[data-theme="dark"] .town circle{fill:#5E7394}
.chips{display:flex;gap:6px;overflow-x:auto;padding:12px 2px 4px}
.chip{flex:none;font-size:.85rem;padding:7px 13px;border-radius:999px;border:1px solid var(--line);background:transparent;color:var(--ink);cursor:pointer;white-space:nowrap}
.chip[aria-pressed="true"]{background:var(--navy);border-color:var(--navy);color:var(--on-navy)}
.townpanel .mins{font-family:var(--display);font-size:4.2rem;line-height:.9;color:var(--gold);font-weight:600}
.townpanel .mins small{font-family:var(--body);font-size:.95rem;color:var(--muted);font-weight:500;margin-left:6px}
.townpanel h3{margin:14px 0 10px;font-size:2rem}
.townpanel p{color:var(--muted);font-size:1.05rem}
.table-wrap{overflow-x:auto;background:var(--paper);border:1px solid var(--line);border-radius:16px}
table{border-collapse:collapse;width:100%;min-width:340px;font-variant-numeric:tabular-nums}
th,td{text-align:left;padding:15px 18px;border-bottom:1px solid var(--line)}
tr:last-child td{border-bottom:0}
th{font-weight:600;color:var(--muted);font-size:.88rem}
td:not(:first-child),th:not(:first-child){text-align:right}
td:first-child{font-weight:700}
.two{display:grid;gap:34px}
@media (min-width:880px){.two{grid-template-columns:1fr 1fr;gap:56px;align-items:start}}
.timeline{list-style:none;margin:0;padding:0;counter-reset:t}
.timeline li{counter-increment:t;display:grid;grid-template-columns:56px 1fr;gap:12px;padding:20px 0;border-top:1px solid var(--line)}
.timeline li::before{content:counter(t);font-family:var(--display);font-size:2.4rem;line-height:1;color:var(--gold);font-weight:600}
.timeline h3{font-size:1.35rem}
.timeline p{margin:6px 0 0;color:var(--muted)}
.gatebox{background:var(--gold-soft);border-radius:16px;padding:28px}
.gatebox h3{margin-bottom:10px}
.gatebox p:last-child{margin-bottom:0}
.soon{display:grid;gap:30px}
@media (min-width:880px){.soon{grid-template-columns:1fr 1fr;gap:56px}}
.checks{list-style:none;padding:0;margin:0}
.checks li{padding:14px 0 14px 34px;border-top:1px solid var(--line);position:relative}
.checks li::before{content:"";position:absolute;left:4px;top:21px;width:14px;height:8px;border-left:2.5px solid var(--gold);border-bottom:2.5px solid var(--gold);transform:rotate(-45deg)}

footer{background:#142440;color:var(--on-navy-muted);padding:56px 0 40px;font-size:.9rem}
footer .top{display:grid;gap:30px}
@media (min-width:880px){footer .top{grid-template-columns:auto 1fr;gap:64px}}
footer img{height:84px;width:auto}
footer strong{color:var(--on-navy)}
footer a{color:var(--gold-on-navy);text-decoration:none}
footer p{max-width:90ch}
footer .legal{margin-top:30px;padding-top:24px;border-top:1px solid #2C3F63;font-size:.82rem}
[hidden]{display:none !important}

/* brand pair, footer rebuild, doc pages */
.nav .brandpair{display:flex;align-items:center;gap:14px}
.nav .logo-link{display:flex;align-items:center}
.nav .co{display:inline-flex;margin-left:2px}
.nav .co img{height:56px;width:56px}
@media (max-width:760px){.nav .co img{height:44px;width:44px}.nav .brandpair{gap:8px}}
footer .brands{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
footer .brands .mine{height:84px;width:auto}
footer .brands .co{display:inline-flex}
footer .brands .co img{height:84px;width:84px}
footer .reach h2{font-family:var(--body);font-size:1rem;color:var(--on-navy);margin:0 0 8px}
footer .reach p{margin:0 0 10px}
footer .legal .copy{margin-top:18px;color:var(--on-navy)}
footer .eho{display:flex;gap:12px;align-items:center;margin:6px 0 14px}
footer .eho img{width:48px;height:48px;border-radius:5px;background:#fff}
footer .eho p{margin:0}
footer .tabs-bottom{list-style:none;display:flex;gap:6px 22px;flex-wrap:wrap;padding:14px 0 0;margin:0;border-top:1px solid #2C3F63}
footer .tabs-bottom a{text-decoration:underline}
.doc{max-width:820px}
.doc h2{margin-top:30px}
.doc ol,.doc ul{padding-left:1.3em}


.townpanel dl{margin:18px 0 0}
.townpanel dt{font-weight:700;font-size:.8rem;color:var(--gold);margin-top:14px}
.townpanel dd{margin:4px 0 0;color:var(--ink)}
.townpanel dd a{color:var(--ink);font-weight:600;text-underline-offset:3px}
.townpanel dd ul{margin:6px 0 0;padding-left:18px}
.townpanel dd li{margin:4px 0}
.townpanel .note{display:block;color:var(--muted);font-size:.92rem}
.townpanel .note.inline{display:block;margin-top:6px}
.townpanel .note.inline a{color:var(--muted);font-weight:500}
.resbox{background:var(--mist);border-radius:16px;padding:26px}
.resbox ul{margin:10px 0 0;padding-left:18px}
.resbox li{margin:8px 0}
.resbox a{color:var(--ink);font-weight:600;text-underline-offset:3px}

.nav .links a{color:var(--on-navy-muted);text-decoration:none;font-weight:500;padding:6px 0}
.nav .links a:hover{color:var(--on-navy)}
.nav .logo-link{display:inline-flex}
.finder li a{display:flex;justify-content:space-between;gap:12px;color:var(--on-navy);padding:10px 12px;border-radius:8px;text-decoration:none}
.finder li a:hover,.finder li a:focus-visible{background:var(--navy-3)}
.finder li small{color:var(--on-navy-muted)}
.acts a{font-weight:600;font-size:.88rem;padding:9px 15px;border-radius:999px;white-space:nowrap;text-decoration:none;display:inline-block}
.anywhere a{color:var(--gold);font-weight:700;text-underline-offset:4px}
a.back{display:inline-block;color:var(--on-navy-muted);text-decoration:none;margin-bottom:26px;font-weight:500}
a.back:hover{color:var(--on-navy)}
.pin:focus{outline:none}
.pin:focus-visible circle.halo{opacity:.35}
.thanks{min-height:60vh;display:flex;align-items:center}
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* Site is always light, even when the visitor's device is in dark mode */
:root{color-scheme:light}
/* ===== Option B: Bold Editorial theme ===== */
h1,h2,h3{font-weight:800;text-transform:uppercase;letter-spacing:0;line-height:.95}
h1{font-size:clamp(2.8rem,6vw,5.4rem)}
h2{font-size:clamp(2.4rem,5vw,3.8rem)}
h3{font-weight:700;letter-spacing:.01em;line-height:1.05}
.hero::before{display:none}
.hero h1 em{font-style:normal;font-weight:800;color:var(--gold-on-navy)}
.hero h1::after{content:"";display:block;width:120px;height:6px;background:var(--gold-on-navy);margin-top:24px}
.btn{border-radius:0;text-transform:uppercase;letter-spacing:.05em;font-weight:800;font-size:.95rem}
.btn.ghost{box-shadow:inset 0 0 0 2px rgba(245,243,238,.55)}
.nav .btn{border-radius:0;font-size:.85rem}
.promises{background:var(--gold-on-navy);color:#13233D}
.promises li{border-left:3px solid #13233D;font-family:var(--display);text-transform:uppercase;font-weight:700;font-size:1.3rem;line-height:1.1;letter-spacing:.01em}
.steps li{border-top:2px solid var(--navy);padding-top:22px}
.steps li::before{font-size:5.4rem;font-weight:800;color:var(--gold)}
.tab,.acts button,.chip,.opt span{border-radius:2px}
.tab{text-transform:uppercase;letter-spacing:.04em;font-size:.85rem}
.finder input[type=text],.finder ul,.finder li button,input[type=text],input[type=email],input[type=tel],input[type=month],select,textarea{border-radius:2px}
.card,.bahcard,.drivemap,.table-wrap,.gatebox{border-radius:2px}
.portrait img{border-radius:0;border-top:8px solid var(--gold-on-navy)}
.portrait::after{border-radius:0}
.sig{font-family:var(--body);font-style:italic;font-size:1.3rem;text-transform:none}
.baselist .nm{text-transform:uppercase;font-size:1.5rem;font-weight:700}
.bahcard .big,.townpanel .mins{font-weight:800}
.timeline li::before{font-weight:800}
footer .reach h2{text-transform:uppercase;letter-spacing:.06em}
.doc h1{font-size:clamp(2.6rem,5vw,4rem)}
.doc h2{font-size:clamp(1.6rem,3vw,2.2rem)}
.basehero::before{display:none}

/* ===== White top section (header, home hero, base hero) ===== */
.nav{background:#FFFFFF;border-bottom:1px solid var(--line)}
.nav .links button{color:var(--navy);font-weight:600}
.nav .links button:hover{color:var(--gold)}
.nav .call{color:var(--navy)}
.nav .btn{background:var(--navy);color:#FFFFFF}
.hero,.basehero{background:#FFFFFF;color:var(--ink);border-bottom:1px solid var(--line)}
.hero h1,.basehero h1{color:var(--navy)}
.hero h1 em{color:var(--gold)}
.hero .sub,.basehero p.sub{color:var(--muted)}
.basehero .where{color:var(--gold)}
.back{color:var(--muted)}.back:hover{color:var(--navy)}
.hero .btn.ghost,.basehero .btn.ghost{color:var(--navy);box-shadow:inset 0 0 0 2px var(--navy)}
.finder label{color:var(--muted);font-weight:600}
.finder input[type=text]{background:#FFFFFF;border:1.5px solid #C5CEDB;color:var(--ink)}
.finder input::placeholder{color:#6B7789}
.finder ul{background:#FFFFFF;border:1px solid var(--line);box-shadow:0 18px 40px rgba(15,27,45,.14)}
.finder li button{color:var(--ink)}
.finder li button:hover,.finder li button:focus-visible{background:var(--mist)}
.finder li small{color:var(--muted)}
.hero .st{fill:#C3CEDF;stroke:#FFFFFF;stroke-width:1}
.hero .st.ctx{fill:#E8ECF2;stroke:#FFFFFF}
.hero .st-label{fill:var(--navy);opacity:.85}
.hero .st-label.ctx{fill:#6B7789;opacity:.8}
.hero .st-lead{stroke:var(--muted);opacity:.6}
.hero .pin circle.dot{fill:var(--gold-on-navy);stroke:var(--navy);stroke-width:1.6}
.hero .pin-label{fill:var(--navy);stroke:#FFFFFF}
.hero .maplegend{color:var(--muted)}
.nav .links a{color:var(--navy);text-decoration:none;font-weight:600}
.nav .links a:hover{color:var(--gold)}
.finder li a{color:var(--ink)}
.finder li a:hover,.finder li a:focus-visible{background:var(--mist)}
.finder li small{color:var(--muted)}
.acts a{border-radius:2px}
a.back{color:var(--muted)}a.back:hover{color:var(--navy)}

/* ===== Gold for anything clicked or selected ===== */
.tab[aria-selected="true"],.chip[aria-pressed="true"]{background:var(--gold-on-navy);border-color:var(--gold-on-navy);color:#1A1406;font-weight:700}
.tab:hover,.chip:hover{border-color:var(--gold-on-navy)}
.btn:active,.btn.dark:active,.btn.ghost:active,.nav .btn:active,.card .btn:active,
.hero .btn.ghost:active,.basehero .btn.ghost:active,.acts a:active,.acts button:active,
.tab:active,.chip:active,button:active{background:var(--gold-on-navy) !important;color:#1A1406 !important;border-color:var(--gold-on-navy) !important;box-shadow:none !important}
.faq details[open] summary{color:var(--gold)}
.faq summary:active{color:var(--gold)}

/* ===== More white: tinted sections become white with thin dividers ===== */
section.alt{background:#FFFFFF;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.faq{max-width:900px}
.faq details{border:1px solid var(--line);border-top:3px solid var(--line);background:#FFFFFF;padding:0 22px;margin:0 0 12px}
.faq details[open]{border-top-color:var(--gold-on-navy)}
.faq summary{padding:20px 40px 20px 0}
.faq summary::after{top:14px;right:0}

/* ===== Darker, heavier body text for readability ===== */
:root{--ink:#0E1621;--muted:#36414F}
body{font-weight:500;color:var(--ink)}
p,li,dd,td,label{font-weight:500}
.hero .sub,.basehero p.sub,.faq details p,.steps p,.about p{color:#2E3A49}
.finder input::placeholder,input::placeholder,textarea::placeholder{color:#5C6878}
footer{color:#D3D9E2}
footer .legal p{color:#C9D1DC}

/* ===== "Bases from Maine to Louisiana" on navy ===== */
section#bases{background:var(--navy);color:var(--on-navy);border:0}
#bases h2{color:#FFFFFF}
#bases p{color:#D3D9E2}
#bases .tab{border-color:rgba(245,243,238,.4);color:#F5F3EE;background:transparent}
#bases .tab:hover{border-color:var(--gold-on-navy)}
#bases .tab[aria-selected="true"]{background:var(--gold-on-navy);border-color:var(--gold-on-navy);color:#1A1406}
#bases .baselist{border-top-color:rgba(245,243,238,.18)}
#bases .baselist li{border-bottom-color:rgba(245,243,238,.18)}
#bases .baselist .nm{color:#FFFFFF}
#bases .baselist .meta{color:#C3CCD8}
#bases .acts .g{background:transparent;border:1px solid rgba(245,243,238,.5);color:#F5F3EE}
#bases .acts .g:hover{border-color:var(--gold-on-navy);color:var(--gold-on-navy)}
#bases .acts .a{background:var(--gold-on-navy);border-color:var(--gold-on-navy);color:#1A1406;filter:none}
#bases .anywhere{color:#D3D9E2}
#bases .anywhere a,#bases .anywhere button{color:var(--gold-on-navy)}

/* ===== Alternating sections: white (sec-l) then navy (sec-d) ===== */
section.sec-l,div.sec-l{background:#FFFFFF;color:var(--ink)}
section.sec-d,div.sec-d{background:var(--navy);color:var(--on-navy);border-color:transparent}
.sec-d h2,.sec-d h3{color:#FFFFFF}
.sec-d p,.sec-d .muted,.sec-d .fine,.sec-d .meta{color:#D3D9E2}
.sec-d a:not(.btn):not(.g):not(.a){color:var(--gold-on-navy)}
/* promise strip on navy */
.promises.sec-d{background:var(--navy);color:#FFFFFF;border-top:1px solid rgba(245,243,238,.12)}
.promises.sec-d li{border-left-color:var(--gold-on-navy);color:#FFFFFF}
/* how it works on navy */
.sec-d .steps li{border-top-color:rgba(245,243,238,.35)}
.sec-d .steps li::before{color:var(--gold-on-navy)}
.sec-d .steps p{color:#D3D9E2}
/* white cards stay white with dark text inside navy sections */
.sec-d .bahcard,.sec-d .drivemap,.sec-d .gatebox,.sec-d .table-wrap,.sec-d .card,.sec-d .faq details{background:#FFFFFF;color:var(--ink)}
.sec-d .bahcard p,.sec-d .gatebox p,.sec-d .table-wrap p,.sec-d .card p,.sec-d .faq details p{color:#2E3A49}
.sec-d .bahcard h3,.sec-d .gatebox h3,.sec-d .card h2,.sec-d .card h3{color:var(--navy)}
.sec-d .bahcard .big{color:var(--gold)}
.sec-d .gatebox a:not(.btn),.sec-d .card a:not(.btn),.sec-d .faq details a{color:var(--navy)}
.sec-d .faq summary{color:var(--ink)}
.sec-d .faq details[open] summary{color:var(--gold)}
.sec-d .faq details{border-color:rgba(245,243,238,.2)}
.sec-d .faq details[open]{border-top-color:var(--gold-on-navy)}
/* town finder on navy */
.sec-d .townpanel h3{color:#FFFFFF}
.sec-d .townpanel p{color:#D3D9E2}
.sec-d .townpanel .mins{color:var(--gold-on-navy)}
.sec-d .townpanel .mins small{color:#C3CCD8}
.sec-d .townpanel dt{color:var(--gold-on-navy)}
.sec-d .townpanel dd,.sec-d .townpanel dd a{color:#FFFFFF}
.sec-d .chip{border-color:rgba(245,243,238,.45);color:#F5F3EE}
.sec-d .chip[aria-pressed="true"]{background:var(--gold-on-navy);border-color:var(--gold-on-navy);color:#1A1406}
.sec-d .timeline li{border-top-color:rgba(245,243,238,.25)}
.sec-d .timeline li::before{color:var(--gold-on-navy)}
.sec-d .resbox{background:rgba(255,255,255,.06)}
.sec-d .resbox a{color:#FFFFFF}
/* contact section when it lands on white */
.formsec.sec-l{background:#FFFFFF;color:var(--ink);border-top:1px solid var(--line)}
.formsec.sec-l h2{color:var(--navy)}
.formsec.sec-l .lead p{color:#2E3A49}
.formsec.sec-l .lead .direct{border-top-color:var(--line)}
.formsec.sec-l .lead .direct a{color:var(--gold)}
.formsec.sec-l .card{border:1px solid var(--line);box-shadow:0 18px 40px rgba(15,27,45,.10)}
.bahhow{max-width:52ch}
.sec-d .bahlink{background:var(--gold-on-navy);color:#1A1406}
.sec-d .townpanel .note,.sec-d .townpanel .note.inline,.sec-d .townpanel .note.inline a,.sec-d .townpanel dd li,.sec-d .townpanel dd li a{color:#FFFFFF}

.srch-tag{font-size:.85em;opacity:.75;font-weight:500}
.sec-d .drivemap .chip{color:var(--ink);border-color:var(--line);background:#FFFFFF}
.sec-d .drivemap .chip:hover{border-color:var(--gold-on-navy)}
.sec-d .drivemap .chip[aria-pressed="true"]{background:var(--gold-on-navy);border-color:var(--gold-on-navy);color:#1A1406}

.faqgroup{font-size:1.4rem;margin:30px 0 14px;color:var(--navy)}
.faq .ans ul{margin:0 0 14px;padding-left:20px}
.faq .ans li{margin:6px 0;color:#2E3A49}
.faq .ans p{margin:0 0 12px;color:#2E3A49}

/* Missing-field pop-up and highlights */
.mdlg{position:fixed;inset:0;background:rgba(14,22,33,.55);display:flex;align-items:center;justify-content:center;padding:20px;z-index:1000}
.mdlg[hidden]{display:none}
.mdlg-box{background:#FFFFFF;color:var(--ink);max-width:440px;width:100%;padding:28px 26px 24px;border-top:4px solid var(--gold-on-navy);box-shadow:0 24px 60px rgba(0,0,0,.35)}
.mdlg-box h3{margin:0 0 8px;color:var(--navy);font-size:1.7rem}
.mdlg-box p{margin:0 0 10px;color:#2E3A49}
.mdlg-box ul{margin:0 0 20px;padding-left:20px}
.mdlg-box li{margin:6px 0;font-weight:600;color:var(--ink)}
.mdlg-box .btn{width:100%;justify-content:center}
input.missing,select.missing,textarea.missing{border-color:#C0392B !important;box-shadow:0 0 0 2px rgba(192,57,43,.25) !important}
#f-err{color:#B42318;font-weight:600}

/* Home page photo hero */
header.hero.photohero{position:relative;overflow:hidden;background:var(--navy);color:#FFFFFF;border-bottom:0;display:flex;align-items:center;padding:88px 0 76px}
.photohero .hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:62% 55%;z-index:0}
header.hero.photohero::before{display:block;content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(14,26,46,.92) 0%,rgba(14,26,46,.78) 32%,rgba(14,26,46,.25) 58%,rgba(14,26,46,0) 72%)}
.photohero .wrap{position:relative;z-index:2;display:block;width:100%}
.photohero .wrap>div{max-width:560px}
.photohero h1{color:#FFFFFF}
.photohero h1 em{color:var(--gold-on-navy)}
.photohero .sub{color:#E3E8EF}
.photohero .btn.ghost{color:#FFFFFF;box-shadow:inset 0 0 0 2px rgba(255,255,255,.85);background:transparent}
.photohero .finder label{color:#E3E8EF}
.photohero .finder input[type=text]{border-color:transparent}
@media (max-width:820px){header.hero.photohero{display:block;padding:0}
.photohero .hero-photo{position:static;height:250px;object-position:66% 55%}
header.hero.photohero::before{display:none}
.photohero .wrap{padding-top:30px;padding-bottom:36px}}
/* Map now sits in the navy bases section */
.bases-top{display:grid;grid-template-columns:1fr;gap:28px;align-items:center;margin-bottom:26px}
@media (min-width:980px){.bases-top{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr)}}
.bases-top .intro{margin:0}
#bases .mapcard{max-width:640px;width:100%;justify-self:end}
#bases .maplegend{color:#D3D9E2}
