/* UI/UX refinement: shared by every active page. */
@font-face{font-family:Manrope;src:url('../fonts/manrope-variable.woff') format('woff');font-weight:200 800;font-display:swap}
@font-face{font-family:'Source Sans 3';src:url('../fonts/source-sans-3-variable.woff') format('woff');font-weight:200 900;font-display:swap}

:root{
  --bg:#fff;--surface:#f4f8fc;--surface-strong:#e8f2fa;
  --heading:#102e50;--text:#273e53;--muted:#526779;
  --primary:#1263ad;--primary-dark:#094a89;--accent:#079cc8;
  --border:#dce5ee;--radius:12px;
  --shadow:0 4px 18px rgba(19,48,77,.045);
  --space:clamp(3.5rem,6vw,5.5rem);
  --font-body:'Source Sans 3','Segoe UI',sans-serif;
  --font-heading:Manrope,'Segoe UI',sans-serif;
}
body{padding-bottom:0;font:17px/1.65 var(--font-body)}
h1,h2,h3,h4,.footer-brand{font-family:var(--font-heading);font-weight:750;text-wrap:balance}
p{margin:.7rem 0 1rem}
h1,h2,h3{overflow-wrap:break-word}
.container{width:min(calc(100% - 64px),var(--container))}
.lead{max-width:64ch;font-size:1.2rem;line-height:1.6}
.eyebrow{font-size:.78rem;letter-spacing:.11em;font-weight:750}
.section-heading{max-width:780px;margin:0 0 2rem;text-align:left}
.section-heading h2,.section h2{font-size:clamp(1.8rem,3.2vw,2.65rem);line-height:1.2;letter-spacing:-.035em}
.section-heading p:last-child{max-width:65ch}
.section p,.article-body p{max-width:72ch}
.page-hero{padding:2.4rem 0 2.75rem;background:linear-gradient(105deg,#edf5fb,#fafcfe);border-bottom:1px solid var(--border)}
.page-hero h1,.article-head h1{font-size:clamp(2.1rem,4.2vw,3.5rem);line-height:1.13;letter-spacing:-.045em;max-width:950px}
.breadcrumbs{padding-block:.85rem;font-size:.94rem}
.breadcrumbs a{color:var(--muted)}
.breadcrumbs [aria-current]{color:var(--heading);font-weight:650}
.text-link{display:inline-flex;align-items:center;min-height:44px;gap:.35rem;text-decoration-thickness:1px;font-weight:650}
main a:not(.button):visited{color:#365a85}
.button{min-height:50px;padding:.75rem 1.25rem;border-radius:7px;font-size:1rem;font-weight:650;line-height:1.3;text-align:center;transition:background .18s ease,transform .18s ease,box-shadow .18s ease}
.button:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(13,77,135,.12)}
.button:active{transform:translateY(0)}
.button-outline{background:transparent}
.button-small{min-height:46px;padding:.7rem 1rem}
:focus-visible{outline:3px solid #0897c4;outline-offset:4px}

/* Navigation: readable labels, clear current location and generous targets. */
.topbar{font-size:.86rem;background:#102e50}
.topbar-inner{min-height:34px}
.header-inner{min-height:86px;gap:1.2rem}
.brand img{width:255px}
.primary-nav{gap:.5rem}
.primary-nav>a:not(.button),.nav-dropdown>summary{min-height:46px;display:flex;align-items:center;padding:.55rem .45rem;font-size:.96rem;font-weight:650;line-height:1.3}
.primary-nav>a:not(.button){border-radius:5px}
.primary-nav>a[aria-current='page']:not(.button){background:var(--surface);text-decoration:none}
.nav-dropdown:has(a[aria-current='page'])>summary{color:var(--primary)}
.nav-dropdown>summary::after{margin-left:.55rem}
.dropdown-menu{width:310px;padding:.45rem;border-radius:10px;box-shadow:0 12px 30px rgba(19,48,77,.12)}
.dropdown-menu a{min-height:48px;font-size:1rem;font-weight:600;border-radius:5px}
.dropdown-menu a[aria-current='page']{background:var(--surface);color:var(--primary)}
.menu-toggle{border-radius:6px;background:var(--surface)}

/* Homepage: the doctor, a clear care offering and two direct actions. */
.hero{padding:3.25rem 0;background:linear-gradient(110deg,#f6f9fc 52%,#e8f3fa)}
.hero-grid{grid-template-columns:1.16fr .84fr;gap:4rem}
.hero-doctor-name{margin:.35rem 0 .75rem;color:var(--heading);font-family:var(--font-heading);font-size:1.3rem;font-weight:750}
.hero h1{font-size:clamp(2.7rem,4.6vw,4rem);line-height:1.13;letter-spacing:-.05em;margin:.35rem 0 1.25rem}
.hero h1 span{color:var(--primary)}
.hero .lead{max-width:54ch;font-size:1.2rem;margin:0 0 1.5rem}
.hero-visual{width:100%;max-width:430px;margin:0 0 0 auto}
.hero-image-wrap{border-radius:12px;box-shadow:none}
.hero-image-wrap>img{aspect-ratio:1/1.08;object-position:center 62%}
.image-caption{padding:2.5rem 1.2rem 1.15rem;background:linear-gradient(transparent,rgba(9,35,58,.9))}
.image-caption strong{font-family:var(--font-heading);font-size:1.2rem}
.image-caption span{font-size:.93rem;max-width:38ch}
.hero-stamp{display:none}
.hero-actions .credentials{max-width:54ch;margin:1.15rem 0 0;font-size:1rem;line-height:1.6;font-weight:500}
.hero-actions .credentials strong{display:block;color:var(--heading);font-weight:650}
.hero-note{display:none}
.hero-intro{animation:content-enter .45s ease-out both}
@keyframes content-enter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.trust-strip{padding:1.15rem 0;background:#fff}
.trust-grid{gap:0}
.trust-grid div{border-left:0;padding:.25rem 1.3rem}
.trust-grid div+div{border-left:1px solid var(--border)}
.trust-grid div:first-child{padding-left:0}
.trust-grid strong{font-size:1rem;font-weight:650}
.trust-grid span{font-size:.94rem}

/* Quiet, differentiated content surfaces. */
.service-card,.info-card,.publication-card,.location-card,.form-card,.credential-panel{box-shadow:none;border-radius:10px;padding:1.6rem}
.service-card{display:flex;flex-direction:column;border-top:0;border-right:0;border-bottom:0;border-radius:0;background:transparent;padding:0 1.25rem 0 0}
.service-card:first-child{border-left:0}
.service-mark{display:block;width:auto;height:auto;background:none;border-radius:0;font-size:.87rem;font-weight:600;color:var(--muted)}
.service-card h3{font-size:1.3rem;margin:.7rem 0}
.service-card>a{display:inline-flex;min-height:44px;align-items:center;font-size:1rem;text-decoration:underline;text-underline-offset:4px}
.service-card p{margin:0 0 1rem}
.publication-card .year,.tag,.location-kicker{padding:.2rem .6rem;font-size:.85rem;border-radius:5px;font-weight:650}
.publication-card h3{font-size:1.12rem;line-height:1.5}
.publication-card a{display:inline-flex;min-height:44px;align-items:center;text-decoration:underline}
.credential-panel{background:var(--surface);border:0;padding:2rem}
.feature-image{border-radius:12px;box-shadow:none}
.portrait-card{border-radius:12px}
.article-card,.experience-card{border-radius:10px;box-shadow:none}
.article-art{min-height:100px;font-size:1.5rem;place-items:start;padding:1.2rem;background:var(--surface-strong)}
.article-card-body{padding:1.3rem}
.article-card-body h3{font-size:1.2rem;line-height:1.45}
.article-card-body a{display:inline-flex;min-height:44px;align-items:center;text-decoration:underline}
.editorial-note{border:1px solid var(--border);border-radius:8px;padding:1rem 1.2rem}
.faq-list{max-width:none}
.faq-list details{padding:1rem 1.3rem;margin:0;border-width:0 0 1px;border-radius:0}
.faq-list summary{justify-content:space-between;gap:1rem;font-size:1.08rem;font-weight:650}
.faq-list summary::after{content:'+';flex:none;font-size:1.4rem;color:var(--primary)}
.faq-list details[open] summary::after{content:'−'}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list details p{max-width:75ch}
.cta-band{background:#102e50;padding:3rem 0}
.cta-band .button:not(.button-light){background:#fff;color:var(--primary);border-color:#fff}
.cta-band .button-light{background:transparent;color:white;border-color:#7995b2}
.cta-band p{color:#d9e7f2}
.cta-band .eyebrow{color:#a6d9ed}
.footer-grid{grid-template-columns:1.35fr 1fr 1.1fr;gap:3rem}
.site-footer{padding:3rem 0 1.25rem;background:#0b223a}
.footer-grid a{font-size:1rem;line-height:1.55;margin:.25rem 0;padding-block:.3rem}
.footer-brand{font-size:1.35rem!important}
.footer-grid p{color:#c7d7e5;max-width:38ch}
.footer-bottom{font-size:.9rem;color:#bdcfdf}

/* Services: distinct service rows, rather than three generic feature cards. */
.services-intro{display:grid;grid-template-columns:1.35fr .65fr;align-items:center;gap:4rem}
.services-intro h1{max-width:700px}
.services-intro .lead{max-width:55ch}
.services-intro-image{margin:0;overflow:hidden;border-radius:10px}
.services-intro-image img{width:100%;aspect-ratio:4/3;object-fit:cover}
.card-grid.clinic-services-grid{grid-template-columns:1fr;gap:0;border-top:1px solid var(--border)}
.clinic-service-card{display:grid;grid-template-columns:260px 1fr 240px;gap:2rem;align-items:center;padding:1.6rem 0;border:0;border-bottom:1px solid var(--border);border-radius:0;box-shadow:none}
.clinic-service-heading{display:flex;gap:1rem;align-items:flex-start}
.clinic-service-icon{flex:none;width:36px;height:36px;margin:0;border-radius:0;background:none}
.clinic-service-icon svg{width:30px;height:30px}
.clinic-service-heading h3{font-size:1.35rem;margin:.35rem 0 0}
.clinic-service-heading .eyebrow{font-size:.7rem;line-height:1.5;margin:0}
.clinic-service-content p{margin:0;font-size:1.05rem}
.clinic-service-content ul{display:none}
.clinic-service-card .button{align-self:center;justify-self:end;margin:0;min-width:220px}
.clinic-availability-note{margin:1.25rem 0 0;max-width:80ch;text-align:left;font-size:1rem}

/* Exercise libraries: compact tabs and useful media hierarchy. */
.exercise-library-nav{display:flex;flex-wrap:nowrap;gap:0;border-bottom:1px solid var(--border);margin-bottom:1.8rem;width:fit-content;max-width:100%}
.exercise-library-nav a{border:0;border-bottom:3px solid transparent;border-radius:0;background:transparent;padding:.7rem 1.15rem;font-size:1rem;font-weight:600}
.exercise-library-nav a[aria-current='page']{background:transparent;border-color:var(--primary);color:var(--primary)}
.exercise-library-nav a:hover{background:rgba(255,255,255,.6)}
.exercise-safety{border:1px solid var(--border);border-radius:8px;background:var(--surface);padding:1rem 1.2rem}
.exercise-safety summary{display:flex;justify-content:space-between;align-items:center;gap:1rem;min-height:44px;cursor:pointer;color:var(--heading);font-weight:650;list-style:none}
.exercise-safety summary::-webkit-details-marker{display:none}
.exercise-safety summary span:last-child{font-size:.95rem;color:var(--primary);font-weight:500}
.exercise-safety summary span:last-child::after{content:' +';font-weight:700}
.exercise-safety[open] summary span:last-child::after{content:' −'}
.exercise-safety p{margin:.6rem 0 0;max-width:95ch}
.exercise-safety-section{padding:1.4rem 0}
.youtube-library{padding-top:2.75rem}
.youtube-video-card{border-radius:10px;box-shadow:none}
.youtube-video-body{padding:1.35rem 1.5rem}
.youtube-video-body h3{font-size:1.3rem;line-height:1.35}
.youtube-video-body .eyebrow{font-size:.75rem}
.video-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.video-card{display:block;padding:0;overflow:hidden;box-shadow:none;border-radius:10px}
.video-card video{border-radius:0}
.video-card>div{padding:1.25rem}
.video-card h2{font-size:1.2rem;letter-spacing:-.02em}
.video-card .caption-note{font-size:.88rem}
.course-availability{border-radius:10px;box-shadow:none;border-color:#c8dbe9}
.course-availability-icon{background:none;width:40px;height:40px;border-radius:0;margin-bottom:1rem;place-items:start}

/* Appointments: working contact channels first, optional form second. */
.page-contact .page-hero .lead{margin-bottom:1.3rem}
.contact-grid{grid-template-columns:1.05fr .95fr;gap:2rem}
.contact-grid .location-card h2{font-size:1.6rem;margin:.8rem 0}
.contact-grid .location-card .button-row{margin-top:1rem}
.booking-panel{padding:2rem;background:var(--surface);border:1px solid var(--border);border-radius:10px}
.booking-panel h2{font-size:1.7rem}
.booking-panel .button-row{align-items:stretch;margin:1.4rem 0}
.booking-panel .button{flex:1}
.booking-panel .alternate-phone{border-top:1px solid var(--border);padding-top:1rem;margin:1rem 0 0;font-size:1rem}
.contact-enquiry{margin-top:1.25rem;border:1px solid var(--border);border-radius:10px}
.contact-enquiry>summary{padding:1.2rem;cursor:pointer;color:var(--heading);font-weight:650;list-style-position:inside}
.contact-enquiry>summary small{display:block;margin:.3rem 0 0 1.2rem;color:var(--muted);font-size:1rem;font-weight:400}
.contact-enquiry .form-card{border:0;border-top:1px solid var(--border);border-radius:0;box-shadow:none}
.field{margin:1rem 0}
.field input,.field select,.field textarea{border-radius:6px;border-color:#a8bacb;min-height:50px}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--primary)}
.field-error:empty{display:none}
.form-status{background:var(--surface);border:1px solid var(--border);font-size:1rem}
.privacy-note{font-size:.95rem}
.mobile-actions svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.whatsapp-float{width:58px;height:58px;box-shadow:0 4px 16px rgba(7,46,31,.18)}
.wa-chat-quick button{min-height:44px;font-size:.91rem;border-radius:7px}
.wa-chat-message{font-size:1rem}
.wa-chat-heading strong{font-size:1.05rem}
.wa-chat-composer input{font-size:1rem}

@media(max-width:1180px){
  .brand img{width:230px}.primary-nav{gap:.2rem}
  .primary-nav>a:not(.button),.nav-dropdown>summary{font-size:.92rem;padding-inline:.35rem}
}
@media(max-width:1100px){
  .primary-nav{padding:1rem;max-height:calc(100dvh - 130px)}
  .primary-nav.is-open{grid-template-columns:1fr;gap:.15rem}
  .primary-nav>a:not(.button),.nav-dropdown>summary{padding:.8rem;font-size:1.1rem;min-height:48px}
  .primary-nav>.button{grid-column:auto;margin-top:.5rem}
  .primary-nav .nav-dropdown{min-width:0;width:100%}
  .dropdown-menu{position:static;width:100%;max-width:100%;margin:.2rem 0 .6rem;border:0;background:var(--surface);border-radius:6px;box-shadow:none}
  .dropdown-menu a{font-size:1.05rem;padding:.75rem 1rem}
  .hero-grid{gap:2rem}.hero h1{font-size:clamp(2.5rem,5vw,3.5rem)}
  .clinic-service-card{grid-template-columns:230px 1fr;gap:1.1rem}
  .clinic-service-card .button{grid-column:2;justify-self:start;min-width:0}
  .services-intro{gap:2rem}.trust-grid div:nth-child(3){border-left:0}
  .trust-grid div{padding:.75rem 1rem}.trust-grid div:first-child{padding-left:1rem}
}
@media(max-width:767px){
  body{padding-bottom:calc(68px + env(safe-area-inset-bottom))}
  .container{width:calc(100% - 40px)}
  .header-inner{min-height:74px}.brand img{width:195px}
  .topbar-inner{min-height:32px}.topbar{font-size:.83rem}
  .section{padding-block:3rem}.section-heading{margin-bottom:1.5rem}
  .section-heading h2,.section h2{font-size:1.85rem}
  .page-hero{padding:1.6rem 0 2rem}.page-hero h1,.article-head h1{font-size:2.25rem;line-height:1.15}
  .lead{font-size:1.12rem}.breadcrumbs{padding-block:.8rem;font-size:.88rem}
  .hero{padding:1.65rem 0 2rem}.hero-grid{grid-template-columns:1fr;gap:1.25rem}
  .hero-copy{display:contents}.hero-intro{grid-row:1}
  .hero-visual{grid-row:2;max-width:none;margin:0}
  .hero-actions{grid-row:3}
  .hero-doctor-name{font-size:1.12rem;margin:.25rem 0 .65rem}
  .hero h1{font-size:2.35rem;line-height:1.15;margin:.35rem 0 1rem}
  .hero .eyebrow{font-size:.7rem;letter-spacing:.08em}
  .hero .lead{font-size:1.12rem;line-height:1.55;margin:0;max-width:50ch}
  .hero-image-wrap{border-radius:8px}.hero-image-wrap>img{aspect-ratio:1.9/1;object-position:center 50%}
  .hero .image-caption{display:none}
  .image-caption{padding:1.5rem 1rem .8rem}.image-caption strong{font-size:1rem}
  .image-caption span{font-size:.82rem;max-width:32ch}
  .hero-actions .button-row{display:grid;grid-template-columns:1fr 1fr;gap:.65rem}
  .hero .button-row .button{width:auto;padding:.7rem .65rem;min-height:50px;font-size:1rem}
  .hero-actions .credentials{font-size:.95rem;line-height:1.5;margin:.9rem 0 0}
  .trust-strip{padding:.5rem 0}.trust-grid div{padding:.7rem .8rem}
  .trust-grid div:first-child{padding-left:.8rem}.trust-grid strong{font-size:.93rem}.trust-grid span{font-size:.87rem}
  .service-card{padding:1.1rem 0;border-left:0;border-bottom:1px solid var(--border)}
  .card-grid.four{grid-template-columns:1fr;gap:0}
  .service-mark{display:none}.service-card h3{margin:0 0 .5rem}
  .service-card p{margin-bottom:.5rem}
  .footer-grid{grid-template-columns:1fr;gap:1.8rem}.footer-grid>div:first-child{grid-column:auto}
  .footer-grid p{max-width:40ch}.site-footer{padding-top:2.4rem}
  .footer-bottom{margin-top:1.7rem;font-size:.88rem;line-height:1.8}
  .services-intro{grid-template-columns:1fr;gap:1.25rem}
  .services-intro-image img{aspect-ratio:2/1}
  .clinic-service-card{grid-template-columns:1fr;gap:1rem;padding:1.6rem 0}
  .clinic-service-card .button{grid-column:auto;justify-self:start}
  .clinic-service-heading .eyebrow{font-size:.75rem}
  .clinic-service-content p{font-size:1.05rem}.clinic-service-heading h3{font-size:1.4rem}
  .clinic-availability-note{font-size:.95rem}
  .exercise-library-nav{display:grid;grid-template-columns:1fr 1fr;width:100%;margin-bottom:1.5rem}
  .exercise-library-nav a{padding:.65rem .45rem;font-size:.95rem;line-height:1.35;align-self:stretch;flex:initial}
  .exercise-safety-section{padding:1rem 0}.exercise-safety{padding:.7rem 1rem}
  .exercise-safety summary{align-items:flex-start;flex-direction:column;gap:.1rem}
  .exercise-safety summary span:last-child{font-size:.9rem}
  .youtube-library{padding-top:2rem}.youtube-video-body{padding:1.1rem}
  .youtube-video-grid,.video-grid{grid-template-columns:1fr;gap:1.2rem}
  .video-card h2{font-size:1.25rem}
  .contact-grid{grid-template-columns:1fr;gap:1.5rem}
  .booking-column{order:initial}.booking-panel{padding:1.3rem}
  .page-contact .page-hero .button-row{display:grid;grid-template-columns:1fr 1fr;gap:.65rem}
  .page-contact .page-hero .button{padding:.7rem .5rem}
  .booking-panel h2{font-size:1.55rem}.booking-panel .button-row{display:grid;grid-template-columns:1fr 1fr;gap:.65rem}
  .booking-panel .button{padding:.7rem .6rem}
  .contact-grid .location-card{padding:1.3rem}.contact-grid .location-card h2{font-size:1.45rem}
  .cta-band{padding:2.4rem 0}.cta-band h2{font-size:1.9rem}
  .cta-inner{gap:1.2rem}.cta-inner .button-row{display:grid;grid-template-columns:1fr}
  .mobile-actions{min-height:66px;box-shadow:0 -2px 12px rgba(16,42,67,.06)}
  .mobile-actions a{min-height:58px;gap:.1rem;font-size:.84rem;font-weight:600}
  .mobile-actions a:last-child{background:var(--primary);color:#fff}
  .whatsapp-float{width:52px;height:52px;right:14px;bottom:calc(82px + env(safe-area-inset-bottom))}
  .whatsapp-float svg{width:27px;height:27px}
  body:has(.primary-nav.is-open) .whatsapp-float{visibility:hidden}
  .wa-chat-widget{max-height:calc(100dvh - 130px)}
}
@media(prefers-reduced-motion:reduce){.hero-intro{animation:none}.button{transition:none}}
