/* Back Pain Center Wentzville — homepage mockup (DRAFT)
   Fonts: Source Serif 4 (headings/display, optical sizing auto) + Inter (body). Fraunces version: styles-fraunces.css
   Palette
   --cream   #FBF7F0  page background
   --cream-2 #F3ECE0  alternate section background
   --tint    #DCE9E5  teal tint (placeholders, chips, icon wells)
   --teal    #1D5E5A  brand: links, headings accents, outline buttons, bands
   --teal-dk #123F3C  headings, footer background
   --teal-lt #9FD0C8  accent text on dark teal only
   --ink     #1F2B2A  body text
   --muted   #4B5957  secondary text
   --copper  #A6521F  ONLY the "Request an appointment" CTA (hover #8C4317)
*/
:root{
  --cream:#FBF7F0;--cream-2:#F3ECE0;--tint:#DCE9E5;--teal:#1D5E5A;--teal-dk:#123F3C;--teal-lt:#9FD0C8;
  --ink:#1F2B2A;--muted:#4B5957;--copper:#A6521F;--copper-dk:#8C4317;--line:#E3DACB;
  --serif:"Source Serif 4",Georgia,"Times New Roman",serif;
  --sans:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --radius:18px;--wrap:1240px;--header-h:64px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-padding-top:calc(var(--header-h) + 12px)}
