@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@300;400;500;600&family=Italiana&display=swap');
:root{--ivory:#f2efe7;--ink:#171714;--muted:#77746c;--line:rgba(23,23,20,.17);--champ:#b59b72}*{box-sizing:border-box}html{scroll-behavior:smooth;width:100%;max-width:100%;overflow-x:hidden}body{margin:0;width:100%;max-width:100%;overflow-x:hidden;background:var(--ivory);color:var(--ink);font-family:'DM Sans',Arial,sans-serif}button,a{font:inherit}button{cursor:pointer}a{text-decoration:none;color:inherit}header{height:82px;padding:0 4vw;position:fixed!important;z-index:9999;top:0;left:0;right:0;width:100%;transform:none!important;display:flex;align-items:center;justify-content:space-between;color:#fff;border-bottom:1px solid rgba(255,255,255,.18);transition:.4s}header.scrolled{height:66px;background:rgba(242,239,231,.88);backdrop-filter:blur(18px);color:var(--ink);border-color:var(--line)}.brand{display:flex;flex-direction:column;line-height:.9;letter-spacing:.16em}.brand b{font-family:'Italiana',serif;font-size:23px}.brand span{font-size:8px;letter-spacing:.55em;margin-top:7px}nav{display:flex;gap:30px;font-size:12px}nav a{opacity:.85}.head-actions{display:flex;gap:12px}.lang{border:0;background:transparent;color:inherit}.book,.primary{border:0;padding:15px 23px;background:var(--ivory);color:var(--ink);letter-spacing:.08em;font-size:11px}.scrolled .book{background:var(--ink);color:#fff}.dark{background:#151513;color:#f5f1e8}.ivory{background:var(--ivory)}.hero{height:100svh;min-height:700px;position:relative;overflow:hidden}.hero-media{position:absolute;inset:0}.hero-media picture,.hero-media img{display:block;width:100%;height:100%}.hero-media img{object-fit:cover;object-position:center center;transform:scale(1.025);animation:heroBreath 8s ease-out forwards}@keyframes heroBreath{to{transform:scale(1)}}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(18,15,11,.52) 0%,rgba(18,15,11,.24) 34%,rgba(18,15,11,.04) 68%,rgba(18,15,11,.08) 100%)}.media{overflow:hidden;background:#292925}.slot{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;letter-spacing:.2em;font-size:12px;color:#aaa69b;background:radial-gradient(circle at 70% 35%,#44423d,#22221f 52%,#181816)}.slot small{font-size:9px;margin-top:10px;letter-spacing:.08em;opacity:.6}.hero-copy{position:absolute;left:8vw;bottom:13vh;max-width:800px}.eyebrow{font-size:10px;letter-spacing:.25em;font-weight:600}.hero h1,.section-head h2,.statement h2,.interlude h2,.international h2,.booking-cta h2,.modal h2{font-family:'Italiana',serif;font-weight:400;line-height:.91;margin:25px 0;font-size:clamp(58px,7.5vw,116px)}em{font-weight:400;color:var(--champ)}.lead{font-size:16px;line-height:1.7;max-width:500px;color:#d1cec6}.hero-buttons{display:flex;align-items:center;gap:28px;margin-top:35px}.ghost{font-size:11px;letter-spacing:.1em}.hero-note{position:absolute;right:4vw;bottom:4vh;font-size:9px;letter-spacing:.22em}.statement{padding:13vw 8vw}.statement h2{font-size:clamp(70px,11vw,170px)}.statement-grid{border-top:1px solid var(--line);padding-top:30px;display:grid;grid-template-columns:1fr 1fr;gap:10vw;font-size:17px;line-height:1.7}.services{padding:5vw 8vw 12vw}.section-head{margin-bottom:7vw}.section-head h2{font-size:clamp(55px,7vw,105px)}.service{border-top:1px solid var(--line);padding:50px 0;display:grid;grid-template-columns:70px 1fr 1.25fr;gap:35px;align-items:center}.service.reverse .service-media{order:-1;grid-column:2}.service.reverse .num{grid-column:1;grid-row:1}.service.reverse .service-copy{grid-column:3}.num{font-family:'Italiana';font-size:22px;color:var(--champ)}.service h3{font-family:'Italiana';font-size:clamp(40px,5vw,72px);font-weight:400;margin:0 0 20px}.service p{max-width:430px;line-height:1.7;color:var(--muted)}.service-media{aspect-ratio:1.4}.text-btn{border:0;border-bottom:1px solid;padding:8px 0;background:none}.interlude{height:90vh;min-height:650px;position:relative}.full-media{position:absolute;inset:0}.full-media:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.6),transparent)}.interlude-copy{position:absolute;left:8vw;bottom:10vh;max-width:650px}.interlude h2{font-size:clamp(60px,7vw,100px)}.results{padding:11vw 8vw}.beforeafter{height:min(65vw,720px);position:relative;overflow:hidden}.ba-layer{position:absolute;inset:0}.before{width:50%;overflow:hidden;z-index:2}.before .slot{width:calc(84vw);background:radial-gradient(circle at 40% 40%,#666157,#34322e 55%,#222)}.after .slot{background:radial-gradient(circle at 60% 35%,#d0c5b1,#8e8474 55%,#5b554d);color:#eee}.ba-line{position:absolute;z-index:3;top:0;bottom:0;left:50%;width:1px;background:#fff}.ba-line span{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:#fff;color:#111}#baRange{position:absolute;z-index:5;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize}.result-meta{display:flex;justify-content:space-between;font-size:10px;letter-spacing:.12em;padding-top:18px}.doctors{padding:11vw 8vw}.doctor-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.portrait{aspect-ratio:.76}.doctor:nth-child(2) .portrait{margin-top:70px}.doctor h3{font-family:'Italiana';font-size:34px;font-weight:400;margin:20px 0 6px}.doctor p{font-size:11px;color:#aaa69b}.international{padding:11vw 8vw;display:grid;grid-template-columns:.85fr 1.15fr;gap:8vw;align-items:center}.international h2{font-size:clamp(65px,8vw,120px)}.intl-copy>p:not(.eyebrow){line-height:1.8;color:var(--muted);max-width:500px}.intl-media{aspect-ratio:.9}.chips{display:flex;gap:8px;margin:28px 0}.chips span{border:1px solid var(--line);padding:9px 12px;font-size:10px}.dark-btn{background:var(--ink);color:#fff}.booking-cta{text-align:center;padding:12vw 5vw}.booking-cta h2{font-size:clamp(55px,7vw,105px)}.light{margin-top:20px}footer{padding:60px 8vw;display:grid;grid-template-columns:2fr 1fr 1fr;gap:30px;background:#0e0e0d;color:#ddd;border-top:1px solid #333;font-size:11px}footer p{color:#777}.footer-brand{align-self:start}.mobile-book{display:none}.modal{position:fixed;inset:0;z-index:100;background:rgba(0,0,0,.65);backdrop-filter:blur(8px);display:none;align-items:center;justify-content:center;padding:20px}.modal.show{display:flex}.modal-card{position:relative;background:var(--ivory);width:min(780px,100%);padding:50px}.modal h2{font-size:55px}.close{position:absolute;right:25px;top:20px;border:0;background:none;font-size:32px}.steps{display:flex;gap:20px;border-bottom:1px solid var(--line);padding-bottom:16px;font-size:10px;color:#999}.steps .active{color:#111}.options{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:30px}.option{padding:20px;border:1px solid var(--line);background:transparent;text-align:left}.option:hover{background:#171714;color:#fff}.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s ease,transform .8s ease}.reveal.visible{opacity:1;transform:none}
@media(max-width:800px){.hero-media img{object-position:center center}.hero-shade{background:linear-gradient(180deg,rgba(15,12,9,.08) 20%,rgba(15,12,9,.18) 52%,rgba(15,12,9,.68) 100%)}header{height:68px;padding:0 18px}header nav,.lang{display:none}.brand b{font-size:19px}.book{padding:12px 14px}.hero-copy{left:22px;right:22px;bottom:13vh}.hero h1{font-size:55px}.hero-note{display:none}.statement,.services,.results,.doctors,.international{padding:100px 22px}.statement h2{font-size:72px}.statement-grid{grid-template-columns:1fr;gap:15px}.service,.service.reverse{grid-template-columns:35px 1fr;gap:15px}.service-media,.service.reverse .service-media{grid-column:1/-1;grid-row:auto;order:0}.service.reverse .num,.service.reverse .service-copy{grid-column:auto;grid-row:auto}.service h3{font-size:43px}.interlude-copy{left:22px;right:22px}.doctor-grid{grid-template-columns:1fr}.doctor:nth-child(2) .portrait{margin-top:0}.international{grid-template-columns:1fr}.intl-media{aspect-ratio:1}.booking-cta{padding:120px 22px}footer{grid-template-columns:1fr;padding:50px 22px 90px}.mobile-book{display:block;position:fixed;z-index:49;bottom:14px;left:14px;right:14px}.mobile-book button{width:100%;border:0;background:#171714;color:#fff;padding:16px;box-shadow:0 8px 35px rgba(0,0,0,.25)}.modal-card{padding:40px 22px}.modal h2{font-size:42px}.steps{gap:8px;overflow:auto}.options{grid-template-columns:1fr}}

/* v0.3.1 mobile viewport / fixed-header hardening */
img,picture,section,main,footer{max-width:100%}
.hero,.hero-media,.hero-media picture,.hero-media img{width:100%;max-width:100%}
header{max-width:100vw;overflow:hidden}
.head-actions{flex:0 0 auto}.brand{flex:0 0 auto}
@media(max-width:800px){
  header{width:100%;max-width:100%;padding-left:max(18px,env(safe-area-inset-left));padding-right:max(18px,env(safe-area-inset-right));}
  .brand{min-width:0}.head-actions{min-width:0}.book{white-space:nowrap;max-width:132px}
  .hero{width:100%;max-width:100%;min-height:100svh;height:100svh;overflow:hidden}
  .hero-copy{width:auto;max-width:calc(100% - 44px);min-width:0}
  .hero h1{font-size:clamp(44px,13vw,55px);overflow-wrap:normal}
  .hero .lead{max-width:100%}
  .hero-buttons{max-width:100%;flex-wrap:wrap}
  .hero-buttons .primary{white-space:nowrap}
}
@supports(height:100dvh){@media(max-width:800px){.hero{height:100dvh;min-height:100dvh}}}

/* v0.3.2 — move hero kicker away from the face */
.hero-kicker{position:absolute;z-index:4;left:8vw;top:24vh;margin:0;color:#fff;}
@media(max-width:800px){
  .hero-kicker{left:42px;right:42px;top:26vh;margin:0;max-width:calc(100% - 84px);line-height:1.55;}
}
/* v0.3.3 — mobile hero composition */
@media(max-width:800px){
  .hero-kicker{
    left:42px;
    right:auto;
    top:clamp(150px,22vh,205px);
    max-width:none;
    width:max-content;
    white-space:nowrap;
    font-size:clamp(7px,1.85vw,9px);
    letter-spacing:.20em;
    line-height:1;
  }
  .mobile-book{opacity:0;visibility:hidden;transform:translateY(18px);pointer-events:none;transition:opacity .28s ease,transform .28s ease,visibility .28s ease}
  .mobile-book.is-visible{opacity:1;visibility:visible;transform:none;pointer-events:auto}
}

/* v0.3.4 — mobile hero: clear the face */
@media(max-width:800px){
  .hero-kicker{
    top:clamp(118px,17.5vh,150px);
  }
  .hero-copy{
    top:auto;
    bottom:clamp(24px,4.2vh,42px);
  }
  .hero h1{
    margin-top:0;
    margin-bottom:22px;
  }
  .hero-copy .lead{margin-bottom:0;}
  .hero-buttons{margin-top:28px;}
}

/* v0.3.5 — mobile hero typography polish */
@media(max-width:800px){
  .hero-kicker{
    left:18px;
    right:18px;
    top:clamp(96px,14.5vh,126px);
    width:auto;
    max-width:none;
    white-space:nowrap;
    text-align:center;
    font-size:clamp(8.5px,2.35vw,10.5px);
    letter-spacing:.18em;
    line-height:1.1;
  }
  .hero-copy{
    left:22px;
    right:22px;
    max-width:none;
    text-align:center;
  }
  .hero h1{
    font-size:clamp(58px,15.8vw,68px);
    line-height:.88;
    text-align:center;
    margin-left:auto;
    margin-right:auto;
  }
  .hero-copy .lead{
    max-width:92%;
    margin-left:auto;
    margin-right:auto;
    font-size:14px;
    line-height:1.5;
    text-align:center;
  }
  .hero-buttons{
    justify-content:center;
  }
}

/* v0.3.6 — stable mobile hero + two-line centered title */
@media(max-width:800px){
  /* No animated scale on mobile: prevents the image from jumping when the
     browser chrome / dynamic viewport changes during the first scroll. */
  .hero-media img{
    animation:none !important;
    transform:none !important;
    scale:1 !important;
    object-fit:cover;
    object-position:center center;
  }

  /* Keep the centered v0.3.5 composition, but return to the earlier title size
     so the intended copy stays on exactly two lines. */
  .hero h1{
    font-size:clamp(48px,13.4vw,58px);
    line-height:.91;
    text-align:center;
    white-space:normal;
    text-wrap:balance;
    max-width:100%;
  }
  .hero h1 em{white-space:nowrap;}
}

/* v0.3.7 — true mobile scroll stability
   Root cause: 100dvh follows Chrome's collapsing address bar. That changes the
   hero box height during scroll; object-fit: cover then re-crops the image and
   looks like a zoom jump even though the image transform is fixed. Use svh so
   the hero geometry stays constant while browser chrome opens/closes. */
@media(max-width:800px){
  .hero{
    height:100svh !important;
    min-height:100svh !important;
    max-height:100svh !important;
  }
  .hero-media,
  .hero-media picture,
  .hero-media img{
    height:100% !important;
    min-height:0 !important;
    max-height:none !important;
  }
  .hero-media img{
    animation:none !important;
    transform:none !important;
    transition:none !important;
    object-fit:cover !important;
    object-position:center center !important;
  }
}

/* v0.3.8 — mobile editorial typography: prevent display headlines from clipping */
@media(max-width:800px){
  .statement{overflow:hidden;}
  .statement h2{
    font-size:clamp(54px,15.5vw,66px);
    line-height:.88;
    max-width:100%;
    overflow-wrap:normal;
    word-break:normal;
  }
  .statement h2 em{
    display:inline-block;
    white-space:normal;
    font-size:.92em;
  }

  .interlude{
    height:auto;
    min-height:760px;
    overflow:hidden;
    display:flex;
    flex-direction:column;
  }
  .interlude .full-media{
    position:relative;
    inset:auto;
    height:290px;
    flex:0 0 290px;
  }
  .interlude .full-media:after{
    background:linear-gradient(180deg,rgba(0,0,0,.08),rgba(0,0,0,.35));
  }
  .interlude-copy{
    position:relative;
    left:auto;
    right:auto;
    bottom:auto;
    max-width:none;
    padding:52px 22px 72px;
  }
  .interlude h2{
    font-size:clamp(50px,14vw,62px);
    line-height:.92;
    max-width:100%;
    margin:22px 0 28px;
    overflow-wrap:normal;
    word-break:normal;
  }
  .interlude-copy>p:last-child{
    max-width:560px;
    font-size:16px;
    line-height:1.55;
  }
}

/* v0.3.9 — hard mobile fit for clinic editorial headline */
@media(max-width:800px){
  .interlude-copy{width:100%;max-width:100%;overflow:hidden;}
  .interlude h2.clinic-headline{
    width:100%;
    max-width:100%;
    font-size:clamp(39px,10.8vw,50px);
    line-height:.94;
    letter-spacing:-.025em;
    margin:22px 0 30px;
  }
  .interlude h2.clinic-headline span{
    display:block;
    white-space:nowrap;
    max-width:100%;
  }
}
@media(max-width:390px){
  .interlude h2.clinic-headline{font-size:10.2vw;}
}

/* v0.4.0 — calmer premium visit CTA */
.booking-cta{padding:clamp(90px,9vw,150px) 5vw;min-height:auto;display:flex;justify-content:center;align-items:center}
.booking-cta-inner{width:min(1100px,100%);margin:0 auto;text-align:center}
.booking-cta .eyebrow{margin:0 0 28px}
.booking-cta h2{font-size:clamp(48px,5.8vw,86px);line-height:.98;margin:0 auto;max-width:1050px}
.booking-cta h2 span{display:block}
.booking-hint{margin:30px auto 0;max-width:560px;font-size:14px;line-height:1.6;color:#aaa69b}
.booking-cta .light{margin-top:34px;padding:17px 26px}
@media(max-width:800px){
  .booking-cta{padding:84px 22px 92px;min-height:0}
  .booking-cta-inner{max-width:650px}
  .booking-cta .eyebrow{margin-bottom:24px}
  .booking-cta h2{font-size:clamp(42px,12vw,62px);line-height:.98;letter-spacing:-.025em}
  .booking-cta h2 span{display:block;white-space:normal}
  .booking-cta h2 em{white-space:nowrap}
  .booking-hint{font-size:13px;line-height:1.55;margin-top:26px;max-width:330px}
  .booking-cta .light{margin-top:30px;min-width:220px}
  body.visit-cta-visible .mobile-book{opacity:0;pointer-events:none;transform:translateY(18px)}
  .mobile-book{transition:opacity .25s ease,transform .25s ease}
}
/* v0.4.1 language selector */
.head-actions{position:relative}.lang-menu{position:absolute;right:112px;top:calc(100% + 8px);display:none;min-width:72px;background:#f4f0e7;border:1px solid rgba(20,20,16,.14);box-shadow:0 12px 30px rgba(0,0,0,.12);z-index:10002}.lang-menu.show{display:grid}.lang-menu button{appearance:none;border:0;background:transparent;padding:12px 16px;font:inherit;letter-spacing:.12em;cursor:pointer}.lang-menu button:hover{background:rgba(0,0,0,.06)}
@media(max-width:800px){.lang-menu{right:0;top:calc(100% + 8px)} header .lang{display:block}}

/* v0.4.2 language menu stacking fix */
header#header{
  overflow:visible !important;
  isolation:isolate;
  z-index:50000 !important;
}
header#header .head-actions{
  position:relative;
  z-index:50002;
  overflow:visible !important;
}
header#header .lang{
  position:relative;
  z-index:50003;
}
header#header .lang-menu{
  z-index:50010 !important;
  background:rgba(244,240,231,.98);
  color:#171714;
  -webkit-backdrop-filter:blur(18px);
  backdrop-filter:blur(18px);
  overflow:hidden;
}
.hero,.hero-media,.hero-shade,.hero-copy,.hero-kicker{z-index:auto}
@media(max-width:800px){
  header#header{overflow:visible !important;}
  header#header .head-actions{overflow:visible !important;}
  header#header .lang-menu{right:0;top:calc(100% + 10px);min-width:84px;}
}

/* v0.4.3 — language-aware responsive typography. Same font family for RU/EN/VI. */
html[lang="ru"],html[lang="en"],html[lang="vi"]{font-family:'DM Sans',Arial,sans-serif}
html[lang="ru"] .hero h1,html[lang="en"] .hero h1,html[lang="vi"] .hero h1,
html[lang="ru"] .statement h2,html[lang="en"] .statement h2,html[lang="vi"] .statement h2,
html[lang="ru"] .section-head h2,html[lang="en"] .section-head h2,html[lang="vi"] .section-head h2,
html[lang="ru"] .interlude h2,html[lang="en"] .interlude h2,html[lang="vi"] .interlude h2,
html[lang="ru"] .international h2,html[lang="en"] .international h2,html[lang="vi"] .international h2,
html[lang="ru"] .booking-cta h2,html[lang="en"] .booking-cta h2,html[lang="vi"] .booking-cta h2{font-family:'Italiana',serif}

.lang{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}
.lang .lang-code{display:inline-block}.lang .lang-caret{display:inline-block;font-size:.78em;transform:translateY(-1px)}

@media(max-width:800px){
  /* Never allow editorial copy to create horizontal overflow. */
  .hero-kicker,.hero h1,.statement h2,.section-head h2,.service h3,.interlude h2,.international h2,.booking-cta h2{max-width:100%;box-sizing:border-box}
  .section-head h2,.statement h2,.international h2,.booking-cta h2{overflow-wrap:normal;word-break:normal}

  /* Hero kicker: centered, readable, and contained for every locale. */
  .hero-kicker{left:22px!important;right:22px!important;width:auto!important;text-align:center;white-space:normal!important;line-height:1.45!important;letter-spacing:.16em!important}
  html[lang="ru"] .hero-kicker{font-size:9.2px!important;letter-spacing:.13em!important}
  html[lang="en"] .hero-kicker{font-size:10px!important}
  html[lang="vi"] .hero-kicker{font-size:9.6px!important;letter-spacing:.14em!important}

  /* Hero title keeps the same typeface; only optical size changes by locale. */
  html[lang="ru"] .hero h1{font-size:clamp(43px,11.7vw,51px)!important;line-height:.94!important}
  html[lang="en"] .hero h1{font-size:clamp(48px,13.4vw,58px)!important;line-height:.91!important}
  html[lang="vi"] .hero h1{font-size:clamp(43px,11.9vw,52px)!important;line-height:.94!important}
  html[lang="ru"] .hero h1 em,html[lang="vi"] .hero h1 em{white-space:normal!important}

  /* Philosophy / large editorial statements. */
  html[lang="ru"] .statement h2{font-size:clamp(48px,13.2vw,58px)!important;line-height:.91!important}
  html[lang="en"] .statement h2{font-size:clamp(54px,15.5vw,66px)!important;line-height:.88!important}
  html[lang="vi"] .statement h2{font-size:clamp(47px,13vw,57px)!important;line-height:.92!important}

  /* Section display headlines such as Our Expertise / Results / Team. */
  html[lang="ru"] .section-head h2{font-size:clamp(43px,11.8vw,53px)!important;line-height:.94!important;letter-spacing:-.018em}
  html[lang="en"] .section-head h2{font-size:clamp(48px,13.2vw,60px)!important;line-height:.92!important}
  html[lang="vi"] .section-head h2{font-size:clamp(42px,11.6vw,52px)!important;line-height:.95!important;letter-spacing:-.018em}
  .section-head h2 em{white-space:normal!important}

  /* Service names can be longer in Vietnamese and Russian. */
  html[lang="ru"] .service h3{font-size:clamp(36px,9.8vw,43px)!important;line-height:1!important}
  html[lang="en"] .service h3{font-size:43px!important}
  html[lang="vi"] .service h3{font-size:clamp(34px,9.4vw,41px)!important;line-height:1.02!important}

  /* Clinic statement: preserve intended two lines, but fit the longest locale. */
  html[lang="ru"] .interlude h2.clinic-headline{font-size:clamp(35px,9.35vw,43px)!important;letter-spacing:-.03em!important}
  html[lang="en"] .interlude h2.clinic-headline{font-size:clamp(37px,10vw,46px)!important}
  html[lang="vi"] .interlude h2.clinic-headline{font-size:clamp(34px,9.15vw,42px)!important;letter-spacing:-.025em!important}
  .interlude h2.clinic-headline span{max-width:100%;white-space:normal!important}

  /* International block. */
  html[lang="ru"] .international h2{font-size:clamp(47px,12.8vw,58px)!important;line-height:.94!important}
  html[lang="en"] .international h2{font-size:clamp(52px,14vw,64px)!important}
  html[lang="vi"] .international h2{font-size:clamp(46px,12.5vw,57px)!important;line-height:.95!important}

  /* Visit CTA. */
  html[lang="ru"] .booking-cta h2{font-size:clamp(39px,10.7vw,50px)!important}
  html[lang="en"] .booking-cta h2{font-size:clamp(42px,12vw,62px)!important}
  html[lang="vi"] .booking-cta h2{font-size:clamp(38px,10.4vw,49px)!important}

  /* Language control spacing on mobile. */
  header#header .head-actions{gap:14px}
  header#header .lang{padding:8px 2px;font-size:14px;gap:6px}
}

/* v0.4.4 — i18n runtime completion + RU philosophy headline fit */
@media(max-width:800px){
  html[lang="ru"] #philosophy>h2{font-size:clamp(43px,11.8vw,52px)!important;line-height:.92!important;letter-spacing:-.018em!important;}
}

/* v0.4.5 — desktop-only hero typography. Mobile v0.4.4 is intentionally frozen. */
.hero-title-desktop{display:none}
.hero-title-mobile{display:inline}
@media(min-width:801px){
  .hero-title-mobile{display:none!important}
  .hero-title-desktop{display:inline!important}
  .hero-copy{max-width:none;width:min(58vw,920px)}
  .hero h1{max-width:100%;}
  html[lang="en"] .hero h1{font-size:clamp(72px,7.15vw,114px)!important;line-height:.91!important;letter-spacing:-.018em}
  html[lang="ru"] .hero-copy{width:min(61vw,970px)}
  html[lang="ru"] .hero h1{font-size:clamp(62px,5.85vw,94px)!important;line-height:.93!important;letter-spacing:-.022em}
  html[lang="ru"] .hero-title-desktop{white-space:nowrap}
  html[lang="ru"] .hero-title-desktop em{white-space:nowrap}
  html[lang="vi"] .hero-copy{width:min(60vw,950px)}
  html[lang="vi"] .hero h1{font-size:clamp(64px,6.15vw,98px)!important;line-height:.93!important;letter-spacing:-.02em}
  html[lang="vi"] .hero-title-desktop{white-space:nowrap}
  html[lang="vi"] .hero-title-desktop em{white-space:nowrap}
}

/* v0.4.6 — RU desktop hero: line 1 "Искусство", line 2 "естественной улыбки". */
@media(min-width:801px){
  html[lang="ru"] .hero-copy{width:min(64vw,1020px)}
  html[lang="ru"] .hero h1{font-size:clamp(62px,5.85vw,94px)!important}
  html[lang="ru"] .hero-title-desktop,
  html[lang="ru"] .hero-title-desktop em{white-space:nowrap!important}
}

/* v0.4.7 — locale-safe clinic headline line separation.
   Each translated phrase is its own visual line; prevents adjacent spans
   from collapsing into words such as "ощущаетсякак" on desktop. */
.interlude h2.clinic-headline > span{
  display:block;
}

/* v0.4.8 — hero background video: poster first, seamless fade-in after ready */
.hero-media picture{position:absolute;inset:0;z-index:1}
.hero-media .hero-video{position:absolute;inset:0;z-index:2;display:block;width:100%;height:100%;object-fit:cover;object-position:center center;opacity:0;transition:opacity .38s ease;pointer-events:none}
.hero-media.video-ready .hero-video{opacity:1}
.hero-media.video-ready picture{opacity:1}
@media (prefers-reduced-motion:reduce){.hero-media .hero-video{display:none!important}}

/* v0.5.0 — hero video stacking fix: video stays behind overlay and all hero content */
.hero{isolation:isolate}
.hero .hero-media{z-index:0}
.hero .hero-media picture{z-index:0}
.hero .hero-media .hero-video{z-index:1}
.hero .hero-shade{z-index:2;pointer-events:none}
.hero .hero-kicker,
.hero .hero-copy,
.hero .hero-note{z-index:3}

/* v0.6.0 stage 1 — online consultant entry point */
.consultant-trigger{border:0;display:flex;align-items:center;gap:10px;background:rgba(242,239,231,.96);color:var(--ink);padding:7px 13px 7px 8px;min-height:54px;text-align:left;box-shadow:0 8px 28px rgba(0,0,0,.10);transition:transform .2s ease,box-shadow .2s ease}
.consultant-trigger:hover{transform:translateY(-1px);box-shadow:0 10px 32px rgba(0,0,0,.16)}
.consultant-avatar{position:relative;display:block;flex:0 0 40px;width:40px;height:40px;border-radius:50%;overflow:visible;background:#d8c5ae}
.consultant-avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover;object-position:50% 28%;display:block}
.consultant-avatar i{position:absolute;right:-1px;bottom:1px;width:11px;height:11px;border-radius:50%;background:#20b96b;border:2px solid #f2efe7}
.consultant-trigger-copy{display:flex;flex-direction:column;gap:2px;white-space:nowrap}.consultant-trigger-copy strong{font-size:11px;letter-spacing:.045em;font-weight:600}.consultant-trigger-copy small{font-size:9px;opacity:.64;letter-spacing:.04em}
header.scrolled .consultant-trigger{background:var(--ink);color:#fff}header.scrolled .consultant-avatar i{border-color:var(--ink)}
.consultant-panel{position:fixed;z-index:12001;right:24px;top:92px;width:min(380px,calc(100vw - 28px));background:#f5f1e8;color:var(--ink);box-shadow:0 24px 80px rgba(0,0,0,.28);opacity:0;transform:translateY(-10px) scale(.98);pointer-events:none;transition:.22s ease}
.consultant-panel.show{opacity:1;transform:none;pointer-events:auto}.consultant-panel-head{display:flex;align-items:center;gap:12px;padding:18px;border-bottom:1px solid var(--line)}.panel-avatar{flex-basis:48px;width:48px;height:48px}.consultant-panel-head>div{display:flex;flex-direction:column;gap:3px;min-width:0}.consultant-panel-head strong{font-size:14px}.consultant-panel-head small{font-size:10px;opacity:.62}.consultant-close{margin-left:auto;border:0;background:transparent;font-size:27px;line-height:1;color:inherit}.consultant-panel-body{padding:22px}.consultant-bubble{background:#fff;padding:18px}.consultant-bubble strong{font-family:'Italiana',serif;font-size:24px;font-weight:400}.consultant-bubble p{font-size:13px;line-height:1.55;margin:9px 0 0}.consultant-quick{display:grid;gap:8px;margin-top:12px}.consultant-quick button{border:1px solid var(--line);background:transparent;padding:14px;text-align:left;font-size:12px}.consultant-stage-note{font-size:9px;opacity:.45;margin:14px 0 0}.consultant-backdrop{display:none}
@media(max-width:800px){header .header-consultant{padding:5px 8px;min-height:48px}.header-consultant .consultant-avatar{width:34px;height:34px;flex-basis:34px}.header-consultant .consultant-trigger-copy strong{font-size:9px;max-width:118px;white-space:normal;line-height:1.15}.header-consultant .consultant-trigger-copy small{font-size:8px}.mobile-book{left:14px;right:14px}.mobile-book .mobile-consultant{width:100%;padding:8px 14px;background:#171714;color:#fff}.mobile-book .consultant-avatar i{border-color:#171714}.mobile-book .consultant-trigger-copy strong{font-size:12px}.mobile-book .consultant-trigger-copy small{font-size:9px}.consultant-panel{top:auto;right:14px;left:14px;bottom:14px;width:auto;z-index:12001}.consultant-backdrop.show{display:block;position:fixed;inset:0;z-index:12000;background:rgba(15,13,10,.38);backdrop-filter:blur(3px)}}

/* v0.7.0 stage 2 — client chat module */
.consultant-panel{display:flex;flex-direction:column;max-height:min(680px,calc(100vh - 116px))}
.consultant-panel-body{display:flex;flex-direction:column;min-height:0;padding:0}
.consultant-chat{display:flex;flex-direction:column;gap:10px;overflow:auto;padding:20px 18px 12px;min-height:220px;max-height:420px;scrollbar-width:thin}
.chat-row{display:flex;flex-direction:column;max-width:84%}.chat-row.operator{align-self:flex-start}.chat-row.visitor{align-self:flex-end;align-items:flex-end}
.chat-bubble{padding:12px 14px;font-size:13px;line-height:1.45;background:#fff}.visitor .chat-bubble{background:#171714;color:#fff}.chat-time{font-size:8px;opacity:.42;margin-top:4px;letter-spacing:.04em}
.consultant-quick{display:flex;gap:7px;overflow-x:auto;padding:0 18px 12px;margin:0}.consultant-quick button{flex:0 0 auto;padding:10px 12px;background:transparent;border:1px solid var(--line);font-size:10px;white-space:nowrap}
.consultant-composer{display:flex;align-items:flex-end;gap:8px;border-top:1px solid var(--line);padding:12px 14px;background:#f5f1e8}.consultant-composer textarea{resize:none;max-height:96px;min-height:42px;flex:1;border:0;outline:0;background:#fff;padding:12px 13px;font:inherit;font-size:12px;line-height:1.4}.consultant-send{flex:0 0 42px;width:42px;height:42px;border:0;border-radius:50%;background:#171714;color:#fff;font-size:20px;line-height:1}.consultant-send:disabled{opacity:.35}.consultant-privacy{margin:0;padding:0 18px 12px;font-size:8px;opacity:.42;background:#f5f1e8}
.consultant-unread{position:absolute;right:-5px;top:-5px;display:none;min-width:18px;height:18px;padding:0 5px;border-radius:10px;background:#171714;color:#fff;font-size:9px;align-items:center;justify-content:center}.consultant-trigger.has-unread .consultant-unread{display:flex}
@media(max-width:800px){.consultant-panel{max-height:min(74vh,620px)}.consultant-chat{max-height:none;flex:1;min-height:250px}.consultant-panel-body{max-height:calc(74vh - 85px)}.consultant-composer textarea{font-size:16px}}
