/* ==========================================================================
   Dr. Lokhande's Physiotherapy – design system (mobile-first, no frameworks)
   ========================================================================== */
:root {
  --blue-900: #0a2547;
  --blue-800: #0c3566;
  --blue-700: #0b4f9c;   /* brand blue */
  --blue-600: #1663b8;
  --blue-500: #2b7bd0;
  --blue-100: #e3eefb;
  --blue-50:  #f2f7fd;
  --ink: #12233b;
  --ink-2: #3c4d64;
  --ink-3: #66758a;
  --line: #d9e3ef;
  --line-2: #e9eff6;
  --white: #fff;
  --paper: #fbfcfe;
  --wa: #128c4a;
  --wa-dark: #0d6e3a;
  --warn-bg: #fff6e8;
  --warn-ink: #7a4a05;
  --err: #b42318;
  --radius: 14px;
  --radius-sm: 10px;
  --shadow: 0 1px 2px rgba(10,37,71,.06), 0 8px 24px rgba(10,37,71,.06);
  --shadow-lg: 0 18px 50px rgba(10,37,71,.16);
  --serif: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, "Noto Serif", serif;
  --sans: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;
  --wrap: 1180px;
  --gut: 16px;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 88px; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { transition: none !important; animation: none !important; } }
body { margin: 0; font-family: var(--sans); font-size: 1rem; line-height: 1.65; color: var(--ink); background: var(--white); overflow-x: hidden; }
img, svg, picture { max-width: 100%; display: block; }
img { height: auto; }
a { color: var(--blue-700); text-underline-offset: 3px; }
a:hover { color: var(--blue-800); }
p { margin: 0 0 1rem; }
ul, ol { margin: 0 0 1rem; padding-left: 1.2rem; }
h1, h2, h3, h4 { font-family: var(--serif); color: var(--blue-900); line-height: 1.2; margin: 0 0 .75rem; font-weight: 600; letter-spacing: -.01em; }
h1 { font-size: clamp(1.85rem, 1.3rem + 2.6vw, 3.1rem); }
h2 { font-size: clamp(1.45rem, 1.15rem + 1.3vw, 2.15rem); }
h3 { font-size: 1.15rem; font-family: var(--sans); font-weight: 650; letter-spacing: 0; }
address { font-style: normal; }
:focus-visible { outline: 3px solid var(--blue-500); outline-offset: 2px; border-radius: 4px; }
.sr-only { position: absolute !important; 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: 8px; top: -60px; background: var(--blue-900); color: #fff; padding: 10px 14px; border-radius: 8px; z-index: 200; }
.skip:focus { top: 8px; color: #fff; }
.wrap { width: 100%; max-width: var(--wrap); margin: 0 auto; padding: 0 var(--gut); }
.ico { width: 1.15em; height: 1.15em; flex: none; }

/* Buttons ---------------------------------------------------------------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; min-height: 48px; padding: .7rem 1.2rem; border-radius: 999px; font: 600 .98rem/1.2 var(--sans); text-decoration: none; border: 1.5px solid transparent; cursor: pointer; transition: background .15s, color .15s, border-color .15s, transform .15s; text-align: center; max-width: 100%; }
.btn:active { transform: translateY(1px); }
.btn-primary { background: var(--blue-700); color: #fff; }
.btn-primary:hover { background: var(--blue-800); color: #fff; }
.btn-wa { background: var(--wa); color: #fff; }
.btn-wa:hover { background: var(--wa-dark); color: #fff; }
.btn-ghost { background: #fff; color: var(--blue-800); border-color: var(--line); }
.btn-ghost:hover { border-color: var(--blue-600); color: var(--blue-800); }
.btn-ghost-light { background: transparent; color: #fff; border-color: rgba(255,255,255,.45); }
.btn-ghost-light:hover { background: rgba(255,255,255,.1); color: #fff; border-color: #fff; }
.btn-block { width: 100%; }
.link-arrow { display: inline-flex; align-items: center; gap: .35rem; font-weight: 600; text-decoration: none; }
.link-arrow:hover { text-decoration: underline; }

/* Top bar + header ------------------------------------------------------- */
.topbar { background: var(--blue-900); color: #cfe0f5; font-size: .85rem; }
.topbar-inner { display: flex; gap: 1rem; justify-content: space-between; align-items: center; min-height: 36px; }
.tb-item { display: inline-flex; align-items: center; gap: .4rem; color: inherit; text-decoration: none; }
a.tb-item:hover { color: #fff; }
.tb-hide { display: none; }
.site-header { position: sticky; top: 0; z-index: 60; background: rgba(255,255,255,.97); border-bottom: 1px solid var(--line-2); backdrop-filter: saturate(1.4) blur(8px); }
.header-inner { display: flex; align-items: center; justify-content: space-between; min-height: 68px; gap: 1rem; }
.logo { display: inline-flex; align-items: center; gap: .6rem; text-decoration: none; color: var(--blue-900); }
.logo-img { height: 48px; width: auto; }
.logo-mark { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 12px; background: var(--blue-700); color: #fff; }
.logo-ico { width: 24px; height: 24px; }
.logo-text { display: flex; flex-direction: column; line-height: 1.1; }
.logo-text strong { font-family: var(--serif); font-size: 1.15rem; color: var(--blue-900); }
.logo-text span { font-size: .78rem; color: var(--ink-3); letter-spacing: .02em; }
.logo-light .logo-text strong { color: #fff; }
.logo-light .logo-text span { color: #a9c3e3; }
.logo-light .logo-mark { background: #fff; color: var(--blue-700); }
.logo-light .logo-img { background: #fff; padding: 6px 10px; border-radius: 10px; height: 60px; }

.nav-toggle { display: inline-grid; place-items: center; width: 46px; height: 46px; border: 1px solid var(--line); background: #fff; border-radius: 12px; cursor: pointer; }
.nav-toggle-bars, .nav-toggle-bars::before, .nav-toggle-bars::after { display: block; width: 20px; height: 2px; background: var(--blue-900); border-radius: 2px; position: relative; transition: transform .2s, background .2s; content: ""; }
.nav-toggle-bars::before { position: absolute; top: -6px; }
.nav-toggle-bars::after { position: absolute; top: 6px; }
.nav-toggle[aria-expanded="true"] .nav-toggle-bars { background: transparent; }
.nav-toggle[aria-expanded="true"] .nav-toggle-bars::before { transform: translateY(6px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] .nav-toggle-bars::after { transform: translateY(-6px) rotate(-45deg); }

.site-nav { position: fixed; inset: 104px 0 0 0; background: #fff; padding: 1rem var(--gut) 6rem; overflow-y: auto; display: none; border-top: 1px solid var(--line-2); }
.site-nav.is-open { display: block; }
.nav-list { list-style: none; margin: 0 0 1rem; padding: 0; }
.nav-list > li { border-bottom: 1px solid var(--line-2); }
.nav-list a, .sub-toggle { display: flex; align-items: center; justify-content: space-between; width: 100%; padding: .9rem .25rem; font: 600 1.02rem/1.3 var(--sans); color: var(--ink); text-decoration: none; background: none; border: 0; cursor: pointer; text-align: left; }
.nav-list a[aria-current="page"], .sub-toggle.is-current { color: var(--blue-700); }
.chev { transition: transform .2s; }
.sub-toggle[aria-expanded="true"] .chev { transform: rotate(180deg); }
.sub { display: none; list-style: none; margin: 0; padding: 0 0 .6rem .5rem; }
.sub.is-open { display: block; }
.sub a { font-weight: 500; padding: .6rem .25rem; color: var(--ink-2); }
.mega-grid { list-style: none; margin: 0; padding: 0; }
.mega-grid a { justify-content: flex-start; gap: .6rem; }
.mega-ico { color: var(--blue-600); width: 1.3em; height: 1.3em; }
.mega-all { display: inline-block; padding: .5rem .25rem; font-weight: 600; }
.nav-cta { width: 100%; }

@media (min-width: 560px) { .tb-hide { display: inline-flex; } }

@media (min-width: 1080px) {
  .nav-toggle { display: none; }
  .site-nav { position: static; display: flex !important; align-items: center; gap: 1.25rem; padding: 0; background: none; border: 0; overflow: visible; }
  .nav-list { display: flex; gap: .15rem; margin: 0; }
  .nav-list > li { border: 0; position: relative; }
  .nav-list a, .sub-toggle { padding: .55rem .75rem; font-size: .96rem; border-radius: 999px; width: auto; gap: .25rem; }
  .nav-list > li > a:hover, .sub-toggle:hover { background: var(--blue-50); color: var(--blue-800); }
  .sub { position: absolute; top: calc(100% + 8px); left: 0; min-width: 240px; background: #fff; border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow-lg); padding: .5rem; }
  .sub::before { content: ""; position: absolute; inset: -10px 0 auto 0; height: 10px; }
  .has-sub:hover > .sub, .has-sub:focus-within > .sub { display: block; }
  .sub a { border-radius: 8px; padding: .55rem .7rem; }
  .sub a:hover { background: var(--blue-50); }
  .mega { left: 50%; transform: translateX(-50%); width: 640px; padding: .9rem; }
  .mega-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .15rem; }
  .mega-grid a { font-size: .93rem; white-space: normal; }
  .mega-all { margin: .4rem .5rem 0; font-size: .93rem; }
  .nav-cta { width: auto; min-height: 44px; padding: .55rem 1.1rem; }
}

/* Sections ---------------------------------------------------------------- */
.section { padding: 3.5rem 0; }
.section-tint { background: var(--blue-50); }
.section-paper { background: var(--paper); border-top: 1px solid var(--line-2); border-bottom: 1px solid var(--line-2); }
.section-head { max-width: 720px; margin: 0 0 2rem; }
.section-head.center { margin-left: auto; margin-right: auto; text-align: center; }
.section-head p { color: var(--ink-2); font-size: 1.05rem; }
.eyebrow { display: inline-flex; align-items: center; gap: .5rem; font: 700 .78rem/1 var(--sans); letter-spacing: .12em; text-transform: uppercase; color: var(--blue-600); margin: 0 0 .9rem; }
.eyebrow::before { content: ""; width: 22px; height: 2px; background: currentColor; border-radius: 2px; }
.lead { font-size: 1.1rem; color: var(--ink-2); max-width: 60ch; }
@media (min-width: 768px) { .section { padding: 5rem 0; } }

/* Home hero -------------------------------------------------------------- */
.hero { position: relative; background: linear-gradient(180deg, var(--blue-50) 0%, #fff 100%); padding: 2.25rem 0 3rem; overflow: hidden; }
.hero::after { content: ""; position: absolute; right: -180px; top: -140px; width: 520px; height: 520px; border-radius: 50%; background: radial-gradient(circle, rgba(43,123,208,.13), transparent 65%); pointer-events: none; }
.hero-grid { display: grid; gap: 2rem; align-items: center; position: relative; z-index: 1; }
.hero h1 { margin-bottom: 1rem; }
.hero h1 em { font-style: normal; color: var(--blue-700); }
.hero-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin: 1.5rem 0 1.25rem; }
.hero-actions .btn { flex: 1 1 200px; }
.trust-row { display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; list-style: none; padding: 0; margin: 0; color: var(--ink-2); font-size: .92rem; }
.trust-row li { display: inline-flex; align-items: center; gap: .4rem; }
.trust-row .ico { color: var(--blue-600); }
.hero-card { position: relative; max-width: 420px; margin: 0 auto; width: 100%; }
.hero-photo { border-radius: 22px; overflow: hidden; background: var(--blue-100); aspect-ratio: 4 / 5; box-shadow: var(--shadow-lg); }
.hero-photo img, .hero-photo .doctor-placeholder { width: 100%; height: 100%; object-fit: cover; }
.hero-badge { position: absolute; left: -6px; right: -6px; bottom: -22px; background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: .9rem 1rem; box-shadow: var(--shadow); }
.hero-badge strong { display: block; font-family: var(--serif); color: var(--blue-900); font-size: 1.1rem; }
.hero-badge span { font-size: .86rem; color: var(--ink-2); display: block; }
.doctor-placeholder { display: grid; place-content: center; text-align: center; gap: .5rem; background: linear-gradient(160deg, var(--blue-700), var(--blue-900)); color: #fff; min-height: 260px; }
.doctor-placeholder span { font: 600 4.5rem/1 var(--serif); letter-spacing: .04em; }
.doctor-placeholder small { font-size: .8rem; opacity: .75; padding: 0 1rem; }
@media (min-width: 900px) {
  .hero { padding: 4rem 0 5rem; }
  .hero-grid { grid-template-columns: 1.15fr .85fr; gap: 3.5rem; }
  .hero-actions .btn { flex: 0 0 auto; }
  .hero-badge { left: -28px; right: auto; max-width: 300px; }
}

/* Inner page hero -------------------------------------------------------- */
.page-hero { background: linear-gradient(180deg, var(--blue-50), #fff); padding: 1.5rem 0 2.5rem; border-bottom: 1px solid var(--line-2); }
.page-hero .hero-actions { margin-bottom: 0; }
.crumbs ol { list-style: none; display: flex; flex-wrap: wrap; gap: .25rem; padding: 0; margin: 0 0 1.25rem; font-size: .86rem; color: var(--ink-3); }
.crumbs li + li::before { content: "/"; margin-right: .25rem; color: #a8b5c6; }
.crumbs a { color: var(--ink-2); text-decoration: none; }
.crumbs a:hover { text-decoration: underline; }
@media (min-width: 768px) { .page-hero { padding: 2rem 0 3.5rem; } }

/* Cards & grids ---------------------------------------------------------- */
.grid { display: grid; gap: 1rem; }
@media (min-width: 640px) { .grid-2, .grid-3, .grid-4 { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1000px) { .grid-3 { grid-template-columns: repeat(3, 1fr); } .grid-4 { grid-template-columns: repeat(4, 1fr); } .grid { gap: 1.25rem; } }
.card { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 1.35rem; position: relative; transition: border-color .15s, box-shadow .15s, transform .15s; }
.card p { color: var(--ink-2); font-size: .97rem; }
.card :last-child { margin-bottom: 0; }
a.card, .card-link { text-decoration: none; color: inherit; display: block; }
a.card:hover { border-color: var(--blue-500); box-shadow: var(--shadow); transform: translateY(-2px); }
.card-ico { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 12px; background: var(--blue-100); color: var(--blue-700); margin-bottom: 1rem; }
.card-ico .ico { width: 26px; height: 26px; }
.card h3 { margin-bottom: .4rem; color: var(--blue-900); }
.card .more { display: inline-flex; align-items: center; gap: .3rem; margin-top: .75rem; color: var(--blue-700); font-weight: 600; font-size: .93rem; }
.svc-num { position: absolute; top: 1.1rem; right: 1.2rem; font: 600 .82rem/1 var(--sans); color: #a8b5c6; letter-spacing: .05em; }

.chip-list { list-style: none; display: flex; flex-wrap: wrap; gap: .5rem; padding: 0; margin: 0; }
.chip-list a, .chip-list span { display: inline-block; padding: .5rem .85rem; border-radius: 999px; background: #fff; border: 1px solid var(--line); color: var(--ink); text-decoration: none; font-size: .93rem; font-weight: 500; }
.chip-list a:hover { border-color: var(--blue-500); color: var(--blue-700); }

/* About / doctor split --------------------------------------------------- */
.split { display: grid; gap: 2rem; align-items: center; }
@media (min-width: 900px) { .split { grid-template-columns: .8fr 1.2fr; gap: 3.5rem; } .split.rev { grid-template-columns: 1.2fr .8fr; } }
.doc-photo { border-radius: 20px; overflow: hidden; background: var(--blue-100); aspect-ratio: 4/5; max-width: 420px; }
.doc-photo img, .doc-photo .doctor-placeholder { width: 100%; height: 100%; object-fit: cover; }
.cred-list { list-style: none; padding: 0; margin: 1.25rem 0; display: grid; gap: .6rem; }
.cred-list li { display: flex; gap: .7rem; align-items: flex-start; padding: .75rem .9rem; border: 1px solid var(--line); border-radius: var(--radius-sm); background: #fff; }
.cred-list .ico { color: var(--blue-600); margin-top: .2rem; }
.cred-list strong { display: block; color: var(--blue-900); }
.cred-list span { font-size: .9rem; color: var(--ink-2); }

/* Journey steps ---------------------------------------------------------- */
.steps { list-style: none; padding: 0; margin: 0; display: grid; gap: 1rem; counter-reset: step; }
@media (min-width: 760px) { .steps { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1080px) { .steps { grid-template-columns: repeat(5, 1fr); } }
.steps li { counter-increment: step; background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 1.3rem; position: relative; }
.steps li::before { content: counter(step, decimal-leading-zero); display: block; font: 600 1.5rem/1 var(--serif); color: var(--blue-600); margin-bottom: .75rem; }
.steps h3 { font-size: 1.02rem; margin-bottom: .35rem; }
.steps p { font-size: .93rem; color: var(--ink-2); margin: 0; }

/* Corporate band --------------------------------------------------------- */
.corp { background: var(--blue-900); color: #d6e4f5; border-radius: 22px; padding: 2rem 1.35rem; display: grid; gap: 1.5rem; }
.corp h2 { color: #fff; }
.corp p { color: #c3d5ec; }
.corp ul { list-style: none; padding: 0; margin: 0; display: grid; gap: .5rem; }
.corp li { display: flex; gap: .55rem; align-items: flex-start; }
.corp li .ico { color: #7fb4ee; margin-top: .25rem; }
.corp .btn-ghost { background: transparent; color: #fff; border-color: rgba(255,255,255,.4); }
@media (min-width: 900px) { .corp { grid-template-columns: 1.1fr .9fr; padding: 3rem; gap: 3rem; align-items: center; } }

/* Expect list ------------------------------------------------------------ */
.check-list { list-style: none; padding: 0; margin: 0 0 1rem; display: grid; gap: .65rem; }
.check-list li { display: flex; gap: .65rem; align-items: flex-start; }
.check-list li > .ico { color: var(--blue-600); margin-top: .3rem; }
.check-list.two { gap: .65rem 1.5rem; }
@media (min-width: 700px) { .check-list.two { grid-template-columns: 1fr 1fr; } }

/* Notice / callouts ------------------------------------------------------ */
.notice { display: flex; gap: .75rem; align-items: flex-start; padding: 1rem 1.1rem; border-radius: var(--radius-sm); background: var(--blue-50); border: 1px solid var(--blue-100); color: var(--ink-2); font-size: .95rem; }
.notice > .ico { color: var(--blue-700); margin-top: .2rem; width: 1.3em; height: 1.3em; }
.notice.warn { background: var(--warn-bg); border-color: #f3dcb3; color: var(--warn-ink); }
.notice.warn > .ico { color: #b86e00; }
.notice p:last-child, .notice ul:last-child { margin-bottom: 0; }

/* FAQ -------------------------------------------------------------------- */
.faq-list { display: grid; gap: .65rem; max-width: 860px; }
.faq { background: #fff; border: 1px solid var(--line); border-radius: var(--radius-sm); }
.faq summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.1rem; font-weight: 600; color: var(--blue-900); }
.faq summary::-webkit-details-marker { display: none; }
.faq-ico { transition: transform .2s; color: var(--blue-600); }
.faq[open] .faq-ico { transform: rotate(180deg); }
.faq-a { padding: 0 1.1rem 1rem; color: var(--ink-2); }
.faq-a p { margin: 0; }

/* Content (long-form) ---------------------------------------------------- */
.content-layout { display: grid; gap: 2.5rem; }
@media (min-width: 1000px) { .content-layout { grid-template-columns: minmax(0, 1fr) 320px; gap: 3.5rem; align-items: start; } }
.prose { max-width: 760px; }
.prose h2 { margin-top: 2.6rem; padding-top: .25rem; }
.prose h2:first-child { margin-top: 0; }
.prose h3 { margin-top: 1.6rem; }
.prose p, .prose li { color: var(--ink-2); font-size: 1.03rem; }
.prose li { margin-bottom: .4rem; }
.prose ul { padding-left: 1.25rem; }
.prose .notice { margin: 1.25rem 0; }
.approach { display: grid; gap: .75rem; margin: 1rem 0; }
@media (min-width: 640px) { .approach { grid-template-columns: 1fr 1fr; } }
.approach div { border: 1px solid var(--line); border-radius: var(--radius-sm); padding: 1rem 1.1rem; background: #fff; }
.approach h3 { margin: 0 0 .3rem; font-size: 1rem; }
.approach p { margin: 0; font-size: .95rem; }
.refs { font-size: .9rem; }
.refs li { color: var(--ink-3); }
.review-note { font-size: .86rem; color: var(--ink-3); border-top: 1px solid var(--line-2); padding-top: 1rem; margin-top: 2rem; }
.aside-stack { display: grid; gap: 1rem; }
@media (min-width: 1000px) { .aside-stack { position: sticky; top: 92px; } }
.aside-card { border: 1px solid var(--line); border-radius: var(--radius); padding: 1.25rem; background: #fff; }
.aside-card h2, .aside-card h3 { font-family: var(--sans); font-size: 1.02rem; font-weight: 700; margin-bottom: .75rem; color: var(--blue-900); }
.aside-card ul { list-style: none; padding: 0; margin: 0; }
.aside-card li a { display: block; padding: .45rem 0; border-bottom: 1px solid var(--line-2); text-decoration: none; color: var(--ink); font-size: .95rem; }
.aside-card li:last-child a { border-bottom: 0; }
.aside-card li a:hover { color: var(--blue-700); }
.aside-cta { background: var(--blue-900); border-color: var(--blue-900); color: #cfe0f5; }
.aside-cta h2 { color: #fff; }
.aside-cta p { font-size: .93rem; }
.aside-cta .btn { width: 100%; margin-top: .5rem; }
.aside-cta .btn-ghost { background: transparent; color: #fff; border-color: rgba(255,255,255,.4); }
.toc ol { padding-left: 1.1rem; margin: 0; font-size: .93rem; }
.toc li { margin-bottom: .35rem; }
.toc a { text-decoration: none; color: var(--ink-2); }
.toc a:hover { color: var(--blue-700); text-decoration: underline; }

/* CTA band --------------------------------------------------------------- */
.cta-band { background: linear-gradient(120deg, var(--blue-800), var(--blue-700)); color: #e1ecf9; padding: 2.75rem 0; }
.cta-inner { display: grid; gap: 1.25rem; align-items: center; }
.cta-band h2 { color: #fff; margin-bottom: .4rem; }
.cta-band p { margin: 0; color: #cfe0f5; }
.cta-actions { display: flex; flex-wrap: wrap; gap: .75rem; }
.cta-actions .btn { flex: 1 1 220px; }
@media (min-width: 900px) { .cta-inner { grid-template-columns: 1fr auto; } .cta-actions .btn { flex: 0 0 auto; } }

/* Forms ------------------------------------------------------------------ */
.form-card { background: #fff; border: 1px solid var(--line); border-radius: 18px; padding: 1.35rem; box-shadow: var(--shadow); }
@media (min-width: 640px) { .form-card { padding: 2rem; } }
.field { margin-bottom: 1rem; min-width: 0; }
.field-row { display: grid; gap: 0 1rem; }
@media (min-width: 560px) { .field-row { grid-template-columns: 1fr 1fr; } }
label { display: block; font-weight: 600; font-size: .93rem; margin-bottom: .35rem; color: var(--blue-900); }
.opt { font-weight: 400; color: var(--ink-3); }
input, select, textarea { width: 100%; min-height: 48px; padding: .7rem .85rem; font: 400 1rem/1.4 var(--sans); color: var(--ink); background: #fff; border: 1.5px solid var(--line); border-radius: var(--radius-sm); appearance: none; -webkit-appearance: none; }
select { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24'%3E%3Cpath d='m6 9 6 6 6-6' fill='none' stroke='%233c4d64' stroke-width='2.4' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right .85rem center; padding-right: 2.4rem; }
textarea { min-height: 96px; resize: vertical; }
input:focus, select:focus, textarea:focus { outline: none; border-color: var(--blue-600); box-shadow: 0 0 0 3px rgba(43,123,208,.2); }
input[aria-invalid="true"], select[aria-invalid="true"], textarea[aria-invalid="true"] { border-color: var(--err); }
.err { color: var(--err); font-size: .85rem; margin: .3rem 0 0; min-height: 0; }
.err:empty { display: none; }
.hint { font-size: .85rem; color: var(--ink-3); margin: .3rem 0 0; }
.form-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: .5rem; }
.form-actions .btn { flex: 1 1 220px; }
.form-note { font-size: .85rem; color: var(--ink-3); margin: 1rem 0 0; }
.form-status { margin-top: 1rem; }

/* Popup (small, non-blocking) ------------------------------------------- */
.enq-pop { position: fixed; z-index: 90; left: 10px; right: 10px; bottom: 74px; max-height: calc(100vh - 100px); overflow-y: auto; background: #fff; border: 1px solid var(--line); border-radius: 18px; box-shadow: var(--shadow-lg); padding: 1.2rem 1.1rem 1rem; opacity: 0; transform: translateY(14px); transition: opacity .25s ease, transform .25s ease; }
.enq-pop.is-visible { opacity: 1; transform: none; }
.enq-pop[hidden] { display: none; }
.enq-close { position: absolute; top: 8px; right: 8px; width: 40px; height: 40px; display: grid; place-items: center; border: 0; background: var(--blue-50); color: var(--blue-900); border-radius: 50%; cursor: pointer; }
.enq-close:hover { background: var(--blue-100); }
.enq-title { font-size: 1.25rem; margin: 0 2.5rem .35rem 0; outline: none; }
.enq-desc { font-size: .92rem; color: var(--ink-2); margin-bottom: .9rem; }
.enq-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 0 .6rem; }
.enq-grid .span-2 { grid-column: 1 / -1; }
.enq-pop .field { margin-bottom: .55rem; }
.enq-pop input, .enq-pop select { min-height: 42px; padding: .45rem .7rem; font-size: 16px; }
.enq-pop select { padding-right: 2.2rem; }
.enq-pop label { font-size: .8rem; margin-bottom: .2rem; }
.enq-actions { display: grid; grid-template-columns: 1.25fr 1fr; gap: .5rem; margin-top: .15rem; }
.enq-actions .btn { min-height: 44px; padding: .5rem .6rem; font-size: .9rem; gap: .35rem; }
.enq-note { font-size: .72rem; color: var(--ink-3); margin: .55rem 0 0; line-height: 1.4; }
@media (max-width: 699px) { .enq-pop { padding: 1rem .9rem .8rem; } .enq-title { font-size: 1.08rem; } .enq-desc { font-size: .85rem; margin-bottom: .6rem; } }
@media (min-width: 700px) { .enq-pop { left: auto; right: 22px; bottom: 22px; width: 400px; } }
@media (max-width: 899px) { .is-home .home-doc-photo { display: none; } .hero-card { max-width: 340px; } }

/* Sticky mobile CTA ------------------------------------------------------ */
.sticky-cta { position: fixed; left: 0; right: 0; bottom: 0; z-index: 70; display: grid; grid-template-columns: repeat(3, 1fr); background: #fff; border-top: 1px solid var(--line); box-shadow: 0 -6px 18px rgba(10,37,71,.08); padding-bottom: env(safe-area-inset-bottom); }
.sticky-cta a { display: flex; align-items: center; justify-content: center; gap: .4rem; min-height: 58px; font-weight: 700; font-size: .95rem; text-decoration: none; color: var(--blue-800); }
.sticky-cta .sc-wa { color: var(--wa); border-left: 1px solid var(--line-2); border-right: 1px solid var(--line-2); }
.sticky-cta .sc-book { background: var(--blue-700); color: #fff; }
body { padding-bottom: 58px; }
@media (min-width: 900px) { .sticky-cta { display: none; } body { padding-bottom: 0; } }

/* Map ------------------------------------------------------------------- */
.map-box { border-radius: var(--radius); overflow: hidden; border: 1px solid var(--line); background: var(--blue-50); aspect-ratio: 4/3; position: relative; }
@media (min-width: 900px) { .map-box { aspect-ratio: auto; min-height: 380px; height: 100%; } }
.map-box iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.map-facade { position: absolute; inset: 0; display: grid; place-content: center; text-align: center; gap: .75rem; padding: 1.5rem; background: repeating-linear-gradient(45deg, var(--blue-50), var(--blue-50) 12px, #eaf2fc 12px, #eaf2fc 24px); }
.map-facade .ico { width: 40px; height: 40px; color: var(--blue-700); margin: 0 auto; }
.map-facade p { margin: 0; color: var(--ink-2); font-size: .92rem; }
.visit-grid { display: grid; gap: 1.25rem; grid-template-columns: minmax(0, 1fr); }
.visit-grid > *, .grid > *, .split > *, .content-layout > * { min-width: 0; }
.info-list a, .info-list span, .f-line a { overflow-wrap: anywhere; }
@media (min-width: 900px) { .visit-grid { grid-template-columns: .9fr 1.1fr; gap: 2rem; align-items: stretch; } }
.info-list { list-style: none; padding: 0; margin: 0 0 1.25rem; display: grid; gap: .9rem; }
.info-list li { display: flex; gap: .8rem; align-items: flex-start; }
.info-list .ii { flex: none; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 10px; background: var(--blue-100); color: var(--blue-700); }
.info-list strong { display: block; color: var(--blue-900); font-size: .93rem; }
.info-list span, .info-list a { color: var(--ink-2); }
.hours { margin: 0; display: grid; gap: .25rem; }
.hours div { display: flex; justify-content: space-between; gap: 1rem; font-size: .95rem; }
.hours dt { font-weight: 600; }
.hours dd { margin: 0; }

/* Blog cards ------------------------------------------------------------- */
.post-card { display: flex; flex-direction: column; height: 100%; }
.post-card .tag { display: inline-block; font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--blue-600); margin-bottom: .6rem; }
.post-card h3 { font-family: var(--serif); font-size: 1.2rem; font-weight: 600; line-height: 1.3; }
.post-meta { font-size: .85rem; color: var(--ink-3); margin-top: auto; padding-top: .75rem; }
.article-meta { display: flex; flex-wrap: wrap; gap: .4rem 1rem; font-size: .9rem; color: var(--ink-3); margin-top: 1rem; }
.article-meta span { display: inline-flex; align-items: center; gap: .35rem; }

/* Conditions index ------------------------------------------------------- */
.cond-group { margin-bottom: 2.25rem; }
.cond-group h2 { font-size: 1.4rem; display: flex; align-items: center; gap: .6rem; }
.cond-group h2 .ico { color: var(--blue-600); }

/* Footer ----------------------------------------------------------------- */
.site-footer { background: var(--blue-900); color: #b9cde6; padding-top: 3rem; font-size: .95rem; }
.footer-grid { display: grid; gap: 2rem; padding-bottom: 2.5rem; }
@media (min-width: 700px) { .footer-grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1080px) { .footer-grid { grid-template-columns: 1.3fr .8fr 1.1fr 1.3fr; gap: 2.5rem; } }
.site-footer a { color: #dbe8f7; text-decoration: none; }
.site-footer a:hover { color: #fff; text-decoration: underline; }
.f-name { color: #fff; font-family: var(--serif); font-size: 1.05rem; margin: 1rem 0 .5rem; }
.f-reg { font-size: .85rem; color: #8fa9c9; }
.f-h { font-family: var(--sans); font-size: .82rem; letter-spacing: .12em; text-transform: uppercase; color: #fff; margin-bottom: 1rem; font-weight: 700; }
.f-h-sm { margin-top: 1.25rem; margin-bottom: .6rem; }
.f-col ul { list-style: none; padding: 0; margin: 0; display: grid; gap: .45rem; }
.f-line { display: flex; gap: .6rem; align-items: flex-start; margin-bottom: .6rem; }
.f-line .ico { color: #7fb4ee; margin-top: .25rem; }
.site-footer .hours div { font-size: .9rem; }
.site-footer .hours dt { color: #dbe8f7; }
.f-areas { font-size: .85rem; margin-top: 1rem; color: #8fa9c9; }
.footer-bottom { border-top: 1px solid rgba(255,255,255,.1); padding: 1.25rem 0; font-size: .87rem; }
.fb-inner { display: grid; gap: .6rem; text-align: center; }
.fb-inner p { margin: 0; }
.fb-links { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: .4rem 1.1rem; }
.credit a { color: #fff; font-weight: 700; text-decoration: underline; text-decoration-color: rgba(255,255,255,.4); }
@media (min-width: 1000px) { .fb-inner { grid-template-columns: 1fr auto auto; text-align: left; gap: 2rem; align-items: center; } }

/* 404 -------------------------------------------------------------------- */
.nf { text-align: center; padding: 4rem 0; }
.nf .code { font: 600 5rem/1 var(--serif); color: var(--blue-100); -webkit-text-stroke: 1.5px var(--blue-600); }

/* Utilities -------------------------------------------------------------- */
.mt-0 { margin-top: 0; } .mb-0 { margin-bottom: 0; } .mt-2 { margin-top: 2rem; }
.center { text-align: center; }
.muted { color: var(--ink-3); }
.stack-sm > * + * { margin-top: .5rem; }

/* Clinic refresh: calm ivory, clear azure, and generous editorial spacing. */
:root { --blue-700:#087fb5; --blue-600:#0879aa; --blue-50:#f0f8fa; --blue-100:#e1f1f5; --wrap:1240px; --gut:24px; }
.header-inner { min-height:88px; }
.logo-img { width:54px; height:54px; object-fit:contain; border-radius:13px; }
.logo-text { gap:5px; }
.logo-light .logo-img { padding:0; width:54px; height:54px; background:none; }
.site-nav { top:88px; }
.is-home .hero { background:#f8f9f5; padding:64px 0 72px; }
.is-home .hero::after { width:650px; height:650px; top:-100px; right:-250px; background:radial-gradient(circle,#dceef0,transparent 68%); }
.is-home .hero-grid { gap:64px; grid-template-columns:1.15fr 1fr; }
.is-home .hero h1 { font-family:var(--sans); font-size:clamp(2.8rem,4.4vw,4.1rem); line-height:1.08; font-weight:650; letter-spacing:-.055em; margin:22px 0; }
.is-home .hero h1 em { font-family:var(--serif); font-weight:500; font-style:italic; letter-spacing:-.045em; }
.is-home .eyebrow { font-size:.72rem; letter-spacing:.14em; color:#087ca8; }
.hero-intro { font-size:1.06rem; font-weight:650; color:var(--blue-900); margin:0 0 10px; }
.is-home .hero .lead { font-size:1rem; max-width:520px; line-height:1.8; color:#596b79; }
.is-home .hero-actions { margin:25px 0; }
.is-home .hero .btn { font-size:.9rem; padding:16px 22px; }
.is-home .hero .btn-wa { color:#176846; background:transparent; border-color:#b6d0c4; }
.is-home .trust-row { font-size:.76rem; gap:10px 20px; max-width:470px; color:#5d717c; }
.wellness-art { position:relative; min-height:490px; border-radius:160px 160px 28px 28px; background:#087fb5; color:white; padding:45px 36px 36px; box-shadow:0 24px 55px #0c587522; display:flex; flex-direction:column; align-items:center; justify-content:space-between; }
.art-top { display:flex; gap:15px; align-items:center; font-size:.6rem; letter-spacing:.15em; opacity:.85; margin-top:10px; }
.brand-orbit { width:250px; height:250px; display:grid; place-items:center; border:1px solid #ffffff30; border-radius:50%; padding:17px; }
.brand-orbit img { width:100%; height:100%; object-fit:contain; border-radius:50%; }
.art-caption { align-self:flex-start; }
.art-caption > span { font-size:.72rem; color:#d0edf7; display:block; margin-bottom:9px; }
.art-caption strong { font-family:var(--serif); font-size:1.9rem; font-weight:400; line-height:1.15; }
.care-note { position:absolute; right:-22px; bottom:36px; display:flex; gap:12px; align-items:center; background:#fff; color:#526775; box-shadow:0 12px 32px #0b354514; padding:18px; border-radius:16px; font-size:.72rem; transform:rotate(-3deg); }
.care-note .ico { color:#087fb5; width:28px; height:28px; }
.care-note strong { color:#143b4e; }
.care-strip { border-block:1px solid #e2e9e8; background:white; }
.care-strip-inner { display:grid; grid-template-columns:repeat(3,1fr); padding-block:26px; gap:25px; }
.care-strip-inner > div { display:flex; gap:16px; align-items:center; justify-content:center; }
.care-strip-inner > div + div { border-left:1px solid #e0e9e8; }
.care-strip .ico { width:29px; height:29px; color:#087fb5; }
.care-strip span { color:#71808b; font-size:.75rem; }
.care-strip strong { display:block; font-size:.9rem; color:#153e51; margin-bottom:2px; }
.is-home h2 { font-size:clamp(1.9rem,3vw,2.6rem); letter-spacing:-.035em; }
.is-home .section { padding:80px 0; }
.is-home .section-tint { background:#f1f7f7; }
.is-home .section-paper { background:#f8f9f5; }
.is-home .card { border-color:#e0e9e8; border-radius:20px; padding:28px; }
.is-home .card:hover { box-shadow:0 16px 35px #163e4c0c; }
.is-home .card-ico { border-radius:50%; background:#edf6f6; width:54px; height:54px; }
.is-home .chip-list a { background:#f7faf9; padding:12px 20px; border-color:#dfe9e7; }
.doctor-profile-panel { background:#edf4f3; border-radius:24px; padding:40px; min-height:430px; display:flex; flex-direction:column; justify-content:center; align-items:flex-start; }
.profile-monogram { display:block; font-family:var(--serif); font-size:6rem; line-height:1.4; color:#0c667e; letter-spacing:-.08em; }
.profile-monogram > span { font:300 2rem var(--sans); vertical-align:top; display:inline-block; margin-top:22px; color:#65a4a8; }
.doctor-profile-panel h3 { font-size:1.35rem; }
.doctor-profile-panel > p { font-size:.85rem; color:#526e78; }
.profile-divider { width:50px; height:2px; background:#8cbbc1; margin:8px 0 24px; }
.doctor-profile-panel .profile-philosophy { font-family:var(--serif); font-size:1.5rem; line-height:1.4; color:#224d5b; }
.is-home .steps li { border:0; background:transparent; border-top:2px solid #b8d6d9; border-radius:0; padding:25px 5px; }
.is-home .steps li::before { font-family:var(--sans); font-size:2.1rem; font-weight:350; color:#338b9d; }
.is-home .corp { border-radius:26px; background:#113e50; }
@media (min-width:1080px) { .site-nav { position:static; } .nav-list a,.sub-toggle { font-size:.88rem; padding:.55rem .65rem; } .nav-cta { font-size:.85rem; } }
@media (max-width:1079px) { .is-home .hero-grid { gap:32px; } .care-note { right:-8px; bottom:22px; } .art-caption strong { font-size:1.6rem; } }
@media (max-width:899px) { .is-home .hero-grid { grid-template-columns:1fr; } .is-home .hero { padding:38px 0 48px; } .is-home .hero h1 { font-size:clamp(2.8rem,7vw,4rem); } .wellness-art { width:100%; max-width:470px; min-height:460px; margin:10px auto 0; } .care-strip-inner { grid-template-columns:1fr; gap:20px; } .care-strip-inner > div { justify-content:flex-start; } .care-strip-inner > div + div { border-left:0; } .is-home .section { padding:55px 0; } .doctor-profile-panel { min-height:0; } .is-home .home-doc-photo { display:block; } }
@media (max-width:479px) { :root { --gut:20px; } .header-inner { min-height:78px; } .site-nav { top:78px; } .logo-img { width:44px; height:44px; } .logo-text strong { font-size:1.05rem; } .logo-text span { font-size:.66rem; } .is-home .hero .btn { flex:1 1 100%; } .wellness-art { min-height:440px; padding:32px 24px; } .brand-orbit { width:220px; height:220px; } .care-note { right:-4px; bottom:28px; padding:12px; font-size:.64rem; } .art-caption strong { font-size:1.45rem; } .doctor-profile-panel { padding:28px; } }

/* Real portrait and compact, centered navigation. */
.header-inner { min-height:72px; }
.site-header .logo-img { width:46px; height:46px; border-radius:11px; }
.site-header .logo-text strong { font-size:1.08rem; }
.site-header .logo-text span { font-size:.72rem; }
.site-nav { top:72px; }
.nav-cta { min-height:42px; }
@media (min-width:1080px) {
  .header-inner { display:grid; grid-template-columns:minmax(220px,1fr) auto minmax(220px,1fr); gap:12px; }
  .site-header .logo { justify-self:start; }
  .site-nav { display:contents !important; }
  .nav-list { justify-content:center; align-items:center; gap:2px; }
  .nav-list > li > a, .nav-list > li > .sub-toggle { min-height:42px; display:flex; align-items:center; justify-content:center; }
  .nav-cta { justify-self:end; width:auto; }
}
.doctor-hero { position:relative; isolation:isolate; height:560px; width:100%; align-self:end; }
.doctor-hero-backdrop { position:absolute; inset:55px 0 0; background:linear-gradient(145deg,#d2edf0,#8ccad9); border-radius:48% 48% 24px 24px; z-index:-1; overflow:hidden; }
.doctor-hero-backdrop::after { content:""; position:absolute; width:360px; height:360px; border:1px solid #ffffff80; border-radius:50%; left:50%; top:45px; transform:translateX(-50%); }
.doctor-hero > picture { display:block; height:100%; }
.doctor-hero .doctor-hero-image { width:100%; height:100%; object-fit:contain; object-position:center bottom; }
.doctor-hero-label { position:absolute; bottom:18px; left:14px; right:14px; display:flex; gap:13px; align-items:center; background:rgba(255,255,255,.96); padding:18px; border:1px solid #fff; border-radius:16px; box-shadow:0 12px 30px #153e5114; }
.doctor-label-icon { display:grid; place-items:center; flex:none; width:40px; height:40px; border-radius:50%; background:#e5f4f5; color:#087fb5; }
.doctor-hero-label strong { display:block; font-family:var(--serif); font-size:1.2rem; color:var(--blue-900); }
.doctor-hero-label span:not(.doctor-label-icon) { display:block; font-size:.76rem; color:#466575; }
.doctor-hero-label small { display:block; font-size:.66rem; color:#667c87; margin-top:3px; }
.doctor-profile-panel:has(.home-doc-photo) { padding:18px 18px 0; align-items:center; }
.doctor-profile-panel .home-doc-photo { width:100%; background:transparent; border-radius:0; }
.doc-photo picture { display:block; height:100%; }
.doc-photo img { object-fit:contain; object-position:center bottom; }
@media (max-width:899px) { .doctor-hero { max-width:470px; margin:0 auto; height:530px; } }
@media (max-width:479px) { .header-inner { min-height:66px; } .site-nav { top:66px; } .site-header .logo-img { width:40px; height:40px; } .site-header .logo-text strong { font-size:1rem; } .site-header .logo-text span { font-size:.65rem; } .doctor-hero { height:440px; } .doctor-hero-label { left:8px; right:8px; bottom:10px; padding:13px 10px; gap:8px; } .doctor-hero-label strong { font-size:1rem; } .doctor-hero-label span:not(.doctor-label-icon) { font-size:.67rem; } .doctor-label-icon { width:32px; height:32px; } }

/* Homepage doctor introduction. */
.is-home .doctor-feature { background:linear-gradient(180deg,#fff 0%,#fbfdfc 100%); }
.doctor-feature-grid { gap:64px; }
.doctor-feature .doctor-profile-panel:has(.home-doc-photo) { position:relative; isolation:isolate; padding:62px 24px 0; min-height:550px; overflow:hidden; border-radius:160px 160px 28px 28px; background:linear-gradient(145deg,#e5f4f2,#bcdde2); box-shadow:0 20px 50px #153e510b; }
.doctor-feature .doctor-profile-panel::before { content:""; position:absolute; width:400px; height:400px; top:95px; left:50%; transform:translateX(-50%); border:1px solid #ffffffb3; border-radius:50%; z-index:-1; }
.portrait-kicker { display:flex; align-items:center; justify-content:center; gap:8px; position:absolute; top:40px; left:0; right:0; color:#236a79; font-size:.61rem; font-weight:700; letter-spacing:.13em; }
.portrait-kicker .ico { width:16px; height:16px; }
.doctor-feature .home-doc-photo { max-width:none; aspect-ratio:auto; height:488px; }
.doctor-feature .home-doc-photo img { height:100%; width:100%; object-fit:contain; object-position:center bottom; }
.portrait-caption { position:absolute; left:0; right:0; bottom:0; padding:52px 30px 26px; background:linear-gradient(transparent,#0d3b4de8 40%); color:#fff; }
.portrait-caption > span { display:block; font-size:.6rem; letter-spacing:.17em; color:#bce3e7; margin-bottom:8px; }
.portrait-caption strong { font:400 1.9rem/1.1 var(--serif); }
.doctor-feature-content .eyebrow { margin-bottom:13px; }
.is-home .doctor-feature h2 { font-size:clamp(2rem,3vw,2.6rem); margin-bottom:9px; line-height:1.15; }
.doctor-specialty { font-weight:600; font-size:.87rem; color:#087b9f; margin-bottom:19px; }
.doctor-feature-intro { font-size:.95rem; line-height:1.85; color:#596c78; max-width:600px; }
.doctor-feature .cred-list { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin:24px 0; }
.doctor-feature .cred-list li { display:block; padding:18px; border:1px solid #e4eeed; border-radius:15px; background:#f5f9f8; }
.doctor-feature .cred-list li > .ico { width:31px; height:31px; padding:7px; box-sizing:content-box; background:#fff; border-radius:12px; margin:0 0 10px; width:19px; height:19px; }
.doctor-feature .cred-list strong { font-size:.82rem; line-height:1.5; margin-bottom:5px; overflow-wrap:anywhere; }
.doctor-feature .cred-list span { display:block; font-size:.73rem; line-height:1.6; color:#657985; }
.doctor-feature-actions { display:flex; align-items:center; gap:24px; }
.doctor-feature-actions .btn { font-size:.85rem; gap:14px; min-height:46px; }
.doctor-feature-actions > span { font-size:.72rem; line-height:1.7; color:#72848b; padding-left:22px; border-left:1px solid #dce7e6; }
.doctor-feature-actions strong { color:#345465; font-weight:600; }
@media (max-width:1079px) and (min-width:900px) { .doctor-feature-grid { gap:30px; grid-template-columns:.85fr 1.15fr; } .doctor-feature .cred-list li { padding:14px; } }
@media (max-width:899px) { .doctor-feature-grid { gap:36px; } .doctor-feature .doctor-profile-panel:has(.home-doc-photo) { width:100%; max-width:440px; margin:auto; min-height:0; } .doctor-feature .home-doc-photo { height:450px; } .doctor-feature-content { max-width:650px; margin:auto; width:100%; } }
@media (max-width:479px) { .doctor-feature .doctor-profile-panel:has(.home-doc-photo) { padding:60px 14px 0; border-radius:120px 120px 24px 24px; } .doctor-feature .home-doc-photo { height:380px; } .doctor-feature .cred-list { grid-template-columns:1fr; } .doctor-feature .cred-list li { display:flex; gap:14px; } .doctor-feature .cred-list li > .ico { flex:none; margin:0; } .doctor-feature-actions { gap:14px; flex-wrap:wrap; } .portrait-caption strong { font-size:1.7rem; } }

/* Image-led service collection, shared by home and services pages. */
.service-gallery { display:grid; grid-template-columns:1fr; gap:24px; }
.service-tile { display:flex; flex-direction:column; min-width:0; color:var(--ink); background:white; border:1px solid #dde9e8; border-radius:22px; overflow:hidden; text-decoration:none; box-shadow:0 5px 18px #123e5104; transition:transform .22s,box-shadow .22s,border-color .22s; }
.service-tile:hover { color:var(--ink); transform:translateY(-5px); box-shadow:0 18px 40px #164d6314; border-color:#9ccdd8; }
.service-tile:focus-visible { outline:3px solid #087fb5; outline-offset:5px; }
.service-tile-visual { position:relative; aspect-ratio:16/10; overflow:hidden; background:#e6f1f2; }
.service-tile-visual img { width:100%; height:100%; object-fit:cover; transition:transform .45s; }
.service-tile:hover .service-tile-visual img { transform:scale(1.045); }
.service-category { position:absolute; left:16px; top:16px; padding:6px 11px; border-radius:999px; background:#ffffffed; color:#285867; font-size:.62rem; font-weight:650; letter-spacing:.055em; text-transform:uppercase; }
.service-number { position:absolute; top:16px; right:16px; display:grid; place-items:center; width:30px; height:30px; border-radius:50%; color:#285867; background:#ffffffed; font-size:.68rem; font-weight:650; }
.service-tile-body { position:relative; display:flex; flex-direction:column; flex:1; padding:32px 24px 20px; }
.service-tile-icon { position:absolute; top:-23px; right:22px; display:grid; place-items:center; width:46px; height:46px; border:4px solid white; border-radius:14px; color:white; background:#087fb5; box-shadow:0 5px 12px #087fb51a; }
.service-tile-icon .ico { width:21px; height:21px; }
.service-tile h3 { font-size:1.05rem; line-height:1.45; margin:0 0 10px; letter-spacing:-.015em; }
.service-tile p { font-size:.84rem; line-height:1.8; color:#607381; margin:0 0 22px; }
.service-tile-link { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:auto; padding-top:16px; border-top:1px solid #edf2f1; font-size:.78rem; font-weight:650; color:#087ba6; }
.service-tile-link > span { width:30px; height:30px; border-radius:50%; background:#edf6f6; display:grid; place-items:center; transition:background .2s,color .2s; }
.service-tile:hover .service-tile-link > span { background:#087fb5; color:white; }
@media (min-width:640px) { .service-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (min-width:1100px) { .service-gallery { grid-template-columns:repeat(6,minmax(0,1fr)); } .service-tile { grid-column:span 2; } .service-gallery:has(> :nth-child(10):last-child) > :nth-child(n+7) { grid-column:span 3; } .service-gallery:has(> :nth-child(10):last-child) > :nth-child(n+7) .service-tile-visual { aspect-ratio:2/1; } .service-gallery:has(> :nth-child(2):last-child) > .service-tile { grid-column:span 3; } }
@media (max-width:479px) { .service-gallery { gap:22px; } .service-tile-body { padding:30px 20px 18px; } }
@media (min-width:1100px) { .service-gallery:has(> :nth-child(8):last-child) > :nth-child(n+7) { grid-column:span 3; } }

/* Conditions, recovery journey, workplace wellness and first visit. */
.condition-groups { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; }
.condition-group { border:1px solid #deebe9; background:#f7faf9; border-radius:20px; padding:24px 20px 16px; }
.condition-group-heading { display:flex; flex-direction:column; gap:18px; padding-bottom:16px; }
.condition-group-heading > span { display:grid; place-items:center; width:48px; height:48px; background:#e0f0f0; border-radius:15px; color:#087c9f; }
.condition-group-heading .ico { width:25px; height:25px; }
.condition-group h3 { font-size:1.05rem; margin:0; }
.condition-group ul { list-style:none; margin:0; padding:0; }
.condition-group li + li { border-top:1px solid #e2ece9; }
.condition-group a { display:flex; justify-content:space-between; align-items:center; gap:10px; min-height:48px; padding:10px 0; text-decoration:none; font-size:.82rem; color:#46606d; }
.condition-group a .ico { width:14px; height:14px; color:#7b9ca6; transition:transform .2s; }
.condition-group a:hover { color:#087fb5; }
.condition-group a:hover .ico { transform:translateX(3px); color:#087fb5; }
.condition-group:nth-child(2) { background:#f5f8fc; border-color:#e0e8f0; }
.condition-group:nth-child(3) { background:#faf9f4; border-color:#eeeadf; }
.condition-group:nth-child(4) { background:#f7f6fa; border-color:#e8e5ed; }
.condition-footer { display:flex; justify-content:space-between; gap:20px; align-items:center; padding-top:28px; }
.condition-footer p { margin:0; color:#6c818a; font-size:.83rem; }
.condition-footer strong { color:#385665; font-weight:500; }
.condition-footer .link-arrow { font-size:.84rem; }
.is-home .journey-feature { background:#eff6f5; }
.journey-feature .steps { position:relative; gap:18px; }
.is-home .journey-feature .steps li { position:relative; border:1px solid #deebe8; padding:26px 20px; background:#fff; border-radius:20px; box-shadow:0 8px 20px #204b5804; }
.is-home .journey-feature .steps li::before { position:absolute; top:20px; right:18px; font-size:.8rem; font-weight:600; color:#6a969f; margin:0; }
.journey-icon { display:grid; place-items:center; width:54px; height:54px; border-radius:50%; background:#e9f5f5; color:#0b819f; margin-bottom:24px; }
.journey-icon .ico { width:24px; height:24px; }
.journey-feature .steps h3 { font-size:1rem; margin-bottom:10px; }
.journey-feature .steps p { font-size:.8rem; line-height:1.85; color:#657b86; }
.is-home .journey-feature .steps li:last-child { background:#155065; border-color:#155065; }
.journey-feature .steps li:last-child h3 { color:#fff; }
.journey-feature .steps li:last-child p { color:#c9dfe5; }
.is-home .journey-feature .steps li:last-child::before { color:#9fcad4; }
.is-home .corporate-panel { padding:42px; gap:32px; grid-template-columns:1.1fr 1fr; border-radius:28px; overflow:hidden; background:linear-gradient(125deg,#103a4b,#19556a); }
.corporate-panel .eyebrow { color:#9bdbeb !important; }
.corporate-panel h2 { color:#fff; }
.corporate-panel p { font-size:.9rem; line-height:1.85; color:#bdd7df; }
.corporate-panel .hero-actions { gap:10px; margin-bottom:0; }
.corporate-panel .btn { font-size:.76rem; padding:13px 16px; min-height:44px; }
.corporate-visual { position:relative; border-radius:20px; overflow:hidden; align-self:stretch; min-height:270px; }
.corporate-visual img { width:100%; height:100%; object-fit:cover; }
.corporate-visual > span { position:absolute; left:14px; right:14px; bottom:14px; display:flex; align-items:center; justify-content:center; gap:8px; padding:13px; background:#ffffffed; color:#214f60; font-size:.73rem; border-radius:12px; }
.corporate-panel .corporate-benefits { grid-column:1/-1; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px 24px; padding-top:24px; border-top:1px solid #ffffff26; }
.corporate-panel .corporate-benefits li { margin:0; font-size:.78rem; align-items:flex-start; color:#d0e4e9; }
.corporate-benefits .ico { margin-top:4px; }
.first-visit-feature .split { align-items:start; }
.first-visit-feature .lead { font-size:.97rem; line-height:1.8; color:#637983; }
.first-visit-feature .split > div:first-child .check-list { counter-reset:visit; gap:12px; margin-top:24px; }
.first-visit-feature .split > div:first-child .check-list li { counter-increment:visit; background:#ffffffa8; border:1px solid #e2eeeb; border-radius:14px; padding:16px 18px; gap:16px; font-size:.84rem; color:#617680; }
.first-visit-feature .split > div:first-child .check-list li > .ico { display:none; }
.first-visit-feature .split > div:first-child .check-list li::before { content:counter(visit,decimal-leading-zero); color:#2d8c9f; font-size:.8rem; font-weight:600; padding-top:1px; }
.first-visit-feature .check-list strong { display:block; color:#1e4558; font-weight:650; margin-bottom:3px; }
.is-home .visit-checklist { border-radius:22px; padding:30px; box-shadow:0 18px 45px #143e5008; border-color:#dce9e6; position:relative; }
.visit-checklist-heading { display:flex; gap:14px; align-items:center; padding-bottom:24px; border-bottom:1px solid #e5eeec; margin-bottom:10px; }
.visit-checklist-heading > span { display:grid; place-items:center; width:48px; height:48px; flex:none; border-radius:14px; color:#087fa3; background:#eaf4f4; }
.visit-checklist-heading p { font-size:.6rem; color:#6a858e; letter-spacing:.12em; margin:0 0 5px; }
.visit-checklist-heading h3 { font-size:1.1rem; margin:0; }
.visit-checklist .check-list { gap:0; margin:0; }
.visit-checklist .check-list li { padding:16px 0; border-bottom:1px solid #edf2f0; font-size:.83rem; color:#566e7c; gap:12px; }
.visit-checklist .check-list .ico { width:16px; height:16px; margin-top:5px; }
.visit-checklist-footer { display:flex; gap:12px; align-items:center; margin-top:24px; padding:17px; border-radius:12px; background:#f0f6f3; color:#32766d; }
.visit-checklist-footer p { margin:0; font-size:.8rem; color:#55766e; }
.visit-checklist-footer strong { color:#26574e; font-weight:600; }
@media (max-width:1079px) { .condition-groups { grid-template-columns:repeat(2,minmax(0,1fr)); } .journey-feature .steps { grid-template-columns:repeat(2,minmax(0,1fr)); } .journey-feature .steps li:last-child { grid-column:1/-1; } }
@media (max-width:899px) { .is-home .corporate-panel { display:grid; grid-template-columns:1fr; padding:28px; } .corporate-visual { min-height:0; aspect-ratio:3/2; } .corporate-panel .corporate-benefits { grid-template-columns:repeat(2,minmax(0,1fr)); } .condition-footer { align-items:flex-start; flex-direction:column; gap:14px; } }
@media (max-width:559px) { .condition-groups { grid-template-columns:1fr; } .condition-group-heading { flex-direction:row; align-items:center; gap:14px; } .journey-feature .steps { grid-template-columns:1fr; } .is-home .journey-feature .steps li { padding-left:92px; min-height:155px; } .journey-icon { position:absolute; left:20px; top:28px; } .journey-feature .steps h3 { padding-right:24px; } .is-home .corporate-panel { padding:24px; border-radius:22px; } .corporate-panel .corporate-benefits { grid-template-columns:1fr; } .corporate-panel .btn { flex:1 1 100%; } .is-home .visit-checklist { padding:22px; } }

/* A welcoming close: appointments, FAQs and footer. */
.home-booking { padding:64px 0 20px; background:#f7faf8; }
.booking-panel { position:relative; overflow:hidden; display:grid; grid-template-columns:1.25fr 1fr; gap:70px; align-items:center; border-radius:28px; padding:52px; background:linear-gradient(120deg,#103f53,#087f9f); color:#fff; }
.booking-panel::before { content:""; position:absolute; width:520px; height:520px; border:1px solid #ffffff13; border-radius:50%; left:-180px; top:-230px; pointer-events:none; }
.booking-panel .eyebrow { color:#a9e3e9; font-size:.65rem; letter-spacing:.15em; }
.is-home .booking-panel h2 { font-size:clamp(2.3rem,3.8vw,3.2rem); line-height:1.1; color:white; margin:18px 0; }
.booking-panel h2 em { font-weight:400; color:#b8edf0; }
.booking-copy > p:not(.eyebrow) { color:#d3e7ec; font-size:.92rem; max-width:460px; line-height:1.85; }
.booking-hours { display:flex; align-items:center; gap:8px; font-size:.72rem; color:#c0e0e8; margin-top:23px; }
.booking-hours .ico { flex:none; }
.booking-contact { background:#ffffff; color:#1b4355; border:1px solid #ffffff80; border-radius:22px; padding:28px; box-shadow:0 18px 40px #002d4a15; }
.booking-icon { display:grid; place-items:center; width:46px; height:46px; background:#eaf5f3; color:#087e98; border-radius:14px; margin-bottom:17px; }
.booking-icon .ico { width:23px; height:23px; }
.booking-contact h3 { font-size:1.2rem; margin-bottom:8px; }
.booking-contact > p { font-size:.82rem; color:#657c86; line-height:1.75; margin-bottom:20px; }
.booking-contact .btn { width:100%; border-radius:12px; font-size:.85rem; min-height:49px; gap:10px; }
.booking-phone { display:flex; align-items:center; justify-content:center; gap:10px; margin-top:20px; color:#55727e; text-decoration:none; font-size:.72rem; }
.booking-phone strong { display:block; font-weight:650; color:#254e60; font-size:.9rem; }
.is-home .faq-feature { background:#f7faf8; padding:70px 0 90px; }
.faq-feature-grid { display:grid; grid-template-columns:.85fr 1.3fr; gap:75px; align-items:start; }
.faq-intro { margin:0; }
.is-home .faq-feature h2 { font-size:clamp(2rem,3vw,2.6rem); line-height:1.15; margin:18px 0; }
.faq-intro > p:not(.eyebrow) { font-size:.9rem; color:#6b8088; }
.faq-help { display:flex; align-items:flex-start; gap:15px; padding-top:30px; margin-top:30px; border-top:1px solid #dfe9e5; }
.faq-help > span { width:42px; height:42px; flex:none; display:grid; place-items:center; background:#e6f1eb; border-radius:50%; color:#36866b; }
.faq-help strong { font-size:.87rem; color:#294e5e; }
.faq-help p { font-size:.8rem; color:#70858b; margin:2px 0 10px; }
.faq-help .link-arrow { font-size:.8rem; }
.faq-feature .faq-list { max-width:none; gap:12px; counter-reset:question; }
.faq-feature .faq { counter-increment:question; border-radius:15px; border:1px solid #e0eae7; box-shadow:0 3px 10px #23453603; transition:border-color .2s; }
.faq-feature .faq summary { font-size:.87rem; font-weight:600; padding:20px; gap:14px; line-height:1.6; }
.faq-feature .faq summary::before { content:counter(question,decimal-leading-zero); color:#83a5a8; font-size:.68rem; font-weight:500; }
.faq-feature .faq summary > span { flex:1; }
.faq-feature .faq-ico { box-sizing:content-box; width:14px; height:14px; padding:7px; border-radius:50%; background:#eef6f4; }
.faq-feature .faq:hover,.faq-feature .faq[open] { border-color:#94c8cd; }
.faq-feature .faq[open] { background:#fcfefd; }
.faq-feature .faq-a { font-size:.85rem; line-height:1.85; padding:0 22px 22px 48px; color:#637a85; }
.site-footer { background:#0e2e3e; color:#adc5cf; padding-top:0; }
.footer-welcome { display:flex; align-items:center; justify-content:space-between; gap:24px; padding-top:36px; padding-bottom:30px; margin-bottom:40px; position:relative; }
.footer-welcome::after { content:""; position:absolute; left:var(--gut); right:var(--gut); bottom:0; height:1px; background:#ffffff16; }
.footer-welcome p { font:400 clamp(1.4rem,2.5vw,2rem)/1.3 var(--serif); color:#fff; margin:0; }
.footer-welcome em { color:#93c9cf; }
.footer-welcome > a { display:flex; align-items:center; gap:14px; font-size:.78rem; color:#c5e5e7; white-space:nowrap; }
.footer-welcome > a .ico { width:34px; height:34px; padding:9px; border-radius:50%; background:#ffffff12; }
.footer-grid { gap:35px; padding-bottom:40px; }
.site-footer .footer-grid > * { min-width:0; }
.site-footer .f-h { font:650 .72rem/1.5 var(--sans); letter-spacing:.13em; color:#f0f7f8; text-transform:uppercase; margin-bottom:20px; }
.site-footer .f-h-sm { font-size:.64rem; margin:24px 0 10px; }
.site-footer .f-col { font-size:.78rem; line-height:1.85; }
.site-footer .f-name { font-size:.92rem; line-height:1.6; margin-top:21px; }
.site-footer .f-reg { font-size:.65rem; line-height:1.8; color:#8aadb9; }
.site-footer .f-col ul { gap:8px; }
.site-footer .f-col a { color:#adc9d3; transition:color .15s; }
.site-footer .f-col a:hover { color:white; }
.site-footer .logo-text strong { color:#fff; }
.site-footer .logo-text span { color:#aac6d0; }
.site-footer .logo-img { width:44px; height:44px; border-radius:11px; }
.site-footer .logo-text strong { font-size:1.02rem; }
.site-footer .logo-text span { font-size:.66rem; }
.site-footer .f-line { gap:11px; margin-bottom:12px; overflow-wrap:anywhere; }
.site-footer .f-line .ico { color:#7db7c5; }
.site-footer .hours div { font-size:.72rem; }
.site-footer .f-areas { font-size:.68rem; color:#8aadb9; line-height:1.9; }
.site-footer .footer-bottom { font-size:.63rem; padding:22px 0; border-top:1px solid #ffffff14; }
@media (min-width:1080px) { .footer-grid { grid-template-columns:1.2fr .75fr 1fr 1.25fr; gap:40px; } }
@media (max-width:899px) { .booking-panel { gap:30px; padding:34px; grid-template-columns:1fr 1fr; } .faq-feature-grid { gap:35px; grid-template-columns:1fr; } .faq-intro { max-width:600px; } .faq-help { margin-top:20px; padding-top:20px; } }
@media (max-width:639px) { .home-booking { padding-top:35px; } .booking-panel { grid-template-columns:1fr; padding:26px; gap:26px; border-radius:22px; } .booking-contact { padding:23px; } .booking-hours { align-items:flex-start; line-height:1.7; } .booking-hours .ico { margin-top:3px; } .is-home .faq-feature { padding:45px 0 55px; } .faq-feature .faq summary { padding:17px 14px; gap:10px; font-size:.82rem; } .faq-feature .faq-a { padding:0 18px 20px; } .footer-welcome { align-items:flex-start; flex-direction:column; gap:15px; } .footer-grid { grid-template-columns:1fr 1fr; gap:30px 24px; } .footer-grid .f-brand,.footer-grid .f-col:last-child { grid-column:1/-1; } .footer-welcome p em { display:block; } }

/* Contact page: a calm, welcoming path to care. */
.is-contact .contact-hero { padding:22px 0 68px; background:#f6f9f5; border:0; }
.contact-hero-grid { display:grid; grid-template-columns:1.3fr .85fr; gap:90px; align-items:center; margin-top:35px; }
.contact-hero h1 { font:650 clamp(2.6rem,4.3vw,4rem)/1.12 var(--sans); letter-spacing:-.05em; margin:20px 0 24px; }
.contact-hero h1 em { font-family:var(--serif); color:#087fa3; font-weight:400; }
.contact-hero .lead { max-width:570px; font-size:1rem; color:#637b85; line-height:1.85; margin-bottom:28px; }
.is-contact .eyebrow { font-size:.65rem; letter-spacing:.15em; color:#087e9f; }
.contact-hero .btn { font-size:.85rem; padding:16px 23px; gap:12px; }
.contact-hours-card { position:relative; padding:32px; background:#fff; border:1px solid #e1ece5; border-radius:24px; box-shadow:0 20px 50px #173e4909; }
.contact-symbol { display:grid; place-items:center; width:54px; height:54px; border-radius:18px; color:#087da1; background:#e8f4f1; margin-bottom:24px; }
.contact-symbol .ico { width:26px; height:26px; }
.contact-hours-card h2 { font-size:1.8rem; letter-spacing:-.035em; }
.contact-hours-card > p:not(.eyebrow) { font-size:.9rem; color:#6b8087; line-height:1.85; }
.contact-hours-block { display:flex; gap:12px; padding:20px 0; border-block:1px solid #e9efeb; margin:22px 0; }
.contact-hours-block > .ico { color:#4c9a9c; margin-top:4px; }
.contact-hours-block > div { flex:1; }
.contact-hours-block strong { font-size:.8rem; color:#355766; display:block; margin-bottom:10px; }
.contact-hours-block .hours div { font-size:.75rem; color:#627984; }
.contact-hours-block .hours dt { font-weight:500; }
.contact-hours-card .link-arrow { font-size:.79rem; }
.is-contact .contact-options { padding:65px 0; }
.contact-options-heading { text-align:center; margin-bottom:30px; }
.contact-options-heading h2 { font-size:2.35rem; letter-spacing:-.035em; }
.contact-options-heading > p:last-child { color:#6f828b; font-size:.9rem; }
.contact-channel-grid .card { border-radius:20px; padding:28px; border-color:#e0eae7; box-shadow:0 8px 25px #153e5004; }
.contact-channel-grid .card:nth-child(2) { background:#f1f8f4; border-color:#d7e8dc; }
.contact-channel-grid .card-ico { width:48px; height:48px; border-radius:15px; background:#eaf4f5; }
.contact-channel-grid .card:nth-child(2) .card-ico { background:#e0f0e5; color:#278658; }
.contact-channel-grid h2 { margin-top:18px; }
.contact-channel-grid .card p { font-size:.86rem; color:#627c87; overflow-wrap:anywhere; }
.contact-channel-grid .more { display:flex; justify-content:space-between; align-items:center; border-top:1px solid #e3ece7; padding-top:17px; margin-top:20px; font-size:.8rem; }
.contact-channel-grid .more .ico { width:30px; height:30px; padding:7px; border-radius:50%; background:#eaf4f2; }
.contact-options .notice { background:#fcfaf5; border:1px solid #eee7d7; border-radius:12px; padding:15px 20px; font-size:.76rem; line-height:1.8; color:#80704f; }
.is-contact .contact-enquiry { background:#eff6f4; padding:80px 0; }
.contact-enquiry-grid { display:grid; grid-template-columns:.85fr 1.15fr; gap:75px; align-items:start; }
.contact-enquiry-intro { padding-top:20px; }
.contact-enquiry-intro h2 { font-size:clamp(2rem,3vw,2.65rem); letter-spacing:-.04em; margin:17px 0 22px; }
.contact-enquiry-intro .lead { font-size:1rem; line-height:1.85; color:#526f7c; }
.contact-enquiry-intro > p:not(.eyebrow):not(.lead) { font-size:.8rem; line-height:1.85; color:#70858c; overflow-wrap:anywhere; }
.contact-next-steps { list-style:none; padding:0; margin:32px 0; display:grid; gap:23px; }
.contact-next-steps li { display:flex; gap:15px; }
.contact-next-steps li > span { flex:none; display:grid; place-items:center; width:34px; height:34px; border:1px solid #c8ded9; border-radius:50%; font-size:.7rem; color:#478a91; }
.contact-next-steps strong { display:block; color:#2e5363; font-size:.87rem; margin-bottom:4px; }
.contact-next-steps p { font-size:.78rem; color:#6a8089; margin:0; line-height:1.7; }
.contact-doctor-note { display:flex; align-items:center; gap:18px; border-radius:17px; background:#e2eeea; padding:12px 20px 0; overflow:hidden; }
.contact-doctor-note img { width:85px; height:110px; object-fit:cover; object-position:top; }
.contact-doctor-note strong { font-size:.84rem; color:#315869; display:block; margin-bottom:6px; }
.contact-doctor-note span { display:block; font-size:.74rem; color:#65827f; line-height:1.7; padding-bottom:12px; }
.is-contact .form-card { border:1px solid #dce8e2; border-radius:24px; padding:34px; box-shadow:0 20px 50px #254c5908; }
.is-contact .form-card h2 { font-size:1.55rem; margin-bottom:10px; }
.is-contact .form-card .muted { font-size:.8rem; line-height:1.8; margin-bottom:25px; }
.is-contact .form-card label { font-size:.78rem; color:#315361; margin-bottom:7px; }
.is-contact .form-card input,.is-contact .form-card select,.is-contact .form-card textarea { background:#f9fbfa; border:1px solid #d9e5df; border-radius:10px; font-size:.85rem; padding:12px 13px; min-height:47px; }
.is-contact .form-card input:focus,.is-contact .form-card select:focus,.is-contact .form-card textarea:focus { border-color:#3f9fb1; background:#fff; }
.is-contact .form-card .hint,.is-contact .form-card .form-note { font-size:.7rem; line-height:1.8; }
.is-contact .form-card .form-actions .btn { font-size:.8rem; border-radius:11px; padding:14px 16px; }
.is-contact .visit-grid { gap:28px; }
.is-contact #visit-h { font-size:2.4rem; letter-spacing:-.035em; }
.is-contact .visit-grid .card { padding:30px; border-radius:22px; border-color:#e0eae4; }
.is-contact .info-list { gap:20px; }
.is-contact .info-list strong { font-size:.83rem; margin-bottom:4px; }
.is-contact .info-list span,.is-contact .info-list a,.is-contact .hours div { font-size:.8rem; }
.is-contact .info-list .ii { background:#eaf4f1; border-radius:13px; }
.is-contact .visit-grid .form-actions .btn { font-size:.8rem; }
.is-contact .visit-grid .form-note { font-size:.73rem; line-height:1.8; }
.is-contact .map-box { border-radius:22px; border:1px solid #d5e5dd; }
.is-contact .map-facade { background:radial-gradient(circle at 50% 35%,#fff8 0 19%,transparent 19.5%),linear-gradient(35deg,transparent 46%,#ffffff65 46% 49%,transparent 49%),linear-gradient(130deg,#e4f1e8,#c9e4e6); padding:38px; gap:18px; }
.is-contact .map-facade > .ico { width:66px; height:66px; padding:17px; background:white; border-radius:50%; box-shadow:0 10px 30px #22506314; }
.is-contact .map-facade p { font-size:.85rem; line-height:1.8; }
.is-contact .map-facade strong { color:#295263; }
.is-contact .map-facade .btn { border-radius:12px; font-size:.82rem; padding:14px 25px; }
@media (max-width:1079px) { .contact-hero-grid { gap:40px; } .contact-enquiry-grid { gap:35px; } }
@media (max-width:899px) { .contact-hero-grid,.contact-enquiry-grid { grid-template-columns:1fr; gap:35px; } .contact-hours-card { max-width:600px; width:100%; } .contact-channel-grid { grid-template-columns:1fr; } .contact-channel-grid .card { display:grid; grid-template-columns:48px 1fr; gap:0 18px; } .contact-channel-grid .card-ico { grid-row:1/3; margin:0; } .contact-channel-grid h2 { margin:0 0 7px; } .contact-channel-grid .card p { margin-bottom:0; } .contact-channel-grid .more { grid-column:1/-1; } .contact-enquiry-intro { max-width:650px; } }
@media (max-width:479px) { .is-contact .contact-hero { padding-bottom:38px; } .contact-hero-grid { margin-top:25px; } .contact-hero h1 { font-size:2.65rem; } .contact-hero .btn { width:100%; font-size:.78rem; } .contact-hours-card { padding:24px; } .is-contact .contact-options { padding:40px 0; } .is-contact .contact-enquiry { padding:45px 0; } .is-contact .form-card { padding:23px 20px; } .is-contact .visit-grid .card { padding:23px; } .is-contact .map-facade { padding:20px; gap:12px; } .is-contact .map-box { min-height:340px; } }

/* About page: clinic, physiotherapist and New Panvel clinic in one calm story. */
.is-about h2 { font-size:clamp(1.9rem,3vw,2.6rem); letter-spacing:-.035em; line-height:1.15; }
.is-about .eyebrow { font-size:.65rem; letter-spacing:.15em; color:#087e9f; }
.is-about .section { padding:80px 0; }
.is-about .about-hero { padding:22px 0 0; background:#f6f9f5; border:0; overflow:hidden; }
.about-hero-grid { display:grid; grid-template-columns:1.15fr 1fr; gap:64px; align-items:end; margin-top:35px; }
.about-hero-grid > div:first-child { padding-bottom:72px; align-self:center; }
.about-hero h1 { font:650 clamp(2.6rem,4.3vw,4rem)/1.1 var(--sans); letter-spacing:-.05em; margin:20px 0 24px; }
.about-hero h1 em { font-family:var(--serif); font-style:italic; color:#087fa3; font-weight:400; }
.about-hero .lead { max-width:540px; font-size:1rem; color:#637b85; line-height:1.85; }
.about-hero .btn { font-size:.88rem; padding:16px 22px; }
.about-jump { list-style:none; display:flex; flex-wrap:wrap; gap:8px; padding:0; margin:6px 0 0; }
.about-jump a { display:inline-block; padding:8px 14px; border:1px solid #dce8e2; border-radius:999px; background:#fff; color:#46606d; font-size:.74rem; font-weight:600; text-decoration:none; transition:border-color .15s,color .15s; }
.about-jump a:hover { border-color:#8cc3cc; color:#087fb5; }
.about-portrait.doctor-hero { height:540px; }
.about-portrait .doctor-hero-backdrop { inset:45px 0 0; border-radius:48% 48% 0 0; }
.about-portrait .doctor-hero-label { bottom:24px; }
.about-strip { border-top:0; }

.about-story-grid { display:grid; grid-template-columns:1.2fr .85fr; gap:75px; align-items:start; }
.about-story h2 { margin:18px 0 22px; }
.about-intro { font-size:1.08rem; line-height:1.75; color:#1e4558; font-weight:500; }
.about-story-grid > div > p:not(.eyebrow):not(.about-intro) { font-size:.92rem; line-height:1.9; color:#5f7480; }
.about-glance { padding:30px; background:#fff; border:1px solid #dce9e6; border-radius:24px; box-shadow:0 20px 50px #173e4909; }
.about-glance-head, .about-creds-head { display:flex; gap:14px; align-items:center; padding-bottom:22px; margin-bottom:22px; border-bottom:1px solid #e5eeec; }
.about-glance-head > span, .about-creds-head > span { display:grid; place-items:center; width:48px; height:48px; flex:none; border-radius:14px; color:#087fa3; background:#eaf4f4; }
.about-glance-head p, .about-creds-head p { font-size:.6rem; color:#6a858e; letter-spacing:.12em; margin:0 0 5px; font-weight:600; }
.about-glance-head h3, .about-creds-head h3 { font-size:1.1rem; margin:0; }
.is-about .info-list { gap:18px; margin:0; }
.is-about .info-list .ii { background:#eaf4f1; border-radius:13px; }
.is-about .info-list strong { font-size:.83rem; margin-bottom:3px; }
.is-about .info-list span, .is-about .info-list a, .is-about .hours div { font-size:.8rem; }

.is-about .about-doctor { background:#eff6f5; }
.about-doctor-grid { display:grid; grid-template-columns:1.1fr .9fr; gap:70px; align-items:start; }
.about-doctor h2 { margin:16px 0 8px; }
.about-doctor-copy > p:not(.eyebrow):not(.doctor-specialty) { font-size:.93rem; line-height:1.9; color:#5a707b; }
.about-quote { display:flex; gap:14px; align-items:flex-start; margin:28px 0 0; padding:20px 22px; border-radius:16px; background:#fff; border:1px solid #dce9e6; }
.about-quote > .ico { flex:none; width:22px; height:22px; color:#087fb5; margin-top:3px; }
.about-quote p { margin:0; font:400 1.12rem/1.55 var(--serif); color:#4d6773; }
.about-quote strong { color:#1e4558; font-weight:600; }
.about-creds { padding:30px; background:#fff; border:1px solid #dce9e6; border-radius:24px; box-shadow:0 20px 50px #173e4909; }
.about-timeline { list-style:none; padding:0; margin:0; position:relative; }
.about-timeline::before { content:""; position:absolute; left:7px; top:10px; bottom:10px; width:2px; background:#d4e8e7; }
.about-timeline li { position:relative; display:flex; gap:20px; padding:0 0 22px; }
.about-dot { position:relative; z-index:1; flex:none; width:16px; height:16px; margin-top:4px; border-radius:50%; background:#fff; border:3px solid #087fb5; }
.about-timeline li:last-child .about-dot { background:#087fb5; }
.about-timeline small { display:block; font-size:.62rem; letter-spacing:.12em; text-transform:uppercase; color:#6f9aa3; font-weight:600; }
.about-timeline strong { display:block; color:#1e4558; font-size:.95rem; margin:2px 0; }
.about-timeline p { margin:0; font-size:.8rem; color:#657985; line-height:1.6; }
.about-reg { display:grid; grid-template-columns:1fr 1fr; gap:12px; padding-top:6px; }
.about-reg > div { display:flex; gap:10px; align-items:flex-start; padding:14px; border-radius:14px; background:#f5f9f8; border:1px solid #e4eeed; }
.about-reg .ico { color:#087fb5; margin-top:2px; }
.about-reg span { font-size:.7rem; color:#657985; line-height:1.5; }
.about-reg strong { display:block; font-size:.82rem; color:#1e4558; overflow-wrap:anywhere; }

.interest-grid { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.interest-grid a { display:flex; flex-direction:column; height:100%; gap:16px; padding:24px 22px; border:1px solid #deebe9; border-radius:20px; background:#f7faf9; color:var(--ink); text-decoration:none; transition:transform .2s,box-shadow .2s,border-color .2s; }
.interest-grid li:nth-child(4n+2) a { background:#f5f8fc; border-color:#e0e8f0; }
.interest-grid li:nth-child(4n+3) a { background:#faf9f4; border-color:#eeeadf; }
.interest-grid li:nth-child(4n) a { background:#f7f6fa; border-color:#e8e5ed; }
.interest-grid a:hover { transform:translateY(-4px); box-shadow:0 16px 35px #163e4c0f; border-color:#9ccdd8; }
.interest-ico { display:grid; place-items:center; width:50px; height:50px; border-radius:15px; background:#fff; color:#087c9f; }
.interest-ico .ico { width:25px; height:25px; }
.interest-grid strong { font-size:.92rem; line-height:1.45; color:#1e4558; font-weight:650; flex:1; }
.interest-arrow { display:grid; place-items:center; width:30px; height:30px; border-radius:50%; background:#fff; color:#087ba6; transition:background .2s,color .2s; }
.interest-arrow .ico { width:14px; height:14px; }
.interest-grid a:hover .interest-arrow { background:#087fb5; color:#fff; }

.is-about .about-approach { padding-top:0; }
.approach-panel { display:grid; grid-template-columns:1.05fr 1fr; gap:56px; padding:52px; border-radius:28px; background:linear-gradient(125deg,#103a4b,#19556a); color:#bdd7df; position:relative; overflow:hidden; }
.approach-panel::before { content:""; position:absolute; width:520px; height:520px; border:1px solid #ffffff13; border-radius:50%; right:-200px; top:-240px; pointer-events:none; }
.approach-panel .eyebrow { color:#9bdbeb; }
.is-about .approach-panel h2 { color:#fff; margin:18px 0 22px; }
.approach-panel h2 em { font-family:var(--serif); font-style:italic; font-weight:400; color:#b8edf0; }
.approach-copy p:not(.eyebrow) { font-size:.9rem; line-height:1.9; color:#c3dbe2; }
.approach-values { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:1fr 1fr; gap:14px; align-content:center; position:relative; }
.approach-values li { padding:22px; border-radius:18px; background:#ffffff0f; border:1px solid #ffffff1c; }
.approach-values li > span { display:grid; place-items:center; width:42px; height:42px; border-radius:50%; background:#ffffff17; color:#9bdbeb; margin-bottom:14px; }
.approach-values strong { display:block; color:#fff; font-size:.92rem; margin-bottom:5px; }
.approach-values p { margin:0; font-size:.78rem; line-height:1.7; color:#bdd7df; }

.is-about .about-clinic { background:#f7faf8; padding-bottom:16px; }
.about-clinic-head { display:grid; grid-template-columns:1fr 1.2fr; gap:60px; align-items:end; margin-bottom:36px; }
.about-clinic-head h2 { margin:16px 0 0; }
.about-clinic-head > p { margin:0; font-size:.93rem; line-height:1.9; color:#5f7480; }
.clinic-why { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; }
.clinic-why article { padding:26px 22px; background:#fff; border:1px solid #deebe8; border-radius:20px; box-shadow:0 8px 20px #204b5804; }
.clinic-why article > span { display:block; font-size:.8rem; font-weight:600; color:#6a969f; margin-bottom:16px; }
.clinic-why h3 { font-size:1rem; margin-bottom:8px; }
.clinic-why p { margin:0; font-size:.82rem; line-height:1.8; color:#657b86; }
.clinic-why article:last-child { background:#155065; border-color:#155065; }
.clinic-why article:last-child h3 { color:#fff; }
.clinic-why article:last-child p { color:#c9dfe5; }
.clinic-why article:last-child > span { color:#9fcad4; }
.is-about .booking-panel .eyebrow { color:#a9e3e9; }
.is-about .booking-panel h2 { font-size:clamp(2.1rem,3.6vw,3rem); line-height:1.1; color:#fff; margin:18px 0; }
.is-about .faq-feature { background:#f7faf8; padding:70px 0 90px; }
.is-about .faq-feature h2 { margin:18px 0; }

@media (max-width:1079px) { .about-hero-grid,.about-story-grid,.about-doctor-grid { gap:36px; } .interest-grid,.clinic-why { grid-template-columns:repeat(2,minmax(0,1fr)); } .approach-panel { grid-template-columns:1fr; gap:36px; } }
@media (max-width:899px) { .about-hero-grid,.about-story-grid,.about-doctor-grid,.about-clinic-head { grid-template-columns:1fr; } .about-hero-grid > div:first-child { padding-bottom:0; } .about-portrait.doctor-hero { max-width:470px; margin:0 auto; height:500px; } .about-glance,.about-creds { max-width:620px; width:100%; } .about-clinic-head { gap:16px; } .is-about .section { padding:55px 0; } .is-about .about-approach { padding-top:0; } .is-about .about-clinic { padding-bottom:16px; } }
@media (max-width:559px) { .interest-grid,.clinic-why,.approach-values,.about-reg { grid-template-columns:1fr; } .interest-grid a { flex-direction:row; align-items:center; padding:16px; } .interest-ico { width:44px; height:44px; flex:none; } .approach-panel { padding:26px; border-radius:22px; } .about-glance,.about-creds { padding:22px; } }
@media (max-width:479px) { .about-hero h1 { font-size:2.5rem; } .about-hero .btn { flex:1 1 100%; } .about-portrait.doctor-hero { height:420px; } .is-about .faq-feature { padding:45px 0 55px; } }

/* Blog: image-led article cards, shared by the blog index and article pages. */
.blog-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.blog-tile { display:flex; flex-direction:column; min-width:0; color:var(--ink); background:#fff; border:1px solid #dde9e8; border-radius:22px; overflow:hidden; text-decoration:none; box-shadow:0 5px 18px #123e5104; transition:transform .22s,box-shadow .22s,border-color .22s; }
.blog-tile[hidden] { display:none; }
.blog-tile:hover { color:var(--ink); transform:translateY(-5px); box-shadow:0 18px 40px #164d6314; border-color:#9ccdd8; }
.blog-tile:focus-visible { outline:3px solid #087fb5; outline-offset:5px; }
.blog-tile-visual { position:relative; aspect-ratio:16/10; overflow:hidden; background:linear-gradient(135deg,#e5f4f2,#bcdde2); }
.blog-tile-visual picture { display:block; height:100%; }
.blog-tile-visual img { width:100%; height:100%; object-fit:cover; transition:transform .45s; }
.blog-tile:hover .blog-tile-visual img { transform:scale(1.045); }
.blog-tag, .blog-new { position:absolute; top:16px; padding:6px 11px; border-radius:999px; font-size:.62rem; font-weight:650; letter-spacing:.055em; text-transform:uppercase; }
.blog-tag { left:16px; background:#ffffffed; color:#285867; }
.blog-new { right:16px; background:#087fb5; color:#fff; }
.blog-tile-body { display:flex; flex-direction:column; flex:1; padding:24px 24px 20px; }
.blog-tile h3, .blog-tile h2 { font-family:var(--sans); font-size:1.05rem; line-height:1.45; font-weight:650; letter-spacing:-.015em; color:var(--blue-900); margin:0 0 10px; }
.blog-tile p { font-size:.84rem; line-height:1.8; color:#607381; margin:0 0 22px; }
.blog-tile-link { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:auto; padding-top:16px; border-top:1px solid #edf2f1; font-size:.76rem; }
.blog-read { display:inline-flex; align-items:center; gap:6px; color:#6b8088; }
.blog-read .ico { width:14px; height:14px; color:#4c9a9c; }
.blog-go { display:inline-flex; align-items:center; gap:10px; font-weight:650; color:#087ba6; }
.blog-go > span { width:30px; height:30px; border-radius:50%; background:#edf6f6; display:grid; place-items:center; transition:background .2s,color .2s; }
.blog-tile:hover .blog-go > span { background:#087fb5; color:#fff; }
.has-featured:not(.is-filtered) .is-featured { grid-column:span 2; display:grid; grid-template-columns:1.15fr 1fr; }
.has-featured:not(.is-filtered) .is-featured .blog-tile-visual { aspect-ratio:auto; min-height:100%; }
.has-featured:not(.is-filtered) .is-featured .blog-tile-body { padding:34px 32px 26px; justify-content:center; }
.has-featured:not(.is-filtered) .is-featured h2 { font-family:var(--serif); font-size:clamp(1.5rem,2.2vw,1.95rem); line-height:1.2; font-weight:600; letter-spacing:-.02em; margin-bottom:14px; }
.has-featured:not(.is-filtered) .is-featured p { font-size:.9rem; }
.has-featured.is-filtered .blog-new { display:none; }

.is-blog .eyebrow { font-size:.65rem; letter-spacing:.15em; color:#087e9f; }
.is-blog .blog-hero { padding:56px 0 68px; background:#f6f9f5; border:0; }
.blog-hero-grid { display:grid; grid-template-columns:1.3fr .85fr; gap:90px; align-items:center; }
.blog-hero h1 { font:650 clamp(2.6rem,4.3vw,4rem)/1.1 var(--sans); letter-spacing:-.05em; margin:20px 0 24px; }
.blog-hero h1 em { font-family:var(--serif); font-style:italic; color:#087fa3; font-weight:400; }
.blog-hero .lead { max-width:560px; font-size:1rem; color:#637b85; line-height:1.85; margin:0; }
.blog-hero-card { padding:32px; background:#fff; border:1px solid #e1ece5; border-radius:24px; box-shadow:0 20px 50px #173e4909; }
.blog-hero-icon { display:grid; place-items:center; width:54px; height:54px; border-radius:18px; color:#087da1; background:#e8f4f1; margin-bottom:22px; }
.blog-hero-icon .ico { width:26px; height:26px; }
.blog-hero-card h2 { font-size:1.6rem; letter-spacing:-.035em; margin-bottom:18px; }
.blog-hero-card ul { list-style:none; padding:18px 0 0; margin:0; display:grid; gap:12px; border-top:1px solid #e9efeb; }
.blog-hero-card li { display:flex; gap:10px; align-items:flex-start; font-size:.84rem; color:#5f7480; }
.blog-hero-card li .ico { color:#087fb5; margin-top:4px; width:16px; height:16px; }
.is-blog .blog-list { padding:80px 0; }
.blog-list-head { display:flex; justify-content:space-between; align-items:flex-end; gap:30px; margin-bottom:34px; }
.blog-list-head h2 { font-size:clamp(1.9rem,3vw,2.6rem); letter-spacing:-.035em; margin:16px 0 0; }
.blog-filter { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; max-width:640px; }
.blog-filter button { padding:9px 15px; border:1px solid #dce8e2; border-radius:999px; background:#fff; color:#46606d; font:600 .74rem/1.2 var(--sans); cursor:pointer; transition:background .15s,border-color .15s,color .15s; }
.blog-filter button:hover { border-color:#8cc3cc; color:#087fb5; }
.blog-filter button.is-active { background:#087fb5; border-color:#087fb5; color:#fff; }
.is-blog .booking-panel .eyebrow { color:#a9e3e9; }
.is-blog .booking-panel h2 { font-size:clamp(2.1rem,3.6vw,3rem); line-height:1.1; color:#fff; margin:18px 0; }
.is-blog .home-booking { padding:0 0 90px; background:#fff; }
.article-cover { margin:0 0 2rem; border-radius:22px; overflow:hidden; aspect-ratio:16/10; background:linear-gradient(135deg,#e5f4f2,#bcdde2); }
.article-cover picture { display:block; height:100%; }
.article-cover img { width:100%; height:100%; object-fit:cover; }

@media (max-width:1079px) { .blog-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .blog-hero-grid { gap:40px; } .blog-list-head { flex-direction:column; align-items:flex-start; } .blog-filter { justify-content:flex-start; } }
@media (max-width:899px) { .blog-hero-grid { grid-template-columns:1fr; gap:35px; } .blog-hero-card { max-width:600px; } .has-featured:not(.is-filtered) .is-featured { grid-template-columns:1fr; } .has-featured:not(.is-filtered) .is-featured .blog-tile-visual { aspect-ratio:16/10; min-height:0; } .is-blog .blog-list { padding:55px 0; } }
@media (max-width:639px) { .blog-grid { grid-template-columns:1fr; gap:22px; } .has-featured:not(.is-filtered) .is-featured { grid-column:auto; } .has-featured:not(.is-filtered) .is-featured .blog-tile-body { padding:24px 22px 20px; } .is-blog .home-booking { padding-bottom:55px; } }
@media (max-width:479px) { .is-blog .blog-hero { padding:34px 0 40px; } .blog-hero h1 { font-size:2.5rem; } .blog-hero-card { padding:24px; } .blog-tile-body { padding:22px 20px 18px; } }

/* Blog articles: calm, readable long-form pages. */
.is-article .eyebrow { font-size:.65rem; letter-spacing:.15em; color:#087e9f; }
.article-hero { position:relative; overflow:hidden; background:#f6f9f5; padding:44px 0 72px; }
.article-hero::after { content:""; position:absolute; width:620px; height:620px; right:-240px; top:-160px; border-radius:50%; background:radial-gradient(circle,#dceef0,transparent 68%); pointer-events:none; }
.article-hero-grid { position:relative; z-index:1; display:grid; grid-template-columns:1.05fr .95fr; gap:64px; align-items:center; }
.article-back { display:flex; width:fit-content; align-items:center; gap:8px; margin-bottom:26px; padding:8px 14px 8px 10px; border:1px solid #dce8e2; border-radius:999px; background:#fff; color:#46606d; font-size:.74rem; font-weight:600; text-decoration:none; transition:border-color .15s,color .15s; }
.article-back .ico { transform:rotate(180deg); width:14px; height:14px; }
.article-back:hover { border-color:#8cc3cc; color:#087fb5; }
.article-hero h1 { font:650 clamp(2.1rem,3.6vw,3.2rem)/1.12 var(--sans); letter-spacing:-.045em; margin:18px 0 20px; }
.article-hero .lead { font-size:1rem; line-height:1.85; color:#637b85; max-width:560px; }
.article-pills { list-style:none; display:flex; flex-wrap:wrap; gap:8px; padding:0; margin:26px 0 0; }
.article-pills li { display:inline-flex; align-items:center; gap:7px; padding:8px 14px; border-radius:999px; background:#fff; border:1px solid #e1ece5; font-size:.74rem; color:#55707b; }
.article-pills .ico { width:14px; height:14px; color:#087fb5; }
.article-pills a { color:#087ba6; font-weight:600; }
.article-visual { position:relative; padding:0 0 26px 26px; }
.article-visual::before { content:""; position:absolute; inset:26px 26px 0 0; border-radius:28px; background:linear-gradient(145deg,#d2edf0,#8ccad9); }
.article-visual-frame { position:relative; border-radius:28px; overflow:hidden; aspect-ratio:16/11; background:#e6f1f2; box-shadow:0 24px 55px #0c587522; }
.article-visual-frame picture { display:block; height:100%; }
.article-visual-frame img { width:100%; height:100%; object-fit:cover; }
.article-visual-note { position:absolute; left:0; bottom:0; display:flex; gap:12px; align-items:center; padding:14px 18px 14px 14px; background:#fff; border-radius:16px; box-shadow:0 12px 30px #153e5118; font-size:.72rem; color:#667c87; line-height:1.5; }
.article-visual-note > span { display:grid; place-items:center; width:38px; height:38px; flex:none; border-radius:50%; background:#e5f4f5; color:#087fb5; }
.article-visual-note strong { display:block; color:#1e4558; font-size:.85rem; }

.is-article .article-main { padding:80px 0; }
.article-layout { display:grid; grid-template-columns:minmax(0,1fr) 330px; gap:72px; align-items:start; }
.article-body { max-width:740px; min-width:0; }
.article-body p, .article-body li { font-size:.98rem; line-height:1.9; color:#4f6672; }
.article-body .article-lede { font-size:1.15rem; line-height:1.8; color:#1e4558; padding-left:22px; border-left:3px solid #8cc3cc; margin-bottom:1.6rem; }
.article-body h2 { display:flex; align-items:baseline; gap:14px; font-size:clamp(1.5rem,2.4vw,1.9rem); letter-spacing:-.03em; margin:3rem 0 1rem; scroll-margin-top:100px; }
.article-body h2:first-child { margin-top:0; }
.h2-num { flex:none; font:600 .78rem/1 var(--sans); letter-spacing:0; color:#087fb5; background:#e5f4f5; padding:7px 9px; border-radius:9px; transform:translateY(-4px); }
.article-body h3 { font-size:1.05rem; color:#1e4558; margin:1.8rem 0 .6rem; }
.article-body ul, .article-body ol { list-style:none; padding:0; margin:0 0 1.4rem; display:grid; gap:10px; }
.article-body ul li { position:relative; padding:14px 18px 14px 46px; background:#f7faf9; border:1px solid #e3eeeb; border-radius:14px; }
.article-body ul li::before { content:""; position:absolute; left:18px; top:22px; width:12px; height:12px; border-radius:50%; background:#fff; border:3px solid #087fb5; }
.article-body ol { counter-reset:steps; }
.article-body ol li { counter-increment:steps; position:relative; padding:14px 18px 14px 58px; background:#f7faf9; border:1px solid #e3eeeb; border-radius:14px; }
.article-body ol li::before { content:counter(steps,decimal-leading-zero); position:absolute; left:16px; top:15px; width:28px; height:28px; display:grid; place-items:center; border-radius:50%; background:#087fb5; color:#fff; font-size:.7rem; font-weight:650; }
.article-callout { display:flex; gap:14px; align-items:flex-start; margin:1.6rem 0; padding:20px 22px; border-radius:18px; background:#eef7f6; border:1px solid #d4e9e6; }
.article-callout > .ico { flex:none; width:24px; height:24px; color:#087fb5; margin-top:3px; }
.article-callout p { margin:0; font-size:.92rem; color:#2f5563; }
.article-callout.is-warn { background:#fdf8ef; border-color:#f0e2c6; }
.article-callout.is-warn > .ico { color:#b86e00; }
.article-callout.is-warn strong { display:block; color:#7a4a05; font-size:.88rem; margin-bottom:4px; }
.article-callout.is-warn p { color:#7a5a2c; }
.is-article .faq-list { max-width:none; gap:12px; }
.is-article .faq { border-radius:15px; border-color:#e0eae7; }
.is-article .faq summary { font-size:.9rem; padding:18px 20px; }
.is-article .faq-ico { box-sizing:content-box; width:14px; height:14px; padding:7px; border-radius:50%; background:#eef6f4; }
.is-article .faq[open] { border-color:#94c8cd; background:#fcfefd; }
.is-article .faq-a p { font-size:.88rem; line-height:1.85; color:#637a85; }
.article-end { margin-top:3rem; }
.article-end-cta { display:flex; gap:18px; align-items:center; padding:26px; border-radius:22px; background:linear-gradient(120deg,#103f53,#087f9f); color:#d3e7ec; }
.article-end-cta > span { display:grid; place-items:center; width:48px; height:48px; flex:none; border-radius:50%; background:#ffffff17; color:#a9e3e9; }
.article-end-cta > div { flex:1; }
.article-end-cta strong { display:block; color:#fff; font-size:1rem; margin-bottom:3px; }
.article-end-cta p { margin:0; font-size:.84rem; line-height:1.7; color:#c9e1e7; }
.article-end-cta .btn { flex:none; background:#fff; color:#0c5a72; font-size:.84rem; }
.article-end-cta .btn:hover { background:#e9f6f7; color:#0c5a72; }
.is-article .review-note { display:flex; gap:10px; align-items:flex-start; border:0; margin:20px 0 0; padding:0; font-size:.76rem; line-height:1.8; color:#7a8e96; }
.is-article .review-note .ico { flex:none; width:15px; height:15px; margin-top:4px; color:#9aaeb5; }

.article-aside { position:sticky; top:96px; display:grid; gap:18px; }
.article-toc, .article-related { padding:24px; background:#fff; border:1px solid #e0eae7; border-radius:20px; }
.article-toc > p, .article-related > p { font-size:.62rem; font-weight:700; letter-spacing:.14em; color:#6a858e; margin:0 0 12px; }
.article-toc ol, .article-related ul { list-style:none; padding:0; margin:0; }
.article-toc a { display:flex; gap:12px; padding:9px 0; border-top:1px solid #eef3f1; font-size:.82rem; line-height:1.5; color:#46606d; text-decoration:none; }
.article-toc li:first-child a, .article-related li:first-child a { border-top:0; }
.article-toc a span { flex:none; font-size:.7rem; font-weight:650; color:#6a969f; padding-top:2px; }
.article-toc a:hover { color:#087fb5; }
.article-cta { position:relative; overflow:hidden; padding:26px; border-radius:22px; background:linear-gradient(140deg,#103f53,#0b6f8c); color:#c9e1e7; }
.article-cta::before { content:""; position:absolute; width:260px; height:260px; right:-120px; top:-120px; border:1px solid #ffffff1a; border-radius:50%; }
.article-cta-icon { display:grid; place-items:center; width:44px; height:44px; border-radius:14px; background:#ffffff17; color:#a9e3e9; margin-bottom:16px; }
.article-cta h2 { font-size:1.35rem; color:#fff; margin-bottom:8px; }
.article-cta p { font-size:.82rem; line-height:1.7; margin-bottom:18px; }
.article-cta .btn { width:100%; border-radius:12px; font-size:.85rem; }
.article-cta-call { display:flex; align-items:center; justify-content:center; gap:8px; margin-top:14px; color:#d7eef2; font-size:.8rem; text-decoration:none; }
.article-cta-call:hover { color:#fff; text-decoration:underline; }
.article-related a { display:flex; justify-content:space-between; align-items:center; gap:10px; padding:11px 0; border-top:1px solid #eef3f1; font-size:.84rem; color:#2e5363; text-decoration:none; }
.article-related a .ico { flex:none; width:14px; height:14px; color:#7b9ca6; transition:transform .2s; }
.article-related a:hover { color:#087fb5; }
.article-related a:hover .ico { transform:translateX(3px); color:#087fb5; }
.is-article .article-more { background:#f7faf8; padding:80px 0 90px; }
.article-more-head { display:flex; justify-content:space-between; align-items:flex-end; gap:20px; margin-bottom:32px; }
.article-more-head h2 { font-size:clamp(1.9rem,3vw,2.6rem); letter-spacing:-.035em; margin:16px 0 0; }
.article-more-head .link-arrow { font-size:.84rem; }

@media (max-width:1079px) { .article-hero-grid { gap:36px; } .article-layout { grid-template-columns:minmax(0,1fr) 290px; gap:40px; } }
@media (max-width:899px) { .article-hero-grid,.article-layout { grid-template-columns:1fr; } .article-visual { max-width:600px; } .article-aside { position:static; max-width:600px; } .article-toc { display:none; } .is-article .article-main,.is-article .article-more { padding:55px 0; } .article-more-head { flex-direction:column; align-items:flex-start; } }
@media (max-width:559px) { .article-hero { padding:30px 0 48px; } .article-hero h1 { font-size:2rem; } .article-visual { padding:0 0 18px 18px; } .article-visual::before { inset:18px 18px 0 0; } .article-visual-note { font-size:.66rem; padding:10px 12px 10px 10px; } .article-body ul li { padding:12px 14px 12px 40px; } .article-body ul li::before { left:15px; top:20px; } .article-body ol li { padding:12px 14px 12px 52px; } .article-end-cta { flex-direction:column; align-items:flex-start; } .article-end-cta .btn { width:100%; } .article-body h2 { gap:10px; } }

/* Conditions we treat: grouped by body area, searchable. */
.is-conditions .eyebrow { font-size:.65rem; letter-spacing:.15em; color:#087e9f; }
.is-conditions .cond-hero { position:relative; overflow:hidden; padding:56px 0 68px; background:#f6f9f5; border:0; }
.cond-hero::after { content:""; position:absolute; width:620px; height:620px; right:-240px; top:-160px; border-radius:50%; background:radial-gradient(circle,#dceef0,transparent 68%); pointer-events:none; }
.cond-hero-grid { position:relative; z-index:1; display:grid; grid-template-columns:1.3fr .85fr; gap:90px; align-items:center; }
.cond-hero h1 { font:650 clamp(2.6rem,4.3vw,4rem)/1.1 var(--sans); letter-spacing:-.05em; margin:20px 0 24px; }
.cond-hero h1 em { font-family:var(--serif); font-style:italic; color:#087fa3; font-weight:400; }
.cond-hero .lead { max-width:560px; font-size:1rem; color:#637b85; line-height:1.85; margin-bottom:28px; }
.cond-search { position:relative; max-width:520px; }
.cond-search > .ico { position:absolute; left:20px; top:50%; transform:translateY(-50%); width:20px; height:20px; color:#087fb5; pointer-events:none; }
.cond-search input { min-height:58px; padding:14px 20px 14px 52px; border:1px solid #d9e5df; border-radius:999px; background:#fff; font-size:.92rem; box-shadow:0 12px 30px #153e510c; }
.cond-search input:focus { border-color:#3f9fb1; }
.cond-hero-card { padding:32px; background:#fff; border:1px solid #e1ece5; border-radius:24px; box-shadow:0 20px 50px #173e4909; }
.cond-hero-card h2 { font-size:1.6rem; letter-spacing:-.035em; margin:4px 0 20px; }
.cond-hero-card ol { list-style:none; padding:0; margin:0; display:grid; gap:18px; }
.cond-hero-card li { display:flex; gap:14px; }
.cond-hero-card li > span { flex:none; display:grid; place-items:center; width:34px; height:34px; border:1px solid #c8ded9; border-radius:50%; font-size:.7rem; color:#478a91; }
.cond-hero-card strong { display:block; color:#2e5363; font-size:.87rem; margin-bottom:2px; }
.cond-hero-card li p { font-size:.78rem; color:#6a8089; margin:0; line-height:1.6; }

.cond-jump { position:sticky; top:72px; z-index:50; background:#ffffffef; backdrop-filter:blur(8px); border-block:1px solid #e5eeec; }
.cond-jump ul { list-style:none; display:flex; gap:8px; padding:12px 0; margin:0; overflow-x:auto; scrollbar-width:none; }
.cond-jump ul::-webkit-scrollbar { display:none; }
.cond-jump a { display:inline-flex; align-items:center; gap:8px; white-space:nowrap; padding:8px 12px 8px 12px; border:1px solid #dce8e2; border-radius:999px; background:#fff; color:#46606d; font-size:.76rem; font-weight:600; text-decoration:none; transition:border-color .15s,color .15s,background .15s; }
.cond-jump a .ico { width:16px; height:16px; color:#087fb5; }
.cond-jump a > span { display:grid; place-items:center; min-width:20px; height:20px; padding:0 5px; border-radius:999px; background:#edf6f6; color:#087ba6; font-size:.65rem; }
.cond-jump a:hover { border-color:#8cc3cc; color:#087fb5; background:#f6fbfb; }

.is-conditions .cond-list { padding:56px 0 80px; }
.cond-notice { display:flex; gap:14px; align-items:flex-start; margin-bottom:34px; padding:16px 20px; border-radius:14px; background:#fcfaf5; border:1px solid #eee7d7; }
.cond-notice > .ico { flex:none; color:#b07a1e; margin-top:4px; }
.cond-notice p { margin:0; font-size:.82rem; line-height:1.8; color:#80704f; }
.cond-notice strong { color:#6a5428; }
.cond-area { display:grid; grid-template-columns:320px minmax(0,1fr); gap:40px; padding:36px; margin-bottom:22px; border-radius:26px; background:#f3f8f7; border:1px solid #deebe9; scroll-margin-top:140px; }
.cond-area:nth-of-type(4n+2) { background:#f4f7fb; border-color:#e0e8f0; }
.cond-area:nth-of-type(4n+3) { background:#faf9f4; border-color:#eeeadf; }
.cond-area:nth-of-type(4n) { background:#f7f6fa; border-color:#e8e5ed; }
.cond-area[hidden] { display:none; }
.cond-area-head { align-self:start; position:sticky; top:150px; }
.cond-area-icon { display:grid; place-items:center; width:56px; height:56px; border-radius:18px; background:#fff; color:#087c9f; box-shadow:0 8px 20px #153e5108; margin-bottom:20px; }
.cond-area-icon .ico { width:28px; height:28px; }
.cond-area-count { font-size:.66rem; font-weight:650; letter-spacing:.1em; text-transform:uppercase; color:#6a969f; margin-bottom:8px; }
.cond-area h2 { font-size:clamp(1.6rem,2.4vw,2rem); letter-spacing:-.035em; margin-bottom:12px; }
.cond-area-head > p:not(.cond-area-count) { font-size:.86rem; line-height:1.8; color:#5f7480; margin-bottom:16px; }
.cond-area-head .link-arrow { font-size:.8rem; }
.cond-cards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; align-content:start; }
.cond-card { display:flex; flex-direction:column; padding:22px; background:#fff; border:1px solid #e1ebe8; border-radius:18px; color:var(--ink); text-decoration:none; box-shadow:0 5px 16px #123e5104; transition:transform .2s,box-shadow .2s,border-color .2s; }
.cond-card[hidden] { display:none; }
.cond-cards > .cond-card:last-child:nth-child(odd) { grid-column:1/-1; }
.cond-card:hover { color:var(--ink); transform:translateY(-3px); border-color:#9ccdd8; box-shadow:0 16px 35px #163e4c10; }
.cond-card h3 { font-size:1rem; line-height:1.4; color:var(--blue-900); margin:0 0 8px; }
.cond-card p { font-size:.8rem; line-height:1.75; color:#637884; margin:0 0 16px; }
.cond-card-link { display:flex; justify-content:space-between; align-items:center; margin-top:auto; padding-top:14px; border-top:1px solid #edf2f1; font-size:.76rem; font-weight:650; color:#087ba6; }
.cond-card-link > span { display:grid; place-items:center; width:28px; height:28px; border-radius:50%; background:#edf6f6; transition:background .2s,color .2s; }
.cond-card:hover .cond-card-link > span { background:#087fb5; color:#fff; }
.cond-empty { padding:30px; text-align:center; border:1px dashed #cfe0dc; border-radius:20px; color:#5f7480; font-size:.9rem; }
.cond-missing { display:flex; align-items:center; gap:18px; margin-top:34px; padding:24px 28px; border-radius:22px; background:#f1f8f4; border:1px solid #d7e8dc; }
.cond-missing > span { display:grid; place-items:center; width:48px; height:48px; flex:none; border-radius:50%; background:#e0f0e5; color:#278658; }
.cond-missing > div { flex:1; }
.cond-missing strong { display:block; color:#1e4558; font-size:1rem; margin-bottom:2px; }
.cond-missing p { margin:0; font-size:.84rem; color:#5f7480; }
.cond-missing .btn { flex:none; font-size:.84rem; }
.is-conditions .home-booking { padding:0 0 90px; background:#fff; }
.is-conditions .booking-panel .eyebrow { color:#a9e3e9; }
.is-conditions .booking-panel h2 { font-size:clamp(2.1rem,3.6vw,3rem); line-height:1.1; color:#fff; margin:18px 0; }

@media (max-width:1079px) { .cond-hero-grid { gap:40px; } .cond-area { grid-template-columns:260px minmax(0,1fr); gap:28px; padding:28px; } }
@media (max-width:899px) { .cond-hero-grid { grid-template-columns:1fr; gap:35px; } .cond-hero-card { max-width:600px; } .cond-area { grid-template-columns:1fr; } .cond-area-head { position:static; } .is-conditions .cond-list { padding:40px 0 55px; } }
@media (max-width:639px) { .cond-cards { grid-template-columns:1fr; } .cond-area { padding:22px; border-radius:22px; } .cond-missing { flex-direction:column; align-items:flex-start; } .cond-missing .btn { width:100%; } .is-conditions .home-booking { padding-bottom:55px; } }
/* Service & condition pages: builds on the article layout above. */
.clin-hero .hero-actions { margin:24px 0 0; }
.clin-hero .hero-actions .btn { font-size:.88rem; padding:15px 22px; }
.clin-hero .article-pills { margin-top:22px; }
.article-body .clin-checks { grid-template-columns:repeat(2,minmax(0,1fr)); }
.article-body .clin-checks li { display:flex; gap:12px; align-items:flex-start; padding:14px 16px; background:#fff; border:1px solid #e1ebe8; border-radius:14px; box-shadow:0 4px 12px #123e5104; }
.article-body .clin-checks li::before { content:none; }
.article-body .clin-checks li > .ico { flex:none; width:22px; height:22px; padding:4px; box-sizing:border-box; margin-top:3px; border-radius:50%; background:#e5f4f5; color:#087fb5; }
.article-body .clin-checks span { font-size:.92rem; line-height:1.7; }
.article-body .clin-chips { display:flex; flex-wrap:wrap; gap:10px; }
.article-body .clin-chips li { padding:0; background:none; border:0; }
.article-body .clin-chips li::before { content:none; }
.clin-chips a, .clin-chips span { display:inline-flex; align-items:center; gap:8px; padding:10px 16px; border-radius:999px; background:#f7faf9; border:1px solid #dfe9e7; color:#2e5363; font-size:.84rem; font-weight:600; text-decoration:none; transition:border-color .15s,color .15s,background .15s; }
.clin-chips a .ico { width:14px; height:14px; color:#087fb5; }
.clin-chips a:hover { border-color:#8cc3cc; color:#087fb5; background:#fff; }
.clin-assess { display:flex; gap:22px; align-items:flex-start; padding:24px 26px 6px; margin-bottom:1.4rem; border-radius:20px; background:#eff6f5; border:1px solid #dcebe8; }
.clin-assess > img { flex:none; width:96px; height:128px; object-fit:cover; object-position:top; border-radius:16px; background:linear-gradient(145deg,#d2edf0,#8ccad9); }
.clin-assess-by { font-size:.8rem !important; color:#6a858e !important; margin-bottom:10px !important; line-height:1.5 !important; }
.clin-assess-by strong { color:#1e4558; }
.clin-assess-by span { display:block; font-size:.72rem; }
.clin-approach { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin-bottom:.8rem; }
.clin-approach > div { padding:22px; background:#fff; border:1px solid #e1ebe8; border-radius:18px; box-shadow:0 5px 16px #123e5104; transition:border-color .2s,transform .2s; }
.clin-approach > div:hover { border-color:#9ccdd8; transform:translateY(-2px); }
.clin-approach span { display:inline-grid; place-items:center; width:32px; height:32px; margin-bottom:12px; border-radius:10px; background:#e5f4f5; color:#087fb5; font-size:.72rem; font-weight:650; }
.article-body .clin-approach h3 { margin:0 0 6px; font-size:.98rem; }
.article-body .clin-approach p { margin:0; font-size:.86rem; line-height:1.75; }
.article-body .clin-small { font-size:.78rem; color:#7a8e96; }
.article-body .clin-flags { margin:8px 0 0; gap:6px; }
.article-body .clin-flags li { padding:0 0 0 18px; background:none; border:0; color:#7a5a2c; font-size:.9rem; line-height:1.7; }
.article-body .clin-flags li::before { left:0; top:10px; width:7px; height:7px; border:0; background:#c58a2a; }
.clin-refs { margin-top:2.4rem; padding:20px 22px; border-radius:16px; background:#f7faf9; border:1px solid #e3eeeb; }
.clin-refs > p { font-size:.62rem !important; font-weight:700; letter-spacing:.14em; color:#6a858e !important; margin:0 0 8px; }
.article-body .clin-refs ul { gap:0; margin:0; }
.article-body .clin-refs li { padding:0; background:none; border:0; }
.article-body .clin-refs li::before { content:none; }
.clin-refs a { display:flex; gap:10px; align-items:center; padding:8px 0; font-size:.84rem; color:#087ba6; text-decoration:none; }
.clin-refs a .ico { flex:none; width:15px; height:15px; color:#4c9a9c; }
.clin-refs a:hover { text-decoration:underline; }
.clin-cta-doc { display:flex; gap:12px; align-items:center; margin-bottom:18px; padding-bottom:18px; border-bottom:1px solid #ffffff1f; position:relative; }
.clin-cta-doc img { width:52px; height:68px; object-fit:cover; object-position:top; border-radius:12px; background:#ffffff17; }
.clin-cta-doc strong { display:block; color:#fff; font-size:.86rem; }
.clin-cta-doc span { display:block; font-size:.66rem; line-height:1.5; color:#a9cfd8; }
.is-clinical .article-body .form-card { margin-top:.5rem; }
.is-clinical .form-card { border:1px solid #dce8e2; border-radius:24px; padding:34px; box-shadow:0 20px 50px #254c5908; }
.is-clinical .form-card h2 { font-size:1.55rem; margin-bottom:10px; }
.is-clinical .form-card .muted { font-size:.8rem; line-height:1.8; margin-bottom:25px; }
.is-clinical .form-card label { font-size:.78rem; color:#315361; margin-bottom:7px; }
.is-clinical .form-card input, .is-clinical .form-card select, .is-clinical .form-card textarea { background:#f9fbfa; border:1px solid #d9e5df; border-radius:10px; font-size:.85rem; padding:12px 13px; min-height:47px; }
.is-clinical .form-card input:focus, .is-clinical .form-card select:focus, .is-clinical .form-card textarea:focus { border-color:#3f9fb1; background:#fff; }
.is-clinical .form-card .hint, .is-clinical .form-card .form-note { font-size:.7rem; line-height:1.8; }
.is-clinical .form-card .form-actions .btn { font-size:.8rem; border-radius:11px; padding:14px 16px; }
.is-clinical .clin-related { background:#fff; padding:10px 0 60px; }
.blog-tile-visual.is-icon { display:grid; place-items:center; background:radial-gradient(circle at 50% 55%,#ffffff9e 0 22%,transparent 22.5%),linear-gradient(145deg,#e5f4f2,#bcdde2); }
.blog-tile:nth-child(2) .blog-tile-visual.is-icon { background:radial-gradient(circle at 50% 55%,#ffffff9e 0 22%,transparent 22.5%),linear-gradient(145deg,#eaf1fb,#c4d8ee); }
.blog-tile:nth-child(3) .blog-tile-visual.is-icon { background:radial-gradient(circle at 50% 55%,#ffffff9e 0 22%,transparent 22.5%),linear-gradient(145deg,#f6f3ea,#e3dac2); }
.tile-icon { display:grid; place-items:center; width:84px; height:84px; margin-top:14px; border-radius:26px; background:#fff; color:#087fb5; box-shadow:0 14px 30px #0c587514; transition:transform .3s; }
.tile-icon .ico { width:40px; height:40px; }
.blog-tile:hover .tile-icon { transform:scale(1.06); }
.is-clinical .clin-book { background:#eff6f4; padding:80px 0; scroll-margin-top:72px; }
.clin-book h2 em { font-family:var(--serif); font-style:italic; font-weight:400; color:#087fa3; }
.is-clinical .clin-booking { padding:20px 0 90px; background:#fff; }
.is-clinical .booking-panel .eyebrow { color:#a9e3e9; }
.is-clinical .booking-panel h2 { font-size:clamp(2.1rem,3.6vw,3rem); line-height:1.1; color:#fff; margin:18px 0; }
@media (max-width:899px) { .is-clinical .clin-book { padding:55px 0; } }
@media (max-width:639px) { .article-body .clin-checks, .clin-approach { grid-template-columns:1fr; } .clin-assess { flex-direction:column; padding:20px 20px 4px; } .clin-assess > img { width:72px; height:96px; } .is-clinical .form-card { padding:23px 20px; } .is-clinical .clin-booking { padding-bottom:55px; } }

@media (max-width:479px) { .is-conditions .cond-hero { padding:34px 0 40px; } .cond-hero h1 { font-size:2.5rem; } .cond-hero-card { padding:24px; } .cond-jump { top:66px; } }

/* Nav: "Services" is a link; the chevron button opens the menu (hover also opens it on desktop). */
.nav-list > .split-sub { display:flex; flex-wrap:wrap; align-items:center; }
.split-sub > .nav-parent { flex:1; width:auto; }
.split-sub > .nav-parent.is-current { color:var(--blue-700); }
.split-sub > .sub-toggle { flex:none; width:auto; padding:.9rem .6rem; }
.split-sub > .sub { flex-basis:100%; }
@media (min-width:1080px) {
  .split-sub > .nav-parent { flex:none; padding-right:.2rem !important; }
  .split-sub > .sub-toggle { padding:.55rem .45rem !important; margin-left:-2px; }
  .split-sub > .sub { flex-basis:auto; }
  .split-sub:hover > .nav-parent, .split-sub:hover > .sub-toggle { background:var(--blue-50); color:var(--blue-800); }
  .split-sub:hover > .nav-parent { border-radius:999px 0 0 999px; }
  .split-sub:hover > .sub-toggle { border-radius:0 999px 999px 0; }
}

/* Local area pages (Panvel, Khanda Colony, Kamothe, Kalamboli). */
.loc-hero .hero-actions { margin:24px 0 0; }
.loc-hero .hero-actions .btn { font-size:.88rem; padding:15px 22px; }
.loc-hero .article-pills { margin-top:22px; }
.loc-route { position:relative; overflow:hidden; padding:32px; border-radius:26px; background:#fff; border:1px solid #e1ece5; box-shadow:0 24px 55px #0c587514; }
.loc-route::after { content:""; position:absolute; width:260px; height:260px; right:-110px; top:-110px; border-radius:50%; background:radial-gradient(circle,#dceef0,transparent 70%); pointer-events:none; }
.loc-route-kicker { font-size:.65rem; font-weight:700; letter-spacing:.15em; color:#087e9f; margin:0 0 22px; }
.loc-route ol { list-style:none; padding:0; margin:0 0 24px; position:relative; }
.loc-route ol::before { content:""; position:absolute; left:21px; top:44px; bottom:44px; border-left:2px dashed #9fcad4; }
.loc-route li { position:relative; display:flex; gap:16px; align-items:flex-start; }
.loc-route li + li { margin-top:30px; }
.loc-dot { position:relative; z-index:1; display:grid; place-items:center; flex:none; width:44px; height:44px; border-radius:50%; }
.loc-dot.is-start { background:#fff; border:2px solid #9fcad4; color:#087fb5; }
.loc-dot.is-end { background:#087fb5; color:#fff; box-shadow:0 8px 20px #087fb540; }
.loc-dot .ico { width:20px; height:20px; }
.loc-route small { display:block; font-size:.66rem; font-weight:650; letter-spacing:.1em; text-transform:uppercase; color:#6f9aa3; margin-top:2px; }
.loc-route strong { display:block; font-size:1.05rem; color:#1e4558; }
.loc-route li p { margin:3px 0 0; font-size:.8rem; line-height:1.6; color:#637884; }
.loc-route-btn { width:100%; border-radius:14px; font-size:.86rem; }
.loc-route-doc { display:flex; gap:12px; align-items:center; margin-top:20px; padding-top:20px; border-top:1px solid #e9efeb; }
.loc-route-doc img { width:46px; height:60px; object-fit:cover; object-position:top; border-radius:12px; background:linear-gradient(145deg,#d2edf0,#8ccad9); }
.loc-route-doc strong { font-size:.86rem; }
.loc-route-doc span { display:block; font-size:.74rem; color:#6a8089; }
.loc-directions { display:flex; gap:16px; align-items:center; margin:1.4rem 0 .4rem; padding:20px 22px; border-radius:18px; background:#eef7f6; border:1px solid #d4e9e6; }
.loc-directions > span { display:grid; place-items:center; width:46px; height:46px; flex:none; border-radius:50%; background:#fff; color:#087fb5; }
.loc-directions > div { flex:1; }
.loc-directions strong { display:block; color:#1e4558; font-size:.95rem; }
.article-body .loc-directions p { margin:0; font-size:.82rem; line-height:1.6; color:#5f7480; }
.loc-directions .btn { flex:none; font-size:.82rem; }
.is-location .loc-services { background:#f7faf8; padding:80px 0; }
@media (min-width:1100px) { .service-gallery:has(> :nth-child(5):last-child) > :nth-child(n+4) { grid-column:span 3; } .service-gallery:has(> :nth-child(5):last-child) > :nth-child(n+4) .service-tile-visual { aspect-ratio:2/1; } }
.is-location .visit-grid { gap:28px; }
.is-location .visit-grid .card { padding:30px; border-radius:22px; border-color:#e0eae4; }
.is-location .info-list { gap:20px; }
.is-location .info-list strong { font-size:.83rem; margin-bottom:4px; }
.is-location .info-list span, .is-location .info-list a, .is-location .hours div { font-size:.8rem; }
.is-location .info-list .ii { background:#eaf4f1; border-radius:13px; }
.is-location .visit-grid .form-actions .btn { font-size:.8rem; border-radius:12px; }
.is-location .visit-grid .form-note { font-size:.73rem; line-height:1.8; }
.is-location .map-box { border-radius:22px; border:1px solid #d5e5dd; }
.is-location .map-facade { background:radial-gradient(circle at 50% 35%,#fff8 0 19%,transparent 19.5%),linear-gradient(35deg,transparent 46%,#ffffff65 46% 49%,transparent 49%),linear-gradient(130deg,#e4f1e8,#c9e4e6); padding:38px; gap:18px; }
.is-location .map-facade > .ico { width:66px; height:66px; padding:17px; background:#fff; border-radius:50%; box-shadow:0 10px 30px #22506314; }
.is-location .map-facade p { font-size:.85rem; line-height:1.8; }
.is-location .map-facade .btn { border-radius:12px; font-size:.82rem; padding:14px 25px; }
.is-location #visit-h { font-size:clamp(1.9rem,3vw,2.4rem); letter-spacing:-.035em; }
.is-location .eyebrow { font-size:.65rem; letter-spacing:.15em; color:#087e9f; }
@media (max-width:899px) { .loc-route { max-width:600px; } .is-location .loc-services { padding:55px 0; } }
@media (max-width:559px) { .loc-route { padding:24px; } .loc-directions { flex-direction:column; align-items:flex-start; } .loc-directions .btn { width:100%; } }

/* Book appointment. */
.is-booking .eyebrow { font-size:.65rem; letter-spacing:.15em; color:#087e9f; }
.book-hero { position:relative; overflow:hidden; padding:56px 0 72px; background:#f6f9f5; }
.book-hero::after { content:""; position:absolute; width:620px; height:620px; left:-260px; bottom:-300px; border-radius:50%; background:radial-gradient(circle,#dceef0,transparent 68%); pointer-events:none; }
.book-grid { position:relative; z-index:1; }
.book-intro { padding-top:10px; }
.book-intro h1 { font:650 clamp(2.4rem,4vw,3.6rem)/1.1 var(--sans); letter-spacing:-.05em; margin:18px 0 22px; }
.book-intro h1 em { font-family:var(--serif); font-style:italic; color:#087fa3; font-weight:400; }
.book-intro .lead { font-size:1rem; line-height:1.85; color:#5c7480; }
.book-hours { display:flex; gap:14px; align-items:flex-start; margin:0 0 22px; padding:18px 20px; border-radius:17px; background:#fff; border:1px solid #e1ece5; }
.book-hours > span { display:grid; place-items:center; width:40px; height:40px; flex:none; border-radius:12px; background:#e8f4f1; color:#087da1; }
.book-hours > div { flex:1; }
.book-hours strong { display:block; font-size:.84rem; color:#2e5363; margin-bottom:6px; }
.book-hours .hours div { font-size:.78rem; color:#627984; }
.book-hours .hours dt { font-weight:500; }
.book-form-wrap { position:sticky; top:92px; }
.is-booking .form-card { box-shadow:0 28px 60px #12405214; }
.book-strip .care-strip-inner > a { display:flex; gap:16px; align-items:center; justify-content:center; text-decoration:none; color:inherit; transition:transform .2s; }
.book-strip .care-strip-inner > a + a { border-left:1px solid #e0e9e8; }
.book-strip .care-strip-inner > a:hover { transform:translateY(-2px); }
.book-strip .care-strip-inner > a:hover strong { color:#087fb5; }
.is-booking .book-prep { background:#eff6f5; padding:80px 0; }
.book-prep h2, .book-faq h2 { font-size:clamp(1.9rem,3vw,2.6rem); letter-spacing:-.035em; line-height:1.15; }
.is-booking .book-faq { background:#f7faf8; padding:80px 0 90px; }
.book-faq h2 { margin:18px 0; }
@media (max-width:899px) { .book-form-wrap { position:static; } .book-strip .care-strip-inner > a { justify-content:flex-start; } .book-strip .care-strip-inner > a + a { border-left:0; } .is-booking .book-prep,.is-booking .book-faq { padding:55px 0; } }
@media (max-width:479px) { .book-hero { padding:34px 0 45px; } .book-intro h1 { font-size:2.3rem; } }

/* Legal pages (medical disclaimer): builds on the article layout. */
.legal-hero h1 em { font-family:var(--serif); font-style:italic; font-weight:400; color:#087fa3; }
.legal-hero h1 { font-size:clamp(2.4rem,4vw,3.6rem); }
.legal-emergency { position:relative; overflow:hidden; padding:32px; border-radius:24px; background:#fff; border:1px solid #f0dfc0; box-shadow:0 20px 50px #5a3d0a12; }
.legal-emergency::before { content:""; position:absolute; inset:0 0 auto 0; height:6px; background:linear-gradient(90deg,#d98a1c,#f2b45a); }
.legal-emergency-icon { display:grid; place-items:center; width:54px; height:54px; border-radius:18px; background:#fdf1dc; color:#b86e00; margin-bottom:20px; }
.legal-emergency-icon .ico { width:26px; height:26px; }
.legal-emergency-kicker { font-size:.65rem; font-weight:700; letter-spacing:.15em; color:#a3650c; margin:0 0 8px; }
.legal-emergency h2 { font-size:1.75rem; letter-spacing:-.035em; color:#4d3005; margin-bottom:12px; }
.legal-emergency > p:not(.legal-emergency-kicker) { font-size:.88rem; line-height:1.8; color:#7a5a2c; margin-bottom:20px; }
.legal-call { background:#b8650a; color:#fff; font-size:.88rem; }
.legal-call:hover { background:#95510a; color:#fff; }
.legal-emergency.is-teal { border-color:#d4e9e6; box-shadow:0 20px 50px #0c587512; }
.legal-emergency.is-teal::before { background:linear-gradient(90deg,#087fb5,#5cc0cf); }
.legal-emergency.is-teal .legal-emergency-icon { background:#e5f4f5; color:#087fb5; }
.legal-emergency.is-teal .legal-emergency-kicker { color:#087e9f; }
.legal-emergency.is-teal h2 { color:var(--blue-900); }
.legal-emergency.is-teal > p:not(.legal-emergency-kicker) { color:#5f7480; }
.legal-emergency.is-teal .btn { font-size:.86rem; }
.legal-contact { padding:20px 22px; border-radius:16px; background:#f7faf9; border:1px solid #e3eeeb; }
.article-body .legal-contact p { margin:0 0 8px; font-size:.9rem; }
.article-body .legal-contact p:last-child { margin:0; }
.legal-summary { background:#fff; border-bottom:1px solid #e5eeec; }
.legal-summary ul { list-style:none; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0; padding:0; margin:0; }
.legal-summary li { display:grid; grid-template-columns:44px 1fr; gap:2px 14px; align-items:center; padding:26px 22px; }
.legal-summary li + li { border-left:1px solid #e5eeec; }
.legal-summary li > span { grid-row:1/3; display:grid; place-items:center; width:44px; height:44px; border-radius:50%; background:#e9f5f5; color:#087fb5; }
.legal-summary li > span .ico { width:20px; height:20px; }
.legal-summary strong { font-size:.88rem; color:#153e51; align-self:end; }
.legal-summary p { margin:0; font-size:.75rem; color:#71808b; align-self:start; }
.is-legal .article-body h2 { margin-top:2.4rem; }
.is-legal .article-body h2:first-child { margin-top:0; }
@media (max-width:1079px) { .legal-summary ul { grid-template-columns:repeat(2,minmax(0,1fr)); } .legal-summary li:nth-child(3) { border-left:0; } .legal-summary li:nth-child(n+3) { border-top:1px solid #e5eeec; } }
@media (max-width:899px) { .legal-emergency { max-width:600px; } }
@media (max-width:559px) { .legal-summary ul { grid-template-columns:1fr; } .legal-summary li + li { border-left:0; border-top:1px solid #e5eeec; } .legal-summary li { padding:18px 4px; } .legal-emergency { padding:24px; } .legal-call { width:100%; } }

/* Services index. */
.is-services .eyebrow { font-size:.65rem; letter-spacing:.15em; color:#087e9f; }
.is-services .svc-hero { position:relative; overflow:hidden; padding:56px 0 68px; background:#f6f9f5; border:0; }
.svc-hero::after { content:""; position:absolute; width:620px; height:620px; right:-240px; top:-160px; border-radius:50%; background:radial-gradient(circle,#dceef0,transparent 68%); pointer-events:none; }
.svc-hero-grid { position:relative; z-index:1; display:grid; grid-template-columns:1.05fr 1fr; gap:64px; align-items:center; }
.svc-hero h1 { font:650 clamp(2.6rem,4.3vw,4rem)/1.1 var(--sans); letter-spacing:-.05em; margin:20px 0 24px; }
.svc-hero h1 em { font-family:var(--serif); font-style:italic; color:#087fa3; font-weight:400; }
.svc-hero .lead { max-width:560px; font-size:1rem; color:#637b85; line-height:1.85; }
.svc-hero .hero-actions .btn { font-size:.88rem; padding:15px 22px; }
.svc-collage { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.svc-collage-item { position:relative; display:block; border-radius:22px; overflow:hidden; aspect-ratio:1/1; box-shadow:0 18px 40px #0c58751a; }
.svc-collage-item:nth-child(1) { border-radius:120px 22px 22px 22px; }
.svc-collage-item:nth-child(4) { border-radius:22px 22px 120px 22px; }
.svc-collage-item:nth-child(even) { transform:translateY(28px); }
.svc-collage-item img { width:100%; height:100%; object-fit:cover; transition:transform .45s; }
.svc-collage-item:hover img { transform:scale(1.05); }
.svc-collage-item > span { position:absolute; left:12px; bottom:12px; display:inline-flex; align-items:center; gap:7px; padding:7px 12px; border-radius:999px; background:#ffffffed; color:#1e4558; font-size:.7rem; font-weight:650; }
.svc-collage-item > span .ico { width:14px; height:14px; color:#087fb5; }
.svc-jump a { padding:8px 14px; }
.is-services .svc-clinical { padding:80px 0; }
.svc-head { display:grid; grid-template-columns:1fr 1.1fr; gap:60px; align-items:end; margin-bottom:36px; }
.svc-head h2 { font-size:clamp(1.9rem,3vw,2.6rem); letter-spacing:-.035em; margin:16px 0 0; }
.svc-head > p { margin:0; font-size:.93rem; line-height:1.9; color:#5f7480; }
.is-services .svc-how { background:#eff6f5; padding:80px 0; }
.svc-how h2 { font-size:clamp(1.9rem,3vw,2.6rem); letter-spacing:-.035em; }
.svc-steps { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; }
.svc-steps li { position:relative; padding:28px 22px; background:#fff; border:1px solid #deebe8; border-radius:20px; box-shadow:0 8px 20px #204b5804; }
.svc-steps li > span { display:grid; place-items:center; width:54px; height:54px; border-radius:50%; background:#e9f5f5; color:#0b819f; margin-bottom:22px; }
.svc-steps li > span .ico { width:24px; height:24px; }
.svc-steps small { position:absolute; top:22px; right:20px; font-size:.8rem; font-weight:600; color:#6a969f; }
.svc-steps h3 { font-size:1.02rem; margin-bottom:8px; }
.svc-steps p { margin:0; font-size:.84rem; line-height:1.8; color:#657b86; }
.svc-steps li:last-child { background:#155065; border-color:#155065; }
.svc-steps li:last-child h3 { color:#fff; }
.svc-steps li:last-child p { color:#c9dfe5; }
.svc-steps li:last-child small { color:#9fcad4; }
.svc-steps li:last-child > span { background:#ffffff17; color:#a9e3e9; }
.is-services .svc-corporate { padding:80px 0; }
.svc-corp-panel { display:grid; grid-template-columns:.8fr 1.2fr; gap:44px; align-items:center; padding:48px; border-radius:28px; background:linear-gradient(125deg,#103a4b,#19556a); position:relative; overflow:hidden; }
.svc-corp-panel::before { content:""; position:absolute; width:520px; height:520px; border:1px solid #ffffff13; border-radius:50%; left:-200px; bottom:-280px; pointer-events:none; }
.svc-corp-panel .eyebrow { color:#9bdbeb; }
.svc-corp-copy { position:relative; }
.svc-corp-copy h2 { color:#fff; font-size:clamp(1.9rem,3vw,2.6rem); letter-spacing:-.035em; margin:18px 0; }
.svc-corp-copy h2 em { font-family:var(--serif); font-style:italic; font-weight:400; color:#b8edf0; }
.svc-corp-copy p { font-size:.9rem; line-height:1.9; color:#bdd7df; }
.svc-corp-cards { display:grid; grid-template-columns:1fr 1fr; gap:16px; position:relative; }
.svc-corp-card { display:flex; flex-direction:column; border-radius:20px; overflow:hidden; background:#fff; color:var(--ink); text-decoration:none; transition:transform .22s,box-shadow .22s; }
.svc-corp-card:hover { color:var(--ink); transform:translateY(-5px); box-shadow:0 20px 40px #00000030; }
.svc-corp-img { aspect-ratio:16/10; overflow:hidden; }
.svc-corp-img img { width:100%; height:100%; object-fit:cover; transition:transform .45s; }
.svc-corp-card:hover .svc-corp-img img { transform:scale(1.05); }
.svc-corp-body { position:relative; display:flex; flex-direction:column; flex:1; padding:30px 22px 18px; }
.svc-corp-ico { position:absolute; top:-23px; right:20px; display:grid; place-items:center; width:46px; height:46px; border:4px solid #fff; border-radius:14px; color:#fff; background:#087fb5; }
.svc-corp-ico .ico { width:20px; height:20px; }
.svc-corp-body h3 { font-size:1rem; margin-bottom:8px; }
.svc-corp-body p { font-size:.8rem; line-height:1.75; color:#607381; margin:0 0 16px; }
.svc-corp-link { display:flex; justify-content:space-between; align-items:center; margin-top:auto; padding-top:14px; border-top:1px solid #edf2f1; font-size:.76rem; font-weight:650; color:#087ba6; }
.svc-corp-link > span { display:grid; place-items:center; width:28px; height:28px; border-radius:50%; background:#edf6f6; transition:background .2s,color .2s; }
.svc-corp-card:hover .svc-corp-link > span { background:#087fb5; color:#fff; }
.svc-doc-note { margin-top:30px; }
@media (max-width:1079px) { .svc-hero-grid { gap:40px; } .svc-steps { grid-template-columns:repeat(2,minmax(0,1fr)); } .svc-corp-panel { grid-template-columns:1fr; } }
@media (max-width:899px) { .svc-hero-grid,.svc-head { grid-template-columns:1fr; } .svc-head { gap:14px; } .svc-collage { max-width:520px; } .is-services .svc-clinical,.is-services .svc-how,.is-services .svc-corporate { padding:55px 0; } }
@media (max-width:559px) { .svc-steps,.svc-corp-cards { grid-template-columns:1fr; } .svc-corp-panel { padding:26px; border-radius:22px; } .svc-collage { gap:10px; } .svc-collage-item:nth-child(even) { transform:translateY(16px); } .svc-collage-item > span { font-size:.62rem; padding:5px 9px; } }
@media (max-width:479px) { .is-services .svc-hero { padding:34px 0 50px; } .svc-hero h1 { font-size:2.5rem; } .svc-hero .hero-actions .btn { flex:1 1 100%; } }

/* Motion: hero entrance, scroll reveal and a few gentle accents.
   Uses the individual translate/scale properties so existing transform-based hovers keep working.
   The global prefers-reduced-motion rule near the top switches all of this off. */
@keyframes heroUp { from { opacity:0; translate:0 22px; } to { opacity:1; translate:0 0; } }
@keyframes heroIn { from { opacity:0; scale:.96; } to { opacity:1; scale:1; } }
@keyframes floaty { 0%, 100% { translate:0 0; } 50% { translate:0 -6px; } }
@keyframes softPulse { 0%, 100% { opacity:.55; scale:1; } 50% { opacity:1; scale:1.04; } }
:is(.is-home .hero-grid, .about-hero-grid, .svc-hero-grid, .cond-hero-grid, .blog-hero-grid, .is-article .article-hero-grid) > div:first-child > * { animation:heroUp .8s cubic-bezier(.2,.7,.2,1) both; }
:is(.is-home .hero-grid, .about-hero-grid, .svc-hero-grid, .cond-hero-grid, .blog-hero-grid, .is-article .article-hero-grid) > div:first-child > :nth-child(2) { animation-delay:.08s; }
:is(.is-home .hero-grid, .about-hero-grid, .svc-hero-grid, .cond-hero-grid, .blog-hero-grid, .is-article .article-hero-grid) > div:first-child > :nth-child(3) { animation-delay:.16s; }
:is(.is-home .hero-grid, .about-hero-grid, .svc-hero-grid, .cond-hero-grid, .blog-hero-grid, .is-article .article-hero-grid) > div:first-child > :nth-child(4) { animation-delay:.24s; }
:is(.is-home .hero-grid, .about-hero-grid, .svc-hero-grid, .cond-hero-grid, .blog-hero-grid, .is-article .article-hero-grid) > div:first-child > :nth-child(5) { animation-delay:.32s; }
:is(.is-home .hero-grid, .about-hero-grid, .svc-hero-grid, .cond-hero-grid, .blog-hero-grid, .is-article .article-hero-grid) > div:first-child > :nth-child(n+6) { animation-delay:.4s; }
.is-home .doctor-hero, .about-portrait, .svc-collage, .cond-hero-card, .blog-hero-card, .is-article .article-visual, .legal-emergency, .loc-route { animation:heroIn 1s .2s cubic-bezier(.2,.7,.2,1) both; }
.doctor-hero-label { animation:floaty 6s 1.4s ease-in-out infinite; }
.article-visual-note { animation:floaty 6s 1.6s ease-in-out infinite; }
.doctor-hero-backdrop::after { animation:softPulse 7s ease-in-out infinite; }
.svc-collage-item:nth-child(2) { animation:heroIn .9s .35s both; }
.svc-collage-item:nth-child(3) { animation:heroIn .9s .45s both; }
.svc-collage-item:nth-child(4) { animation:heroIn .9s .55s both; }
.rv { opacity:0; translate:0 26px; transition:opacity .75s cubic-bezier(.2,.7,.2,1), translate .75s cubic-bezier(.2,.7,.2,1); transition-delay:calc(var(--rv-i, 0) * 90ms); }
.rv.rv-in { opacity:1; translate:0 0; }
.btn { transition:background .2s, color .2s, border-color .2s, transform .2s, box-shadow .2s; }
.btn-primary:hover, .btn-wa:hover { transform:translateY(-1px); box-shadow:0 10px 22px #087fb52e; }
.btn-wa:hover { box-shadow:0 10px 22px #128c4a2e; }
.link-arrow .ico { transition:transform .2s; }
.link-arrow:hover .ico { transform:translateX(3px); }

/* Mobile menu (below 1080px): full-height panel. The header's backdrop-filter would make the
   fixed panel size itself to the header box, so it is removed on small screens. */
.nav-contact { display:none; }
@media (max-width:1079px) {
  .site-header { backdrop-filter:none; -webkit-backdrop-filter:none; background:#fff; }
  .nav-open .site-header { box-shadow:0 6px 20px #0a254714; }
  .nav-open .sticky-cta { display:none; }
  .site-nav { bottom:0; height:auto; padding:10px var(--gut) 40px; background:#f7faf8; border-top:1px solid #e5eeec; }
  .site-nav.is-open { display:flex; flex-direction:column; animation:navIn .22s ease; }
  @keyframes navIn { from { opacity:0; transform:translateY(-8px); } to { opacity:1; transform:none; } }
  .nav-list { margin:0 0 16px; background:#fff; border:1px solid #e1ebe8; border-radius:20px; padding:6px 8px; }
  .nav-list > li { border-bottom:1px solid #eef3f1; }
  .nav-list > li:last-child { border-bottom:0; }
  .nav-list > li > a, .split-sub > .nav-parent { padding:15px 12px; font-size:1.02rem; font-weight:600; color:#1e4558; border-radius:12px; }
  .nav-list > li > a[aria-current="page"], .split-sub > .nav-parent.is-current { color:#087fb5; background:#eef7f7; }
  .split-sub > .sub-toggle { width:40px; height:40px; padding:0; margin-right:4px; display:grid; place-items:center; border-radius:50%; background:#eef6f4; color:#087fb5; }
  .split-sub > .sub-toggle[aria-expanded="true"] { background:#087fb5; color:#fff; }
  .sub.mega { padding:4px 0 12px; }
  .mega-grid { display:grid; gap:4px; }
  .mega-grid a { gap:12px; padding:9px 10px; font-size:.9rem; font-weight:500; color:#46606d; border-radius:12px; }
  .mega-grid a:hover, .mega-grid a[aria-current="page"] { background:#eef7f7; color:#087fb5; }
  .mega-ico { box-sizing:content-box; width:16px; height:16px; padding:7px; border-radius:10px; background:#eef6f4; }
  .mega-all { display:inline-flex; margin:6px 10px 0; font-size:.86rem; color:#087fb5; }
  .nav-cta { width:100%; min-height:52px; border-radius:14px; font-size:.95rem; flex:none; }
  .nav-contact { display:block; margin-top:14px; padding:18px; border-radius:20px; background:linear-gradient(120deg,#103f53,#087f9f); color:#c9e1e7; }
  .nav-contact-btns { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:14px; }
  .nav-contact-btns a { display:flex; align-items:center; justify-content:center; gap:8px; min-height:46px; border-radius:12px; background:#ffffff1a; color:#fff; font-weight:650; font-size:.9rem; text-decoration:none; }
  .nav-contact-btns a:last-child { background:var(--wa); }
  .nav-contact p { display:flex; gap:8px; align-items:flex-start; margin:6px 0 0; font-size:.78rem; line-height:1.5; }
  .nav-contact p .ico { width:15px; height:15px; margin-top:2px; color:#a9e3e9; }
  .nav-toggle { border-radius:14px; border-color:#dce8e2; }
  .nav-toggle[aria-expanded="true"] { background:#eef7f7; border-color:#9fcad4; }
}

/* Appointment popup: centred dialog over a soft backdrop (overrides the earlier corner placement). */
.pop-open, .pop-open body { overflow:hidden; }
.enq-backdrop { position:fixed; inset:0; z-index:95; background:rgba(9,38,50,.55); backdrop-filter:blur(3px); opacity:0; transition:opacity .25s ease; }
.enq-backdrop.is-visible { opacity:1; }
.enq-backdrop[hidden] { display:none; }
.enq-pop { left:50%; right:auto; top:50%; bottom:auto; z-index:100; width:min(480px, calc(100% - 32px)); max-height:calc(100vh - 32px); max-height:calc(100dvh - 32px); padding:0 26px 22px; border:0; border-radius:24px; box-shadow:0 30px 80px rgba(9,38,50,.35); transform:translate(-50%,-46%) scale(.97); transition:opacity .25s ease, transform .25s ease; }
.enq-pop.is-visible { transform:translate(-50%,-50%); }
.enq-head { display:flex; align-items:flex-end; gap:14px; margin:0 -26px 16px; padding:22px 60px 0 26px; background:linear-gradient(120deg,#103f53,#087f9f); border-radius:24px 24px 0 0; }
.enq-head img { width:56px; height:74px; object-fit:cover; object-position:top; flex:none; align-self:flex-end; }
.enq-head > div { padding-bottom:16px; }
.enq-kicker { font-size:.6rem; font-weight:700; letter-spacing:.15em; color:#a9e3e9; margin:0 0 6px; }
.enq-pop .enq-title { color:#fff; margin:0; font-size:1.25rem; line-height:1.25; }
.enq-close { top:14px; right:14px; z-index:1; background:#ffffff26; color:#fff; }
.enq-close:hover { background:#ffffff40; }
.enq-pop .enq-desc { font-size:.86rem; color:#5f7480; }
.enq-pop input, .enq-pop select { background:#f9fbfa; border:1px solid #d9e5df; border-radius:10px; }
.enq-pop input:focus, .enq-pop select:focus { border-color:#3f9fb1; background:#fff; }
.enq-pop .enq-actions .btn { border-radius:11px; }
/* Phones: a compact card – smaller header, no intro line, tighter fields. */
@media (max-width:699px) {
  .enq-pop { width:calc(100% - 28px); max-width:360px; padding:0 14px 12px; border-radius:20px; }
  .enq-head { gap:10px; margin:0 -14px 10px; padding:12px 48px 0 14px; border-radius:20px 20px 0 0; }
  .enq-head img { width:34px; height:45px; }
  .enq-head > div { padding-bottom:10px; }
  .enq-kicker { font-size:.54rem; margin-bottom:3px; }
  .enq-pop .enq-title { font-size:.98rem; }
  .enq-close { top:10px; right:10px; width:32px; height:32px; }
  .enq-close .ico { width:16px; height:16px; }
  .enq-pop .enq-desc { display:none; }
  .enq-pop .field { margin-bottom:.4rem; }
  .enq-pop label { font-size:.72rem; margin-bottom:.15rem; }
  .enq-pop input, .enq-pop select { min-height:38px; padding:.35rem .6rem; font-size:16px; }
  .enq-pop select { padding-right:2rem; }
  .enq-grid { gap:0 .5rem; }
  .enq-actions { grid-template-columns:1.3fr 1fr; gap:.4rem; }
  .enq-actions .btn { min-height:40px; font-size:.8rem; padding:.4rem .5rem; }
  .enq-note { font-size:.62rem; margin-top:.45rem; }
}
@media (max-height:640px) { .enq-head img { display:none; } .enq-head { padding-top:16px; } }
