/* PAR Physical Therapy: "Neighborhood clinic". Warm off-white ground, the logo's navy and sky blue, Figtree 700 for display, Source Sans 3 for body, 14px corners, solid rounded buttons. */
:root { --ink:#112337; --blue:#03407e; --blue-d:#022c57; --teal:#00a3e6; --teal-d:#03407e; --navy:#03407e; --navy-d:#082a4d; --warm:#f7f4ee; --mint:#e6f0f8; --white:#fff; --mute:#475467; --line:#dcd6ca; --r:14px; --wrap:1180px; --disp:'Figtree',system-ui,-apple-system,'Segoe UI',sans-serif; --body:'Source Sans 3',system-ui,-apple-system,'Segoe UI',sans-serif; }
*,*::before,*::after { box-sizing:border-box; }
html { scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body { margin:0; font:400 17px/1.65 var(--body); color:var(--ink); background:var(--warm); }
img { max-width:100%; height:auto; display:block; }
a { color:var(--blue); text-decoration-color:rgba(3,64,126,.4); text-underline-offset:3px; text-decoration-thickness:2px; }
a:hover { color:var(--blue-d); text-decoration-color:currentColor; }
h1,h2,h3,.btn,.mh,.by-n,.stat b { font-family:var(--disp); }
h1,h2 { font-weight:700; line-height:1.15; letter-spacing:-.012em; margin:0 0 .5em; text-wrap:balance; }
h1 { font-size:clamp(34px,4.4vw,56px); }
h2 { font-size:clamp(28px,3.2vw,40px); }
h3 { font-weight:700; font-size:clamp(20px,1.8vw,24px); line-height:1.2; margin:0 0 .4em; text-wrap:balance; letter-spacing:-.005em; }
p { margin:0 0 1em; text-wrap:pretty; }
.wrap { width:min(var(--wrap),100% - 40px); margin-inline:auto; }
.sr,.skip:not(:focus) { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.skip:focus { position:fixed; top:8px; left:8px; z-index:99; background:var(--blue); color:#fff; padding:10px 16px; border-radius:8px; font-weight:700; }
:focus-visible { outline:3px solid var(--blue); outline-offset:2px; border-radius:4px; }
.sec--dark :focus-visible,.hero-t :focus-visible,.ft :focus-visible { outline-color:#fff; }

/* ---------- buttons ---------- */
.btn { display:inline-block; background:var(--blue); color:#fff; border:0; font-weight:600; font-size:17px; line-height:1.1; padding:15px 24px; border-radius:var(--r); text-decoration:none; cursor:pointer; white-space:nowrap; transition:background .15s,color .15s,box-shadow .15s; }
.btn:hover { background:var(--blue-d); color:#fff; }
.btn--ghost,.btn--line { background:transparent; color:var(--blue); box-shadow:inset 0 0 0 2px currentColor; }
.btn--ghost:hover,.btn--line:hover { background:var(--blue); color:#fff; box-shadow:inset 0 0 0 2px var(--blue); }
.sec--dark .btn { background:var(--teal); color:#071a2e; }
.sec--dark .btn:hover { background:#fff; color:#071a2e; }
.sec--dark .btn--line,.sec--dark .btn--ghost { background:transparent; color:#fff; box-shadow:inset 0 0 0 2px #fff; }
.sec--dark .btn--line:hover,.sec--dark .btn--ghost:hover { background:#fff; color:#071a2e; box-shadow:none; }
.acts { display:flex; flex-wrap:wrap; gap:12px 14px; align-items:center; margin:26px 0 0; }

/* ---------- header and nav ---------- */
.nav { flex:1; }
.nav > ul { display:flex; gap:2px; list-style:none; margin:0; padding:0; justify-content:center; }
.has-menu { position:relative; display:flex; align-items:center; }
.nav .top:hover { color:var(--blue); }
.tg { display:none; }
.menu { display:none; position:absolute; top:100%; left:0; background:#fff; border:1px solid var(--line); border-radius:0 0 var(--r) var(--r); min-width:260px; padding:20px 24px; box-shadow:0 22px 48px rgba(18,32,74,.16); }
.has-menu:hover > .menu,.has-menu:focus-within > .menu,.has-menu.open > .menu { display:block; }
.menu.wide { width:min(920px,92vw); left:-140px; }
.mgrid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px 30px; }
.mh { font-weight:700; font-size:14px; letter-spacing:.1em; text-transform:uppercase; color:var(--teal-d); margin:0 0 8px; }
.menu ul { list-style:none; margin:0; padding:0; }
.menu li a { display:block; padding:5px 0; text-decoration:none; font-size:16px; line-height:1.3; color:var(--ink); }
.menu li a:hover { color:var(--blue); text-decoration:underline; }
.mall { margin:16px 0 0; padding-top:12px; border-top:1px solid var(--line); font-weight:600; }
.burger { display:none; background:none; border:0; width:44px; height:44px; margin-left:auto; cursor:pointer; padding:10px; }
.burger i { display:block; height:3px; border-radius:2px; background:var(--ink); margin:5px 0; }

/* ---------- sections ---------- */
.sec { padding:clamp(56px,8vw,96px) 0; }
.sec--light { background:var(--warm); }
.sec--tint { background:var(--mint); }
.sec--dark { background:var(--navy); color:#fff; }
.sec--dark h2,.sec--dark h3 { color:#fff; }
.sec--dark a { color:#8fd6f5; }
.sec--warn { background:var(--warm); }
.lede { font-size:19.5px; color:var(--mute); max-width:62ch; }
.sec--dark .lede { color:#d6e6f4; }
.kick { font-weight:600; font-size:15px; letter-spacing:.1em; text-transform:uppercase; color:var(--teal-d); margin:0 0 12px; }
.prose { max-width:760px; }
.prose ul { padding-left:1.2em; } .prose li { margin-bottom:.4em; }

.splithead { display:grid; grid-template-columns:5fr 7fr; gap:clamp(28px,6vw,80px); align-items:start; }
.sh-l { position:sticky; top:130px; }
.sh-r .row { padding:0 0 24px; margin:0 0 24px; border-bottom:1px solid var(--line); }
.sh-r .row:last-child { border:0; margin:0; padding:0; }
.sec--dark .sh-r .row { border-color:#3b78b3; }
.sh-r h3 { margin-bottom:.2em; } .sh-r p { margin:0; }

.cards { display:grid; gap:20px; margin-top:34px; }
.cards.c2 { grid-template-columns:repeat(2,1fr); } .cards.c3 { grid-template-columns:repeat(3,1fr); } .cards.c4 { grid-template-columns:repeat(4,1fr); }
.card { background:#fff; border-radius:var(--r); border:1px solid var(--line); padding:26px 24px 22px; }
.sec--tint .card { border-color:#cddfee; }
.sec--dark .card { background:#0b4f8e; border-color:#3b78b3; }
.card h2,.card h3 { font-size:clamp(20px,1.8vw,24px); line-height:1.2; margin:0 0 .35em; } .card h2 a,.card h3 a { text-decoration:none; color:var(--blue); } .card h2 a::after,.card h3 a::after { content:' \2192'; color:var(--teal-d); }
.card p { margin:0; font-size:16.5px; color:var(--mute); } .sec--dark .card p { color:#d6e6f4; }
.card ul { margin:.8em 0 0; padding-left:1.1em; font-size:16px; color:var(--mute); }

.steps { list-style:none; counter-reset:s; margin:34px 0 0; padding:0; display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:24px; }
.steps li { counter-increment:s; background:#fff; border-radius:var(--r); padding:22px 22px 18px; border:1px solid #cddfee; }
.steps li::before { content:counter(s); display:grid; place-items:center; width:38px; height:38px; border-radius:50%; background:var(--blue); color:#fff; font:700 19px var(--disp); margin-bottom:12px; }
.steps p { margin:0; color:var(--mute); }

.acc { margin-top:26px; max-width:860px; }
.acc details { border-bottom:1px solid var(--line); }
.acc summary { cursor:pointer; list-style:none; font:600 21px/1.25 var(--disp); padding:18px 40px 18px 0; position:relative; }
.acc summary::-webkit-details-marker { display:none; }
.acc summary::after { content:'+'; position:absolute; right:6px; top:12px; font-size:32px; color:var(--blue); }
.acc details[open] summary::after { content:'\2013'; }
.acc details > div { padding:0 0 18px; max-width:70ch; }

.flag { background:#fff7f2; border:1px solid #e6b9a6; border-radius:var(--r); padding:26px clamp(20px,3vw,36px); max-width:900px; }
.flag h2 { font-size:clamp(26px,3vw,36px); color:#8a2f10; } .flag ul { padding-left:1.1em; } .flag li { margin-bottom:.45em; }
.fnote { font-weight:600; }

.twocol { display:grid; grid-template-columns:5fr 7fr; gap:clamp(28px,6vw,80px); align-items:start; }
.checks { list-style:none; margin:0; padding:0; display:grid; gap:0; }
.checks li { padding:14px 0 14px 38px; border-bottom:1px solid var(--line); position:relative; }
.checks li::before { content:''; position:absolute; left:0; top:17px; width:22px; height:22px; border-radius:50%; background:var(--teal) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23112337' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4 8-9'/%3E%3C/svg%3E") center/16px no-repeat; }
.sec--dark .checks li { border-color:#3b78b3; }

.bandtxt { max-width:820px; } .bandtxt h2 { color:#fff; } .bandtxt p { color:#d6e6f4; font-size:19px; }
.bandtxt ul { padding-left:1.1em; color:#d6e6f4; } .bandtxt .acts { margin-top:24px; }

/* ---------- hero and page heroes ---------- */
.phero { background:var(--warm); border-bottom:1px solid var(--line); padding:clamp(30px,4.5vw,56px) 0 clamp(36px,5vw,60px); }
.phero h1 { max-width:22ch; }
.phero .lead { font-size:clamp(18px,1.8vw,21px); color:var(--mute); max-width:64ch; margin:0; }
.crumbs { font-size:14.5px; color:var(--mute); margin-bottom:22px; } .crumbs a { color:var(--mute); } .crumbs a:hover { color:var(--blue); } .crumbs span { margin:0 4px; }

/* ---------- people ---------- */
.by { background:#fff; border-bottom:1px solid var(--line); }
.by-in { width:min(var(--wrap),100% - 40px); margin:0 auto; display:flex; gap:22px; align-items:center; padding:20px 0; }
.by img { width:84px; height:94px; object-fit:cover; flex:none; border-radius:var(--r); }
.ini { width:84px; height:94px; flex:none; display:grid; place-items:center; background:var(--mint); color:var(--teal-d); font:700 30px var(--disp); border-radius:var(--r); }
.by-k { font:600 13.5px/1 'Figtree',sans-serif; letter-spacing:.12em; text-transform:uppercase; color:var(--teal-d); margin:0 0 6px; }
.by-n { font-weight:700; font-size:22px; line-height:1.15; margin:0 0 4px; }
.by-b { margin:0 0 4px; font-size:15.5px; color:var(--mute); max-width:90ch; }
.by-l { margin:0; font-size:15px; }
.who { font-weight:600; }

.staff--card { display:grid; gap:0; }
.pcard { display:grid; grid-template-columns:240px 1fr; gap:clamp(20px,4vw,48px); padding:34px 0; border-bottom:1px solid var(--line); align-items:start; }
.pcard:first-child { padding-top:0; }
.pimg img { width:240px; aspect-ratio:400/450; object-fit:cover; border-radius:var(--r); }
.pimg .ini { width:240px; height:270px; font-size:60px; }
.ptxt h3, .ptxt h2 { font-size:clamp(28px,3vw,40px); font-weight:600; margin-bottom:.1em; }
.role { font:600 18px/1.2 'Figtree',sans-serif; color:var(--teal-d); margin:0 0 14px; }
.bio { max-width:68ch; }
.staff--strip { display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:18px; margin-top:26px; }
.pstrip { display:flex; gap:14px; align-items:center; background:#fff; border-radius:var(--r); padding:12px; } .pstrip img { width:60px; height:68px; object-fit:cover; border-radius:10px; } .pstrip .ini { width:60px; height:68px; font-size:22px; } .pstrip h3 { font-size:19px; margin:0; } .pstrip .role { font-size:15px; margin:2px 0 0; }
.chips,.staff--chips { display:flex; flex-wrap:wrap; gap:10px; list-style:none; padding:0; margin:22px 0 0; }
.chip,.chips li { display:inline-block; padding:9px 16px; background:#fff; border:1px solid #bfd3e6; border-radius:99px; font-weight:500; font-size:16.5px; line-height:1.25; }
.sec--dark .chip,.sec--dark .chips li { background:transparent; border-color:#7ba7cf; color:#fff; }
.chip small { color:var(--mute); font-size:14px; }

/* ---------- reviews ---------- */
.rev { display:grid; gap:20px; grid-template-columns:repeat(3,1fr); margin-top:34px; }
.rv { background:#fff; border:1px solid var(--line); border-radius:var(--r); padding:26px 24px 22px; display:flex; flex-direction:column; margin:0; }
.sec--tint .rv { border-color:#cddfee; }
.rv .tagc { display:inline-block; align-self:flex-start; font:600 13.5px/1 'Figtree',sans-serif; color:var(--teal-d); background:var(--mint); padding:7px 11px; border-radius:99px; margin:0 0 14px; }
.rv blockquote { margin:0 0 16px; font-size:17px; line-height:1.6; flex:1; }
.rv blockquote p { margin:0 0 .8em; }
.rv .who2 { font-weight:700; margin:0; } .rv .who2 small { display:block; font-weight:400; color:var(--mute); font-size:15px; }

/* ---------- clinic, hours, insurance, files, workshops ---------- */
.clinic h3, .clinic h2 { font-size:24px; } .clinic h3 a, .clinic h2 a { text-decoration:none; } .clinic p { margin:0 0 12px; }
.hrs-t { border-collapse:collapse; } .hrs-t th { text-align:left; font-weight:600; padding:4px 26px 4px 0; } .hrs-t td { padding:4px 0; }
.cglist { display:grid; grid-template-columns:5fr 7fr; gap:clamp(28px,6vw,80px); align-items:start; }
.card-clinic { background:#fff; border-radius:var(--r); padding:28px 28px 16px; border:1px solid var(--line); }
.carriers { display:flex; flex-wrap:wrap; gap:10px; list-style:none; padding:0; margin:22px 0 0; }
.files { list-style:none; padding:0; margin:28px 0 0; display:grid; gap:12px; max-width:760px; }
.files a { display:flex; justify-content:space-between; gap:20px; padding:18px 22px; background:#fff; border:1px solid var(--line); border-radius:var(--r); text-decoration:none; font-weight:600; color:var(--ink); }
.files a::after { content:'PDF \2193'; font-weight:700; font-size:14px; letter-spacing:.08em; color:var(--blue); flex:none; }
.files a:hover { border-color:var(--blue); }
.ws-list { display:grid; gap:16px; margin-top:24px; }
.ws { display:flex; justify-content:space-between; gap:24px; align-items:center; background:#fff; border-radius:var(--r); border:1px solid var(--line); padding:22px 24px; }
.ws h2,.ws h3 { margin:0 0 .2em; font-size:clamp(20px,1.8vw,24px); line-height:1.2; } .ws p { margin:0 0 .3em; color:var(--mute); }
.ws-empty { font-size:20px; max-width:56ch; }
.rel { list-style:none; margin:20px 0 0; padding:0; display:flex; flex-wrap:wrap; gap:10px; }
.rel a { display:inline-block; padding:9px 16px; border:1px solid #bfd3e6; background:#fff; border-radius:99px; text-decoration:none; font-weight:500; } .rel a:hover { border-color:var(--blue); }
.sec--tight { padding:46px 0; }
.sec--tight h2 { font-size:clamp(26px,3vw,36px); }
.clist { list-style:none; margin:26px 0 0; padding:0; display:grid; grid-template-columns:repeat(3,1fr); gap:0 30px; }
.clist li { border-top:1px solid var(--line); padding:12px 0 10px; } .clist a { display:block; font:600 20px/1.2 var(--disp); text-decoration:none; } .clist a::after { content:' \2192'; color:var(--teal-d); } .clist .gnote { display:block; padding:3px 0 6px; font-size:15.5px; }
.cgroup { margin-top:44px; } .cgroup h3, .cgroup h2 { font-size:clamp(26px,3vw,36px); } .gnote { color:var(--mute); margin:0; }

/* ---------- footer ---------- */
.legal { margin-left:22px; } .legal a { margin-right:18px; }
.copy { margin:46px auto 0; padding:22px 0 28px; border-top:1px solid #cddfee; font-size:14.5px; color:var(--mute); }

/* ---------- responsive ---------- */
@media (max-width:1180px) {
  .mgrid { grid-template-columns:repeat(2,1fr); } .menu.wide { left:-60px; }
}
@media (max-width:960px) {
  body { padding-bottom:64px; }
  .burger { display:block; } .hd-cta { display:none; }
  .nav { display:none; position:absolute; top:100%; left:0; right:0; background:#fff; border-bottom:1px solid var(--line); max-height:calc(100vh - 72px); overflow:auto; }
  .nav.open { display:block; } .nav > ul { flex-direction:column; gap:0; padding:8px 20px 20px; justify-content:flex-start; }
  .has-menu { flex-wrap:wrap; border-bottom:1px solid var(--line); } .nav .top { padding:16px 0; font-size:19px; flex:1; }
  .tg { display:block; width:48px; height:48px; background:none; border:0; position:relative; cursor:pointer; }
  .tg::before { content:'+'; color:var(--blue); font:600 30px/48px var(--disp); } .has-menu.open .tg::before { content:'\2013'; }
  .has-menu:hover > .menu { display:none; } .has-menu.open > .menu { display:block; }
  .menu,.menu.wide { position:static; width:100%; min-width:0; box-shadow:none; border:0; padding:4px 0 14px 14px; } .mgrid { grid-template-columns:1fr; gap:14px; }
  .hero-grid,.splithead,.twocol,.cglist { grid-template-columns:1fr; } .sh-l { position:static; }
  .cards.c3,.cards.c4,.rev { grid-template-columns:1fr 1fr; } .clist { grid-template-columns:1fr 1fr; } .ft-in { grid-template-columns:1fr; gap:34px; }
  .pcard { grid-template-columns:150px 1fr; } .pimg img { width:150px; } .pimg .ini { width:150px; height:170px; font-size:44px; }
}
@media (max-width:620px) {
  body { font-size:17px; } .cards.c2,.cards.c3,.cards.c4,.rev,.clist { grid-template-columns:1fr; }
  .btn { font-size:16.5px; padding:14px 20px; } .acts .btn { flex:1 1 auto; text-align:center; }
  .pcard { grid-template-columns:1fr; } .pimg img { width:min(240px,70%); } .by-in { align-items:flex-start; } .by img,.by .ini { width:64px; height:72px; }
  .ws { flex-direction:column; align-items:flex-start; } .ft-links { grid-template-columns:1fr 1fr; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }

/* featured problems on the home page: patient wording, one real sentence from the condition page, one link */
.probs { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr)); gap:20px; margin-top:34px; }
.prob { display:block; text-decoration:none; color:var(--ink); background:#fff; border:1px solid var(--line); border-radius:var(--r); padding:24px 24px 22px; transition:border-color .15s,transform .15s; }
.prob:hover { border-color:var(--blue); color:var(--ink); transform:translateY(-2px); }
.prob h2,.prob h3 { font-size:25px; margin:0 0 .35em; }
.prob p { margin:0 0 .8em; color:var(--mute); font-size:16.5px; line-height:1.5; }
.prob span { font-weight:600; font-size:15.5px; color:var(--blue); }
.prob span::after { content:' →'; }
.more { margin:30px 0 0; }

/* pages carried over from the old site: blog, sections, pictures, video */
.prose img { max-width:min(100%,560px); height:auto; margin:14px 0; border-radius:var(--r); }
.prose figure { margin:18px 0; }
.prose table { border-collapse:collapse; margin:16px 0; width:100%; display:block; overflow-x:auto; }
.prose td,.prose th { border:1px solid var(--line); padding:8px 12px; text-align:left; vertical-align:top; }
.prose h2 { font-size:clamp(26px,3vw,36px); margin-top:1.4em; }
.prose h3 { font-size:clamp(20px,2.2vw,26px); margin-top:1.2em; }
.prose h4 { font:600 clamp(18px,1.8vw,21px)/1.25 var(--disp); margin:1.5em 0 .4em; }
.prose.post { max-width:46em; }
.postmeta { color:var(--mute); font-weight:600; font-size:14.5px; margin:0 0 1em; }
.backlink { margin-top:2em; }
.post-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr)); gap:22px; }
.post-card { display:block; text-decoration:none; color:var(--ink); background:#fff; border:1px solid var(--line); border-radius:var(--r); padding:22px; }
.post-card:hover { border-color:var(--blue); color:var(--ink); }
.post-card time { display:block; font-weight:600; font-size:14px; color:var(--mute); margin-bottom:6px; }
.post-card h2,.post-card h3 { font-size:21px; margin:0 0 .4em; }
.post-card p { margin:0 0 .7em; color:var(--mute); font-size:16px; line-height:1.5; }
.post-card img { display:block; width:100%; aspect-ratio:16/9; object-fit:cover; border-radius:inherit; margin:0 0 14px; }
.post-card span { font-weight:600; font-size:15.5px; color:var(--blue); }
.post-card span:not(.pc-date)::after { content:' →'; }
.media { display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center; }
.media.flip .mimg { order:-1; }
.mimg figure,.gallery figure,.post-feature { margin:0; }
.mimg img,.gallery img,.post-feature img { display:block; width:100%; height:auto; max-height:520px; object-fit:cover; border-radius:var(--r); }
.gallery { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr)); gap:16px; margin-top:30px; }
.gallery img { aspect-ratio:4/3; max-height:none; }
.post-article { max-width:46em; margin:0 auto; }
.post-article .lede { font-size:21px; margin:0 0 1.2em; }
.post-feature { margin:0 0 1.6em; } .post-feature img { max-height:460px; }
.video { position:relative; aspect-ratio:16/9; width:100%; background:#000; border-radius:var(--r); overflow:hidden; }
.video iframe { position:absolute; inset:0; width:100%; height:100%; border:0; }
.videos { display:grid; gap:22px; margin:24px 0; }
.nopes p { padding:10px 0; border-bottom:1px solid var(--line); }
@media (max-width:1020px) { .media { grid-template-columns:1fr; gap:28px; } .media.flip .mimg { order:0; } }

/* nothing wider than the column on small screens */
.prose iframe,.prose pre { max-width:100%; }

/* links inside running text are underlined (WCAG 1.4.1: not told apart by colour alone) */
.prose a,.lede a,.card p a,.stat a,.flag a,.sh-r a,.checks a,.acc a,.copy a,.ft p a,.crumbs a,.legal a,.legaltext a { text-decoration:underline; text-underline-offset:3px; }
/* buttons are never underlined, wherever they sit (the rule above is more specific than .btn) */
.prose a.btn,.lede a.btn,.card p a.btn,.stat a.btn,.flag a.btn,.sh-r a.btn,.checks a.btn,.acc a.btn,.copy a.btn,.ft p a.btn,.legal a.btn,.prose a.btn:hover,.lede a.btn:hover,.sh-r a.btn:hover,.acc a.btn:hover { text-decoration:none; }
.legaltext h2 { font-size:clamp(24px,2.6vw,30px); margin:1.6em 0 .5em; } .legaltext h3 { margin:1.3em 0 .4em; } .legaltext ol,.legaltext ul { padding-left:1.4em; } .legaltext li { margin:.4em 0; } .legaltext { max-width:78ch; }

/* contrast fixes from the review */
.sec--dark .card-clinic a { color:var(--blue); }

/* the clinic card in a dark band is a white card: its text is dark */
.sec--dark .card-clinic, .sec--dark .card-clinic h2, .sec--dark .card-clinic h3 { color:var(--ink); }
/* long web addresses and credits wrap instead of stretching the page */
.prose, .prose a, .prose p, .prose li, .credit, .lede a { overflow-wrap:anywhere; }
/* a comfortable line length in the dark bands */
.bandtxt p { max-width:58ch; }

/* ---------- header: the portal logo is 170px tall and stacked, so it takes the left column; phones and the button sit above the menu ---------- */
.hd { position:relative; z-index:40; background:#fff; border-bottom:1px solid var(--line); }
.hd-in { display:grid; grid-template-columns:auto 1fr; grid-template-rows:1fr auto; column-gap:34px; align-items:center; padding:12px 0; }
.logo { grid-area:1 / 1 / 3 / 2; display:block; text-decoration:none; }
.logo img { width:334px; height:170px; object-fit:contain; }
.hd-cta { grid-area:1 / 2; justify-self:end; align-self:end; display:flex; align-items:center; gap:22px; padding-bottom:8px; }
.hd-phones { display:flex; gap:22px; }
.hd-phone { font:700 17px/1.15 var(--disp); text-decoration:none; white-space:nowrap; color:var(--ink); display:block; }
.hd-phone:hover { color:var(--blue); text-decoration:underline; }
.hp-town { display:block; font:600 13.5px/1.2 var(--disp); color:var(--mute); letter-spacing:.01em; }
.hd .btn { font-size:16.5px; padding:14px 22px; }
.nav { grid-area:2 / 2; align-self:start; position:relative; flex:none; }
.nav > ul { justify-content:flex-end; }
.nav .top { padding:16px 14px 18px; }
.has-menu.wide { position:static; }
.menu.wide { left:auto; right:0; top:100%; }
.menu { top:calc(100% - 4px); }

/* ---------- home hero: a solid navy panel beside one real group photo, the proof band directly under the buttons ---------- */
.hero { background:var(--warm); }
.hero-grid { display:grid; grid-template-columns:8fr 5fr; gap:22px; align-items:stretch; padding:22px 0 clamp(36px,5vw,56px); }
.hero-t { background:var(--navy); color:#fff; border-radius:var(--r); padding:clamp(24px,2.6vw,38px) clamp(24px,3vw,44px); display:flex; flex-direction:column; justify-content:center; }
.hero-t h1 { color:#fff; font-size:clamp(34px,3.6vw,52px); max-width:20ch; }
.hero .tag { align-self:flex-start; font:600 15.5px/1 var(--disp); color:#fff; background:rgba(255,255,255,.14); padding:9px 14px; border-radius:99px; margin:0 0 20px; }
.hero .lead { font-size:clamp(17px,1.4vw,19px); line-height:1.5; color:#e3eef8; max-width:60ch; margin:0 0 20px; }
.hero-t .acts .btn { padding:13px 18px; font-size:16px; }
.hero-t .acts { gap:10px; margin:0; }
.hero-t .tag { margin-bottom:14px; }
.hero-t .btn { background:var(--teal); color:#071a2e; }
.hero-t .btn:hover { background:#fff; color:#071a2e; }
.hero-t .btn--line,.hero-t .btn--ghost { background:transparent; color:#fff; box-shadow:inset 0 0 0 2px #fff; }
.hero-t .btn--line:hover,.hero-t .btn--ghost:hover { background:#fff; color:#071a2e; box-shadow:none; }
.hero-p { margin:0; min-height:420px; position:relative; }
.hero-p img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 22%; border-radius:var(--r); }
.proof { display:grid; grid-template-columns:1fr 1fr; gap:14px 26px; margin-top:24px; padding-top:20px; border-top:1px solid rgba(255,255,255,.28); }
.stat { font-size:16px; line-height:1.4; color:#d6e6f4; display:block; }
.stat b { display:block; font-weight:700; font-size:19px; line-height:1.2; color:#fff; margin-bottom:3px; }
.stat a { color:#bfe6fa; }
.stat--badge { display:flex; gap:14px; align-items:center; }
.stat--badge img { width:48px; height:auto; flex:none; }
.stat--badge span { display:block; }
.stat--badge b { font-size:19px; }

/* ---------- clinics in the closing band and on the location pages ---------- */
.cl-head { max-width:760px; margin-bottom:34px; }
.cl-cards { display:grid; grid-template-columns:1fr 1fr; gap:22px; align-items:start; }
.card-clinic { background:#fff; border-radius:var(--r); padding:28px 28px 18px; border:1px solid var(--line); color:var(--ink); }
.card-clinic .clinic h3,.card-clinic .clinic h2 { font-size:26px; }
.card-clinic h3 a { color:var(--ink); }
.cc-rev { margin:-4px 0 12px; font-weight:600; }
.mimg img { object-position:50% 20%; }
.rev--4 { grid-template-columns:repeat(2,1fr); }

/* ---------- footer: the one other dark area, with the reversed logo ---------- */
.ft { background:var(--navy-d); color:#e6eef7; padding:56px 0 0; font-size:16px; }
.ft-in { display:grid; grid-template-columns:4fr 5fr 3fr; gap:44px; }
.ft a { color:#fff; } .ft a:hover { color:#bfe6fa; }
.ft h3,.ft h2 { font-size:22px; color:#fff; } .ft .clinic p { margin:0 0 10px; }
.ft .clinic h2 a { text-decoration:none; }
.ft .mh { color:#8fd6f5; }
.ft-clinics { display:grid; grid-template-columns:1fr 1fr; gap:26px; align-content:start; }
.ft-links { display:grid; grid-template-columns:1fr; gap:22px; align-content:start; } .ft-links ul { list-style:none; padding:0; margin:0; } .ft-links li { padding:3px 0; }
.ft-brand img { display:block; width:248px; max-width:100%; height:auto; margin-bottom:16px; }
.ft .btn { background:var(--teal); color:#071a2e; text-decoration:none; } .ft .btn:hover { background:#fff; color:#071a2e; }
.copy { border-top-color:rgba(255,255,255,.22); color:#c9d9ea; }
.copy a { color:#fff; }
.soc { display:flex; gap:10px; margin:20px 0 0; }
.callbar { display:none; }

@media (max-width:1100px) {
  .hd-phones { display:none; }
  .ft-in { grid-template-columns:1fr 1fr; } .ft-brand { grid-column:1 / -1; }
}
@media (max-width:960px) {
  .hd-in { display:flex; min-height:0; padding:10px 0; }
  .logo img { width:236px; height:120px; }
  .hero-grid { grid-template-columns:1fr; } .hero-p { min-height:0; aspect-ratio:4/3; }
  .cl-cards { grid-template-columns:1fr; } .ft-in { grid-template-columns:1fr; gap:34px; } .ft-clinics { grid-template-columns:1fr; }
  .nav { position:absolute; } .menu.wide { right:auto; }
  .callbar { display:flex; position:fixed; left:0; right:0; bottom:0; z-index:45; background:#fff; border-top:1px solid var(--line); gap:6px; padding:8px; }
  .callbar a { flex:1; text-align:center; padding:8px 4px; font:700 15px/1.15 var(--disp); text-decoration:none; color:var(--blue); border-radius:10px; box-shadow:inset 0 0 0 2px var(--blue); }
  .callbar a small { display:block; font:600 12.5px/1.2 var(--disp); color:var(--mute); }
  .callbar .cb-main { background:var(--blue); color:#fff; flex:1.2; box-shadow:none; display:flex; align-items:center; justify-content:center; }
  body { padding-bottom:70px; }
}
@media (max-width:620px) {
  .logo img { width:236px; height:120px; }
  .proof { grid-template-columns:1fr; } .hero .tag { white-space:normal; }
  .rev--4 { grid-template-columns:1fr; }
}
.nav .top{text-decoration:none}.hero-p img{object-position:50% 15%}
@media (max-width:960px){.hd-cta{display:none}.burger{margin-left:auto}.nav{grid-area:auto}}
.sec--dark .card ul,.sec--dark .card li{color:#d6e6f4}

/* library articles: linked treatment list, goals checklist, illustration cards, separate disclaimer */
.linklist { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:12px 20px; }
.linklist li { margin:0; }
.linklist a { display:flex; justify-content:space-between; align-items:center; gap:16px; padding:15px 18px; background:#fff; border:1px solid var(--line); border-radius:var(--r); font:600 18px/1.25 var(--disp); color:var(--blue); text-decoration:none; }
.linklist a::after { content:'\2192'; flex:none; color:var(--blue); }
.linklist a:hover { border-color:var(--blue); }
.linklist--ext a::after { content:'\2197'; }
.goals { list-style:none; margin:0; padding:0; columns:2; column-gap:40px; }
.goals li { break-inside:avoid; position:relative; padding:7px 0 7px 32px; font-size:18px; }
.goals li::before { content:''; position:absolute; left:2px; top:13px; width:16px; height:9px; border-left:3px solid var(--blue); border-bottom:3px solid var(--blue); transform:rotate(-45deg) scale(.9); }
.post-card--illus img { aspect-ratio:16/10; object-fit:contain; background:#fff; border-bottom:1px solid var(--line); border-radius:calc(var(--r) - 4px); padding:8px; box-sizing:border-box; }
.disclaimer { max-width:78ch; } .disclaimer h2 { font-size:clamp(20px,2vw,24px); } .disclaimer p { font-size:15.5px; color:var(--mute); }
@media (max-width:640px) { .goals { columns:1; } .linklist { grid-template-columns:1fr; } }
.pic--illus img { object-fit:contain; background:#fff; border-radius:var(--r); max-height:520px; width:100%; height:auto; }

/* readable line length: running text stays near 70 characters wide */
.prose p,.prose li,.sec .wrap > p,.sh-r p,.sh-r li,.checks li,.acc p,.acc li,.twocol p,.twocol li,.flag p,.flag li,.media p,.media li,.lede { max-width:70ch; }

/* awards */
.aw { margin:0 0 28px; } .aw h3 { margin:0 0 .15em; } .aw p { margin:0 0 12px; color:var(--mute); }
.aw-row { list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:14px; align-items:center; } .aw-row li { margin:0; } .aw-row img { display:block; height:96px; width:auto; }
.aw-chamber { margin:8px 0 0; } .aw-chamber img { height:54px; width:auto; }

.soc { display:flex; flex-wrap:wrap; gap:8px 18px; margin:14px 0 0; } .soc a { color:#fff; font-weight:600; font-size:15px; text-decoration:underline; text-underline-offset:3px; } .soc svg { display:inline-block; }

/* patients' own testimonials */
.quotes { columns:2; column-gap:24px; margin-top:24px; } .q { break-inside:avoid; margin:0 0 20px; background:#fff; border:1px solid var(--line); border-radius:var(--r); padding:22px 24px; }
.q blockquote { margin:0; } .q p { margin:0; font-size:17px; line-height:1.55; } .q figcaption { margin-top:12px; font-weight:700; font-size:15px; color:var(--mute); }
@media (max-width:760px) { .quotes { columns:1; } }

/* directory of other clinics, newsletter cards */
.dirlist { list-style:none; margin:0 0 36px; padding:0; display:grid; grid-template-columns:repeat(auto-fill,minmax(270px,1fr)); gap:14px; }
.dirlist li { background:#fff; border:1px solid var(--line); border-radius:var(--r); padding:16px 18px; display:flex; flex-direction:column; gap:3px; font-size:16px; line-height:1.4; margin:0; }
.dirlist b { font:700 18px/1.25 var(--disp); } .dirlist b a { color:var(--blue); }
.dirlist span { color:var(--mute); } .dir-tel { font-weight:600; margin-top:4px; }
h2[id] { scroll-margin-top:24px; }
.post-card .pc-date { display:block; font-weight:600; font-size:14px; color:var(--mute); margin-bottom:6px; }

.media--top { align-items:start; } .media--top .mimg { position:sticky; top:24px; }
@media (max-width:1020px) { .media--top .mimg { position:static; } }

/* videos on library pages */
.vid { margin:0; } .vid figcaption { margin-top:8px; font-weight:600; font-size:16px; color:var(--mute); }
@media (min-width:900px) { .videos:has(.vid + .vid) { grid-template-columns:repeat(2,1fr); } }
.pic--solo { max-width:520px; margin:0; }

.soc a { display:inline-flex; align-items:center; gap:8px; min-height:24px; }
