@import url('https://fonts.googleapis.com/css2?family=Assistant:wght@400;500;600;700&family=Frank+Ruhl+Libre:wght@400;500;600;700&display=swap');
@import url('/assets/motion.css');

:root { --sage:#879b8e; --navy:#203440; --paper:#f7f6f1; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--bg); font:400 var(--step-0)/1.7 var(--font-body); -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
img,svg,iframe { max-width:100%; }
img { display:block; height:auto; }
a { color:inherit; text-underline-offset:.22em; text-decoration-thickness:1px; }
a:hover { text-decoration-thickness:2px; }
button,input,textarea,select { font:inherit; }
:focus-visible { outline:3px solid #52715f; outline-offset:4px; }
h1,h2,h3,p,figure { margin-block-start:0; }
h1,h2,h3 { font-family:var(--font-display); font-weight:600; letter-spacing:-.025em; line-height:1.12; text-wrap:balance; }
h1 { font-size:clamp(2.8rem,6.2vw,6.2rem); margin-block-end:1.3rem; }
h2 { font-size:clamp(2rem,3.3vw,3.7rem); margin-block-end:1.25rem; }
h3 { font-size:clamp(1.3rem,2vw,1.8rem); margin-block-end:.8rem; }
p { max-width:66ch; }
.container { width:min(100%,1440px); padding-inline:clamp(1.2rem,5.6vw,5.4rem); margin-inline:auto; }
.section { padding-block:clamp(4.5rem,8vw,8rem); }
.section--tight { padding-block:3rem; }
.narrow { max-width:850px; }
.skip-link { position:absolute; z-index:9999; inset-inline-start:1rem; inset-block-start:-5rem; padding:.8rem 1rem; color:#fff; background:#203440; border-radius:8px; }
.skip-link:focus { inset-block-start:1rem; }
.eyebrow { margin:0 0 1rem; color:#587166; font-size:.78rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase; }
.ltr-isolate { display:inline-block; direction:ltr; unicode-bidi:isolate; }
.m-progress { position:fixed; z-index:220; inset-block-start:0; inset-inline:0; height:3px; background:#7e9a88; transform:scaleX(0); transform-origin:0 50%; }
[dir=rtl] .m-progress { transform-origin:100% 50%; }
.site-header { position:sticky; z-index:100; inset-block-start:0; background:rgba(247,246,241,.96); border-block-end:1px solid rgba(32,52,64,.1); backdrop-filter:blur(14px); transition:box-shadow .25s ease,background .25s ease; }
.site-header.is-scrolled { box-shadow:0 8px 30px rgba(32,52,64,.08); }
.header-inner { display:flex; align-items:center; gap:1.5rem; min-height:82px; }
.brand { display:inline-flex; align-items:center; flex:0 0 auto; text-decoration:none; }
.brand img { width:clamp(150px,16vw,220px); height:auto; }
.desktop-nav { display:flex; align-items:center; justify-content:center; gap:clamp(.85rem,2vw,2rem); margin-inline:auto; }
.desktop-nav a,.mobile-menu nav a { font-size:.9rem; text-decoration:none; white-space:nowrap; }
.desktop-nav a:hover,.mobile-menu nav a:hover { color:#587166; }
.header-side { display:flex; align-items:center; gap:1.1rem; }
.language-switch { display:flex; gap:.55rem; align-items:center; font-size:.75rem; white-space:nowrap; }
.language-switch a { text-decoration:none; color:#52636b; }
.language-switch a[aria-current=page] { color:#203440; font-weight:700; text-decoration:underline; }
.btn { min-height:48px; padding:.75rem 1.25rem; display:inline-flex; align-items:center; justify-content:center; gap:.5rem; border:1px solid transparent; border-radius:9px; background:transparent; font-weight:700; text-decoration:none; text-align:center; cursor:pointer; transition:transform .18s ease,background .18s ease,color .18s ease; }
.btn:hover { transform:translateY(-1px); }
.btn--primary { background:#203440; color:#fff; }
.btn--primary:hover { background:#304e5c; color:#fff; }
.header-cta { min-height:43px; padding:.65rem 1rem; font-size:.86rem; }
.nav-toggle { display:none; width:46px; height:46px; border:1px solid rgba(32,52,64,.2); border-radius:50%; background:transparent; color:var(--ink); }
.nav-toggle span { display:block; width:19px; height:1.5px; margin:5px auto; background:currentColor; }
.mobile-menu { display:none; }
.hero { position:relative; min-height:min(780px,calc(100svh - 82px)); display:flex; align-items:center; overflow:hidden; isolation:isolate; background:#283f4b; color:#fff; }
.hero-picture { position:absolute; inset:0; z-index:-3; display:block; width:100%; height:100%; }
.hero-image { position:absolute; inset:0; z-index:-3; width:100%; height:100%; object-fit:cover; object-position:center; }
.hero-scrim { position:absolute; inset:0; z-index:-2; background:linear-gradient(90deg,rgba(20,40,52,.03) 12%,rgba(22,42,54,.18) 45%,rgba(22,42,54,.82) 100%); }
[dir=rtl] .hero-scrim { background:linear-gradient(270deg,rgba(20,40,52,.82) 0%,rgba(22,42,54,.25) 50%,rgba(22,42,54,.03) 100%); }
.hero-inner { padding-block:clamp(5rem,12vh,9rem); position:relative; }
[dir=rtl] .hero-inner { text-align:right; }
[dir=ltr] .hero-inner { text-align:left; }
.hero-inner > * { max-width:670px; }
.hero .eyebrow { color:#e4ece4; }
.hero h1 { max-width:760px; }
.hero-lead { font-size:clamp(1.1rem,1.6vw,1.35rem); line-height:1.65; margin-block-end:2rem; color:rgba(255,255,255,.94); }
.hero-actions { display:flex; gap:1.3rem; align-items:center; flex-wrap:wrap; }
.hero .btn--primary { background:#fff; color:#203440; }
.hero .btn--primary:hover { background:#e7efe8; color:#203440; }
.hero-phone { font-weight:700; text-decoration:none; color:#fff; }
.hero-scroll { position:absolute; inset-block-end:2rem; inset-inline-start:clamp(1.2rem,5.6vw,5.4rem); color:rgba(255,255,255,.86); font-size:.85rem; text-decoration:none; }
.hero-credit { display:inline-flex; margin-block-start:1rem; color:rgba(255,255,255,.86); font-size:.72rem; text-decoration:underline; text-underline-offset:.2em; }
.breadcrumbs { margin-block:0 1.1rem; font-size:.8rem; color:#5a6b70; }
.breadcrumbs ol { display:flex; gap:.55rem; flex-wrap:wrap; align-items:center; list-style:none; padding:0; margin:0; }
.breadcrumbs a { text-decoration:none; }
.crumb-sep { color:#8c9998; }
.home-breadcrumbs { padding-block-start:1rem; }
.page-hero { padding-block:clamp(3.5rem,7vw,6.6rem); background:linear-gradient(120deg,#f7f6f1 0%,#edf0e9 100%); }
.page-hero-grid { display:grid; grid-template-columns:minmax(0,1.04fr) minmax(300px,.96fr); gap:clamp(2rem,6vw,6rem); align-items:center; }
.page-hero h1 { font-size:clamp(2.7rem,5vw,5.2rem); }
.page-lead { font-size:clamp(1.05rem,1.4vw,1.28rem); color:#455a64; max-width:58ch; }
.page-visual { width:100%; aspect-ratio:4/3; overflow:visible; position:relative; margin:0; }
.page-visual img { width:100%; height:100%; object-fit:cover; }
.page-visual figcaption,.media-bleed figcaption,.gallery-grid figcaption { color:#61736f; font-size:.75rem; padding-block-start:.6rem; }
.page-visual--quiet { display:grid; place-items:center; background:#e8ede7; color:#72857b; font:600 2rem var(--font-display); }
.split { display:grid; grid-template-columns:minmax(0,1fr) minmax(320px,.95fr); gap:clamp(2.5rem,7vw,7rem); align-items:center; }
.media-bleed { margin:0; position:relative; }
.media-bleed img { width:100%; aspect-ratio:4/3; object-fit:cover; }
.intro-section { background:#f1f1ea; }
.intro-section h2 { max-width:15ch; }
.intro-section .split__content { max-width:570px; }
.section-heading { display:grid; grid-template-columns:1fr minmax(260px,.65fr); gap:3rem; align-items:end; margin-block-end:3rem; }
.section-heading > p { color:#586a70; }
.services-section { background:#fbfaf6; }
.treatment-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.25rem; }
.treatment-tile { min-width:0; border-block-start:1px solid rgba(32,52,64,.2); padding-block-start:1rem; }
.treatment-tile a { display:block; height:100%; text-decoration:none; }
.treatment-tile img { width:100%; aspect-ratio:4/3; object-fit:cover; margin-block-end:1.2rem; }
.treatment-tile h3 { font-size:1.5rem; }
.treatment-tile p { color:#596a70; line-height:1.6; font-size:.96rem; }
.text-link { display:inline-flex; gap:.45rem; align-items:center; color:#315263; font-weight:700; text-decoration:none; border-block-end:1px solid #93a99a; padding-block-end:.15rem; }
.text-link:hover { color:#132a36; }
.process-section { background:#e8ede7; }
.process-grid { display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(2.5rem,7vw,7rem); }
.process-list { padding:0; margin:0; list-style:none; border-block-start:1px solid rgba(32,52,64,.18); }
.process-list li { display:grid; grid-template-columns:3rem 1fr; align-items:start; gap:1rem; padding:1.25rem 0; border-block-end:1px solid rgba(32,52,64,.18); }
.process-list p { margin:0; }
.step-number { color:#617b6c; font-size:.9rem; font-variant-numeric:tabular-nums; }
.credentials-section { background:#203440; color:#fff; }
.credentials-section .eyebrow { color:#b8c9bd; }
.credentials-grid { display:grid; grid-template-columns:1fr .8fr; gap:6vw; align-items:center; }
.credentials-grid p { color:rgba(255,255,255,.85); }
.credentials-section .text-link { color:#fff; border-color:#9cb7a6; }
.page-home .process-section,.page-home .credentials-section { padding-block:clamp(3rem,5vw,5rem); }
.page-home .place-section { padding-block:clamp(2.5rem,4vw,4rem); }
.credential-note { border-inline-start:1px solid rgba(255,255,255,.25); padding-inline-start:clamp(1.5rem,4vw,3.5rem); }
.credential-mark { display:inline-block; font-size:1rem; font-weight:700; letter-spacing:.12em; color:#c5d8ca; margin-block-end:1rem; }
.place-section { background:#eef0eb; }
.place-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(2.5rem,6vw,6rem); align-items:center; }
.place-note { margin-block-start:1.2rem; font-size:.9rem; color:#647176; }
.map-frame { min-height:320px; background:#dce2dc; }
.map-frame iframe { display:block; width:100%; min-height:320px; height:100%; border:0; }
.faq-section { background:#fbfaf6; }
.faq-layout { display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(2.5rem,7vw,7rem); }
.faq-list details { border-block-start:1px solid rgba(32,52,64,.2); }
.faq-list details:last-child { border-block-end:1px solid rgba(32,52,64,.2); }
.faq-list summary { cursor:pointer; padding:1.1rem 2rem 1.1rem 0; font-weight:700; position:relative; list-style:none; }
.faq-list summary::-webkit-details-marker { display:none; }
.faq-list summary::after { content:'+'; position:absolute; inset-inline-end:0; top:1rem; color:#64806e; font-size:1.25rem; }
.faq-list details[open] summary::after { content:'−'; }
.faq-list details p { margin:0; padding:0 0 1.2rem; color:#53656b; }
.form-section { background:#e8ede7; }
.form-layout { display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(2rem,7vw,6rem); align-items:start; }
.contact-form-wrap { background:#fff; border-radius:var(--radius-md); padding:clamp(1.2rem,3vw,2.3rem); box-shadow:0 10px 40px rgba(32,52,64,.06); }
.lead-form { display:grid; gap:1rem; }
.lead-form label { display:grid; gap:.4rem; font-weight:600; font-size:.9rem; }
.lead-form input:not([type=checkbox]),.lead-form select,.lead-form textarea { width:100%; min-height:48px; border:1px solid #aab7b2; border-radius:7px; padding:.7rem .8rem; background:#fff; color:#203440; }
.lead-form textarea { resize:vertical; min-height:90px; }
.lead-form small,.form-microcopy { color:#5e6f72; font-size:.8rem; }
.form-intro { font-size:.9rem; margin:0; }
.consent { display:flex!important; grid-template-columns:auto 1fr; align-items:start; gap:.65rem!important; font-weight:400!important; line-height:1.5; }
.consent input { width:20px; height:20px; accent-color:#203440; flex:0 0 auto; margin-block-start:.15rem; }
.honeypot { position:absolute!important; width:1px!important; height:1px!important; overflow:hidden!important; clip-path:inset(50%)!important; }
.form-microcopy { margin:0; }
.medical-note { display:flex; align-items:flex-start; gap:.8rem; padding-block:1.4rem; font-size:.84rem; color:#596a70; }
.medical-note > span { display:grid; place-items:center; flex:0 0 22px; height:22px; border:1px solid #73877a; border-radius:50%; font-size:.75rem; font-weight:700; }
.medical-note p { margin:0; }
.article-content { background:#f7f6f1; }
.article-copy { max-width:68ch; }
.article-copy p { color:#314751; }
.article-copy h2:not(:first-of-type) { font-size:clamp(1.6rem,2.5vw,2.4rem); margin-block-start:2.2rem; }
.callout { border-inline-start:3px solid #8ba392; padding:1rem 1.3rem; margin-block:2rem; background:#edf0ea; }
.callout p { margin:0; }
.related-section { background:#edf0ea; }
.related-links { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border-block-start:1px solid rgba(32,52,64,.2); }
.related-links a { padding:1.1rem 0; border-block-end:1px solid rgba(32,52,64,.2); text-decoration:none; display:flex; justify-content:space-between; gap:1rem; }
.closing-cta { background:#dfe7df; }
.closing-grid { display:flex; justify-content:space-between; align-items:center; gap:3rem; }
.closing-grid > div:first-child { max-width:700px; }
.closing-grid h2 { font-size:clamp(2rem,3vw,3.1rem); }
.closing-actions { display:grid; gap:1rem; min-width:220px; }
.closing-actions .phone-link { text-align:center; font-weight:700; text-decoration:none; }
.contact-main { background:#f1f1ea; }
.phone-link { font-size:1.05rem; font-weight:700; color:#233f4b; }
.gallery-note { background:#f1f1ea; }
.editorial-note { max-width:760px; margin-block-end:3rem; padding-inline-start:1.4rem; border-inline-start:2px solid #829a89; }
.gallery-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:2.5rem 1.5rem; }
.gallery-grid figure { margin:0; }
.gallery-grid img { width:100%; aspect-ratio:4/3; object-fit:cover; }
.gallery-grid figcaption { font-size:.9rem; color:#203440; }
.review-caveat { max-width:1200px; margin:0 auto; padding:1rem clamp(1.2rem,5.6vw,5.4rem); color:#52636b; font-size:.9rem; }
.section--sources { background:#f3f3ed; padding-block:2.3rem; }
.source-list { display:flex; gap:.8rem 2rem; flex-wrap:wrap; padding:0; margin:0; list-style:none; }
.source-list a { font-size:.88rem; }
.source-date { color:#627177; font-size:.75rem; margin-block-start:1rem; }
.legal-copy { padding-block-start:3rem; }
.legal-copy h2:not(:first-of-type) { margin-block-start:2.8rem; }
.legal-copy li { margin-block:.45rem; }
.site-footer { padding-block:4rem 2rem; color:#edf1ed; background:#203440; }
.footer-grid { display:grid; grid-template-columns:1.35fr 1fr 1fr .7fr; gap:2rem; }
.footer-grid h2 { font:700 .85rem var(--font-body); letter-spacing:.08em; text-transform:uppercase; color:#bdcec4; }
.footer-grid a { display:block; margin-block-end:.55rem; text-decoration:none; font-size:.9rem; }
.footer-grid p { color:#d4ddda; font-size:.9rem; }
.footer-brand img { width:min(220px,100%); height:auto; margin-block-end:1rem; filter:brightness(0) invert(1); }
.footer-bottom { display:flex; justify-content:space-between; gap:1rem; margin-block-start:3rem; padding-block-start:1rem; border-block-start:1px solid rgba(255,255,255,.18); color:#d0dcda; font-size:.78rem; }
.sticky-bar { display:none; }
.not-found-actions { margin:3rem auto; text-align:center; }
.page-home .faq-section { background:#f0f1eb; }
@media (max-width:1120px) {
  .desktop-nav { gap:.9rem; }
  .desktop-nav a { font-size:.82rem; }
  .header-side { gap:.6rem; }
  .language-switch { gap:.35rem; }
}
@media (max-width:900px) {
  .desktop-nav,.header-cta,.header-side { display:none; }
  .nav-toggle { display:block; margin-inline-start:auto; }
  .header-inner { min-height:68px; }
  .brand img { width:180px; }
  .mobile-menu { display:flex; position:fixed; inset:0; z-index:300; width:100%; height:100dvh; flex-direction:column; justify-content:center; gap:2rem; padding:clamp(1.5rem,6vw,3rem); background:#f7f6f1; color:#203440; visibility:hidden; transform:translateY(-100%); transition:transform .32s ease,visibility .32s ease; overflow-y:auto; }
  .mobile-menu[data-open=true] { transform:none; visibility:visible; }
  .mobile-menu nav { display:grid; gap:.2rem; }
  .mobile-menu nav a { display:block; padding:.72rem 0; border-block-end:1px solid rgba(32,52,64,.13); font:600 clamp(1.4rem,5vw,2.2rem) var(--font-display); }
  .mobile-menu__close { position:absolute; inset-block-start:max(1.2rem,env(safe-area-inset-top)); inset-inline-end:1.2rem; width:48px; height:48px; border:1px solid rgba(32,52,64,.2); border-radius:50%; background:transparent; color:#203440; font-size:2rem; line-height:1; cursor:pointer; }
  .mobile-languages { display:flex; gap:1rem; margin-block-start:1rem; }
  .mobile-languages a { color:#203440; text-decoration:none; }
  .mobile-languages a[aria-current=page] { font-weight:700; text-decoration:underline; }
  .mobile-menu > .btn--primary { color:#fff; background:#203440; width:max-content; min-width:210px; }
  .mobile-phone { font-weight:700; text-decoration:none; }
  body[data-menu-open=true] { overflow:hidden; }
  body[data-menu-open=true] .sticky-bar { visibility:hidden; }
  .page-hero-grid,.split,.process-grid,.credentials-grid,.place-grid,.faq-layout,.form-layout { grid-template-columns:1fr; }
  .page-hero-grid { gap:2rem; }
  .page-visual { max-width:720px; }
  .split { gap:2.5rem; }
  .section-heading { grid-template-columns:1fr; gap:.3rem; }
  .treatment-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .credential-note { border-inline-start:0; border-block-start:1px solid rgba(255,255,255,.25); padding:1.6rem 0 0; }
  .map-frame,.map-frame iframe { min-height:300px; }
  .page-home .place-section { padding-block:1.5rem; }
  .page-home .place-section .map-frame,.page-home .place-section .map-frame iframe { min-height:240px; }
  .footer-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:600px) {
  body { padding-block-end:64px; }
  h1 { font-size:clamp(2.7rem,12vw,4.5rem); }
  h2 { font-size:clamp(2rem,9vw,3.1rem); }
  .container { padding-inline:1.2rem; }
  .hero { min-height:min(740px,calc(100svh - 68px)); align-items:flex-end; }
  .hero-image { object-position:44% center; }
  .hero-scrim,[dir=rtl] .hero-scrim { background:linear-gradient(0deg,rgba(20,40,52,.92) 0%,rgba(22,42,54,.64) 54%,rgba(22,42,54,.04) 100%); }
  .hero-inner { padding-block:7rem 6.2rem; }
  .hero-eyebrow { font-size:.72rem; }
  .hero h1 { max-width:none; font-size:clamp(2.35rem,10vw,3.8rem); }
  .hero-lead { max-width:32ch; font-size:1.05rem; }
  .hero-actions { align-items:stretch; flex-direction:column; width:min(100%,330px); }
  .hero-phone { text-align:center; padding:.5rem; }
  .hero-scroll { inset-block-end:1.2rem; }
  .page-hero { padding-block:2rem 3.5rem; }
  .page-hero-grid { grid-template-columns:1fr; }
  .page-hero h1 { font-size:clamp(2.4rem,10vw,3.9rem); }
  .page-visual { aspect-ratio:4/3; }
  .treatment-grid { grid-template-columns:1fr; gap:2rem; }
  .treatment-tile img { aspect-ratio:1.45/1; }
  .gallery-grid { grid-template-columns:1fr; gap:1.8rem; }
  .related-links { grid-template-columns:1fr; }
  .closing-grid { display:grid; gap:1rem; }
  .closing-actions { width:100%; }
  .footer-grid { grid-template-columns:1fr; gap:1.7rem; }
  .footer-grid a { min-height:44px; padding-block:.45rem; }
  .faq-list summary,.text-link { min-height:44px; }
  .footer-bottom { display:grid; }
  .sticky-bar { position:fixed; z-index:190; inset-inline:0; inset-block-end:0; display:grid; grid-template-columns:1fr 1fr; min-height:60px; padding-block-end:env(safe-area-inset-bottom); background:#fff; box-shadow:0 -5px 24px rgba(22,45,54,.14); }
  .sticky-bar a { display:flex; align-items:center; justify-content:center; gap:.4rem; min-height:60px; color:#fff; background:#203440; font-size:.9rem; font-weight:700; text-decoration:none; text-align:center; }
  .sticky-bar .sticky-wa { color:#fff; background:#557c65; }
  .map-frame,.map-frame iframe { min-height:290px; }
  .contact-form-wrap { padding:1.1rem; }
  .medical-note { padding-inline:1.2rem; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation-duration:.01ms!important; animation-iteration-count:1!important; scroll-behavior:auto!important; transition-duration:.01ms!important; }
}
@media (max-width:600px) {
  .mobile-languages a { display:inline-flex; min-width:44px; min-height:44px; align-items:center; justify-content:center; }
  .mobile-phone,.hero-phone { min-height:44px; display:inline-flex; align-items:center; justify-content:center; }
  .hero-scroll { min-height:44px; display:inline-flex; align-items:center; }
  .consent a { display:inline-flex; min-height:44px; align-items:center; }
}
