:root { --ink:#183330; --muted:#566762; --line:#dce6e2; --soft:#eaf3ef; --soft-2:#f5f7f6; --teal:#087c74; --teal-dark:#07675f; --aqua:#cee8e0; --shadow:0 12px 36px rgba(24,51,48,.08); }
body { font-size:16px; line-height:1.7; }
h1,h2,h3 { text-wrap:balance; }
h1 { font-size:3.5rem; line-height:1.12; max-width:780px; }
h2 { font-size:2.5rem; line-height:1.18; }
h3 { font-size:1.25rem; }
p { text-wrap:pretty; }
.eyebrow { font-size:.875rem; }
.site-header { position:sticky; display:flex; justify-content:space-between; top:0; min-height:88px; background:#fff; padding:16px max(24px,calc((100vw - 1360px)/2)); gap:24px; backdrop-filter:none; transform:none!important; }
.site-header.is-open { opacity:1; }
.brand { min-width:0; }
.brand strong { font-size:1.6rem; line-height:1.15; }
.brand small { font-size:.875rem; font-weight:500; }
.site-nav { background:transparent; border:0; padding:0; gap:4px; border-radius:0; font-size:.9375rem; }
.site-nav a { border-radius:5px; padding:10px 13px; }
.site-nav a:hover { background:var(--soft); box-shadow:none; }
.site-nav a.is-active { color:var(--teal-dark); background:var(--soft); box-shadow:inset 0 -2px var(--teal-dark); }
.header-cta,.primary-button,.secondary-button { border-radius:6px; box-shadow:none; min-height:48px; font-size:1rem; gap:10px; white-space:normal; text-align:center; }
.header-cta:hover,.primary-button:hover { background:#054d47; box-shadow:0 6px 18px rgba(7,103,95,.14); }
.secondary-button { border:1px solid var(--line); }
.language-button { border-radius:6px; min-height:44px; font-size:.875rem; }
.hero { min-height:620px; height:calc(88svh - 88px); max-height:800px; padding:72px max(24px,calc((100vw - 1280px)/2)); }
.hero-content { width:min(680px,100%); padding:0; }
.hero h1 { font-size:3.75rem; }
.hero-copy { font-size:1.125rem; max-width:560px; }
.hero-overlay { background:linear-gradient(90deg,rgba(245,249,247,.98),rgba(245,249,247,.93) 35%,rgba(245,249,247,.25) 74%,rgba(245,249,247,.02)); }
.hero-image { object-position:70% center; }
.intro-band { padding:32px max(24px,calc((100vw - 1280px)/2)); gap:24px; }
.metric { padding:20px; gap:8px; }
.metric-icon { color:var(--teal-dark) !important; }
.metric strong { font-size:1.125rem; }
.section,.split-section,.contact-section,.location-section,.detail-content,.booking-layout { padding:88px max(24px,calc((100vw - 1280px)/2)); }
.section-heading { max-width:740px; margin-bottom:40px; }
.services-teaser { background:var(--soft); border:0; }
.services-teaser .section-heading { max-width:880px; }
.team-section { display:block; background:#fff; }
.split-copy { position:static; max-width:740px; margin-bottom:40px; }
.team-list { grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; }
.team-card { box-shadow:none; border:1px solid var(--line); }
.team-card strong { font-size:1.0625rem; line-height:1.4; }
.team-card p { font-size:.9375rem; line-height:1.6; }
.team-photo { aspect-ratio:5/4; background:#eef2f0; }
.team-photo::before { display:none; }
.muted { background:var(--soft-2); border:0; }
.schedule-grid { gap:32px; }
.schedule-grid article { border:0; border-top:3px solid var(--teal-dark); box-shadow:none; padding:32px; }
.schedule-grid article h3 { color:var(--teal-dark); background:none; padding:0; border-radius:0; font-size:1rem; }
.schedule-grid article > a { margin-top:8px; }
.schedule-grid article > a:first-of-type { margin-top:auto; padding-top:24px; }
.schedule-grid a,.info-card a,.detail-aside a,.location-card a,.site-footer a { display:flex; align-items:center; gap:10px; transition:color .25s,transform .25s; }
.hours-list div,.wide-hours div { padding:8px 0; }
.hours-list dd,.footer-hours dd { white-space:nowrap; font-variant-numeric:tabular-nums; }
.location-section { background:#e2eee8; border:0; grid-template-columns:1fr 1.15fr; gap:56px; }
.location-copy h2 { font-size:2.25rem; }
.location-map-card { box-shadow:none; border:1px solid #cadbd2; }
.location-map-card:hover { transform:none; }
.location-card { padding:24px 28px; gap:10px; }
.contact-section { background:#133e36; gap:48px; }
.contact-section p { color:#d5e3dd; }
.contact-panel { background:transparent; color:#fff; padding:0; border-radius:0; box-shadow:none; }
.contact-panel span,.contact-panel a:not(.primary-button) { color:#fff; }
.contact-panel:hover { transform:none; box-shadow:none; }
.contact-panel .primary-button { background:#fff; color:var(--teal-dark); }
.site-footer { background:#102e28; color:#d5e3dd; }
.footer-main { max-width:1440px; margin:auto; padding:64px 56px; grid-template-columns:1.2fr .7fr 1fr; gap:64px; }
.footer-brand strong { font-size:1.875rem; line-height:1.2; }
.footer-brand span { font-size:.9375rem; font-weight:500; }
.site-footer a { overflow-wrap:anywhere; font-weight:500; }
.site-footer p,.footer-brand p { color:#c8d9d1; }
.footer-bottom { max-width:1440px; margin:auto; padding:24px 56px; }
.page-hero,.services-page-hero { padding:64px max(24px,calc((100vw - 1280px)/2)); background:var(--soft); }
.page-hero div { width:min(880px,100%); }
.page-hero h1 { font-size:3rem; }
.services-overview { background:#fff; }
.service-grid { gap:28px; }
.service-card { min-height:0; box-shadow:none; border:1px solid var(--line); padding-bottom:26px; }
.service-card:hover { box-shadow:var(--shadow); }
.service-card img { height:auto; aspect-ratio:8/5; object-fit:cover; }
.service-card h3 { font-size:1.375rem; }
.service-card p { font-size:1rem; }
.service-link { font-size:.9375rem; }
.service-contact-strip { background:var(--soft-2); border:0; }
.service-contact-strip h2 { font-size:2.25rem; }
.mail-grid a { box-shadow:none; font-weight:600; }
.detail-hero { padding:56px max(24px,calc((100vw - 1280px)/2)) 64px; background:var(--soft); grid-template-columns:1.15fr 1fr; gap:64px; }
.detail-hero h1 { font-size:3.25rem; }
.detail-hero img { height:auto; aspect-ratio:8/5; box-shadow:none; }
.detail-hero p:not(.eyebrow) { font-size:1.125rem; }
.breadcrumb { display:flex; flex-wrap:wrap; gap:10px; font-size:.875rem; color:var(--muted); margin:0 0 24px; }
.breadcrumb a:hover { color:var(--teal-dark); text-decoration:underline; }
.detail-content { grid-template-columns:minmax(0,1fr) 320px; gap:72px; }
.detail-content article { padding-bottom:24px; }
.detail-content article h2 { font-size:1.875rem; }
.detail-content article p { font-size:1rem; }
.detail-content article ul { padding-left:22px; color:var(--muted); }
.detail-content article li { margin-bottom:8px; }
.detail-aside { top:112px; box-shadow:none; background:var(--soft-2); border:0; border-top:3px solid var(--teal-dark); }
.detail-aside h3 { margin:0; }
.detail-aside p { font-size:.9375rem; margin:0; }
.detail-aside a:not(.primary-button) { font-size:.9375rem; font-weight:600; }
.detail-aside .primary-button { margin-top:10px; }
.related-services { display:flex; flex-wrap:wrap; gap:12px; padding:20px 0; }
.related-services a { padding:8px 14px; background:var(--soft); border-radius:4px; font-weight:600; transition:background .25s; }
.related-services a:hover { background:var(--aqua); }
.booking-layout { grid-template-columns:360px minmax(0,1fr); gap:48px; }
.booking-info { gap:24px; }
.info-card { border:0; border-top:2px solid var(--line); border-radius:0; padding:24px 0; background:transparent; }
.info-card h2 { font-size:1.5rem; }
.info-card:hover,.form-card:hover { transform:none; box-shadow:none; }
.form-card { box-shadow:none; border:1px solid var(--line); padding:36px; }
.form-card h2 { font-size:2rem; }
.booking-form input,.booking-form select,.booking-form textarea { font-weight:400; font-size:1rem; min-width:0; }
.booking-form input:hover,.booking-form textarea:hover,.booking-form select:hover,.booking-form input:focus { transform:none; }
.checkbox-label input { width:20px; height:20px; min-height:20px; accent-color:var(--teal-dark); }
.booking-form .checkbox-label { grid-template-columns:20px 1fr; font-size:.9375rem; font-weight:400; }
.booking-form button { font:inherit; font-weight:650; }
.form-note { font-size:.9375rem; font-weight:500; }
.form-note:not(:empty) { color:var(--ink); background:var(--soft); border-color:var(--line); }
.reveal { transition:opacity .55s ease,transform .55s ease; }
.reveal.is-visible:hover.service-card,.reveal.is-visible:hover.team-card { transform:translateY(-4px); }
.site-header.is-open .site-nav,.site-header.is-open .header-cta { animation:menu-in .24s ease both; }
.nav-toggle span { transition:transform .25s,opacity .25s; }
.site-header.is-open .nav-toggle span:first-child { transform:translateY(7px) rotate(45deg); }
.site-header.is-open .nav-toggle span:nth-child(2) { opacity:0; }
.site-header.is-open .nav-toggle span:last-child { transform:translateY(-7px) rotate(-45deg); }
@keyframes menu-in { from { opacity:0; transform:translateY(-6px); } to { opacity:1; transform:translateY(0); } }
.service-card:nth-child(n),.team-card:nth-child(n),.schedule-grid article:nth-child(n) { transition-delay:0s; }
@media(min-width:941px) and (max-width:1150px) { .site-header { gap:10px; } .brand strong { font-size:1.35rem; } .site-nav a { padding:10px 9px; } }
@media(max-width:1000px) { .team-list { grid-template-columns:repeat(3,minmax(0,1fr)); } .booking-layout { grid-template-columns:280px minmax(0,1fr); gap:28px; } .footer-main { gap:32px; padding:56px 24px; } }
@media(max-width:940px) {
  .site-header { grid-template-columns:1fr auto; padding:16px 24px; min-height:76px; }
  .site-header.is-open .language-dropdown { justify-self:start; margin-top:0; }
  .site-header.is-open .language-menu { left:0; right:auto; }
  .site-header.is-open .site-nav { margin-top:0; padding:12px 0; }
  .site-header.is-open .site-nav a { padding:12px; border-radius:4px; }
  .site-header.is-open .header-cta { margin:0 0 4px; }
  .hero { height:auto; min-height:560px; padding:64px 24px; }
  .hero h1 { font-size:3.25rem; }
  .hero-overlay { background:linear-gradient(90deg,rgba(245,249,247,.97),rgba(245,249,247,.85) 55%,rgba(245,249,247,.6)); }
  .intro-band { grid-template-columns:repeat(3,minmax(0,1fr)); padding:28px 24px; gap:12px; }
  .metric { padding:12px 0; }
  .metric span:last-child { font-size:.9375rem; }
  .section,.location-section,.contact-section,.detail-content,.booking-layout { padding:64px 24px; }
  .service-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .team-list { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .schedule-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
  .location-section,.contact-section,.service-contact-strip,.booking-layout,.detail-hero,.detail-content { grid-template-columns:1fr; }
  .detail-hero { padding:40px 24px 56px; gap:32px; }
  .detail-hero img { max-width:640px; }
  .booking-info { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .booking-layout .form-card { order:-1; }
  .booking-info .info-card:first-child { grid-column:1/-1; }
  .footer-main { grid-template-columns:1fr 1fr; }
  .footer-brand { grid-column:1/-1; }
  .footer-bottom { padding:24px; }
}
@media(max-width:620px) {
  .site-header { padding:14px 20px; min-height:72px; }
  .brand strong { font-size:1.25rem; }
  .hero { min-height:580px; padding:48px 20px; }
  .hero h1 { font-size:2.5rem; }
  h1,.page-hero h1,.detail-hero h1 { font-size:2.25rem; }
  h2,.location-copy h2,.service-contact-strip h2 { font-size:1.875rem; }
  .hero-content { max-width:100%; }
  .hero-copy { font-size:1rem; }
  .hero-actions { margin-top:24px; }
  .intro-band { grid-template-columns:1fr; padding:24px 20px; gap:8px; }
  .metric { padding:18px; }
  .section,.contact-section,.location-section,.detail-content,.booking-layout { padding:48px 20px; }
  .page-hero,.detail-hero { padding:40px 20px; }
  .section-heading,.split-copy { margin-bottom:28px; }
  .team-list { grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
  .team-card > div:last-child { padding:14px; }
  .team-card strong { font-size:1rem; }
  .team-card p { font-size:.875rem; }
  .service-grid,.schedule-grid,.booking-info,.footer-main { grid-template-columns:1fr; }
  .service-card h3,.service-card p,.service-link { margin-left:22px; margin-right:22px; }
  .service-card h3 { font-size:1.25rem; }
  .schedule-grid article { padding:24px; }
  .hours-list div,.wide-hours div { flex-direction:row; gap:16px; }
  .location-section { gap:32px; }
  .location-map-card iframe { height:280px; }
  .location-card { padding:24px; }
  .form-card { padding:24px 20px; }
  .info-card { padding:20px 0; }
  .footer-main { padding:48px 20px; gap:32px; }
  .footer-brand { grid-column:auto; }
  .footer-bottom { padding:20px; }
}
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { transition-duration:.01ms!important; animation-duration:.01ms!important; } }

/* Shared navigation and touch-friendly service cards. */
.header-panel { display:flex; align-items:center; gap:16px; }
.header-cta svg,.flip-card svg { width:20px; height:20px; flex-shrink:0; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.header-cta svg { transition:transform .25s ease; }
.header-cta:hover svg { transform:translate(2px,-2px); }
.site-nav { gap:2px; }
.site-nav a { padding:10px 11px; }
.language-dropdown { margin-left:4px; }
.nav-backdrop { display:none; }
.flip-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.flip-card { min-width:0; perspective:1200px; }
.flip-inner { display:grid; height:100%; position:relative; transform-style:preserve-3d; transition:transform .32s cubic-bezier(.22,.68,.18,1); }
.flip-card.is-flipped .flip-inner { transform:rotateY(180deg); }
.flip-front,.flip-back { position:relative; grid-area:1/1; min-width:0; border-radius:8px; overflow:hidden; backface-visibility:hidden; -webkit-backface-visibility:hidden; border:1px solid var(--line); }
.flip-front { background:#fff; display:grid; grid-template-rows:210px 1fr; }
.flip-front img { width:100%; height:100%; object-fit:cover; }
.flip-front-copy { padding:20px 70px 20px 24px; position:relative; min-height:126px; }
.service-direct-link { display:inline-flex; align-items:center; gap:8px; min-height:44px; margin-top:4px; font-size:.875rem; font-weight:650; color:var(--teal-dark); }
.service-direct-link svg { width:16px; height:16px; transition:transform .18s ease; }
.service-direct-link:hover svg { transform:translateX(3px); }
.flip-card h3 { font-size:1.25rem; line-height:1.35; margin:0 0 8px; }
.flip-card p { font-size:.9375rem; line-height:1.6; margin:0; }
.flip-toggle,.flip-return { display:grid; place-items:center; width:44px; height:44px; cursor:pointer; border:1px solid var(--line); background:var(--soft); color:var(--teal-dark); border-radius:6px; transition:background .25s,color .25s,transform .25s; }
.flip-toggle { position:absolute; right:18px; top:24px; }
.flip-toggle:hover { background:var(--aqua); transform:translateX(2px); }
.flip-back { transform:rotateY(180deg); background:#164a42; color:#fff; padding:32px; display:flex; flex-direction:column; }
.flip-back h3 { font-size:1.375rem; padding-right:44px; }
.flip-back p { color:#dfebe5; }
.flip-back a { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:auto; min-height:48px; font-weight:650; border-top:1px solid #ffffff40; padding-top:14px; }
.flip-back a svg { transition:transform .25s; }
.flip-back a:hover svg { transform:translateX(4px); }
.flip-return { position:absolute; top:18px; right:18px; width:36px; height:36px; background:transparent; color:#fff; border-color:#ffffff40; }
.flip-return:hover { background:#ffffff20; }
.flip-card.is-flipped .flip-front { pointer-events:none; }
.flip-card:not(.is-flipped) .flip-back { pointer-events:none; }
.contact-clinics { display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:24px; }
.contact-clinics h3 { color:#fff; font-size:1rem; margin:0 0 8px; }
.contact-clinics a { display:flex; align-items:center; gap:8px; min-height:40px; font-size:.9375rem; overflow-wrap:anywhere; color:#fff; }
@media(min-width:1181px) { .nav-toggle { display:none; } }
@media(max-width:1180px) {
  html { scroll-padding-top:88px; }
  .site-header { height:76px; min-height:76px; padding:14px 24px; gap:16px; z-index:40; }
  .brand { min-width:0; }
  .brand strong { font-size:1.4rem; }
  .nav-toggle { display:flex; flex-direction:column; justify-content:center; align-items:center; gap:5px; width:44px; height:44px; padding:0; border:1px solid var(--line); border-radius:6px; background:#fff; position:relative; z-index:3; }
  .nav-toggle span { margin:0; width:21px; height:2px; }
  .site-header.is-open { max-height:none; overflow:visible; }
  .site-header.is-open .nav-toggle span:first-child { transform:translateY(7px) rotate(45deg); }
  .site-header.is-open .nav-toggle span:last-child { transform:translateY(-7px) rotate(-45deg); }
  .header-panel { position:fixed; inset:76px 0 0 auto; width:min(420px,100%); display:flex; flex-direction:column; align-items:stretch; gap:24px; padding:24px; background:#fff; z-index:2; overflow-y:auto; overscroll-behavior:contain; visibility:hidden; transform:translateX(105%); transition:transform .35s cubic-bezier(.22,.68,.18,1),visibility .35s; }
  .site-header.is-open .header-panel { visibility:visible; transform:translateX(0); }
  .site-header .site-nav,.site-header.is-open .site-nav { display:flex; flex-direction:column; align-items:stretch; gap:4px; padding:0; margin:0; border:0; background:none; animation:none; }
  .site-header .site-nav a,.site-header.is-open .site-nav a { padding:14px 16px; min-height:52px; border-radius:6px; font-size:1.0625rem; }
  .site-header .header-cta,.site-header.is-open .header-cta { display:flex; justify-content:space-between; width:100%; padding:14px 16px; margin:0; animation:none; }
  .site-header .language-dropdown,.site-header.is-open .language-dropdown { display:block; width:100%; margin:0; padding-top:20px; border-top:1px solid var(--line); }
  .language-button { display:grid; grid-template-columns:24px 1fr 20px; gap:10px; text-align:left; width:100%; }
  .language-menu,.site-header.is-open .language-menu { left:0; right:0; top:auto; bottom:calc(100% - 12px); width:100%; }
  .nav-backdrop { display:block; position:fixed; inset:76px 0 0; padding:0; border:0; background:#102e2866; opacity:0; visibility:hidden; pointer-events:none; transition:opacity .35s,visibility .35s; z-index:1; }
  .site-header.is-open .nav-backdrop { opacity:1; visibility:visible; pointer-events:auto; }
}
@media(max-width:940px) { .flip-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:620px) {
  html { scroll-padding-top:80px; }
  body { font-size:16px; line-height:1.6; padding-bottom:calc(64px + env(safe-area-inset-bottom)); }
  h1,.page-hero h1,.detail-hero h1 { font-size:1.875rem; line-height:1.2; overflow-wrap:anywhere; }
  h2,.location-copy h2,.service-contact-strip h2 { font-size:1.5rem; line-height:1.25; overflow-wrap:anywhere; hyphens:auto; }
  h3 { font-size:1.0625rem; }
  main,section,article,aside,.header-panel,.footer-main > div { min-width:0; }
  .site-header { height:64px; min-height:64px; padding:10px 16px; gap:12px; }
  .brand strong { font-size:1.0625rem; }
  .brand small { display:none; }
  .header-panel { inset:64px 0 auto; width:100%; max-height:calc(100dvh - 64px); padding:16px; gap:12px; border-bottom:1px solid var(--line); box-shadow:0 12px 24px #18333014; opacity:0; transform:translateY(-8px); transition:opacity .18s ease,transform .18s ease,visibility .18s; }
  .site-header.is-open .header-panel { opacity:1; transform:translateY(0); }
  .site-header .site-nav a,.site-header.is-open .site-nav a { padding:10px 12px; min-height:44px; font-size:1rem; }
  .site-header .header-cta,.site-header.is-open .header-cta { min-height:46px; padding:10px 12px; }
  .site-header .language-dropdown,.site-header.is-open .language-dropdown { padding-top:12px; }
  .language-button { width:100%; justify-content:flex-start; }
  .language-button .chevron { margin-left:auto; }
  .language-menu,.site-header.is-open .language-menu { position:relative; inset:auto; width:100%; max-height:0; padding:0; overflow:hidden; box-shadow:none; border:0; transform:none; transition:max-height .18s ease,opacity .18s ease,visibility .18s; }
  .language-dropdown.is-open .language-menu { max-height:180px; margin-top:8px; }
  .language-menu a { min-height:44px; padding:10px 12px; }
  .nav-backdrop { top:64px; transition:opacity .18s,visibility .18s; }
  .hero { min-height:0; max-height:none; padding:36px 20px; height:auto; }
  .hero h1 { font-size:2rem; max-width:100%; margin:12px 0 16px; }
  .hero-copy { font-size:1rem; line-height:1.6; margin:0; }
  .hero .eyebrow { font-size:.75rem; max-width:100%; line-height:1.5; }
  .hero-actions { gap:12px; margin-top:24px; align-items:center; }
  .hero-actions a { min-height:46px; padding:10px 16px; }
  .hero-actions .secondary-button { width:auto; min-height:44px; border:0; background:transparent; padding:4px 0; justify-content:flex-start; box-shadow:none; }
  .primary-button,.secondary-button { font-size:.9375rem; line-height:1.4; min-height:46px; padding:10px 16px; }
  .intro-band { gap:0; padding:8px 20px; }
  .metric { display:grid; grid-template-columns:32px minmax(0,1fr); grid-template-rows:auto auto; justify-items:start; text-align:left; gap:2px 12px; padding:12px 0; }
  .metric-icon { grid-row:1/3; align-self:center; width:28px; height:28px; margin:0; }
  .metric-icon svg { width:28px; height:28px; }
  .metric strong { font-size:1rem; }
  .metric strong,.metric span:last-child { text-align:left; }
  .metric span:last-child { grid-column:2; font-size:.875rem; }
  .section,.contact-section,.location-section,.detail-content,.booking-layout { padding:36px 20px; }
  .page-hero,.detail-hero { padding:28px 20px; }
  .section-heading,.split-copy { margin-bottom:24px; }
  .section-heading h2,.split-copy h2 { margin:8px 0 12px; }
  .section-heading .eyebrow,.split-copy .eyebrow { margin:0; }
  .section-heading p,.split-copy p { font-size:.9375rem; line-height:1.65; }
  .flip-grid { grid-template-columns:1fr; gap:14px; }
  .flip-card { height:auto; }
  .flip-front { grid-template-rows:128px 1fr; }
  .flip-front-copy { min-height:106px; padding:16px 68px 16px 16px; }
  .flip-card h3 { font-size:1.125rem; line-height:1.4; overflow-wrap:anywhere; }
  .flip-card p { font-size:.875rem; line-height:1.55; }
  .flip-toggle { top:16px; right:12px; }
  .flip-back { padding:20px 16px; gap:12px; }
  .flip-back h3 { font-size:1.125rem; padding-right:48px; margin:0; }
  .flip-back a { min-height:44px; padding-top:10px; font-size:.9375rem; }
  .flip-return { width:44px; height:44px; top:12px; right:12px; }
  .team-list { grid-template-columns:1fr; gap:12px; }
  .team-card { display:grid; grid-template-columns:64px minmax(0,1fr); }
  .team-photo { height:100%; min-height:84px; aspect-ratio:auto; }
  .team-card > div:last-child { padding:12px; }
  .team-card strong { font-size:1rem; }
  .team-card p { font-size:.875rem; }
  .schedule-grid { gap:20px; }
  .schedule-grid article { padding:20px 16px; }
  .schedule-grid article > a:first-of-type { padding-top:12px; }
  .hours-list div,.footer-hours div { gap:8px; font-size:.875rem; }
  .schedule-grid a,.location-card a,.contact-panel a,.footer-brand a,.info-card a,.detail-aside a { overflow-wrap:anywhere; max-width:100%; font-size:.9375rem; }
  .location-section { gap:24px; }
  .location-actions { gap:10px; }
  .location-map-card iframe { height:220px; }
  .location-card { padding:20px 16px; }
  .contact-section { gap:24px; }
  .contact-panel { gap:12px; }
  .contact-panel .primary-button { margin-top:8px; }
  .contact-clinics { grid-template-columns:1fr; gap:16px; margin-top:20px; }
  .contact-section h2 { color:#fff; }
  .footer-main { padding:32px 20px; gap:28px; }
  .footer-brand strong { font-size:1.25rem; }
  .footer-main h3 { font-size:1rem; }
  .footer-main a { min-height:36px; font-size:.875rem; }
  .footer-bottom { padding:20px; align-items:flex-start; gap:12px; font-size:.8125rem; }
  .footer-bottom a { min-height:44px; }
  .detail-hero { gap:20px; }
  .detail-hero p:not(.eyebrow),.page-hero p { font-size:1rem; line-height:1.6; }
  .breadcrumb { font-size:.8125rem; margin-bottom:16px; gap:6px; }
  .detail-content { gap:24px; }
  .detail-content article h2 { font-size:1.375rem; }
  .detail-aside { position:static; padding:20px 16px; }
  .related-services a { min-height:44px; display:flex; align-items:center; font-size:.875rem; }
  .form-card { padding:0; border:0; background:transparent; }
  .form-card h2,.info-card h2 { font-size:1.375rem; }
  .booking-layout { gap:28px; padding-top:28px; }
  .booking-form { gap:16px; }
  .booking-form label { font-size:.875rem; gap:6px; font-weight:600; }
  .booking-form input,.booking-form select { min-height:48px; font-size:16px; }
  .booking-form textarea { min-height:120px; font-size:16px; }
  .booking-form .checkbox-label { font-size:.8125rem; line-height:1.55; }
  .booking-form button { min-height:48px; font-size:.9375rem; }
  .info-card { padding:20px 0; }
  .reveal { transition-duration:.22s; transform:translateY(8px); }
  .mobile-actions { position:fixed; inset:auto 0 0; display:grid; grid-template-columns:1fr 1.3fr; align-items:center; gap:10px; padding:10px 16px calc(10px + env(safe-area-inset-bottom)); border-top:1px solid var(--line); background:#fff; z-index:30; box-shadow:0 -4px 16px #1833300a; }
  .mobile-actions a { display:flex; align-items:center; justify-content:center; gap:8px; min-width:0; min-height:44px; font-size:.875rem; font-weight:650; border-radius:6px; transition:background .18s ease,color .18s ease; }
  .mobile-actions a:active { background:var(--soft); }
  .mobile-actions a:last-child:active { background:#054d47; }
  .mobile-actions a:last-child { color:#fff; background:var(--teal-dark); }
  .mobile-actions a[href^="tel:"]::before { margin:0; width:18px; height:18px; }
  .mobile-actions svg { width:18px; height:18px; flex-shrink:0; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
  body.nav-open .mobile-actions { visibility:hidden; pointer-events:none; }
  body:has(.booking-form input:focus,.booking-form textarea:focus,.booking-form select:focus) .mobile-actions { display:none; }
}
@media(min-width:621px) { .mobile-actions { display:none; } }

/* One visual vocabulary across photographs, controls and contact details. */
:root { --ink:#19343d; --line:#dae4e5; --soft-2:#f3f6f7; }
h1,h2,h3 { font-weight:650; }
.brand strong { font-weight:650; }
.eyebrow { font-size:.75rem; font-weight:650; color:var(--teal-dark); }
.ui-icon { display:inline-block; width:20px; height:20px; flex:0 0 20px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; vertical-align:middle; }
a.has-contact-icon::before,.map-button::after { content:none; }
.has-contact-icon .ui-icon { width:18px; height:18px; flex-basis:18px; }
.icon-eyebrow { gap:8px; }
.icon-eyebrow .ui-icon { width:18px; height:18px; flex-basis:18px; }
.metric-icon svg { stroke-width:1.7; }
.header-cta svg,.flip-card svg,.icon-eyebrow svg,.location-card svg { stroke-width:1.7; }
.hero-overlay { background:linear-gradient(90deg,rgba(248,251,250,.98),rgba(248,251,250,.94) 29%,rgba(248,251,250,.72) 45%,rgba(248,251,250,0) 70%); }
.hero h1 { font-weight:600; }
.hero-copy { color:#334e58; }
.hero-actions .primary-button { justify-content:space-between; }
.primary-button .ui-icon,.map-button .ui-icon { transition:transform .2s ease; }
.primary-button:hover .ui-icon,.map-button:hover .ui-icon { transform:translate(2px,-2px); }
.metric { transition:color .2s ease,background .2s ease; }
.metric:hover { background:#f3f8f7; }
.metric strong { font-weight:650; }
.services-teaser { background:#f3f6f7; }
.flip-front,.flip-back { border-radius:6px; }
.flip-front { border-color:#d8e2e4; }
.flip-front img { transition:transform .4s ease; }
.flip-card:hover .flip-front img { transform:scale(1.025); }
.flip-toggle { background:transparent; border-color:transparent; }
.flip-toggle:hover { background:var(--soft); }
.flip-back { background:#174b4c; }
.section-heading h2,.split-copy h2 { max-width:700px; }
.schedule-grid article { border-top-width:2px; border-radius:0; }
.location-section { background:#eaf2f1; }
.contact-section { background:#193d43; }
.contact-section .eyebrow { color:#a8d6cf; }
.contact-clinics h3 { font-weight:600; }
.site-footer { background:#172f37; }
.footer-brand strong { font-weight:600; }
.site-footer .ui-icon { color:#a8d6cf; }
.team-card { border-radius:6px; }
.team-photo { background:#eef2f3; }
@media(max-width:620px) {
  .hero { padding-bottom:120px; }
  .hero-image { object-position:68% center; }
  .hero-overlay { background:linear-gradient(180deg,rgba(248,251,250,.99) 0%,rgba(248,251,250,.96) 30%,rgba(248,251,250,.94) 62%,rgba(248,251,250,.15) 91%,rgba(248,251,250,0)); }
  .hero h1 { font-size:2rem; }
  .hero-actions .primary-button { justify-content:center; }
  .flip-front-copy { padding-right:60px; }
  .eyebrow { font-size:.75rem; }
  .icon-eyebrow .ui-icon { width:16px; height:16px; flex-basis:16px; }
}
@media(prefers-reduced-motion:reduce) { .flip-card:hover .flip-front img { transform:none; } }
