:root{--bg:#0c1113;--panel:#111820;--panel2:#171b25;--accent:#c1d7fb;--text:#fff;--muted:rgba(255,255,255,.66);--line:rgba(193,215,251,.25);--serif:"Source Serif 4",Georgia,serif;--sans:Montserrat,Arial,sans-serif}
a:not(.button){transition:color .2s ease}a:not(.button):hover,a:not(.button):focus-visible{color:var(--accent)}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.socials a img,.footer-socials a img{transition:filter .2s ease,transform .2s ease}.socials a:hover img,.socials a:focus-visible img,.footer-socials a:hover img,.footer-socials a:focus-visible img{filter:brightness(0) saturate(100%) invert(86%) sepia(16%) saturate(700%) hue-rotate(180deg) brightness(103%) contrast(97%);transform:translateY(-1px)}.button:hover,.button:focus-visible{box-shadow:inset 0 0 0 1px var(--accent)}.button:not(.button-primary):hover,.button:not(.button-primary):focus-visible{color:var(--accent)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);font-weight:300;line-height:1.5}a{color:inherit;text-decoration:none}button{font:inherit}.container{width:min(79.2vw,1520px);margin-inline:auto}.header{position:absolute;z-index:10;top:0;left:50%;transform:translateX(-50%);width:min(79.2vw,1520px);height:130px;display:flex;align-items:center;justify-content:space-between;gap:30px}.brand{display:flex;align-items:center;gap:11px;color:var(--accent);font-family:var(--serif);font-size:20px;white-space:nowrap}.brand-mark{width:18px;height:18px;border:1px solid var(--accent);border-radius:50%;position:relative}.brand-mark:after{content:"";position:absolute;inset:4px;border:1px solid var(--accent);transform:rotate(45deg)}.nav{display:flex;gap:40px;font-size:16px;text-transform:lowercase}.nav a,.footer a{transition:color .2s}.nav a:hover,.footer a:hover{color:var(--accent)}.header-contact{display:flex;gap:24px;font-weight:500;white-space:nowrap}.socials{color:var(--accent)}.menu-button{display:none;background:none;border:1px solid var(--line);color:#fff;padding:8px 12px}.hero{min-height:980px;position:relative;overflow:hidden;padding-top:240px;background:radial-gradient(circle at 75% 45%,#29374b 0,rgba(20,27,35,.35) 23%,transparent 42%),linear-gradient(115deg,#0c1113 52%,#171d26)}.hero:after{content:"";position:absolute;right:11%;top:110px;width:46%;height:850px;background:linear-gradient(145deg,transparent 20%,rgba(193,215,251,.09)),radial-gradient(ellipse at center,#273246 0,#12171e 63%);border-radius:4px;opacity:.72}.hero-photo{position:absolute;z-index:1;right:1.5%;bottom:-5px;width:min(54vw,1000px);height:900px;object-fit:contain;object-position:right bottom}.hero-glow{position:absolute;width:300px;height:500px;right:34%;top:200px;background:#758dcb;filter:blur(120px);opacity:.08}.hero-content{position:relative;z-index:2}.hero h1{font:300 clamp(56px,5vw,92px)/1 var(--serif);margin:30px 0 50px;max-width:1000px}.hero-copy{font-size:20px;max-width:720px;margin-bottom:70px}.eyebrow{display:flex;align-items:center;gap:16px;color:var(--accent);font-weight:600;font-size:18px}.eyebrow:before{content:"";width:116px;border-top:1px solid var(--accent)}.button{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px 32px;background:rgba(193,215,251,.08);border-radius:4px;font-size:18px;transition:background .2s,color .2s,transform .2s}.button:hover{background:rgba(193,215,251,.16);transform:translateY(-1px)}.button-muted{max-width:721px;margin-top:46px}.button-primary{background:var(--accent);color:var(--bg)}.button-primary:hover{background:#d9e7ff}.button-wide{grid-column:1/-1;width:100%}.section{padding:93px 0}.panel{padding:90px 10%;background:linear-gradient(145deg,rgba(156,156,244,.055),rgba(193,215,251,.02));border-radius:4px}.directions-grid,.two-col{display:grid;grid-template-columns:1fr 1.08fr;gap:64px}.section h2{font:300 clamp(54px,4.2vw,80px)/1.06 var(--serif);margin:0 0 70px}.list article{padding:0 0 32px;margin-bottom:32px;border-bottom:1px solid var(--line)}.list article:last-child{border-bottom:0}.list h3{font-size:20px;margin:0 0 9px;font-weight:600}.list p{font-size:16px;margin:0;color:var(--muted)}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:stretch}.body-copy{font-size:18px;max-width:700px}.body-copy p{margin:0 0 25px}.body-copy strong{color:var(--accent)}.portrait{min-height:740px;background:radial-gradient(circle,#1d2638 0,#13171e 60%);display:flex;align-items:end;justify-content:center;overflow:hidden;border-radius:4px}.portrait img{width:100%;height:100%;min-height:740px;object-fit:cover;object-position:center}.facts{margin-top:86px}.facts>div{display:grid;grid-template-columns:1fr 1fr;gap:40px;padding:32px 0;border-bottom:1px solid var(--line)}.facts b{color:var(--accent);font-size:18px}.facts span{font-size:18px}.quote-grid{display:grid;grid-template-columns:1fr 1fr}.quote-card{min-height:590px;padding:70px;background:#11151c}.quote-card.light{background:#f4f3ef;color:#151719}.quote-card h2{font-size:52px}.quote-card li{margin:18px 0}.approach-statement{min-height:660px;display:flex;align-items:center;justify-content:center;text-align:center;background:radial-gradient(circle,#1e2940 0,transparent 58%)}.approach-statement p{font:300 clamp(46px,4.2vw,78px)/1.03 var(--serif);max-width:900px}.teen{background:linear-gradient(#0d1216,#0b1012)}.button-row{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:30px}.accordion{display:grid;gap:16px}.accordion details{border:1px solid rgba(255,255,255,.7);border-radius:4px;padding:0 32px}.accordion summary{cursor:pointer;list-style:none;padding:35px 45px 35px 0;font-weight:600;font-size:20px;position:relative}.accordion summary:after{content:"+";position:absolute;right:0;font-size:26px;font-weight:300}.accordion details[open] summary:after{content:"−"}.accordion details p{max-width:1200px;color:var(--muted);margin:0 0 24px}.accordion details ul{max-width:1200px;margin:0 0 35px;padding-left:24px;color:var(--muted)}.accordion details li{margin:10px 0}.price{color:var(--accent);font-weight:600;font-size:18px;margin:48px 0 30px}.contact-panel{display:grid;grid-template-columns:1.15fr .85fr;min-height:650px;background:linear-gradient(135deg,#171b25,#11131b);overflow:hidden}.contact-panel>div:first-child{padding:90px}.contact-panel h2{font-size:76px}.contact-panel p{max-width:760px}.contact-visual{position:relative;background:radial-gradient(circle at 35% 40%,#354663 0,#151b26 52%,#11131b);overflow:hidden}.contact-visual img{position:absolute;left:50%;bottom:-2%;width:105%;height:105%;object-fit:contain;object-position:center bottom;transform:translateX(-50%)}.footer{padding:85px 0 40px;background:#171b25}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1.4fr;gap:60px}.footer-grid nav,.footer-grid address{display:flex;flex-direction:column;gap:20px;font-style:normal}.footer-grid p{color:rgba(193,215,251,.6)}.footer-bottom{display:flex;justify-content:space-between;gap:50px;border-top:1px solid var(--line);margin-top:70px;padding-top:30px;color:rgba(193,215,251,.6);font-size:14px}.footer-bottom p:first-child{max-width:650px}
@media(max-width:1050px){.container,.header{width:calc(100% - 48px)}.header{height:90px}.menu-button{display:block;cursor:pointer}.nav{position:absolute;top:75px;right:0;display:none;flex-direction:column;gap:18px;background:#171b25;padding:24px;min-width:230px}.nav.open{display:flex}.header-contact{display:none}.hero{min-height:820px;padding-top:170px}.hero:after{right:-20%;opacity:.4}.hero-photo{right:-18%;width:75vw;height:760px;opacity:.64}.directions-grid,.two-col,.about-grid{grid-template-columns:1fr}.panel{padding:60px}.portrait,.portrait img{min-height:560px}.quote-card{padding:48px}.contact-panel{grid-template-columns:1fr}.contact-panel>div:first-child{padding:60px}.contact-visual{min-height:420px}.footer-grid{grid-template-columns:1.5fr 1fr 1fr}}
@media(max-width:700px){.container,.header{width:calc(100% - 32px)}.brand{font-size:17px}.hero{min-height:760px;padding-top:130px}.hero h1{font-size:51px}.hero-copy{font-size:16px;margin-bottom:45px}.hero-photo{right:-51%;bottom:0;width:135vw;height:610px;opacity:.38}.eyebrow{font-size:14px}.eyebrow:before{width:55px}.section{padding:64px 0}.section h2{font-size:46px;margin-bottom:44px}.panel{padding:38px 22px}.directions-grid,.two-col{gap:30px}.list article{margin-bottom:24px;padding-bottom:24px}.list h3{font-size:17px}.about-grid{gap:40px}.portrait,.portrait img{min-height:400px}.facts{margin-top:50px}.facts>div{grid-template-columns:1fr;gap:10px}.quote-grid{grid-template-columns:1fr}.quote-card{min-height:auto;padding:45px 28px}.quote-card h2{font-size:41px}.approach-statement{min-height:480px}.button-row{grid-template-columns:1fr}.button{padding:20px;font-size:15px}.accordion details{padding:0 20px}.accordion summary{font-size:16px}.contact-panel>div:first-child{padding:38px 24px}.contact-panel h2{font-size:46px}.contact-visual{min-height:360px}.footer-grid{grid-template-columns:1fr}.footer-bottom{flex-direction:column}.hero:after{display:none}}
/* Точное оформление первого экрана и графика из макета */
.brand img{display:block;width:177px;height:19px}.socials,.footer-socials{display:flex;align-items:center;gap:12px}.socials img,.footer-socials img{display:block;width:21px;height:21px}.arrow-icon{display:block;width:9px;height:9px;flex:0 0 9px}.arrow-dark{filter:brightness(0) saturate(100%)}.contact-icon{display:block;width:21px;height:21px;flex:0 0 21px}.button-label{flex:1;min-width:0}.contact-buttons .button{display:grid;grid-template-columns:21px minmax(0,1fr) 9px;align-items:center;column-gap:16px}.contact-buttons .button-primary .contact-icon,.contact-buttons .button-primary .arrow-icon{filter:brightness(0) saturate(100%)}.footer-socials{margin-top:4px}
.contact-visual{background:none}.contact-panel{background:linear-gradient(135deg,#171b25,#11131b)}
.hero{min-height:1029px;padding-top:242px;background-color:#0c1113;background-image:url("фото/artistic-blurry-colorful-wallpaper-background 1.png");background-size:cover;background-position:center top}.hero:after{display:none}.hero-glow{display:none}.hero-photo{right:4.5%;bottom:0;width:min(53vw,1010px);height:905px;opacity:1;object-position:right bottom}.hero-content{width:min(79.2vw,1520px)}.hero h1{max-width:900px}.hero-copy{max-width:690px}.button-muted{max-width:720px}
/* Внутренние поля фрейма совпадают с общей левой направляющей страницы */
#directions{padding-top:93px}#directions .panel{background:linear-gradient(180deg,rgba(19,23,36,.92),rgba(23,27,37,.92))}.panel{--panel-inset:clamp(48px,4.7vw,90px);padding:var(--panel-inset)}.directions-grid{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);column-gap:64px;row-gap:var(--panel-inset);align-items:stretch}.directions-heading-column{grid-column:1;grid-row:1;min-width:0}.directions-title{position:sticky;top:64px;align-self:start;margin-bottom:0}.directions-list{grid-column:2;grid-row:1;min-width:0}.directions-grid>.button-wide{grid-column:1/-1;grid-row:2;width:auto;justify-self:stretch;margin:0}.directions-list article{will-change:opacity,transform}
.quote-card ul{list-style:none;padding:0;margin:0}.quote-card li{display:flex;align-items:flex-start;gap:14px}.quote-card li img{display:block;width:22px;height:22px;flex:0 0 22px;margin-top:1px}.quote-card:not(.light) li img{filter:none}.approach-statement{position:relative;display:grid;grid-template-columns:minmax(300px,413px) minmax(0,1fr);gap:80px;align-items:center;justify-content:initial;min-height:734px;text-align:left;background:none;border:0;overflow:visible}.approach-statement:before,.approach-statement:after{content:none}.approach-glow{position:absolute;z-index:0;left:453px;top:50%;width:660px;height:632px;object-fit:contain;transform:translate(-50%,-50%);pointer-events:none}.approach-photo{position:relative;z-index:1;display:block;width:413px;height:734px;object-fit:contain;object-position:left bottom;align-self:end}.approach-statement p{position:relative;z-index:1;margin:0;max-width:1114px;text-align:left;font:300 clamp(56px,4.8vw,92px)/1.1 var(--serif)}
#approach{overflow:hidden}
#approach .quote-grid+.approach-statement{margin-top:186px}
/* Блок «О специалисте»: фото повторяет высоту текстовой колонки */
.body-copy strong{font-weight:600}.portrait{position:relative;min-height:0}.portrait img{position:absolute;inset:0;width:100%;height:100%;min-height:0;object-fit:cover;object-position:right center}
.facts b{font-weight:600}
/* Типографика первого экрана и кнопок */
.eyebrow{text-transform:uppercase;font-weight:500;letter-spacing:.04em}.button{font-weight:500}
@media(min-width:1200px){.section .eyebrow{margin:0 0 86px}.section .eyebrow+h2{margin:0 0 86px}}
/* Мягкое появление блоков при прокрутке */
.motion-ready .reveal{opacity:0;transform:translateY(34px);transition:opacity .85s cubic-bezier(.22,1,.36,1),transform .85s cubic-bezier(.22,1,.36,1)}.motion-ready .reveal.is-visible{opacity:1;transform:none}.motion-ready .direction-item.reveal{transform:translateY(24px);transition-duration:.7s}.motion-ready .direction-item.reveal.is-visible{transform:none}
.motion-ready .approach-glow.reveal,.motion-ready .approach-glow.reveal.is-visible{transform:translate(-50%,-50%)}
.principles-modal{width:min(1100px,calc(100% - 40px));max-height:calc(100vh - 40px);padding:0;border:0;border-radius:4px;background:#131724;color:var(--text)}.principles-modal::backdrop{background:rgba(6,9,11,.9);backdrop-filter:blur(5px)}.modal-shell{position:relative;padding:64px}.modal-close{position:absolute;top:22px;right:26px;width:42px;height:42px;border:0;border-radius:0;background:transparent;color:var(--text);font-size:28px;line-height:1;cursor:pointer}.principles-modal .eyebrow{margin:0 0 34px}.principles-modal h2{margin:0 0 54px;font:300 clamp(42px,4vw,68px)/1.05 var(--serif)}.modal-columns{display:grid;grid-template-columns:1fr 1fr;gap:64px}.modal-columns h3{margin:0 0 24px;color:var(--accent);font-size:18px;font-weight:400;letter-spacing:.04em;text-transform:uppercase}.modal-columns p{margin:0 0 20px}.modal-columns ul{margin:0 0 24px;padding-left:22px;color:var(--muted)}.modal-columns li{margin:8px 0}.modal-columns section>p{color:rgba(255,255,255,.82)}
.booking-modal{width:min(820px,calc(100% - 40px))}.booking-copy{max-width:680px;color:rgba(255,255,255,.82)}.booking-copy p{margin:0 0 20px}.booking-buttons{margin-top:54px}
@media(min-width:1200px){#steps h2{margin-bottom:86px}#steps .price{margin-top:86px}#contact .contact-panel h2{margin-bottom:86px}#contact .contact-panel>div:first-child>p{margin:0 0 20px}#contact .contact-buttons{margin-top:86px}}
@media(max-width:1050px){.hero{display:flex;flex-direction:column;min-height:0;padding:90px 0 72px;background-size:auto 100%;background-position:center top}.hero-photo{position:relative;z-index:1;order:1;right:auto;bottom:auto;width:100%;height:min(68vw,650px);margin:0;object-fit:contain;object-position:center bottom;opacity:1}.hero-content{order:2;width:calc(100% - 48px);padding-top:48px}.directions-grid{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:40px}.panel{--panel-inset:48px;padding:var(--panel-inset)}.directions-title{top:40px}.approach-statement{grid-template-columns:minmax(230px,32vw) minmax(0,1fr);gap:42px;min-height:580px}.approach-photo{width:100%;height:580px}.approach-glow{left:calc(32vw + 21px);width:560px;height:540px}.approach-statement p{font-size:clamp(48px,6.2vw,68px)}.contact-icon{width:19px;height:19px;flex-basis:19px}}
@media(max-width:1050px){#approach .quote-grid+.approach-statement{margin-top:120px}}
@media(max-width:700px){.brand img{width:158px;height:auto}.hero{display:flex;flex-direction:column;min-height:0;padding:92px 0 64px;background-size:auto 100%;background-position:center top}.hero-photo{position:relative;z-index:1;order:1;right:auto;bottom:auto;width:100%;height:470px;margin:0;object-fit:contain;object-position:center bottom;opacity:1}.hero-content{order:2;width:calc(100% - 32px);padding-top:42px}.hero h1{font-size:49px;margin-top:0}.hero-copy{margin-top:0}.directions-grid{display:grid;grid-template-columns:1fr;gap:var(--panel-inset)}.panel{--panel-inset:24px;padding:var(--panel-inset)}.directions-heading-column,.directions-list,.directions-grid>.button-wide{grid-column:1;grid-row:auto}.directions-title{position:static}.approach-statement{display:flex;flex-direction:column;align-items:stretch;gap:28px;min-height:0;text-align:left}.approach-photo{order:1;width:100%;height:460px;object-position:center bottom}.approach-glow{left:50%;top:190px;width:520px;height:500px;transform:translate(-50%,-50%)}.approach-statement p{order:2;width:100%;font-size:46px;line-height:1.08;text-align:left}.socials img,.footer-socials img{width:20px;height:20px}.quote-card li{gap:12px}.contact-icon{width:20px;height:20px;flex-basis:20px}}
@media(max-width:420px){.hero-photo{height:410px}.hero h1{font-size:45px}.directions-grid>*{min-width:0;width:100%}.directions-title{font-size:38px;overflow-wrap:anywhere}.directions-list{width:100%}.panel{--panel-inset:20px;padding:var(--panel-inset)}.button-wide{min-width:0}}
@media(max-width:700px){.principles-modal{width:calc(100% - 24px);max-height:calc(100vh - 24px)}.modal-shell{padding:54px 24px 32px}.modal-columns{grid-template-columns:1fr;gap:38px}.principles-modal h2{margin-bottom:38px}.modal-close{top:14px;right:14px}}
@media(max-width:700px){#approach .quote-grid+.approach-statement{margin-top:96px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.motion-ready .reveal{opacity:1!important;transform:none!important}}
.mobile-menu-contact{display:none}
@media(max-width:1200px){html.menu-open{overflow:hidden}.header-contact{display:none}.menu-button{position:relative;z-index:12;display:flex;width:34px;height:28px;padding:0;border:0;background:transparent;cursor:pointer;flex-direction:column;justify-content:space-between}.menu-button span{display:block;width:100%;height:2px;background:var(--text);transition:transform .25s ease,opacity .2s ease,background .2s ease}.menu-button:hover span,.menu-button:focus-visible span{background:var(--accent)}.menu-button[aria-expanded="true"] span:nth-child(1){transform:translateY(13px) rotate(45deg)}.menu-button[aria-expanded="true"] span:nth-child(2){opacity:0}.menu-button[aria-expanded="true"] span:nth-child(3){transform:translateY(-13px) rotate(-45deg)}.nav{position:fixed;z-index:11;inset:0 0 auto 0;display:flex;min-height:70vh;max-height:100vh;overflow-y:auto;padding:130px 10.4vw 46px;background:#171b25;flex-direction:column;align-items:stretch;gap:0;transform:translateY(-105%);opacity:0;visibility:hidden;transition:transform .35s cubic-bezier(.22,1,.36,1),opacity .25s ease,visibility .35s}.nav.open{display:flex;transform:translateY(0);opacity:1;visibility:visible}.nav>a{padding:13px 0;font-size:clamp(24px,3vw,34px);font-weight:400;text-transform:lowercase}.mobile-menu-contact{display:grid;grid-template-columns:1fr 1.4fr;gap:40px;margin-top:34px;padding-top:34px;border-top:1px solid var(--line)}.mobile-contact-data{display:flex;flex-direction:column;align-items:flex-start;gap:14px}.mobile-contact-buttons{display:grid;grid-template-columns:1fr 1fr;gap:14px}.mobile-contact-buttons .button{padding:18px 20px;font-size:14px}}
@media(max-width:1050px){.nav{padding-inline:24px}}
@media(max-width:700px){.nav{min-height:70dvh;padding:105px 16px 28px}.nav>a{font-size:25px;padding:10px 0}.mobile-menu-contact{grid-template-columns:1fr;gap:24px;margin-top:24px;padding-top:24px}.mobile-contact-buttons{grid-template-columns:1fr}.mobile-contact-buttons .button{padding:16px 18px}.menu-button{width:30px;height:24px}.menu-button[aria-expanded="true"] span:nth-child(1){transform:translateY(11px) rotate(45deg)}.menu-button[aria-expanded="true"] span:nth-child(3){transform:translateY(-11px) rotate(-45deg)}}

/* Единая адаптивная типографика и мобильная компоновка */
.modal-columns{font-family:var(--sans);font-weight:300}.modal-columns ul{color:rgba(255,255,255,.82);font:inherit}.modal-columns .modal-emphasis{color:var(--text);font-weight:500}
@media(max-width:1200px){
  body{font-size:clamp(14px,calc(13.49px + .13vw),16px)}
  main p,main li,.facts span,.accordion details p,.accordion details li,.modal-columns,.booking-copy{font-size:inherit}
  .list p{font-size:inherit}.button{font-size:clamp(14px,calc(13.49px + .13vw),16px)}
  .brand{position:relative;z-index:13}
  .nav{inset:0 0 auto 0;width:100%;padding:130px max(24px,10.4vw) 46px;border:0}
  .nav>a{font-size:16px;font-weight:300;padding:10px 0}
  .menu-button[aria-expanded="true"] span{opacity:0}
  .menu-button[aria-expanded="true"]:after{content:"×";position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-52%);font-size:28px;font-weight:300;line-height:1;color:var(--text)}
  .mobile-menu-contact{grid-template-columns:1fr;gap:22px}
  .mobile-contact-data{font-size:inherit}
  .mobile-contact-buttons{grid-template-columns:1fr 1fr}
  .mobile-contact-buttons.contact-buttons .button{padding:18px 20px;font-size:inherit}
}
@media(max-width:700px){
  body{font-size:clamp(14px,calc(12.7px + .33vw),15px)}
  .header{height:84px}.nav{min-height:70dvh;padding:102px 16px 26px}
  .nav>a{font-size:14px;padding:8px 0}.mobile-menu-contact{margin-top:18px;padding-top:18px;gap:18px}
  .mobile-contact-buttons{grid-template-columns:1fr}.mobile-contact-buttons.contact-buttons .button{padding:16px 18px;font-size:14px}
  .section{padding:32px 0}#directions{padding-top:32px}#approach .quote-grid+.approach-statement{margin-top:48px}
  .facts{margin-top:32px}.button-row{margin-top:16px}.footer{padding-top:48px}.footer-bottom{margin-top:36px}
  .hero{position:relative;display:block;min-height:100svh;padding:0;background-size:auto 100%;overflow:hidden}
  .hero-photo{position:absolute;z-index:1;top:68px;right:0;bottom:auto;width:100%;height:54svh;max-height:500px;object-fit:contain;object-position:center top;opacity:1}
  .hero-content{position:relative;z-index:2;display:flex;flex-direction:column;width:calc(100% - 32px);min-height:100svh;margin:0 auto;padding:clamp(350px,48svh,430px) 0 18px}
  .hero h1{font-size:clamp(52px,14vw,62px);line-height:.96;margin:0 0 22px;max-width:100%}
  .hero-copy{font-size:14px;margin:0 0 18px;max-width:100%}.hero .eyebrow{font-size:14px;margin:0 0 14px}
  .hero .button-muted{width:100%;max-width:none;margin:auto 0 0;font-size:14px}
  .approach-statement{position:relative;gap:0}.approach-photo{height:460px}.approach-glow{top:190px}
  .approach-statement p{z-index:2;margin-top:-230px;padding-top:0;font-size:46px;min-height:230px}
}
@media(max-width:390px){body,.button,.nav>a,.mobile-contact-buttons.contact-buttons .button{font-size:14px}}

@media(max-width:700px){
  .hero{background-color:#0c1113;background-size:auto 62svh;background-position:center top;background-repeat:no-repeat}
  .hero-photo{top:48px;height:52svh;max-height:470px}
  .hero-content{padding-top:clamp(310px,41svh,365px)}
  .hero h1{font-size:clamp(46px,12.3vw,54px);line-height:.98;margin-bottom:30px}
  .hero-copy{margin-bottom:24px}
}
@media(max-width:390px){.hero h1{font-size:47px}}

/* Выпадающее меню занимает всю ширину и заканчивается по контенту */
@media(max-width:1200px){
  .nav{left:50%;right:auto;width:100vw;min-height:0;height:auto;max-height:100vh;padding-bottom:56px;transform:translate(-50%,-105%)}
  .nav.open{transform:translate(-50%,0)}
  .menu-button[aria-expanded="true"]:focus-visible{outline:0}
}
@media(max-width:700px){
  .nav{min-height:0;height:auto;padding-bottom:58px}
}

/* Первый экран по адаптивной сетке референса */
@media(min-width:393px) and (max-width:700px){
  .hero{min-height:100svh}
  .hero-photo{top:72px;height:37svh;max-height:350px;object-position:center top}
  .hero-content{min-height:100svh;padding:42svh 0 18px}
  .hero h1{font-size:40px;line-height:1.08;margin:0 0 46px}
  .hero-copy{font-size:16px;line-height:1.55;margin:0}
  .hero-cta{display:flex;flex-direction:column;gap:46px;width:100%;margin-top:auto}
  .hero-cta .eyebrow,.hero-cta .button-muted{margin:0}
  .hero-cta .eyebrow{font-size:16px}
  .hero-cta .button{font-size:16px}
}
@media(max-width:392px){
  .hero-photo{top:66px;height:36svh;max-height:320px}
  .hero-content{min-height:100svh;padding:40svh 0 16px}
  .hero h1{font-size:38px;line-height:1.06;margin:0 0 32px}
  .hero-copy{font-size:14px;line-height:1.5;margin:0}
  .hero-cta{display:flex;flex-direction:column;gap:32px;width:100%;margin-top:auto}
  .hero-cta .eyebrow,.hero-cta .button-muted{margin:0}
  .hero-cta .eyebrow,.hero-cta .button{font-size:14px}
}

/* Фиксированные интервалы внутри первого экрана */
@media(min-width:341px) and (max-width:700px){
  .hero-content{padding-top:calc(42svh - 46px)}
  .hero h1{margin-bottom:46px}
  .hero-cta{gap:46px;margin-top:46px}
}
@media(min-width:341px) and (max-width:392px){
  .hero-content{padding-top:calc(40svh - 46px)}
}
@media(max-width:340px){
  .hero-content{padding-top:calc(40svh - 24px)}
  .hero h1{margin-bottom:24px}
  .hero-cta{gap:24px;margin-top:24px}
}

/* Первый экран на планшетах */
@media(min-width:701px) and (max-width:1050px){
  .hero{position:relative;display:block;min-height:100svh;padding:0;overflow:hidden}
  .hero-photo{position:absolute;z-index:1;top:72px;left:50%;right:auto;bottom:auto;width:120vw;max-width:none;height:56svh;min-height:560px;max-height:690px;margin:0;transform:translateX(-50%);object-fit:contain;object-position:center top;opacity:1}
  .hero-content{position:relative;z-index:2;display:flex;flex-direction:column;width:calc(100% - 48px);min-height:100svh;margin:0 auto;padding:55svh 0 18px}
  .hero-cta{width:100%;margin-top:auto}
  .hero-cta .button-muted{width:100%;max-width:none}
}

/* Уточнения для узких мобильных экранов */
@media(min-width:341px) and (max-width:375px){
  .hero h1{margin-bottom:24px}
  .hero-cta{gap:24px;margin-top:24px}
}
@media(max-width:392px){
  .hero-photo{left:50%;right:auto;width:120vw;max-width:none;height:43svh;max-height:360px;transform:translateX(-50%)}
}

/* Бургер и крестик используют одинаковые линии толщиной 2px */
@media(max-width:1200px){
  .menu-button span{height:2px}
  .menu-button[aria-expanded="true"]:before,.menu-button[aria-expanded="true"]:after{content:"";position:absolute;left:0;top:50%;width:100%;height:2px;background:var(--text);transform-origin:center}
  .menu-button[aria-expanded="true"]:before{transform:translateY(-50%) rotate(45deg)}
  .menu-button[aria-expanded="true"]:after{inset:auto;left:0;top:50%;font-size:0;transform:translateY(-50%) rotate(-45deg)}
}

/* Планшет: одноколоночный поток и более компактные интервалы */
@media(min-width:701px) and (max-width:1050px){
  .section{padding:56px 0}#directions{padding-top:56px}
  #approach .quote-grid+.approach-statement{margin-top:72px}
  .directions-grid,.two-col{grid-template-columns:1fr;gap:40px}
  .directions-heading-column,.directions-list,.directions-grid>.button-wide{grid-column:1;grid-row:auto}
  .directions-title{position:static}
  .quote-grid{grid-template-columns:1fr}
  .motion-ready .directions-grid .reveal{opacity:1;transform:none;transition:none}
  .facts{margin-top:52px}.footer{padding-top:56px}.footer-bottom{margin-top:42px}
}

/* На адаптиве фотография контактного блока всегда находится сверху внутри фрейма */
@media(max-width:1050px){
  .contact-panel{display:flex;flex-direction:column}
  .contact-visual{order:-1;width:100%;min-height:0;aspect-ratio:16/10}
  .contact-visual img{left:0;bottom:0;width:100%;height:100%;object-fit:contain;object-position:center top;transform:none}
}

/* Контакты футера не ломаются на планшетах */
@media(min-width:701px) and (max-width:1050px){
  .footer-grid{grid-template-columns:1.3fr .75fr 1.2fr;gap:32px}
  .footer-grid address{font-size:14px}
  .footer-grid address>a{white-space:nowrap}
}

/* Компактный десктоп 1280×800: пропорции версии 1920 */
@media(min-width:1051px) and (max-width:1400px){
  body{font-size:14px}
  .header{height:92px;gap:22px}.brand img{width:150px}.nav{gap:30px;font-size:13px}.header-contact{gap:16px;font-size:13px}
  .hero{min-height:100vh;height:100vh;padding-top:190px;background-size:cover;background-position:center top}
  .hero-photo{right:4%;bottom:120px;width:41.25vw;height:68vh;max-height:540px;object-fit:contain;object-position:right bottom}
  .hero h1{font-size:64px;line-height:.98;margin:18px 0 34px;max-width:720px}
  .hero-copy{max-width:590px;margin-bottom:44px;font-size:14px;line-height:1.5}
  .hero .eyebrow{font-size:13px}.hero .eyebrow:before{width:82px}
  .hero .button{font-size:14px;padding:18px 24px}.hero .button-muted{max-width:590px;margin-top:30px}
  .section{padding:65px 0}.section h2{font-size:56px;margin-bottom:50px}
  .panel{--panel-inset:63px}.directions-grid{column-gap:46px}
  .list h3{font-size:15px}.list p{font-size:13px}.list article{padding-bottom:24px;margin-bottom:24px}
  .body-copy,.facts b,.facts span{font-size:14px}.about-grid{gap:56px}.facts{margin-top:60px}
  .quote-card{padding:50px;min-height:500px}.quote-card h2{font-size:42px}.quote-card li{font-size:14px}
  .approach-statement p{font-size:64px}.button{font-size:14px;padding:18px 24px}
  .accordion summary{font-size:16px;padding-block:26px}.accordion details p,.accordion details li,.price{font-size:14px}
  .contact-panel{position:relative;grid-template-columns:1.22fr .78fr;min-height:520px}
  .contact-panel>div:first-child{position:relative;z-index:2;padding:56px}.contact-panel h2{font-size:54px;margin-bottom:50px}
  .contact-panel .contact-buttons{position:relative;z-index:3;width:650px;max-width:none;margin-top:50px;grid-template-columns:1fr 1fr}
  .contact-panel .contact-buttons .button{white-space:nowrap;min-width:0}
  .contact-panel .contact-visual{position:relative;z-index:1;overflow:visible}
  .contact-panel .contact-visual img{bottom:76px;width:92%;height:92%;object-position:center bottom}
  .footer-grid{font-size:14px}
}

/* Десктоп 1440: масштаб 80% относительно версии 1920 */
@media(min-width:1401px) and (max-width:1600px){
  body{font-size:16px}
  .header{height:104px;gap:24px}.brand img{width:160px}.nav{gap:32px;font-size:14px}.header-contact{gap:18px;font-size:14px}
  .hero{min-height:100vh;height:100vh;padding-top:194px;background-size:cover;background-position:center top}
  .hero-photo{right:4%;bottom:150px;width:47vw;height:74vh;max-height:700px;object-fit:contain;object-position:right bottom}
  .hero h1{font-size:74px;line-height:.98;margin:24px 0 40px;max-width:780px}
  .hero-copy{max-width:620px;margin-bottom:56px;font-size:16px;line-height:1.5}
  .hero .eyebrow{font-size:14px}.hero .eyebrow:before{width:94px}
  .button{font-size:15px;padding:20px 26px}.hero .button-muted{max-width:620px;margin-top:36px}
  .section{padding:74px 0}.section h2{font-size:64px;margin-bottom:56px}
  .panel{--panel-inset:72px}.directions-grid{column-gap:52px}
  .list h3{font-size:16px}.list p{font-size:14px}.list article{padding-bottom:26px;margin-bottom:26px}
  .body-copy,.facts b,.facts span{font-size:16px}.about-grid{gap:64px}.facts{margin-top:69px}
  .quote-card{padding:56px 40px;min-height:530px}.quote-card h2{font-size:46px}.quote-card li{font-size:15px}.approach-heading-line{white-space:nowrap}
  .approach-statement p{font-size:72px}
  .accordion summary{font-size:17px;padding-block:28px}.accordion details p,.accordion details li,.price{font-size:15px}
  .contact-panel{position:relative;grid-template-columns:1.22fr .78fr;min-height:560px}
  .contact-panel>div:first-child{position:relative;z-index:2;padding:64px}.contact-panel h2{font-size:61px;margin-bottom:56px}
  .contact-panel .contact-buttons{position:relative;z-index:3;width:720px;max-width:none;margin-top:56px;grid-template-columns:1fr 1fr}
  .contact-panel .contact-visual{position:relative;z-index:1;overflow:visible}
  .contact-panel .contact-visual img{bottom:88px;width:90%;height:90%;object-position:center bottom}
  .footer-grid{font-size:15px}
}

/* Единый интервал от последнего пункта списка до следующего действия */
:root{
  --list-to-action-gap:86px;
}

.directions-grid{
  align-content:start;
  row-gap:var(--list-to-action-gap);
}

.list article:last-child{
  margin-bottom:0;
  padding-bottom:0;
}

.directions-grid>.button-wide,
.teen-grid>.button-row{
  align-self:start;
  margin-top:0;
}

#steps .price{
  margin-top:var(--list-to-action-gap);
}

@media(max-width:1199px){
  :root{
    --list-to-action-gap:48px;
  }
}

@media(max-width:700px){
  :root{
    --list-to-action-gap:32px;
  }
}

/* На адаптивах CTA первого экрана остаётся в единой тёмной тональности */
@media(max-width:1050px){
  .hero .button-muted{
    background:#171d26;
  }
  .hero .button-muted:hover{
    background:#202733;
  }
}

/* Текст кнопок всегда остаётся в одну строку */
.button,.button-label{white-space:nowrap}

/* На широких экранах сохраняется композиционная ширина версии 1920 */
@media(min-width:1921px){
  .hero-photo{right:calc((100vw - 1920px)/2 + 86px)}
}

/* Единая плавная шкала типографики и интервалов: 393 → 1920 */
:root{
  --responsive-gap:clamp(46px,calc(41.88px + 1.048vw),62px);
  --responsive-h1:clamp(40px,calc(26.62px + 3.405vw),92px);
  --responsive-h2:clamp(40px,calc(29.7px + 2.62vw),80px);
  --responsive-body:clamp(16px,calc(14.97px + .262vw),20px);
  --responsive-small:clamp(14px,calc(13.49px + .131vw),16px)
}
.hero h1{font-size:var(--responsive-h1);line-height:1;margin:0 0 var(--responsive-gap)}
.hero-copy{font-size:var(--responsive-body);line-height:1.5;margin:0}
.hero-cta{display:flex;flex-direction:column;width:100%;gap:var(--responsive-gap);margin-top:var(--responsive-gap)}
.hero-cta .eyebrow,.hero-cta .button-muted{margin:0}
.hero .eyebrow,.hero .button{font-size:var(--responsive-small)}
.section h2{font-size:var(--responsive-h2)}
.body-copy,.facts b,.facts span,.contact-panel p,.accordion details p,.accordion details li{font-size:var(--responsive-small)}
.list h3{font-size:clamp(16px,calc(14.97px + .262vw),20px)}
.list p,.quote-card li{font-size:var(--responsive-small)}
@media(max-width:340px){
  :root{--responsive-gap:24px;--responsive-h1:36px;--responsive-h2:36px;--responsive-body:14px;--responsive-small:14px}
}

/* Мобильный первый экран собирается от нижней границы viewport */
@media(max-width:700px){
  .hero-content{display:flex;flex-direction:column;justify-content:flex-end;min-height:100svh;padding-top:90px;padding-bottom:16px}
  .hero h1{flex:0 0 auto}.hero-copy{flex:0 0 auto}.hero-cta{flex:0 0 auto}
  .hero .button-muted{width:100%;max-width:none}
}

/* Типографика iPhone 375 и более узких экранов */
@media(max-width:375px){
  :root{--responsive-gap:23px;--responsive-h1:40px;--responsive-h2:40px;--responsive-body:14px;--responsive-small:14px}
  body,main p,main li,.modal-columns,.booking-copy{font-size:14px}
  .hero h1,.section h2,.principles-modal h2,.contact-panel h2{font-size:40px}
  .hero h1{line-height:.96}.hero-copy{font-size:14px;line-height:1.4}
  .button{font-size:14px}
}
@media(max-width:340px){
  :root{--responsive-gap:20px;--responsive-h1:36px;--responsive-h2:36px}
  .hero h1,.section h2,.principles-modal h2,.contact-panel h2{font-size:36px}
}

/* Финальные мобильные корректировки */
@media(max-width:700px){
  .menu-button span,.menu-button[aria-expanded="true"]:before,.menu-button[aria-expanded="true"]:after{height:1px}
  .hero{height:100svh;min-height:0}
  .hero-content{height:100svh;min-height:0}
  #approach{padding-bottom:70px}
  .accordion summary{display:flex;align-items:center;min-height:72px;padding-block:20px}
  .accordion summary:after{top:50%;line-height:1;transform:translateY(-50%)}
  .contact-panel>div:first-child{position:relative;z-index:2}
  .contact-visual{position:relative;z-index:1;margin-bottom:-64px;aspect-ratio:16/9}
  .contact-visual img{width:110%;height:110%;object-position:center top}
}

/* Единый размер заголовков на телефонах */
@media(max-width:440px){
  :root{--responsive-h1:40px;--responsive-h2:40px}
  .hero h1,
  .section h2,
  .quote-card h2,
  .contact-panel h2,
  .principles-modal h2{font-size:40px}
}
@media(max-width:340px){
  :root{--responsive-h1:36px;--responsive-h2:36px}
  .hero h1,
  .section h2,
  .quote-card h2,
  .contact-panel h2,
  .principles-modal h2{font-size:36px}
}

/* Масштаб и позиция фотографий на мобильных устройствах */
@media(max-width:440px){
  .hero-photo{
    left:50%;
    right:auto;
    width:128vw;
    max-width:none;
    height:42svh;
    max-height:402px;
    transform:translateX(-50%);
    object-position:center top;
  }
  .contact-visual img{
    left:calc(50% - 24px);
    top:24px;
    bottom:auto;
    width:110%;
    height:calc(100% - 24px);
    transform:translateX(-50%);
    object-position:center top;
  }
}

/* Промежуточные десктопные разрешения: портрет ближе к линии шапки */
@media(min-width:1051px) and (max-width:1400px){
  .hero-photo{top:124px;bottom:auto}
  .contact-panel .contact-visual img{
    top:54px;
    bottom:auto;
    width:108%;
    height:calc(100% - 54px);
    object-position:center top;
  }
  .contact-panel .contact-buttons{
    width:720px;
    grid-template-columns:repeat(2,minmax(280px,1fr));
  }
  .contact-panel .contact-buttons .button{padding-inline:20px;gap:12px}
  .contact-panel .contact-buttons .button-label{display:block;white-space:nowrap}
}

/* Контактный блок сохраняет десктопную пропорцию на промежуточных экранах */
@media(min-width:1051px) and (max-width:1600px){
  .contact-panel{grid-template-columns:60% 40%}
  .contact-panel>div:first-child{max-width:100%}
  .contact-panel .contact-visual{position:relative;overflow:visible}
  .contact-panel .contact-visual img{
    left:auto;
    right:-2%;
    top:20px;
    bottom:auto;
    width:auto;
    max-width:none;
    height:calc(100% - 20px);
    object-fit:contain;
    object-position:right top;
    transform:none;
  }
  .contact-panel .contact-buttons{position:relative;z-index:4}
  .contact-panel .contact-buttons .button-label{white-space:nowrap}
}

/* На ширинах около 1180 px заголовки компактнее и не пересекаются с контентом */
@media(min-width:1051px) and (max-width:1250px){
  .section h2,.contact-panel h2{font-size:45px}
  .quote-card h2{font-size:34px}
}

/* Равные вертикальные поля у карточек подхода в одноколоночной версии */
@media(max-width:1050px){
  .quote-grid{align-items:start}
  .quote-card{
    min-height:0;
    height:auto;
    padding-top:48px;
    padding-bottom:48px;
  }
  #teens .directions-title,
  #steps h2{white-space:nowrap}
}
@media(max-width:700px){
  .quote-card{padding-top:28px;padding-bottom:28px}
  #teens .directions-title,
  #steps h2{white-space:normal}
}

/* Крупная фотография над заголовком контактного блока на адаптиве */
@media(max-width:1050px){
  .contact-visual{
    flex:0 0 auto;
    height:clamp(360px,55vw,520px);
    min-height:0;
    aspect-ratio:auto;
    margin-bottom:0;
  }
  .contact-visual img{
    left:50%;
    right:auto;
    top:38px;
    bottom:auto;
    width:auto;
    max-width:none;
    height:calc(100% - 76px);
    transform:translateX(-50%);
    object-fit:contain;
    object-position:center;
  }
}
@media(max-width:700px){
  .contact-visual{height:clamp(285px,80vw,360px)}
  .contact-visual img{left:calc(50% - 24px)}
}

/* Финальный масштаб фотографии в мобильном контактном блоке */
@media(max-width:700px){
  .contact-visual{
    height:clamp(410px,120vw,560px);
    overflow:hidden;
  }
  .contact-visual img{
    left:calc(50% - 24px);
    top:38px;
    bottom:auto;
    width:auto;
    height:calc(100% - 48px);
    max-width:none;
    transform:translateX(-50%);
    object-fit:contain;
    object-position:center bottom;
  }
  .contact-panel>div:first-child{padding-top:10px}
}

/* Синее фоновое свечение первого экрана поднимается к середине верхнего портрета */
@media(max-width:700px){
  .hero{
    background-position:center -10svh;
  }
}
@media(min-width:701px) and (max-width:1050px){
  .hero{
    background-position:center -14svh;
  }
}

/* Планшетная композиция блока первой встречи */
@media(min-width:701px) and (max-width:1050px){
  .contact-visual{
    height:clamp(600px,88vw,760px);
  }
  .contact-visual img{
    top:38px;
    height:calc(100% - 76px);
  }
  .contact-panel>div:first-child{
    padding:32px 60px 60px;
  }
  .contact-panel h2{
    margin-bottom:35px;
  }
  .contact-panel>div:first-child>p{
    margin-top:0;
    margin-bottom:16px;
  }
  .contact-panel>div:first-child>p:last-of-type{
    margin-bottom:0;
  }
  .contact-panel .contact-buttons{
    margin-top:45px;
  }
}
@media(min-width:1401px) and (max-width:1600px){
  .hero-photo{top:136px;bottom:auto}
  .contact-panel .contact-visual img{
    top:-28px;
    bottom:auto;
    width:124%;
    height:124%;
    max-width:none;
    object-position:center top;
  }
  .contact-panel .contact-buttons{
    width:790px;
    grid-template-columns:repeat(2,minmax(310px,1fr));
  }
  .contact-panel .contact-buttons .button-label{display:block;white-space:nowrap}
}

/* 1440 px: равная композиция карточек и компактный переход после hero */
@media(min-width:1401px) and (max-width:1600px){
  .hero{
    height:800px;
    min-height:800px;
  }
  #directions{
    padding-top:24px;
  }
  .section h2,
  .contact-panel h2,
  .quote-card h2{
    font-size:50px;
    line-height:1.06;
  }
  .quote-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    align-items:stretch;
  }
  .quote-card{
    width:100%;
    min-width:0;
    min-height:530px;
    height:100%;
    padding:56px 40px;
  }
  .quote-card h2{
    max-width:none;
    margin-bottom:56px;
  }
  .approach-heading-line{
    white-space:nowrap;
  }
}

/* Высокие экраны компактных ноутбуков и iPad Pro не растягивают hero по высоте */
@media(min-width:1051px) and (max-width:1400px){
  .hero{
    height:min(100vh,800px);
    min-height:min(100vh,800px);
  }
  #directions{
    padding-top:24px;
  }
}

/* Мобильный hero: только три отмеченных интервала уменьшены вдвое */
@media(max-width:700px){
  .hero h1{
    margin-bottom:calc(var(--responsive-gap) / 2);
  }
  .hero-cta{
    gap:calc(var(--responsive-gap) / 2);
    margin-top:calc(var(--responsive-gap) / 2);
  }
}

/* Телефон: более свободный переход от CTA первого экрана к направлениям */
@media(max-width:700px){
  #directions{
    padding-top:88px;
  }
}
