@import url('https://fonts.googleapis.com/css2?family=Golos+Text:wght@400;450;500;550;600;650;700;800;900&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--paper:#faf8f3;--ink:#272727;--muted:#6c6a66;--line:#d9d6cf;--surface:#eeece5;--surface-soft:#f2f0e9;--accent:#54192b;--accent-hover:#6a293d;--yellow:#eee6a6;--white:#ffffff;--backdrop:#20202099;--photo-line:#ffffff77}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:30px}
body{margin:0;background:var(--paper);color:var(--ink);font-family:'Golos Text',Arial,sans-serif;font-size:16px;line-height:1.6}
button,input,select{font:inherit}
button,a,input,select{-webkit-tap-highlight-color:transparent}
button,a{touch-action:manipulation}
a{color:inherit;text-decoration:none}
button{cursor:pointer}
button:focus-visible,a:focus-visible{outline:3px solid var(--accent);outline-offset:5px}
.wrap{width:min(1320px,calc(100% - 112px));margin:auto}
.header{height:118px;display:flex;align-items:center;justify-content:space-between;gap:30px}
.brand{font-weight:800;font-size:40px;line-height:.95;letter-spacing:-2px;color:var(--ink)}
.brand span{display:block;font-size:9px;font-weight:550;letter-spacing:2.15px;margin-top:10px}
nav{display:flex;gap:32px;font-size:14px}
nav a:hover,.text-link:hover{opacity:.6}
.button{border:0;border-radius:50px;padding:19px 27px;display:inline-flex;align-items:center;justify-content:space-between;gap:46px;font-weight:500;min-height:60px;transition:transform .2s,background .2s}
.button:hover{transform:translateY(-3px)}
.button span{font-size:23px;line-height:1}
.button.dark{background:var(--accent);color:var(--white)}
.button.dark:hover{background:var(--accent-hover)}
.button.small{padding:14px 23px;min-height:49px;font-size:14px;gap:28px}
.hero{display:grid;grid-template-columns:1.05fr 1fr;gap:35px;padding:26px 0 68px;align-items:stretch}
.hero-copy{padding:34px 0 5px}
.eyebrow{font-size:12px;font-weight:550;letter-spacing:1.8px;display:flex;align-items:center;gap:13px}
.mini-line{width:26px;height:1px;background:currentColor}
h1,h2,h3,p{margin-top:0}
h1{font-size:clamp(58px,6.6vw,96px);line-height:1.02;letter-spacing:-5.5px;font-weight:500;color:var(--ink);margin:33px 0 27px}
em{font-family:Georgia,'Times New Roman',serif;font-weight:400;letter-spacing:-.055em}
h1 em{font-size:1.04em}
.hero-accent{color:var(--accent)}
.hero-description{font-size:20px;line-height:1.6;margin-bottom:19px;letter-spacing:-.35px}
.hero-sub{color:var(--muted);font-size:15px;line-height:1.7;margin-bottom:30px}
.rating{display:flex;gap:16px;align-items:center;margin-top:39px;width:fit-content}
.rating-number{font-size:34px;font-weight:500;letter-spacing:-1.5px}
.stars{color:var(--ink);font-size:15px;letter-spacing:3px;display:block}
.rating-caption{display:block;font-size:12px;color:var(--muted)}
.hero-visual{min-height:650px;position:relative;border-radius:6px 6px 125px 6px;background:var(--surface);isolation:isolate}
.hero-photo{position:absolute;width:100%;height:100%;object-fit:cover;border-radius:inherit}
.photo-bottom{position:absolute;left:34px;right:34px;bottom:42px;display:flex;align-items:end;justify-content:flex-end;color:var(--white)}
.photo-caption{position:absolute;left:34px;top:28px;color:var(--white);font-size:36px;line-height:1.2;letter-spacing:-1px}
.photo-caption i{font-family:Georgia,serif;font-weight:400}
.round-link{width:48px;height:48px;border:1px solid var(--photo-line);border-radius:50%;display:grid;place-items:center;font-size:23px;margin-right:26px}
.sticker{position:absolute;right:-20px;top:52px;background:var(--yellow);color:var(--ink);width:147px;height:147px;border-radius:50%;display:flex;flex-direction:column;justify-content:center;text-align:center;font-size:18px;line-height:1.25;transform:rotate(10deg)}
.sticker strong{font-size:12px;margin-top:8px;font-weight:500}
.section{padding-top:104px;padding-bottom:104px}
.section-heading{display:flex;align-items:end;justify-content:space-between;gap:40px;margin-bottom:46px}
h2{font-weight:450;font-size:clamp(40px,4.6vw,66px);line-height:1.08;letter-spacing:-3px;color:var(--ink);margin:21px 0 0}
.section-heading>p{color:var(--muted);margin:0 25px 3px 0;font-size:15px}
.lesson-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.lesson-card{padding:34px 37px;border-radius:5px}
.adult{background:var(--surface);color:var(--ink)}
.child{background:var(--surface-soft);color:var(--ink)}
.card-top{display:flex;justify-content:space-between;align-items:center;gap:20px}
.pill{border:1px solid var(--line);padding:5px 12px;border-radius:30px;font-size:11px;letter-spacing:1px}
.duration{font-size:13px;opacity:.75}
.lesson-card h3{font-size:42px;font-weight:450;letter-spacing:-1.8px;line-height:1.1;margin:42px 0 20px}
.lesson-card p{font-size:15px;line-height:1.7;opacity:.8}
.card-bottom{display:flex;align-items:center;justify-content:space-between;padding-top:30px;margin-top:32px;border-top:1px solid var(--line)}
.price{font-size:34px;letter-spacing:-1px}
.price span{font-size:14px;letter-spacing:0;opacity:.8}
.circle-button{border:1px solid var(--accent);color:var(--accent);background:transparent;border-radius:50%;width:51px;height:51px;font-size:26px}
.circle-button:hover{background:var(--accent);color:var(--white)}
.source-note{font-size:12px;color:var(--muted);margin:19px 0 0}
.studio{background:var(--surface)}
.studio-grid{display:grid;grid-template-columns:1fr 1fr;gap:85px;align-items:center}
.studio-image{height:610px;position:relative}
.studio-image img{width:100%;height:100%;object-fit:cover;border-radius:160px 160px 4px 4px}
.studio-image>span{position:absolute;bottom:23px;left:25px;background:var(--paper);padding:8px 13px;font-size:10px;letter-spacing:1px}
.studio-copy h2{margin-bottom:30px}
.studio-copy>p{font-size:16px;color:var(--muted);max-width:430px}
.studio-details{border-top:1px solid var(--line);margin-top:28px}
.studio-details>div{display:flex;align-items:center;gap:24px;padding:14px 0;border-bottom:1px solid var(--line)}
.studio-details span{color:var(--muted);font-size:13px}
.studio-details p{margin:0;font-size:14px;line-height:1.5}
.text-link{color:var(--accent);display:inline-block;margin-top:26px;font-size:13px;border-bottom:1px solid;padding-bottom:5px}
.review-source{font-size:12px;display:flex;flex-direction:column;gap:7px}
.review-source strong{font-size:38px;line-height:1.2;font-weight:500;letter-spacing:-1px}
.review-source strong span{font-size:16px;letter-spacing:3px;vertical-align:middle;margin-left:14px;color:var(--ink)}
.review-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.review-card{border:1px solid var(--line);border-radius:4px;padding:30px;display:flex;flex-direction:column}
.review-card h3{font-size:21px;line-height:1.5;font-weight:500;letter-spacing:-.5px;margin:23px 0 16px}
.review-card>p{font-size:14px;color:var(--muted);line-height:1.8;margin-bottom:34px}
.review-author{display:flex;align-items:center;gap:12px;margin-top:auto;font-size:13px}
.avatar{background:var(--surface);border-radius:50%;width:40px;height:40px;display:grid;place-items:center;color:var(--ink)}
.review-author small{display:block;font-size:10px;color:var(--muted);margin-top:2px}
.contact-section{background:var(--surface);color:var(--ink);padding:58px 0 48px}
.contact-top{display:flex;justify-content:space-between;align-items:center}
.contact-top>span{font-size:11px;letter-spacing:1px;opacity:.6}
.contact-main{display:flex;justify-content:space-between;align-items:center;padding:25px 0 63px;gap:40px}
.contact-main h2{font-size:clamp(72px,9vw,126px);color:inherit;letter-spacing:-5px;line-height:.97}
.contact-main>div{padding-right:60px;padding-top:35px}
.contact-main p{opacity:.8;font-size:16px;margin-bottom:27px}
.button.accent{background:var(--accent);color:var(--white)}
.button.accent:hover{background:var(--accent-hover)}
.contact-info{border-top:1px solid var(--line);padding-top:31px;display:grid;grid-template-columns:1.4fr 1fr .6fr;gap:30px}
.contact-info small{display:block;font-size:10px;letter-spacing:1.6px;opacity:.6;margin-bottom:13px}
.contact-info p{font-size:14px;line-height:1.8;margin-bottom:9px}
.contact-info a{font-size:13px}
.contact-info a:hover{text-decoration:underline}
.contact-info .phone,.contact-info .telegram{font-size:22px;letter-spacing:-.5px}
footer{display:flex;justify-content:space-between;align-items:center;padding-top:37px;padding-bottom:37px;gap:25px}
footer .brand{font-size:31px}
footer .brand span{font-size:7px;letter-spacing:1.6px}
footer p{font-size:11px;color:var(--muted);margin:0}
footer>a:last-child{font-size:12px}
dialog{width:min(520px,calc(100% - 30px));padding:42px;border:0;border-radius:12px;background:var(--paper);color:var(--ink);max-height:90vh;overflow:auto}
dialog::backdrop{background:var(--backdrop)}
dialog h2{font-size:49px;margin-bottom:22px}
dialog .close{position:absolute;right:16px;top:9px;border:0;background:transparent;font-size:31px;color:var(--ink)}
.form-intro{font-size:14px;color:var(--muted)}
label{display:block;font-size:13px;margin:18px 0 7px}
select,input{width:100%;min-width:0;padding:12px 10px;border:1px solid var(--line);background:var(--white);border-radius:5px;color:var(--ink);font-size:14px;min-height:48px}
.form-row{display:grid;grid-template-columns:1.15fr 1fr;gap:15px}
.form-row>div{min-width:0}
form .button{margin-top:25px;width:100%}
#booking-result p{font-size:14px}
#summary{padding:17px;background:var(--surface);border-radius:6px;white-space:pre-line}
.reset-form{display:block;margin:20px auto 0;border:0;background:none;text-decoration:underline;color:var(--ink);font-size:14px}
[hidden]{display:none!important}

@media(min-width:1600px){.hero{gap:70px}
.hero-visual{min-height:690px}
}

@media(max-width:1100px){.wrap{width:calc(100% - 64px)}
nav{gap:20px;font-size:12px}
.hero{gap:25px}
.hero-visual{min-height:600px}
h1{font-size:69px;letter-spacing:-4px}
.sticker{right:-12px;width:123px;height:123px;font-size:16px}
.photo-caption{font-size:30px}
.studio-grid{gap:45px}
.studio-image{height:570px}
.lesson-card{padding:29px}
.lesson-card h3{font-size:36px}
.review-card{padding:22px}
.review-card h3{font-size:19px}
.contact-main>div{padding-right:0}
}

@media(max-width:800px){.wrap{width:calc(100% - 40px)}
.header{height:94px}
.brand{font-size:33px}
.brand span{font-size:8px;letter-spacing:1.7px}
nav{display:none}
.hero{padding-top:0;gap:28px;grid-template-columns:1fr 1fr;padding-bottom:40px}
.hero-copy{padding-top:25px}
h1{font-size:55px;letter-spacing:-3.5px}
.hero-description{font-size:16px}
.hero-sub{font-size:13px}
.hero .button{gap:20px;padding:15px 20px;font-size:14px}
.hero-visual{min-height:550px}
.sticker{width:112px;height:112px;top:26px;right:0;font-size:14px}
.sticker strong{font-size:10px}
.photo-bottom{left:20px;bottom:35px}
.photo-caption{left:20px;top:24px;font-size:25px}
.round-link{display:none}
.rating{margin-top:26px;gap:9px}
.rating-caption{font-size:10px}
.section{padding-top:65px;padding-bottom:65px}
.section-heading{gap:20px}
h2{font-size:45px;letter-spacing:-2px}
.section-heading>p{font-size:13px;margin-right:0}
.lesson-card{padding:25px}
.lesson-card h3{font-size:31px}
.price{font-size:28px}
.price span{font-size:11px}
.card-top{gap:8px}
.duration{font-size:11px}
.pill{font-size:9px}
.studio-grid{gap:30px}
.studio-image{height:570px}
.studio-copy h2{font-size:40px}
.studio-copy>p{font-size:14px}
.review-grid{gap:12px}
.review-card{padding:19px}
.review-card h3{font-size:17px}
.review-card>p{font-size:13px}
.review-author{align-items:start;font-size:11px}
.avatar{display:none}
.review-source strong{font-size:28px}
.review-source strong span{font-size:11px;letter-spacing:1px}
.contact-main h2{font-size:83px}
.contact-info .phone,.contact-info .telegram{font-size:18px}
.contact-main p{font-size:14px}
}

@media(max-width:600px){.header{height:88px}
.header .button{font-size:12px;min-height:44px;padding:10px 17px;gap:18px}
.hero{grid-template-columns:1fr;gap:36px}
.hero-copy{padding-top:21px}
.eyebrow{font-size:10px;letter-spacing:1.5px}
h1{font-size:clamp(54px,13vw,77px);margin-top:25px;margin-bottom:24px;letter-spacing:-3.5px}
.hero-description{font-size:18px;margin-bottom:15px}
.hero-sub{font-size:14px;margin-bottom:25px}
.hero .button{font-size:15px;padding:17px 24px;gap:45px}
.rating{margin-top:26px}
.rating-caption{font-size:11px}
.hero-visual{min-height:440px;margin-right:9px;border-radius:5px 5px 100px 5px}
.sticker{width:125px;height:125px;right:-9px;top:24px;font-size:16px}
.sticker strong{font-size:11px}
.photo-bottom{left:25px;bottom:35px}
.photo-caption{left:25px;top:24px;font-size:clamp(20px,5.8vw,24px)}
.round-link{display:grid;margin-right:15px}
.section{padding-top:61px;padding-bottom:61px}
.section-heading{display:block;margin-bottom:30px}
.section-heading>p{margin-top:23px;font-size:14px}
.section-heading>p br{display:none}
h2{font-size:45px;line-height:1.1}
.lesson-grid{grid-template-columns:1fr;gap:17px}
.lesson-card{padding:28px}
.lesson-card h3{font-size:39px;margin-top:33px}
.lesson-card p{font-size:14px}
.duration{font-size:12px}
.pill{font-size:10px}
.price{font-size:32px}
.price span{font-size:12px}
.card-bottom{margin-top:25px;padding-top:23px}
.source-note{font-size:12px;line-height:1.7}
.studio-grid{grid-template-columns:1fr;gap:34px}
.studio-image{height:410px}
.studio-image img{border-radius:120px 120px 4px 4px}
.studio-copy h2{font-size:45px}
.studio-copy>p{font-size:15px}
.studio-details p{font-size:14px}
.text-link{font-size:12px}
.review-source{margin-top:25px}
.review-grid{grid-template-columns:1fr;gap:16px}
.review-card{padding:27px}
.review-card h3{font-size:22px}
.review-card>p{font-size:14px;margin-bottom:25px}
.review-author{font-size:13px;align-items:center}
.avatar{display:grid}
.review-author small{font-size:11px}
.contact-section{padding-top:35px}
.contact-top>span{display:none}
.contact-main{display:block;padding:15px 0 37px}
.contact-main h2{font-size:clamp(68px,21vw,83px);letter-spacing:-4px}
.contact-main>div{padding-top:32px}
.contact-main p{font-size:15px}
.contact-info{grid-template-columns:1fr 1fr;gap:30px 15px}
.contact-info>div:first-child{grid-column:1/-1}
.contact-info .phone,.contact-info .telegram{font-size:17px}
footer{flex-wrap:wrap;padding-top:30px;padding-bottom:30px}
footer p{order:3;width:100%;font-size:11px}
dialog{padding:33px 24px}
dialog h2{font-size:44px}
}

@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}
*{transition:none!important}
}
/* Keep arrows and decorative symbols as text on iOS instead of emoji. */
body, body * { font-variant-emoji: text; }
