/* San Tan Physical Therapy: "Clinical Precision" */
:root { --ink:#171717; --mute:#495057; --line:#dee2e6; --brand:#CA0204; --brand-d:#A10003; --accent:#0757A1; --on-accent:#ffffff; --dark:#171717; --light:#F5F5F5; --tint:#F7F9FC; --link-dark:#ffffff; --r:5px; --btn-r:5px; --img-r:5px; --btn-case:none; --disp:'Manrope',system-ui,-apple-system,'Segoe UI',sans-serif; --body:'IBM Plex Sans',system-ui,-apple-system,'Segoe UI',sans-serif; --disp-w:700; --disp-case:none; --h1:64px; --h2:40px; --body-px:16px; --space:clamp(56px,8vw,88px); }
*,*::before,*::after { box-sizing:border-box; }
html { scroll-padding-top:110px; scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body { margin:0; font:400 var(--body-px)/1.65 var(--body); color:var(--ink); background:var(--light); }
img { max-width:100%; height:auto; display:block; }
a { color:var(--brand); text-decoration-color:color-mix(in srgb,var(--brand) 40%,transparent); text-underline-offset:3px; text-decoration-thickness:2px; }
a:hover { color:var(--brand-d); text-decoration-color:currentColor; }
h1,h2,h3,.btn,.mh,.by-n { font-family:var(--disp); }
h1,h2,h3 { font-weight:var(--disp-w); text-transform:var(--disp-case); text-wrap:balance; }
h1,h2 { line-height:1.12; letter-spacing:-.012em; margin:0 0 .5em; }
h1 { font-size:clamp(34px,4.6vw,var(--h1)); }
h2 { font-size:clamp(28px,3.4vw,var(--h2)); }
h3 { font-size:clamp(20px,1.8vw,24px); line-height:1.2; margin:0 0 .4em; }
p { margin:0 0 1em; text-wrap:pretty; }
.wrap { width:min(1180px,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(--brand); color:#fff; padding:10px 16px; border-radius:8px; font-weight:700; }
:focus-visible { outline:3px solid var(--brand); outline-offset:2px; border-radius:4px; }
.sec--dark :focus-visible,.ft :focus-visible { outline-color:#fff; }

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

/* header and menus */
.util { background:var(--dark); color:#e8e8ee; font-size:14.5px; } .util .wrap { display:flex; gap:22px; justify-content:flex-end; padding:8px 0; } .util a { color:#e8e8ee; } .util a:hover { color:#fff; }
.hd { background:#fff; border-bottom:1px solid var(--line); position:sticky; top:0; z-index:40; }
.hd-in { display:flex; align-items:center; gap:22px; padding:10px 0; }
.logo { display:block; flex:none; } .logo-crop { display:block; width:190px; overflow:hidden; } .logo-crop img { width:100%; height:auto; }
.nav { flex:1; } .nav > ul { display:flex; gap:2px; list-style:none; margin:0; padding:0; justify-content:center; }
.has-menu, .nav > ul > li { position:relative; display:flex; align-items:center; }
.nav .top { padding:14px 12px; font-weight:600; font-size:16px; color:var(--ink); text-decoration:none; } .nav .top:hover { color:var(--brand); }
.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:240px; padding:20px 24px; box-shadow:0 22px 48px rgba(0,0,0,.14); }
.has-menu:hover > .menu,.has-menu:focus-within > .menu,.has-menu.open > .menu { display:block; }
.menu.wide { width:min(920px,92vw); left:-140px; } .menu.wide:has(.mgrid--2) { width:min(640px,92vw); left:-40px; }
.mgrid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px 30px; } .mgrid--1 { grid-template-columns:1fr; } .mgrid--2 { grid-template-columns:repeat(2,1fr); } .menu:not(.wide) { width:max-content; max-width:min(360px,92vw); }
.mh { font-weight:700; font-size:14px; letter-spacing:.1em; text-transform:uppercase; color:var(--brand); 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(--brand); 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; }
.hd-cta { display:flex; align-items:center; gap:16px; flex:none; } .hd-phones { display:flex; flex-direction:column; } .hd-phone { font-weight:700; color:var(--ink); text-decoration:none; white-space:nowrap; }

/* sections */
.sec { padding:var(--space) 0; }
.sec--tight { padding:36px 0; }
.sec--light { background:var(--light); } .sec--tint { background:var(--tint); }
.sec--dark { background:var(--dark); color:#fff; } .sec--dark h2,.sec--dark h3 { color:#fff; } .sec--dark a { color:var(--link-dark); }
.sec--warn { background:var(--light); }
.lede { font-size:19.5px; color:var(--mute); max-width:62ch; } .sec--dark .lede { color:rgba(255,255,255,.84); }
.prose { max-width:760px; } .prose ul { padding-left:1.2em; } .prose li { margin:0 0 .4em; }
.phero { background:var(--tint); padding:clamp(40px,6vw,72px) 0 clamp(36px,5vw,56px); } .phero h1 { max-width:20ch; } .phero .lead { font-size:20px; color:var(--mute); max-width:62ch; }
.crumbs { font-size:15px; color:var(--mute); margin:0 0 18px; } .crumbs a { color:var(--mute); } .crumbs span { margin:0 4px; }
.splithead { display:grid; grid-template-columns:1fr 1.4fr; gap:clamp(24px,5vw,64px); } .sh-r .row { padding:0 0 18px; margin:0 0 18px; border-bottom:1px solid var(--line); } .sec--dark .sh-r .row { border-color:rgba(255,255,255,.22); }
.cards { display:grid; gap:20px; margin-top:24px; } .c2 { grid-template-columns:repeat(2,1fr); } .c3 { grid-template-columns:repeat(3,1fr); } .c4 { grid-template-columns:repeat(4,1fr); }
.card { background:#fff; border:1px solid var(--line); border-radius:var(--r); padding:24px; } .sec--dark .card { background:rgba(255,255,255,.07); border-color:rgba(255,255,255,.22); } .card ul { padding-left:1.2em; margin:0; } .card h3 a { text-decoration:none; color:inherit; }
.steps { list-style:none; counter-reset:s; display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:18px; padding:0; margin:24px 0 0; }
.steps li { counter-increment:s; background:#fff; border-radius:var(--r); padding:22px 22px 18px; border:1px solid var(--line); } .steps li::before { content:counter(s); display:block; font:var(--disp-w) 28px/1 var(--disp); color:var(--brand); margin:0 0 10px; }
.acc details { border-bottom:1px solid var(--line); } .acc summary { cursor:pointer; padding:18px 4px; font-weight:600; font-size:18px; } .acc details > div { padding:0 4px 14px; max-width:70ch; }
.flag { background:#fff8f2; border:1px solid #e3bfae; border-radius:var(--r); padding:26px clamp(20px,3vw,36px); max-width:900px; } .fnote { font-size:15.5px; color:var(--mute); }
.twocol { display:grid; grid-template-columns:1fr 1.2fr; gap:clamp(24px,5vw,64px); align-items:start; }
.checks { list-style:none; margin:0; padding:0; } .checks li { padding:12px 0 12px 34px; border-bottom:1px solid var(--line); position:relative; } .checks li::before { content:"\2713"; position:absolute; left:4px; color:var(--brand); font-weight:700; } .sec--dark .checks li { border-color:rgba(255,255,255,.22); }
.media { display:grid; grid-template-columns:1.1fr 1fr; gap:clamp(24px,5vw,64px); align-items:center; } .media.flip .mimg { order:-1; } .ph { width:100%; border-radius:var(--img-r); object-fit:cover; }
.chip,.chips li { display:inline-block; padding:9px 16px; background:#fff; border:1px solid var(--line); border-radius:99px; font-weight:500; font-size:16.5px; line-height:1.25; } .chips { list-style:none; display:flex; flex-wrap:wrap; gap:10px; padding:0; margin:20px 0 0; }
.bandtxt { max-width:760px; } .bandtxt p { color:rgba(255,255,255,.88); }
.rel { list-style:none; display:flex; flex-wrap:wrap; gap:10px; padding:0; margin:12px 0 0; } .rel a { display:inline-block; padding:9px 16px; border:1px solid var(--line); background:#fff; border-radius:99px; text-decoration:none; font-weight:500; }

/* people */
.staff--card { display:grid; gap:28px; } .pcard { display:grid; grid-template-columns:240px 1fr; gap:28px; background:#fff; border:1px solid var(--line); border-radius:var(--r); padding:24px; } .pimg img,.pimg .ini { width:100%; aspect-ratio:4/5; object-fit:cover; border-radius:var(--img-r); }
.ini { display:grid; place-items:center; background:var(--tint); color:var(--brand); font:700 36px var(--disp); } .role { color:var(--mute); font-weight:600; margin:0 0 12px; } .bio { white-space:pre-line; }
.staff--strip { display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:20px; } .pstrip img,.pstrip .ini { width:100%; aspect-ratio:4/5; object-fit:cover; border-radius:var(--img-r); margin:0 0 10px; } .pstrip { position:relative; } .pstrip h3 { margin:0; font-size:19px; } .pstrip-link { color:inherit; text-decoration:none; } .pstrip-link::after { content:""; position:absolute; inset:0; } .pstrip:hover .pstrip-link,.pstrip-link:focus-visible { text-decoration:underline; color:var(--brand); } .pstrip:focus-within { outline:2px solid var(--brand); outline-offset:2px; border-radius:var(--img-r); }
.staff--chips { display:flex; flex-wrap:wrap; gap:10px; }
.by { background:#fff; border-bottom:1px solid var(--line); } .by-in { display:flex; gap:20px; align-items:center; width:min(1180px,100% - 40px); margin:0 auto; padding:22px 0; } .by-in img,.by-in .ini { width:80px; height:100px; object-fit:cover; border-radius:var(--img-r); flex:none; font-size:26px; }
.by-k { font-size:14px; letter-spacing:.08em; text-transform:uppercase; color:var(--mute); margin:0; } .by-n { font-size:20px; font-weight:700; margin:0; } .by-b { margin:6px 0 4px; color:var(--mute); max-width:70ch; } .by-l { margin:0; font-weight:600; }
.who { font-weight:600; }

/* clinics, workshops */
.clinic h2,.clinic h3 { font-size:22px; margin:0 0 10px; } .clinic a { text-decoration-thickness:1px; }
.hrs-t th { text-align:left; padding:3px 18px 3px 0; font-weight:600; } .hrs-t td { padding:3px 0; }
.locgrid { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:24px; }
.ws-list { display:grid; gap:16px; } .ws { display:flex; justify-content:space-between; gap:20px; align-items:center; background:#fff; border:1px solid var(--line); border-radius:var(--r); padding:20px 24px; } .ws h2 { font-size:22px; margin:0 0 4px; } .ws-empty { font-size:19px; }

/* home */
.hero { background:var(--dark); color:#fff; padding:clamp(56px,9vw,120px) 0 clamp(48px,7vw,88px); } .hero h1 { color:#fff; max-width:18ch; } .hero .lead { font-size:21px; color:rgba(255,255,255,.88); max-width:56ch; }
.hero .btn { background:var(--accent); color:var(--on-accent); } .hero .btn--ghost { background:transparent; color:#fff; box-shadow:inset 0 0 0 2px #fff; } .hero .btn--ghost:hover { background:#fff; color:var(--on-accent); }
.hero--split .wrap { display:grid; grid-template-columns:1.1fr 1fr; gap:clamp(24px,5vw,64px); align-items:center; } .hero--photo { background-size:cover; background-position:center; position:relative; } .hero--photo .wrap { position:relative; }
.hero--light { background:var(--tint); color:var(--ink); } .hero--light h1 { color:var(--ink); } .hero--light .lead { color:var(--mute); } .hero--light .btn { background:var(--brand); color:#fff; } .hero--light .btn--ghost { background:transparent; color:var(--brand); box-shadow:inset 0 0 0 2px currentColor; } .hero--light .btn--ghost:hover { background:var(--brand); color:#fff; }
.heroimg img { border-radius:var(--img-r); width:auto; max-width:100%; height:auto; max-height:540px; margin-inline:auto; }
.reviews { display:grid; grid-template-columns:repeat(auto-fit,minmax(330px,1fr)); gap:20px; } .rv blockquote { margin:0; } .rv .stars { margin:0 0 10px; } .stars { color:#c58b00; letter-spacing:3px; font-size:20px; line-height:1; margin:0 0 8px; } .sec--dark .stars { color:var(--accent); } .rating-line { display:flex; align-items:center; gap:12px; flex-wrap:wrap; font-size:19px; margin:0 0 22px; } .rating-line .stars { margin:0; font-size:24px; } .also { margin:34px 0 14px; font-size:20px; }
.rv { color:var(--ink); background:#fff; border:1px solid var(--line); border-radius:var(--r); padding:24px; margin:0; } .rv p { font-size:18px; } .rv cite { font-style:normal; font-weight:600; color:var(--mute); }
.cond-group { margin:0 0 28px; } .cond-group h3 { margin:0 0 10px; }
.ft { background:var(--dark); color:rgba(255,255,255,.86); padding:56px 0 0; border-top:6px solid var(--accent); } .ft a { color:#fff; } .ft h2,.ft h3,.ft .mh { color:#fff; } .ft-in { display:grid; grid-template-columns:1fr; gap:36px; }
.ft-brand { display:flex; flex-direction:column; align-items:flex-start; gap:18px; } .ft-brand p { margin:0; } .ft-brand .tag { font-size:18px; line-height:1.45; max-width:30ch; } .ft-brand .logo-crop { width:210px; filter:brightness(0) invert(1); } .ft-cta { margin:6px 0 0 !important; }
.ft .btn { background:var(--accent); color:var(--on-accent); } .soc { display:flex; gap:12px; } .soc a { color:#fff; display:inline-flex; align-items:center; justify-content:center; width:42px; height:42px; border:1.5px solid rgba(255,255,255,.6); border-radius:50%; transition:background .15s,color .15s; } .soc a:hover { background:#fff; color:var(--dark); } .ft--light .soc a { color:var(--ink); border-color:rgba(0,0,0,.35); } .ft--light .soc a:hover { background:var(--ink); color:#fff; }
.ft-grid { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1.5fr) minmax(0,1.25fr); gap:0; align-items:start; } .ft-grid > * { padding:0 40px; } .ft-grid > :first-child { padding-left:0; } .ft-grid > :last-child { padding-right:0; } .ft-grid > * + * { border-left:1px solid rgba(255,255,255,.18); }
.ft-clinics { display:grid; grid-template-columns:1fr; gap:30px; }
.ft-links { display:grid; grid-template-columns:1fr 1fr; gap:26px 28px; } .ft-links ul { list-style:none; margin:0; padding:0; } .ft-links li { margin:0 0 8px; } .ft-links a { text-decoration:none; } .ft-links a:hover { text-decoration:underline; }
.copy { margin:36px auto 0; padding:22px 0 28px; border-top:1px solid rgba(255,255,255,.2); font-size:14.5px; } .legal { float:right; display:flex; gap:18px; } .legal a { color:rgba(255,255,255,.86); }
.callbar { display:none; }

@media (max-width:980px) {
  .burger { display:block; } .hd-cta { display:none; } .util .wrap { justify-content:center; flex-wrap:wrap; gap:6px 18px; } .logo-crop { width:150px; }
  .nav { display:none; position:absolute; left:0; right:0; top:100%; background:var(--dark); padding:8px 20px 20px; max-height:80vh; overflow:auto; } .nav.open { display:block; }
  .nav > ul { flex-direction:column; align-items:stretch; } .has-menu { flex-wrap:wrap; border-bottom:1px solid rgba(255,255,255,.2); } .nav .top { color:#fff; flex:1; } .nav .top:hover { color:#fff; }
  .nav > ul > li:not(.has-menu) { display:flex; border-bottom:1px solid rgba(255,255,255,.2); } .tg { display:block; width:44px; height:44px; background:none; border:0; cursor:pointer; position:relative; } .tg::after { content:"+"; color:#fff; font-size:24px; } .has-menu.open .tg::after { content:"\2212"; }
  .menu,.menu.wide { position:static; width:100%; min-width:0; background:transparent; border:0; box-shadow:none; padding:0 0 12px; } .menu li a { color:#fff; } .menu .mh { color:var(--accent); } .mgrid { grid-template-columns:1fr; }
  .has-menu:hover > .menu { display:none; } .has-menu.open > .menu { display:block; }
  .splithead,.twocol,.media,.hero--split .wrap,.pcard { grid-template-columns:1fr; } .c3,.c4 { grid-template-columns:1fr 1fr; } .legal { float:none; margin-top:10px; }
  .callbar { display:flex; position:fixed; left:0; right:0; bottom:0; z-index:50; background:var(--dark); gap:8px; padding:8px; } .callbar a { flex:1; text-align:center; color:#fff; padding:10px 8px; font-weight:700; text-decoration:none; border-radius:var(--btn-r); box-shadow:inset 0 0 0 2px rgba(255,255,255,.4); } .callbar small { display:block; font-weight:400; opacity:.8; } .callbar .cb-main { background:var(--accent); color:var(--on-accent); box-shadow:none; flex:1.4; }
  body { padding-bottom:76px; } html { scroll-padding-bottom:90px; }
}
.cpanel { display:grid; grid-template-columns:minmax(300px,1fr) minmax(0,1.5fr); gap:32px; align-items:stretch; }
.cp-info { background:#fff; border:1px solid var(--line); border-radius:var(--r); padding:30px 34px; } .cp-info h2 { font-size:28px; margin:0 0 14px; }
.cp-list { margin:0; } .cp-list > div { display:grid; grid-template-columns:84px 1fr; gap:12px; padding:15px 0; border-top:1px solid var(--line); } .cp-list dt { font:700 13px/1.6 var(--body); letter-spacing:.08em; text-transform:uppercase; color:var(--mute); } .cp-list dd { margin:0; } .cp-phone { font:var(--disp-w) 24px/1.2 var(--disp); text-decoration:none; } .cp-dir { display:inline-block; margin-top:6px; font-weight:600; }
.cp-list .hrs-t th { padding-right:22px; } .cp-info .acts { margin-top:22px; }
.cp-map { margin:0; display:flex; flex-direction:column; } .cp-map img { width:100%; height:100%; min-height:380px; object-fit:cover; object-position:center; border-radius:var(--img-r); } .cp-map iframe { width:100%; height:100%; min-height:440px; border:0; border-radius:var(--img-r); background:var(--tint); }
.cp-map figcaption { font-size:14px; color:var(--mute); margin-top:10px; }
@media (max-width:900px) { .cp-map iframe { min-height:340px; } .cpanel { grid-template-columns:1fr; } .cp-map img { min-height:0; height:auto; } .cp-info { padding:24px 22px; } }
.fullmap { position:relative; background:var(--tint); } .fullmap > .ph { display:block; width:100%; height:560px; object-fit:cover; object-position:64% 50%; border-radius:0; }
.fm-over { position:absolute; inset:0; display:flex; align-items:center; pointer-events:none; } .fm-panel { pointer-events:auto; margin-left:max(20px,calc((100% - 1180px) / 2)); width:min(360px,calc(100% - 40px)); background:#fff; border-radius:var(--r); padding:26px 28px; box-shadow:0 18px 50px rgba(0,16,48,.25); }
.fm-panel h2 { font-size:28px; margin:0 0 6px; } .fm-c { padding:14px 0; border-top:1px solid var(--line); } .fm-c h3 { font-size:19px; margin:0 0 4px; } .fm-c h3 a { color:inherit; text-decoration:none; } .fm-c p { margin:0; line-height:1.55; } .fm-panel .acts { margin:16px 0 0; }
@media (max-width:900px) { .fullmap > .ph { height:300px; } .fm-over { position:static; display:block; } .fm-panel { margin:-56px 20px 0; position:relative; width:auto; } }
@media (max-width:980px) { .ft-grid { grid-template-columns:1fr 1fr; gap:36px 0; } .ft-grid > * { padding:0 28px; } .ft-grid > :first-child { padding-left:0; } .ft-grid > :nth-child(2) { padding-right:0; } .ft-grid > :nth-child(3) { grid-column:1 / -1; border-left:0; border-top:1px solid rgba(255,255,255,.18); padding:28px 0 0; } }
@media (max-width:640px) { .c2,.c3,.c4 { grid-template-columns:1fr; } .ft-grid { grid-template-columns:1fr; gap:30px; } .ft-grid > * { padding:0 !important; border-left:0 !important; } .ft-grid > * + * { border-top:1px solid rgba(255,255,255,.18); padding-top:28px !important; } .soc { margin-left:0 !important; } }

[data-f="phone"],[data-f="tel"] { white-space:nowrap; }
body { overflow-x:hidden; }

/* the proof bar's own section: under the tiles look it overlaps the hero */
.sec--proof-tiles { padding:1px 0 30px; background:transparent; position:relative; z-index:2; } .sec--proof-band { padding:36px 0; } .sec--proof-rule { padding:28px 0; }
/* structural looks (profile 'look'): header classic|two-row|dark|tint, footer split|centered|light, proof tiles|band|rule */
@media (min-width:981px) { .hd--two-row .hd-in { flex-wrap:wrap; row-gap:0; } .hd--two-row .logo { order:1; } .hd--two-row .hd-cta { order:2; margin-left:auto; } .hd--two-row .nav { order:3; flex:0 0 100%; border-top:1px solid var(--line); } .hd--two-row .nav > ul { justify-content:flex-start; } }
.hd--dark { background:var(--dark); border-bottom:0; } .hd--dark .nav .top,.hd--dark .hd-phone { color:#fff; } .hd--dark .nav .top:hover { color:var(--accent); } .hd--dark .burger i { background:#fff; } .hd--dark .logo { background:#fff; border-radius:var(--r); padding:4px 8px; } .hd--dark .btn { background:var(--accent); color:var(--on-accent); } .hd--dark :focus-visible { outline-color:#fff; }
.hd--tint { background:var(--tint); border-bottom:4px solid var(--accent); }
.ft--light { background:var(--tint); color:var(--ink); border-top-color:var(--brand); } .ft--light a,.ft--light h2,.ft--light h3,.ft--light .mh,.ft--light .soc a,.ft--light .legal a { color:var(--ink); } .ft--light .ft-grid > *,.ft--light .ft-brand,.ft--light .ft-links,.ft--light .copy { border-color:rgba(0,0,0,.18); }
.ft--light .ft-brand .logo-crop { filter:none; } .ft--light .btn { background:var(--brand); color:#fff; } .ft--light :focus-visible { outline-color:var(--brand); }
.proof { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); }
.proof li > .pt,.proof li > a { display:block; padding:22px 24px; text-decoration:none; color:inherit; } .proof b { display:block; font:var(--disp-w) 30px/1.1 var(--disp); color:var(--brand); } .proof span { display:block; margin-top:6px; color:var(--mute); font-size:16px; } .proof a:hover b { text-decoration:underline; }
.proof--tiles { margin:-46px 0 0; background:#fff; border-radius:var(--r); box-shadow:0 18px 44px rgba(0,0,0,.16); border-top:5px solid var(--accent); } .proof--tiles li { border-right:1px solid var(--line); } .proof--tiles li:last-child { border-right:0; }
.proof--band { background:var(--brand); border-radius:var(--r); } .proof--band li + li { border-left:1px solid rgba(255,255,255,.28); } .proof--band b,.proof--band span { color:#fff; } .proof--band b { font-size:34px; }
.proof--rule { border-top:1px solid var(--line); border-bottom:1px solid var(--line); } .proof--rule li { padding:6px 0; } .proof--rule b { font-size:28px; display:inline; } .proof--rule span { display:inline; margin-left:8px; } .proof--rule li > .pt,.proof--rule li > a { padding:14px 18px; }
.proof-note { margin:16px 0 0; color:var(--mute); text-align:center; }
@media (max-width:900px) { .proof--tiles { margin-top:-30px; } .proof--tiles li,.proof--band li { border-bottom:1px solid var(--line); } .proof--band li + li { border-left:0; } .proof--band li { border-bottom-color:rgba(255,255,255,.28); } }

/* people who ask for less motion get none */
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto !important; } *,*::before,*::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; scroll-behavior:auto !important; } }
.ft--top .ft-grid { grid-template-columns:minmax(0,2.7fr) minmax(0,1fr); gap:30px 0; } .ft--top .ft-grid > * { padding:0; border:0; } .ft--top .ft-brand { grid-column:1 / -1; flex-direction:row; flex-wrap:wrap; align-items:center; gap:18px 36px; padding-bottom:30px; border-bottom:1px solid rgba(255,255,255,.2); } .ft--top .ft-brand .tag { flex:1 1 280px; max-width:48ch; } .ft--top .ft-cta { margin:0 0 0 auto !important; } .ft--top .ft-clinics { grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); padding-right:44px; } .ft--top .ft-links { grid-template-columns:1fr; padding-left:36px; border-left:1px solid rgba(255,255,255,.2); }
.ft--flip .ft-clinics { order:1; } .ft--flip .ft-links { order:2; } .ft--flip .ft-brand { order:3; align-items:flex-end; text-align:right; } .ft--flip .ft-grid { grid-template-columns:minmax(0,1.5fr) minmax(0,1.25fr) minmax(0,1.05fr); } .ft--flip .ft-grid > * { border:0; padding:0 40px; } .ft--flip .ft-clinics { padding-left:0; } .ft--flip .ft-brand { padding-right:0; } .ft--flip .ft-links,.ft--flip .ft-brand { border-left:1px solid rgba(255,255,255,.18); } .ft--flip .soc { justify-content:flex-end; }
@media (max-width:980px) { .ft--top .ft-grid { grid-template-columns:1fr; } .ft--top .ft-clinics { padding-right:0; } .ft--top .ft-links { grid-template-columns:1fr 1fr; padding:26px 0 0; border-left:0; border-top:1px solid rgba(255,255,255,.2); } .ft--top .ft-cta { margin-left:0 !important; } .ft--flip .ft-brand { align-items:flex-start; text-align:left; order:0; } .ft--flip .ft-clinics { order:1; } .ft--flip .ft-links { order:2; } .ft--flip .soc { justify-content:flex-start; } .ft--flip .ft-grid > * { padding:0 28px 0 0; border:0; } .ft--flip .ft-links,.ft--flip .ft-brand { border:0; } .ft--flip .ft-brand { padding:0; } }
.ft-badges { grid-column:1 / -1; display:flex; gap:14px; margin:6px 0 0; } .ft-badges img { display:block; height:66px; width:auto; }

/* news and blog cards and articles */
.post-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr)); gap:24px; }
.post-card { display:flex; flex-direction:column; gap:8px; background:#fff; border:1px solid var(--line); border-radius:var(--r); overflow:hidden; text-decoration:none; color:var(--ink); padding:0 0 18px; }
.post-card img { width:100%; aspect-ratio:16/10; object-fit:cover; display:block; }
.post-card time,.post-card h2,.post-card h3,.post-card p,.post-card span { margin:0 18px; }
.post-card:first-child > :first-child:not(img) { margin-top:18px; }
.post-card time { font-size:14px; color:#4b5563; margin-top:8px; }
.post-card h2,.post-card h3 { font-size:21px; line-height:1.25; }
.post-card span { font-weight:700; color:var(--brand); text-decoration:underline; margin-top:auto; }
.post-card:hover h2,.post-card:hover h3 { color:var(--brand); }
.post-article { max-width:46em; } .post-feature { margin:0 0 24px; } .post-feature img { width:100%; border-radius:var(--r); display:block; } .postmeta { color:#4b5563; margin:0 0 12px; }
.proof .pbadge { flex:none; display:block; } .proof .pbadge img { height:84px; width:auto; display:block; margin:0; } .proof li:has(.pbadge) > a,.proof li:has(.pbadge) > .pt { display:flex; align-items:center; gap:18px; } .proof .ptxt { display:flex; flex-direction:column; } .proof .ptxt b { display:block; } .proof .ptxt span { display:block; }

.card--img { padding-top:0; overflow:hidden; } .card-img { margin:0 -24px 16px; } .card-img img { width:100%; aspect-ratio:4/3; object-fit:cover; display:block; }
/* top-split footer with one clinic: the clinic and the two link lists share the width, no empty middle */
.ft--top .ft-grid:has(.ft-clinics > :only-child) { grid-template-columns:minmax(0,1fr) minmax(0,1.15fr); }
.ft--top .ft-grid:has(.ft-clinics > :only-child) .ft-links { grid-template-columns:1fr 1fr; padding-left:56px; }
@media (max-width:980px) { .ft--top .ft-grid:has(.ft-clinics > :only-child) { grid-template-columns:1fr; } .ft--top .ft-grid:has(.ft-clinics > :only-child) .ft-links { padding-left:0; } }
/* the page never scrolls sideways: long web addresses wrap, and a scrolling box holds its own hidden text */
.prose a, .post a { overflow-wrap:anywhere; }
[role="region"][tabindex] { position:relative; }

/* ---- pictures from the old pages (engine/Photos.php): always inside a text section ---- */
.pfloat, .pfull, .pbanner, .photorow figure, .pmosaic figure { margin:0; } .pfloat img, .pfull img, .pbanner img, .photorow img, .pmosaic img { width:100%; border-radius:var(--r); display:block; }
/* one picture beside the words: its own column, with room around it; below the title on a phone */
.prose--pic { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,440px); column-gap:72px; align-items:start; max-width:none; }
.prose--pic > *:not(.pfloat) { grid-column:1; } .prose--pic > .pfloat { grid-column:2; grid-row:1 / span 12; margin:6px 0 0; }
.prose--pic-left { grid-template-columns:minmax(0,440px) minmax(0,1fr); } .prose--pic-left > .pfloat { grid-column:1; } .prose--pic-left > *:not(.pfloat) { grid-column:2; }
.prose--pic-sticky > .pfloat { position:sticky; top:96px; align-self:start; } .prose--pic-sticky > .pfloat img { aspect-ratio:4/5; object-fit:cover; }
@media (max-width:900px) { .prose--pic, .prose--pic-left { display:block; } .prose--pic > .pfloat { margin:0 0 22px; position:static; } }
/* under a title: a wide banner, or a medium picture */
.pbanner { margin:10px 0 28px; } .pbanner img { aspect-ratio:21/9; object-fit:cover; } .pfull { margin:6px 0 28px; max-width:620px; }
/* two or more */
.photorow { display:grid; gap:20px; margin-top:40px; grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr)); align-items:start; } .photorow img { aspect-ratio:4/3; object-fit:cover; }
.photorow--2 { grid-template-columns:repeat(2,minmax(0,1fr)); } .photorow--3 img, .photorow--4 img { aspect-ratio:1/1; } @media (max-width:640px) { .photorow--2 { grid-template-columns:1fr; } }
.photorow--fit { display:flex; align-items:stretch; } .photorow--fit figure { min-width:0; } .photorow--fit img { height:100%; aspect-ratio:auto; object-fit:cover; }
@media (max-width:760px) { .photorow--fit { flex-direction:column; } .photorow--fit figure { flex:none !important; } .photorow--fit img { height:auto; } }
.pmosaic { display:grid; grid-template-columns:2fr 1fr; grid-template-rows:1fr 1fr; gap:20px; height:440px; margin-top:40px; } .pmosaic figure { min-height:0; } .pmosaic img { height:100%; object-fit:cover; } .pmosaic figure:first-child { grid-row:1 / span 2; }
@media (max-width:760px) { .pmosaic { display:block; height:auto; } .pmosaic figure + figure { margin-top:16px; } .pmosaic img { height:auto; aspect-ratio:4/3; } }

/* rates and fees (block type "prices"): the amount is the first thing you see */
.prices { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr)); gap:18px; margin-top:26px; } .price { background:#fff; border:1px solid var(--line); border-top:4px solid var(--accent); border-radius:var(--r); padding:22px 24px 24px; }
.price .amt { margin:0 0 6px; font-size:46px; line-height:1; font-weight:800; letter-spacing:-.02em; color:var(--brand); } .price h3 { margin:0; font-size:17px; font-weight:600; line-height:1.3; } .price .pnote { margin:10px 0 0; font-size:15px; color:var(--muted,#4b5563); }

/* San Tan Physical Therapy: the look of the page-builder site it replaces (Lato and Merriweather, red and blue, white and soft-grey sections), drawn from src/Replica.php. */
:root { --bs-primary:#CA0204; --bs-secondary:#0757A1; --bs-light:#F5F5F5; --bs-dark:#171717; --body:'Lato',sans-serif; --disp:'Merriweather',serif; --disp-w:400; --body-px:16px; --r:6px; }
body { font-family:'Lato',sans-serif; line-height:1.5; background:#fff; }
.pk-sec, .pk-top, .pk-foot, .pk-cta { font-family:'Lato',sans-serif; font-size:16px; line-height:1.5; color:#171717; }
.pk-container { width:100%; max-width:1140px; margin:0 auto; padding:0 12px; }
.pk-sec h1, .pk-sec h2, .pk-sec h3, .pk-sec h4, .pk-sec h5, .pk-foot h2, .pk-foot h3 { font-family:'Merriweather',serif; font-weight:400; line-height:1.2; letter-spacing:0; text-transform:none; text-wrap:wrap; margin:0 0 .5rem; }
.pk-sec h1 { font-size:2.5rem; } .pk-sec h2 { font-size:2rem; } .pk-sec h3 { font-size:1.75rem; } .pk-sec h4 { font-size:1.5rem; } .pk-sec h5 { font-size:1.25rem; }
.pk-sec h1.display-4 { font-size:3.5rem; font-weight:300; }
@media (max-width:1199px) { .pk-sec h1 { font-size:calc(1.375rem + 1.5vw); } .pk-sec h2 { font-size:calc(1.325rem + .9vw); } .pk-sec h3 { font-size:calc(1.3rem + .6vw); } .pk-sec h1.display-4 { font-size:calc(1.475rem + 2.7vw); } }
.pk-sec p { margin:0 0 1rem; max-width:none; } .pk-sec ul, .pk-sec ol { margin:0 0 1rem; padding-left:2rem; } .pk-sec li { margin:0 0 .25rem; }
.pk-sec a { color:#CA0204; } .pk-sec a:hover { color:#A10003; }
.pk-rt > :last-child { margin-bottom:0; }
/* section backgrounds */
.pk-bg-light { background:#F5F5F5; } .pk-bg-primary { background:#CA0204; color:#fff; } .pk-bg-secondary { background:#0757A1; color:#fff; } .pk-bg-dark { background:#212529; color:#fff; }
.pk-bg-primary, .pk-bg-secondary, .pk-bg-dark { --bs-light:#fff; } .pk-bg-primary a:not(.pk-btn), .pk-bg-secondary a:not(.pk-btn), .pk-bg-dark a:not(.pk-btn) { color:#fff; }
.pk-hero { background-size:cover; background-position:center; color:#fff; } .pk-vc .pk-container { display:flex; flex-direction:column; justify-content:center; min-height:100%; }
.pk-hero { min-height:480px; display:flex; align-items:center; } .pk-hero .pk-container { padding-top:3rem; padding-bottom:3rem; }
/* grids */
.pk-grid { display:grid; grid-template-columns:minmax(0,1fr); gap:var(--gap,1rem); } .pk-cell { min-width:0; display:flex; flex-direction:column; }
.pk-cell > .pk-grid, .pk-cell > .pk-card { flex:1; }
.pk-ai-center { align-items:center; } .pk-ai-start { align-items:start; } .pk-ai-end { align-items:end; } .pk-ai-stretch { align-items:stretch; }
.pk-jc-center > .pk-cell { justify-content:center; } .pk-jc-end > .pk-cell { justify-content:flex-end; }
.pk-bp-xs { grid-template-columns:repeat(var(--cols),minmax(0,1fr)); }
@media (min-width:576px) { .pk-bp-sm { grid-template-columns:repeat(var(--cols),minmax(0,1fr)); } }
@media (min-width:768px) { .pk-bp-md { grid-template-columns:repeat(var(--cols),minmax(0,1fr)); } }
@media (min-width:992px) { .pk-bp-lg { grid-template-columns:repeat(var(--cols),minmax(0,1fr)); } }
/* buttons */
.pk-btns { display:flex; flex-wrap:wrap; gap:.5rem; } .pk-btns.pk-al-center { justify-content:center; } .pk-btns.pk-al-end { justify-content:flex-end; } .pk-btns.pk-al-stretch { flex-direction:column; }
.pk-btn { display:inline-block; font:400 1rem/1.5 'Lato',sans-serif; padding:.375rem .75rem; border:1px solid transparent; border-radius:.375rem; text-decoration:none !important; text-align:center; cursor:pointer; transition:background-color .15s,color .15s,border-color .15s; }
.pk-btn--lg { padding:.5rem 1rem; font-size:1.25rem; border-radius:.5rem; } .pk-btn--sm { padding:.25rem .5rem; font-size:.875rem; border-radius:.25rem; }
.pk-sec a.pk-btn--primary, .pk-btn--primary { background:#CA0204; border-color:#CA0204; color:#fff; } .pk-btn--primary:hover { background:#ac0203; border-color:#a10203; color:#fff; }
.pk-sec a.pk-btn--secondary, .pk-btn--secondary { background:#0757A1; border-color:#0757A1; color:#fff; } .pk-btn--secondary:hover { background:#064a89; border-color:#05418c; color:#fff; }
.pk-sec a.pk-btn--outline-primary, .pk-btn--outline-primary { border-color:#CA0204; color:#CA0204; background:transparent; } .pk-btn--outline-primary:hover { background:#CA0204; color:#fff; }
.pk-sec a.pk-btn--outline-light, .pk-btn--outline-light { border-color:#fff; color:#fff; background:transparent; } .pk-btn--outline-light:hover { background:#fff; color:#171717; }
.pk-sec a.pk-btn--light, .pk-btn--light { background:#f8f9fa; border-color:#f8f9fa; color:#171717; } .pk-btn--light:hover { background:#d3d4d5; }
.pk-btn:focus-visible { outline:3px solid #171717; outline-offset:2px; box-shadow:0 0 0 5px #fff; }
.pk-bg-primary .pk-btn:focus-visible, .pk-hero .pk-btn:focus-visible, .pk-foot .pk-btn:focus-visible { outline-color:#fff; box-shadow:0 0 0 5px #171717; }
/* cards, pictures, icons */
.pk-card { display:flex; flex-direction:column; background:#fff; border:1px solid rgba(0,0,0,.175); border-radius:.375rem; height:100%; }
.pk-card-body { display:flex; flex-direction:column; flex:1; padding:1rem; } .pk-card-text { flex:0 0 auto; } .pk-card-btn { margin-top:auto; padding-top:1rem; }
.pk-card .pk-img img { width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:.25rem; margin-bottom:1rem; display:block; }
.pk-img.pk-al-center { text-align:center; } .pk-img.pk-al-end { text-align:right; } .pk-img img { display:inline-block; vertical-align:middle; } .pk-fluid { max-width:100%; height:auto; }
.pk-rounded { border-radius:.375rem; } .pk-circle { border-radius:50%; } .pk-thumb { padding:.25rem; background:#fff; border:1px solid #dee2e6; border-radius:.375rem; }
.pk-icon { display:flex; } .pk-icon.pk-al-center { justify-content:center; } .pk-icon.pk-al-end { justify-content:flex-end; } .pk-icon svg { display:block; }
.pk-ring { display:inline-flex; padding:.6rem; border-radius:50%; }
/* accordion and reviews */
.pk-acc { border:1px solid rgba(0,0,0,.175); border-radius:.375rem; overflow:hidden; } .pk-acc details + details { border-top:1px solid rgba(0,0,0,.175); }
.pk-acc summary { cursor:pointer; padding:1rem 1.25rem; font:400 1rem/1.5 'Lato',sans-serif; list-style:none; position:relative; background:#fff; } .pk-acc summary::-webkit-details-marker { display:none; }
.pk-acc summary::after { content:''; position:absolute; right:1.25rem; top:50%; width:.55rem; height:.55rem; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:translateY(-70%) rotate(45deg); transition:transform .15s; } .pk-acc details[open] > summary::after { transform:translateY(-30%) rotate(-135deg); }
.pk-acc details[open] > summary { color:#CA0204; background:#fdf0f0; } .pk-acc-body { padding:1rem 1.25rem; }
.pk-slides { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr)); gap:1.5rem; } .pk-slide { margin:0; background:#fff; border:1px solid rgba(0,0,0,.125); border-radius:.375rem; padding:1.5rem; }
/* top bar and header */
.pk-top { background:#F7F9FC; padding:.35rem 0; } .pk-top .pk-grid { align-items:center; } .pk-top .pk-btns { justify-content:flex-end; } .pk-top .pk-btn--sm { padding:.125rem .45rem; font-size:.8125rem; }
.pk-soc { display:flex; gap:.9rem; align-items:center; } .pk-soc a { color:#CA0204; display:inline-flex; width:2rem; height:2rem; align-items:center; justify-content:center; } .pk-soc--light a { color:#fff; } .pk-soc.pk-al-center { justify-content:center; }
.pk-hd { background:#F7F9FC; border-bottom:0; position:relative; z-index:40; } .pk-hd .hd-in { padding:.5rem 0; gap:1rem; } .pk-hd .pk-logo { height:90px; width:auto; display:block; }
.pk-hd .nav > ul { justify-content:flex-end; } .pk-hd .nav .top { font-family:'Lato',sans-serif; font-weight:400; font-size:1rem; padding:.5rem; color:rgba(23,23,23,.75); } .pk-hd .nav .top:hover { color:#171717; }
.pk-hd .menu { font-family:'Lato',sans-serif; } .pk-hd .menu .mh { font-family:'Merriweather',serif; font-weight:700; color:#CA0204; font-size:1rem; text-transform:none; margin:0 0 .35rem; }
.pk-hd .menu li a { color:#171717; } .pk-hd .menu li a:hover { color:#CA0204; }
.pk-hd .wrap { width:min(1140px,100%); box-sizing:border-box; padding-left:12px; padding-right:12px; } .pk-top .pk-container { width:min(1140px,100%); max-width:1140px; padding:0 12px; box-sizing:border-box; } .pk-top .pk-container .pk-container { width:100%; max-width:none; margin:0; padding:0; } .pk-top .pk-soc { margin-left:-4px; } @media (min-width:981px) { .pk-hd .nav > ul > li:last-child > .top { padding-right:0; } }
/* footer */
.pk-foot { background:#CA0204; color:#fff; } .pk-foot .pk-sec { color:#fff; } .pk-foot .pk-bg-none { background:transparent; } .pk-foot a { color:#fff; }
.pk-foot .pk-grid { align-items:start; } .pk-ql { list-style:none; margin:0; padding:0; } .pk-ql li { margin:0 0 .35rem; } .pk-ql a { text-decoration:none; } .pk-ql a:hover { text-decoration:underline; }
.pk-foot .clinic { color:#fff; } .pk-foot .clinic h3 { font-size:1rem; } .pk-foot .pk-copy, .pk-foot p { margin:0; }
.pk-foot .pk-rt p, .pk-foot .pk-rt small { color:#fff; }
.pk-cta-light, .pk-foot ~ * { }
/* team, clinic, map, workshops */
.pk-staff { margin:0; } .pk-map iframe { width:100%; border:0; border-radius:.375rem; display:block; } .pk-clinic { background:#fff; border:1px solid rgba(0,0,0,.125); border-radius:.375rem; padding:1.25rem; }
.pk-clinic--foot { background:transparent; border:0; padding:0; }
.ws-list { display:grid; gap:1rem; } .ws { display:flex; gap:1.5rem; justify-content:space-between; align-items:center; background:#fff; border:1px solid rgba(0,0,0,.125); border-radius:.375rem; padding:1.25rem; } .ws h3 { font-size:1.25rem; }
.pk-sec .sr, .sr { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
@media (max-width:767px) { .pk-hero { min-height:380px; } .pk-sec h1.display-4 { font-size:2.2rem; } .pk-top .pk-btns { justify-content:flex-start; } .ws { flex-direction:column; align-items:flex-start; } }

.pk-lead { font-size:1.5rem; line-height:1.3; font-weight:400; margin:0 0 1rem; } .pk-sec .pk-lead { font-family:'Merriweather',serif; }
.pk-form { max-width:640px; margin:0 auto; } .cform label { display:block; font-weight:700; margin:1rem 0 .25rem; } .cform input[type=text], .cform input[type=email], .cform input[type=tel] { width:100%; padding:.5rem .75rem; border:1px solid #ced4da; border-radius:.375rem; font:inherit; }
.cform .appt-consent { display:flex; gap:.5rem; align-items:flex-start; font-weight:400; font-size:.875rem; margin:1rem 0; } .cform .appt-consent input { margin-top:.3rem; } .cform .appt-errors { color:#842029; background:#f8d7da; border-radius:.375rem; padding:.5rem .75rem; } .cf-ok { text-align:center; }

.pk-auto { width:auto; max-width:100%; height:auto; } .pk-img.pk-al-center { text-align:center; } .pk-hd .nav > ul { justify-content:flex-end; } .pk-hd .nav { flex:1; padding-left:.5rem; }

.pk-reviews { grid-template-columns:repeat(auto-fill,minmax(min(100%,330px),1fr)); align-items:start; } .pk-reviews .pk-slide { display:flex; flex-direction:column; gap:.5rem; } .pk-reviews blockquote { margin:0; } .pk-reviews blockquote p { margin:0 0 .5rem; }
.pk-stars { color:#0757A1; letter-spacing:.15em; font-size:1.1rem; margin:0; } .pk-reviews figcaption { margin-top:auto; font-weight:700; font-size:.9rem; color:#495057; }
/* mobile menu: the header is not positioned on this site, so the menu panel opened below the screen; it is a light panel so the dark link colours show */
@media (max-width:980px) {
  .pk-hd { position:relative; z-index:40; }
  .pk-hd .nav { background:#fff; padding:.5rem 1rem 1rem; border-top:1px solid #dee2e6; box-shadow:0 8px 16px rgba(0,0,0,.12); }
  .pk-hd .nav > ul { justify-content:flex-start; }
  .pk-hd .nav .top, .pk-hd .nav .top:hover { color:#171717; }
  .pk-hd .has-menu, .pk-hd .nav > ul > li:not(.has-menu) { border-bottom:1px solid #dee2e6; }
  .pk-hd .tg::after { color:#171717; }
  .pk-hd .menu, .pk-hd .menu.wide { flex:0 0 100%; width:100%; max-width:100%; padding:0 0 12px .5rem; }
  .pk-hd .menu .mgrid { grid-template-columns:1fr; }
}

/* home: the three promise tiles */
.pk-sec[style*="#F7F9FC"] > .pk-container > .pk-grid[style*="--cols:3"] { --gap:1.5rem !important; }
.pk-sec[style*="#F7F9FC"] > .pk-container > .pk-grid[style*="--cols:3"] > .pk-cell > .pk-grid { background:#fff; border:1px solid #e6e9ef; border-top:4px solid #CA0204; border-radius:.75rem; padding:1.75rem 1.25rem 1.5rem; box-shadow:0 6px 18px rgba(23,23,23,.07); transition:transform .2s, box-shadow .2s; --gap:.75rem !important; align-content:start; }
.pk-sec[style*="#F7F9FC"] > .pk-container > .pk-grid[style*="--cols:3"] > .pk-cell > .pk-grid:hover { transform:translateY(-4px); box-shadow:0 12px 26px rgba(23,23,23,.12); }
.pk-sec[style*="#F7F9FC"] > .pk-container > .pk-grid[style*="--cols:3"] .pk-icon span { display:inline-flex; align-items:center; justify-content:center; width:4.25rem; height:4.25rem; border-radius:50%; background:#FBE9E9; }
.pk-sec[style*="#F7F9FC"] > .pk-container > .pk-grid[style*="--cols:3"] .pk-icon svg { width:2.1rem; height:2.1rem; }
.pk-sec[style*="#F7F9FC"] > .pk-container > .pk-grid[style*="--cols:3"] h5 { font-size:1.3rem; margin:0 0 .35rem; }
@media (prefers-reduced-motion:reduce) { .pk-sec[style*="#F7F9FC"] > .pk-container > .pk-grid[style*="--cols:3"] > .pk-cell > .pk-grid { transition:none; } .pk-sec[style*="#F7F9FC"] > .pk-container > .pk-grid[style*="--cols:3"] > .pk-cell > .pk-grid:hover { transform:none; } }
.pk-foot ul.pk-ql { padding:0; margin:0; list-style:none; }

/* Privacy, Terms and Notice pages: room around the text */
.pk-sec .legaltext { max-width:50rem; margin:0 auto; line-height:1.75; }
.pk-sec .legaltext h2 { font-size:1.4rem; margin:2.25rem 0 .75rem; }
.pk-sec .legaltext h2:first-child { margin-top:0; }
.pk-sec .legaltext p { margin:0 0 1.1rem; }
.pk-sec .legaltext ul, .pk-sec .legaltext ol { margin:0 0 1.25rem; padding-left:1.75rem; }
.pk-sec .legaltext li { margin:0 0 .6rem; }
.pk-sec .legaltext h3 { font-family:'Merriweather',serif; font-weight:700; font-size:1.1rem; line-height:1.3; color:#171717; margin:1.5rem 0 .5rem; letter-spacing:0; text-transform:none; }
.pk-sec .legaltext h2 + h3 { margin-top:.75rem; }
.pk-sec .legaltext h2, .pk-sec .legaltext h3 { text-align:left; }

/* a button row that follows text (or is followed by text) in the same block gets room */
.pk-rt + .pk-btns, .pk-btns + .pk-rt, .pk-btns + .pk-btns { margin-top:1.25rem !important; }

/* Contact: the message form (heading, intro and form) sits in a card like the map beside it */
.pk-grid:has(> .pk-cell > .pk-form) { background:#fff; border:1px solid rgba(0,0,0,.175); border-radius:.375rem; padding:1.5rem; align-content:start; box-shadow:0 6px 18px rgba(23,23,23,.06); }
.pk-grid:has(> .pk-cell > .pk-form) .pk-form { max-width:none; }
.pk-card-text:has(> .pk-map) { flex:1 1 auto; display:flex; } .pk-card-text > .pk-map { flex:1; display:flex; } .pk-card-text > .pk-map iframe { height:auto !important; min-height:500px; flex:1; }

/* Contact: the clinic card in two columns (address and contact beside the hours) so it stops being a tall block */
.pk-clinic:not(.pk-clinic--foot) { padding:1.5rem 2rem; box-shadow:0 6px 18px rgba(23,23,23,.06); }
.pk-clinic:not(.pk-clinic--foot) .clinic { display:grid; grid-template-columns:1fr 1fr; column-gap:3rem; row-gap:.25rem; align-items:start; }
.pk-clinic:not(.pk-clinic--foot) .clinic > h2 { grid-column:1 / -1; font-size:1.75rem; margin:0 0 .75rem; }
.pk-clinic:not(.pk-clinic--foot) .clinic > p { grid-column:1; margin:0 0 1rem; }
.pk-clinic:not(.pk-clinic--foot) .clinic > [data-f="hours"] { grid-column:2; grid-row:2 / span 3; border-left:1px solid #e1e4ea; padding-left:3rem; }
.pk-clinic .hrs-t { margin:0; } .pk-clinic .hrs-t th, .pk-clinic .hrs-t td { padding:.2rem 1.5rem .2rem 0; border:0; background:none; }
@media (max-width:767px) { .pk-clinic:not(.pk-clinic--foot) .clinic { grid-template-columns:1fr; } .pk-clinic:not(.pk-clinic--foot) .clinic > [data-f="hours"] { grid-column:1; grid-row:auto; border-left:0; padding-left:0; } }
.pk-clinic .dirnote { font-style:italic; color:#444; margin:-.25rem 0 1rem !important; }

/* home: recovery phases as a row of steps */
.phases { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(5,1fr); gap:1rem; counter-reset:ph; }
.phases li { position:relative; background:#fff; border:1px solid rgba(0,0,0,.175); border-top:4px solid #CA0204; border-radius:.5rem; padding:1.25rem 1rem 1.25rem; box-shadow:0 6px 18px rgba(23,23,23,.06); }
.phases li:not(:last-child)::after { content:''; position:absolute; top:2.1rem; right:-1rem; width:1rem; border-top:2px dashed #CA0204; }
.phases .ph-n { display:inline-block; font:700 .75rem/1 'Lato',sans-serif; letter-spacing:.08em; text-transform:uppercase; color:#fff; background:#CA0204; border-radius:999px; padding:.35rem .7rem; margin-bottom:.75rem; }
.phases h3 { font-size:1.15rem; margin:0 0 .5rem; color:#171717; text-align:left; }
.phases p { margin:0; font-size:.95rem; line-height:1.6; }
@media (max-width:1100px) { .phases { grid-template-columns:repeat(2,1fr); } .phases li::after { display:none; } .phases li:last-child { grid-column:1 / -1; } }
@media (max-width:640px) { .phases { grid-template-columns:1fr; } }
.pk-sec ol.phases { padding:0; margin:0; }

/* More Reviews From Our Patients: a masonry flow (columns of cards of different heights, no gaps) */
.pk-slides.pk-reviews { display:block; column-width:320px; column-gap:1.5rem; }
.pk-slides.pk-reviews .pk-slide { display:flex; break-inside:avoid; -webkit-column-break-inside:avoid; margin:0 0 1.5rem; }

/* Workshops: the Register button is a regular site button (the engine's own button styling was winning) */
.ws button[data-workshop] { font:400 1rem/1.5 'Lato',sans-serif; padding:.375rem .75rem; border:1px solid #CA0204; border-radius:.375rem; background:#CA0204; color:#fff; letter-spacing:normal; text-transform:none; white-space:nowrap; }
.ws button[data-workshop]:hover { background:#ac0203; border-color:#a10203; color:#fff; }

/* Page heroes (the red band with the page's h1): one size and one rhythm everywhere, following How We Treat.
   6rem above and below, a 2.5rem heading, a 1rem line under it, and 3rem before the buttons. */
.pk-sec.pk-bg-primary:has(h1) { padding-top:6rem !important; padding-bottom:6rem !important; }
.pk-sec.pk-bg-primary:has(h1) h1 { font-size:2.5rem !important; font-weight:400 !important; line-height:1.2 !important; margin:0 0 .5rem !important; }
.pk-sec.pk-bg-primary:has(h1) .pk-rt p { font-size:1rem !important; line-height:1.5 !important; font-weight:400 !important; margin:0 0 .5rem !important; }
.pk-sec.pk-bg-primary:has(h1) .pk-rt p:last-child { margin-bottom:0 !important; }
.pk-sec.pk-bg-primary:has(h1) .pk-rt:has(h1) { margin-bottom:0 !important; }
.pk-sec.pk-bg-primary:has(h1) .pk-rt:has(h1) + .pk-btns { margin-top:3rem !important; }
.pk-sec.pk-bg-primary:has(h1) .pk-rt h4 { font-family:'Lato',sans-serif !important; font-size:1rem !important; line-height:1.5 !important; font-weight:400 !important; margin:0 0 .5rem !important; color:#fff !important; }
/* the line right under a hero heading is the proper subheader, as on What We Treat (serif, 1.5rem); any text after it is body copy */
.pk-sec.pk-bg-primary:has(h1) .pk-rt h1 + p, .pk-sec.pk-bg-primary:has(h1) .pk-rt h1 + h4 { font-family:'Merriweather',serif !important; font-size:1.5rem !important; line-height:1.3 !important; font-weight:400 !important; margin:0 0 .75rem !important; }
/* the two home badges keep their own shape on narrow screens; the contact map has a sensible height on a phone */
.pk-img img[alt="Since 2006"] { height:auto !important; width:auto; max-width:100%; max-height:110px; }
.pk-img img[alt^="20th Anniversary"] { height:auto !important; width:auto; max-width:100%; max-height:260px; }
@media (max-width:767px) { .pk-card-text > .pk-map iframe { min-height:360px; } }

/* white icons on a light band (Insurance, First Visit, Reviews) sit in a red circle, so they can be seen */
.pk-sec:not(.pk-bg-primary):not(.pk-bg-dark):not(.pk-bg-secondary) .pk-icon > span[style*="color:#fff"] { display:inline-flex; align-items:center; justify-content:center; width:4rem; height:4rem; border-radius:50%; background:#CA0204; }
/* Reviews: the rating strip is a slim band, not cards: three figures, no dividers between them */
.pk-sec:has(.rating-stars) { border-top:1px solid #e1e5ec; }
.pk-sec:has(.rating-stars) > .pk-container > .pk-grid[style*="--cols:3"] { --gap:0 !important; }
.pk-sec:has(.rating-stars) > .pk-container > .pk-grid[style*="--cols:3"] > .pk-cell { padding:0 1rem; }
.pk-sec:has(.rating-stars) .pk-icon svg { width:1.5rem; height:1.5rem; }
.pk-sec:has(.rating-stars) h2 { font-size:2.5rem; line-height:1.1; margin:0 0 .25rem; }
.pk-sec:has(.rating-stars) .pk-rt p { font-size:.85rem; letter-spacing:.08em; text-transform:uppercase; color:#5b6470; }
@media (max-width:767px) { .pk-sec:has(.rating-stars) > .pk-container > .pk-grid[style*="--cols:3"] > .pk-cell { padding:1rem 0; }  }
/* rows inside a column pack to the top (a shorter column no longer spreads its rows to fill the height of its taller neighbour) */
.pk-grid { align-content:start; }

/* footer: three even columns across the full width (logo, quick links, clinic) instead of three bunched to the left */
.pk-foot .pk-container > .pk-grid[style*="--cols:2"] { grid-template-columns:2fr 1fr !important; }
.pk-foot .pk-container > .pk-grid[style*="--cols:2"] > .pk-cell > .pk-grid[style*="--cols:2"] { grid-template-columns:1fr 1fr !important; }
@media (max-width:767px) { .pk-foot .pk-container > .pk-grid[style*="--cols:2"], .pk-foot .pk-container > .pk-grid[style*="--cols:2"] > .pk-cell > .pk-grid[style*="--cols:2"] { grid-template-columns:1fr !important; } }
.pk-foot .pk-grid:has(a[href^="/privacy"]) { grid-template-columns:minmax(0,1fr) max-content !important; } .pk-foot .pk-grid:has(a[href^="/privacy"]) p { white-space:nowrap; } .pk-foot .pk-grid:has(a[href^="/privacy"]) > .pk-cell:last-child { justify-self:end; }
@media (max-width:767px) { .pk-foot .pk-grid:has(a[href^="/privacy"]) { grid-template-columns:1fr !important; } .pk-foot .pk-grid:has(a[href^="/privacy"]) p { white-space:normal; } }
/* footer logo: capped (the button and the column keep the full column width) */
.pk-foot .pk-img img { max-width:240px; width:100%; height:auto; margin:0 auto; display:block; }
.rating-stars { color:#CA0204; font-size:1.5rem; line-height:1; letter-spacing:.2em; text-indent:.2em; }
.pk-sec:has(.rating-stars) .pk-rt p.rating-stars { color:#CA0204; font-size:1.35rem; line-height:1.5rem; height:1.5rem; letter-spacing:.2em; text-indent:.2em; text-transform:none; margin:0; }
/* footer: logo, button and social icons are centred in the logo column; the button is only as wide as its label */
.pk-foot .pk-btns.pk-al-stretch { align-items:center; }
.pk-foot .pk-img { justify-content:center; text-align:center; }
.pk-foot .pk-soc, .pk-foot .pk-soc.pk-al-center { justify-content:center; margin-left:0; }
/* a red line over the closing "Ready to Feel Better?" bar, so a grey section above it doesn't run into it */
main + .pk-sec { border-top:4px solid #CA0204; }
