/* Heights Physical Therapy: "Active Life". Warm paper ground, the logo's charcoal and olive with aspen gold on dark, Archivo (expanded) for display and body, 4px corners. */
:root { --ink:#22261f; --blue:#4a5a17; --blue-d:#38450f; --teal:#e0c24a; --teal-d:#4a5a17; --navy:#1e2a24; --warm:#f6f3ea; --mint:#eceedd; --white:#fff; --mute:#4b5047; --line:#d9d5c6; --r:4px; --wrap:1180px; }
*,*::before,*::after { box-sizing:border-box; }
html { scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body { margin:0; font:400 17px/1.65 'Archivo',system-ui,sans-serif; color:var(--ink); background:var(--white); }
img { max-width:100%; height:auto; display:block; }
a { color:var(--blue); text-decoration-color:rgba(74,90,23,.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:'Archivo',system-ui,sans-serif; font-stretch:118%; }
h1,h2 { font-weight:800; line-height:1.08; letter-spacing:-.012em; margin:0 0 .5em; text-wrap:balance; }
h1 { font-size:clamp(34px,4.4vw,56px); }
h2 { font-size:clamp(28px,3.4vw,44px); }
h3 { font-weight:600; 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(--teal); outline-offset:2px; border-radius:4px; }

/* ---------- 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:4px; 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:#1b2217; }
.sec--dark .btn:hover { background:#fff; color:#1b2217; }
.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:#1b2217; box-shadow:none; }
.acts { display:flex; flex-wrap:wrap; gap:12px 14px; align-items:center; margin:26px 0 0; }

/* ---------- header and nav ---------- */
.hd { position:sticky; top:0; z-index:40; background:rgba(255,255,255,.97); border-bottom:1px solid var(--line); backdrop-filter:saturate(1.4) blur(6px); }
.hd-in { display:flex; align-items:center; gap:22px; min-height:128px; padding:10px 0; transition:min-height .2s; }
.logo { display:flex; align-items:center; gap:14px; flex:none; text-decoration:none; color:var(--ink); }
.logo img { width:240px; height:124px; object-fit:contain; transition:width .2s,height .2s; }
.hd.sm .hd-in { min-height:84px; } .hd.sm .logo img { width:150px; height:78px; }
.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 { font:600 16.5px/1 'Archivo',sans-serif; color:var(--ink); text-decoration:none; padding:36px 12px 34px; display:block; white-space:nowrap; }
.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(30,42,36,.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; }
.hd-cta { display:flex; align-items:center; gap:16px; margin-left:auto; flex:none; }
.hd-phone { font:600 19px/1 'Archivo',sans-serif; text-decoration:none; white-space:nowrap; color:var(--ink); }
.hd-phone:hover { color:var(--blue); }
.hd .btn { font-size:16px; padding:13px 20px; }
.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:#efdc8a; }
.sec--warn { background:var(--warm); }
.lede { font-size:19.5px; color:var(--mute); max-width:62ch; }
.sec--dark .lede { color:#d5dac6; }
.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:#3d4a2c; }
.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:#d7dcc8; }
.sec--dark .card { background:#2a3820; border-color:#3d4a2c; }
.card h3 { margin-bottom:.35em; } .card h3 a { text-decoration:none; color:var(--blue); } .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:#d5dac6; }
.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 #d7dcc8; }
.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 'Archivo',sans-serif; 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 'Archivo',sans-serif; 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:54ch; }

.flag { background:#fff; border:1px solid var(--line); border-left:8px solid #b3401a; border-radius:var(--r); padding:26px clamp(20px,3vw,36px); max-width:900px; }
.flag h2 { font-size:clamp(26px,3vw,34px); } .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='%2312204a' 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:#3d4a2c; }

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

/* ---------- hero and page heroes ---------- */
.hero { background:var(--warm); overflow:hidden; }
.hero-grid { display:grid; grid-template-columns:7fr 4fr; gap:clamp(28px,5vw,72px); align-items:center; padding:clamp(40px,6vw,76px) 0 clamp(40px,6vw,72px); }
.hero .tag { display:inline-block; font:600 15.5px/1 'Archivo',sans-serif; color:var(--teal-d); background:var(--mint); padding:9px 14px; border-radius:99px; margin:0 0 18px; white-space:nowrap; }
.hero .lead { font-size:clamp(18px,1.7vw,21px); color:var(--mute); max-width:54ch; }
.hero-p { position:relative; margin:0; width:min(400px,100%); justify-self:end; }
.hp-bg { position:absolute; inset:26px -20px -20px 26px; background:var(--teal); border-radius:calc(var(--r) + 6px); z-index:0; }
.hero-p img { position:relative; z-index:1; width:100%; height:auto; aspect-ratio:400/450; object-fit:cover; border-radius:var(--r); }
.hero-p figcaption { position:relative; z-index:1; background:#fff; border-radius:4px; padding:12px 16px; margin:-34px 14px 0; box-shadow:0 10px 28px rgba(30,42,36,.18); font-size:15px; line-height:1.35; color:var(--mute); }
.hero-p figcaption b { display:block; font:700 18px/1.2 'Archivo',sans-serif; color:var(--ink); }
.proof { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:30px; max-width:640px; }
.stat { background:#fff; border:1px solid var(--line); border-radius:4px; padding:14px 16px; font-size:15px; line-height:1.4; color:var(--mute); }
.stat b { display:block; font-weight:700; font-size:21px; line-height:1.15; color:var(--ink); margin-bottom:3px; }
.stat--q { grid-column:1 / -1; background:var(--mint); border-color:#d7dcc8; color:var(--ink); font-size:16px; }
.stat--q i { display:block; font-style:normal; font-weight:600; margin-top:6px; color:var(--mute); font-size:14.5px; }
.stat a { color:var(--blue); }
.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:4px; }
.ini { width:84px; height:94px; flex:none; display:grid; place-items:center; background:var(--mint); color:var(--teal-d); font:700 30px 'Archivo',sans-serif; border-radius:4px; }
.by-k { font:600 13.5px/1 'Archivo',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,38px); font-weight:600; margin-bottom:.1em; }
.role { font:600 18px/1.2 'Archivo',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:4px; 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 #c9cfb6; 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:#7b8a4a; 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:#d7dcc8; }
.rv .tagc { display:inline-block; align-self:flex-start; font:600 13.5px/1 'Archivo',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:4px; 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 h3 { margin:0 0 .2em; } .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 #c9cfb6; 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(24px,2.6vw,32px); }
.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 'Archivo',sans-serif; 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:28px; } .gnote { color:var(--mute); margin:0; }

/* ---------- footer ---------- */
.ft { background:var(--mint); color:var(--ink); border-top:1px solid #d7dcc8; padding:56px 0 0; font-size:16px; }
.ft-in { display:grid; grid-template-columns:4fr 4fr 4fr; gap:48px; } .ft a { color:var(--ink); }
.ft a:hover { color:var(--blue); }
.ft h3, .ft h2 { font-size:22px; } .ft .clinic p { margin:0 0 10px; }
.ft .mh { color:var(--teal-d); }
.ft-links { display:grid; grid-template-columns:1fr 1fr; gap:24px; } .ft-links ul { list-style:none; padding:0; margin:0; } .ft-links li { padding:3px 0; }
.soc { display:flex; gap:10px; margin:20px 0 0; }
.ft .soc a { display:flex; align-items:center; justify-content:center; width:44px; height:44px; color:var(--blue); background:#fff; border-radius:50%; box-shadow:inset 0 0 0 1px #c9cfb6; }
.ft .soc a:hover { background:var(--blue); color:#fff; }
.ft-brand img { display:block; width:248px; max-width:100%; height:auto; margin-bottom:16px; }
.legal { margin-left:22px; } .legal a { margin-right:18px; }
.copy { margin:46px auto 0; padding:22px 0 28px; border-top:1px solid #d7dcc8; font-size:14.5px; color:var(--mute); }
.callbar { display:none; }

/* ---------- responsive ---------- */
@media (max-width:1180px) {
  .nav .top { padding:36px 8px 34px; font-size:16px; } .hd-phone { display:none; } .hd-in { gap:12px; }
  .mgrid { grid-template-columns:repeat(2,1fr); } .menu.wide { left:-60px; }
}
@media (max-width:960px) {
  body { padding-bottom:64px; }
  .hd-in { min-height:96px; } .logo img { width:160px; height:83px; } .hd.sm .hd-in { min-height:68px; } .hd.sm .logo img { width:120px; height:62px; }
  .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 'Archivo',sans-serif; } .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; }
  .hero-p { justify-self:start; width:min(300px,82%); margin-right:26px; }
  .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; }
  .callbar { display:flex; position:fixed; left:0; right:0; bottom:0; z-index:45; background:#fff; border-top:1px solid var(--line); gap:8px; padding:8px; }
  .callbar a { flex:1; text-align:center; padding:13px 6px; font:600 17px/1 'Archivo',sans-serif; text-decoration:none; color:var(--blue); border-radius:10px; box-shadow:inset 0 0 0 2px var(--blue); white-space:nowrap; }
  .callbar .cb-main { background:var(--blue); color:#fff; flex:2; box-shadow:none; }
}
@media (max-width:620px) {
  body { font-size:16.5px; } .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; }
  .proof { grid-template-columns:1fr; } .hero .tag { white-space:normal; }
  .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 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:4px; }
.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(24px,2.8vw,34px); 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 'Archivo',sans-serif; 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::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:4px; 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 { text-decoration:underline; text-underline-offset:3px; }

/* contrast fixes from the review */
.ft .btn,.ft .btn:hover { color:#fff; text-decoration:none; }
.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; }

/* ---------- Active Life: full-bleed place hero ---------- */
.logo img { object-fit:cover; object-position:50% 50%; }
.hero--place { position:relative; min-height:min(700px,calc(100vh - 180px)); display:flex; align-items:flex-end; background:#1e2a24; color:#fff; padding:60px 0 0; overflow:hidden; }
.hero--place .hero-bg { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:70% 60%; }
.hero--place .wrap { position:relative; z-index:1; width:min(var(--wrap),100% - 40px); }
.hero--place .hero-t { background:#1e2a24; color:#fff; max-width:700px; padding:clamp(22px,2.6vw,34px); margin-bottom:0; border-top:6px solid var(--teal); }
.hero--place h1 { color:#fff; font-size:clamp(38px,5vw,64px); line-height:1; max-width:none; }
.hero--place .tag { background:transparent; color:var(--teal); padding:0; border-radius:0; font-weight:700; letter-spacing:.02em; white-space:normal; margin:0 0 14px; }
.hero--place .lead { color:#e3e6d6; max-width:56ch; }
.hero--place .btn { background:var(--teal); color:#1b2217; }
.hero--place .btn:hover { background:#fff; color:#1b2217; }
.hero--place .btn--line { background:transparent; color:#fff; box-shadow:inset 0 0 0 2px #fff; }
.hero--place .btn--line:hover { background:#fff; color:#1b2217; }
.hero--place .proof { grid-template-columns:1fr 1fr; max-width:none; }
.hero--place .stat { background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.22); color:#d7dcc8; }
.hero--place .stat b { color:#fff; }
.hero--place .stat a { color:var(--teal); }
.hero--place .stat--q { background:rgba(255,255,255,.08); color:#fff; }
.hero--place .stat--q i { color:#d7dcc8; }
@media (max-width:700px) { .hero--place { padding-top:300px; } .hero--place .hero-bg { height:300px; bottom:auto; object-position:78% 62%; } .hero--place .proof { grid-template-columns:1fr; } .hero--place .hero-t { margin-inline:-20px; max-width:none; width:calc(100% + 40px); } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }

.util { background:#1e2a24; color:#fff; } .util-in { display:flex; justify-content:flex-end; min-height:34px; align-items:center; } .util a { color:#fff; font:600 14px/1 'Archivo',sans-serif; text-decoration:underline; text-underline-offset:3px; padding:8px 0; }

/* detector: no thick one-sided card border, readable line lengths */
.flag { border:2px solid #b3401a; border-radius:4px; }
.sec p, .sec li, .by-b, .bio, .acc details > div { max-width:54ch; }
.card p, .prob p, .rv blockquote, .stat span { max-width:none; }

.ft-brand img, .logo img { mix-blend-mode:multiply; }

.partners { margin-top:28px; }
.prow { display:grid; grid-template-columns:200px 1fr; gap:36px; align-items:start; padding:28px 0; border-top:1px solid var(--line); }
.prow:first-child { border-top:0; padding-top:8px; }
.plogo { display:flex; align-items:center; justify-content:center; background:#fff; border:1px solid var(--line); border-radius:var(--r); padding:18px; min-height:120px; }
.plogo img { max-width:100%; max-height:110px; width:auto; height:auto; object-fit:contain; }
.ptxt2 h3 { margin:0 0 .3em; } .ptxt2 p { margin:0 0 .8em; max-width:70ch; }
@media (max-width:700px) { .prow { grid-template-columns:1fr; gap:16px; } .plogo { max-width:240px; } }

.ico { display:inline-flex; align-items:center; justify-content:center; width:52px; height:52px; border-radius:50%; background:color-mix(in srgb, var(--blue) 12%, #fff); color:var(--blue); margin-bottom:14px; }
.icards .card h3 { margin-top:0; }
.sec--dark .acts { margin-top:22px; }
