:root{
 --ink:#131a22; --body:#39434e; --dim:#66717d; --line:#e3e8ed;
 --bg:#fff; --soft:#f6f8fa; --navy:#122c47; --navy2:#1b3d61;
 --blue:#12507f; --amber:#e8920c; --amber-bg:#fffaef;
 --go:#0d7a3c; --go2:#0a6532; --lic:#0e5c30; --lic-bg:#e8f4ec;
 --r:8px; --shadow:0 1px 2px rgba(19,26,34,.05),0 6px 16px -8px rgba(19,26,34,.12);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--body);
 font:16px/1.62 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
 -webkit-font-smoothing:antialiased}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
img{max-width:100%;height:auto}
a{color:var(--blue)}
a:focus-visible,button:focus-visible{outline:3px solid var(--amber);outline-offset:2px;border-radius:3px}
.wrap{max-width:1080px;margin:0 auto;padding:0 18px}
.skip{position:absolute;left:-9999px}
.skip:focus{left:10px;top:10px;background:#fff;padding:10px 14px;z-index:99;border:2px solid var(--blue)}
h1,h2,h3{color:var(--ink);line-height:1.18;margin:0 0 .5em;text-wrap:balance;letter-spacing:-.018em}
h1{font-size:clamp(1.6rem,4.6vw,2.3rem);font-weight:800}
h2{font-size:clamp(1.2rem,2.8vw,1.5rem);font-weight:700}
h3{font-size:1.04rem;font-weight:700}
p{margin:0 0 1em}
.muted{color:var(--dim)}
.small{font-size:.86rem}
ul{margin:0 0 1em;padding-left:1.15em}

/* ---- header ---- */
header.site{background:var(--navy);color:#fff}
header.site a{color:#fff;text-decoration:none}
.bar{display:flex;align-items:center;justify-content:space-between;gap:16px;
 min-height:60px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:1.06rem;
 letter-spacing:-.02em;color:#fff}
.mark{display:inline-flex;flex-direction:column;gap:2.5px;width:23px;flex:none}
.mark i{display:block;height:4px;background:var(--amber);border-radius:1px}
.mark i:nth-child(2){opacity:.8}
.mark i:nth-child(3){opacity:.6}
header.site nav{display:flex;gap:20px;font-size:.93rem}
header.site nav a{opacity:.92}
header.site nav a:hover{opacity:1;text-decoration:underline}

/* ---- breadcrumbs ---- */
.crumbs{background:var(--soft);border-bottom:1px solid var(--line);font-size:.84rem}
.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:10px 0}
.crumbs li+li::before{content:"\203A";margin-right:6px;color:#9fabb7}
.crumbs a{color:var(--blue)}
.crumbs [aria-current]{color:var(--dim)}

/* ---- hero ---- */
main{padding:0 0 48px}
.hero{background:linear-gradient(180deg,var(--soft) 0%,#fff 100%);
 border-bottom:1px solid var(--line);padding:32px 0 28px;margin-bottom:26px}
.lede{font-size:1.07rem;color:var(--body);max-width:64ch;margin-bottom:0}
.stats{display:flex;flex-wrap:wrap;gap:10px;list-style:none;padding:0;margin:18px 0 0}
.stats li{background:#fff;border:1px solid var(--line);border-radius:var(--r);
 padding:10px 15px;font-size:.85rem;color:var(--dim);box-shadow:var(--shadow)}
.stats b{display:block;font-size:1.36rem;color:var(--ink);letter-spacing:-.03em;font-weight:800}

/* ---- sponsored ---- */
.sponsor{border:2px solid var(--amber);background:var(--amber-bg);border-radius:var(--r);
 padding:20px;margin:0 0 26px;box-shadow:var(--shadow)}
.sponsor .tag{display:inline-block;background:var(--amber);color:#3a2600;font-size:.68rem;
 font-weight:800;letter-spacing:.09em;text-transform:uppercase;padding:4px 8px;
 border-radius:3px;margin-bottom:10px}
.sponsor h2{margin:0 0 5px;font-size:1.22rem}
.sponsor p{margin:0 0 14px;color:var(--body);font-size:.95rem}

/* ---- call button ---- */
.call{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;
 background:var(--go);color:#fff;text-decoration:none;font-weight:800;
 font-size:1.34rem;letter-spacing:-.01em;padding:13px 24px;border-radius:var(--r);
 min-height:58px;text-align:center;box-shadow:0 2px 0 var(--go2)}
.call:hover{background:var(--go2)}
.call:active{transform:translateY(1px);box-shadow:none}
.call small{font-weight:600;font-size:.73rem;opacity:.95;letter-spacing:.02em}
@media(min-width:560px){.call{display:inline-flex}}

/* ---- sticky call bar ---- */
.callbar{position:fixed;left:0;right:0;bottom:0;z-index:50;background:#fff;
 border-top:1px solid var(--line);padding:9px 14px calc(9px + env(safe-area-inset-bottom));
 box-shadow:0 -3px 14px rgba(19,26,34,.1);display:flex;gap:10px;align-items:center}
.callbar .t{flex:1;min-width:0;font-size:.78rem;color:var(--dim);line-height:1.3}
.callbar .t b{display:block;color:var(--ink);font-size:.9rem;font-weight:700;
 white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.callbar a{flex:none;background:var(--go);color:#fff;text-decoration:none;font-weight:800;
 font-size:1rem;padding:11px 18px;border-radius:var(--r);min-height:46px;
 display:flex;align-items:center;box-shadow:0 2px 0 var(--go2)}
.callbar a:active{transform:translateY(1px);box-shadow:none}
body.has-callbar{padding-bottom:78px}
@media(min-width:760px){.callbar{display:none}body.has-callbar{padding-bottom:0}}

/* ---- listings ---- */
.listing{border:1px solid var(--line);border-radius:var(--r);padding:16px 17px;
 background:#fff;transition:border-color .12s,box-shadow .12s}
.listing:hover{border-color:#c8d3dd;box-shadow:var(--shadow)}
.listing+.listing{margin-top:11px}
.listing h3{margin:0 0 6px;font-size:1.06rem;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.meta{font-size:.88rem;color:var(--dim);margin:0}
.meta span+span::before{content:"\00B7";margin:0 7px;color:#bcc6d0}
.meta .dist{color:var(--blue);font-weight:700}
.badge{display:inline-block;font-size:.68rem;font-weight:800;letter-spacing:.06em;
 padding:3px 7px;border-radius:3px;text-transform:uppercase}
.badge.lic{background:var(--lic-bg);color:var(--lic);border:1px solid #bcdfc9}
.lic-line{font-size:.82rem;color:var(--lic);margin:9px 0 0;padding-top:9px;
 border-top:1px dashed var(--line)}

/* ---- cards ---- */
.card{display:block;border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;
 text-decoration:none;color:inherit;background:#fff;transition:border-color .12s,box-shadow .12s}
.card:hover{border-color:var(--blue);box-shadow:var(--shadow)}
.card b{display:block;font-size:1rem;color:var(--ink);margin-bottom:3px}
.card span{font-size:.85rem;color:var(--dim)}
.grid{display:grid;gap:13px}
@media(min-width:600px){.grid.c3{grid-template-columns:1fr 1fr}}
@media(min-width:900px){.grid.c3{grid-template-columns:repeat(3,1fr)}}
.linklist{list-style:none;padding:0;columns:2;column-gap:26px}
@media(min-width:780px){.linklist{columns:3}}
.linklist li{break-inside:avoid;margin-bottom:7px;font-size:.93rem}

/* ---- sections ---- */
.section{margin:38px 0 0}
.prose{max-width:68ch}
.prose h2{margin-top:1.3em}
.faq{border-top:1px solid var(--line);padding:16px 0}
.faq h3{margin:0 0 6px;font-size:1rem}
.faq p{margin:0}
.facts{list-style:none;padding:0;margin:16px 0 0;display:grid;gap:9px}
@media(min-width:620px){.facts{grid-template-columns:1fr 1fr}}
.facts li{background:#fff;border:1px solid var(--line);border-left:3px solid var(--blue);
 border-radius:4px;padding:10px 13px;font-size:.9rem}
.facts b{display:block;color:var(--ink);font-weight:700}
.facts span{color:var(--dim);font-size:.82rem}
.notice{background:var(--soft);border-left:4px solid #9fabb7;padding:13px 16px;
 margin:0 0 20px;font-size:.92rem;color:var(--body)}

/* ---- footer ---- */
footer.site{background:var(--navy);color:#c2d2e0;margin-top:54px;padding:38px 0 26px;font-size:.9rem}
footer.site a{color:#fff}
footer.site h2,footer.site h3{color:#fff;font-size:1rem;margin:0 0 9px}
footer.site h2{font-size:1.08rem}
footer.site ul{list-style:none;padding:0}
footer.site li{margin-bottom:6px}
footer.site .muted{color:#93a8bd}
.fcols{display:grid;gap:24px;margin-bottom:26px}
@media(min-width:680px){.fcols{grid-template-columns:2fr 1fr 1fr}}
.legal{border-top:1px solid var(--navy2);padding-top:17px;font-size:.78rem;
 line-height:1.55;color:#93a8bd}
.legal p{margin:0 0 9px}
.legal strong{color:#c2d2e0}
.attrib a{color:#c2d2e0}