/* Virginia Community Healthcare Association — site-specific styles. Loaded after base.css. */

@font-face{font-family:"Public Sans";font-style:normal;font-weight:400 800;font-display:optional;src:url(https://fonts.gstatic.com/s/publicsans/v21/ijwRs572Xtc6ZYQws9YVwnNGfJ4.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

body{font-size:1.0625rem}
h1,h2{font-weight:800;letter-spacing:-.025em}
h2{color:var(--navy-deep)}
h3{font-weight:700;font-size:var(--fs-lg);letter-spacing:-.01em}
:focus-visible{outline-color:var(--brand)}

/* ---- Header --------------------------------------------------- */
:root{--header-h:76px}
.site-header{background:#fff;border-bottom:4px solid var(--accent);backdrop-filter:none}
.brand img{height:60px;width:auto}
.nav a{color:var(--navy-deep);font-weight:600;font-size:var(--fs-md)}
.nav a:hover,.nav a[aria-current="page"]{color:var(--brand);text-decoration:underline;text-underline-offset:.35em;text-decoration-thickness:2px}
.nav a.btn-primary,.nav a.btn-primary:hover{text-decoration:none}
@media(max-width:860px){.brand img{height:44px}.nav a{padding:.9em 0}}

/* ---- Buttons -------------------------------------------------- */
.btn{border-radius:var(--radius);font-weight:700;min-height:48px}
.btn-primary{box-shadow:none}
.btn-lime{background:var(--accent);color:var(--accent-ink)}
.btn-lime:hover{background:#b8dc5c}
.btn-line{background:transparent;color:#fff;border-color:rgba(255,255,255,.7)}
.btn-line:hover{border-color:#fff;background:rgba(255,255,255,.08)}

/* ---- Hero: the network ---------------------------------------- */
.net{background:var(--navy-deep);color:#fff;padding-block:clamp(2.5rem,6vw,5rem) clamp(2rem,4vw,3.5rem);overflow:hidden}
.net-grid{display:grid;gap:clamp(1.5rem,4vw,3rem);align-items:center}
@media(min-width:980px){.net-grid{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}}
.net h1{color:#fff;font-size:clamp(2.3rem,1.7rem + 2.2vw,3.5rem);line-height:1.05;margin-bottom:var(--s-5);max-width:14ch}
.net .lede{font-size:var(--fs-lg);color:#d9dcef;max-width:44ch;margin-bottom:var(--s-6)}
.net .actions{display:flex;flex-wrap:wrap;gap:var(--s-3)}
.net .note{margin-top:var(--s-5);font-size:var(--fs-sm);color:#b9bddb;max-width:48ch}
.net .note a{color:#fff}
.map-fig{margin:0}
.vamap{width:100%;height:auto;overflow:visible}
.vamap-state{fill:var(--bay);stroke:#4f7fb8;stroke-width:1.5;stroke-linejoin:round}
.vamap-dots circle{fill:var(--accent);stroke:var(--navy-deep);stroke-width:2.2}
.vamap-labels text{fill:#fff;font:600 24px/1 var(--font-body);paint-order:stroke;stroke:var(--navy-deep);stroke-width:6px;stroke-linejoin:round}
.map-fig figcaption{margin-top:var(--s-3);font-size:var(--fs-sm);color:#b9bddb}
.map-fig figcaption a{color:#fff}
@media(prefers-reduced-motion:no-preference){
  .vamap-dots{animation:sweep 1.4s cubic-bezier(.3,.6,.2,1) .2s both}
  @keyframes sweep{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
}

/* ---- The numbers, as a sentence -------------------------------- */
.statement{padding-block:var(--section)}
.statement p.big{font-size:clamp(1.5rem,1.1rem + 1.9vw,2.6rem);line-height:1.25;font-weight:600;letter-spacing:-.015em;color:var(--navy-deep);max-width:30ch;margin-bottom:var(--s-5)}
.statement p.big strong{font-weight:800;color:var(--brand);box-shadow:inset 0 -.18em 0 var(--accent)}
.source{font-size:var(--fs-sm);color:var(--ink-2)}

/* ---- Advocate / Educate / Elevate ------------------------------ */
.triad{background:var(--bg-alt);padding-block:var(--section)}
.triad-grid{display:grid;gap:var(--s-7) var(--s-6);margin-top:var(--s-6)}
@media(min-width:820px){.triad-grid{grid-template-columns:repeat(3,1fr)}}
.triad h3{font-size:var(--fs-xl);font-weight:800;color:var(--navy-deep);padding-top:var(--s-4);border-top:4px solid var(--accent);margin-bottom:var(--s-3)}
.triad .what{color:var(--ink-2);margin-bottom:var(--s-4)}
.links{list-style:none;padding:0;margin:0}
.links li{border-top:1px solid #d3d8e4}
.links li:last-child{border-bottom:1px solid #d3d8e4}
.links a{display:block;padding:.75em 0;font-weight:600;text-decoration:none;color:var(--brand);min-height:44px}
.links a:hover{text-decoration:underline}
.links .ext{font-weight:400;color:var(--ink-2);font-size:var(--fs-sm)}

/* ---- Now: dated list ------------------------------------------ */
.now{padding-block:var(--section)}
.rows{list-style:none;padding:0;margin:var(--s-6) 0 0;border-top:2px solid var(--navy-deep)}
.rows li{display:grid;gap:var(--s-2) var(--s-6);padding:var(--s-5) 0;border-bottom:1px solid var(--line)}
@media(min-width:760px){.rows li{grid-template-columns:11rem 1fr}}
.rows time{font-weight:600;color:var(--ink-2);font-size:var(--fs-sm);padding-top:.2em}
.rows h3{margin-bottom:var(--s-2)}
.rows h3 a{color:var(--navy-deep);text-decoration:none}
.rows h3 a:hover{text-decoration:underline}
.rows p{color:var(--ink-2);margin:0}

/* ---- Quote ---------------------------------------------------- */
.quote{background:var(--navy-deep);color:#fff;padding-block:var(--section)}
.quote blockquote{margin:0;max-width:52ch}
.quote blockquote p{font-size:clamp(1.25rem,1rem + 1vw,1.75rem);line-height:1.4;font-weight:500;max-width:none}
.quote figcaption{margin-top:var(--s-5);color:#c9cde6}
.quote figcaption strong{color:#fff}
.quote a{color:#fff}

/* ---- Contact block -------------------------------------------- */
.reach{padding-block:var(--section)}
.reach-grid{display:grid;gap:var(--s-7)}
@media(min-width:820px){.reach-grid{grid-template-columns:1fr 1fr}}
.reach address{font-style:normal;font-size:var(--fs-lg);line-height:1.5;margin-bottom:var(--s-4)}
.patient{border-left:4px solid var(--accent);padding:var(--s-2) 0 var(--s-2) var(--s-5)}

/* ---- Footer --------------------------------------------------- */
.site-footer{background:#1e2148;color:#c9cde6;padding-block:var(--s-8) var(--s-7);font-size:var(--fs-sm)}
.site-footer a{color:#fff}
.foot-grid{display:grid;gap:var(--s-6)}
@media(min-width:820px){.foot-grid{grid-template-columns:2fr 1fr 1fr}}
.site-footer h2{font-size:var(--fs-md);color:#fff;margin-bottom:var(--s-3);letter-spacing:0}
.site-footer ul{list-style:none;padding:0;margin:0}
.site-footer li{padding:.3em 0}
.site-footer .seal{width:72px;height:72px;margin-bottom:var(--s-4);background:#fff;border-radius:50%;padding:4px}
.foot-base{display:flex;flex-wrap:wrap;gap:var(--s-4);align-items:center;justify-content:space-between;margin-top:var(--s-7);padding-top:var(--s-5);border-top:1px solid #3a3f78}
.foot-base img{width:53px;height:auto}

/* ---- Directory (Find a health center) ------------------------- */
.page-head{background:var(--navy-deep);color:#fff;padding-block:clamp(2.5rem,5vw,4rem)}
.page-head h1{color:#fff;font-size:clamp(2.1rem,1.5rem + 2.5vw,3.4rem);max-width:20ch}
.page-head p{color:#d9dcef;font-size:var(--fs-lg);max-width:60ch}
.page-head a{color:#fff}
.az{display:flex;flex-wrap:wrap;gap:.25rem;list-style:none;padding:0;margin:var(--s-5) 0 0}
.az a{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;font-weight:700;color:#fff;border:1px solid #4a4f8a;border-radius:var(--radius);text-decoration:none}
.az a:hover{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.dir{padding-block:var(--s-7) var(--section)}
.dir-letter{margin-top:var(--s-7);padding-bottom:var(--s-2);border-bottom:2px solid var(--navy-deep);font-size:var(--fs-xl)}
.town{display:grid;gap:var(--s-3) var(--s-6);padding:var(--s-5) 0;border-bottom:1px solid var(--line)}
@media(min-width:820px){.town{grid-template-columns:13rem 1fr}}
.town h3{font-size:var(--fs-lg);margin:0;color:var(--navy-deep)}
.sites{list-style:none;padding:0;margin:0;display:grid;gap:var(--s-4)}
@media(min-width:1000px){.sites{grid-template-columns:1fr 1fr}}
.sites li{line-height:1.45}
.sites strong{display:block;color:var(--ink)}
.sites .addr{color:var(--ink-2);display:block}
.sites .tel{display:inline-block;padding:.35em 0;margin-right:1rem;font-weight:600}

/* ---- Inner pages ---------------------------------------------- */
.prose{padding-block:var(--section)}
.prose h2{font-size:var(--fs-xl);margin-top:var(--s-7)}
.prose h2:first-child{margin-top:0}
.prose ul{max-width:65ch}
.prose li{margin-bottom:.4em}
.two{display:grid;gap:var(--s-7)}
@media(min-width:900px){.two{grid-template-columns:minmax(0,3fr) minmax(0,2fr)}}
.aside{background:var(--bg-alt);padding:var(--s-6);border-top:4px solid var(--accent);align-self:start}
.aside h2{font-size:var(--fs-lg);margin-top:0}
