/* Extend the preferred published composition, without changing earlier variants. */
:root { --paper:#faf9f6; --muted:#62615c; --action-stripes:repeating-linear-gradient(135deg,#1717170d 0 1px,transparent 1px 8px); }
body { font-size:1rem; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.hero-audiences { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); max-width:520px; gap:12px!important; }
.hero-audiences .button { justify-content:space-between; width:100%; padding-inline:20px; }
.hero-audiences .button--kids { background:#d9e2d5; color:#25382c; border:1px solid #8d9e88; }
.hero-audiences .button--kids:hover { background:#c9d7c4; border-color:#657d60; }
.video-controls button { width:46px; height:46px; min-width:46px; display:grid; place-items:center; padding:0!important; background:#171717b8; }
.control-icon { width:24px; height:24px; }
.control-icon--sound,.control-icon--play { display:none; }
[data-sound-toggle][aria-pressed="true"] .control-icon--muted,[data-video-toggle][aria-pressed="false"] .control-icon--pause { display:none; }
[data-sound-toggle][aria-pressed="true"] .control-icon--sound,[data-video-toggle][aria-pressed="false"] .control-icon--play { display:block; }
.inline-contact { color:var(--red); text-decoration:underline; text-underline-offset:4px; }
.program-dates { margin-block:32px 64px; padding:clamp(22px,4vw,48px); border:1px solid var(--line); border-radius:5px; background:#f0efec; }
.program-dates>header { display:flex; justify-content:space-between; align-items:center; gap:20px; }
.program-dates h2 { font-size:clamp(1.8rem,3vw,2.7rem); }
.program-dates [role="status"] { margin:24px 0; color:var(--muted); }
.program-date { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:24px; padding:28px 0; border-top:1px solid var(--line); }
.program-date h3 { font-size:1.35rem; font-weight:500; letter-spacing:-.02em; }
.program-date p { margin:10px 0; font-size:.9375rem; color:var(--muted); }
.program-date>div:last-child { text-align:right; }
.program-date strong { font-size:1.3rem; font-weight:500; }
.program-date .button { margin-top:12px; }
.program-date-help { border-top:1px solid var(--line); padding-top:24px; font-size:.9375rem; }
.program-date-help a { text-decoration:underline; text-underline-offset:4px; }
@media(max-width:950px) { .yandex-reviews { grid-template-columns:1fr!important; } .yandex-reviews>header { position:static!important; } }
@media(max-width:680px) { .hero-audiences { grid-template-columns:1fr; max-width:340px; } .program-date { grid-template-columns:1fr; gap:12px; } .program-date>div:last-child { text-align:left; } .program-dates>header { align-items:flex-start; } .program-dates>header>.text-link { white-space:nowrap; } }
.site-header { background:var(--paper); }
@media(max-width:400px) { .site-header .brand img { width:96px; height:44px; } .site-header { gap:8px; } .header-contact>summary.button--small { padding-inline:10px; font-size:12px; } }
.desktop-nav a[aria-current],.mobile-menu a[aria-current],.category-nav a[aria-current] { color:var(--red); }
.mobile-menu a[aria-current] { font-weight:500; }
.more-nav { position:relative; }
.more-nav summary { cursor:pointer; display:flex; align-items:center; gap:6px; list-style:none; }
.more-nav summary::-webkit-details-marker { display:none; }
.more-nav:has([aria-current])>summary { color:var(--red); }
.more-nav-panel { background:var(--paper); }
.desktop-nav .more-nav-panel { position:absolute; top:calc(100% + 18px); right:0; width:270px; padding:16px 22px; border:1px solid var(--line); box-shadow:0 12px 28px #00000012; border-radius:4px; }
.desktop-nav .more-nav-panel a { display:block; padding:12px 0; }
.more-nav[open] .more-nav-panel { animation:more-enter .55s cubic-bezier(.22,.61,.36,1); }
.mobile-menu .more-nav summary { font-size:20px; min-height:52px; justify-content:space-between; }
.mobile-menu .more-nav-panel { padding-left:18px; border-left:2px solid var(--line); }
.mobile-menu .more-nav-panel a { font-size:17px; }
@keyframes more-enter { from { opacity:0; transform:translateY(-8px); } to { opacity:1; transform:translateY(0); } }
@media(prefers-reduced-motion:reduce) { .more-nav-panel { animation:none!important; } }
.home-review-cards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; padding:16px; background:var(--action-stripes),var(--paper); }
.home-review-cards article { border:1px solid var(--line); padding:28px; display:flex; flex-direction:column; background:var(--paper); }
.home-review-cards article>p { font-size:1.3rem; line-height:1.45; margin-bottom:28px; flex:1; }
.home-review-cards article>div { display:grid; gap:5px; font-size:.9375rem; }
.home-review-cards span,.review-snapshot-note { color:var(--muted); }
.review-snapshot-note { font-size:.875rem; margin-top:22px; }
.review-snapshot-note a { text-decoration:underline; text-underline-offset:3px; }
.review-sources { display:flex; gap:36px; justify-content:space-between; align-items:center; }
.review-sources h2 { font-size:clamp(1.8rem,3.3vw,3rem); }
.review-sources p:last-child { max-width:620px; margin-top:24px; line-height:1.6; }
.review-sources blockquote { max-width:620px; margin:30px 0 20px; font-size:clamp(1.25rem,2vw,1.8rem); line-height:1.5; }
.review-context { font-size:.875rem!important; line-height:1.6; color:var(--muted); }
.reviews-server-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.review-card { display:flex; min-width:0; flex-direction:column; padding:26px; border:1px solid var(--line); border-radius:5px; background:var(--paper); }
.review-card>div { display:flex; justify-content:space-between; gap:16px; font-size:.8125rem; }
.review-card strong { font-weight:500; }
.review-card time { color:var(--muted); white-space:nowrap; }
.review-card blockquote { flex:1; margin:22px 0 26px; font-size:1.05rem; line-height:1.58; }
.review-card>a { width:fit-content; border-bottom:1px solid var(--line); padding-bottom:6px; color:var(--muted); font-size:.8125rem; }
.yandex-reviews-content>.review-context { margin:20px 0 34px; }
.reviews-live { border-top:1px solid var(--line); padding-top:24px; }
.reviews-live>summary { width:fit-content; display:flex; align-items:center; gap:10px; cursor:pointer; color:var(--red); font-weight:500; list-style:none; }
.reviews-live>summary::-webkit-details-marker { display:none; }
.reviews-live>summary i::before { content:'+'; font-style:normal; }
.reviews-live[open]>summary i::before { content:'−'; }
.reviews-live .yandex-reviews-widget { margin-top:24px; }
@media(max-width:680px) { .home-review-cards { grid-template-columns:1fr; gap:16px; } .home-review-cards article { padding:24px; } .review-sources { display:block; } .review-sources>.text-link { margin-top:24px; } }
.kids-art-intro { position:relative; isolation:isolate; }
.kids-art-intro::before { content:""; position:absolute; inset:0; z-index:-1; background:url('/assets-v/3d7759e495afda6f8dc3/kids-archive-pattern.png') right center/460px auto repeat; opacity:.5; mask-image:linear-gradient(90deg,transparent 35%,#000 90%); }
.kids-art-intro>p:last-child { max-width:650px; }
.kids-together { display:grid; grid-template-columns:240px minmax(0,650px); justify-content:center; align-items:center; gap:clamp(25px,6vw,90px); padding-block:45px 75px; border-block:1px solid var(--line); }
.kids-together img { width:100%; height:auto; }
.kids-together h2 { font-size:clamp(1.8rem,3vw,3rem); margin-bottom:24px; }
.kids-together p:last-child { font-size:1.0625rem; line-height:1.65; }
.kids-archive-accent { position:relative; isolation:isolate; }
.kids-archive-accent::before { content:""; position:absolute; inset:0; z-index:-1; background:url('/assets-v/3d7759e495afda6f8dc3/kids-archive-pattern.png') center/460px auto repeat; opacity:.25; mask-image:linear-gradient(90deg,#000,transparent 45%); }
@media(max-width:680px) { .kids-art-intro::before { opacity:.35; mask-image:linear-gradient(90deg,transparent 50%,#000); background-size:350px auto; } .kids-together { grid-template-columns:1fr; gap:8px; padding-block:24px 40px; } .kids-together img { width:180px; justify-self:center; } }
.eyebrow { font-size:.8125rem; }
.preview-note { font-size:.75rem; }
.desktop-nav { font-size:.875rem; gap:clamp(12px,1.3vw,22px); }
.desktop-nav a { white-space:nowrap; }
.button,.text-link { font-size:.9375rem; }
.button--small { font-size:.875rem; }
.hero-description,.body-copy,.concern-list p,.program-description,.kids-content>p:not(.eyebrow):not(.kids-lead),.stage-copy p:not(.eyebrow),.studio-copy>p:not(.eyebrow),.faq-list details>div { font-size:1rem; }
.hero-foot,.format-label,.program-kicker,.teacher p,.teacher span,.price-note,.program-price>span,.studio-links a,.footer-top>div>a,.footer-bottom,.video-controls button,.video-caption,.video-status { font-size:.8125rem; }
.hero-kids { margin-top:14px; font-size:.875rem; }
.hero h1 { font-size:clamp(2.4rem,5.2vw,5.3rem); }
.hero-description { max-width:31rem; }
.hero-foot { padding-top:26px; }
.program.program--illustrated { padding:0; border:1px solid var(--line); border-radius:5px; overflow:hidden; min-width:0; }
.program-photo { display:block; width:100%; margin:0; overflow:hidden; }
.program-photo img { display:block; width:100%; height:auto; aspect-ratio:3/2; object-fit:cover; filter:none; }
.program-photo img[src*="format-individual"] { object-position:50% 87%; }
.program-copy { display:flex; flex-direction:column; flex:1; border:0; padding:28px; }
.program--featured .program-copy { border:0; padding:28px; }
.program.program--featured { border-color:var(--red); }
.program-description { max-width:40ch; min-height:0; margin-bottom:24px; }
.program-copy h3 { min-height:2.3em; font-size:clamp(1.6rem,2.5vw,2.35rem); }
.program-copy .price-note { max-width:42ch; }
.basic-spotlight { display:grid; grid-template-columns:1fr 1fr; gap:0; border:1px solid var(--line); border-radius:5px; overflow:hidden; padding:0; margin-block:var(--space); align-items:stretch; }
.basic-copy { padding:clamp(24px,3.5vw,52px); }
.basic-copy h2 { font-size:clamp(2.4rem,4.6vw,4.4rem); }
.basic-copy .body-copy { max-width:31rem; }
.basic-cadence { max-width:31rem; margin-top:22px; font-size:1rem; }
.course-rhythm { margin-top:52px; padding-top:36px; border-top:1px solid var(--line); }
.course-rhythm h2 { font-size:clamp(1.8rem,3.1vw,2.8rem); max-width:50rem; }
.rhythm-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:40px; margin-top:32px; }
.rhythm-grid article { border-top:2px solid var(--line); padding-top:22px; }
.rhythm-grid article:first-child { border-color:var(--red); }
.rhythm-label { font-size:.875rem; margin-bottom:14px; color:var(--muted); }
.rhythm-grid h3 { font-size:clamp(1.4rem,2.2vw,1.8rem); line-height:1.25; font-weight:500; letter-spacing:-.03em; }
.rhythm-grid h3+p { margin-top:16px; color:var(--muted); font-size:1rem; }
.rhythm-day { margin-top:22px; font-size:.9375rem; }
.basic-tags { display:flex; flex-wrap:wrap; gap:10px 20px; margin:26px 0; font-size:.875rem; color:var(--muted); }
.basic-tags span { padding-bottom:8px; border-bottom:1px solid var(--line); }
.basic-meeting { margin-top:18px; }
.basic-visual { min-width:0; display:flex; flex-direction:column; }
.basic-visual figure { position:relative; flex:1; min-height:330px; }
.basic-visual img { width:100%; height:100%; position:absolute; inset:0; object-fit:cover; border-radius:0; }
.basic-visual figcaption { position:absolute; inset:auto 20px 16px; background:#171717cf; color:white; padding:8px 12px; font-size:.75rem; width:fit-content; }
.basic-offer { padding:28px 32px; border:0; background:var(--ink); color:white; }
.basic-offer .eyebrow { margin-bottom:14px; color:#d8d6d1; }
.basic-offer h3 { font-size:clamp(1.5rem,2.5vw,2rem); font-weight:500; letter-spacing:-.035em; line-height:1.2; }
.basic-offer>p:last-child { font-size:.9375rem; margin-top:18px; }
.kids-section { background:var(--paper); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.teachers-stripes { background:var(--action-stripes),var(--paper); }
.teacher { background:var(--paper); }
.teacher p { min-height:4.25rem; }
.faq-list summary { width:100%; grid-template-columns:minmax(0,1fr) 22px; }
.faq-list summary>span { min-width:0; }
.final-cta { background:var(--red); }
.final-cta h2 span { color:#f1d8d4; }
.final-cta .button { background:white; color:var(--ink); }
.final-cta .button:hover { background:var(--paper); }
.final-cta .text-link,.final-cta .text-link span { color:white; border-color:#ffffff80; }
.final-cta .text-link:hover { border-color:white; }
.final-cta p.final-note { font-size:.8125rem; color:#f0d6d2; }
.footer-bottom { flex-wrap:wrap; }
.footer-messengers { display:flex; align-items:center; gap:10px; }
.footer-messengers a { display:inline-flex; align-items:center; gap:8px; min-height:42px; padding:9px 14px; border:1px solid var(--line); border-radius:999px; font-size:.8125rem; transition:border-color .25s ease,color .25s ease,background-color .25s ease; }
.footer-messengers a:hover { border-color:var(--red); color:var(--red); background:rgba(188,61,50,.035); }
.yandex-reviews { display:grid; grid-template-columns:minmax(260px,.72fr) minmax(520px,1.28fr); gap:clamp(42px,7vw,110px); align-items:start; }
.yandex-reviews>header { position:sticky; top:calc(var(--header-height,88px) + 34px); }
.yandex-reviews h2 { font-size:clamp(2.7rem,5vw,5rem); line-height:.96; letter-spacing:-.055em; font-weight:500; }
.yandex-reviews>header>p:not(.eyebrow) { margin:26px 0; max-width:34ch; color:var(--muted); line-height:1.55; }
.yandex-reviews-widget { position:relative; min-height:620px; border:1px solid var(--line); border-radius:5px; overflow:hidden; background:var(--paper); }
.yandex-reviews-widget iframe { position:absolute; inset:0 0 34px; width:100%; height:calc(100% - 34px); border:0; opacity:0; pointer-events:none; transition:opacity .3s ease; }
.yandex-reviews-widget[data-reviews-state="ready"] iframe { opacity:1; pointer-events:auto; }
.reviews-fallback { min-height:584px; display:flex; flex-direction:column; padding:clamp(24px,4vw,48px); }
.yandex-reviews-widget[data-reviews-state="ready"] .reviews-fallback { visibility:hidden; }
.reviews-rating { display:grid; grid-template-columns:auto 1fr; gap:5px 18px; align-items:center; padding-bottom:28px; border-bottom:1px solid var(--line); }
.reviews-rating strong { font-size:3rem; line-height:1; font-weight:500; letter-spacing:-.05em; }
.reviews-rating span { color:var(--red); letter-spacing:.12em; }
.reviews-rating p { grid-column:1/-1; margin-top:10px; font-size:.875rem; color:var(--muted); }
.reviews-fallback-actions { margin-top:auto; padding-top:28px; display:flex; justify-content:space-between; gap:20px; align-items:center; font-size:.875rem; }
.reviews-fallback-actions a { border-bottom:1px solid var(--line); padding-bottom:7px; }
.reviews-fallback-actions button { border:0; background:none; color:var(--red); cursor:pointer; font:inherit; padding:7px 0; }
.reviews-credit { position:absolute; inset:auto 16px 10px; color:var(--muted); font-size:.6875rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.hero-visual video,.stage-story figure img,.basic-visual img,.kids-photo img,.detail-hero figure img,.kids-wide img { filter:none; }
.kids-photo img { object-position:48% 50%; }
.teacher>img,.teacher-profile-photo { filter:none; }
.teacher-directory { padding:40px 0; }
.teacher-directory-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:36px 28px; }
.teacher-directory-card { background:var(--paper); min-width:0; }
.teacher-profile-photo { width:100%; height:auto; aspect-ratio:1/1.07; object-fit:cover; }
.teacher-directory-card>div { padding:26px; }
.teacher-directory-card>div>p { max-width:40ch; }
.teacher-directory-card h2 { font-size:clamp(1.65rem,2.5vw,2.2rem); line-height:1.14; }
.teacher-role { margin-top:16px; color:var(--muted); font-size:1rem; }
.teacher-subject { margin-top:23px; border-top:1px solid var(--line); padding-top:20px; font-size:1rem; }
.teacher-subject small { display:block; font-size:.875rem; color:var(--muted); margin-bottom:8px; }
.teacher-education { margin-top:18px; font-size:.9375rem; color:var(--muted); }
.teacher-directory-card .text-link { font-size:.875rem; margin-top:24px; gap:15px; }
.teacher-schedule-note { display:grid; grid-template-columns:1fr 1fr; gap:10%; }
.teacher-schedule-note p { font-size:1.125rem; color:var(--muted); margin-bottom:24px; }
.faq-directory { max-width:1100px; padding-bottom:var(--space); }
.faq-category { display:block; margin-bottom:10px; font-size:.875rem; letter-spacing:.02em; color:var(--muted); font-weight:400; }
.faq-directory .faq-list details>div { padding-right:48px; font-size:1rem; }
.faq-directory .faq-list details>div p+p { margin-top:18px; }
.faq-list details>div>p,.faq-directory .faq-list details>div>p { max-width:62ch; line-height:1.65; }
.faq-list .text-link { margin-top:20px; }
.faq-contact { margin-top:64px; padding-top:36px; border-top:1px solid var(--line); }
.faq-contact h2 { font-size:clamp(2rem,4vw,3rem); }
.faq-contact p { margin:22px 0; color:var(--muted); }
@media(max-width:1000px) { .teacher-directory-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:680px) { .teacher-directory-grid,.teacher-schedule-note { grid-template-columns:1fr; gap:30px; } .teacher-directory-card>div { padding:24px; } .faq-directory .faq-list details>div { padding-right:0; } }
.basic-visual img { object-position:50% 0%; }
.need-list { border-top:1px solid var(--line); }
.need-list details { border-bottom:1px solid var(--line); }
.need-list summary { display:grid; grid-template-columns:minmax(0,1fr) 22px; gap:24px; align-items:center; padding:25px 0; list-style:none; cursor:pointer; font-size:clamp(1.2rem,1.8vw,1.65rem); font-weight:500; letter-spacing:-.03em; line-height:1.3; }
.need-list summary::-webkit-details-marker { display:none; }
.need-list summary::marker { content:''; }
.need-list summary i { display:block; position:relative; width:20px; height:20px; }
.need-list summary i::before,.need-list summary i::after { content:''; position:absolute; width:18px; height:1px; top:9px; left:1px; background:var(--red); }
.need-list summary i::after { transform:rotate(90deg); transition:transform .3s; }
.need-list details[open] summary i::after { transform:rotate(0); }
.need-content { padding:0 0 25px; }
.need-content>p:first-child { color:var(--muted); max-width:31rem; font-size:1rem; }
.recommended { display:flex; gap:24px; align-items:center; justify-content:space-between; padding:18px 20px; margin:20px 0; border:1px solid var(--line); border-left:3px solid var(--red); }
.recommended:hover { border-color:var(--red); }
.recommended small { display:block; font-size:.8125rem; color:var(--muted); margin-bottom:5px; }
.recommended strong { font-size:1.2rem; font-weight:500; line-height:1.3; }
.recommended>span:last-child { color:var(--red); font-size:1.5rem; }
.need-more-label { font-size:.8125rem; color:var(--muted); margin-bottom:8px; }
.need-more { display:flex; flex-wrap:wrap; gap:8px 20px; }
.need-more a { font-size:.875rem; min-height:36px; display:inline-flex; align-items:center; gap:12px; border-bottom:1px solid var(--line); }
.need-more a:hover { color:var(--red); }
.need-note { font-size:.875rem; color:var(--muted); padding-top:22px; }
.need-note a { margin-left:6px; }
.final-actions { display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:20px 32px; }
.final-actions .text-link { margin:0; }
.final-cta p { max-width:50rem; margin-left:auto!important; margin-right:auto!important; }
.bordered { border-top:1px solid var(--line); }
.catalog-intro { padding-top:72px; padding-bottom:58px; }
.catalog-intro h1 { font-size:clamp(2.75rem,7vw,6.5rem); letter-spacing:-.055em; line-height:1.04; font-weight:500; }
.catalog-intro>p:last-child { max-width:44rem; font-size:1.125rem; color:var(--muted); margin-top:28px; }
.category-nav { display:flex; flex-wrap:nowrap; overflow-x:auto; gap:16px 32px; padding-top:12px; padding-bottom:12px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.category-nav a { display:inline-flex; flex-shrink:0; min-height:44px; align-items:center; font-size:.9375rem; white-space:nowrap; }
.category-nav a:hover { color:var(--red); }
.category-nav a.is-active { color:var(--red); text-decoration:underline; text-underline-offset:7px; }
.catalog-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:48px 30px; }
.catalog-grid--two { grid-template-columns:repeat(2,minmax(0,1fr)); }
.catalog-card { border-top:1px solid var(--ink); padding-top:27px; min-width:0; display:flex; flex-direction:column; align-items:flex-start; }
.catalog-card--basic { border-top:3px solid var(--red); padding-top:25px; }
.catalog-card .eyebrow { margin-bottom:18px; }
.catalog-card h3 { width:100%; font-size:clamp(1.6rem,2.5vw,2.4rem); line-height:1.15; letter-spacing:-.045em; font-weight:500; }
.catalog-card h3 a { display:flex; justify-content:space-between; align-items:flex-start; gap:24px; }
.catalog-card h3 span { flex-shrink:0; color:var(--red); font-size:1.5rem; }
.catalog-card>p:not(.eyebrow) { color:var(--muted); margin:20px 0 26px; }
.catalog-card-bottom { margin-top:auto; width:100%; display:flex; flex-direction:column; gap:8px; }
.catalog-card-bottom>span { color:var(--muted); font-size:.875rem; }
.catalog-card-bottom>strong { font-size:1.4rem; font-weight:500; }
.catalog-card>small { font-size:.8125rem; margin-top:10px; color:var(--muted); min-height:2.8em; }
.catalog-card .text-link { margin-top:18px; }
.section-note,.source-note { font-size:.875rem; color:var(--muted); margin:24px 0; }
.section-note.section-shell { margin-left:auto; margin-right:auto; }
.detail-offer { padding:30px 0 8px 30px; margin-top:40px; border-left:3px solid var(--red); max-width:62rem; }
.detail-offer .eyebrow { color:var(--red); margin-bottom:14px; }
.detail-offer h3 { font-weight:500; letter-spacing:-.035em; font-size:clamp(1.5rem,2.6vw,2.1rem); line-height:1.2; }
.detail-offer>p:last-child { margin-top:14px; max-width:49rem; }
.individual-strip { display:grid; grid-template-columns:1fr 1.6fr; gap:8%; align-items:center; }
.individual-strip>img { width:180px; height:180px; object-fit:contain; margin:auto; }
.individual-strip .button { margin-top:28px; }
.kids-wide figure { position:relative; }
.kids-wide img { width:100%; height:auto; aspect-ratio:2.1; object-fit:cover; object-position:50% 30%; }
.kids-wide figcaption { position:absolute; bottom:18px; left:20px; color:#fff; background:#171717ce; padding:6px 10px; font-size:.8125rem; }
.kids-intro-note { display:grid; grid-template-columns:1fr 1fr; gap:10%; }
.kids-intro-note>div>p:not(.eyebrow) { margin-bottom:22px; }
.kids-intro-note .text-link { margin-top:18px; }
.breadcrumbs { display:flex; gap:10px; flex-wrap:wrap; font-size:.8125rem; color:var(--muted); padding-top:30px; padding-bottom:24px; }
.breadcrumbs a { text-decoration:underline; text-underline-offset:4px; }
.detail-hero { display:grid; grid-template-columns:1fr 1fr; gap:7%; padding-top:28px; padding-bottom:56px; align-items:start; }
.detail-hero h1 { font-size:clamp(2.3rem,4.4vw,4.5rem); font-weight:500; letter-spacing:-.05em; line-height:1.05; overflow-wrap:break-word; }
.detail-hero .detail-lead { font-size:1.25rem; line-height:1.4; margin:28px 0 20px; letter-spacing:-.02em; }
.detail-hero p:not(.detail-lead):not(.eyebrow):not(.booking-note) { color:var(--muted); }
.detail-hero .booking-note { font-size:.8125rem; margin-top:16px; color:var(--muted); }
.detail-hero figure { position:relative; }
.detail-hero figure img { width:100%; aspect-ratio:1.1; height:auto; object-fit:cover; border-radius:4px; object-position:50% 20%; }
.detail-hero figcaption { font-size:.75rem; margin-top:10px; color:var(--muted); }
.detail-facts { margin:0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.detail-facts>div { padding:26px 24px; border-right:1px solid var(--line); min-width:0; }
.detail-facts>div:first-child { padding-left:0; }
.detail-facts>div:last-child { border:0; }
.detail-facts dt { font-size:.8125rem; color:var(--muted); margin-bottom:20px; text-transform:uppercase; letter-spacing:.08em; }
.detail-facts dd { margin:0; font-size:clamp(1rem,1.45vw,1.3rem); font-weight:500; line-height:1.4; }
.detail-facts dd small { display:block; margin-top:14px; color:var(--muted); font-size:.8125rem; font-weight:400; }
.fact-lines { display:flex; flex-direction:column; gap:12px; }
.fact-lines>span { display:block; }
.detail-split { display:grid; grid-template-columns:1fr 1fr; gap:10%; }
.detail-split h2,.detail-fit h2,.related-programs h2 { font-size:clamp(1.8rem,3vw,2.4rem); }
.detail-fit { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10%; }
.detail-fit .plain-list { margin-top:28px; }
.detail-split>div:last-child>p { max-width:62ch; }
.plain-list { padding:0; margin:0; list-style:none; }
.plain-list li { padding:19px 0; border-bottom:1px solid var(--line); line-height:1.5; font-size:1.125rem; }
.plain-list li:first-child { border-top:1px solid var(--line); }
.practice-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:38px 50px; }
.practice-grid--three { grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; }
.practice-section .section-heading { margin-bottom:26px; }
.practice-intro { max-width:66ch; color:var(--muted); font-size:1.125rem; line-height:1.6; margin-bottom:38px; }
.practice-grid article { min-width:0; }
.practice-grid p,.text-sections p { max-width:60ch; line-height:1.6; }
.practice-grid article { border-top:1px solid var(--line); padding-top:22px; }
.practice-grid h3,.text-sections h3 { font-size:1.6rem; font-weight:500; letter-spacing:-.035em; line-height:1.25; }
.practice-grid p,.text-sections p { margin-top:16px; color:var(--muted); }
.practice-grid .practice-result { color:var(--ink); }
.practice-grid small { display:block; font-size:.875rem; color:var(--muted); margin-top:14px; }
.program-motif { width:170px; height:150px; object-fit:contain; }
.detail-drawing { width:160px; height:160px; object-fit:contain; margin:32px 0 0 20%; }
.teacher-note { color:var(--muted); margin:28px 0 18px; }
.teacher-links { display:flex; flex-wrap:wrap; gap:16px; }
.text-sections article { margin-bottom:32px; }
.basic-bridge { display:flex; align-items:center; justify-content:space-between; gap:24px 40px; border-block:1px solid var(--line); padding:28px 0; margin-bottom:42px; }
.basic-bridge h3 { font-size:1.8rem; line-height:1.2; font-weight:500; letter-spacing:-.03em; }
.basic-bridge .eyebrow { margin-bottom:12px; }
.basic-bridge p:not(.eyebrow) { max-width:49ch; margin-top:14px; color:var(--muted); }
.basic-bridge .button { flex-shrink:0; }
.catalog-photo { display:block; width:100%; margin-bottom:25px; }
.catalog-photo img { width:100%; height:auto; aspect-ratio:1.5; object-fit:cover; filter:none; }
.schedule-intro { display:grid; grid-template-columns:1fr 1fr; gap:10%; padding-top:64px; padding-bottom:48px; align-items:end; }
.schedule-intro h1 { font-size:clamp(2.75rem,6vw,5.5rem); font-weight:500; line-height:1.04; letter-spacing:-.055em; }
.schedule-intro>div:last-child { color:var(--muted); }
.schedule-intro .text-link { margin-top:18px; }
.schedule-toolbar { position:sticky; top:84px; z-index:12; background:var(--paper); padding:22px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.filter-row { display:flex; justify-content:space-between; gap:16px; align-items:center; flex-wrap:wrap; }
.filter-row--secondary { margin-top:14px; gap:12px 32px; }
[data-filter] { display:flex; gap:7px; flex-wrap:wrap; }
[data-filter] button { display:inline-flex; align-items:center; justify-content:center; padding:10px 16px; min-height:44px; border:1px solid var(--line); border-radius:3px; background:transparent; color:var(--ink); font-size:.9375rem; transition:background .2s,color .2s; }
[data-filter] button[aria-pressed=true] { background:var(--ink); color:white; border-color:var(--ink); }
[data-filter] button:hover { border-color:var(--ink); }
[data-filter=month] button { text-transform:capitalize; }
#event-count { font-size:.875rem; color:var(--muted); }
.schedule-source { margin:20px 0 28px; max-width:55rem; color:var(--muted); font-size:.8125rem; }
.schedule-month-title { font-size:2.1rem; text-transform:capitalize; margin:32px 0; }
.events-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:36px 28px; }
.event-card { border:1px solid var(--line); border-radius:5px; overflow:hidden; min-width:0; display:flex; flex-direction:column; }
.event-date { display:flex; justify-content:space-between; align-items:center; padding:20px 26px; gap:20px; }
.event-date time { display:flex; align-items:center; gap:16px; }
.event-date time>strong { font-size:3.2rem; font-weight:450; line-height:1; letter-spacing:-.055em; }
.event-date time>span { font-size:1rem; line-height:1.4; }
.event-spots { padding:6px 10px; border:1px solid var(--line); border-radius:3px; font-size:.8125rem; }
.event-spots--full { color:var(--muted); }
.event-photo { display:block; width:100%; }
.event-photo img { width:100%; aspect-ratio:1.5; height:auto; object-fit:cover; filter:none; }
.event-copy { padding:27px; display:flex; flex-direction:column; flex:1; }
.event-copy .eyebrow { margin-bottom:16px; color:var(--muted); }
.event-copy h3 { font-size:clamp(1.75rem,2.8vw,2.5rem); font-weight:500; letter-spacing:-.045em; line-height:1.12; }
.event-copy h3 a:hover { color:var(--red); }
.event-description { margin:18px 0 26px; color:var(--muted); }
.event-facts { display:grid; grid-template-columns:1fr 1fr; gap:18px; padding:21px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); margin:auto 0 0; }
.event-facts dt { font-size:.8125rem; color:var(--muted); margin-bottom:8px; }
.event-facts dd { margin:0; font-size:.9375rem; }
.event-bottom { display:flex; justify-content:space-between; gap:20px; align-items:center; padding-top:24px; flex-wrap:wrap; }
.event-bottom strong { font-size:1.75rem; font-weight:500; letter-spacing:-.03em; }
.event-bottom small { display:block; color:var(--muted); font-size:.8125rem; margin-top:6px; }
.schedule-outside { margin:50px 0 70px; border-top:1px solid var(--line); padding-top:28px; color:var(--muted); font-size:.875rem; }
.schedule-outside .text-link { margin-top:16px; }
.schedule-empty { padding:55px 0; }
.schedule-empty p { margin:20px 0; }
@media(max-width:1280px) { .desktop-nav { display:none; } .menu-toggle { display:flex; } }
@media(min-width:681px) and (max-width:1050px) {
 .program-grid { grid-template-columns:1fr; gap:40px; }
 .program.program--illustrated { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:28px; align-items:start; }
 .program-photo { margin:0; }
 .program-copy h3 { min-height:0; }
 .practice-grid--three { grid-template-columns:1fr; }
}
@media(max-width:920px) { .basic-spotlight { gap:5%; } .basic-copy h2 { font-size:2.65rem; } }
@media(max-width:1050px) { .detail-facts { grid-template-columns:repeat(2,minmax(0,1fr)); } .detail-facts>div { padding:24px; border-bottom:1px solid var(--line); } .detail-facts>div:first-child { padding-left:24px; } .detail-facts>div:nth-child(2n) { border-right:0; } .detail-facts>div:nth-child(n+3) { border-bottom:0; } .catalog-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:680px) {
 .footer-messengers { flex-wrap:wrap; }
 .basic-spotlight { grid-template-columns:1fr; gap:36px; }
 .rhythm-grid { grid-template-columns:1fr; gap:28px; }
 .basic-copy h2 { font-size:clamp(2.25rem,9vw,3.6rem); }
 .basic-offer { padding:24px; }
 .hero-description { font-size:1rem; }
 .hero-actions { gap:20px; }
 .hero-actions .button,.hero-actions .text-link { font-size:.9375rem; }
 .hero-foot { flex-wrap:wrap; gap:8px 16px; }
 .hero h1 { font-size:clamp(2rem,9.7vw,4rem); }
 .section-intro .body-copy,.stage-copy p:not(.eyebrow),.program-description,.kids-content>p:not(.eyebrow):not(.kids-lead),.studio-copy>p:not(.eyebrow),.faq-list details>div { font-size:1rem; }
 .format-label,.concern-list p,.teacher p,.teacher span,.studio-links a { font-size:.875rem; }
 .teacher>div { padding:18px 12px; }
 .teacher p { min-height:5.5rem; }
 .button--small { font-size:.8125rem; }
 .preview-note { font-size:.75rem; }
 .faq-list summary { font-size:1.25rem; gap:20px; }
 .catalog-intro { padding-top:40px; padding-bottom:36px; }
 .catalog-intro h1 { font-size:clamp(2.65rem,10.2vw,4rem); }
 .catalog-intro>p:last-child { font-size:1rem; }
 .category-nav { gap:4px 24px; }
 .catalog-grid { grid-template-columns:1fr; gap:38px; }
 .catalog-card h3 { font-size:2rem; }
 .catalog-card>small { min-height:0; }
 .individual-strip,.kids-intro-note,.detail-hero,.detail-split,.detail-fit { grid-template-columns:1fr; gap:32px; }
 .program-copy h3 { min-height:0; font-size:2rem; }
 .program-photo { margin-bottom:20px; }
 .program-copy { padding-top:22px; }
 .detail-fit { gap:40px; }
 .detail-fit .plain-list { margin-top:20px; }
 .practice-intro { font-size:1rem; margin-bottom:30px; }
 .basic-bridge { align-items:flex-start; flex-direction:column; }
 .individual-strip>img { margin:0; width:125px; height:125px; }
 .kids-wide img { aspect-ratio:1.15; }
 .kids-wide figcaption { font-size:.75rem; }
 .detail-hero { padding-top:12px; padding-bottom:38px; }
 .detail-hero h1 { font-size:clamp(2.1rem,9vw,3.7rem); }
 .detail-hero figure img { aspect-ratio:1.35; }
 .detail-hero .hero-actions { gap:15px; }
 .detail-facts { grid-template-columns:1fr; }
 .detail-facts>div,.detail-facts>div:first-child { padding:22px 0; border-right:0; border-bottom:1px solid var(--line); }
 .detail-facts>div:nth-child(3) { border-bottom:1px solid var(--line); }
 .detail-facts>div:last-child { border-bottom:0; }
 .detail-facts dt { margin-bottom:12px; }
 .detail-facts dd { font-size:1.25rem; }
 .detail-offer { margin-top:28px; padding:8px 0 8px 20px; }
 .practice-grid { grid-template-columns:1fr; gap:28px; }
 .detail-split h2,.detail-fit h2,.related-programs h2 { font-size:2rem; }
 .detail-drawing { width:100px; height:100px; margin:24px 0 0 auto; }
 .plain-list li { font-size:1rem; }
 .need-list summary { font-size:1.25rem; }
 .recommended { padding:16px; }
 .recommended strong { font-size:1.125rem; }
 .final-actions { flex-direction:column; gap:20px; }
 .final-cta p { font-size:1rem!important; }
 .final-cta p.final-note { font-size:.8125rem!important; }
 .schedule-intro { grid-template-columns:1fr; gap:24px; padding-top:38px; padding-bottom:30px; }
 .schedule-intro h1 { font-size:clamp(2.6rem,11vw,4rem); }
 .schedule-intro>div:last-child p { font-size:1rem; }
 .schedule-toolbar { top:80px; transition:transform .7s cubic-bezier(.2,.65,.2,1),opacity .5s ease; will-change:transform; }
 .schedule-toolbar.is-hidden:not(:focus-within) { transform:translateY(calc(-100% - 82px)); opacity:0; pointer-events:none; }
 .filter-row { gap:12px; }
 .filter-row--secondary { align-items:flex-start; flex-direction:column; }
 [data-filter] button { font-size:.875rem; padding:10px 13px; }
 [data-filter=month] { flex-wrap:nowrap; overflow-x:auto; max-width:100%; padding-bottom:4px; }
 [data-filter=month] button { white-space:nowrap; }
 .events-grid { grid-template-columns:1fr; gap:28px; }
 .event-date { padding:19px 22px; }
 .event-copy { padding:23px; }
 .event-copy h3 { font-size:2rem; }
 .event-date time>strong { font-size:3rem; }
 .event-facts { grid-template-columns:1fr; gap:17px; }
 .event-facts>div { display:grid; grid-template-columns:85px 1fr; gap:10px; }
 .event-facts dt { margin:0; }
 .event-bottom .button { padding:15px 17px; gap:16px; }
 .yandex-reviews { grid-template-columns:1fr; gap:32px; }
 .yandex-reviews>header { position:static; }
 .yandex-reviews-widget { min-height:690px; }
 .reviews-fallback { min-height:654px; padding:24px; }
 .reviews-server-grid { grid-template-columns:1fr; }
 .review-card { padding:22px; }
 .reviews-fallback-actions { align-items:flex-start; flex-direction:column; }
}
@media(prefers-reduced-motion:reduce) { .schedule-toolbar { transition:none; } }

/* Shared secondary navigation: preserve flow, move only the visible panel. */
.sticky-sentinel { display:block; height:0; pointer-events:none; }
.category-nav.reveal-navigation,.schedule-toolbar.reveal-navigation { position:sticky; top:var(--header-height,88px); z-index:15; background:var(--paper); transition:transform .95s cubic-bezier(.22,.61,.36,1),opacity .7s ease; }
.mobile-menu { max-height:calc(100dvh - var(--header-height,88px) - 16px); overflow-y:auto; overscroll-behavior:contain; transform-origin:top; }
.reveal-navigation.is-hidden:not(:focus-within) { transform:translateY(calc(-100% - var(--header-height,88px))); opacity:0; pointer-events:none; }
[hidden] { display:none!important; }
/* Anchor spacing already includes the sticky header; do not also inherit the foundation padding. */
html { scroll-padding-top:0; }
[id] { scroll-margin-top:calc(var(--header-height,88px) + 92px); }
.program-photo { overflow:hidden; }
.program-photo img[src*="format-trainings"] { object-position:53% 46%; }
.program-photo img[src*="format-individual"] { object-position:78% 45%; transform:scale(1.24); transform-origin:82% 45%; }
.course-work { border:1px solid var(--line); border-radius:5px; padding:clamp(24px,4vw,60px); margin-top:32px; }
.course-work .section-heading h2 { font-size:clamp(2rem,3.4vw,3.4rem); }
.course-price { max-width:29ch; }
.course-price strong { display:block; font-size:2rem; font-weight:500; }
.course-price p,.course-price span { font-size:1rem; color:var(--muted); line-height:1.6; }
.course-work .practice-intro { max-width:74ch; font-size:1.125rem; }
.course-process { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; margin-block:38px; }
.course-process article { border-top:1px solid var(--line); padding-top:24px; }
.course-work h3 { font-size:1.45rem; line-height:1.2; font-weight:500; letter-spacing:-.025em; }
.course-process p,.course-support p,.course-fit p,.meeting-process p { font-size:1rem; line-height:1.65; color:var(--muted); margin-top:16px; }
.course-work .course-rhythm { padding:28px 0; margin:0; border-block:1px solid var(--line); }
.course-work .rhythm-grid { margin-top:24px; gap:32px; }
.course-work .rhythm-grid article { padding:0; border:0; }
.course-work h4 { font-size:1.5rem; font-weight:500; margin:12px 0; }
.course-work .rhythm-grid p { font-size:1rem; }
.course-support,.course-fit { display:grid; grid-template-columns:1fr 1fr; gap:32px; margin-top:32px; }
.course-support .text-link { margin-top:16px; }
.course-fit { padding-top:32px; border-top:1px solid var(--line); }
.course-fit ul { padding-left:20px; font-size:1rem; line-height:1.7; color:var(--muted); margin-top:16px; }
.course-next { padding-block:40px; margin-bottom:56px; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:24px; }
.course-next>div { display:flex; flex-wrap:wrap; gap:20px; }
.course-next h2 { max-width:20ch; }
.course-next>p { max-width:40ch; color:var(--muted); line-height:1.6; }
.meeting-announcement { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); margin-top:32px; border-top:1px solid var(--line); padding-top:32px; gap:28px; }
.meeting-announcement figure { min-width:0; }
.meeting-announcement img { width:100%; height:100%; max-height:320px; object-fit:cover; border-radius:3px; }
.meeting-copy h3 { margin:12px 0; }
.meeting-copy>p { font-size:1rem; line-height:1.55; color:var(--muted); }
.meeting-copy .eyebrow { font-size:.875rem; }
.meeting-copy .meeting-date { color:var(--ink); margin-top:16px; font-weight:500; }
.meeting-copy .meeting-teachers { margin-top:8px; }
.meeting-actions { display:flex; flex-wrap:wrap; gap:14px 24px; margin-top:18px; }
.meeting-actions .text-link { margin:0; }
.meeting-announcement--compact { display:block; padding-top:24px; margin-top:24px; }
.meeting-announcement--compact h3 { font-size:1.3rem; }
.meeting-live { background:var(--ink); color:var(--paper); padding:32px; border-radius:5px; margin-top:24px; }
.meeting-live h2 { font-size:2rem; margin:14px 0; }
.meeting-live p { line-height:1.6; margin-bottom:12px; }
.meeting-live .text-link { color:var(--paper); }
.meeting-process { display:grid; grid-template-columns:1fr 1.25fr; gap:7%; }
.meeting-process .practice-intro { font-size:1.2rem; margin-top:0; }
.meeting-fit { margin-top:28px; gap:28px; }
.meeting-fit h3 { font-size:1.25rem; font-weight:500; }
.schedule-meeting { display:grid; grid-template-columns:240px minmax(0,1fr); gap:32px; margin-top:24px; border:1px solid var(--red); border-radius:4px; padding:24px; }
.schedule-meeting-photo img { width:100%; height:100%; object-fit:cover; }
.schedule-meeting h2 { font-size:2rem; margin:12px 0; }
.schedule-meeting p { margin-top:10px; font-size:1rem; line-height:1.5; }
.schedule-meeting .eyebrow { margin:0; font-size:.875rem; }
.advanced-course { display:grid; grid-template-columns:1fr 1fr; margin-top:36px; border:1px solid var(--line); border-radius:4px; overflow:hidden; }
.advanced-course>div { padding:clamp(24px,3vw,40px); }
.advanced-course img { width:100%; height:100%; max-height:360px; object-fit:cover; }
.advanced-course h2,.laboratory-overview h2 { font-size:clamp(2rem,4vw,3.4rem); margin:20px 0; }
.advanced-course p,.laboratory-overview p { font-size:1.0625rem; line-height:1.6; color:var(--muted); }
.advanced-course .text-link,.laboratory-overview .text-link { margin-top:24px; }
.laboratory-overview { display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:center; }
.laboratory-overview img { width:100%; height:430px; object-fit:cover; }
.individual-booking { display:grid; grid-template-columns:1fr 1fr; gap:48px; padding-block:48px; border-block:1px solid var(--line); align-items:center; background:linear-gradient(90deg,transparent 0 52%,#f1eee733 52%); }
.individual-booking h2 { font-size:2.5rem; margin:20px 0; }
.individual-booking p { max-width:52ch; line-height:1.6; }
.booking-dialog { width:min(860px,calc(100vw - 32px)); max-height:92dvh; height:880px; padding:0 20px 18px; border:12px solid transparent; border-radius:20px; color:var(--ink); background:linear-gradient(var(--paper),var(--paper)) padding-box,var(--action-stripes) border-box,var(--paper); box-shadow:0 24px 80px #201a1542; overflow:hidden; }
.booking-dialog::backdrop { background:#171717a8; backdrop-filter:blur(3px); }
.booking-dialog-header { display:flex; justify-content:space-between; gap:16px; align-items:center; padding:18px 2px 14px; }
.booking-dialog-header h2 { font-size:clamp(1.45rem,3vw,2rem); margin-top:5px; font-weight:500; letter-spacing:-.035em; }
.booking-dialog-header .eyebrow { color:var(--red); }
.booking-close { border:1px solid var(--line); border-radius:50%; background:var(--paper); width:46px; height:46px; font-size:1.75rem; line-height:1; cursor:pointer; flex-shrink:0; transition:background .25s,color .25s,border-color .25s; }
.booking-close:hover { background:var(--red); border-color:var(--red); color:#fff; }
.booking-dialog-guide { display:grid; grid-template-columns:repeat(3,1fr); margin:0 0 12px; border-block:1px solid var(--line); counter-reset:booking-step; }
.booking-dialog-guide span { counter-increment:booking-step; padding:10px 6px; color:var(--muted); font-size:.75rem; letter-spacing:.06em; text-transform:uppercase; }
.booking-dialog-guide span::before { content:'0' counter(booking-step) ' '; color:var(--red); }
.booking-dialog-loading { position:absolute; inset:150px 20px 18px; z-index:1; display:grid; place-items:center; background:var(--paper); color:var(--muted); font-size:.9375rem; }
.booking-dialog-loading[hidden] { display:none; }
.booking-dialog iframe { width:100%; height:calc(100% - 142px); min-height:300px; display:block; border:1px solid var(--line); border-radius:8px; background:white; }
.booking-dialog-fallback { margin:9px 2px 0; font-size:.75rem; color:var(--muted); }
.booking-dialog-fallback .text-link { display:inline; padding:0; border:0; font-size:inherit; }
.booking-open { overflow:hidden; }
@media(max-width:800px) {
 .course-process { grid-template-columns:1fr; gap:20px; }
 .course-support,.course-fit,.meeting-process,.meeting-fit,.advanced-course,.laboratory-overview,.individual-booking { grid-template-columns:1fr; gap:28px; }
 .meeting-announcement { grid-template-columns:1fr; }
 .meeting-announcement--compact { display:block; }
 .meeting-announcement img { height:auto; aspect-ratio:1.5; }
 .schedule-meeting { grid-template-columns:1fr; padding:20px; gap:20px; }
 .schedule-meeting-photo { display:none; }
 .course-work .section-heading { display:grid; gap:28px; }
 .course-work .rhythm-grid { grid-template-columns:1fr; gap:28px; }
 .course-work .rhythm-grid article+article { border-top:1px solid var(--line); padding-top:24px; }
 .laboratory-overview img { height:auto; max-height:400px; }
 .individual-booking { background:none; }
 .booking-dialog { width:calc(100vw - 8px); max-height:98dvh; height:98dvh; padding:0 8px 10px; border-width:7px; border-radius:16px; }
 .booking-dialog-header { padding:12px 4px 10px; }
 .booking-dialog-header h2 { font-size:1.25rem; }
 .booking-dialog-guide { margin-bottom:8px; }
 .booking-dialog-guide span { padding:8px 3px; font-size:.625rem; letter-spacing:.035em; }
 .booking-dialog-loading { inset:118px 8px 10px; }
 .booking-dialog iframe { height:calc(100% - 116px); border-radius:6px; }
 .booking-dialog-fallback { display:none; }
}
@media(prefers-reduced-motion:reduce) { .reveal-navigation { transition:none!important; } }
@media(max-width:420px) { .teachers-grid { grid-template-columns:1fr; } .teacher>img { aspect-ratio:1.1; } .teacher p { min-height:0; } .teacher h3 { font-size:1.6rem; } }

/* Related text and photography live on one surface; space separates subjects. */
.course-overview { border:1px solid var(--line); border-radius:5px; overflow:hidden; }
.course-overview-top { display:grid; grid-template-columns:1fr 1fr; }
.course-overview-copy { padding:clamp(24px,3.2vw,48px); }
.course-overview-copy h2 { font-size:clamp(2.2rem,4.2vw,4rem); }
.course-overview-copy .body-copy { margin-block:24px; max-width:42ch; }
.course-overview-top figure { position:relative; min-height:430px; }
.course-overview-top figure img { position:absolute; width:100%; height:100%; object-fit:cover; }
.course-overview-top figcaption { position:absolute; bottom:16px; left:20px; background:#171717d0; color:white; padding:7px 12px; font-size:.8125rem; }
.overview-price { display:flex; flex-direction:column; gap:8px; margin:28px 0; }
.overview-price strong { font-size:1.9rem; font-weight:500; }
.overview-price span { color:var(--muted); max-width:38ch; font-size:.9375rem; }
.course-overview-bottom { display:grid; grid-template-columns:1.1fr 1fr; gap:40px; padding:clamp(24px,3.2vw,48px); border-top:1px solid var(--line); }
.course-overview-bottom h3 { font-size:1.5rem; font-weight:500; letter-spacing:-.03em; }
.overview-week dl { margin-top:24px; display:grid; gap:22px; }
.overview-week dl>div { display:grid; grid-template-columns:130px minmax(0,1fr); gap:18px; }
.overview-week dt { font-size:.875rem; color:var(--muted); }
.overview-week dd { margin:0; display:grid; gap:8px; }
.overview-week dd strong { font-size:1.125rem; font-weight:500; }
.overview-week dd span,.overview-start p { font-size:1rem; color:var(--muted); }
.overview-start>p { margin-top:20px; }
.overview-start .text-link { margin-top:18px; }
.overview-start .overview-offer { padding-top:22px; border-top:1px solid var(--line); font-size:.9375rem; }
.overview-offer strong { color:var(--ink); font-weight:500; }
.catalog-card { padding:0; border:1px solid var(--line); border-radius:5px; overflow:hidden; align-items:stretch; }
.catalog-card--basic { border-color:var(--red); padding:0; }
.catalog-photo { margin:0; }
.catalog-card-copy { padding:26px; display:flex; flex-direction:column; flex:1; }
.catalog-card-copy>p:not(.eyebrow) { color:var(--muted); margin:20px 0 26px; }
.catalog-card-copy>small { font-size:.8125rem; color:var(--muted); margin-top:12px; }
.catalog-card h3 { font-size:clamp(1.55rem,2.2vw,2.15rem); }
.detail-hero img[src*="profaction-stage"] { aspect-ratio:1.5; object-position:center; }
.catalog-photo img[src*="kids-theatre-play"],.event-photo img[src*="kids-theatre-play"] { object-position:50% 10%; }
.detail-hero img[src*="kids-theatre-play"] { aspect-ratio:1.1; object-position:50% 30%; }
.kids-wide img { aspect-ratio:1.5; object-position:center; }
.editorial-hero { display:grid; grid-template-columns:1fr 1.1fr; gap:7%; align-items:center; }
.editorial-hero h1,.person-hero h1,.performance-hero h1 { font-size:clamp(2.5rem,5.5vw,5rem); line-height:1.04; font-weight:500; letter-spacing:-.055em; }
.editorial-hero p:not(.eyebrow) { margin:24px 0; max-width:42ch; font-size:1.125rem; color:var(--muted); }
.editorial-hero figure { margin:0; overflow:hidden; border-radius:4px; }
.editorial-hero figure img { width:100%; height:auto; aspect-ratio:1.25; object-fit:cover; }
.editorial-hero figcaption { padding:18px 22px; background:var(--ink); color:white; font-size:.875rem; }
.editorial-hero figcaption .text-link { color:white; }
.individual-hero figure img { object-position:50% 85%; }
.editorial-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:42px 30px; }
.editorial-card { min-width:0; border:1px solid var(--line); border-radius:5px; overflow:hidden; display:flex; flex-direction:column; }
.editorial-card-image { display:block; }
.editorial-card-image img { width:100%; height:auto; aspect-ratio:1.6; object-fit:cover; }
.editorial-card>div { padding:30px; display:flex; flex-direction:column; flex:1; }
.editorial-card h2 { font-size:clamp(1.75rem,2.8vw,2.5rem); line-height:1.1; }
h1>a,h2>a,h3>a { letter-spacing:-.03em; }
.editorial-card p:not(.eyebrow) { margin:20px 0 26px; color:var(--muted); max-width:55ch; }
.editorial-card .text-link { margin-top:auto; align-self:flex-start; }
.editorial-paths { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; }
.editorial-paths h2 a { font-size:1.8rem; line-height:1.2; letter-spacing:-.02em; }
.editorial-paths p { margin-top:18px; color:var(--muted); }
.studio-film { display:grid; grid-template-columns:1fr 1.5fr; align-items:center; gap:6%; }
.studio-film p:not(.eyebrow) { margin-top:24px; color:var(--muted); max-width:36ch; }
.studio-film video { width:100%; background:var(--ink); aspect-ratio:16/9; border-radius:4px; }
.studio-language-new { display:grid; grid-template-columns:1fr 1.4fr; gap:8%; }
.studio-language-new article { display:flex; align-items:center; gap:26px; margin-bottom:26px; }
.studio-language-new img { width:110px; height:110px; object-fit:contain; }
.studio-language-new h3 { font-size:1.65rem; font-weight:500; }
.studio-language-new p { color:var(--muted); margin-top:10px; max-width:38ch; }
.faces-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:36px; }
.face-card { border:1px solid var(--line); border-radius:5px; overflow:hidden; }
.face-card>img { width:100%; aspect-ratio:1.25; height:auto; object-fit:cover; object-position:50% 18%; }
.face-card>div { padding:30px; }
.face-card h2 { font-size:2.25rem; }
.face-card p:not(.eyebrow) { margin:22px 0; color:var(--muted); }
.face-card .face-card-role { margin:10px 0 24px; color:var(--ink); font-size:.95rem; font-weight:600; }
.face-card-story { margin:0; border-top:1px solid var(--line); }
.face-card-story>div { display:grid; grid-template-columns:112px 1fr; gap:18px; padding:18px 0; border-bottom:1px solid var(--line); }
.face-card-story dt { color:var(--muted); font-size:.72rem; font-weight:700; letter-spacing:.08em; line-height:1.45; text-transform:uppercase; }
.face-card-story dd { margin:0; color:var(--muted); font-size:.95rem; line-height:1.55; }
.face-card-quote { margin:24px 0 0; padding-left:18px; border-left:2px solid var(--red); color:var(--ink); font-size:1.05rem; line-height:1.5; }
.history-layout { display:grid; grid-template-columns:1fr 1fr; gap:8%; align-items:start; }
.history-layout figure { position:sticky; top:120px; }
.history-layout figure img { width:100%; height:auto; aspect-ratio:1.2; object-fit:cover; }
.history-layout figcaption { color:var(--muted); font-size:.875rem; margin-top:12px; }
.history-chapters { border-left:1px solid var(--line); padding-left:38px; }
.history-chapters article { margin-bottom:42px; }
.history-chapters h2 { font-size:2rem; }
.history-chapters p:not(.eyebrow) { color:var(--muted); margin:20px 0; }
.person-hero { display:grid; grid-template-columns:.85fr 1fr; gap:9%; align-items:center; padding-bottom:50px; }
.person-hero figure img { width:100%; height:auto; max-height:660px; aspect-ratio:1; object-fit:cover; object-position:center top; }
.person-role { margin-top:28px; color:var(--muted); font-size:1.125rem; }
.person-teaches { border-block:1px solid var(--line); padding:26px 0; margin:28px 0; }
.person-teaches h2 { font-size:.875rem; text-transform:uppercase; letter-spacing:.05em; margin-bottom:14px; }
.person-teaches p { font-size:1.25rem; }
.person-biography { display:grid; grid-template-columns:1fr 1.5fr; gap:10%; border-top:1px solid var(--line); }
.person-biography h2 { font-size:2.5rem; }
.person-biography article+article { margin-top:32px; }
.person-biography h3 { font-size:1.5rem; font-weight:500; }
.person-biography p { color:var(--muted); margin-top:14px; max-width:60ch; }
.person-next { padding-bottom:var(--space); }
.person-next>p { color:var(--muted); margin-bottom:18px; }
.person-next>div { display:flex; flex-wrap:wrap; gap:12px 26px; }
.performance-hero header { display:grid; grid-template-columns:1fr 1fr; gap:24px 8%; align-items:end; padding:25px 0 40px; }
.performance-hero .eyebrow { grid-column:1/-1; margin:0; }
.performance-hero header>p:last-child { font-size:1.125rem; max-width:50ch; color:var(--muted); }
.performance-hero figure img { width:100%; height:auto; max-height:760px; aspect-ratio:1.8; object-fit:cover; }
.story-layout { display:grid; grid-template-columns:.8fr 1.5fr; gap:12%; }
.story-facts { margin:0; }
.story-facts>div { border-top:1px solid var(--line); padding:20px 0; }
.story-facts dt { font-size:.875rem; color:var(--muted); margin-bottom:12px; }
.story-facts dd { margin:0; font-size:1.125rem; }
.prose { max-width:65ch; font-size:1.125rem; line-height:1.7; }
.prose p+p { margin-top:24px; }
.prose .text-link { margin-top:30px; }
.archive-note { padding-bottom:var(--space); color:var(--muted); }
.archive-note p { margin-bottom:16px; }
.journal-grid>.editorial-card:first-child { grid-column:1/-1; grid-template-columns:1.55fr 1fr; }
.journal-grid>.editorial-card:first-child .editorial-card-image img { min-height:520px; }
.journal-article { padding-top:35px; padding-bottom:var(--space); }
.journal-article header { max-width:1000px; margin:0 auto 40px; }
.journal-article h1 { font-size:clamp(2.5rem,5vw,4.7rem); font-weight:500; line-height:1.08; letter-spacing:-.045em; }
.journal-article header>p:not(.eyebrow) { margin-top:28px; font-size:1.25rem; max-width:60ch; color:var(--muted); }
.journal-article header>small { display:block; margin-top:28px; color:var(--muted); font-size:.75rem; letter-spacing:.03em; }
.journal-article>figure img { width:100%; height:auto; aspect-ratio:1.9; object-fit:cover; }
.journal-prose { max-width:860px; margin:72px auto 0; }
.journal-section { margin-bottom:88px; }
.journal-section:last-child { margin-bottom:0; }
.journal-section h2 { max-width:18ch; margin-bottom:30px; font-size:clamp(2rem,3.7vw,3.6rem); font-weight:500; line-height:1.03; letter-spacing:-.045em; }
.journal-section p { max-width:65ch; font-size:1.125rem; line-height:1.72; }
.journal-section p+p { margin-top:24px; }
.journal-section:first-child p:first-of-type { color:var(--ink); font-size:clamp(1.25rem,2vw,1.6rem); line-height:1.55; }
.journal-section ul { max-width:65ch; margin:34px 0 0; padding:0; border-top:1px solid var(--line); list-style:none; }
.journal-section li { position:relative; padding:18px 42px 18px 0; border-bottom:1px solid var(--line); font-size:1.0625rem; line-height:1.5; }
.journal-section li::after { position:absolute; top:17px; right:2px; color:var(--red); content:'↗'; }
.journal-faq { display:grid; grid-template-columns:.62fr 1.6fr; gap:8%; max-width:1000px; margin:100px auto 0; padding-top:80px; }
.journal-faq h2 { margin-bottom:34px; font-size:clamp(2.2rem,4vw,4rem); font-weight:500; line-height:1; letter-spacing:-.045em; }
.journal-faq details { border-top:1px solid var(--line); }
.journal-faq details:last-child { border-bottom:1px solid var(--line); }
.journal-faq summary { display:grid; grid-template-columns:1fr auto; gap:20px; align-items:center; padding:24px 0; cursor:pointer; font-size:1.15rem; font-weight:600; list-style:none; }
.journal-faq summary::-webkit-details-marker { display:none; }
.journal-faq summary i { position:relative; display:block; width:20px; height:20px; }
.journal-faq summary i::before,.journal-faq summary i::after { position:absolute; top:9px; left:1px; width:18px; height:1px; background:var(--red); content:''; }
.journal-faq summary i::after { transform:rotate(90deg); transition:transform .35s ease; }
.journal-faq details[open] summary i::after { transform:rotate(0); }
.journal-faq details p { max-width:60ch; margin:-2px 0 26px; color:var(--muted); line-height:1.65; }
.journal-conversion { display:grid; grid-template-columns:.62fr 1.6fr; gap:8%; max-width:1180px; margin:100px auto 0; padding:clamp(34px,5vw,70px); border-radius:5px; background:var(--ink); color:var(--paper); }
.journal-conversion h2 { max-width:15ch; font-size:clamp(2.35rem,4.5vw,4.5rem); font-weight:500; line-height:.98; letter-spacing:-.05em; }
.journal-conversion div>p { max-width:48ch; margin:24px 0 30px; color:rgba(255,255,255,.66); line-height:1.6; }
.gift-drawing { max-width:430px; width:85%; height:auto; margin:auto; object-fit:contain; }
.gift-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.gift-grid article { border:1px solid var(--line); border-radius:5px; overflow:hidden; }
.gift-grid img { width:100%; height:auto; aspect-ratio:1.45; object-fit:contain; }
.gift-grid article>div { padding:26px; }
.gift-grid h3 { font-size:2rem; font-weight:500; }
.gift-grid p { margin:14px 0 22px; font-size:1.375rem; }
.gift-steps-new { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:40px; }
.gift-steps-new h2 { font-size:2rem; }
.gift-steps-new p { margin-top:18px; max-width:35ch; color:var(--muted); }
.contact-links { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 40px; }
.contact-links>a { display:grid; grid-template-columns:1fr auto; gap:12px; padding:26px 0; border-block-start:1px solid var(--line); }
.contact-links span { color:var(--muted); font-size:.875rem; }
.contact-links strong { grid-row:2; font-size:clamp(1.25rem,2.7vw,2.2rem); font-weight:500; }
.contact-links i { grid-row:1/3; grid-column:2; align-self:center; font-style:normal; color:var(--red); }
.venue-cards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px; }
.venue-cards article { border:1px solid var(--line); padding:32px; border-radius:4px; }
.venue-cards h3 { font-size:clamp(1.4rem,2.8vw,2.5rem); font-weight:500; letter-spacing:-.04em; }
.venue-cards p { margin-top:18px; }
.venue-cards .text-link { margin-top:28px; }
.muted { color:var(--muted); }
.document-links { display:flex; flex-wrap:wrap; gap:20px 35px; padding-bottom:var(--space); }
.statement-new { display:grid; grid-template-columns:1.3fr 1fr; gap:10%; align-items:center; }
.statement-new h2 { font-size:clamp(1.9rem,3vw,3rem); }
.statement-new p { color:var(--muted); font-size:1.125rem; }
.benefit-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:36px; }
.benefit-grid article { padding-top:24px; border-top:1px solid var(--line); }
.benefit-grid h3 .text-link { font-size:1.7rem; letter-spacing:-.03em; }
.benefit-grid p { margin-top:18px; color:var(--muted); max-width:50ch; }
.topic-hero figure img { object-position:center 28%; }
.topic-hero+.statement-new { align-items:start; }
.topic-hero+.statement-new p { line-height:1.7; }
.topic-hero~section>.practice-grid { margin:0; padding:0; list-style:none; }
.practice-grid>li { min-width:0; padding-top:22px; border-top:1px solid var(--line); }
.practice-grid>li>span { color:var(--red); font-size:.8125rem; letter-spacing:.08em; }
.practice-grid>li>p { margin-top:16px; color:var(--ink); font-size:1.125rem; }
.journal-kids-links { display:grid; grid-template-columns:.62fr 1.6fr; gap:8%; max-width:1000px; margin:100px auto 0; padding-top:80px; }
.journal-kids-links h2 { margin-top:16px; font-size:var(--type-subsection); font-weight:500; line-height:1.12; letter-spacing:-.03em; }
.journal-kids-links div>p:last-child { max-width:54ch; margin-top:24px; color:var(--muted); line-height:1.65; }
.journal-kids-links nav { display:flex; flex-direction:column; align-items:flex-start; border-top:1px solid var(--line); }
.journal-kids-links nav .text-link { width:100%; justify-content:space-between; padding:20px 0; border-bottom:1px solid var(--line); font-size:1.125rem; }
.footer-directory { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:35px; padding:40px 0; border-top:1px solid var(--line); }
.footer-directory h2 { font-size:.875rem; font-weight:500; margin-bottom:20px; }
.footer-directory a { display:block; margin-top:12px; font-size:.875rem; color:var(--muted); }
.footer-directory a:hover { color:var(--red); }
.legal-preview-note { color:var(--muted); font-size:.875rem; margin-bottom:36px; }
.legal-layout { display:grid; grid-template-columns:220px minmax(0,1fr); gap:7%; padding-bottom:var(--space); }
.legal-layout>nav { display:flex; flex-direction:column; gap:14px; align-self:start; position:sticky; top:110px; max-height:calc(100vh - 130px); overflow:auto; }
.legal-layout>nav a { font-size:.875rem; line-height:1.4; padding:5px 0; }
.legal-document { max-width:72ch; font-size:1rem; line-height:1.7; overflow-wrap:anywhere; }
.legal-document+article { margin-top:70px; }
.legal-document section { padding-top:32px; margin-top:32px; border-top:1px solid var(--line); }
.legal-document h2 { font-size:1.65rem; line-height:1.25; margin-bottom:24px; }
.legal-document p+p { margin-top:18px; }
.legal-document h2 span { color:var(--muted); font-size:1rem; margin-right:10px; }
.legal-document a { text-decoration:underline; text-underline-offset:3px; }
.legal-details dl>div { margin-top:18px; }
.legal-details dt { color:var(--muted); font-size:.875rem; }
.legal-details dd { margin:6px 0 0; }
@media(max-width:1050px) {
 .course-overview-top,.course-overview-bottom { grid-template-columns:1fr; }
 .course-overview-top figure { min-height:0; aspect-ratio:1.5; }
 .course-overview-copy h2 br:nth-of-type(2) { display:none; }
 .program.program--illustrated { gap:0; align-items:stretch; }
 .program-photo img { height:100%; }
 .overview-week dl { grid-template-columns:1fr 1fr; }
 .overview-week dl>div { display:block; }
 .overview-week dt { margin-bottom:12px; }
 .editorial-hero { gap:5%; }
 .legal-layout { grid-template-columns:1fr; }
 .legal-layout>nav { position:static; max-height:none; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); margin-bottom:36px; }
 .gift-grid { grid-template-columns:1fr; }
 .gift-grid article { display:grid; grid-template-columns:1fr 1fr; align-items:center; }
}
@media(max-width:680px) {
 .basic-spotlight { gap:0; }
 .basic-visual figure { min-height:0; aspect-ratio:1.5; }
 .program-photo { margin:0; }
 .program-copy,.program--featured .program-copy { padding:24px; }
 .program-photo img { height:auto; }
 .kids-photo { min-height:0; aspect-ratio:1.5; }
 .kids-photo img { object-position:48% 50%; }
 .course-overview-bottom { gap:32px; }
 .course-overview-copy h2 { font-size:2.2rem; }
 .course-overview-copy h2 br:nth-of-type(2) { display:block; }
 .overview-week dl { grid-template-columns:1fr; }
 .overview-week dl>div { display:grid; grid-template-columns:95px minmax(0,1fr); gap:16px; }
 .catalog-card-copy { padding:24px; }
 .editorial-hero,.person-hero,.person-biography,.studio-film,.studio-language-new,.history-layout,.story-layout,.statement-new { grid-template-columns:1fr; gap:32px; }
 .editorial-grid,.faces-grid,.venue-cards,.contact-links,.editorial-paths,.benefit-grid,.gift-steps-new { grid-template-columns:1fr; }
 .editorial-hero h1,.person-hero h1,.performance-hero h1 { font-size:clamp(2.5rem,10vw,3.8rem); }
 .editorial-hero figure img { aspect-ratio:1.5; }
 .editorial-hero p:not(.eyebrow) { font-size:1rem; }
 .person-hero figure { max-width:420px; }
 .person-hero h1 { overflow-wrap:break-word; }
 .face-card>div,.editorial-card>div { padding:24px; }
 .face-card-story>div { grid-template-columns:92px 1fr; gap:14px; }
 .history-layout figure { position:static; }
 .history-chapters { padding-left:24px; }
 .studio-language-new img { width:80px; height:80px; }
 .studio-language-new article { gap:20px; }
 .performance-hero header { grid-template-columns:1fr; }
 .performance-hero figure img { aspect-ratio:1.4; }
 .journal-grid>.editorial-card:first-child { grid-column:auto; grid-template-columns:1fr; }
 .journal-grid>.editorial-card:first-child .editorial-card-image img { min-height:0; }
 .journal-article>figure img { aspect-ratio:1.5; }
 .journal-article h1 { font-size:2.5rem; }
 .journal-article header>p:not(.eyebrow),.prose { font-size:1.0625rem; }
 .journal-prose { margin-top:50px; }
 .journal-section { margin-bottom:64px; }
 .journal-section h2 { font-size:2rem; }
 .journal-section p { font-size:1.0625rem; }
 .journal-section:first-child p:first-of-type { font-size:1.25rem; }
 .journal-faq,.journal-kids-links,.journal-conversion { grid-template-columns:1fr; gap:28px; margin-top:72px; }
 .journal-faq { padding-top:56px; }
 .journal-faq h2 { font-size:2.6rem; }
 .journal-conversion { padding:30px 24px; }
 .journal-conversion h2 { font-size:2.65rem; }
 .gift-grid article { grid-template-columns:1fr; }
 .gift-drawing { max-width:240px; }
 .gift-steps-new { gap:30px; }
 .venue-cards article { padding:24px; }
 .footer-directory { grid-template-columns:repeat(2,minmax(0,1fr)); gap:30px 20px; }
 .legal-layout>nav { grid-template-columns:1fr; }
 .legal-document h2 { font-size:1.5rem; }
}

.studio-stats { border-block:1px solid var(--line); padding-block:48px; }
.studio-stats header { display:grid; grid-template-columns:1fr 2fr 1fr; gap:24px; align-items:start; }
.studio-stats h2 { font-size:clamp(2rem,3.3vw,3.3rem); }
.studio-stats header>p:last-child { color:var(--muted); font-size:1rem; line-height:1.5; }
.studio-stats dl { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); margin:40px 0 0; }
.studio-stats dl>div { display:flex; flex-direction:column-reverse; gap:14px; padding-left:28px; border-left:1px solid var(--line); }
.studio-stats dl>div:first-child { padding-left:0; border:0; }
.studio-stats dd { margin:0; font-size:clamp(2.4rem,4.5vw,4.4rem); font-weight:500; letter-spacing:-.055em; font-variant-numeric:tabular-nums; }
.studio-stats dt { color:var(--muted); font-size:1rem; }
.corporate-home { display:flex; align-items:center; justify-content:space-between; gap:40px; padding-block:36px 64px; }
.corporate-home h2 { font-size:2.3rem; margin:20px 0; }
.corporate-home p:not(.eyebrow) { font-size:1rem; color:var(--muted); max-width:52ch; line-height:1.6; }
.corporate-home>.text-link { flex-shrink:0; }
.corporate-hero .button { margin-top:24px; }
.corporate-hero p+p { margin-top:16px; }
.corporate-hero .corporate-illustration { overflow:visible; }
.corporate-hero .corporate-illustration img { aspect-ratio:3/2; height:auto; object-fit:contain; mix-blend-mode:multiply; }
.corporate-terms { border:1px solid var(--line); padding:32px; border-radius:4px; }
.corporate-terms dl { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; margin:0; }
.corporate-terms dt { font-size:.9375rem; color:var(--muted); }
.corporate-terms dd { margin:16px 0 0; font-size:clamp(1.5rem,2.5vw,2.2rem); font-weight:500; letter-spacing:-.035em; }
.corporate-terms>p { border-top:1px solid var(--line); margin-top:28px; padding-top:24px; font-size:1rem; line-height:1.6; max-width:78ch; color:var(--muted); }
.corporate-goal-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px 48px; }
.corporate-goal-grid article { border-top:1px solid var(--line); padding-top:24px; }
.corporate-goal-grid h3,.corporate-modules h3 { font-size:1.5rem; font-weight:500; letter-spacing:-.03em; }
.corporate-goal-grid p,.corporate-modules p,.corporate-practice p { margin-top:16px; color:var(--muted); font-size:1.0625rem; line-height:1.65; }
.corporate-practice { display:grid; grid-template-columns:1fr 1.1fr; align-items:start; gap:7%; }
.corporate-practice>div>p:first-child { margin-top:0; }
.corporate-practice h2 { margin:20px 0; font-size:clamp(2.2rem,3.8vw,3.6rem); }
.corporate-modules { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:36px 32px; }
.corporate-modules article { border-left:2px solid var(--red); padding-left:24px; }
.corporate-clients ul { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border-top:1px solid var(--line); }
.corporate-clients li { display:flex; align-items:center; justify-content:center; min-width:0; min-height:168px; padding:36px 24px; border-bottom:1px solid var(--line); }
.corporate-client-logo { display:block; width:100%; max-width:180px; height:76px; object-fit:contain; mix-blend-mode:multiply; }
.corporate-client-logo--monochrome { filter:brightness(0); }
.corporate-client-logo--grayscale { filter:grayscale(1); }
.corporate-client-logo--wordmark { max-width:160px; }
.corporate-client-logo--compact { max-width:140px; }
.corporate-client-logo--wide { max-width:205px; }
.corporate-client-logo--horizontal { max-width:230px; }
.corporate-client-logo--padded { max-width:225px; height:94px; }
.corporate-client-logo--badge { max-width:116px; }

/* A single, illustrated choice of format on the homepage. */
.price-alternative,.price-explanation { display:block; }
.price-explanation { margin-top:6px; font-size:.875rem; color:var(--muted); line-height:1.5; }
.course-price .price-explanation,.overview-price .price-explanation { font-size:.875rem; }
.course-price strong .nowrap,.overview-price strong .nowrap,.price-explanation .nowrap { font:inherit; color:inherit; }
.learning-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; align-items:start; }
.learning-card { min-width:0; border:1px solid var(--line); border-radius:5px; overflow:hidden; }
.home-learning .program-photo { display:block; margin:0; overflow:hidden; }
.home-learning .program-photo img { display:block; width:100%; height:auto; aspect-ratio:1.5; object-fit:cover; }
.learning-copy { padding:28px; }
.learning-copy .eyebrow { font-size:.7rem; letter-spacing:.1em; margin-bottom:18px; }
.learning-copy h3 { font-size:clamp(1.65rem,2.1vw,2.3rem); line-height:1.08; font-weight:500; letter-spacing:-.04em; margin-bottom:22px; }
.learning-copy>p:not(.eyebrow) { color:var(--muted); font-size:1rem; line-height:1.6; }
.learning-copy>.learning-cadence { border-top:1px solid var(--line); margin-top:22px; padding-top:18px; }
.learning-price { margin-top:24px; }
.learning-price>strong { display:block; font-size:1.5rem; font-weight:500; line-height:1.35; }
.learning-price>strong>span:not(.nowrap) { display:block; font-size:.875rem; color:var(--muted); font-weight:400; }
.learning-price>p { margin-top:8px; color:var(--muted); font-size:.9375rem; line-height:1.5; }
.learning-copy>.text-link { margin-top:28px; font-size:.9375rem; }
.learning-meeting { background:#efeeeb; padding:26px 28px; border-top:1px solid var(--line); }
.learning-meeting .eyebrow { font-size:.65rem; letter-spacing:.08em; }
.learning-meeting h4 { margin:16px 0; font-size:1.375rem; font-weight:500; letter-spacing:-.03em; }
.learning-meeting h4 a { display:flex; justify-content:space-between; gap:16px; }
.learning-meeting h4 a>span { color:var(--red); }
.learning-meeting p:not(.eyebrow) { font-size:.9375rem; line-height:1.5; }
.learning-meeting p[data-meeting-teachers] { color:var(--muted); margin-top:8px; }
.learning-meeting .meeting-date { margin-top:18px; }
.learning-meeting .text-link { font-size:.875rem; margin-top:18px; }
.learning-needs { margin-top:24px; }
.learning-needs>p { font-size:.75rem; margin-bottom:10px; color:var(--muted); }
.learning-needs>a { display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:44px; padding:10px 0; border-top:1px solid var(--line); font-size:.875rem; line-height:1.45; }
.learning-needs>a>span:last-child { color:var(--red); }
.learning-needs>a:hover { color:var(--red); }
.included-practice { display:flex; justify-content:space-between; align-items:center; gap:32px; padding:28px 0; margin-top:36px; border-block:1px solid var(--line); }
.included-practice h3 { font-size:1.375rem; font-weight:500; letter-spacing:-.03em; margin-bottom:12px; }
.included-practice p { max-width:78ch; color:var(--muted); font-size:.9375rem; line-height:1.6; }
.included-practice>.text-link { flex-shrink:0; font-size:.9375rem; }
.learning-next { display:flex; align-items:center; gap:22px; padding-top:28px; flex-wrap:wrap; }
.learning-next img { width:62px; height:64px; object-fit:contain; margin-right:4px; }
.learning-next p { margin-right:auto; color:var(--muted); font-size:.9375rem; }
.learning-next .text-link { font-size:.9375rem; }
@media(max-width:1100px) and (min-width:901px) {
 .learning-grid { gap:16px; }
 .learning-copy,.learning-meeting { padding:22px; }
}
@media(max-width:900px) {
 .learning-grid { grid-template-columns:1fr; gap:28px; }
 .learning-card { display:block; }
 .learning-card .program-photo img { height:auto; aspect-ratio:1.75; }
 .learning-meeting { grid-column:1/-1; }
 .learning-copy h3 { font-size:2rem; }
 .included-practice { display:block; }
 .included-practice>.text-link { margin-top:20px; }
}
@media(max-width:600px) {
 .learning-card { display:block; }
 .learning-card .program-photo img { height:auto; aspect-ratio:1.5; }
 .learning-copy,.learning-meeting { padding:24px; }
 .learning-copy h3 { font-size:clamp(1.75rem,8vw,2rem); }
 .learning-next { display:grid; grid-template-columns:62px minmax(0,1fr); gap:16px 20px; }
 .learning-next img { grid-row:1/4; align-self:start; }
 .learning-next p,.learning-next .text-link { grid-column:2; }
}
@media(max-width:800px) {
 .studio-stats header { grid-template-columns:1fr; gap:16px; }
 .studio-stats dl { grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px 16px; }
 .studio-stats dl>div { padding-left:16px; }
 .studio-stats dl>div:nth-child(3) { padding:0; border:0; }
 .corporate-home { display:block; }
 .corporate-home>.text-link { margin-top:24px; }
 .corporate-terms { padding:24px; }
 .corporate-terms dl,.corporate-goal-grid,.corporate-practice,.corporate-modules { grid-template-columns:1fr; }
 .corporate-terms dl>div+div { border-top:1px solid var(--line); padding-top:24px; }
 .corporate-clients ul { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .corporate-clients li { padding:28px 18px; min-height:130px; }
 .corporate-client-logo { max-width:155px; height:64px; }
 .corporate-client-logo--compact { max-width:120px; }
 .corporate-client-logo--badge { max-width:96px; }
 .corporate-client-logo--horizontal { max-width:100%; }
 .corporate-client-logo--padded { max-width:175px; height:76px; }
 .corporate-practice { gap:20px; }
}

/* Editorial system: fewer type voices, clearer chapters and more distinctive actions. */
:root {
 --type-display:clamp(2.7rem,5vw,5rem);
 --type-section:clamp(2.15rem,3.55vw,3.65rem);
 --type-subsection:clamp(1.8rem,2.65vw,2.5rem);
 --type-card:clamp(1.5rem,2vw,2rem);
 --type-lead:clamp(1.125rem,1.45vw,1.375rem);
}
.home-page { --space:clamp(64px,7vw,108px); }
.eyebrow,.learning-copy .eyebrow,.learning-meeting .eyebrow { font-size:.8125rem; line-height:1.35; letter-spacing:.1em; }
:is(.hero,.catalog-intro,.schedule-intro,.detail-hero,.editorial-hero,.person-hero,.performance-hero,.journal-article) h1 {
 font-size:var(--type-display);
 font-weight:500;
 line-height:1.04;
 letter-spacing:-.042em;
}
:is(.section-intro,.stage-copy,.section-heading,.kids-content,.studio-copy,.faq-section,.final-cta,.course-overview-copy,.yandex-reviews,.review-sources,.studio-stats,.corporate-home,.corporate-practice,.faq-contact) h2 {
 font-size:var(--type-section);
 font-weight:500;
 line-height:1.08;
 letter-spacing:-.036em;
}
:is(.detail-split,.detail-fit,.related-programs,.journal-section,.journal-faq,.journal-conversion,.history-chapters,.person-biography,.gift-steps-new,.advanced-course,.laboratory-overview,.individual-booking,.statement-new) h2 {
 font-size:var(--type-subsection);
 font-weight:500;
 line-height:1.12;
 letter-spacing:-.03em;
}
:is(.learning-copy,.catalog-card,.event-copy,.teacher-directory-card,.gift-grid,.benefit-grid,.corporate-goal-grid,.corporate-modules,.practice-grid,.text-sections) h3 {
 font-size:var(--type-card);
 line-height:1.18;
 letter-spacing:-.025em;
}
.hero-lead,.detail-hero .detail-lead,.editorial-hero p:not(.eyebrow),.person-hero p:not(.eyebrow),.performance-hero p:not(.eyebrow) {
 font-size:var(--type-lead);
 line-height:1.45;
 letter-spacing:-.015em;
}

.brand img { width:148px; height:67px; }
.site-header { min-height:92px; }
.button {
 border-radius:2px;
 gap:22px;
 padding:12px 14px 12px 20px;
 font-weight:600;
 letter-spacing:.005em;
 box-shadow:0 1px 0 #00000014;
 transition:background .3s ease,color .3s ease,border-color .3s ease,transform .3s cubic-bezier(.2,.65,.2,1);
}
.button:hover { transform:translateY(-1px); }
.button>span[aria-hidden="true"] {
 display:grid;
 place-items:center;
 width:30px;
 height:30px;
 flex:0 0 30px;
 border:1px solid #ffffff55;
 border-radius:50%;
 font-size:1rem;
 line-height:1;
 transition:transform .3s cubic-bezier(.2,.65,.2,1),background .3s ease;
}
.button:hover>span[aria-hidden="true"] { transform:translate(2px,-2px); background:#ffffff18; }
.button--white>span[aria-hidden="true"] { border-color:#17171733; }
.button--kids>span[aria-hidden="true"] { border-color:#25382c4a; }
.button--small { min-height:50px; padding:9px 10px 9px 17px; }
.button--small>span[aria-hidden="true"] { width:27px; height:27px; flex-basis:27px; }

.home-section-nav { display:none; }
@media(max-width:1280px) {
 html:has(.home-page) { scroll-padding-top:150px; }
 .home-section-nav {
  position:sticky;
  z-index:19;
  top:92px;
  display:block;
  border-bottom:1px solid var(--line);
  background:rgba(250,249,246,.95);
  backdrop-filter:blur(12px);
 }
 .home-section-nav__track { display:flex; overflow-x:auto; scrollbar-width:none; overscroll-behavior-inline:contain; }
 .home-section-nav__track::-webkit-scrollbar { display:none; }
 .home-section-nav a {
  position:relative;
  display:inline-flex;
  min-height:48px;
  flex:0 0 auto;
  align-items:center;
  padding:0 18px;
  color:var(--muted);
  font-size:.875rem;
  font-weight:500;
  white-space:nowrap;
 }
 .home-section-nav a:first-child { margin-left:-18px; }
 .home-section-nav a::after { position:absolute; right:18px; bottom:-1px; left:18px; height:2px; background:var(--red); content:''; transform:scaleX(0); transform-origin:left; transition:transform .35s ease; }
 .home-section-nav a.is-active { color:var(--ink); }
 .home-section-nav a.is-active::after { transform:scaleX(1); }
}

.home-page .home-learning {
 background:#f0efeb;
 box-shadow:0 0 0 100vmax #f0efeb;
 clip-path:inset(0 -100vmax);
}
.home-page .home-learning .learning-card { background:var(--paper); }
.home-page .home-reviews {
 background:var(--ink);
 color:var(--paper);
 box-shadow:0 0 0 100vmax var(--ink);
 clip-path:inset(0 -100vmax);
}
.home-page .home-reviews .section-heading .text-link { color:var(--paper); border-color:#ffffff52; }
.home-page .home-reviews .section-heading .text-link:hover { color:#ef9d92; border-color:#ef9d92; }
.home-page .home-reviews .home-review-cards article { color:var(--ink); }
.home-page .home-reviews .review-snapshot-note { color:#c9c8c2; }

@media(max-width:680px) {
 :root {
  --type-display:clamp(2.25rem,9vw,3.4rem);
  --type-section:clamp(2rem,8.2vw,2.5rem);
  --type-subsection:clamp(1.75rem,7vw,2.15rem);
  --type-card:clamp(1.5rem,6.7vw,1.875rem);
 }
 .home-page { --space:58px; }
 .brand img { width:124px; height:56px; }
 .site-header { min-height:80px; }
 html:has(.home-page) { scroll-padding-top:136px; }
 .home-section-nav { top:80px; }
 .home-section-nav a { min-height:46px; padding-inline:15px; font-size:.8125rem; }
 .home-section-nav a:first-child { margin-left:-15px; }
 .home-section-nav a::after { right:15px; left:15px; }
 .button--small>span[aria-hidden="true"] { display:none; }
 .button--small { padding-inline:14px; }
}

@media(max-width:370px) {
 .brand img { width:116px; height:53px; }
 .button--small { padding-inline:12px; font-size:.75rem; }
}

/* Этап 1: факты первого экрана, афиша главной, полоса доказательств, даты в карточках. */
.fact-plate { display:flex; flex-wrap:wrap; gap:8px 0; margin:22px 0 0; font-size:.9375rem; line-height:1.5; color:var(--ink); }
.fact-plate>span { display:inline; }
.fact-plate>span:not(:last-child)::after { content:'·'; margin:0 12px; color:var(--muted); }
.fact-plate>span:has(>[hidden]) { display:none; }
.fact-plate [data-next-event] { color:var(--red); }
.detail-hero .fact-plate { margin-top:18px; }
/* Афиша: три билета под лозунгом. Дата — самое крупное, остальное подпись. */
.hero-tickets { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; width:100%; max-width:560px; margin-top:30px; }
.hero-ticket { display:flex; flex-direction:column; gap:6px; min-width:0; padding:16px 18px 18px; border:1px solid var(--line); border-radius:5px; background:#fff; color:var(--ink); transition:border-color .25s,transform .25s; }
.hero-ticket:hover { border-color:var(--red); transform:translateY(-2px); }
.hero-ticket:first-child { border-color:var(--ink); }
.hero-ticket-label { font-size:11px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); }
.hero-ticket-date { font-size:clamp(1.05rem,1.35vw,1.35rem); font-weight:500; letter-spacing:-.03em; line-height:1.2; color:var(--red); margin-top:6px; }
.hero-ticket-title { font-size:.9375rem; line-height:1.35; }
.hero-ticket-price { margin-top:auto; padding-top:8px; font-size:.8125rem; color:var(--muted); }
.hero-entry-actions { margin-top:22px; gap:12px; }
.hero-entry-actions .button--kids { background:#d9e2d5; color:#25382c; border-color:#8d9e88; }
.hero-entry-actions .button--kids:hover { background:#c9d7c4; }
/* Полоса доказательств: крупные цифры на штриховке, как «Action в цифрах». */
.proof-band { padding-top:34px; padding-bottom:34px; margin-top:8px; }
.proof-band-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; margin:0; padding:26px 30px; background:var(--action-stripes),var(--paper); border-top:1px solid var(--ink); border-bottom:1px solid var(--ink); }
.proof-band-grid>div { display:flex; flex-direction:column; gap:6px; min-width:0; padding-left:22px; border-left:1px solid var(--line); }
.proof-band-grid>div:first-child { padding-left:0; border-left:0; }
.proof-band dd { margin:0; font-size:clamp(1.7rem,2.6vw,2.6rem); font-weight:500; letter-spacing:-.05em; line-height:1.05; font-variant-numeric:tabular-nums; }
.proof-band dd.proof-band-text { font-size:clamp(1.15rem,1.5vw,1.45rem); letter-spacing:-.03em; line-height:1.15; padding-top:6px; }
.proof-band dt { color:var(--muted); font-size:.875rem; line-height:1.4; }
.proof-band dt a { text-decoration:underline; text-underline-offset:3px; }
.proof-band dt a:hover,.proof-star { color:var(--red); }
.proof-star { font-style:normal; font-size:.7em; margin-left:6px; vertical-align:.15em; }
/* Ближайшая дата в карточке каталога: плашка на фотографии, у карточки без фото — строкой. */
.catalog-photo { position:relative; }
.catalog-card-next { margin:14px 0 0; font-size:.9375rem; line-height:1.4; }
.catalog-card-next>b { font-weight:500; color:var(--red); }
.catalog-card-next[hidden] { display:none; }
.catalog-card-next--photo { position:absolute; left:12px; bottom:12px; margin:0; padding:7px 11px; border-radius:3px; background:var(--paper); color:var(--ink); font-size:.875rem; line-height:1.2; letter-spacing:-.01em; }
.catalog-card-next--photo>b { font-weight:500; color:var(--ink); }
.kids-first-screen,.trainings-first-screen { margin-top:-24px; padding-bottom:40px; }
.kids-first-screen .fact-plate,.trainings-first-screen .fact-plate { margin-top:0; }
.kids-first-screen .hero-actions,.trainings-first-screen .hero-actions { margin-top:22px; display:flex; flex-wrap:wrap; gap:16px 28px; align-items:center; }
.catalog-card-venue { margin:10px 0 0; font-size:.875rem; line-height:1.45; color:var(--ink); }
.catalog-card-venue span { color:var(--muted); }
.kids-venue-note { margin-top:20px; }
@media(max-width:1050px) {
 .hero-tickets { grid-template-columns:1fr; gap:8px; }
 .hero-ticket { flex-direction:row; flex-wrap:wrap; align-items:baseline; gap:4px 12px; padding:12px 14px; }
 .hero-ticket-label { width:100%; }
 .hero-ticket-date { margin-top:0; }
 .hero-ticket-price { margin-top:0; padding-top:0; width:100%; }
 .proof-band-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px 16px; padding:20px; }
 .proof-band-grid>div:nth-child(3) { padding-left:0; border-left:0; }
}
@media(max-width:680px) {
 .fact-plate { font-size:.875rem; gap:6px 0; }
 .fact-plate>span { display:block; width:100%; }
 .fact-plate>span:not(:last-child)::after { display:none; }
 .hero-tickets { margin-top:22px; }
 .hero-ticket-date { font-size:1.05rem; }
 .proof-band { padding-top:20px; padding-bottom:20px; }
 .proof-band dd { font-size:1.55rem; }
 .proof-band dd.proof-band-text { font-size:1.05rem; }
 .proof-band dt { font-size:.8125rem; }
 .kids-first-screen,.trainings-first-screen { margin-top:-10px; padding-bottom:28px; }
}

/* ============================================================
   Редизайн «Студия», гарнитура Geologica — фундамент (16.09.2026).
   Решения: claude/дизайн-студия-макет-решения-2026-09-16.md.
   Слой лежит последним и переопределяет систему выше.
   ============================================================ */
:root {
 --cream:#f3f1ec;
 --green-bg:#eef2ea; --green-ink:#25382c; --green-line:#8d9e88; --green-button:#d9e2d5;
 --radius:14px;
 --type-display:clamp(2.25rem,.75rem + 6.5vw,5.75rem);
 --type-section:clamp(2rem,.75rem + 4vw,3.75rem);
 --type-subsection:clamp(1.75rem,2.6vw,2.4rem);
 --type-card:clamp(1.375rem,1.8vw,1.625rem);
 --type-lead:clamp(1rem,1.3vw,1.1875rem);
}
body { font-family:Geologica,Onest,Arial,sans-serif; }
/* Заголовки: один вес 400, плотный интерлиньяж; вторая строка — красная. */
h1,h2,h3,.program-copy h3,.rhythm-grid h3,.program-date h3,.footer-phone { font-weight:400; }
:is(.hero,.catalog-intro,.schedule-intro,.detail-hero,.editorial-hero,.person-hero,.performance-hero,.journal-article) h1 { font-weight:400; line-height:.98; letter-spacing:-.03em; }
:is(.section-intro,.stage-copy,.section-heading,.kids-content,.studio-copy,.faq-section,.final-cta,.course-overview-copy,.yandex-reviews,.review-sources,.studio-stats,.corporate-home,.corporate-practice,.faq-contact,.detail-split,.detail-fit,.related-programs,.journal-section,.journal-faq,.journal-conversion,.history-chapters,.person-biography,.gift-steps-new,.advanced-course,.laboratory-overview,.individual-booking,.statement-new,.program-dates,.course-rhythm,.basic-copy,.kids-together) h2 { font-weight:400; line-height:1.04; letter-spacing:-.03em; }
main h1 :is(span,em), main h2 :is(span,em) { color:var(--red); font-style:normal; }
.final-cta h2 :is(span,em) { color:#ffd9d3; }
.stage-copy h2 :is(span,em) { color:#e8877b; }
.legal-document h2 span { color:var(--muted); }
.hero-lead,.detail-hero .detail-lead,.editorial-hero p:not(.eyebrow),.person-hero p:not(.eyebrow),.performance-hero p:not(.eyebrow) { color:var(--muted); line-height:1.55; letter-spacing:0; }
/* Кнопки и текстовые ссылки: скругление 6, вес 500, стрелка без круга. */
.button { border-radius:6px; gap:28px; padding:17px 24px; font-size:15px; font-weight:500; letter-spacing:0; box-shadow:none; }
.button--small { min-height:46px; padding:13px 20px; font-size:13px; gap:22px; }
.button>span[aria-hidden="true"] { width:auto; height:auto; flex:0 0 auto; border:0; border-radius:0; font-size:1.05em; }
.button:hover { transform:translateY(-1px); }
.button--white { border:1px solid var(--line); }
.button--kids,.hero-audiences .button--kids,.hero-entry-actions .button--kids { background:var(--green-button); color:var(--green-ink); border:1px solid var(--green-line); }
.text-link { font-size:15px; font-weight:500; gap:14px; }
.text-link span { font-size:1.05em; }
.eyebrow { font-size:11px; font-weight:600; letter-spacing:.13em; text-transform:uppercase; }
/* Шапка */
.site-header { min-height:88px; padding-top:12px; padding-bottom:12px; background:var(--paper); border-bottom:1px solid var(--line); }
.brand img { width:158px; height:72px; }
.desktop-nav { gap:clamp(14px,1.5vw,22px); font-size:15px; font-weight:500; }
.desktop-nav a::after { bottom:8px; }
.desktop-nav a[aria-current] { color:var(--red); }
.desktop-nav a[aria-current]::after { transform:scaleX(1); }
.more-nav summary { padding:13px 0; font-weight:500; }
.more-nav summary span { font-size:.85em; transition:transform .25s; }
.more-nav[open] summary span { transform:rotate(180deg); }
.desktop-nav .more-nav-panel { top:calc(100% + 10px); width:280px; padding:14px 22px; border-radius:6px; }
.desktop-nav .more-nav-panel a { padding:11px 0; font-size:15px; }
.desktop-nav .more-nav-panel a::after { display:none; }
.header-lead { font-weight:500; }
@media(max-width:1180px) { .desktop-nav { font-size:14px; gap:clamp(12px,1.3vw,18px); } }
@media(max-width:680px) { .site-header { min-height:80px; padding-top:10px; padding-bottom:10px; } .brand img,.site-header .brand img { width:130px; height:59px; } .menu-toggle { border-radius:6px; } }
@media(max-width:400px) { .site-header .brand img { width:116px; height:53px; } }
/* Финальный блок: терракотовый во всю ширину, по центру, белая кнопка «Записаться» + ссылка «Расписание». */
.final-cta { background:var(--red); color:#fff; padding:clamp(72px,8vw,112px) var(--gutter); text-align:center; }
.final-cta>* { max-width:760px; margin-left:auto; margin-right:auto; }
.final-cta .eyebrow { color:#ffffffb3; margin-bottom:26px; }
.final-cta h2 { font-size:var(--type-section); }
.final-cta p:not(.eyebrow) { margin:26px auto; font-size:clamp(1rem,1.3vw,1.1875rem)!important; line-height:1.55; color:#ffffffe0; }
.final-cta p.final-note { font-size:.8125rem!important; color:#ffd9d3; }
.final-actions,.final-cta>.button+.text-link,.final-cta .final-actions { display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:16px clamp(16px,3vw,36px); }
.final-cta .button { margin-top:0; min-width:0; background:var(--paper); color:var(--ink); border-color:transparent; }
.final-cta .button:hover { background:#fff; }
.final-cta .text-link,.final-cta .text-link span,.final-cta .text-link--light,.final-cta .text-link--light span { color:#fff; border-color:#ffffffb3; margin-top:0; }
.final-cta .text-link:hover { border-color:#fff; }
/* Подвал: контактная полоса, три колонки, нижняя строка. */
.site-footer { padding-top:clamp(40px,4vw,56px); padding-bottom:32px; }
.footer-top { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1.6fr) auto; align-items:center; gap:clamp(20px,3vw,48px); padding-bottom:40px; border-bottom:1px solid var(--line); }
.footer-brand-block { display:flex; flex-direction:column; gap:10px; }
.footer-brand img { width:132px; height:60px; }
.footer-brand-block p { font-size:15px; }
.footer-messengers { display:flex; flex-wrap:wrap; gap:10px; }
.footer-messengers a { display:inline-flex; align-items:center; gap:8px; padding:11px 16px; border:1px solid var(--line); border-radius:999px; font-size:14px; font-weight:500; background:#fff; }
.footer-messengers a.footer-pill--ghost { background:transparent; }
.footer-messengers a:hover { color:var(--red); border-color:var(--red); }
.footer-messengers a span { color:var(--red); font-size:1em; }
.footer-phone { font-size:clamp(22px,1.8vw,26px); letter-spacing:-.02em; }
.footer-directory { grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; max-width:none; padding:40px 0; border-top:0; border-bottom:1px solid var(--line); }
.footer-directory h2 { font-size:12px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; margin-bottom:16px; }
.footer-directory a { margin-top:10px; font-size:15px; color:var(--ink); }
.footer-bottom { padding-top:22px; font-size:13px; gap:12px 24px; }
.footer-bottom>div { gap:18px; flex-wrap:wrap; }
.footer-bottom a:hover { color:var(--red); }
@media(max-width:950px) { .footer-top { grid-template-columns:1fr; align-items:start; gap:20px; padding-bottom:28px; } .footer-directory { grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px 20px; padding:28px 0; } }
@media(max-width:680px) { .footer-directory { grid-template-columns:1fr; gap:24px; } .footer-phone { font-size:22px; } .footer-bottom { flex-direction:column; align-items:flex-start; } }
/* Фото: взрослые программы — чёрно-белые; детские — цветные; рисунки, логотипы и педагоги — без фильтра. */
.hero-visual video,.stage-story figure img,.basic-visual img,.detail-hero figure img,.program-photo img,.catalog-photo img,.editorial-card-image img,.journal-article figure img,.overview-start img,.related-programs img,.upcoming-photo img,.reviews-featured img,.review-photo img,.stage-photo img,.course-outcomes-photo img,.performance-photo img,.performance-portrait img { filter:grayscale(1); }
[data-audience="kids"] :is(.detail-hero figure img,.program-photo img,.catalog-photo img,.editorial-card-image img,.related-programs img),.kids-photo img,.home-kids .kids-photo img,.kids-wide img,.catalog-card--kids img,.kids-together img,.studio-art img,.corporate-illustration img { filter:none; }
.teacher>img,.teacher-profile-photo { filter:none; }
.footer-bottom { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; justify-content:normal; }
.footer-bottom>span+span { text-align:center; }
.footer-bottom>div { justify-content:flex-end; gap:22px; }
@media(max-width:950px) { .footer-bottom { grid-template-columns:1fr 1fr; } .footer-bottom>span+span { text-align:left; } .footer-bottom>div { grid-column:1 / -1; justify-content:flex-start; } }
@media(max-width:680px) { .footer-bottom { grid-template-columns:1fr; } }
@media(max-width:400px) { .basic-copy h2,.individual-strip h2 { font-size:2rem; } .basic-spotlight>*,.individual-strip>div { min-width:0; } }
/* ---- Главная по макету «Студия» (этап 2, 16.09.2026) ---- */
.home-page .section-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:24px; margin-bottom:clamp(28px,3vw,44px); }
.home-page .section-heading .eyebrow { margin-bottom:18px; }
.home-page .section-heading .text-link { flex:none; }
/* Ближайшие занятия */
.upcoming-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.upcoming-card { display:flex; flex-direction:column; min-width:0; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; background:#fff; color:var(--ink); }
.upcoming-card:hover strong { color:var(--red); }
.upcoming-photo { position:relative; display:block; aspect-ratio:3/2; overflow:hidden; }
.upcoming-photo img { width:100%; height:100%; object-fit:cover; }
.upcoming-chip { position:absolute; left:14px; bottom:14px; display:flex; align-items:baseline; gap:8px; padding:8px 12px; border-radius:10px; background:var(--paper); color:var(--ink); }
.upcoming-chip b { font-size:28px; font-weight:400; line-height:1; letter-spacing:-.04em; }
.upcoming-chip>span { display:flex; flex-direction:column; font-size:11px; line-height:1.2; font-weight:600; letter-spacing:.06em; text-transform:uppercase; }
.upcoming-chip>span>span:last-child { color:var(--red); }
.upcoming-copy { display:flex; flex-direction:column; gap:8px; padding:22px 24px 26px; }
.upcoming-copy .eyebrow { margin:0; font-size:10px; color:var(--muted); }
.upcoming-copy strong { font-size:var(--type-card); font-weight:400; line-height:1.15; letter-spacing:-.02em; transition:color .2s; }
.upcoming-note { font-size:15px; line-height:1.4; color:var(--muted); }
.upcoming-price { margin-top:4px; font-size:14px; }
/* Как устроено обучение */
.practice-panel { display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(32px,5vw,64px); align-items:center; padding:clamp(40px,5vw,72px) clamp(24px,4vw,56px); background:var(--cream); border-radius:var(--radius); }
.practice-art { display:flex; justify-content:center; }
.practice-art img { width:min(100%,520px); height:auto; }
.practice-copy { display:flex; flex-direction:column; gap:22px; }
.practice-copy .eyebrow { margin:0; }
.practice-lead { max-width:560px; font-size:var(--type-lead); line-height:1.55; color:var(--muted); }
.practice-formats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin-top:8px; }
.practice-formats a { display:flex; flex-direction:column; gap:6px; padding-top:18px; border-top:1px solid var(--ink); }
.practice-formats strong { font-size:22px; font-weight:400; letter-spacing:-.02em; transition:color .2s; }
.practice-formats a:hover strong { color:var(--red); }
.practice-formats span { font-size:14px; color:var(--muted); }
/* Action.Дети */
.kids-panel { display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(28px,5vw,64px); align-items:center; padding:clamp(40px,5vw,72px) clamp(24px,4vw,56px); background:var(--green-bg); border-radius:var(--radius); }
.home-kids .kids-photo { margin:0; border-radius:var(--radius); overflow:hidden; aspect-ratio:4/5; }
.home-kids .kids-photo img { width:100%; height:100%; object-fit:cover; object-position:50% 30%; filter:none; }
.home-kids .kids-content { display:flex; flex-direction:column; gap:22px; }
.kids-tag { font-size:22px; font-weight:500; letter-spacing:-.01em; color:var(--green-ink); }
.kids-tag span { margin:0 6px; color:var(--green-line); }
.kids-lead { max-width:560px; font-size:var(--type-lead); line-height:1.55; color:var(--muted); }
.home-kids .kids-directions { display:flex; flex-direction:column; }
.home-kids .kids-directions a { display:grid; grid-template-columns:180px 1fr auto; gap:24px; align-items:baseline; padding:14px 0; border-top:1px solid var(--green-line); }
.home-kids .kids-directions strong { font-size:22px; font-weight:400; letter-spacing:-.02em; transition:color .2s; }
.home-kids .kids-directions a:hover strong { color:var(--red); }
.home-kids .kids-directions span { font-size:15px; color:var(--muted); }
.home-kids .kids-directions em { font-size:14px; font-style:normal; color:var(--green-ink); white-space:nowrap; }
.kids-actions { display:flex; align-items:center; flex-wrap:wrap; gap:22px; }
.kids-actions span { font-size:14px; color:var(--muted); }
/* Студия */
.home-studio { display:grid; grid-template-columns:1fr .4fr; gap:clamp(24px,5vw,64px); align-items:center; }
.home-studio .studio-copy { display:flex; flex-direction:column; gap:18px; align-items:flex-start; }
.home-studio .studio-copy .eyebrow { margin:0; }
.home-studio .studio-copy p:not(.eyebrow) { max-width:560px; font-size:var(--type-lead); line-height:1.55; color:var(--muted); margin:0; }
.home-studio .studio-art { display:flex; justify-content:center; }
.home-studio .studio-art img { width:min(100%,260px); height:auto; }
/* Отзывы */
.home-reviews { display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(28px,5vw,64px); align-items:start; }
.home-reviews .reviews-summary { display:flex; flex-direction:column; gap:14px; align-items:flex-start; }
.home-reviews .reviews-summary .eyebrow { margin:0 0 4px; }
.home-reviews .reviews-summary h2 { font-size:var(--type-section); }
.home-reviews .reviews-summary h2 [data-yandex-rating] { color:var(--ink); }
.home-reviews .reviews-summary h2 .proof-star { color:var(--red); font-style:normal; font-size:.7em; }
.home-reviews .reviews-summary p { font-size:15px; color:var(--muted); margin:0; }
.home-reviews .reviews-summary p a { border-bottom:1px solid var(--line); }
.home-reviews .reviews-summary p a span[aria-hidden] { color:var(--red); }
.home-reviews .reviews-summary .text-link { margin-top:10px; }
.home-reviews .home-review-cards { grid-template-columns:1fr; border-radius:var(--radius); }
.home-reviews .home-review-cards article { border-radius:10px; }
.home-reviews .home-review-cards article>p { font-size:clamp(1.25rem,1.6vw,1.625rem); font-weight:400; letter-spacing:-.02em; line-height:1.3; }
.home-reviews .review-snapshot-note { grid-column:2; margin-top:0; }
/* Вопросы */
.home-page .faq-section .eyebrow { margin-bottom:18px; }
@media(max-width:1050px) { .upcoming-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .upcoming-card:last-child { grid-column:1 / -1; } .practice-formats { grid-template-columns:1fr; } .home-kids .kids-directions a { grid-template-columns:150px 1fr auto; gap:16px; } }
@media(max-width:820px) { .practice-panel,.kids-panel,.home-studio,.home-reviews { grid-template-columns:1fr; } .practice-art { order:-1; } .practice-art img { width:min(100%,260px); } .home-kids .kids-photo { aspect-ratio:4/3; } .home-studio .studio-art { order:-1; } .home-studio .studio-art img { width:180px; } .home-reviews .review-snapshot-note { grid-column:auto; } .home-page .section-heading { flex-direction:column; align-items:flex-start; } }
@media(max-width:680px) { .upcoming-grid { grid-template-columns:1fr; gap:14px; } .upcoming-card:last-child { grid-column:auto; } .home-kids .kids-directions a { grid-template-columns:1fr; gap:4px; } .home-kids .kids-directions em { justify-self:start; } .kids-tag { font-size:18px; } .practice-formats strong,.home-kids .kids-directions strong { font-size:20px; } }
.home-page .home-reviews { background:transparent; color:var(--ink); box-shadow:none; clip-path:none; }
.home-page .home-reviews .review-snapshot-note { color:var(--muted); }
.home-kids .kids-directions a { border-bottom:0; margin:0; }
.home-kids .kids-directions a:last-child { border-bottom:1px solid var(--green-line); }
@media(max-width:680px) { .teachers-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; } .teacher h3 { font-size:1.125rem; } }
.reviews-quote { margin:0; padding:clamp(24px,3vw,36px); border:1px solid var(--line); border-radius:var(--radius); background:var(--action-stripes),var(--cream); }
.reviews-quote p { margin:0; font-size:clamp(1.25rem,1.8vw,1.625rem); font-weight:400; letter-spacing:-.02em; line-height:1.3; }
.reviews-quote .reviews-quote-meta { margin:20px 0 0; font-size:14px; letter-spacing:0; line-height:1.5; color:var(--muted); }
.reviews-quote .reviews-quote-meta a { border-bottom:1px solid var(--line); }
/* ---- Этап 3 (16.09.2026): Базовый курс и тренинги по макету «Студия» ---- */
.section-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:24px; margin-bottom:clamp(28px,3vw,44px); }
.section-heading .eyebrow { margin-bottom:18px; }
.section-heading .text-link { flex:none; }
.detail-hero .hero-actions { display:flex; flex-wrap:wrap; align-items:center; gap:16px 24px; margin-top:26px; }
/* Карточка группы */
.group-card { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); gap:0; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; background:#fff; }
.group-main { grid-row:span 2; padding:clamp(24px,3vw,40px); border-right:1px solid var(--line); display:flex; flex-direction:column; gap:14px; }
.group-status { font-size:15px; color:var(--red); font-weight:500; }
.group-dates { font-size:clamp(2rem,3.6vw,3.25rem); font-weight:400; line-height:1.04; letter-spacing:-.03em; }
.group-note { color:var(--muted); font-size:15px; line-height:1.5; max-width:46ch; }
.group-meeting { padding:14px 16px; border-radius:10px; background:var(--action-stripes),var(--cream); font-size:15px; line-height:1.5; }
.group-meeting strong { font-weight:500; }
.group-actions { display:flex; flex-wrap:wrap; align-items:center; gap:14px 24px; margin-top:8px; }
.group-facts { margin:0; padding:clamp(20px,2.5vw,32px); display:grid; grid-template-columns:1fr 1fr; gap:18px 24px; border-bottom:1px solid var(--line); }
.group-facts div { min-width:0; }
.group-facts dt { font-size:11px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); margin-bottom:6px; }
.group-facts dd { margin:0; font-size:1.0625rem; line-height:1.4; }
.group-payment { padding:clamp(20px,2.5vw,32px); background:var(--cream); }
.group-payment-title { font-size:11px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); margin-bottom:14px; }
.group-payment-options { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.group-payment-options strong { display:block; font-size:clamp(1.5rem,2.2vw,2rem); font-weight:400; letter-spacing:-.02em; line-height:1.1; }
.group-payment-options span { display:block; margin-top:4px; font-size:14px; color:var(--muted); }
.group-payment-bonus { margin-top:8px!important; color:var(--ink)!important; font-size:13px!important; }
.group-payment-note { margin-top:16px; font-size:13px; color:var(--muted); line-height:1.5; }
.group-online { font-size:15px; }
/* Неделя */
.course-week-lead { max-width:62ch; font-size:var(--type-lead); line-height:1.55; color:var(--muted); margin:-12px 0 32px; }
.course-week-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.course-week-item { padding:24px 0 0; border-top:2px solid var(--line); }
.course-week-item--main { border-color:var(--red); }
.course-week-hours { display:flex; align-items:baseline; gap:6px; font-size:15px; color:var(--muted); }
.course-week-hours b { font-size:clamp(2.25rem,3.6vw,3.25rem); font-weight:400; letter-spacing:-.04em; line-height:1; color:var(--ink); }
.course-week-item h3 { margin-top:14px; font-size:var(--type-card); font-weight:400; letter-spacing:-.02em; }
.course-week-when { margin:6px 0 12px; font-size:14px; color:var(--red); }
.course-week-item p:last-child { font-size:15px; line-height:1.55; color:var(--muted); }
/* Что развиваем / для кого */
.course-fit-grid { display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,5vw,64px); }
.course-fit-grid h2 { font-size:var(--type-subsection); }
.course-list { list-style:none; margin:24px 0 0; padding:0; }
.course-list li { padding:14px 0; border-top:1px solid var(--line); font-size:1.0625rem; line-height:1.45; }
.course-list li:last-child { border-bottom:1px solid var(--line); }
/* Педагоги курса */
.course-teachers-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.course-teacher { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:20px; padding:20px; border:1px solid var(--line); border-radius:var(--radius); background:#fff; }
.course-teacher img { width:100%; height:100%; aspect-ratio:4/5; object-fit:cover; object-position:50% 20%; border-radius:10px; filter:none; }
.course-teacher h3 { font-size:var(--type-card); font-weight:400; letter-spacing:-.02em; }
.course-teacher-role { margin:6px 0 14px; font-size:14px; color:var(--muted); line-height:1.45; }
.course-teacher dl { margin:0; display:grid; gap:10px; }
.course-teacher dt { font-size:10px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); }
.course-teacher dd { margin:2px 0 0; font-size:14px; line-height:1.45; }
.course-teacher .text-link { margin-top:16px; }
.course-teachers-note { margin-top:24px; font-size:15px; color:var(--muted); }
/* Выпускники */
.graduates-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.graduate-quote { margin:0; padding:24px 28px; border:1px solid var(--line); border-radius:var(--radius); background:#fff; display:flex; flex-direction:column; }
.graduate-quote--big { grid-row:span 3; background:var(--action-stripes),var(--cream); }
.graduate-quote p:first-child { flex:1; font-size:1.0625rem; line-height:1.5; }
.graduate-quote--big p:first-child { font-size:clamp(1.125rem,1.5vw,1.375rem); letter-spacing:-.01em; line-height:1.4; }
.graduate-meta { margin-top:18px; font-size:13px; color:var(--muted); }
.graduate-meta strong { color:var(--ink); font-weight:500; }
.graduate-meta a { border-bottom:1px solid var(--line); }
.course-meeting .meeting-announcement { margin:0; }
/* Тренинги: три причины, забота, ближайшие даты */
.reasons-grid { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.reasons-grid li { padding-top:20px; border-top:1px solid var(--ink); }
.reason-number { display:block; font-size:12px; font-weight:600; letter-spacing:.12em; color:var(--red); margin-bottom:12px; }
.reasons-grid h3 { font-size:var(--type-card); font-weight:400; letter-spacing:-.02em; line-height:1.15; }
.reasons-grid p { margin-top:10px; font-size:15px; color:var(--muted); line-height:1.5; }
.reasons-facts { margin-top:32px; padding-top:20px; border-top:1px solid var(--line); font-size:15px; color:var(--muted); }
.care-panel { display:grid; grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr); gap:clamp(28px,5vw,64px); align-items:center; padding:clamp(40px,5vw,72px) clamp(24px,4vw,56px); background:var(--cream); border-radius:var(--radius); }
.care-art { display:flex; justify-content:center; }
.care-art img { width:min(100%,260px); height:auto; }
.care-copy .eyebrow { margin-bottom:18px; }
.care-list { list-style:none; margin:24px 0 0; padding:0; }
.care-list li { padding:14px 0; border-top:1px solid var(--line); font-size:1.0625rem; line-height:1.5; }
.dates-rows { display:flex; flex-direction:column; border-top:1px solid var(--ink); }
.dates-row { display:grid; grid-template-columns:120px minmax(0,1.6fr) minmax(0,.7fr) minmax(0,1fr) auto; gap:20px; align-items:center; padding:18px 0; border-bottom:1px solid var(--line); color:var(--ink); }
.dates-row:hover strong,.dates-row:hover .dates-row-action { color:var(--red); }
.dates-row-day b { display:block; font-size:1.25rem; font-weight:400; letter-spacing:-.02em; }
.dates-row-day span { font-size:14px; color:var(--red); }
.dates-row-title strong { display:block; font-size:1.125rem; font-weight:400; letter-spacing:-.02em; transition:color .2s; }
.dates-row-title span { font-size:14px; color:var(--muted); }
.dates-row-spots,.dates-row-price { font-size:14px; color:var(--muted); }
.dates-row-action { font-size:15px; font-weight:500; white-space:nowrap; transition:color .2s; }
.dates-empty { font-size:1.0625rem; color:var(--muted); }
.dates-empty .text-link { margin-left:12px; }
.dates-links { margin-top:12px; font-size:15px; }
.dates-links a { border-bottom:1px solid var(--line); }
.dates-links a:hover { color:var(--red); border-color:var(--red); }
@media(max-width:1050px) { .course-week-grid,.reasons-grid { grid-template-columns:1fr; gap:20px; } .dates-row { grid-template-columns:100px minmax(0,1.6fr) minmax(0,1fr) auto; } .dates-row-spots { display:none; } }
@media(max-width:820px) { .group-card { grid-template-columns:1fr; } .group-main { grid-row:auto; border-right:0; border-bottom:1px solid var(--line); } .course-fit-grid,.course-teachers-grid,.graduates-grid,.care-panel { grid-template-columns:1fr; } .graduate-quote--big { grid-row:auto; } .care-art { order:-1; } .care-art img { width:180px; } .section-heading { flex-direction:column; align-items:flex-start; } }
@media(max-width:680px) { .group-facts,.group-payment-options { grid-template-columns:1fr; } .course-teacher { grid-template-columns:1fr; } .course-teacher img { aspect-ratio:1/1; } .dates-row { grid-template-columns:1fr; gap:6px; } .dates-row-action { justify-self:start; } .themes-grid { grid-template-columns:1fr; } }
.fact-plate>span::after { content:'·'; margin:0 12px; color:var(--muted); }
.fact-plate>span:last-child::after,.fact-plate>span:has(>[hidden])::after,.fact-plate>span:has(+ span:last-child > [hidden])::after { content:none; }
.detail-hero h1 { font-size:clamp(2.25rem,.5rem + 4.6vw,4.5rem); }
/* ---- Этап 4 (16.09.2026): Action.Дети по макету ---- */
.kids-directions-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.kids-direction { display:flex; flex-direction:column; min-width:0; border:1px solid var(--green-line); border-radius:var(--radius); overflow:hidden; background:#fff; }
.kids-direction-photo { display:block; aspect-ratio:3/2; overflow:hidden; }
.kids-direction-photo img { width:100%; height:100%; object-fit:cover; filter:none; }
.kids-direction-copy { display:flex; flex-direction:column; gap:12px; padding:22px 24px 26px; flex:1; }
.kids-direction-copy .eyebrow { margin:0; font-size:10px; color:var(--green-ink); }
.kids-direction-copy h3 { font-size:var(--type-card); font-weight:400; letter-spacing:-.02em; }
.kids-direction-copy h3 a:hover { color:var(--red); }
.kids-direction-text { font-size:15px; line-height:1.45; color:var(--muted); }
.kids-groups { display:flex; flex-direction:column; margin-top:4px; }
.kids-group { display:grid; grid-template-columns:auto 1fr; gap:2px 14px; padding:10px 0; border-top:1px solid var(--line); font-size:14px; }
.kids-group strong { grid-row:span 2; align-self:start; font-weight:500; }
.kids-group span:last-child { color:var(--muted); }
.kids-direction-price { margin-top:auto; padding-top:12px; border-top:1px solid var(--line); display:flex; flex-direction:column; gap:2px; }
.kids-direction-price strong { font-size:1.25rem; font-weight:400; letter-spacing:-.02em; }
.kids-direction-price span { font-size:14px; color:var(--muted); }
.kids-direction-next { font-size:14px; color:var(--red); }
.kids-direction .button { align-self:flex-start; margin-top:4px; }
.kids-develop-head { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:clamp(24px,5vw,64px); align-items:center; margin-bottom:36px; }
.kids-develop-head .eyebrow { margin-bottom:18px; }
.kids-develop-head img { width:100%; max-width:300px; height:auto; justify-self:end; }
.kids-develop-lead { max-width:56ch; margin-top:22px; font-size:var(--type-lead); line-height:1.55; color:var(--muted); }
.kids-develop-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px 40px; }
.kids-develop-grid article { padding-top:18px; border-top:1px solid var(--green-line); }
.kids-develop-grid h3 { font-size:var(--type-card); font-weight:400; letter-spacing:-.02em; }
.kids-develop-grid p { margin-top:10px; font-size:15px; line-height:1.55; color:var(--muted); }
.kids-shows-grid { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:clamp(20px,3vw,40px); align-items:start; }
.kids-shows-photo { margin:0; border-radius:var(--radius); overflow:hidden; aspect-ratio:4/5; }
.kids-shows-photo img { width:100%; height:100%; object-fit:cover; object-position:50% 25%; filter:none; }
.kids-shows-photo--wide { aspect-ratio:3/2; margin-bottom:28px; }
.kids-shows-copy .eyebrow { margin-bottom:14px; }
.kids-shows-lead { font-size:var(--type-lead); line-height:1.5; margin-bottom:14px; }
.kids-shows-copy p:not(.eyebrow):not(.kids-shows-lead) { font-size:15px; line-height:1.55; color:var(--muted); }
.kids-shows-actions { display:flex; flex-wrap:wrap; align-items:center; gap:14px 24px; margin-top:22px; }
.kids-group-cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:20px; max-width:900px; }
.kids-group-card { display:flex; flex-direction:column; gap:8px; padding:24px; border:1px solid var(--green-line); border-radius:var(--radius); background:var(--green-bg); }
.kids-group-card .eyebrow { margin:0 0 6px; color:var(--green-ink); }
.kids-group-when { font-size:clamp(1.375rem,2vw,1.75rem); font-weight:400; letter-spacing:-.02em; line-height:1.15; }
.kids-group-venue { color:var(--muted); font-size:15px; }
.kids-group-card .kids-direction-price { border-color:var(--green-line); }
.kids-group-card .button { align-self:flex-start; margin-top:8px; }
.related-links { display:flex; flex-wrap:wrap; gap:14px 32px; }
@media(max-width:1050px) { .kids-directions-grid { grid-template-columns:1fr; max-width:640px; } .kids-develop-head { grid-template-columns:1fr; } .kids-develop-head img { justify-self:start; max-width:200px; } }
@media(max-width:820px) { .kids-shows-grid,.kids-develop-grid { grid-template-columns:1fr; } .kids-shows-photo { aspect-ratio:4/3; } }
/* ---- Этап 5 (16.09.2026): расписание карточками по макету ---- */
.schedule-intro h1 { font-size:var(--type-display); font-weight:400; letter-spacing:-.03em; line-height:.98; }
.schedule-intro>div:last-child p { max-width:46ch; font-size:var(--type-lead); line-height:1.55; }
.schedule-toolbar { padding:16px 24px; border:0; border-radius:var(--radius); background:var(--cream); top:96px; }
.filter-row button { border-radius:999px; }
.schedule-month-title { font-size:var(--type-subsection); font-weight:400; letter-spacing:-.03em; text-transform:none; }
.schedule-month-title::first-letter { text-transform:uppercase; }
.events-grid { gap:20px; }
.event-card { display:grid; grid-template-rows:auto 1fr; border-radius:var(--radius); background:#fff; }
.event-date { display:contents; }
.event-photo { grid-area:1/1; aspect-ratio:3/2; overflow:hidden; }
.event-photo img { width:100%; height:100%; aspect-ratio:auto; object-fit:cover; }
.event-date time { grid-area:1/1; z-index:1; align-self:end; justify-self:start; margin:14px; display:flex; align-items:baseline; gap:8px; padding:8px 12px; border-radius:10px; background:var(--paper); color:var(--ink); }
.event-date time>strong { font-size:28px; font-weight:400; line-height:1; letter-spacing:-.04em; }
.event-date time>span { font-size:11px; line-height:1.2; font-weight:600; letter-spacing:.06em; text-transform:uppercase; }
.event-date time>span br + *, .event-date time>span { color:var(--ink); }
.event-spots { grid-area:1/1; z-index:1; align-self:start; justify-self:end; margin:14px; padding:7px 10px; border-radius:999px; border:0; background:var(--paper); font-size:12px; font-weight:500; }
.event-copy { grid-area:2/1; padding:22px 24px 26px; gap:8px; }
.event-copy .eyebrow { margin-bottom:0; font-size:10px; }
.event-copy h3 { font-size:var(--type-card); font-weight:400; letter-spacing:-.02em; line-height:1.15; }
.event-description { font-size:15px; line-height:1.45; color:var(--muted); }
.event-facts { margin-top:auto; padding:16px 0; }
.event-facts dt { font-size:10px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; margin-bottom:4px; }
.event-bottom { padding-top:16px; }
.event-bottom strong { font-size:1.25rem; font-weight:400; letter-spacing:-.02em; }
.schedule-empty h2 { font-weight:400; letter-spacing:-.03em; }
.schedule-empty h2::after { content:none; }
@media(max-width:680px) { .schedule-toolbar { padding:14px 16px; top:80px; } .events-grid { grid-template-columns:1fr; gap:14px; } }
/* ---- Этап 5: отзывы и контакты по макету ---- */
.reviews-hero { align-items:start; }
.reviews-sources-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; margin:32px 0 0; padding:24px 0 0; border-top:1px solid var(--line); }
.reviews-sources-grid dt { font-size:11px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); margin-bottom:8px; }
.reviews-sources-grid dd { margin:0; font-size:clamp(1.75rem,2.6vw,2.5rem); font-weight:400; letter-spacing:-.03em; line-height:1.05; }
.reviews-sources-grid dd .proof-star { color:var(--red); font-style:normal; font-size:.7em; }
.reviews-sources-grid dd.reviews-source-note { margin-top:6px; font-size:14px; letter-spacing:0; color:var(--muted); }
.reviews-sources-grid dd.reviews-source-note a { border-bottom:1px solid var(--line); }
.reviews-featured { position:relative; margin:0; border-radius:var(--radius); overflow:hidden; background:var(--ink); aspect-ratio:4/5; }
.reviews-featured img { width:100%; height:100%; object-fit:cover; opacity:.45; }
.reviews-featured figcaption { position:absolute; inset:auto 0 0; padding:clamp(20px,3vw,36px); color:#fff; }
.reviews-featured .review-item-label { color:#ffffffb3; }
.reviews-featured blockquote { margin:0; }
.reviews-featured blockquote p:first-child { font-size:clamp(1.125rem,1.6vw,1.5rem); line-height:1.35; letter-spacing:-.015em; }
.reviews-featured .review-item-meta { margin-top:14px; color:#ffffffcc; }
.reviews-featured .review-item-meta strong,.reviews-featured .review-item-meta a { color:#fff; }
.reviews-wall .section-note { max-width:70ch; margin-top:0; }
.reviews-filters { margin:24px 0 28px; padding:14px 20px; border-radius:var(--radius); background:var(--cream); }
.reviews-filters .filter-row { gap:10px 24px; }
.reviews-filters [role="group"] { display:flex; flex-wrap:wrap; gap:8px; }
.reviews-filters button { min-height:38px; padding:0 14px; border:1px solid var(--line); border-radius:999px; background:#fff; color:var(--ink); font:inherit; font-size:14px; font-weight:500; cursor:pointer; }
.reviews-filters button[aria-pressed="true"] { background:var(--ink); color:var(--paper); border-color:var(--ink); }
.reviews-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; grid-auto-flow:dense; }
.review-item { margin:0; display:flex; flex-direction:column; padding:24px 26px; border:1px solid var(--line); border-radius:var(--radius); background:#fff; }
.review-item-label { font-size:11px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); margin-bottom:12px; }
.review-item-text { flex:1; font-size:1.0625rem; line-height:1.5; }
.review-item-meta { margin-top:18px; font-size:13px; color:var(--muted); }
.review-item-meta strong { color:var(--ink); font-weight:500; }
.review-item-meta a { border-bottom:1px solid var(--line); }
.review-photo { margin:0; border-radius:var(--radius); overflow:hidden; aspect-ratio:3/2; }
.review-photo img { width:100%; height:100%; object-fit:cover; }
.reviews-empty { color:var(--muted); }
[data-reviews-more] { margin-top:24px; }
.reviews-invite { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(24px,5vw,64px); align-items:center; padding-top:48px; border-top:1px solid var(--line); }
.reviews-invite .eyebrow { margin-bottom:18px; }
.reviews-invite p:not(.eyebrow) { max-width:50ch; margin-top:18px; font-size:var(--type-lead); line-height:1.55; color:var(--muted); }
.reviews-invite-links { display:flex; flex-direction:column; gap:10px; align-items:flex-start; }
/* Контакты */
.contacts-hero { align-items:start; }
.contact-links--grid { grid-template-columns:1fr; gap:0; }
.contact-links--grid>a { grid-template-columns:1fr auto; padding:18px 0; }
.contact-links--grid strong { font-size:clamp(1.125rem,1.6vw,1.5rem); font-weight:400; letter-spacing:-.02em; }
.contact-links--grid small { grid-column:1; font-size:13px; color:var(--muted); }
.contact-links--grid>a:first-child { border-top:0; }
.venue-cards--maps { gap:20px; }
.venue-cards--maps .venue-card { padding:0; overflow:hidden; border-radius:var(--radius); display:flex; flex-direction:column; }
.venue-map { position:relative; aspect-ratio:650/450; background:var(--cream); overflow:hidden; }
.venue-map img { width:100%; height:100%; object-fit:cover; }
.venue-map iframe { width:100%; height:100%; border:0; display:block; }
.venue-pin { position:absolute; left:50%; top:50%; width:18px; height:18px; margin:-22px 0 0 -9px; border-radius:50% 50% 50% 0; background:var(--red); transform:rotate(-45deg); box-shadow:0 2px 6px #00000033; }
.venue-pin::after { content:''; position:absolute; inset:5px; border-radius:50%; background:#fff; }
.venue-map--live .venue-pin { display:none; }
.venue-map-open { position:absolute; left:16px; bottom:16px; min-height:44px; padding:11px 16px; font-size:13px; }
.venue-copy { padding:24px 28px 28px; display:flex; flex-direction:column; gap:8px; }
.venue-copy .eyebrow { margin:0 0 6px; }
.venue-copy h3 { font-size:var(--type-card); font-weight:400; letter-spacing:-.02em; }
.venue-cards--maps .venue-copy p { margin:0; }
.venue-address { font-size:1.0625rem; }
.venue-how { font-size:15px; color:var(--muted); line-height:1.5; }
.venue-cards--maps .venue-copy .text-link { margin-top:10px; align-self:flex-start; }
.contacts-channel { display:grid; grid-template-columns:1fr 1fr; gap:clamp(24px,5vw,64px); align-items:center; }
.contacts-channel .eyebrow { margin-bottom:18px; }
.contacts-channel p { margin-bottom:16px; font-size:var(--type-lead); color:var(--muted); }
.document-links { display:flex; flex-wrap:wrap; gap:12px 32px; padding-bottom:48px; }
@media(max-width:1050px) { .reviews-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:820px) { .reviews-sources-grid { grid-template-columns:1fr; gap:14px; } .reviews-featured { aspect-ratio:4/3; } .reviews-invite,.contacts-channel { grid-template-columns:1fr; } .venue-cards--maps { grid-template-columns:1fr; } }
@media(max-width:680px) { .reviews-grid { grid-template-columns:1fr; } }

/* ---------- Редизайн «Студия», этап 6 (16.09.2026): форматы, индивидуальные, корпоративным клиентам, педагоги, студия, сертификат, вопросы ---------- */
.detail-hero--text { grid-template-columns:minmax(0,1fr); padding-bottom:24px; }
.detail-hero--text .detail-lead { max-width:62ch; }
.detail-hero--text .detail-lead a { color:inherit; text-decoration:underline; text-underline-offset:3px; }
.editorial-redesign-hero .hero-actions { margin-top:26px; }
.section-lead { max-width:62ch; margin:-8px 0 32px; font-size:var(--type-lead,1.125rem); line-height:1.45; color:var(--muted); letter-spacing:-.01em; }
.reason-tags { margin-top:8px; font-size:12px; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); }
.reason-tags+p { margin-top:12px; }
.reasons-grid--two { grid-template-columns:repeat(2,minmax(0,1fr)); }
.reasons-grid--four { grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; }
.button>span[data-next-event] { font-size:inherit; line-height:inherit; }
.reasons-grid--four h3 { font-size:1.25rem; }
@media(max-width:1050px) { .reasons-grid.reasons-grid--four { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:680px) { .reasons-grid.reasons-grid--four { grid-template-columns:1fr; } }
.steps-list { list-style:none; margin:26px 0 0; padding:0; display:grid; gap:20px; }
.steps-list li { display:grid; grid-template-columns:40px minmax(0,1fr); gap:4px 12px; padding-top:16px; border-top:1px solid var(--line); }
.steps-list li:first-child { border-top:0; padding-top:0; }
.steps-list .reason-number { grid-row:span 3; font-size:13px; color:var(--red); padding-top:6px; }
.steps-list h3 { font-size:1.25rem; font-weight:400; letter-spacing:-.02em; line-height:1.2; }
.steps-list p { font-size:15px; line-height:1.5; color:var(--muted); }
.steps-panel { align-items:start; }
.steps-panel .care-art { padding-top:12px; }
.course-teacher--wide { grid-template-columns:minmax(0,.55fr) minmax(0,1.45fr); }
.course-teacher--wide dl { grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px 24px; }
.course-teacher-note { margin-top:14px; font-size:15px; line-height:1.5; color:var(--muted); }
.course-teacher .eyebrow { margin:0 0 10px; }
.teacher-numbers { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin:22px 0 0; padding-top:18px; border-top:1px solid var(--line); }
.teacher-numbers dd { margin:0; font-size:clamp(1.5rem,2.4vw,2rem); font-weight:400; letter-spacing:-.03em; line-height:1; }
.teacher-numbers dt { margin-top:6px; font-size:13px; color:var(--muted); line-height:1.35; }
.corporate-for-grid { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,.7fr); gap:clamp(32px,6vw,96px); align-items:start; }
.corporate-for-list { list-style:none; margin:16px 0 0; padding:0; display:grid; }
.corporate-for-list li { display:grid; grid-template-columns:40px minmax(0,1fr); gap:2px 12px; padding:16px 0; border-top:1px solid var(--line); }
.corporate-for-list .reason-number { grid-row:span 2; font-size:13px; color:var(--red); padding-top:5px; }
.corporate-for-list h3 { font-size:1.25rem; font-weight:400; letter-spacing:-.02em; line-height:1.2; }
.corporate-numbers { grid-template-columns:1fr; gap:22px; margin:0; padding:0; border-top:0; }
.corporate-numbers div { padding-top:16px; border-top:1px solid var(--line); }
.corporate-numbers dd { font-size:clamp(2rem,3.4vw,3rem); }
.corporate-clients .section-note { max-width:70ch; }
.catalog-logos { position:absolute; inset:0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0; padding:16px; background:var(--cream); }
.catalog-logos ul { display:contents; list-style:none; margin:0; padding:0; }
.catalog-logos li { display:flex; align-items:center; justify-content:center; min-width:0; padding:8px; }
.catalog-logos .corporate-client-logo { max-width:92px; height:34px; object-fit:contain; }
.catalog-logos .corporate-client-logo--monochrome { filter:brightness(0); }
.catalog-logos .corporate-client-logo--padded { max-width:100px; height:40px; }
.catalog-logos .corporate-client-logo--badge { max-width:56px; }
.catalog-tile .upcoming-price b { font-weight:500; }
.catalog-tile--kids img { filter:none; }
.catalog-section--kids .upcoming-card:hover strong { color:#25382c; }
.cases-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.case-card { padding:22px 0 0; border-top:1px solid var(--ink); }
.case-card .eyebrow { margin:0 0 12px; }
.case-card h3 { font-size:var(--type-card); font-weight:400; letter-spacing:-.02em; line-height:1.15; }
.case-card p:last-child { margin-top:12px; font-size:15px; line-height:1.5; color:var(--muted); }
.corporate-lead-grid { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,.9fr); gap:24px; align-items:stretch; }
.corporate-lead-grid .graduate-quote { grid-row:auto; }
.corporate-lead-grid .graduate-meta a { color:inherit; }
.teachers-grid--directory { grid-template-columns:repeat(4,minmax(0,1fr)); }
.teachers-grid--directory .teacher h3 { font-size:clamp(18px,1.6vw,24px); }
.teacher-directory-card { min-width:0; }
.teacher-schedule-note { margin-top:26px; }
.studio-tiles { grid-template-columns:repeat(4,minmax(0,1fr)); }
.studio-tiles .upcoming-price { color:var(--red); }
.method-panel { grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr); }
.method-panel .section-lead { margin:0; }
.care-art--wide img { width:min(100%,300px); }
.gift-figure img { filter:none; object-fit:contain; background:var(--cream); aspect-ratio:1.1; object-position:center; }
.gift-tiles { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.gift-tile { display:flex; flex-direction:column; gap:10px; padding:26px 28px 28px; border:1px solid var(--line); border-radius:var(--radius); background:#fff; }
.gift-tile .eyebrow { margin:0; }
.gift-price { font-size:clamp(1.75rem,2.6vw,2.4rem); font-weight:400; letter-spacing:-.03em; line-height:1; }
.gift-tile p:not(.eyebrow):not(.gift-price) { flex:1; font-size:15px; line-height:1.5; color:var(--muted); }
.gift-tile .button { align-self:flex-start; margin-top:8px; }
.faq-groups .faq-group+.faq-group { padding-top:0; }
.detail-hero--long h1 { font-size:clamp(2.1rem,3.4vw,3.5rem); }
.corporate-hero figure img { aspect-ratio:auto; object-fit:contain; }
.detail-hero .gift-figure img { filter:none; object-fit:contain; background:#fff; aspect-ratio:1; }
.course-teacher--wide dl.teacher-numbers { grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.corporate-lead-grid .graduate-quote>p:nth-of-type(1) { flex:1; font-size:clamp(1.125rem,1.5vw,1.375rem); letter-spacing:-.01em; line-height:1.4; }
.corporate-lead-grid .graduate-quote .eyebrow { display:block; margin:0 0 16px; }
.teachers-grid--five { grid-template-columns:repeat(5,minmax(0,1fr)); }
.teachers-grid--five .teacher h3 { font-size:clamp(17px,1.4vw,21px); }
.faq-group .faq-list details>div p+p { margin-top:14px; }
@media(max-width:1050px) {
  .teachers-grid--directory,.studio-tiles { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .teachers-grid--five { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .studio-tiles .upcoming-card:last-child { grid-column:auto; }
  .catalog-tiles .upcoming-card:last-child { grid-column:auto; }
  .course-teacher--wide { grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); }
  .corporate-for-grid { grid-template-columns:1fr; gap:28px; }
  .corporate-numbers { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .corporate-numbers div { border-top:1px solid var(--line); }
}
@media(max-width:820px) {
  .reasons-grid--two,.cases-grid,.corporate-lead-grid,.gift-tiles { grid-template-columns:1fr; }
  .method-panel { grid-template-columns:1fr; }
  .method-panel .care-art { order:-1; }
  .course-teacher--wide { grid-template-columns:1fr; }
  .course-teacher--wide dl { grid-template-columns:1fr; }
}
@media(max-width:680px) {
  .teachers-grid--directory,.teachers-grid--five,.studio-tiles { grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
  .studio-tiles { grid-template-columns:1fr; }
  .teacher-numbers,.corporate-numbers,.course-teacher--wide dl.teacher-numbers { grid-template-columns:1fr; gap:14px; }
  .catalog-logos { padding:10px; }
  .catalog-logos .corporate-client-logo { max-width:72px; height:28px; }
  .section-lead { font-size:1.0625rem; margin-bottom:24px; }
  .steps-list li,.corporate-for-list li { grid-template-columns:32px minmax(0,1fr); }
}

/* ---------- /m — выбор мессенджера (ссылка из SMS): без шапки и подвала ---------- */
.messenger-page { background:var(--cream); }
.messenger-page main { min-height:100svh; display:grid; place-items:center; padding:clamp(24px,5vw,64px) 16px; }
.messenger-choice { width:min(100%,560px); padding:clamp(28px,5vw,48px); border:1px solid var(--line); border-radius:var(--radius); background:var(--paper); }
.messenger-brand { display:inline-block; margin-bottom:clamp(28px,5vw,44px); }
.messenger-brand img { display:block; width:130px; height:59px; object-fit:contain; filter:invert(1); }
.messenger-choice .eyebrow { margin-bottom:14px; }
.messenger-choice h1 { font-size:clamp(2.25rem,8vw,3.5rem); font-weight:400; line-height:1.02; letter-spacing:-.03em; }
.messenger-choice h1 span { color:var(--red); }
.messenger-lead { margin:18px 0 28px; max-width:34ch; font-size:1.0625rem; line-height:1.45; color:var(--muted); }
.messenger-list { display:grid; gap:10px; }
.messenger-list a { display:grid; grid-template-columns:minmax(0,1fr) auto; grid-template-rows:auto auto; column-gap:16px; align-items:center; padding:18px 20px; border:1px solid var(--line); border-radius:10px; background:#fff; color:var(--ink); text-decoration:none; transition:border-color .2s,color .2s; }
.messenger-list a:hover,.messenger-list a:focus-visible { border-color:var(--red); color:var(--red); outline:none; }
.messenger-list strong { font-size:1.25rem; font-weight:500; letter-spacing:-.02em; }
.messenger-list span { grid-column:1; font-size:14px; color:var(--muted); }
.messenger-list i { grid-row:1 / 3; grid-column:2; font-style:normal; color:var(--red); }
.messenger-phone { margin:26px 0 0; font-size:14px; color:var(--muted); }
.messenger-phone a { color:var(--ink); text-decoration:underline; text-underline-offset:3px; }
.messenger-links { display:flex; flex-wrap:wrap; gap:8px 24px; margin:22px 0 0; padding-top:20px; border-top:1px solid var(--line); font-size:14px; }
.messenger-links a { color:var(--ink); text-decoration:none; }
.messenger-links a:hover { color:var(--red); }
@media(max-width:400px) { .messenger-choice { padding:24px 20px; } .messenger-list a { padding:16px; } }

/* Курсы продолжения (этап 8): ступени ProfAction, неделя из четырёх плиток, шаги поступления, «что на выходе» с фото. */
.stages-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.stage-card { display:flex; flex-direction:column; border:1px solid var(--line); border-radius:var(--radius); background:#fff; overflow:hidden; }
.stage-photo { margin:0; aspect-ratio:3/2; overflow:hidden; }
.stage-photo img { width:100%; height:100%; object-fit:cover; }
.stage-card .eyebrow { margin:22px 24px 0; }
.stage-card h3 { margin:10px 24px 0; font-size:clamp(2rem,3.4vw,2.75rem); font-weight:400; letter-spacing:-.03em; line-height:1; }
.stage-card h3 span { color:var(--red); }
.stage-card p { margin:14px 24px 0; font-size:15px; line-height:1.55; color:var(--muted); }
.stage-card .stage-finish { margin-top:auto; padding:14px 0 24px; color:var(--ink); }
.stage-card .stage-finish::before { content:''; display:block; height:1px; background:var(--line); margin-bottom:14px; }
.course-week-grid--four { grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; }
.course-week-grid--four .course-week-item h3 { margin-top:0; }
.steps-list--wide li { grid-template-columns:44px minmax(0,1fr); }
.steps-panel { grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr); }
.steps-panel .care-copy { min-width:0; }
.steps-panel .care-art { justify-self:center; }
@media(max-width:820px) { .care-panel.steps-panel { grid-template-columns:1fr; } .steps-panel .care-art { justify-self:start; } }
.course-outcomes-grid { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); gap:clamp(28px,5vw,64px); align-items:start; }
.course-outcomes-grid .section-heading { margin-bottom:8px; }
.course-outcomes-photo { margin:0; }
.course-outcomes-photo img { width:100%; height:auto; border-radius:var(--radius); }
.course-outcomes-photo figcaption { margin-top:10px; font-size:13px; color:var(--muted); }
.outcome-list li { display:flex; justify-content:space-between; gap:16px; align-items:baseline; }
.outcome-list li small { flex:0 0 auto; font-size:13px; letter-spacing:.04em; color:var(--red); text-transform:uppercase; }
@media(max-width:1050px) { .stages-grid { grid-template-columns:1fr; max-width:640px; } .course-week-grid--four { grid-template-columns:repeat(2,minmax(0,1fr)); } .course-outcomes-grid { grid-template-columns:1fr; } }
@media(max-width:680px) { .course-week-grid.course-week-grid--four { grid-template-columns:1fr; } .outcome-list li { flex-direction:column; gap:6px; } }
/* Педагог (этап 8): строки биографии на первом экране, портрет без фото-рамки, «Как работает». */
.teacher-rows { margin:22px 0 0; display:grid; gap:0; }
.teacher-rows div { display:grid; grid-template-columns:120px minmax(0,1fr); gap:12px; padding:12px 0; border-top:1px solid var(--line); }
.teacher-rows div:last-child { border-bottom:1px solid var(--line); }
.teacher-rows dt { font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); padding-top:3px; }
.teacher-rows dd { margin:0; font-size:15px; line-height:1.5; }
.teacher-hero .hero-actions { margin-top:26px; }
.teacher-portrait { margin:0; }
.detail-hero .teacher-portrait img { width:100%; height:auto; aspect-ratio:760/810; object-fit:cover; object-position:50% 15%; border-radius:var(--radius); filter:none; }
.care-text { margin-top:18px; max-width:56ch; font-size:1.0625rem; line-height:1.6; }
@media(max-width:680px) { .teacher-rows div { grid-template-columns:1fr; gap:4px; } }
/* «Для жизни» и «Для сцены» (этап 8): таблица ситуаций, честные границы, выбор формата, маршрут, цифры сцены, SEO-текст. */
.situations-table { width:100%; border-collapse:collapse; border-top:1px solid var(--ink); }
.situations-table th,.situations-table td { text-align:left; vertical-align:top; padding:18px 24px 18px 0; border-bottom:1px solid var(--line); font-size:1rem; line-height:1.5; }
.situations-table thead th { font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); font-weight:500; padding:12px 24px 12px 0; }
.situations-table tbody th { font-weight:400; font-size:1.125rem; letter-spacing:-.01em; width:28%; }
.situations-table td { color:var(--muted); }
.situations-table td:last-child { width:24%; color:var(--ink); }
.limits-list li { display:grid; gap:4px; }
.limits-list strong { font-weight:500; }
.limits-list span { color:var(--muted); font-size:15px; line-height:1.5; }
.choose-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.choose-grid--two { grid-template-columns:repeat(2,minmax(0,1fr)); }
.choose-grid--four { grid-template-columns:repeat(4,minmax(0,1fr)); }
.choose-card { display:flex; flex-direction:column; gap:10px; padding:26px 28px 28px; border:1px solid var(--line); border-radius:var(--radius); background:#fff; color:var(--ink); text-decoration:none; transition:border-color .2s; }
a.choose-card:hover { border-color:var(--red); }
.choose-card .eyebrow { margin:0 0 4px; }
.choose-card strong { font-size:var(--type-card); font-weight:400; letter-spacing:-.02em; line-height:1.15; }
.choose-card>span:not(.eyebrow) { color:var(--muted); font-size:15px; line-height:1.5; }
.choose-card b { margin-top:auto; padding-top:14px; border-top:1px solid var(--line); font-weight:500; font-size:15px; }
.choose-card .button { margin-top:auto; align-self:flex-start; }
.route-grid h3 a { text-decoration:none; color:inherit; }
.route-grid h3 a:hover { color:var(--red); }
.route-price { margin-top:12px; font-size:14px; color:var(--ink); }
.stage-numbers { margin-bottom:28px; }
.stage-numbers dd { margin:0; font-size:clamp(2rem,3.6vw,3rem); font-weight:400; letter-spacing:-.03em; line-height:1; }
.stage-numbers dt { margin-top:8px; font-size:14px; color:var(--muted); line-height:1.4; }
.stage-tiles { grid-template-columns:repeat(3,minmax(0,1fr)); }
.audience-seo-text { max-width:72ch; }
.audience-seo-text p { font-size:1.0625rem; line-height:1.65; color:var(--muted); }
.audience-seo-text p+p { margin-top:16px; }
.audience-seo-text a { color:var(--ink); text-decoration:underline; text-underline-offset:4px; }
.faces-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.teacher .face-story { display:block; margin-top:10px; font-size:14px; line-height:1.5; color:var(--muted); text-transform:none; letter-spacing:0; }
@media(max-width:820px) { .faces-grid { grid-template-columns:1fr; max-width:520px; } }
@media(max-width:1050px) { .choose-grid,.choose-grid--four,.proof-band-grid.stage-numbers { grid-template-columns:repeat(2,minmax(0,1fr)); } .stage-tiles { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:820px) { .situations-table thead { display:none; } .situations-table tr { display:grid; gap:6px; padding:16px 0; border-bottom:1px solid var(--line); } .situations-table th,.situations-table td { display:block; padding:0; border:0; width:auto; } .situations-table tbody th { width:auto; } .situations-table td:last-child { width:auto; } }
@media(max-width:680px) { .choose-grid,.choose-grid--two,.choose-grid--four,.proof-band-grid.stage-numbers,.stage-tiles { grid-template-columns:1fr; } .proof-band-grid.stage-numbers>div { padding-left:0; border-left:0; } }
/* Постановки (этап 8): большие карточки первых спектаклей и карточки архива. */
.performances-grid { display:grid; gap:24px; }
.performances-grid--two { grid-template-columns:repeat(2,minmax(0,1fr)); }
.performances-grid--four { grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; }
.performance-card { display:flex; flex-direction:column; border:1px solid var(--line); border-radius:var(--radius); background:#fff; overflow:hidden; color:var(--ink); text-decoration:none; transition:border-color .2s; }
.performance-card:hover { border-color:var(--red); }
.performance-card:hover strong { color:var(--red); }
.performance-photo { display:block; aspect-ratio:3/2; overflow:hidden; }
.performance-photo img { width:100%; height:100%; object-fit:cover; }
.performance-copy { display:flex; flex-direction:column; gap:8px; padding:22px 24px 24px; }
.performance-copy .eyebrow { margin:0; }
.performance-copy strong { font-size:clamp(1.5rem,2.4vw,2rem); font-weight:400; letter-spacing:-.03em; line-height:1.1; transition:color .2s; }
.performance-card--small .performance-copy strong { font-size:1.25rem; }
.performance-director { font-size:14px; color:var(--red); }
.performances-grid--three { grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.performance-card--text { background:var(--action-stripes),var(--cream); }
.performance-copy strong a { color:inherit; text-decoration:none; }
.performance-facts { font-size:13px; line-height:1.5; color:var(--muted); }
.performance-more { font-size:15px; line-height:1.5; color:var(--muted); }
.performance-more summary { cursor:pointer; color:var(--ink); list-style:none; font-size:14px; text-decoration:underline; text-underline-offset:4px; }
.performance-more summary::-webkit-details-marker { display:none; }
.performance-more summary i { display:none; }
.performance-more[open] summary { margin-bottom:8px; }
@media(max-width:1050px) { .performances-grid--three { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:680px) { .performances-grid--three { grid-template-columns:1fr; } }
.performance-text { color:var(--muted); font-size:15px; line-height:1.5; }
.performance-copy .text-link { margin-top:auto; align-self:flex-start; padding-top:10px; }
.performances-archive .section-note a { text-decoration:underline; text-underline-offset:4px; }
@media(max-width:1050px) { .performances-grid--four { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:680px) { .performances-grid--two,.performances-grid--four { grid-template-columns:1fr; } }
/* Страница спектакля (этап 8): фото 3:2 справа (ч/б — по центральному правилу .detail-hero figure img). */
.detail-hero .performance-portrait img { width:100%; height:auto; aspect-ratio:3/2; object-fit:cover; object-position:50% 50%; border-radius:var(--radius); }
.performance-portrait figcaption { margin-top:10px; font-size:13px; color:var(--muted); }
/* «Лица Action» компактно (правка владельца 17.09): четыре в ряд, небольшой портрет, история под «Подробнее». */
.faces-compact-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; }
.face-compact { display:flex; flex-direction:column; border:1px solid var(--line); border-radius:var(--radius); background:#fff; overflow:hidden; }
.face-compact>img { width:100%; aspect-ratio:1; height:auto; object-fit:cover; object-position:50% 20%; filter:none; }
.face-compact>div { display:flex; flex-direction:column; gap:8px; padding:18px 20px 20px; }
.face-compact .eyebrow { margin:0; }
.face-compact h2 { font-size:1.375rem; font-weight:400; letter-spacing:-.02em; line-height:1.15; }
.face-compact-role { font-size:14px; color:var(--red); }
.face-compact-start { font-size:15px; line-height:1.5; color:var(--muted); }
.face-compact .face-card-story { margin:0; display:grid; gap:10px; }
.face-compact .face-card-story div { display:grid; gap:2px; }
.face-compact .face-card-story dt { font-size:12px; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); }
.face-compact .face-card-story dd { margin:0; font-size:14px; line-height:1.5; }
.face-compact .face-card-quote { margin:10px 0 0; padding-left:12px; border-left:2px solid var(--red); font-size:14px; line-height:1.5; }
.face-compact .text-link { margin-top:auto; align-self:flex-start; padding-top:6px; }
@media(max-width:1050px) { .faces-compact-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:560px) { .faces-compact-grid { grid-template-columns:1fr; } }

/* Работа над ошибками 17.09.2026 (замечания владельца после выкладки). */
/* 1. Первый экран на телефоне: заголовок и подводка → видео → живые карточки → кнопки. */
@media(max-width:680px) {
 .hero { gap:18px; }
 .hero-copy { display:contents; }
 .hero-copy>.eyebrow { order:1; margin-bottom:0; }
 .hero-copy>h1 { order:2; }
 .hero-copy>.hero-lead { order:3; margin-top:8px; }
 .hero-visual { order:4; margin-top:10px; }
 .hero-tickets { order:5; margin-top:8px; }
 .hero-entry-actions { order:6; margin-top:4px; }
}
/* 2. Педагоги крупнее: на телефоне по одному в ряд с большой фотографией; на компьютере три в ряд в каталоге и на курсах. */
.teachers-grid--directory { grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.teachers-grid--directory .teacher h3 { font-size:clamp(20px,1.9vw,28px); }
.teachers-grid--five { grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.teachers-grid--five .teacher h3 { font-size:clamp(20px,1.9vw,28px); }
@media(max-width:1050px) { .teachers-grid--directory,.teachers-grid--five { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:680px) {
 .teachers-grid,.teachers-grid--directory,.teachers-grid--five { grid-template-columns:1fr; gap:26px; }
 .teacher>img { aspect-ratio:4/5; }
 .teacher h3,.teachers-grid--directory .teacher h3,.teachers-grid--five .teacher h3 { font-size:1.75rem; }
 .teacher p { font-size:14px; min-height:0; }
 .course-teacher img { aspect-ratio:4/5; }
}
/* 3. Телефон: при прокрутке вниз верхняя строка шапки уходит (строка разделов главной остаётся), нижняя панель появляется; вверх — наоборот.
   Движение нарочно медленное и плавное (0,9 с), без рывков — просьба владельца 17.09. */
@media(max-width:900px) {
 .site-header { transition:transform .9s cubic-bezier(.22,.61,.36,1); will-change:transform; }
 html.chrome-hidden .site-header { transform:translateY(-100%); }
 .home-section-nav { transition:top .9s cubic-bezier(.22,.61,.36,1); }
 html.chrome-hidden .home-section-nav { top:0; }
 .lead-bar { transform:translateY(120%); transition:transform .9s cubic-bezier(.22,.61,.36,1); }
 html.chrome-hidden .lead-bar,html.chrome-bar .lead-bar { transform:none; }
}
@media(prefers-reduced-motion:reduce) { .site-header,.home-section-nav,.lead-bar { transition:none; } }