body{margin:0;background:var(--cream);color:var(--ink);font:400 1.0625rem/1.65 var(--sans);-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:var(--teal);text-underline-offset:3px;text-decoration-thickness:1px}
a:hover{color:var(--teal-dk);text-decoration-thickness:2px}
:focus-visible{outline:3px solid var(--teal);outline-offset:3px;border-radius:6px}
h1,h2,h3{font-optical-sizing:auto;font-family:var(--serif);color:var(--teal-dk);font-weight:600;line-height:1.15;letter-spacing:-.01em;margin:0 0 .5em}
h1{font-size:clamp(2.2rem,1.4rem + 3.6vw,3.6rem)}
h2{font-size:clamp(1.7rem,1.25rem + 1.8vw,2.45rem)}
h3{font-size:1.28rem;font-weight:500}
p{margin:0 0 1em}
.wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding:0 20px}
.narrow{max-width:820px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip{position:absolute;left:12px;top:-60px;background:var(--teal-dk);color:#fff;padding:10px 14px;border-radius:8px;z-index:100}
.skip:focus{top:12px}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4em;min-height:44px;padding:.6em 1.15em;border-radius:999px;font:600 1rem/1.2 var(--sans);text-decoration:none;border:2px solid transparent;transition:background .15s,color .15s,border-color .15s;white-space:nowrap}
.btn-lg{min-height:52px;padding:.8em 1.5em;font-size:1.05rem}
.btn-request{background:var(--copper);color:#fff}
.btn-request:hover{background:var(--copper-dk);color:#fff}
.btn-outline{border-color:var(--teal);color:var(--teal);background:transparent}
.btn-outline:hover{background:var(--teal);color:#fff}
.btn-ghost{border-color:var(--cream);color:var(--cream)}
.btn-ghost:hover{background:var(--cream);color:var(--teal-dk)}
.cta-row{display:flex;flex-wrap:wrap;gap:12px;margin:1.4em 0 1em}
.cta-row.center{justify-content:center}

/* Header */
.site-header{position:sticky;top:0;z-index:50;background:rgba(251,247,240,.96);backdrop-filter:saturate(1.2) blur(8px);border-bottom:1px solid var(--line)}
.header-row{display:flex;align-items:center;gap:12px;min-height:var(--header-h)}
.brand{display:flex;align-items:center;flex:0 0 auto;margin-right:auto}
.brand-full{display:none;height:44px;width:auto}
.brand-mark{height:38px;width:38px}
.main-nav{display:none}
.header-actions{display:flex;align-items:center;gap:6px}
@media (max-width:599px){.header-row{gap:6px}.site-header .btn-request{padding:.55em .9em}.menu-btn{width:40px}}
.phone-link{white-space:nowrap;display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 14px;border-radius:999px;border:2px solid var(--teal);color:var(--teal);font-weight:600;text-decoration:none}
.phone-link:hover{background:var(--teal);color:#fff}
.phone-num{display:inline;font-size:.95rem}
.phone-short{display:none}
.phone-link{padding:0 12px}
@media (max-width:374px){.phone-num{display:none}.phone-short{display:inline}}
a[href^="tel:"]{white-space:nowrap}
.site-header .btn-request{padding:.55em 1.05em}
.hide-sm{display:none}
.menu-btn{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:0;background:transparent;color:var(--teal-dk);border-radius:10px;cursor:pointer}
@media (min-width:600px){.phone-link{padding:0 14px}.hide-sm{display:inline}.brand-full{display:block}.brand-mark{display:none}}
@media (min-width:1100px){
  :root{--header-h:80px}
  .main-nav{display:block}
  .main-nav ul{display:flex;gap:4px;list-style:none;margin:0 12px 0 0;padding:0}
  .main-nav a{display:block;white-space:nowrap;padding:10px 10px;color:var(--ink);text-decoration:none;font-weight:500;font-size:.98rem;border-radius:8px}
  .main-nav a:hover{color:var(--teal);background:var(--tint)}
  .menu-btn{display:none}
}

/* Placeholders */
.ph{position:relative;margin:0;border-radius:var(--radius);background:linear-gradient(160deg,var(--tint),#CFE0DB);overflow:hidden;min-height:220px;border:1px dashed #9DBAB3}
.ph-label{position:absolute;left:14px;bottom:14px;right:14px;background:rgba(251,247,240,.94);color:var(--teal-dk);font:600 .9rem/1.3 var(--sans);padding:8px 12px;border-radius:10px;width:max-content;max-width:calc(100% - 28px)}
.ph-shape{position:absolute;border-radius:50%}
.ph-shape-1{width:62%;aspect-ratio:1;right:-12%;top:-10%;background:rgba(29,94,90,.14)}
.ph-shape-2{width:40%;aspect-ratio:1;left:-8%;bottom:-6%;background:rgba(251,247,240,.55)}
.ph-shape-3{width:50%;aspect-ratio:1;right:6%;top:12%;background:rgba(29,94,90,.12)}
.ph-hero{min-height:300px}
.ph-wide{min-height:240px}
.ph-portrait{aspect-ratio:1;min-height:0}
@media (min-width:640px){.ph-portrait{aspect-ratio:5/4}}
.ph-map{min-height:260px;background:repeating-linear-gradient(0deg,transparent 0 38px,rgba(29,94,90,.10) 38px 40px),repeating-linear-gradient(90deg,transparent 0 38px,rgba(29,94,90,.10) 38px 40px),var(--tint)}
.map-pin{position:absolute;left:50%;top:42%;width:28px;height:28px;background:var(--teal);border-radius:50% 50% 50% 0;transform:translate(-50%,-50%) rotate(-45deg);box-shadow:0 0 0 8px rgba(29,94,90,.18)}

/* Hero photo (4:3 crop of a 16:9 photo, centered: keeps face, hands and the patient's head in frame) */
.hero-photo{margin:0;border-radius:var(--radius);overflow:hidden;aspect-ratio:4/3;background:var(--tint);box-shadow:0 18px 40px -28px rgba(18,63,60,.55)}
.hero-photo picture,.hero-photo img{display:block;width:100%;height:100%}
.hero-photo img{object-fit:cover;object-position:50% 40%}

/* Hero */
.hero{padding:36px 0 44px}
.hero-grid{display:grid;gap:32px}
.hero-h1{font:600 .95rem/1.4 var(--sans);letter-spacing:.01em;color:var(--teal);margin:0 0 .9em}
.display{font-family:var(--serif);font-weight:600;color:var(--teal-dk);font-size:clamp(2.4rem,1.4rem + 4vw,4rem);line-height:1.08;letter-spacing:-.02em;margin:0 0 .35em}
.eyebrow{font:600 .85rem/1.4 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--teal);margin-bottom:.9em}
.subhead{font-family:var(--serif);font-size:clamp(1.25rem,1.05rem + .8vw,1.6rem);line-height:1.35;color:var(--teal);font-weight:500;margin-bottom:.7em}
.lead{color:var(--muted);font-size:1.08rem;max-width:40em}
.fineprint{font-size:.95rem;color:var(--muted);max-width:36em}
@media (min-width:900px){
  .hero-h1{font-size:1rem}
  .hero{padding:64px 0 72px}
  .hero-grid{grid-template-columns:1.1fr .9fr;align-items:center;gap:56px}
  .ph-hero{min-height:500px}
}

/* Facts strip */
.facts{background:var(--teal-dk);color:var(--cream)}
.facts-grid{display:grid;gap:14px;padding-top:22px;padding-bottom:22px}
.fact{display:flex;flex-direction:column;gap:2px}
.fact-k{font:600 .78rem/1.3 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--teal-lt)}
.fact-v{font-weight:500}
.fact a{color:var(--cream)}
.fact a:hover{color:#fff}
@media (min-width:900px){.facts-grid{grid-template-columns:1.3fr 1.2fr .7fr;gap:28px}}

/* Sections */
.section{padding:56px 0}
.section.alt{background:var(--cream-2)}
.section-lead{max-width:46em;color:var(--muted)}
@media (min-width:900px){.section{padding:88px 0}}
.intro-grid,.area-grid,.hours-grid{display:grid;gap:32px}
@media (min-width:900px){.intro-grid,.area-grid,.hours-grid{grid-template-columns:1fr 1fr;align-items:center;gap:56px}}

/* Cards */
.cards{list-style:none;margin:28px 0 0;padding:0;display:grid;gap:16px}
@media (min-width:640px){.cards{grid-template-columns:1fr 1fr}}
@media (min-width:1024px){.cards{grid-template-columns:repeat(4,1fr)}}
.card a{display:flex;flex-direction:column;height:100%;background:var(--cream);border:1px solid var(--line);border-radius:var(--radius);padding:24px;text-decoration:none;color:var(--ink);transition:border-color .15s,transform .15s,box-shadow .15s}
.card a:hover{border-color:var(--teal);transform:translateY(-2px);box-shadow:0 10px 24px -16px rgba(18,63,60,.5)}
.card h3{margin-top:14px}
.card p{color:var(--muted);flex:1}
.card-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:14px;background:var(--tint)}
.card-icon svg{width:30px;height:30px;fill:var(--teal);stroke:var(--teal)}
.more{font-weight:600;color:var(--teal)}
.center-link{text-align:center;margin-top:28px}
.text-link{font-weight:600}

/* Band */
.band{background:var(--teal);color:#fff}
.band h2{color:#fff}
.band p{font-size:1.1rem;margin:0;color:#F2F7F6}
@media (min-width:900px){.band-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;align-items:start}}

/* Team */
.team{list-style:none;padding:0;margin:28px 0 0;display:grid;gap:24px;grid-template-columns:1fr}
@media (min-width:640px){.team{grid-template-columns:repeat(3,1fr)}}
.team h3{margin:14px 0 2px}
.team p{color:var(--muted);margin:0}
@media (max-width:639px){.team li{display:grid;grid-template-columns:132px 1fr;gap:0 16px;align-items:center}.team .ph-portrait{grid-row:span 2}.team .ph-label{font-size:.72rem;left:6px;right:6px;bottom:6px;padding:5px 7px}.team h3{margin:0 0 2px;align-self:end}.team p{align-self:start}}

/* Steps */
.steps{list-style:none;padding:0;margin:28px 0 0;display:grid;gap:16px;counter-reset:s}
@media (min-width:900px){.steps{grid-template-columns:repeat(3,1fr);gap:24px}}
.steps li{background:var(--cream);border:1px solid var(--line);border-radius:var(--radius);padding:24px}
.step-n{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--teal);color:#fff;font:600 1.05rem var(--sans);margin-bottom:12px}
.steps p{color:var(--muted);margin:0}
.intake{margin:24px 0 8px;display:flex;flex-direction:column;gap:14px;align-items:flex-start;background:var(--tint);border-radius:var(--radius);padding:22px 24px}
.intake h3{margin-bottom:.25em}
.intake p{margin:0;color:var(--ink)}
@media (min-width:900px){.intake{flex-direction:row;align-items:center;justify-content:space-between;gap:32px}}

/* Reviews placeholder */
.reviews-ph{margin-top:20px;border:2px dashed #9DBAB3;border-radius:var(--radius);padding:36px 24px;text-align:center;background:var(--cream-2);color:var(--muted)}
.reviews-ph strong{color:var(--teal-dk);font-size:1.15rem}
.reviews-ph p:last-child{margin:0}

/* Chips */
.chips{list-style:none;display:flex;flex-wrap:wrap;gap:8px;padding:0;margin:18px 0 0}
.chips li{background:var(--cream);border:1px solid var(--line);color:var(--teal-dk);border-radius:999px;padding:6px 14px;font-weight:500;font-size:.95rem}

/* Hours */
.nap{font-style:normal;line-height:1.8}
.hours{width:100%;border-collapse:collapse;background:var(--cream-2);border-radius:var(--radius);overflow:hidden}
.hours th,.hours td{padding:18px 22px;text-align:left;border-bottom:1px solid var(--line)}
.hours tr:last-child th,.hours tr:last-child td{border-bottom:0}
.hours th{font-weight:500}
.hours td{font-weight:600;color:var(--teal-dk);text-align:right;white-space:nowrap}

/* FAQ */
details{background:var(--cream);border:1px solid var(--line);border-radius:14px;padding:0 20px;margin-top:12px}
summary{cursor:pointer;font-weight:600;padding:18px 28px 18px 0;list-style:none;position:relative;color:var(--teal-dk)}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";position:absolute;right:0;top:14px;font-size:1.5rem;color:var(--teal)}
details[open] summary::after{content:"–"}
details p{color:var(--muted)}

/* Final CTA */
.final-cta{background:var(--teal-dk);color:var(--cream);padding:56px 0}
.final-cta h2{color:var(--cream)}
.final-cta p{color:#E4EEEC;margin:0}
.final-grid{display:grid;gap:12px}
@media (min-width:900px){.final-grid{grid-template-columns:1fr auto;align-items:center;gap:48px}}

/* Footer */
.site-footer{background:#0E3331;color:#DDE8E6;padding:56px 0 24px;font-size:.98rem}
.site-footer a{color:#fff}
.footer-grid{display:grid;gap:32px}
@media (min-width:640px){.footer-grid{grid-template-columns:1fr 1fr}}
@media (min-width:1000px){.footer-grid{grid-template-columns:1.4fr 1fr 1fr 1fr}}
.site-footer address{font-style:normal;margin-top:18px;line-height:1.8}
.footer-h{font:600 .8rem/1.3 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--teal-lt);margin:6px 0 12px}
.site-footer ul{list-style:none;padding:0;margin:0;line-height:2}
.footer-base{border-top:1px solid rgba(255,255,255,.15);margin-top:36px;padding-top:18px}
.footer-base p{margin:0;font-size:.88rem;color:#BFD3CF}

/* ===== Multi-page additions (site generator) ===== */
.eyebrow{color:var(--teal)}
/* Mobile nav panel */
@media (max-width:1099px){
  .main-nav.is-open{display:block;position:absolute;left:0;right:0;top:100%;background:var(--cream);border-bottom:1px solid var(--line);box-shadow:0 18px 30px -24px rgba(18,63,60,.5)}
  .main-nav.is-open ul{list-style:none;margin:0;padding:8px 20px 16px;display:grid;gap:2px}
  .main-nav.is-open a{display:block;padding:12px 8px;color:var(--ink);text-decoration:none;font-weight:500;border-bottom:1px solid var(--line)}
  .site-header{position:sticky}
  .header-row{position:relative}
}
@media (min-width:1100px){.nav-extra{display:none}}
.main-nav a[aria-current="page"]{color:var(--teal);font-weight:600}

/* Page hero */
.page-hero{padding:28px 0 36px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,var(--cream) 0%,var(--cream-2) 100%)}
.page-hero h1{font-size:clamp(2rem,1.3rem + 2.8vw,3.1rem);max-width:22ch;margin-bottom:.35em}
.page-lead{font-size:1.12rem;color:var(--muted);max-width:44em}
.page-hero-grid{display:grid;gap:28px}
@media (min-width:900px){.page-hero{padding:40px 0 56px}.page-hero-grid{grid-template-columns:1.1fr .9fr;align-items:center;gap:56px}}
.breadcrumb ol{list-style:none;display:flex;flex-wrap:wrap;gap:6px;padding:0;margin:0 0 18px;font-size:.9rem;color:var(--muted)}
.breadcrumb li+li::before{content:"›";margin-right:6px;color:var(--muted)}
.breadcrumb a{color:var(--teal)}

/* Content + aside */
.content-grid{display:grid;gap:40px;padding-top:44px;padding-bottom:64px}
@media (min-width:1000px){.content-grid{grid-template-columns:minmax(0,1fr) 320px;gap:64px;padding-top:56px;padding-bottom:88px}.aside{position:relative}.aside-card{position:sticky;top:104px}}
.prose{max-width:760px}
.prose h2{font-size:clamp(1.5rem,1.2rem + 1.1vw,2rem);margin:1.9em 0 .55em}
.prose h2:first-child{margin-top:0}
.prose h3{margin:1.4em 0 .4em;font-size:1.2rem;font-weight:600}
.prose ul,.prose ol{padding-left:1.3em;margin:0 0 1.1em}
.prose li{margin:.3em 0}
.prose .ph-inline{margin:1.6em 0;min-height:240px}
.aside-card{background:var(--cream);border:1px solid var(--line);border-radius:var(--radius);padding:24px;display:flex;flex-direction:column;gap:10px}
.aside-card p{margin:0;color:var(--muted);font-size:.98rem}
.aside-title{font-family:var(--serif);font-size:1.35rem!important;color:var(--teal-dk)!important;font-weight:600}
.aside-hours{margin:8px 0 0;font-size:.95rem}
.aside-hours div{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:7px 0}
.aside-hours dt{color:var(--ink)} .aside-hours dd{margin:0;font-weight:600;color:var(--teal-dk)}
.aside-addr{font-size:.95rem}
@media (max-width:999px){.aside{order:2}}

/* Components */
.callout{border-radius:14px;padding:18px 22px;margin:1.5em 0;background:var(--tint);border-left:5px solid var(--teal)}
.callout--urgent{background:#F3ECE0;border-left-color:var(--teal-dk)}
.callout-title{font-weight:600;color:var(--teal-dk);margin-bottom:.4em}
.callout ul{margin-bottom:.6em}
.callout p:last-child{margin-bottom:0}
.cta-box{background:var(--teal-dk);color:var(--cream);border-radius:var(--radius);padding:26px 26px 12px;margin:2em 0}
.cta-box-title{font-family:var(--serif);font-size:1.5rem;font-weight:600;margin-bottom:.3em}
.cta-box p{color:#E4EEEC}
.cta-box .btn-outline{border-color:var(--cream);color:var(--cream)}
.cta-box .btn-outline:hover{background:var(--cream);color:var(--teal-dk)}
.related{border:1px solid var(--line);border-radius:14px;padding:18px 22px;margin:2em 0;background:var(--cream-2)}
.related-title{font-weight:600;color:var(--teal-dk);margin-bottom:.4em}
.related ul{margin:0}
.faq-list{margin-top:.6em}
.faq-item{background:var(--cream);border:1px solid var(--line);border-radius:14px;padding:0 20px;margin-top:10px}
.faq-item summary{cursor:pointer;font-weight:600;padding:16px 28px 16px 0;list-style:none;position:relative;color:var(--teal-dk)}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"+";position:absolute;right:0;top:12px;font-size:1.5rem;color:var(--teal)}
.faq-item[open] summary::after{content:"–"}
.faq-a p{color:var(--muted)}
.data-table{width:100%;border-collapse:collapse;margin:1.2em 0 1.6em;font-size:.98rem;background:var(--cream);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.data-table th,.data-table td{padding:12px 14px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line)}
.data-table thead th{background:var(--tint);color:var(--teal-dk);font-weight:600}
.data-table tr:last-child td{border-bottom:0}
@media (max-width:640px){.data-table,.data-table tbody,.data-table tr,.data-table td{display:block;width:100%}.data-table thead{display:none}.data-table tr{border-bottom:1px solid var(--line);padding:8px 0}.data-table td{border:0;padding:4px 14px}.data-table td:first-child{font-weight:600;color:var(--teal-dk)}}
.two-col{display:grid;gap:16px;margin:1.2em 0 1.6em}
@media (min-width:700px){.two-col{grid-template-columns:1fr 1fr}}
.two-col > div{background:var(--cream);border:1px solid var(--line);border-radius:14px;padding:18px 20px}
.two-col h3{margin-top:0!important}
.checklist{list-style:none;padding-left:0!important}
.checklist li{position:relative;padding-left:30px}
.checklist li::before{content:"";position:absolute;left:0;top:.35em;width:18px;height:18px;border-radius:5px;border:2px solid var(--teal)}
.steps-inline{counter-reset:s;list-style:none;padding-left:0!important}
.steps-inline li{counter-increment:s;position:relative;padding-left:44px;margin:.8em 0}
.steps-inline li::before{content:counter(s);position:absolute;left:0;top:0;width:30px;height:30px;border-radius:50%;background:var(--teal);color:#fff;display:grid;place-items:center;font-weight:600;font-size:.95rem}
.service-block{padding:26px 0;border-top:1px solid var(--line)}
.service-block:first-of-type{border-top:0;padding-top:0}
.link-cards{list-style:none;padding:0!important;display:grid;gap:12px;margin:1em 0 1.6em}
@media (min-width:640px){.link-cards{grid-template-columns:1fr 1fr}}
.link-cards a{display:block;height:100%;background:var(--cream);border:1px solid var(--line);border-radius:14px;padding:16px 18px;text-decoration:none;color:var(--ink)}
.link-cards a:hover{border-color:var(--teal)}
.link-cards strong{display:block;color:var(--teal-dk);font-family:var(--serif);font-size:1.15rem;margin-bottom:2px}
.link-cards span{color:var(--muted);font-size:.95rem}
.placeholder-fact{background:#FFF3C4;color:#3D3300;padding:0 4px;border-radius:4px;font-weight:600}
.draft-note{background:var(--tint);border:2px dashed #9DBAB3;border-radius:14px;padding:16px 20px;margin:0 0 1.6em;color:var(--teal-dk)}
.bio{display:grid;gap:20px;margin:1em 0 2em}
@media (min-width:700px){.bio{grid-template-columns:220px 1fr;align-items:start}}
.bio .ph-portrait{aspect-ratio:4/5;min-height:0;margin:0}

/* Contact form */
.form-grid{display:grid;gap:18px}
@media (min-width:700px){.form-grid .two{display:grid;grid-template-columns:1fr 1fr;gap:18px}}
.field label,.field legend{display:block;font-weight:600;color:var(--teal-dk);margin-bottom:6px}
.field .hint{font-weight:400;color:var(--muted);font-size:.92rem}
.field input[type=text],.field input[type=tel],.field input[type=email],.field select{width:100%;min-height:48px;padding:10px 14px;border:1.5px solid #8FA8A3;border-radius:10px;background:#fff;font:inherit;color:var(--ink)}
.field input:focus,.field select:focus{outline:3px solid var(--teal);outline-offset:1px;border-color:var(--teal)}
fieldset.field{border:0;padding:0;margin:0}
.choice-row{display:flex;flex-wrap:wrap;gap:8px}
.choice{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:8px 14px;border:1.5px solid #8FA8A3;border-radius:999px;background:#fff;font-weight:500;cursor:pointer}
.choice input{accent-color:var(--teal);width:18px;height:18px}
.form-card{background:var(--cream);border:1px solid var(--line);border-radius:var(--radius);padding:24px}
@media (min-width:700px){.form-card{padding:32px}}
.form-note{font-size:.95rem;color:var(--muted)}
.footer-grid--5{gap:32px}
@media (min-width:1000px){.footer-grid--5{grid-template-columns:1.4fr 1fr 1fr 1fr}}
.footer-h--spaced{margin-top:22px!important}
.aside-h2{font-family:"Source Serif 4",Georgia,serif;font-size:1.15rem;margin:22px 0 8px;color:var(--teal-dk)}
.contact-grid{padding-top:40px;padding-bottom:64px}
.contact-grid .form-card h2{margin-top:0}
.contact-grid .ph-inline{margin:12px 0 0;min-height:180px}
.lede{font-size:1.14rem;color:var(--ink)}

/* team portraits (real photos from the live site) + Google review cards */
.portrait{margin:0}
.portrait-img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:50% 20%;border-radius:14px;background:var(--cream-2)}
.team .portrait,.team .ph-portrait{aspect-ratio:4/5;max-width:240px}
@media (max-width:639px){.team .portrait{grid-row:span 2}}
.review-list{list-style:none;padding:0;margin:20px 0 0;display:grid;gap:20px;grid-template-columns:1fr}
@media (min-width:900px){.section .review-list{grid-template-columns:repeat(3,1fr)}}
.review-card figure{margin:0;height:100%;background:#fff;border:1px solid #D9E4E1;border-radius:14px;padding:20px 22px;display:flex;flex-direction:column}
.review-card blockquote{margin:0;flex:1}
.review-card blockquote p{margin:0 0 12px;font-size:1rem;line-height:1.55}
.review-stars{color:#B8641E;letter-spacing:2px;margin:0 0 8px;font-size:1.05rem}
.review-card figcaption{color:var(--muted);font-size:.9rem;font-weight:600}
.review-more{margin:16px 0 1.6em}
.bio .portrait{max-width:260px}

/* ===== Declutter components (dc-*) — Sep 25, 2026 =====
   Shared pattern (macros in templates/components.html). Live on pages with dc=True in pages.py (/, /chiropractic-care, /services, /back-pain, /sciatica, /neck-pain).
   Mobile first: short headings, 1-line card copy, depth inside <details>, swipeable reviews, sticky Request/Call bar. */
.dc-ico{flex:0 0 auto;display:block}
.dc-section{padding:48px 0}
.dc-section--alt{background:var(--cream-2)}
@media (min-width:900px){.dc-section{padding:80px 0}}
.dc-narrow{max-width:820px}
.dc-h2{font-size:clamp(1.6rem,1.2rem + 1.6vw,2.3rem);margin:0 0 .35em}
.dc-kicker{color:var(--muted);font-size:1.05rem;max-width:36em;margin:0 0 .5em}
.dc-muted{color:var(--muted);font-size:.98rem}
.dc-link{margin:22px 0 0}
.dc-and-more{margin:16px 0 0}
.text-link{font-weight:600}

/* Hero (homepage) */
.dc-hero{padding:22px 0 36px}
.dc-hero-grid{display:grid;gap:22px}
.dc-hero .hero-h1{font-size:.9rem;margin:0 0 .7em}
.dc-hero .display{margin:0 0 .3em}
.dc-hero-sub{font-family:var(--serif);font-size:clamp(1.15rem,1rem + .7vw,1.5rem);line-height:1.35;color:var(--teal);font-weight:500;margin:0}
.dc-hero-photo{aspect-ratio:16/10}
@media (min-width:900px){.dc-hero{padding:64px 0 80px}.dc-hero-grid{grid-template-columns:1.05fr .95fr;align-items:center;gap:56px}.dc-hero .hero-h1{font-size:1rem}.dc-hero-photo{aspect-ratio:4/3}}

/* CTA pair */
.dc-cta{display:flex;flex-wrap:wrap;gap:10px;margin:22px 0 0}
.dc-cta .btn .dc-ico{margin-right:2px}
.dc-cta--block .btn{flex:1 1 100%}
@media (min-width:600px){.dc-cta--block .btn{flex:0 0 auto}}

/* Service-page hero (page-hero--dc) */
.page-hero--dc{padding:18px 0 32px}
.page-hero--dc .breadcrumb ol{margin-bottom:12px;font-size:.85rem}
.page-hero--dc h1{margin-bottom:.25em}
.page-hero--dc .page-lead{font-size:1.08rem;margin:0}
.page-hero--dc .hero-photo{aspect-ratio:16/10}
@media (min-width:900px){.page-hero--dc{padding:40px 0 64px}.page-hero--dc .hero-photo{aspect-ratio:4/3}}

/* Icon cards */
.dc-cards{list-style:none;margin:20px 0 0;padding:0;display:grid;gap:12px;grid-template-columns:1fr 1fr}
.dc-cards--3{grid-template-columns:1fr}
.dc-cards--2{grid-template-columns:1fr}
@media (min-width:640px){.dc-cards--3{grid-template-columns:repeat(3,1fr)}.dc-cards--2{grid-template-columns:1fr 1fr}}
@media (min-width:1024px){.dc-cards--4{grid-template-columns:repeat(4,1fr);gap:20px}.dc-cards{gap:20px}}
.dc-card>a,.dc-card>div{position:relative;display:flex;flex-direction:column;gap:4px;height:100%;background:var(--cream);border:1px solid var(--line);border-radius:16px;padding:16px;text-decoration:none;color:var(--ink)}
.dc-section--alt .dc-card>a,.dc-section--alt .dc-card>div{background:#fff}
.dc-card>a{transition:border-color .15s,transform .15s,box-shadow .15s}
.dc-card>a:hover{border-color:var(--teal);transform:translateY(-2px);box-shadow:0 10px 24px -16px rgba(18,63,60,.5)}
.dc-card-ico{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:var(--tint);color:var(--teal);margin-bottom:6px;flex:0 0 auto}
.dc-card-t{font-family:var(--serif);font-weight:600;font-size:1.12rem;line-height:1.2;color:var(--teal-dk)}
.dc-card-l{color:var(--muted);font-size:.92rem;line-height:1.4}
.dc-card-go{position:absolute;top:16px;right:14px;color:var(--teal)}
/* single-column card lists read as compact rows on mobile */
@media (max-width:639px){
  .dc-cards--3 .dc-card>div,.dc-cards--2 .dc-card>a{flex-direction:row;align-items:center;gap:14px;padding:14px 16px}
  .dc-cards--3 .dc-card-ico,.dc-cards--2 .dc-card-ico{margin:0}
  .dc-cards--3 .dc-card>div>span:not(.dc-card-ico),.dc-cards--2 .dc-card>a>span:not(.dc-card-ico):not(.dc-card-go){display:block}
  .dc-cards--2 .dc-card-go{position:static;margin-left:auto}
}
@media (max-width:639px){.dc-cards--3 .dc-card>div{display:grid;grid-template-columns:44px 1fr;column-gap:14px;row-gap:0}.dc-cards--3 .dc-card-ico{grid-row:span 2}
  .dc-cards--2 .dc-card>a{display:grid;grid-template-columns:44px 1fr 18px;column-gap:14px;row-gap:0}.dc-cards--2 .dc-card-ico{grid-row:span 2}.dc-cards--2 .dc-card-go{grid-row:1/span 2;grid-column:3}}
@media (min-width:1024px){.dc-card>a,.dc-card>div{padding:24px}.dc-card-t{font-size:1.25rem}.dc-card-l{font-size:.98rem}}

/* Steps */
.dc-steps{list-style:none;margin:20px 0 0;padding:0;display:grid;gap:10px}
.dc-steps li{display:flex;gap:14px;align-items:flex-start;background:var(--cream);border:1px solid var(--line);border-radius:16px;padding:14px 16px}
.dc-section--alt .dc-steps li{background:#fff}
.dc-step-n{flex:0 0 auto;width:32px;height:32px;border-radius:50%;background:var(--teal);color:#fff;display:grid;place-items:center;font-weight:600;font-size:.95rem}
.dc-step-t{display:block;font-family:var(--serif);font-weight:600;font-size:1.1rem;color:var(--teal-dk);line-height:1.25}
.dc-step-l{display:block;color:var(--muted);font-size:.95rem;line-height:1.4;margin-top:2px}
@media (min-width:900px){.dc-steps{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px}.dc-steps li{flex-direction:column;padding:22px}}

/* Read-more expanders + accordions (dc-more shares the look of .faq-item) */
.dc-more{margin-top:18px;border-top:1px solid var(--line)}
.dc-more>summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:8px;padding:14px 0;font-weight:600;color:var(--teal)}
.dc-more>summary::-webkit-details-marker{display:none}
.dc-more>summary::after{content:"+";margin-left:auto;font-size:1.4rem;line-height:1;color:var(--teal)}
.dc-more[open]>summary::after{content:"–"}
.dc-more-body{padding:0 0 8px;max-width:46em}
.dc-more-body p,.dc-more-body li{color:var(--muted)}
.dc-more-body h3{font-size:1.12rem;font-weight:600;margin:1em 0 .35em}
.dc-more-body ul,.dc-more-body ol{padding-left:1.2em}
.dc-accordion{margin-top:16px}
.dc-accordion .dc-more,.dc-accordion .faq-item{background:#fff;border:1px solid var(--line);border-radius:14px;padding:0 18px;margin:0 0 10px}
.dc-accordion .dc-more>summary,.dc-accordion .faq-item summary{color:var(--teal-dk);padding:15px 28px 15px 0;position:relative;display:block}
.dc-accordion .dc-more>summary::after,.dc-accordion .faq-item summary::after{position:absolute;right:0;top:12px;margin:0;font-size:1.4rem;line-height:1.2}
.dc-accordion .faq-list{margin:0}
.dc-accordion .faq-item{margin-top:0}

/* Team (compact 3-up, even on mobile) */
.dc-team{list-style:none;margin:20px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.dc-team .portrait-img{border-radius:12px}
.dc-team h3{font-size:.95rem;font-weight:600;margin:10px 0 0;line-height:1.25}
.dc-team p{margin:2px 0 0;color:var(--muted);font-size:.82rem;line-height:1.35}
@media (min-width:640px){.dc-team{gap:28px;max-width:820px}.dc-team h3{font-size:1.2rem}.dc-team p{font-size:.95rem}}

/* New patient forms strip */
.dc-forms{display:grid;grid-template-columns:44px 1fr;gap:4px 14px;align-items:center;margin:16px 0 0;background:var(--tint);border-radius:16px;padding:16px}
.dc-forms .dc-card-ico{background:var(--cream);margin:0}
.dc-forms p{margin:0;font-size:.95rem}
.dc-forms .btn{grid-column:1/-1;justify-self:start;margin-top:10px}
@media (min-width:900px){.dc-forms{grid-template-columns:44px 1fr auto;padding:18px 22px}.dc-forms .btn{grid-column:auto;margin:0}}

/* Reviews: swipe row on mobile, 3-up on desktop */
.dc-swipe{list-style:none;margin:16px -20px 0;padding:4px 20px 12px;display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding:0 20px;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.dc-swipe::-webkit-scrollbar{display:none}
.dc-review{flex:0 0 84%;scroll-snap-align:start}
.dc-review figure{margin:0;height:100%;background:#fff;border:1px solid #D9E4E1;border-radius:16px;padding:18px 20px;display:flex;flex-direction:column}
.dc-review blockquote{margin:0}
.dc-review blockquote p{margin:0;font-size:.98rem;line-height:1.55}
.js .dc-clamp{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;overflow:hidden}
.js .dc-clamp.is-open{display:block;-webkit-line-clamp:unset;overflow:visible}
.dc-expand{align-self:flex-start;background:none;border:0;padding:8px 0 0;font:600 .92rem/1.3 var(--sans);color:var(--teal);cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.dc-expand[hidden]{display:none}
.dc-stars{color:#B8641E;letter-spacing:2px;margin:0 0 8px;font-size:1rem}
.dc-review figcaption{margin-top:auto;padding-top:12px;color:var(--muted);font-size:.88rem;font-weight:600}
.dc-review-more{margin:12px 0 0}
@media (min-width:900px){.dc-swipe{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:20px 0 0;padding:0;overflow:visible}.dc-review{flex:none}}

/* Visit us */
.dc-visit{display:grid;gap:12px;margin-top:18px}
@media (min-width:800px){.dc-visit{grid-template-columns:1fr 1fr;gap:20px}}
.dc-visit-card{background:var(--cream-2);border-radius:16px;padding:18px 20px}
.dc-visit-card .nap{font-style:normal;line-height:1.6;margin:0 0 6px}
.dc-visit-card .btn{margin-top:4px}
.dc-visit-k{display:flex;align-items:center;gap:8px;font:600 .8rem/1.3 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--teal);margin:0 0 10px}
.dc-visit-k--area{margin:26px 0 0}
.dc-hours{width:100%;border-collapse:collapse}
.dc-hours th,.dc-hours td{padding:9px 0;text-align:left;border-bottom:1px solid var(--line);font-weight:500}
.dc-hours tr:last-child th,.dc-hours tr:last-child td{border-bottom:0}
.dc-hours td{text-align:right;font-weight:600;color:var(--teal-dk);white-space:nowrap}

/* Chips */
.dc-chips{list-style:none;display:flex;flex-wrap:wrap;gap:8px;padding:0;margin:12px 0 0}
.dc-chips a{display:inline-flex;align-items:center;min-height:40px;padding:6px 14px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--teal-dk);font-weight:500;font-size:.95rem;text-decoration:none}
.dc-chips a:hover{border-color:var(--teal);color:var(--teal)}

/* Final CTA (short) */
.dc-final{padding:44px 0}
.dc-final h2{margin:0}
.dc-final .cta-row{margin:18px 0 0}

/* Sticky mobile CTA bar (hidden ≥900px). Without JS it simply stays visible. */
.dc-sticky{position:fixed;left:0;right:0;bottom:0;z-index:60;display:flex;gap:10px;padding:10px 14px calc(10px + env(safe-area-inset-bottom));background:rgba(251,247,240,.97);backdrop-filter:blur(8px);border-top:1px solid var(--line);box-shadow:0 -10px 24px -18px rgba(18,63,60,.5);transition:transform .2s ease}
.dc-sticky .btn{flex:1 1 0;min-height:48px}
.dc-sticky.is-ready{transform:translateY(120%)}
.dc-sticky.is-ready.is-on{transform:none}
.page-dc{padding-bottom:72px}
@media (min-width:900px){.dc-sticky{display:none}.page-dc{padding-bottom:0}}
/* On opted-in pages the sticky bar + hero carry the CTAs on small screens, so the header is just logo + menu */
@media (max-width:899px){.page-dc .site-header .phone-link,.page-dc .site-header .btn-request{display:none}}
@media (prefers-reduced-motion:reduce){.dc-sticky{transition:none}}

/* Responsive show/hide (same 900px breakpoint as the dc sticky bar). display:none also hides from screen readers. */
@media (max-width:899px){.dc-desktop-only{display:none!important}}
@media (min-width:900px){.dc-mobile-only{display:none!important}}
.dc-card-note{grid-column:2}
@media (min-width:640px){.dc-card-note{grid-column:auto}}
/* Homepage small H1: always one line on desktop (≥900px). Font scales with the hero text column
   (col ≈ (100vw − 96px) × 0.525 below the 1240px wrap; text ≈ 28.8em wide, sized to 31.7em for ~10% safety), capped at 1rem. */
@media (min-width:900px){.dc-hero .hero-h1{white-space:nowrap;letter-spacing:0;font-size:clamp(.8rem,calc((100vw - 96px) * .525 / 31.7),1rem)}}

/* ===== No sideways scroll 320–1920 (Sep 25, 2026) =====
   1) Full desktop nav starts at 1280px (was 1100): 1100–1279 uses the menu button + drop-down panel, like tablet.
   2) ≥1280: slightly tighter nav links + header buttons, so the header fits inside the page margins (with room for a ~15px scrollbar at 1280).
   3) "Request an appointment" full label from 768px (was 600); "Call" short label below 420px (was 375).
   4) Aside/content grids can't be pushed wider than the screen by long unbreakable content. */
@media (min-width:1100px) and (max-width:1279px){
  .main-nav{display:none}
  .menu-btn{display:inline-flex}
  .header-row{position:relative}
  .main-nav.is-open{display:block;position:absolute;left:0;right:0;top:100%;background:var(--cream);border-bottom:1px solid var(--line);box-shadow:0 18px 30px -24px rgba(18,63,60,.5)}
  .main-nav.is-open ul{display:grid;gap:2px;margin:0;padding:8px 20px 16px}
  .main-nav.is-open a{padding:12px 8px;border-bottom:1px solid var(--line);border-radius:0;font-size:1rem}
  .main-nav.is-open a:hover{background:transparent}
  .nav-extra{display:list-item}
}
@media (min-width:1280px){.main-nav a{padding:10px 7px;font-size:.94rem}.main-nav ul{gap:2px;margin-right:4px}.site-header .phone-link{padding:0 11px}.phone-num{font-size:.92rem}.site-header .btn-request{padding:.55em .95em}}
@media (min-width:600px) and (max-width:767px){.hide-sm{display:none}}
@media (min-width:375px) and (max-width:419px){.phone-num{display:none}.phone-short{display:inline}}
@media (max-width:999px){.content-grid{grid-template-columns:minmax(0,1fr)}}
.aside-card .btn,.form-card .btn{white-space:normal;text-align:center}
@media (max-width:419px){.prose .btn,.dc-section .btn,.final-cta .btn{white-space:normal;text-align:center;max-width:100%}}
/* Homepage small H1 on one line on mobile too (<900px): content column = 100vw − 40px; text ≈ 28.8em wide at 0 tracking, sized to 29em (~3% safety), capped at 1rem. */
@media (max-width:899px){.dc-hero .hero-h1{white-space:nowrap;letter-spacing:0;font-size:clamp(8px,calc((100vw - 40px) / 29),1rem)}}

/* Hero order (big line > subline > small H1): subline carries the gap the H1 used to; H1 sits right above the CTAs */
.dc-hero .dc-hero-sub{margin:0 0 .45em}.dc-hero .hero-h1{margin:0}

/* ===== Homepage hero typography (Sep 26, 2026, approved by Josh) =====
   Big line: tighter 1.03 leading. Tagline: Source Serif 4 italic. Small H1: uppercase Inter 600 label in copper
   (#A6521F on cream #FBF7F0 = 5.11:1, passes AA for normal text). Short copper rule (decorative pseudo-element) between tagline and H1.
   H1 sizing: uppercase + .06em tracking is ≈37.3em wide; sized to 38.5em (~3% safety).
   ≥480px: one line, fluid, capped at .9rem. <480px (narrow phones): one line would fall under ~10.5px, so it wraps to 2 balanced lines at .8125rem. */
.dc-hero .display{line-height:1.03;margin:0 0 .4em}
.dc-hero .dc-hero-sub{font-style:italic;margin:0}
.dc-hero .dc-hero-sub::after{content:"";display:block;width:40px;height:2px;background:var(--copper);margin:20px 0 16px}
.dc-hero .hero-h1{font-family:var(--sans);font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--copper);line-height:1.45;margin:0 0 10px}
@media (min-width:480px) and (max-width:899px){.dc-hero .hero-h1{white-space:nowrap;font-size:min(calc((100vw - 40px) / 38.5),.9rem)}}
@media (max-width:479px){.dc-hero .hero-h1{white-space:normal;text-wrap:balance;font-size:.8125rem}}
@media (min-width:900px){.dc-hero .display{margin-bottom:.35em}.dc-hero .dc-hero-sub::after{margin:24px 0 18px}.dc-hero .hero-h1{white-space:nowrap;font-size:clamp(.625rem,calc((100vw - 96px) * .525 / 38.5),.9rem);margin-bottom:14px}}

/* Declutter rollout (Sep 26, 2026): checklists inside dc sections read as one white card with teal check marks */
.dc-checks{margin:16px 0 0;padding:6px 18px!important;background:#fff;border:1px solid var(--line);border-radius:16px;max-width:46em}
.dc-section:not(.dc-section--alt) .dc-checks{background:var(--cream)}
.dc-checks li{padding:11px 0 11px 30px;border-bottom:1px solid var(--line);line-height:1.4}
.dc-checks li:last-child{border-bottom:0}
.dc-checks li::before{top:13px;border:0;background:var(--tint);border-radius:50%}
.dc-checks li::after{content:"";position:absolute;left:6px;top:17px;width:6px;height:9px;border:solid var(--teal);border-width:0 2px 2px 0;transform:rotate(45deg)}
.dc-more-body .callout{margin:.5em 0 1em}

/* Declutter rollout batch 2 (Sep 26, 2026) */
/* About: team cards = portrait + short bio, full bio in an expander below */
.dc-people{list-style:none;margin:20px 0 0;padding:0;display:grid;gap:14px}
.dc-person{display:grid;grid-template-columns:104px 1fr;gap:4px 16px;align-items:center;background:var(--cream);border:1px solid var(--line);border-radius:16px;padding:14px}
.dc-section--alt .dc-person{background:#fff}
.dc-person .portrait-img{border-radius:12px}
.dc-person h3{font-size:1.15rem;margin:0;line-height:1.25}
.dc-person-role{margin:2px 0 0;color:var(--teal);font-weight:600;font-size:.88rem;line-height:1.35}
.dc-person-l{margin:6px 0 0;color:var(--muted);font-size:.95rem;line-height:1.45}
.dc-person .dc-more{grid-column:1/-1;margin-top:10px}
@media (min-width:700px){.dc-person{grid-template-columns:160px 1fr;padding:20px;gap:6px 24px}.dc-person h3{font-size:1.3rem}}
@media (min-width:1024px){.dc-people{grid-template-columns:repeat(3,1fr);gap:20px}.dc-person{grid-template-columns:1fr;align-items:start}.dc-person .portrait-img{max-width:200px}}
/* Contact: quick-call strip + visit cards */
.dc-callstrip{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin:0 0 18px}
.dc-callstrip p{margin:0;color:var(--muted)}
.contact-dc{padding-top:28px;padding-bottom:48px}
.contact-dc>*{max-width:720px}
.contact-dc .callout{margin:14px 0 18px;padding:12px 16px}
.contact-dc .callout p{margin:0}
/* Solid teal button for important non-booking actions (copper stays reserved for Request) */
.btn-teal{background:var(--teal);border-color:var(--teal);color:#fff}
.btn-teal:hover{background:var(--teal-dk);border-color:var(--teal-dk);color:#fff}
/* FAQ jump chips */
.dc-jump{padding-top:20px}
.dc-jump .dc-chips{margin:0}

/* Articles (declutter batch 4, Sep 26): topic expanders keep real h2 headings in the summary */
.dc-topic>summary h2{font-family:var(--sans,inherit);font-size:1.05rem;font-weight:600;line-height:1.35;color:inherit;margin:0;letter-spacing:0}
.dc-topic--urgent{border-color:#e7c3b0!important}
.dc-topic--urgent>summary h2::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:#A6521F;margin:0 8px 2px 0;vertical-align:middle}
.dc-accordion .dc-more .dc-more-body .lede{font-size:1.02rem;color:var(--muted)}
.dc-more-body table{width:100%;font-size:.94rem}
.dc-more-body .two-col{gap:16px}
/* articles: key points + guide share one left-aligned reading column */
.dc-keys,.dc-guide{max-width:820px}
/* article key points: compact rows on phones (scoped so /neck-pain and /massage-therapy cards are unchanged) */
@media (max-width:639px){.dc-keys .dc-cards--2 .dc-card>div{display:grid;grid-template-columns:44px 1fr;column-gap:14px;row-gap:0;padding:14px 16px}.dc-keys .dc-cards--2 .dc-card>div .dc-card-ico{grid-row:span 2;margin:0}}

/* Photos (Sep 26 photo pass) */
.hero-photo img{object-position:50% 50%}
.page-hero--dc .hero-photo--sm{aspect-ratio:2/1}
@media (min-width:900px){.page-hero--dc .hero-photo--sm{aspect-ratio:3/2;max-width:420px;width:100%;justify-self:end}}
.dc-photo{margin:0;border-radius:var(--radius);overflow:hidden;aspect-ratio:4/3;background:var(--tint)}
.dc-photo picture,.dc-photo img{display:block;width:100%;height:100%}
.dc-photo img{object-fit:cover}
.dc-visit-card .dc-photo{margin:-18px -20px 16px;border-radius:16px 16px 0 0;aspect-ratio:16/10}
.hero-photo img[src*="clinic-exterior"],.dc-photo img[src*="clinic-exterior"]{object-position:50% 12%}

/* Request form (Sep 26 form wiring) */
.hp-field{position:absolute!important;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}
.form-card{position:relative}
.form-status{border-radius:12px;padding:14px 16px;outline:none}
.form-status p{margin:0}
.form-status.is-ok{background:var(--tint);color:var(--teal-dk)}
.form-status.is-err{background:#FBEDE4;color:#6B2F10}
.form-status.is-err a{color:#6B2F10;font-weight:600}

/* Contact map embed (Sep 27 go-live prep) */
.map-embed{margin-top:16px;border-radius:12px;overflow:hidden;aspect-ratio:4/3;background:var(--tint);border:1px solid var(--line)}
.map-embed iframe{display:block;width:100%;height:100%;border:0}
@media (min-width:800px){.map-embed{aspect-ratio:16/10}}
