/* Readable typography and restrained layouts across the clinic site. */
:root { --ink:#183b3e; --ink-2:#425657; --ink-3:#526667; --brand:#146b63; --brand-dark:#104e49; --tint:#f4f6f3; }
body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif; font-size:17px; line-height:1.7; }
h1,h2,h3,h4 { letter-spacing:-.025em; }
.shell { max-width:1320px; }
.btn-solid,.btn-ghost { font-size:15px; font-weight:600; border-radius:6px; box-shadow:none; min-height:50px; }
.btn-solid::before,.btn-solid::after { display:none; }
.btn-solid { background:var(--brand); }
.topbar,.topbar-info,.lang-btn { font-size:13px; }
.navlink { font-size:14px; letter-spacing:0; padding-inline:9px; }
.dropdown a { font-size:15px; }
.masthead-inner { gap:20px; }
.masthead .brand img { height:auto; width:250px; min-width:0; }
.masthead-cta { font-size:14px; padding-inline:16px; white-space:nowrap; }
.hero { background:#f3f5f0; border-bottom:1px solid #dce3dc; }
.hero::before,.hero::after { display:none; }
.hero-grid { grid-template-columns:1.1fr 1fr; gap:70px; padding-block:64px; align-items:center; }
.hero-h1 { font-size:clamp(40px,4.6vw,65px); line-height:1.1; font-weight:600; letter-spacing:-.04em; margin-bottom:26px; }
.hero-h1 em { font-weight:600; font-style:normal; }
.hero-sub { font-size:18px; line-height:1.75; max-width:43ch; }
.hero-explore { font-size:15px; font-weight:500; }
.hero-signature { border-color:#ccd7ce; max-width:none; padding-top:23px; margin-top:32px; }
.signature-icon { display:none; }
.hero-signature strong { font-size:17px; font-weight:600; }
.hero-signature div > span { font-size:14px; }
.hero-visual { padding:0; }
.hero-figure { aspect-ratio:1.08; border-radius:8px; margin:0; background:#dfe6de; }
.hero-figure::after { display:none; }
.hero-figure img { object-position:center 38%; }
.hero-photo-credit { display:flex; justify-content:space-between; gap:12px; padding-top:13px; font-size:13px; color:#4a605c; }
.section-pad { padding-block:80px; }
.section-tint { background:#f5f7f4; }
.section-eyebrow { font-size:12px; letter-spacing:.08em; font-weight:600; color:#37605a; }
.section-eyebrow::before { display:none; }
.section-title-2 { font-weight:600; letter-spacing:-.03em; }
.section-lead,.ui-card-text,.about-copy p,.about-lead { font-size:17px; line-height:1.75; }
.ui-card-link,.about-points li { font-size:15px; }
.ui-card { border-radius:8px; box-shadow:none; }
.ui-card:hover { transform:translateY(-2px); }
.about-media::before { display:none; }
.about-media img { border-radius:8px; }
.about-doctor { border-radius:0; box-shadow:none; }
/* Process: numbered editorial rows; each element occupies its own grid cell. */
.process-layout { display:grid; grid-template-columns:minmax(240px,.8fr) minmax(0,2fr); gap:72px; align-items:start; }
.process-heading { padding-top:22px; }
.process-heading h2 { font-size:clamp(30px,3vw,40px); font-weight:500; line-height:1.2; letter-spacing:-.035em; margin:16px 0 0; }
.process-list { list-style:none; margin:0; padding:0; border-top:1px solid #c9d6cf; }
.process-item { display:grid; grid-template-columns:42px minmax(170px,.9fr) minmax(0,1.25fr); align-items:baseline; column-gap:24px; padding:27px 0; border-bottom:1px solid #dce5de; }
.process-number { position:static; color:#457467; font-size:19px; line-height:1.5; font-weight:400; font-variant-numeric:tabular-nums; }
.process-name { min-width:0; margin:0; color:var(--ink); font-size:19px; font-weight:600; line-height:1.5; letter-spacing:-.015em; }
.process-description { min-width:0; margin:0; color:var(--ink-2); font-size:17px; line-height:1.75; }
@media (max-width:1100px) {
 .process-layout { grid-template-columns:minmax(200px,.65fr) minmax(0,1.5fr); gap:40px; }
 .process-item { grid-template-columns:34px minmax(0,1fr); gap:8px 18px; padding-block:24px; }
 .process-number { grid-row:1 / 3; }
 .process-description { grid-column:2; }
}
@media (max-width:767.98px) {
 .process-layout { grid-template-columns:1fr; gap:28px; }
 .process-heading { padding-top:0; }
 .process-heading h2 { font-size:32px; margin-top:12px; }
 .process-heading h2 br { display:none; }
 .process-name { font-size:18px; }
 .process-description { font-size:16px; }
 .process-item { padding-block:22px; }
}
.story-wrap { max-width:1320px; display:grid; grid-template-columns: .75fr 1.45fr; gap:80px; align-items:start; }
.story-head { text-align:left; position:sticky; top:130px; }
.story-head .section-title-2 { font-size:clamp(29px,3vw,40px); line-height:1.2; }
.story-article { min-width:0; max-width:72ch; }
.story-lead { margin:0 0 28px; border:0; border-radius:0; padding:0 0 27px; border-bottom:1px solid #cad8ce; box-shadow:none; background:none; font-size:21px; line-height:1.65; text-align:left; color:var(--ink); }
.story-body p { font-size:17px; line-height:1.85; margin-bottom:22px; }
.story-quote { background:none; color:var(--ink); border:0; border-left:3px solid var(--brand); box-shadow:none; border-radius:0; padding:4px 0 4px 24px; margin:34px 0 0; text-align:left; }
.story-quote::before { display:none; }
.story-quote p { color:var(--ink); font-size:20px; font-weight:500; }
.story-quote cite { color:#50615c; font-size:14px; }
.press-grid { gap:0 48px; }
.press-card { border:0; border-block:1px solid #cfdcd5; border-radius:0; padding:30px 0; background:none; display:grid; grid-template-columns:120px 1fr; column-gap:24px; align-items:center; }
.press-card::after { display:none; }
.press-card:hover { box-shadow:none; transform:none; background:#f8faf7; }
.press-logo { grid-row:1 / 3; margin:0; padding:0; }
.press-logo img { max-width:110px; border-radius:2px; }
.press-headline { font-size:22px; font-weight:600; margin:0 0 12px; padding:0; }
.press-link { padding:0; font-size:15px; }
.cta { padding:36px 0 70px; background:#fff; }
.cta-box { background:#edf2ec; color:var(--ink); border:1px solid #d9e2d8; border-radius:8px; padding:40px 44px; gap:60px; }
.cta-box::before,.cta-box::after { display:none; }
.cta-eyebrow { color:#405f58; font-size:12px; background:none; padding:0; border:0; }
.cta-h2 { color:var(--ink); font-size:32px; }
.cta-p { color:var(--ink-2); font-size:17px; margin:0; max-width:58ch; }
.cta-btn { background:var(--brand)!important; color:#fff!important; }
.cta-btn:hover { background:var(--brand-dark)!important; color:#fff!important; }
.cta-phone { color:var(--ink); border:0; padding:0; font-size:18px; }
.cta-phone:hover { color:var(--brand); background:none; }
.footer-invitation { gap:48px; padding-block:48px; }
.footer-invitation h2 { font-size:38px; margin:12px 0; font-weight:500; }
.footer-kicker { font-size:12px; letter-spacing:.1em; }
.footer-kicker::before { display:none; }
.footer-invitation p { font-size:17px; line-height:1.7; }
.footer-call small { font-size:14px; }
.clinic-footer .footer-appointment { font-size:16px; font-weight:600; border-radius:5px; padding:16px 20px; }
.clinic-footer-grid { grid-template-columns:1.4fr 1fr 1fr 1fr; gap:38px; }
.clinic-footer-brand > p,.clinic-footer-brand address,.footer-email,.clinic-footer-nav a,.footer-resources nav { font-size:15px; line-height:1.75; }
.clinic-footer-nav h2 { font-size:16px; }
.clinic-footer-bottom,.clinic-footer-legal { font-size:13px; }
.footer-resources > span { font-size:15px; }
.prose { font-size:18px; }
.inline-cta { border-radius:8px; box-shadow:none; }
.page-head::after { display:none; }
.page-head { background:#f3f5f0; }
.contact-redesign { display:grid; grid-template-columns:1fr 1fr; gap:90px; align-items:start; }
.contact-details h2 { font-size:30px; margin:12px 0 8px; }
.contact-details > p { margin-top:0; }
.contact-directory { margin:36px 0 0; }
.contact-directory > div { padding:22px 0; border-top:1px solid #d5dfd7; }
.contact-directory dt { font-size:14px; color:#52635d; margin-bottom:6px; }
.contact-directory dd { margin:0; font-size:19px; }
.contact-directory a { text-decoration:none; overflow-wrap:anywhere; }
.contact-directory a:hover { text-decoration:underline; }
.contact-directory address { max-width:32ch; }
.contact-directory .text-link { display:inline-block; margin-top:12px; font-size:15px; text-decoration:underline; text-underline-offset:4px; }
.contact-booking { background:#f0f4ee; border:1px solid #dce5d9; border-radius:8px; padding:40px; scroll-margin-top:120px; }
.booking-symbol { display:grid; place-items:center; width:54px; height:54px; background:#e0eadd; border-radius:8px; color:var(--brand); font-size:28px; }
.contact-booking h2 { font-size:32px; margin:24px 0 14px; }
.contact-booking p { margin:0 0 24px; }
.contact-booking > .btn-solid { width:100%; justify-content:space-between; }
.contact-international { margin-top:30px; padding-top:24px; border-top:1px solid #d4dfd0; font-size:15px; }
.contact-international p { margin:6px 0 10px; }
.contact-international > span { font-size:14px; }
/* One native dialog: keyboard focus containment, inert background and Escape. */
body.booking-open { overflow:hidden; }
.appointment-dialog { width:min(960px,calc(100% - 40px)); max-width:960px; max-height:calc(100dvh - 40px); border:0; padding:0; border-radius:12px; color:var(--ink); box-shadow:0 30px 100px #102d3540; overscroll-behavior:contain; }
.appointment-dialog::backdrop { background:rgb(14 33 33 / 64%); backdrop-filter:blur(4px); }
.booking-layout { display:grid; grid-template-columns:280px 1fr; }
.booking-aside { background:#163f3c; color:#e0ece4; padding:38px 30px; display:flex; flex-direction:column; gap:42px; }
.booking-label { font-size:12px; text-transform:uppercase; letter-spacing:.12em; }
.booking-aside h2 { font-size:28px; line-height:1.3; color:#fff; font-weight:500; margin:0 0 14px; }
.booking-aside p { font-size:15px; line-height:1.7; margin:0; }
.booking-aside-bottom { margin-top:auto; border-top:1px solid #476661; padding-top:24px; }
.booking-aside-bottom > span { display:block; font-size:14px; }
.booking-aside-bottom a { display:block; color:#fff; text-decoration:none; font-size:20px; margin:8px 0 22px; }
.booking-aside-bottom p { font-size:14px; color:#c6dad1; }
.booking-main { min-width:0; padding:22px 34px 30px; background:#fff; }
.booking-toolbar { display:flex; justify-content:space-between; align-items:center; gap:20px; margin-bottom:14px; }
.booking-languages { display:flex; gap:4px; }
.booking-languages button { border:0; background:transparent; min-width:42px; min-height:36px; border-radius:4px; font-size:13px; font-weight:600; cursor:pointer; }
.booking-languages button[aria-pressed="true"] { background:#e7efe7; color:#164f43; }
.booking-close { border:1px solid #dce4de; background:#fff; width:40px; height:40px; border-radius:50%; font-size:28px; line-height:1; cursor:pointer; }
.booking-close:hover { background:#edf2ec; }
.booking-heading h2 { font-size:30px; font-weight:600; margin:0 0 8px; outline:none; }
.booking-heading p { color:var(--ink-2); font-size:15px; margin:0 0 24px; line-height:1.6; max-width:46ch; }
.booking-fields { display:grid; grid-template-columns:1fr 1fr; gap:15px 18px; }
.booking-field { min-width:0; }
.booking-field label { display:block; font-size:14px; font-weight:600; margin-bottom:6px; }
.booking-wide { grid-column:1 / -1; }
.booking-field input,.booking-field select { width:100%; min-width:0; height:46px; border:1px solid #b9c9bf; background:#fff; border-radius:5px; padding:10px 12px; color:#173b32; font:inherit; font-size:16px; }
.booking-field select { padding-right:8px; }
.booking-field input:focus,.booking-field select:focus { outline:2px solid #36766a; outline-offset:2px; }
.booking-field [aria-invalid="true"] { border-color:#ad3932; }
.booking-field .optional { font-weight:400; color:#52655c; font-size:13px; }
.booking-phone { display:grid; grid-template-columns:145px 1fr; gap:10px; }
.booking-phone select { font-size:14px; }
.field-hint { display:block; font-size:12px; color:#52655c; margin-top:5px; }
.field-error { display:block; color:#a32e28; font-size:13px; line-height:1.5; }
.field-error:not(:empty) { margin-top:5px; }
.booking-consent { display:flex; align-items:flex-start; gap:10px; margin-top:20px; }
.booking-consent input { flex:none; width:18px; height:18px; margin:3px 0 0; accent-color:var(--brand); }
.booking-consent label { font-size:13px; line-height:1.6; }
.booking-consent a,.booking-privacy a { text-underline-offset:3px; color:#175b4b; }
.booking-privacy { font-size:12px; line-height:1.6; color:#52655c; margin:10px 0 20px; }
.booking-status { font-size:14px; line-height:1.5; color:#a32e28; }
.booking-status:empty { display:none; }
.booking-submit { width:100%; justify-content:space-between; cursor:pointer; }
.booking-submit:disabled { opacity:.6; cursor:wait; }
.booking-success { padding:40px 0 80px; text-align:center; }
.booking-success[hidden] { display:none; }
.booking-success h3 { font-size:28px; margin:20px 0 12px; }
.booking-success p { font-size:17px; }
.success-mark { display:inline-grid; place-items:center; width:64px; height:64px; border-radius:50%; background:#e4efe2; font-size:30px; color:#1a634d; }
@media (max-width:1199.98px) { .navlink { font-size:16px; } .hero-grid { gap:40px; } .story-wrap { gap:44px; } .clinic-footer-grid { grid-template-columns:repeat(3,1fr); } .clinic-footer-brand { grid-column:1 / -1; } .contact-redesign { gap:40px; } }
@media (max-width:767.98px) {
 .shell { padding-inline:22px; } .masthead .brand img { width:210px; } .topbar-info { font-size:13px; }
 .hero-grid { grid-template-columns:1fr; padding-block:38px; gap:32px; } .hero-h1 { font-size:clamp(38px,8.9vw,56px); } .hero-sub { font-size:17px; } .hero-signature strong { font-size:16px; } .hero-signature div > span { font-size:13px; } .hero-figure { aspect-ratio:1.25; border-radius:6px; } .hero-visual { max-width:none; } .hero-photo-credit { font-size:12px; }
 .section-pad { padding-block:52px; } .section-title-2 { font-size:32px; } .about-points { grid-template-columns:1fr; }
 .story-wrap { grid-template-columns:1fr; gap:26px; } .story-head { position:static; margin:0; } .story-head .section-title-2 { margin-bottom:0; } .story-lead { font-size:20px; } .story-quote { padding-left:20px; }
 .press-grid { grid-template-columns:1fr; } .press-card { grid-template-columns:85px 1fr; gap:8px 20px; padding:25px 0; } .press-card + .press-card { border-top:0; } .press-logo img { max-width:80px; } .press-headline { font-size:20px; }
 .cta-box { padding:28px 24px; gap:26px; } .cta-h2 { font-size:28px; } .footer-invitation { grid-template-columns:1fr; gap:26px; } .footer-invitation h2 { font-size:34px; } .footer-reach { max-width:none; } .clinic-footer-grid { grid-template-columns:1fr 1fr; gap:30px 20px; } .clinic-footer-nav a { font-size:14px; } .clinic-footer-nav h2 { font-size:15px; } .clinic-footer-bottom { font-size:12px; }
 .contact-redesign { grid-template-columns:1fr; gap:32px; } .contact-booking { padding:28px 24px; } .contact-details h2 { font-size:28px; }
 .appointment-dialog { width:calc(100% - 20px); max-height:calc(100dvh - 20px); border-radius:10px; } .booking-layout { grid-template-columns:1fr; } .booking-aside { display:none; } .booking-main { padding:18px 22px 26px; } .booking-heading h2 { font-size:28px; } .booking-heading p { margin-bottom:20px; } .booking-fields { gap:14px 12px; } .booking-phone { grid-template-columns:120px 1fr; gap:8px; }
}
@media (max-width:380px) { .masthead .brand img { width:185px; } .booking-main { padding-inline:16px; } .booking-fields { grid-template-columns:1fr; } .booking-phone { grid-template-columns:112px 1fr; } }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; transition:none!important; animation:none!important; } }
.inline-cta { background:#edf2ec; border:1px solid #d9e2d8; }
.inline-cta-text h2 { color:var(--ink); font-size:26px; }
.inline-cta-text p { color:var(--ink-2); font-size:17px; }
.inline-cta .btn-solid { background:var(--brand)!important; color:#fff!important; }
.inline-cta .btn-solid:hover { background:var(--brand-dark)!important; color:#fff!important; }
.inline-cta-tel,.inline-cta-tel:hover { color:var(--brand-dark); }
.cta-btn { box-shadow:none!important; }
.booking-toolbar { position:sticky; top:-22px; z-index:1; background:#fff; padding-block:4px; }
@media (max-width:767.98px) { .booking-toolbar { top:-18px; } }
