/*tl0211-swipe*/@media (max-width:1279px){*{scroll-snap-stop:always}}.rib{overflow-y:hidden}@media (max-width:1100px) and (min-width:701px){.swipe-t{overflow-y:hidden}}@media (max-width:700px){.swipe-m,.swipe-t{overflow-y:hidden}}/*tl0211-sbar*/html body{background-color:#0F2653}:root{--svh:1vh;}@supports (height:1svh){:root{--svh:1svh}}
:root{--fd:clamp(1.25rem,3vw,2.75rem)}

@font-face{font-family:'Golos Text';font-style:normal;font-weight:400 900;font-display:swap;src:url('/netcat_template/template/talantika/assets/fonts/golos-text-cyrillic.woff2') format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Golos Text';font-style:normal;font-weight:400 900;font-display:swap;src:url('/netcat_template/template/talantika/assets/fonts/golos-text-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Dela Gothic One';font-style:normal;font-weight:400;font-display:swap;src:url('/netcat_template/template/talantika/assets/fonts/dela-gothic-one-cyrillic.woff2') format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Dela Gothic One';font-style:normal;font-weight:400;font-display:swap;src:url('/netcat_template/template/talantika/assets/fonts/dela-gothic-one-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{--navy:#0A0144;--bg:#0C2F5A;--bg2:#0C2F5A;--surf:rgba(255,255,255,.15);--surf2:rgba(4,10,40,.45);--line:rgba(255,255,255,.32);--ink:#F1F4FB;--muted:#CBD6EE;--head:#FFFFFF;
--acc:#86F0CF;--accink:#0A0144;--acc2:#D3CCFF;--btn:#FFFFFF;--btnink:#0A0144;--btnh:#DDF5EC;--hdr:rgba(8,46,70,.86);--err:#FFB0B0;--bond:rgba(255,255,255,.42);--orbit:rgba(255,255,255,.22);
--r:20px;--rb:12px;--ease:cubic-bezier(.16,1,.3,1);--wrap:82.5rem;--pad:clamp(1rem,4vw,2.5rem);--tb:2.25rem;--hd:4.75rem;
--disp:'Dela Gothic One','Golos Text',system-ui,sans-serif;--text:'Golos Text',system-ui,-apple-system,'Segoe UI',Arial,sans-serif}
html{font-size:16px;scroll-behavior:smooth;-webkit-text-size-adjust:100%;background:#0A0144}
*,*:before,*:after{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0;background:linear-gradient(180deg,#07475A 0%,#0A3A6E 22%,#1B2C82 48%,#2E1F86 72%,#0A0144 100%);color:var(--ink);font:400 1.0625rem/1.6 var(--text);overflow-x:hidden}
img{display:block;max-width:100%;height:auto}
a{color:var(--acc)}a:hover{color:var(--head)}
button,input,select{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
/* Dela Gothic One — одно начертание: weight 400, иначе браузер дорисует фальшивый жир */
h1,h2{font-family:var(--disp);font-weight:400;color:var(--head);margin:0;line-height:1.08}
h3{font-family:var(--text);color:var(--head);margin:0;font-size:1.1875rem;line-height:1.25;font-weight:700}
h2{font-size:clamp(1.6rem,1rem + 1.5vw,2.5rem)}
p{margin:0}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--pad)}
.small{font-size:.875rem;color:var(--muted)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:3rem;padding:0 1.5rem;border-radius:var(--rb);border:2px solid transparent;
font-weight:600;font-size:1rem;line-height:1.2;text-decoration:none;cursor:pointer;white-space:nowrap;transition:background-color .2s,border-color .2s,color .2s,transform .2s var(--ease)}
.btn:active{transform:translateY(1px)}
.btn-main{background:var(--btn);color:var(--btnink)}.btn-main:hover{background:var(--btnh);color:var(--btnink)}
.btn-sec{background:transparent;color:var(--head);border-color:var(--head)}.btn-sec:hover{background:var(--surf);color:var(--head)}
.btn-wide{width:100%}
/* шапка: тёмная строка холдинга + основная строка в цвет фона (не белая) */
.topbar{background:var(--navy);color:#fff;font-size:.875rem;position:relative;z-index:41}
.tb-in{display:flex;align-items:center;gap:1.5rem;height:var(--tb)}
.topbar a{color:#fff;text-decoration:none;white-space:nowrap}.topbar a:hover{text-decoration:underline;color:#fff}
.tb-links{display:flex;gap:1.25rem;margin-left:auto}
.tb-phone{font-weight:600}
.tb-vds{display:inline-flex;align-items:center;gap:.4rem;background:none;border:1px solid rgba(255,255,255,.4);color:#fff;border-radius:8px;padding:.2rem .6rem;cursor:pointer;font-size:.8125rem;white-space:nowrap;min-height:1.75rem}
.tb-vds:hover{background:rgba(255,255,255,.12)}
.head{position:sticky;top:0;z-index:40;background:var(--hdr);-webkit-backdrop-filter:saturate(140%) blur(12px);backdrop-filter:saturate(140%) blur(12px);border-bottom:1px solid var(--line)}
.hd-in{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:1.5rem;height:var(--hd)}
.logo{font-family:var(--disp);font-weight:400;font-size:1.5rem;color:var(--head);text-decoration:none;white-space:nowrap;line-height:1;letter-spacing:.01em}
.logo:hover{color:var(--head)}
.nav{display:flex;gap:.25rem;justify-content:center}
.nav a{color:var(--ink);text-decoration:none;font-weight:500;font-size:1rem;white-space:nowrap;padding:.55rem .85rem;border-radius:10px;transition:background-color .2s,color .2s}
.nav a:hover{color:var(--head);background:var(--surf)}
.hd-cta{flex:none;gap:0}
.burger{display:none;flex:none;width:3rem;height:3rem;border:1px solid var(--line);border-radius:10px;background:transparent;cursor:pointer;align-items:center;justify-content:center}
.burger span{display:block;width:1.25rem;height:2px;background:var(--head);box-shadow:0 -6px 0 var(--head),0 6px 0 var(--head)}
@media (max-width:1100px){.nav{display:none}.burger{display:inline-flex}.hd-in{grid-template-columns:auto 1fr auto auto}.hd-cta{grid-column:3}}
@media (max-width:900px){.tb-links{display:none}}
@media (max-width:640px){.tb-addr{display:none}.tb-in{justify-content:space-between;gap:.75rem}.tb-vds span{display:none}.tb-vds:after{content:"ВДС";font-weight:600}
 :root{--hd:4rem}.logo{font-size:1.3rem}.hd-in{gap:.6rem}.hd-cta{padding:0 1rem;min-height:2.75rem}.burger{width:2.75rem;height:2.75rem}}
/* Dela шире Commissioner: на телефоне до 440 px «Пробное занятие» + логотип + бургер не влезали в строку (страница 402 px при окне 390) */
@media (max-width:440px){.hd-cta .long{display:none}}
/* «Академия» над «Талантикой» (tl_common.LOGO_CSS даёт .5em = 10 px) — не мельче 12 px, правило телефонов */
@media (max-width:640px){body .head .logo .lg-a{font-size:.75rem;letter-spacing:.04em}}
.mnav{position:fixed;inset:calc(var(--tb) + var(--hd)) 0 0 0;z-index:39;background:var(--bg);padding:1.5rem var(--pad);overflow:auto;display:flex;flex-direction:column;gap:1rem}
.mnav nav{display:flex;flex-direction:column}
.mnav nav a{padding:.9rem 0;border-bottom:1px solid var(--line);color:var(--head);text-decoration:none;font-size:1.25rem;font-weight:700}
.mnav-pick{align-self:flex-start;background:var(--surf);color:var(--head);padding:.6rem 1rem;border-radius:10px;text-decoration:none;font-weight:600}
.mnav-phone{font-size:1.25rem;font-weight:700;color:var(--head);text-decoration:none}
.mnav-links a{color:var(--acc)}
.menu-open body{overflow:hidden}

/* ── первый экран: слева текст и подбор, справа — молекула */
.hero{padding:1.5rem 0;overflow-x:hidden;overflow-x:clip;background:radial-gradient(70% 80% at 80% 40%,rgba(1,230,174,.16) 0%,rgba(1,230,174,0) 60%),transparent;background-size:auto,auto}
.hero-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(1.5rem,3.5vw,4rem);align-items:center;
 min-height:calc(calc(100 * var(--svh)) - var(--tb) - var(--hd) - 3rem)}
.h-text{display:flex;flex-direction:column;gap:1.25rem;min-width:0}
.hero h1{font-size:min(clamp(1.9rem,.9rem + 2.3vw,3.4rem),calc(6.4 * var(--svh)));line-height:1.08;max-width:14em}
.hero-lead{font-size:min(1.1875rem,calc(2.4 * var(--svh)));max-width:32rem}
.formula{font-weight:700;color:var(--acc);font-size:1.0625rem}
.picker{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;padding:1.25rem;background:var(--surf);border:1px solid var(--line);border-radius:var(--r)}
.pk-title{grid-column:1/-1;font-weight:700;color:var(--head);font-size:1.0625rem}
.pk-f{display:flex;flex-direction:column;gap:.3rem;min-width:0}
.pk-f span{font-size:.8125rem;font-weight:600;color:var(--muted)}
.pk-f select,.fld select{appearance:none;-webkit-appearance:none;width:100%;min-height:3.25rem;padding:0 2.4rem 0 1rem;border-radius:var(--rb);border:1px solid var(--line);background:var(--surf2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%23FFFFFF' stroke-width='2'/%3E%3C/svg%3E") no-repeat right 1rem center;color:var(--ink);cursor:pointer;font-size:1rem;transition:border-color .2s}
select option{color:#24213A;background:#fff}
.pk-f select:hover{border-color:var(--acc)}
.pk-acts{grid-column:1/-1;display:flex;gap:.75rem;flex-wrap:wrap}
.pk-acts .btn{flex:1 1 12rem}

/* молекула: ядро-многогранник (SVG), связи и электроны (SVG), атомы — кнопки с фото детей поверх */
.mol-col{container-type:inline-size;display:flex;flex-direction:column;justify-content:center;align-items:center;min-width:0}
.mol{position:relative;width:min(calc(calc(100 * var(--svh)) - var(--tb) - var(--hd) - 5rem),40rem);max-width:100%;width:min(calc(calc(100 * var(--svh)) - var(--tb) - var(--hd) - 5rem),40rem,100cqw);aspect-ratio:1}
.mol svg{position:absolute;left:0;top:0;width:100%;height:100%;display:block;overflow:visible;z-index:1}
.mol .bond{stroke:var(--bond);stroke-width:1.5;stroke-linecap:round}
.mol .orb{fill:none;stroke:var(--orbit);stroke-width:1}
.mol .el{stroke:none}
.mol .face{stroke:#0B3A5E;stroke-width:1.5;stroke-linejoin:round}
.atom{position:absolute;left:0;top:0;z-index:2;display:flex;flex-direction:column;align-items:center;gap:.4rem;padding:0;margin:0;border:0;background:none;cursor:pointer;
 width:var(--ad,7rem);transform-origin:50% 50%;will-change:transform;transition:opacity .35s}
.at-ph{display:block;width:var(--ad,7rem);height:var(--ad,7rem);border-radius:50%;overflow:hidden;border:3px solid var(--surf);background:var(--surf);box-shadow:0 0 0 1.5px var(--bond);transition:box-shadow .25s,border-color .25s}
.at-ph img{width:100%;height:100%;object-fit:cover}
.at-l{font-size:.9375rem;font-weight:600;line-height:1.1;color:var(--head);white-space:nowrap;background:var(--bg);background:var(--hdr);padding:.2rem .5rem;border-radius:8px}
.atom:hover .at-ph{box-shadow:0 0 0 3px var(--acc)}
.atom:focus{outline:none}.atom:focus-visible .at-ph{box-shadow:0 0 0 3px var(--acc),0 0 0 6px var(--head)}
.atom.sel .at-ph{border-color:var(--acc);box-shadow:0 0 0 3px var(--acc)}
.atom.sel .at-l{background:var(--acc);color:var(--accink)}
.atom.off{opacity:.3}
.mol.ent .atom{transition:none}  /* во время появления прозрачность ведёт JS покадрово — без перехода, иначе отстаёт */
.mol-note{margin-top:.6rem;text-align:center;font-size:.875rem;color:var(--muted);min-height:1.4em;max-width:36rem}
.mol-note b{color:var(--head)}
@media (max-width:1100px) and (min-width:901px){.hero-grid{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr)}.at-l{font-size:.8125rem}}
@media (min-width:901px) and (max-height:820px){.formula{display:none}.hero{padding:.75rem 0}.hero-grid{min-height:calc(calc(100 * var(--svh)) - var(--tb) - var(--hd) - 1.5rem)}.h-text{gap:.9rem}.picker{padding:1rem;gap:.6rem}
 .pk-f select{min-height:2.9rem}.pk-acts .btn{min-height:2.9rem}}
@media (max-width:900px){
 .hero{padding:.75rem 0 1rem}
 .hero-grid{grid-template-columns:1fr;min-height:0;gap:.9rem}
 .mol-col{order:-1}
 .mol{width:100%;aspect-ratio:auto;height:min(calc(36 * var(--svh)),24rem)}
 .mol-note{display:none}
}
@media (max-width:640px){
 .h-text{gap:.7rem}
 .hero h1{font-size:min(1.6rem,calc(4 * var(--svh)))}
 .hero-lead{font-size:.9375rem;line-height:1.45}
 .formula{display:none}
 .picker{grid-template-columns:1fr 1fr;padding:.85rem;gap:.5rem}
 .pk-title{font-size:.9375rem}
 .pk-title{order:-2}.pk-type{grid-column:1/-1;order:-1}
 .pk-f span{font-size:.75rem}
 .pk-f select{min-height:2.75rem}
 .pk-acts .btn{min-height:2.75rem;flex-basis:100%}
 .mol{height:min(calc(27 * var(--svh)),15rem)}
 .lead-tail{display:none}
 .at-l{font-size:.75rem;padding:.1rem .3rem}
 .at-ph{border-width:2px}
}
/* низкий телефон (360×740): весь первый экран под шапкой — молекула ниже, лид прячем (направления видны в самой молекуле),
   главная кнопка — в шапке, как в варианте 2 */
@media (max-width:640px) and (max-height:800px){.mol{height:calc(30 * var(--svh))}.hero-lead{display:none}.pk-acts .btn-main{display:none}}

/* секции */
.sec{padding:clamp(2.25rem,4.5vw,3.5rem) 0}
.sec-head{max-width:46rem;margin-bottom:1.5rem}
.sec-head p{margin-top:.75rem;color:var(--muted)}
.sec-cta{margin-top:1.25rem;display:flex;gap:1rem;flex-wrap:wrap;align-items:center}
.alt{background:var(--bg2);background:transparent}

/* для каждого возраста — три группы ТЗ, фото и переход в каталог с уже выставленным возрастом */
.ages{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}
.age{display:flex;flex-direction:column;background:var(--surf);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.age img{width:100%;aspect-ratio:16/10;object-fit:cover;max-height:calc(32 * var(--svh))}
.age-b{padding:1rem 1.25rem 1.25rem;display:flex;flex-direction:column;gap:.45rem;flex:1}
.age-n{font-family:var(--disp);font-size:2rem;line-height:1;color:var(--acc)}
.age-b p{font-size:.9375rem;color:var(--muted)}
.age-b .btn{margin-top:auto;align-self:flex-start;min-height:2.75rem}
/* на планшете колонка уже кнопки — кнопка переносится, а не вылезает за карточку */
@media (max-width:1100px){.age-b .btn{max-width:100%;white-space:normal;text-align:center;padding:.5rem 1rem;line-height:1.2}}
@media (max-width:700px){.age img{aspect-ratio:2/1}.age-n{font-size:1.6rem}.age-b{padding:.85rem 1rem 1rem}}

/* каталог: фильтр слева, список строками справа (как в варианте 2) */
.list{min-width:0}
.kat-grid{display:grid;grid-template-columns:17rem minmax(0,1fr);gap:clamp(1.25rem,3vw,2.5rem);align-items:start}
.side{background:var(--surf);border:1px solid var(--line);border-radius:var(--r);padding:1.1rem 1.1rem 1.2rem;display:grid;gap:.9rem}
.side fieldset{border:0;margin:0;padding:0;display:grid;gap:.15rem;min-width:0}
.side legend{font-weight:700;color:var(--head);margin-bottom:.25rem;padding:0}
.opt{display:flex;align-items:center;gap:.6rem;min-height:2.15rem;line-height:1.25;cursor:pointer;font-size:.9375rem;border-radius:8px;padding:0 .4rem;transition:background-color .2s}
.opt:hover{background:var(--surf2)}
.opt input{width:1.15rem;height:1.15rem;margin:0;accent-color:var(--acc);flex:none}
.opt input:checked~.ot{font-weight:700;color:var(--head)}
.sw{width:.85rem;height:.85rem;flex:none;clip-path:polygon(50% 0,100% 100%,0 100%)}
.days-row{display:flex;flex-wrap:wrap;gap:.35rem}
.day{position:relative;cursor:pointer}
.day input{position:absolute;opacity:0;width:1px;height:1px}
.day span{display:inline-flex;align-items:center;justify-content:center;min-width:2.75rem;min-height:2.75rem;border-radius:10px;border:1px solid var(--line);font-size:.875rem;font-weight:600;transition:background-color .2s,border-color .2s}
.day:hover span{border-color:var(--acc)}
.day input:checked+span{background:var(--btn);border-color:var(--btn);color:var(--btnink)}
.day input:focus-visible+span{outline:2px solid var(--acc);outline-offset:2px}
.list-top{display:flex;align-items:center;gap:.5rem 1rem;flex-wrap:wrap;margin-bottom:.35rem}
.list-top .rib-nav{margin-left:auto}
#found{font-size:1.5rem;font-weight:700;color:var(--acc);font-variant-numeric:tabular-nums}
#found b{color:var(--acc)}
.reset{background:none;border:0;padding:.5rem 0;color:var(--head);text-decoration:underline;cursor:pointer;font-weight:500}
.demo-note{font-size:.8125rem;color:var(--muted);margin-bottom:.75rem;line-height:1.4}
.rows{gap:.6rem 1.5rem;grid-template-rows:repeat(3,auto);grid-auto-columns:100%}
.napr-card{display:grid;grid-template-columns:8.5rem minmax(0,1fr) auto;gap:1.25rem;align-items:center;background:var(--surf);border:1px solid var(--line);border-radius:var(--r);padding:.6rem 1.25rem .6rem .6rem;
 transition:border-color .2s,transform .3s var(--ease)}
.napr-card:hover{border-color:var(--acc)}
.nc-ph{border-radius:14px;overflow:hidden;aspect-ratio:4/3}
.nc-ph img{width:100%;height:100%;object-fit:cover}
.nc-body{display:flex;flex-direction:column;gap:.2rem;min-width:0}
.nc-type .ts{display:none}
.nc-type{display:flex;align-items:center;gap:.45rem;font-size:.8125rem;font-weight:600;color:var(--acc)}
.nc-meta{display:flex;flex-wrap:wrap;gap:.25rem 1rem;font-size:.9375rem}
.nc-price{font-size:.875rem;color:var(--muted)}
.napr-card .btn{min-height:2.75rem;font-size:.9375rem}
@keyframes v4-slide{from{opacity:0;transform:translateX(-14px)}}
.napr-card.pop{animation:v4-slide .4s var(--ease)}
.empty{margin-top:.5rem;padding:1.25rem;border:1px dashed var(--acc);border-radius:var(--r);display:flex;gap:1.5rem;align-items:center;justify-content:space-between;flex-wrap:wrap;background:var(--surf)}
@media (max-width:1100px){.kat-grid{grid-template-columns:minmax(0,1fr)}.opt{min-height:2.75rem}}
@media (max-width:700px){.rows{grid-template-rows:repeat(2,auto)}.list-top .rib-nav{display:none}#found{font-size:1.125rem;flex:1 1 auto}
 .napr-card{grid-template-columns:6.5rem minmax(0,1fr);grid-template-rows:auto auto;gap:.45rem .85rem;padding:.6rem .8rem .7rem .6rem;align-items:start}
 .napr-card .nc-ph{grid-row:span 2}.nc-type .tl{display:none}.nc-type .ts{display:inline}.napr-card .btn{grid-column:2;width:100%;min-height:2.5rem}
 .list-top{flex-wrap:nowrap}#found{font-size:1rem}
 .napr-card h3{font-size:1rem}.napr-card .nc-body{gap:.1rem}.napr-card .nc-meta,.napr-card .nc-price{font-size:.875rem}
 .sec{padding:2rem 0}.sec-head{margin-bottom:1rem}.demo-note{margin-bottom:.5rem}
 .put-item img,.put-ico{aspect-ratio:2/1!important}
 .demo-note{font-size:.75rem}.flt-toggle{padding:0 1rem;min-height:2.75rem;flex:none}
 .sec-head p{font-size:.9375rem;line-height:1.45}
 #found{white-space:nowrap}}
/* Golos шире Commissioner из варианта 2: на 360 «Творческая мастерская» и «Найдено: …» переносились, и каталог переставал
   помещаться в окно 360×740 (752 px); на 1024×768 каталог был выше окна на 7 px ещё в варианте 2 — сжимаем поля */
@media (max-width:400px){.napr-card{grid-template-columns:5.5rem minmax(0,1fr)}.napr-card h3{font-size:.9375rem}}
/* 6.10, каталог из прайса: на телефоне карточка — возраст, дни и две цены; формат и цена за 4 занятия — на компьютере
   (в ленте ряд растягивается под самую высокую карточку, и каталог переставал помещаться в окно 390×844) */
.napr-card .h-sub{font-family:var(--text);font-weight:400;font-size:.8125rem;color:var(--muted)}  /* предметы репетиторов — мелкой строкой */
@media (max-width:700px){.napr-card .h-sub,.napr-card .m-fmt,.napr-card .p-mid{display:none}}
/* 6.10: имена педагогов и названия курсов бывают в две строки — текст карточек от верха, чтобы заголовки в ряду стояли на одной линии */
.peds .ped{align-items:start}
.rows .napr-card{align-items:start}
@media (max-width:1100px){.ages .age-n{font-size:1.6rem;white-space:nowrap}}  /* «10–13 лет» на планшете уходил в две строки */
@media (min-width:701px) and (max-height:800px){#katalog.sec{padding:1.75rem 0}#katalog .sec-head{margin-bottom:1rem}}
/* общий слой tl_common.FIT_CSS красит стрелки лент и панель фильтра белым — у варианта 4 подложка не белая */
body .rib-nav button{background:var(--surf);color:var(--head);border-color:var(--line)}
body .rib-nav button:hover{background:var(--bg2)}
@media (max-width:1100px){body .side.flt-panel{background:var(--bg)!important}body .flt-panel-head button{background:var(--surf);color:var(--head)}}

/* как проходит пробное — линия из четырёх шагов */
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.5rem;position:relative}
.step{position:relative;display:flex;flex-direction:column;gap:.5rem;background:var(--surf);border:1px solid var(--line);border-radius:var(--r);padding:0 1.1rem 1.1rem;margin-top:1.375rem}
.step-n{width:2.75rem;height:2.75rem;display:flex;align-items:center;justify-content:center;background:var(--btn);color:var(--btnink);font-family:var(--disp);font-size:1.125rem;
 clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);margin:-1.375rem 0 .25rem}
@media (max-width:900px){.steps{grid-template-columns:1fr 1fr;row-gap:1.25rem}}
/* на телефоне шаги — лента со свайпом: она обрезает всё, что выше неё, а номер-шестигранник выступает над карточкой на пол-высоты */
@media (max-width:700px){.steps.swipe-m{padding-top:1.375rem}}

/* 7.10 — расписание по дням (из файла расписания заказчика): вкладки Пн–Пт + примечания */
.rasp{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:1.5rem;align-items:start}
.rs-tabs{display:flex;gap:.5rem;margin-bottom:.85rem}
.rs-tab{min-height:2.75rem;min-width:3.5rem;padding:0 1rem;border-radius:var(--rb);border:1px solid var(--line);background:var(--surf);color:var(--head);font-weight:600;cursor:pointer;transition:background-color .2s,color .2s}
.rs-tab:hover{background:var(--surf2)}
.rs-tab[aria-selected=true]{background:var(--btn);color:var(--btnink);border-color:transparent}
.rs-pans{display:grid}.rs-pans>.rs-day{grid-area:1/1;align-self:start}.rs-day.off{visibility:hidden}
.rs-day{list-style:none;margin:0;padding:0;background:var(--surf);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.rs-day li{display:grid;grid-template-columns:7.25rem minmax(0,1fr) auto;gap:.25rem 1rem;align-items:baseline;padding:.55rem 1rem;border-top:1px solid var(--line)}
.rs-day li:first-child{border-top:0}
.rs-t{font-weight:700;color:var(--head);font-variant-numeric:tabular-nums;white-space:nowrap}
.rs-n{color:var(--ink);line-height:1.35}.rs-n small{color:var(--muted);font-size:.8125rem}
.rs-r{color:var(--muted);font-size:.875rem;white-space:nowrap}
.rs-notes{display:grid;gap:.75rem}
.rs-note{background:var(--surf);border:1px solid var(--line);border-radius:var(--r);padding:.9rem 1rem}
.rs-note b{display:block;color:var(--head);margin-bottom:.25rem;font-size:.9375rem}.rs-note p{font-size:.875rem;color:var(--muted);line-height:1.45}
@media (max-width:1100px){.rasp{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:1rem}.rs-day li{grid-template-columns:6.5rem minmax(0,1fr) auto;padding:.45rem .85rem}}
@media (max-width:900px){.rasp{grid-template-columns:minmax(0,1fr)}.rs-notes{grid-template-columns:repeat(3,minmax(0,1fr))}}
/* невысокие экраны (1024×768, 1366×768): расписание и вопросы плотнее, чтобы блок целиком вставал в окно */
@media (min-width:701px) and (max-height:800px){#raspisanie.sec,#voprosy.sec{padding:1.75rem 0}#raspisanie .sec-head,#voprosy .sec-head{margin-bottom:1rem}
 .rs-day li{padding-top:.36rem;padding-bottom:.36rem}.rs-tab{min-height:2.5rem}.fq summary{min-height:2.75rem;padding:.45rem 1rem}.fq{margin-bottom:.375rem}}
.rs-more{display:none}.rs-n .rs-rm{display:none}
/* телефон: строка занятия — время | название · группа · кабинет (мелко, в одну-две строки), примечания — одной раскрывашкой:
   иначе блок выше окна 390×844 и 360×740 (правило владелицы «каждый блок в окне») */
@media (max-width:700px){.rs-tab{flex:1 1 0;min-width:0;padding:0;min-height:2.5rem}.rs-tabs{margin-bottom:.6rem}
 .rs-day li{grid-template-columns:4.6rem minmax(0,1fr);padding:.38rem .7rem;font-size:.8125rem;line-height:1.3}.rs-t{font-size:.75rem}
 .rs-r{display:none}.rs-n small{font-size:.75rem}.rs-n .rs-rm{display:inline}
 .rs-notes{display:none!important}.rs-more{display:block;margin:.6rem 0 0}.rs-more p{font-size:.8125rem;padding:0 .85rem .3rem}.rs-more p b{color:var(--head)}
 #raspisanie .sec-head p{font-size:.875rem}}
/* 7.10 — абонемент и вопросы: правила из прайса заказчика, аккордеон (открыт один ответ) */
.faq-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:2rem;align-items:start}
.faq-facts{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}
.faq-facts span{background:var(--surf);border:1px solid var(--line);border-radius:999px;padding:.35rem .85rem;font-size:.875rem;color:var(--head);font-weight:600}
.fq{background:var(--surf);border:1px solid var(--line);border-radius:var(--rb);margin-bottom:.5rem}
.fq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:1rem;min-height:3rem;padding:.6rem 1rem;font-weight:600;color:var(--head)}
.fq summary::-webkit-details-marker{display:none}
.fq summary::after{content:"+";flex:none;font-size:1.25rem;line-height:1;color:var(--acc)}
.fq[open] summary::after{content:"−"}
.fq p{padding:0 1rem .9rem;font-size:.9375rem;line-height:1.5}
.faq-note{margin-top:.75rem;font-size:.8125rem;color:var(--muted)}
@media (max-width:1100px){.faq-grid{gap:1.25rem}}@media (max-width:900px){.faq-grid{grid-template-columns:minmax(0,1fr);gap:1rem}}
@media (max-width:700px){.fq{margin-bottom:.375rem}.fq summary{min-height:2.75rem;font-size:.9375rem;line-height:1.25;padding:.45rem .85rem}.fq p{font-size:.875rem;padding:0 .85rem .7rem}
 .faq-facts,#voprosy .sec-head p{display:none}.faq-note{font-size:.75rem;margin-top:.5rem}}

/* педагоги */
.peds{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.25rem}
.ped{background:var(--surf);border:1px solid var(--line);border-radius:var(--r);padding:1rem;display:grid;grid-template-columns:5rem minmax(0,1fr);gap:1rem;align-items:center}
.ped-ph{width:5rem;height:5rem;border-radius:14px;background:var(--surf2);border:1px dashed var(--line);display:flex;align-items:center;justify-content:center;text-align:center;font-size:.75rem;line-height:1.2;color:var(--muted);padding:.3rem}
.ped-b{display:flex;flex-direction:column;gap:.15rem;min-width:0}
.ped-b .role{color:var(--acc);font-weight:600;font-size:.8125rem}
.ped-b h3{font-size:1rem}
.ped-b p{font-size:.8125rem;color:var(--muted)}
@media (max-width:1100px){.peds{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* путь ребёнка */
.put-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1rem;align-items:stretch}  /* 15.10: пятая карточка — колледж */
@media (min-width:1101px){.put-b p{font-size:.9375rem;line-height:1.45}}  /* 15.10: пять колонок — подпись колледжа в 6 строк делала ряд выше окна */
.put-ico{aspect-ratio:16/10;display:flex;align-items:center;justify-content:center;background:var(--surf2);color:var(--acc)}  /* рамка без фото — только значок */
.put-item{display:flex;flex-direction:column;background:var(--surf);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;color:var(--ink);text-decoration:none;transition:border-color .2s,transform .3s var(--ease)}
a.put-item:hover{border-color:var(--acc);transform:translateY(-4px);color:var(--ink)}
.put-item img{width:100%;aspect-ratio:16/10;object-fit:cover}
.put-b{padding:.85rem 1.1rem 1rem;display:flex;flex-direction:column;gap:.25rem}
.put-n{font-family:var(--disp);font-size:1.5rem;color:var(--acc)}
.put-when{font-size:.875rem;color:var(--muted)}
.put-item[aria-current]{border:2px solid var(--acc)}
.here{align-self:flex-start;margin-top:.35rem;background:var(--acc);color:var(--accink);font-size:.8125rem;font-weight:600;padding:.25rem .65rem;border-radius:8px}
.put-next{margin-top:1rem}
.put-next b{color:var(--head)}

/* запись */
.z-in{max-width:46rem;margin:0 auto;text-align:center}
.z-in>p{margin:.6rem auto 0;max-width:34rem}
.zapis .lead-form{grid-template-columns:1fr 1fr;gap:.9rem 1rem}
.zapis .fld-row,.zapis .fld-check,.zapis .lead-form>button{grid-column:1/-1}
@media (max-width:700px){.zapis .lead-form{grid-template-columns:1fr}.z-in>p{font-size:.9375rem;line-height:1.45}.z-in .lead-box{padding:1rem}}
.z-phone{display:inline-block;margin-top:.75rem;font-weight:700;color:var(--head);text-decoration:none;font-size:1.25rem}
.z-in .lead-box{margin-top:1.25rem;text-align:left;background:var(--surf);border:1px solid var(--line);border-radius:var(--r);padding:clamp(1.25rem,3vw,2.25rem)}
.lead-form{display:grid;gap:1rem}
.fld{display:flex;flex-direction:column;gap:.35rem;min-width:0}
.fld label{font-weight:600;font-size:.9375rem;color:var(--head)}
.fld input[type=text],.fld input[type=tel]{min-height:3.5rem;padding:0 1rem;border-radius:var(--rb);border:1px solid var(--line);background:var(--surf2);color:var(--ink);font-size:1.0625rem;transition:border-color .2s}
.fld input::placeholder{color:var(--muted);opacity:1}
.fld input:focus,.fld select:focus{border-color:var(--acc);outline:none;box-shadow:0 0 0 3px var(--bond)}
.fld-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.check{display:flex;gap:.75rem;align-items:flex-start;font-weight:400!important;font-size:.875rem!important;color:var(--ink)!important;cursor:pointer;line-height:1.45}
.check input{width:1.375rem;height:1.375rem;flex:none;margin:.05rem 0 0;accent-color:var(--acc)}
.err{color:var(--err);font-size:.875rem}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-ok{padding:1rem 0}.form-ok b{color:var(--head)}.form-ok p+p{margin-top:.5rem}
@media (max-width:480px){.fld-row{grid-template-columns:1fr}}

.modal{position:fixed;inset:0;z-index:90;display:flex;align-items:center;justify-content:center;padding:1rem}
.modal-back{position:absolute;inset:0;background:rgba(5,2,30,.7);opacity:0;transition:opacity .24s}
.modal-card{position:relative;width:min(560px,100%);max-height:92vh;overflow:auto;background:#0C2F5A;border:1px solid var(--line);border-radius:var(--r);padding:clamp(1.25rem,3vw,2rem);
 opacity:0;transform:scale(.94);transition:opacity .24s var(--ease),transform .3s var(--ease)}
.modal.on .modal-back{opacity:1}.modal.on .modal-card{opacity:1;transform:none}
.modal-card h2{font-size:1.5rem;padding-right:2.5rem}
.modal-lead{color:var(--muted);margin:.5rem 0 1rem}
.modal-card .lead-box{padding:0}
.modal-x{position:absolute;right:.75rem;top:.75rem;width:2.75rem;height:2.75rem;border:0;border-radius:10px;background:var(--surf2);font-size:1.5rem;line-height:1;cursor:pointer;color:var(--head)}
.modal-open body{overflow:hidden}

.foot{background:var(--navy);color:rgba(255,255,255,.82);padding:4rem 0 2rem;font-size:.9375rem;box-shadow:inset 0 3px 0 #13A5D4}
.foot a{color:#fff;text-decoration:none}.foot a:hover{text-decoration:underline;color:#fff}
.f-cols{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr 1.1fr;gap:2rem}
.foot h3{color:#fff;font-size:1rem;margin-bottom:.75rem;font-weight:600}
.foot ul{list-style:none;margin:0;padding:0;display:grid;gap:.45rem}
.logo-foot{color:#fff!important}
.f-brand p{margin:.75rem 0 1.25rem}
.btn-foot{background:#6FE7C1;color:var(--navy)}.btn-foot:hover{background:#A3F2D9;color:var(--navy)}
.soon{color:rgba(255,255,255,.82)}
.f-req{margin-top:3rem;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.18);font-size:.8125rem;display:grid;gap:.4rem}
@media (max-width:1100px){.f-cols{grid-template-columns:1fr 1fr}.f-brand{grid-column:1/-1}}
@media (max-width:560px){.f-cols{grid-template-columns:1fr}}

/* появление блоков по прокрутке: подъём снизу с проявлением */
@keyframes v4-rise{from{opacity:0;transform:translateY(18px)}}
.rvl-on .rvl:not(.in){opacity:0}
.rvl-on .rvl.in{animation:v4-rise .7s var(--ease) both}
@media (prefers-reduced-motion:reduce){
 html{scroll-behavior:auto}
 *,*:before,*:after{animation:none!important;transition:none!important}
 .rvl{opacity:1!important;transform:none!important}
}

.box{background:var(--surf);border:1px solid var(--line);border-radius:var(--r);padding:1.1rem 1.25rem;min-width:0}
.box h3{margin-bottom:.45rem}.box p{font-size:.9375rem}.box p+p{margin-top:.5rem}
.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;align-items:stretch}
@media (max-width:900px){.grid3{grid-template-columns:minmax(0,1fr)}}
.phy{background:#FFE45C;color:#0A0144;padding:0 .3em;border-radius:4px;font-weight:600;-webkit-box-decoration-break:clone;box-decoration-break:clone}
.ev{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:1.25rem 2rem;align-items:center;background:var(--surf);border:1px solid var(--line);border-radius:var(--r);padding:clamp(1.25rem,3vw,2rem)}
.ev-ic{width:4.5rem;height:4.5rem;border-radius:16px;background:var(--surf2);border:1px dashed var(--line);display:flex;align-items:center;justify-content:center;color:var(--acc)}
.ev-b h2{font-size:clamp(1.4rem,1rem + 1vw,2rem)}.ev-b p{margin-top:.45rem;color:var(--muted);max-width:40rem}
.ev-a{display:flex;flex-direction:column;gap:.6rem}
.sec-head a{font-weight:600}
@media (max-width:700px){#katalog .sec-cta .btn-main{display:none}}
@media (max-width:400px){#katalog .demo-note,#katalog .list .sec-head p{display:none}}  /* 360×740: каталог был выше окна (819 px) ещё до 12.10; правила абонемента — в блоке «Абонемент и вопросы» */  /* телефон: у каждой карточки своя «Пробное занятие» — внизу каталога остаётся «Все направления», иначе каталог выше окна */
@media (max-width:900px){.ev{grid-template-columns:auto minmax(0,1fr)}.ev-a{grid-column:1/-1;flex-direction:row;flex-wrap:wrap}}
@media (max-width:700px){.ev{grid-template-columns:minmax(0,1fr);padding:1rem}.ev-ic{display:none}.ev-a .btn{flex:1 1 100%}}
/* 15.10 Т2 (созвон 03:39–04:49): расписание — две возрастные категории «1–6» и «6–18» кнопками над днями; дни — Пн–Сб */
.rs-bar{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem 1.25rem;margin-bottom:.85rem}.rs-bar .rs-tabs{margin-bottom:0}
.rs-ages{display:flex;align-items:center;gap:.4rem}.rs-al{font-size:.875rem;font-weight:600;color:var(--muted);margin-right:.2rem}
.rs-age{min-height:2.75rem;padding:0 1.1rem;border-radius:999px;border:2px solid var(--acc);background:transparent;color:var(--head);font-weight:700;cursor:pointer;
 font-variant-numeric:tabular-nums;transition:background-color .2s,color .2s}
.rs-age:hover{background:var(--surf)}.rs-age[aria-pressed=true]{background:var(--acc);color:var(--accink)}
.rs-day .rs-ph .rs-t{color:var(--muted)}
.rasp[data-age="1-6"] .rs-note[data-for="6-18"],.rasp[data-age="6-18"] .rs-note[data-for="1-6"]{display:none}
/* 15.10 вечер (Роза: «всё съехало — ставим на место; три карточки сбоку — рядом, а не вразнобой»): на компьютере и планшете правая колонка стоит
   ровно от верха ряда кнопок «Возраст / Пн…Сб» до низа таблицы занятий. Таблица любого дня — во всю высоту ячейки (её задаёт самый длинный день),
   поэтому низ таблицы не прыгает при переключении дней; три примечания — три равных ряда с равными зазорами, текст от верха; у «1–6» одно примечание — на всю высоту */
@media (min-width:901px){.rasp{align-items:stretch}.rs-main{display:flex;flex-direction:column}.rs-pans{flex:1 1 auto}.rs-pans>.rs-day{align-self:stretch}
 .rs-notes{grid-template-rows:repeat(3,minmax(0,1fr))}.rasp[data-age="1-6"] .rs-notes{grid-template-rows:minmax(0,1fr)}}
@media (max-width:700px){.rs-bar{gap:.5rem;margin-bottom:.6rem}.rs-ages{width:100%}.rs-age{flex:1 1 0;min-height:2.5rem}.rs-bar .rs-tabs{width:100%}}
/* низкий телефон 360×740: строка возраста прибавила 48 px — поля блока тоньше, чтобы «Расписание» осталось в окне */
@media (max-width:700px) and (max-height:800px){#raspisanie.sec{padding:1.25rem 0}#raspisanie .rs-lt{display:none}}
/* 15.10 Т5 (созвон 07:36–08:00): отзывы — 2–3 карточки со звёздами; тексты пришлёт заказчик, пока плейсхолдер */
.otz-c{display:flex;flex-direction:column;gap:.75rem;background:var(--surf);border:1px solid var(--line);border-radius:var(--r);padding:1.25rem 1.35rem 1.35rem}
.otz-st{display:flex;gap:.2rem;color:#FFD45C}.otz-st svg{width:1.35rem;height:1.35rem;display:block}
.otz-c .otz-t{font-size:1rem;line-height:1.5}.otz-a{margin-top:auto;font-size:.875rem;color:var(--muted)}
.otz-q{color:var(--acc);opacity:.55;line-height:0}
@media (max-width:900px) and (min-width:701px){.otz{grid-template-columns:repeat(3,minmax(0,1fr))}}
html.vds .otz{display:block!important}html.vds .otz>*{margin-bottom:1rem}

.vds-bar{display:none}
html.vds .vds-bar{display:block;position:relative;z-index:60;background:#fff;color:#000;border-bottom:3px solid #000;padding:.6rem 0;font-family:Arial,sans-serif}
.vds-in{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;align-items:center}
.vds-g{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center}.vds-g>span{font-weight:700;margin-right:.25rem}
.vds-bar button{min-height:2.75rem;min-width:2.75rem;padding:0 .7rem;border:2px solid #000;background:#fff;color:#000;font:700 1rem/1 Arial,sans-serif;cursor:pointer;border-radius:6px}
.vds-bar button[aria-pressed=true]{background:#000;color:#fff}
.vds-bar .vds-off{margin-left:auto}
html.vds-f2{font-size:24px!important}html.vds-f3{font-size:32px!important}
html.vds body{background:var(--vds-bg)!important}
html.vds body *:not(img):not(svg):not(svg *):not(.vds-bar):not(.vds-bar *):not(.sv):not(.sv *){background:var(--vds-bg)!important;color:var(--vds-fg)!important;border-color:var(--vds-fg)!important;box-shadow:none!important;text-shadow:none!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;font-family:Arial,sans-serif!important}
html.vds a{text-decoration:underline!important}
html.vds .btn,html.vds button:not(.vds-bar button),html.vds input,html.vds select,html.vds details{border:2px solid var(--vds-fg)!important}
html.vds .phy{outline:2px dashed var(--vds-fg)}
html.vds-c1{--vds-bg:#fff;--vds-fg:#000}html.vds-c2{--vds-bg:#000;--vds-fg:#fff}html.vds-c3{--vds-bg:#9DD1FF;--vds-fg:#063462}
html.vds-s2 body *{letter-spacing:.05em!important;line-height:1.8!important}html.vds-s3 body *{letter-spacing:.1em!important;line-height:2.1!important}
html.vds-noimg img,html.vds-noimg .pg-cover,html.vds-noimg .mini-ph,html.vds-noimg .nc-ph,html.vds-noimg .age img,html.vds-noimg .put-item img,html.vds-noimg .at-ph{display:none!important}
/* в ВДС — один столбец: сетки, ленты и молекула не дают прокрутку вбок при шрифте 200 % */
html.vds .mol-col,html.vds .rib-nav,html.vds .swipe-hint{display:none!important}
html.vds .hero-grid,html.vds .kat-grid,html.vds .pg-split,html.vds .grid2,html.vds .grid3,html.vds .minis,html.vds .tchs,html.vds .ages,html.vds .peds,html.vds .put-row,
html.vds .steps,html.vds .rasp,html.vds .faq-grid,html.vds .kt,html.vds .f-cols,html.vds .wk,html.vds .rows,html.vds .napr-card,html.vds .ped,html.vds .tch,html.vds .napr-lay,
html.vds .picker,html.vds .hd-in,html.vds .tb-in,html.vds .fld-row,html.vds .zapis .lead-form{display:block!important;overflow:visible!important;height:auto!important;min-height:0!important}
html.vds .hero-grid>*,html.vds .grid2>*,html.vds .grid3>*,html.vds .minis>*,html.vds .tchs>*,html.vds .ages>*,html.vds .peds>*,html.vds .put-row>*,html.vds .steps>*,html.vds .rows>*,
html.vds .f-cols>*,html.vds .wk>*,html.vds .kt>*,html.vds .faq-grid>*,html.vds .rasp>*{margin-bottom:1rem!important;width:auto!important;max-width:100%!important}
html.vds .head{position:static!important}html.vds .nav{display:flex!important;flex-wrap:wrap}html.vds .burger{display:none!important}
html.vds .wk-day,html.vds .wk-day.off,html.vds .pt-pan.off{display:block!important;visibility:visible!important}html.vds .wk-tabs,html.vds .napr-side{display:none!important}
html.vds .pt-pans{display:block!important}html.vds .pt-pan{margin-bottom:1rem}
html.vds h1,html.vds h2,html.vds h3,html.vds p,html.vds li,html.vds a,html.vds td,html.vds th,html.vds span,html.vds label,html.vds summary{overflow-wrap:break-word;word-break:break-word;white-space:normal!important}
html.vds .btn,html.vds button,html.vds .day span,html.vds .chip span,html.vds .rs-tab{white-space:normal!important;height:auto!important;min-height:2.75rem;text-align:center;max-width:100%}
html.vds .ck{flex-direction:column;align-items:stretch}
/* 12.10 ночь: в колонке «flex:1 1 18rem» у текста cookie стало высотой 18rem — пустое полэкрана поверх страницы */
html.vds .ck p{flex:0 0 auto}
/* 12.10 ночь, проверка всех режимов: кнопки cookie — переносом (на телефоне «Отклонить» уходила за край); «Возраст / Где» — подпись над значением (в две колонки под значение оставалось 20px); жёлтые пометки — без внутренних отступов (выталкивали текст за край блока) */
html.vds .ck-b{flex-wrap:wrap}html.vds .ck-b button{flex:1 1 auto}
html.vds .facts li{display:block!important}html.vds .facts li>*{display:block}
html.vds .phy{padding:0!important;margin:0!important}
@media (max-width:700px){html.vds .box{padding-left:.75rem!important;padding-right:.75rem!important}}
/* панель настроек — своим размером, не растёт вместе со шрифтом страницы (при А++ на телефоне занимала весь первый экран) */
html.vds .vds-bar{font-size:16px!important;padding:8px 0}html.vds .vds-bar *{font-size:16px!important;line-height:1.25!important;letter-spacing:0!important;word-spacing:0!important}
html.vds .vds-bar button{min-height:44px;min-width:44px;padding:0 10px}html.vds .vds-in{gap:6px 16px}html.vds .vds-g{gap:6px}
/* окно cookie: при А++ и большом интервале закрывало весь экран телефона — свой крупный размер 20px и не выше 60 % окна */
html.vds .ck{font-size:20px!important;max-height:60vh;overflow:auto}html.vds .ck *{font-size:20px!important;line-height:1.4!important;letter-spacing:0!important;word-spacing:0!important}
html.vds h1{font-size:2rem!important}html.vds h2{font-size:1.6rem!important}
html.vds .ptbl,html.vds .ptbl thead,html.vds .ptbl tbody,html.vds .ptbl tr,html.vds .ptbl th,html.vds .ptbl td,html.vds .req,html.vds .req tr,html.vds .req th,html.vds .req td{display:block!important;width:auto!important;text-align:left!important}
html.vds .mnav{position:static}
/* полоса cookie: «Принять» и «Отклонить» равнозначны (ТЗ §14.4); до выбора счётчиков нет — на макете их нет вовсе */
.ck{position:fixed;left:1rem;right:1rem;bottom:1rem;z-index:80;max-width:46rem;margin:0 auto;background:#0A0144;color:#fff;border:1px solid rgba(255,255,255,.3);border-radius:16px;
 padding:.9rem 1.1rem;display:flex;gap:.75rem 1.25rem;align-items:center;flex-wrap:wrap;box-shadow:0 12px 40px rgba(0,0,0,.35);font-size:.875rem;line-height:1.45}
.ck p{flex:1 1 18rem;margin:0}.ck a{color:#86F0CF}.ck-b{display:flex;gap:.5rem}
.ck button{min-height:2.75rem;padding:0 1.1rem;border-radius:10px;border:2px solid #fff;background:transparent;color:#fff;font:600 .9375rem/1 var(--text);cursor:pointer}
.ck button:hover{background:rgba(255,255,255,.12)}
@media (max-width:700px){.ck{left:.5rem;right:.5rem;bottom:.5rem;padding:.7rem .8rem;font-size:.8125rem}.ck-b{width:100%}.ck-b button{flex:1 1 0}}
/* Панель «Версия для слабовидящих» — по образцу rgsu.net (Роза 13.10: «один в один, чуть под стиль каждого сайта»).
   Общая для садика, лицея, Талантики (и Умнополиса): сайт задаёт только цвета и шрифт переменными --sv-* на .sv.
   Все размеры в px и с !important на тексте: режим для слабовидящих увеличивает шрифт и интервалы всей страницы
   и перекрашивает всё подряд — панель от этого не должна меняться (поэтому селекторы с двойным классом .sv.sv).
   Анимация как у rgsu: панель выезжает сверху на 50px и проявляется за ~0,35 с, фон затемняется. Переходы с !important: режим
   для слабовидящих выключает анимации всей страницы (transition:none!important), панель — исключение. */
/* внешность сайта: --sv-ink текст, --sv-muted подписи групп, --sv-line рамки, --sv-soft фон капсулы, --sv-accent выбранное и фокус,
   --sv-font/--sv-title-font шрифты, --sv-bg фон панели, --sv-box фон кнопок, --sv-on выбранное в «Видны/Скрыты», --sv-r скругление квадратов, --sv-dr нижнее скругление панели, --sv-tw жирность заголовка */
.sv{--sv-ink:#0E0E0F;--sv-muted:#8792A7;--sv-line:#CFD7E1;--sv-soft:#F3F5F8;--sv-accent:#1031A5;--sv-font:Arial,Helvetica,sans-serif;--sv-title-font:var(--sv-font);--sv-r:4px;--sv-dr:0px;--sv-tw:500;--sv-bg:#fff;--sv-box:#fff;--sv-on:#fff;
  position:fixed;left:0;right:0;top:0;bottom:0;z-index:2147483000;visibility:hidden;pointer-events:none}
.sv.is-open{visibility:visible;pointer-events:auto}
.sv::before{content:"";position:absolute;left:0;right:0;top:0;bottom:0;background:rgba(0,0,0,.7)!important;opacity:0;transition:opacity .35s ease!important}
.sv.is-open::before{opacity:1}
.sv.sv .sv__dialog{position:relative;z-index:1;display:flex;flex-direction:column;gap:32px;max-height:100vh;overflow:auto;-webkit-overflow-scrolling:touch;
  padding:32px 32px 40px;background:var(--sv-bg)!important;color:var(--sv-ink)!important;box-shadow:0 8px 16px rgba(0,0,0,.15)!important;border-radius:0 0 var(--sv-dr) var(--sv-dr);
  -webkit-transform:translateY(-50px);transform:translateY(-50px);opacity:0;transition:transform .35s cubic-bezier(.22,.61,.36,1),opacity .35s ease!important;box-sizing:border-box}
.sv.sv.is-open .sv__dialog{-webkit-transform:none;transform:none;opacity:1}
.sv.sv *::before,.sv.sv *::after{-webkit-filter:none!important;filter:none!important}
.sv.sv *{box-sizing:border-box;font-family:var(--sv-font)!important;letter-spacing:normal!important;word-spacing:normal!important;text-shadow:none!important;
  -webkit-hyphens:none!important;hyphens:none!important;overflow-wrap:normal!important;word-break:normal!important;text-decoration:none!important;filter:none!important;animation:none!important}
.sv.sv .sv__in{width:100%;max-width:1376px;margin:0 auto;display:flex;flex-direction:column;gap:32px}
.sv.sv .sv__header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;background:transparent!important}
.sv.sv .sv__title{margin:0;font-family:var(--sv-title-font)!important;font-size:38px!important;line-height:1.21!important;font-weight:var(--sv-tw)!important;color:var(--sv-ink)!important;background:transparent!important}
.sv.sv .sv__close{flex:none;width:44px!important;height:44px!important;min-height:44px!important;max-width:none!important;padding:0!important;border:1px solid var(--sv-line)!important;border-radius:50%!important;background:var(--sv-box)!important;
  color:var(--sv-ink)!important;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background-color .3s,border-color .3s}
.sv.sv .sv__close:hover,.sv.sv .sv__close:focus-visible{background:var(--sv-soft)!important;border-color:var(--sv-ink)!important}
.sv.sv .sv__close svg{width:24px;height:24px}
.sv.sv .sv__close svg *{fill:none!important;stroke:currentColor!important}
.sv.sv .sv__main{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:32px 20px;align-items:end;background:transparent!important}
.sv.sv .sv__section{display:flex;flex-direction:column;gap:16px;background:transparent!important}
.sv.sv .sv__label{font-size:20px!important;line-height:32px!important;font-weight:400!important;color:var(--sv-muted)!important;background:transparent!important}
.sv.sv .sv__controls{display:flex;gap:8px;flex-wrap:wrap;background:transparent!important;padding-bottom:14px}
/* квадратные кнопки «А А А», «Т Т Т», интервал — рамка 1px, скругление 4px, под выбранной полоска 4px */
.sv.sv .sv-r{position:relative;display:block;width:48px;height:48px;margin:0;cursor:pointer;background:transparent!important}
.sv.sv .sv-r input{position:absolute;opacity:0;width:1px;height:1px;margin:0;pointer-events:none}
.sv.sv .sv-r span{position:relative;display:flex;align-items:center;justify-content:center;width:48px;height:48px;border:1px solid var(--sv-line)!important;border-radius:var(--sv-r)!important;
  background:var(--sv-box)!important;color:var(--sv-ink)!important;font-size:20px!important;line-height:1!important;font-weight:400!important;transition:border-color .3s,background-color .3s}
.sv.sv .sv-r span::after{content:"";position:absolute;left:0;right:0;bottom:-11px;height:4px;border-radius:2px;background:var(--sv-accent)!important;-webkit-transform:scaleX(0);transform:scaleX(0);
  transition:transform .3s cubic-bezier(.22,.61,.36,1)!important}
.sv.sv .sv-r input:checked+span::after{-webkit-transform:scaleX(1);transform:scaleX(1)}
.sv.sv .sv-r:hover span,.sv.sv .sv-r input:focus-visible+span{border-color:var(--sv-ink)!important}
.sv.sv .sv-r input:focus-visible+span{outline:3px solid var(--sv-accent)!important;outline-offset:2px}
.sv.sv .sv-f1 span{font-size:16px!important}.sv.sv .sv-f2 span{font-size:24px!important}.sv.sv .sv-f3 span{font-size:32px!important}
.sv.sv .sv-tbl span{background:#9DD1FF!important;color:#063462!important;border-color:#9DD1FF!important}
.sv.sv .sv-twb span{background:#fff!important;color:#222!important;border-color:#ddd!important}
.sv.sv .sv-tbw span{background:#222!important;color:#fff!important;border-color:#222!important}
.sv.sv .sv-s1 span{font-size:17px!important;letter-spacing:0!important}.sv.sv .sv-s2 span{font-size:17px!important;letter-spacing:.12em!important}
.sv.sv .sv-s3 span{font-size:17px!important;letter-spacing:.24em!important;padding-left:.24em}
/* «Видны / Скрыты» — серая капсула, выбранное — белая таблетка */
.sv.sv .sv-sw{display:inline-flex;align-items:center;padding:4px;border-radius:32px!important;background:var(--sv-soft)!important}
.sv.sv .sv-sw label{position:relative;display:block;margin:0;cursor:pointer;background:transparent!important}
.sv.sv .sv-sw input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.sv.sv .sv-sw span{display:flex;align-items:center;justify-content:center;min-height:40px;padding:6px 18px;border-radius:32px!important;background:transparent!important;
  color:var(--sv-ink)!important;font-size:18px!important;line-height:1.44!important;font-weight:500!important;transition:background-color .3s,box-shadow .3s!important}
.sv.sv .sv-sw input:checked+span{background:var(--sv-on)!important;box-shadow:0 1px 3px rgba(0,0,0,.08)!important}
.sv.sv .sv-sw input:focus-visible+span{outline:3px solid var(--sv-accent)!important;outline-offset:2px}
.sv.sv .sv__reset{align-self:flex-start;display:inline-flex;align-items:center;justify-content:center;min-height:58px;padding:10px 30px;border:1px solid var(--sv-line)!important;
  border-radius:160px!important;background:var(--sv-box)!important;color:var(--sv-ink)!important;font-size:18px!important;line-height:1.44!important;font-weight:500!important;cursor:pointer;
  white-space:nowrap!important;transition:background-color .3s,border-color .3s}
.sv.sv .sv__reset:hover,.sv.sv .sv__reset:focus-visible{background:var(--sv-soft)!important;border-color:var(--sv-ink)!important}
@media (max-width:767px){
  .sv.sv .sv__dialog{height:100%;border-radius:0;padding:16px 16px 32px;gap:24px}
  .sv.sv .sv__title{font-size:28px!important}
  .sv.sv .sv__main{grid-template-columns:1fr;gap:24px}
}
@media (prefers-reduced-motion:reduce){.sv.sv::before,.sv.sv .sv__dialog{transition:none!important}}
html.sv-lock,html.sv-lock body{overflow:hidden!important}
/* кнопка в шапке — круглая, только значок (как у rgsu), цвета — от сайта */
.sv-eye{flex:none;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;min-height:0;padding:0;border-radius:50%;cursor:pointer;
  border:1px solid var(--sv-eye-line,rgba(8,1,67,.2));background:var(--sv-eye-bg,transparent);color:var(--sv-eye-ink,#080143);transition:background-color .3s,border-color .3s,color .3s}
.sv-eye:hover,.sv-eye:focus-visible{background:var(--sv-eye-hover,rgba(8,1,67,.06));border-color:var(--sv-eye-ink,#080143)}
.sv-eye svg{width:24px;height:24px;flex:none}
@media (pointer:coarse){.sv-eye{width:44px;height:44px}}

/* верхняя строка была 36px — круглая кнопка 40px из неё выпирала; строка 44px */
:root{--tb:2.75rem}
.tb-vds{width:40px;height:40px;min-height:0;padding:0;gap:0;justify-content:center;border-radius:50%;border:1px solid rgba(255,255,255,.3);background:none;color:#fff;transition:background-color .3s,border-color .3s}
.tb-vds:hover,.tb-vds:focus-visible{background:rgba(255,255,255,.12);border-color:#fff}
.tb-vds span{display:none!important}.tb-vds:after{content:none!important;display:none!important}
.tb-vds svg{width:22px;height:22px;flex:none}
.sv{--sv-bg:#0B1E44;--sv-box:rgba(255,255,255,.06);--sv-on:rgba(255,255,255,.18);--sv-ink:#F1F4FB;--sv-muted:#9FB0D0;--sv-line:rgba(255,255,255,.24);--sv-soft:rgba(255,255,255,.08);
  --sv-accent:#86F0CF;--sv-font:'Golos Text',system-ui,Arial,sans-serif;--sv-title-font:'Dela Gothic One','Golos Text',sans-serif;--sv-tw:400;--sv-r:10px;--sv-dr:24px}
.sv.sv{background:transparent!important}
.sv.sv .sv__dialog{background:linear-gradient(160deg,#0C2F5A,#0B1E44 60%,#1A1460)!important}
.sv.sv .sv-tbw span{border-color:rgba(255,255,255,.4)!important}
.sv.sv .sv__reset{background:#fff!important;border-color:#fff!important;color:#0A0144!important}
.sv.sv .sv__reset:hover,.sv.sv .sv__reset:focus-visible{background:#86F0CF!important;border-color:#86F0CF!important}
.sv.sv .sv__close:hover,.sv.sv .sv__close:focus-visible{border-color:#fff!important}
/* 13.10 (Роза: «нажимаешь Холдинг — блоки съехавшие кверху»): переход к разделу ставил его верх под закреплённую шапку, заголовок обрезался —
   разделы с адресом встают под шапкой (её высота --hd) с отступом */
section[id],[id].sec,main [id]{scroll-margin-top:calc(var(--hd,4.75rem) + 16px)}
/* 13.10, проверка «по канонам»: подпись первого экрана при А++ росла 19→22px (размер закреплён в px) — растёт со шрифтом режима */
html.vds .hero-lead,html.vds .lead-tail{font-size:1.125rem!important}
@media (max-width:767px){.sv.sv .sv__title{font-size:22px!important;line-height:1.25!important}}
/* 13.10 (Роза: на телефоне значок ВДС и бургер слипались и разного размера — «на мобильной версии убрать из шапки, кнопка в бургере»):
   до 760 px значок в верхней строке скрыт, в мобильном меню — кнопка с подписью (на компьютере — значок в шапке, как было) */
@media (max-width:760px){.tb-in .tb-vds{display:none!important}}
.mnav .mnav-vds{display:flex!important;align-items:center;gap:10px;width:auto!important;height:auto!important;min-height:48px;padding:0 16px!important;border:1px solid var(--line)!important;border-radius:12px!important;
  background:transparent!important;color:var(--head)!important;font:inherit;font-weight:600;font-size:1rem;cursor:pointer;align-self:flex-start}
.mnav .mnav-vds span{display:inline!important}.mnav .mnav-vds:after{content:none!important}
/* 13.10 (Роза: «на слабовидящей версии кнопки плохие и фотографии сжимаются от размера шрифта»).
   Шапка — своего размера одной строкой (логотип, «Пробное», меню-кнопка; сверху — телефон и глаз), а не столбиком ссылок;
   кнопки-ссылки без подчёркивания; фото — целым кадром в своих пропорциях и не выше окна; ряды карточек — реже при крупном шрифте. */
html.vds .tb-in{display:flex!important;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:6px 18px}
html.vds .tb-in,html.vds .tb-in *{font-size:16px!important;line-height:1.3!important;letter-spacing:0!important;word-spacing:0!important}
html.vds .tb-addr,html.vds .tb-links{display:none!important}
html.vds .tb-vds{width:44px!important;height:44px!important;min-height:44px!important;flex:none}
html.vds .hd-in{display:flex!important;align-items:center;gap:12px;flex-wrap:nowrap;padding-top:8px;padding-bottom:8px}
html.vds .head .logo{margin-right:auto;font-size:22px!important;line-height:1.1!important;white-space:normal}
html.vds .head .logo *{font-size:inherit!important}
html.vds .head .nav{display:none!important}
html.vds .head .hd-cta,html.vds .head .hd-cta *{font-size:16px!important;line-height:1.2!important;letter-spacing:0!important}
html.vds .head .hd-cta{min-height:44px!important;padding:0 14px!important;flex:none}
html.vds .head .burger{display:inline-flex!important;width:44px!important;height:44px!important;min-height:44px!important;padding:0!important;align-items:center;justify-content:center;border:2px solid var(--vds-fg)!important;border-radius:10px;flex:none}
html.vds .head .burger span{position:relative;width:20px;height:14px;background:transparent!important;border-top:2px solid var(--vds-fg)!important;border-bottom:2px solid var(--vds-fg)!important;box-sizing:border-box}
html.vds .head .burger span::before{content:"";position:absolute;left:0;right:0;top:4px;height:2px;background:var(--vds-fg)}
html.vds .mnav{position:static!important;inset:auto!important;padding:16px var(--pad)}
html.vds .mnav[hidden]{display:none!important}
html.vds a.btn,html.vds .btn{text-decoration:none!important}
html.vds main img{height:auto!important;max-height:60vh!important;aspect-ratio:auto!important;object-fit:contain!important;position:static!important;transform:none!important}
html.vds .nc-ph,html.vds .age,html.vds .put-item,html.vds .mini-ph,html.vds .pg-cover,html.vds .at-ph{height:auto!important;min-height:0!important;max-height:none!important;aspect-ratio:auto!important}
html.vds .nc-ph img,html.vds .age img,html.vds .put-item img,html.vds .mini-ph img,html.vds .pg-cover img{width:100%!important}
@media (min-width:900px){html.vds .rows{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-auto-flow:row!important;grid-auto-columns:auto!important;overflow:visible!important;gap:1rem}html.vds .rows>*{margin-bottom:0!important}}
@media (min-width:900px){html.vds-f3 .rows{grid-template-columns:minmax(0,1fr)}}
/* Окно ответа (tools/fq/fq.js). Внешность сайта — переменные: --fq-ink текст, --fq-muted ответ, --fq-acc кнопка и метка, --fq-bg фон окна,
   --fq-line рамка, --fq-r скругление, --fq-font, --fq-title-font, --fq-tw жирность заголовка, --fq-shade затемнение. Появление: снизу с лёгким увеличением. */
.fqd{--fq-ink:#080143;--fq-muted:#4A4766;--fq-acc:#51B1CE;--fq-bg:#fff;--fq-line:rgba(8,1,67,.12);--fq-r:24px;--fq-font:inherit;--fq-title-font:inherit;--fq-tw:800;--fq-shade:rgba(8,1,67,.45);
  position:fixed;inset:0;z-index:2147482000;display:flex;align-items:center;justify-content:center;padding:20px}
.fqd[hidden]{display:none}
.fqd-bg{position:absolute;inset:0;background:var(--fq-shade);opacity:0;transition:opacity .28s ease}
.fqd-box{position:relative;width:min(640px,100%);max-height:min(82vh,760px);overflow:auto;background:var(--fq-bg);color:var(--fq-ink);border:1px solid var(--fq-line);border-radius:var(--fq-r);
  padding:34px 36px 30px;box-shadow:0 30px 60px -20px rgba(0,0,0,.35);font-family:var(--fq-font);opacity:0;transform:translateY(24px) scale(.97);
  transition:opacity .28s ease,transform .38s cubic-bezier(.22,.61,.36,1)}
.fqd.is-open .fqd-bg{opacity:1}.fqd.is-open .fqd-box{opacity:1;transform:none}
.fqd-k{margin:0 0 6px;font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--fq-acc)}
.fqd-t{margin:0 48px 14px 0;font-family:var(--fq-title-font);font-weight:var(--fq-tw);font-size:clamp(20px,2.2vw,26px);line-height:1.2;color:var(--fq-ink)}
.fqd-a,.fqd-a p,.fqd-a li{color:var(--fq-muted);font-size:17px;line-height:1.6}
.fqd-a p{margin:0 0 .6em;padding:0;display:block;position:static;border:0;background:none;box-shadow:none}
.fqd-a a{color:var(--fq-ink)}
/* обёртки ответа на сайте свёрнуты, пока вопрос закрыт (высота 0, сетка 0fr) — в окне всё содержимое развёрнуто */
.fqd-a *{max-height:none!important;grid-template-rows:none!important;opacity:1!important;visibility:visible!important}
.fqd-a > div,.fqd-a > div > div{display:block!important;height:auto!important;min-height:0!important;overflow:visible!important;padding:0!important;margin:0!important;border:0!important;background:none!important}
.fqd-x{position:absolute;top:18px;right:18px;width:44px;height:44px;border-radius:50%;border:0;background:var(--fq-acc);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;
  transition:transform .25s cubic-bezier(.22,.61,.36,1),filter .2s}
.fqd-x:hover,.fqd-x:focus-visible{transform:rotate(90deg);filter:brightness(.9)}
.fqd-x svg{width:22px;height:22px}
html.fqd-lock{overflow:hidden}
@media (max-width:600px){.fqd{align-items:flex-end;padding:0}.fqd-box{border-radius:var(--fq-r) var(--fq-r) 0 0;max-height:86vh;padding:28px 20px 26px;transform:translateY(40px)}}
@media (prefers-reduced-motion:reduce){.fqd-bg,.fqd-box{transition:none}}

.fqd{--fq-bg:#0B1E44;--fq-ink:#F1F4FB;--fq-muted:#C3CEE6;--fq-acc:#86F0CF;--fq-line:rgba(255,255,255,.24);--fq-r:20px;--fq-font:'Golos Text',system-ui,sans-serif;
  --fq-title-font:'Dela Gothic One','Golos Text',sans-serif;--fq-tw:400;--fq-shade:rgba(3,8,30,.6)}
.fqd .fqd-x{color:#0B1E44}.fqd .fqd-a a{color:#86F0CF}
.faq .fq summary{transition:background-color .2s,color .2s}.faq .fq:hover summary{color:var(--acc)}
html.vds .fqd{--fq-bg:var(--vds-bg);--fq-ink:var(--vds-fg);--fq-muted:var(--vds-fg);--fq-acc:var(--vds-fg);--fq-line:var(--vds-fg)}
html.vds .fqd .fqd-box{border:3px solid var(--vds-fg)!important}html.vds .fqd .fqd-x{color:var(--vds-bg)!important}
/* 13.10 (Роза: «анимации должны быть на всех сайтах, на всех кнопках, страницах»). Общая основа: у любой ссылки, кнопки и вопроса —
   плавная смена цвета, фона, рамки и тени (там, где у элемента своего перехода не было; свои правила сайта сильнее — у них класс).
   Без смещения элементов: стрелки и значки, стоящие через transform, не дёргаются. Для «уменьшить движение» — без анимации. */
a,button,summary,[role=button],label{transition:color .2s ease,background-color .2s ease,border-color .2s ease,box-shadow .25s ease,opacity .2s ease,filter .2s ease,text-decoration-color .2s ease}
@media (hover:hover){
  a:not([class]):hover{text-decoration-color:currentColor}
  summary:hover{filter:brightness(.92)}
  button:not([disabled]):hover,[role=button]:hover{filter:brightness(.96)}
}
button:not([disabled]):active,[role=button]:active,summary:active{filter:brightness(.88)}
@media (prefers-reduced-motion:reduce){a,button,summary,[role=button],label{transition:none}}
/* 13.10 (Роза: «анимации… на страницах»): переход между страницами сайта — как у садика: шапка стоит на месте, старое содержимое гаснет
   и уходит вверх, новое поднимается. Chrome 126+ / Safari 18.2+, остальные — обычная загрузка. Шапка — view-transition-name: site-head. */
@view-transition{navigation:auto}
::view-transition-old(root){animation:.28s ease both vt-out}
::view-transition-new(root){animation:.48s cubic-bezier(.22,.61,.36,1) .06s both vt-in}
::view-transition-group(site-head){animation:none}
@keyframes vt-out{to{opacity:0;transform:translateY(-12px)}}
@keyframes vt-in{from{opacity:0;transform:translateY(18px)}}
@media (prefers-reduced-motion:reduce){@view-transition{navigation:none}}

/* 13.10 (Роза: «анимации на всех кнопках, страницах»): шапка стоит на месте при переходе; логотип, «атомы» направлений, чипы фильтров — с плавной реакцией */
.head{view-transition-name:site-head}
.logo{transition:opacity .2s ease}@media (hover:hover){.logo:hover{opacity:.82}}
.atom{transition:filter .25s ease,box-shadow .25s ease,opacity .2s ease}@media (hover:hover){.atom:hover{filter:brightness(1.12) drop-shadow(0 0 10px rgba(134,240,207,.45))}}
.chip span,.chip{transition:background-color .2s ease,border-color .2s ease,color .2s ease,box-shadow .2s ease}
html.vds .head{view-transition-name:none}

.sv,.sv .sv__dialog{max-width:100vw!important;box-sizing:border-box}.sv .sv__controls{flex-wrap:wrap;min-width:0}.sv .sv__controls>*{min-width:0}
.ck{max-width:calc(100vw - 1rem);box-sizing:border-box;flex-wrap:wrap}

@media (max-width:359px){.btn{padding-left:.9rem;padding-right:.9rem;font-size:.875rem;max-width:100%;white-space:normal;text-align:center}}
@media (max-width:359px){
 h1,h2,h3{overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto}
 .pg-head h1,.pg-t h1{font-size:min(1.55rem,7.4vw)!important}
 .sec-head h2{font-size:min(1.55rem,7.4vw)!important}
 main p,main li,main td,main dd,.phy{overflow-wrap:anywhere}
 .grid2{grid-template-columns:minmax(0,1fr)!important}.grid2>*{min-width:0}
}

body{background:url('/netcat_template/template/talantika/assets/uzor-tl.svg') 0 0/720px 720px repeat,linear-gradient(180deg,#07475A 0%,#0A3A6E 22%,#1B2C82 48%,#2E1F86 72%,#0A0144 100%)}
@media (max-width:760px){body{background-size:460px 460px,auto}}
.head{background:rgba(5,16,44,.94);border-bottom:0;box-shadow:0 10px 30px -14px rgba(0,0,0,.65)}
.head::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:linear-gradient(90deg,#00E7AE,#06B4D2 45%,#9989F8);opacity:.9;pointer-events:none}
.hero h1 .tl-acc{background:linear-gradient(90deg,#86F0CF,#7FD3F2 55%,#D3CCFF);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero .picker{background:rgba(255,255,255,.09);border-color:rgba(255,255,255,.28);box-shadow:0 24px 60px -30px rgba(0,0,0,.6),inset 0 1px 0 rgba(255,255,255,.18)}
.mol .face{stroke:rgba(255,255,255,.32);stroke-width:1}
.mol .g-core{filter:drop-shadow(0 0 22px rgba(134,240,207,.38))}
.mol .bond[stroke-dasharray]{stroke:rgba(255,255,255,.55)}
html.vds .head::after,html.vds .mol .g-core{display:none}
/* 13.10 (Роза: «нажимаешь на шарики — страница скачет»): подпись под молекулой то в одну строку, то в две — молекула по центру колонки
   прыгала на полстроки. Под подпись всегда место ровно на две строки, длиннее — обрезается многоточием */
.mol-note{min-height:3.2em;line-height:1.6;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
/* 14.10 (Роза: «на телефоне убери кнопку „Пробное“; и название — не „Пробное“, а „Записаться“»): кнопка шапки — «Записаться»,
   на телефоне её нет (запись — в меню и на первом экране), бургер стоит справа */
@media (max-width:760px){.head .hd-cta{display:none}.head .burger{grid-column:4;justify-self:end}}
/* 14.10 (Роза): верхняя полоска над меню — цвет #0f2653 и при переходе между страницами стоит на месте, как меню (своё имя перехода) */
.topbar{background:#0f2653!important;view-transition-name:site-top}
::view-transition-group(site-top){animation:none}
html.vds .topbar{view-transition-name:none}
/* 14.10 (Роза: «открываешь ответ на вопрос — пропадает шапка»): body сам обрезал горизонталь (overflow-x:hidden) и при запертой прокрутке
   окна ответа становился отдельной прокручиваемой областью — липкая шапка уезжала вверх. clip обрезает так же, но области не создаёт */
body{overflow-x:clip}

.side.flt-panel fieldset:first-of-type{grid-template-columns:1fr 1fr;column-gap:.5rem}.side.flt-panel fieldset:first-of-type legend{grid-column:1/-1}

/* ── 12.10 внутренние страницы: всё поверх CSS варианта 4 (theme_css) ── */
.phy{background:#FFE45C;color:#0A0144;padding:0 .3em;border-radius:4px;font-weight:600;-webkit-box-decoration-break:clone;box-decoration-break:clone}
.crumbs{font-size:.875rem;color:var(--muted);margin-bottom:.85rem;display:flex;flex-wrap:wrap;gap:.25rem .4rem}
.crumbs a{color:var(--muted)}.crumbs a:hover{color:var(--head)}.crumbs span{color:var(--ink)}
.pg-head{padding:clamp(1.5rem,3.5vw,2.75rem) 0 clamp(1.25rem,3vw,2.25rem)}
.pg-head h1{font-size:clamp(1.75rem,.9rem + 2.1vw,3.1rem);line-height:1.08;max-width:18em}
.pg-split .nwd{white-space:normal}  /* рядом с фото длинная пара слов («образовательной организации») заезжала под фото */
.pg-lead{margin-top:.9rem;max-width:44rem;font-size:1.125rem}
.pg-acts{margin-top:1.25rem;display:flex;gap:.75rem;flex-wrap:wrap;align-items:center}
.pg-split{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(1.25rem,3vw,3rem);align-items:center}
.pg-cover{border-radius:var(--r);overflow:hidden;aspect-ratio:3/2;border:1px solid var(--line);max-height:calc(calc(100 * var(--svh)) - var(--tb) - var(--hd) - 6rem);margin-left:auto}
.pg-cover img{width:100%;height:100%;object-fit:cover}
.pg-facts{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}
.pg-facts span{background:var(--surf);border:1px solid var(--line);border-radius:999px;padding:.3rem .85rem;font-size:.875rem;color:var(--head);font-weight:600}
.box{background:var(--surf);border:1px solid var(--line);border-radius:var(--r);padding:1.1rem 1.25rem;min-width:0}
.box h3{margin-bottom:.45rem}.box p+p{margin-top:.5rem}.box p{font-size:.9375rem}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;align-items:stretch}
.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;align-items:stretch}
.facts{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}
.facts li{display:grid;grid-template-columns:9rem minmax(0,1fr);gap:.75rem;font-size:.9375rem;padding-bottom:.5rem;border-bottom:1px solid var(--line)}
.facts li:last-child{border-bottom:0;padding-bottom:0}.facts b{color:var(--head);font-weight:600}
.nofoto{display:flex;align-items:center;justify-content:center;background:var(--surf2);border:1px dashed var(--line);border-radius:14px;color:var(--muted)}
.cta-in{display:flex;align-items:center;justify-content:space-between;gap:1.5rem 2rem;flex-wrap:wrap;background:var(--surf);border:1px solid var(--line);border-radius:var(--r);padding:clamp(1.25rem,3vw,2rem)}
.cta-in h2{font-size:clamp(1.4rem,1rem + 1vw,2rem)}.cta-in p{margin-top:.4rem;color:var(--muted)}
.cta-b{display:flex;align-items:center;gap:1rem 1.5rem;flex-wrap:wrap}.cta-b .z-phone{margin:0}
.napr-card h3 a{color:inherit;text-decoration:none}.napr-card h3 a:hover{color:var(--acc);text-decoration:underline}
/* Т3: две колонки — содержимое и липкая карточка записи справа (только компьютер) */
.napr-lay{max-width:var(--wrap);margin:0 auto;padding:0 var(--pad);display:grid;grid-template-columns:minmax(0,1fr) 16rem;gap:0 2.25rem;align-items:start}
.napr-main .wrap{padding:0;max-width:none;margin:0}
.napr-side{position:sticky;top:calc(var(--hd) + 1.25rem);margin:clamp(2.25rem,4.5vw,3.5rem) 0}
.napr-stick{background:var(--surf);border:1px solid var(--line);border-radius:var(--r);padding:1.1rem;display:grid;gap:.55rem}
.ns-t{font-weight:700;color:var(--head);font-size:1.0625rem;line-height:1.25}.ns-p{font-family:var(--disp);font-size:1.5rem;color:var(--acc);line-height:1.1}
.ns-p span{font-family:var(--text);font-size:.875rem;color:var(--muted)}.ns-f{font-size:.875rem;color:var(--muted)}.ns-ph{font-weight:700;color:var(--head);text-decoration:none;text-align:center}
@media (max-width:1100px){.napr-lay{display:block;padding:0}.napr-main .wrap{padding:0 var(--pad);max-width:var(--wrap);margin:0 auto}.napr-side{display:none}}
/* мини-карточки направлений */
.minis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}
.minis.m3{grid-template-columns:repeat(3,minmax(0,1fr))}
.mini{display:flex;flex-direction:column;background:var(--surf);border:1px solid var(--line);border-radius:var(--r);color:var(--ink);text-decoration:none;transition:border-color .2s}
.mini:hover{border-color:var(--acc);color:var(--ink)}
.mini-ph img{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:calc(var(--r) - 1px) calc(var(--r) - 1px) 0 0}  /* без overflow:hidden у карточки — Safari и Firefox считали надпись обрезанной */
.mini-b{padding:.75rem 1rem 1rem;display:flex;flex-direction:column;gap:.2rem;flex:1}
.mini-ty{font-size:.8125rem;font-weight:600;color:var(--acc)}.mini-b h3{font-size:1.0625rem}
.mini-b p{font-size:.875rem;color:var(--muted)}.mini-p{margin-top:auto!important;padding-top:.3rem;color:var(--head)!important;font-weight:600}
/* фильтр-чипы (расписание) */
.chips-f{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.1rem;border:0;padding:0}
.chips-f legend{font-weight:700;color:var(--head);font-size:.9375rem;margin-bottom:.4rem;padding:0;width:100%}
.chip{position:relative;cursor:pointer}.chip input{position:absolute;opacity:0;width:1px;height:1px}
.chip span{display:inline-flex;align-items:center;min-height:2.75rem;padding:0 1.1rem;border-radius:var(--rb);border:1px solid var(--line);background:var(--surf);font-weight:600;font-size:.9375rem;transition:background-color .2s,color .2s}
.chip:hover span{border-color:var(--acc)}.chip input:checked+span{background:var(--btn);color:var(--btnink);border-color:transparent}
.chip input:focus-visible+span{outline:2px solid var(--acc);outline-offset:2px}
/* выбранное в каталоге — чипами с крестиком (ТЗ §9.8) */
.near{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.6rem}.near:empty{display:none}.near:before{content:"Рядом по интересу:";width:100%;font-size:.875rem;color:var(--muted)}
.near-a{display:inline-flex;align-items:center;min-height:2.75rem;padding:0 .9rem;border-radius:var(--rb);border:1px solid var(--line);background:var(--surf);color:var(--head);font-size:.875rem;font-weight:600;text-decoration:none}
.sel-chips{display:flex;flex-wrap:wrap;gap:.35rem}
.sel-chips button{display:inline-flex;align-items:center;gap:.35rem;min-height:2.25rem;padding:0 .7rem;border-radius:999px;border:1px solid var(--line);background:var(--surf);color:var(--head);font-size:.8125rem;font-weight:600;cursor:pointer}
.sel-chips button:after{content:"×";font-size:1rem;line-height:1;color:var(--acc)}
/* неделя расписания: на компьютере дни колонками, на планшете и телефоне — вкладки */
.wk{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.75rem;align-items:stretch}  /* 15.10: шесть дней — добавлена суббота */  /* дни разной длины — колонки одной высоты (правило «ряд ровный») */
.wk-day{background:var(--surf);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;min-width:0}
.wk-day h3{font-size:1rem;padding:.6rem .85rem;border-bottom:1px solid var(--line)}
.wk-day ul{list-style:none;margin:0;padding:0}
.slot{padding:.4rem .85rem;border-top:1px solid var(--line);line-height:1.28}.slot:first-child{border-top:0}
.sl-t{display:block;font-size:.8125rem;font-weight:700;color:var(--acc);font-variant-numeric:tabular-nums}
.sl-n{display:block;font-size:.9375rem;color:var(--head);text-decoration:none;font-weight:600}a.sl-n:hover{color:var(--head);text-decoration:underline}
.sl-m{color:var(--muted);font-weight:400}
.rsp-f{display:flex;flex-wrap:wrap;gap:0 2rem}.rsp-n{margin-top:.75rem;font-weight:700;color:var(--acc)}
.sl-x{display:block;font-size:.8125rem;color:var(--muted);line-height:1.25}
.wk-none{padding:.6rem .85rem;font-size:.875rem;color:var(--muted)}
.wk-tabs{display:none}
#nedelya.sec{padding:1.5rem 0 2.25rem}#nedelya .sec-head{margin-bottom:.85rem}
/* 15.10 Т10 (созвон 11:26, «странное расстояние»): у «Недели» поля урезаны (блок в окне), и над ней зазор 60 px, а под ней — 92 px
   (обычные 56 px «Индивидуальных занятий»). Зазоры до и после недели — одинаковые */
#zapis-nabor.sec{padding-top:1.5rem}
/* 13.10 (Роза: «не помещается ничего»): неделя — в одно окно; длинный день листается внутри своей колонки, внизу тень «есть ещё» */
.wk-day{position:relative;display:flex;flex-direction:column}
.wk-day ul{max-height:calc(calc(100 * var(--svh)) - var(--hd,4.75rem) - var(--wk-off,19rem));overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--line) transparent}
.wk-day::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3rem;border-radius:0 0 var(--r) var(--r);pointer-events:none;
  background:linear-gradient(rgba(8,1,67,0),rgba(8,1,67,.7));opacity:0;transition:opacity .25s}
.wk-day.more::after{opacity:1}
/* на телефоне и планшете дни — вкладками, второй ряд кнопок «Дни» лишний */
@media (max-width:1100px){#nedelya{--wk-off:19rem}#rsp-age .chips-f+.chips-f{display:none}}@media (max-width:700px){#nedelya{--wk-off:22rem}}
html.vds .wk-day ul{max-height:none!important;overflow:visible!important}html.vds .wk-day::after{display:none!important}
/* каталог: пять дней фильтра — в одну строку (на 1920+ «Пт» падал вниз и блок вылезал за окно) */
#katalog .days-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.35rem}#katalog .day span{min-width:0;width:100%}
@media (max-width:1100px){.wk-tabs{display:flex;gap:.5rem;margin-bottom:.75rem}.wk{display:block}.wk-day.off{display:none}.wk-day h3{display:none}}
@media (max-width:700px){.wk-tabs .rs-tab{flex:1 1 0;min-width:0;padding:0}.slot{padding:.38rem .75rem}}
/* таблица цен по типам */
.pt-tabs{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:.85rem}
.pt-pans{display:grid}.pt-pans>.pt-pan{grid-area:1/1;align-self:start}.pt-pan.off{visibility:hidden}
.pt-box{background:var(--surf);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.ptbl{width:100%;border-collapse:collapse;table-layout:fixed}  /* fixed — столбцы цен одной ширины во всех таблицах (ryady.py) */
.ptbl th:first-child{width:46%}
.ptbl th,.ptbl td{padding:.42rem 1rem;text-align:left;border-top:1px solid var(--line);font-size:.9375rem;vertical-align:baseline}
.ptbl thead th{border-top:0;font-size:.8125rem;color:var(--muted);font-weight:600}
.ptbl td.r,.ptbl th.r{white-space:nowrap;text-align:right;font-variant-numeric:tabular-nums}
.ptbl td a{color:var(--head);text-decoration:none;font-weight:600}.ptbl td a:hover{text-decoration:underline}
.ptbl .fm{display:inline;margin-left:.5em;font-size:.8125rem;color:var(--muted)}.fm-l{font-size:.75rem;color:var(--muted)}.nw{white-space:nowrap}@media (min-width:701px){.nwd{white-space:nowrap}}@media (max-width:700px){.pg-head h1 .nwd{display:block}}
.pt-note{margin-top:.75rem;font-size:.875rem;color:var(--muted)}
/* цены: самая длинная вкладка («Учёба», 10 строк) должна вставать в окно 1366×768 */
#ceny.sec{padding:1.75rem 0}#ceny .sec-head{margin-bottom:.9rem}
@media (max-width:700px){.pt-tabs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-right:calc(-1 * var(--pad));padding-right:var(--pad)}
 .pt-tabs::-webkit-scrollbar{display:none}.pt-tabs .rs-tab{flex:none;min-height:2.5rem;padding:0 .9rem}
 /* телефон: строка — название, под ним три цены; подписи столбцов — одной шапкой сверху (подпись в каждой ячейке делала таблицу выше окна) */
 .ptbl,.ptbl thead,.ptbl tbody{display:block}.ptbl th,.ptbl td{display:block;border:0;padding:0}
 .ptbl tr{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 .5rem;padding:.38rem .75rem;border-top:1px solid var(--line)}
 .ptbl thead tr{border-top:0;padding-top:.45rem;padding-bottom:.3rem}.ptbl thead th:first-child{display:none}.ptbl thead th{font-size:.75rem}
 .ptbl td{font-size:.8125rem;line-height:1.3}.ptbl td:first-child{grid-column:1/-1;font-size:.875rem}
 .ptbl td.r,.ptbl th.r{text-align:left;white-space:normal}.ptbl .fm{display:inline;font-size:.75rem;margin-left:.4em}}
@media (max-width:420px){#ceny .pt-note,#katalog .sec-head p{display:none}  /* 360×740: блок в окне */
.ptbl .fm{display:none}.ptbl tr{padding-top:.32rem;padding-bottom:.32rem}}
/* 15.10 Т11: скидки — четыре карточки с крупной цифрой; на планшете и телефоне 2×2 */
.sk4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;align-items:stretch}
.sk{display:flex;flex-direction:column;gap:.35rem;padding:1.25rem 1.35rem 1.35rem}
.sk-n{font-family:var(--disp);font-size:clamp(2.2rem,1.6rem + 1.6vw,3.25rem);line-height:1;color:var(--acc);margin-bottom:.35rem;white-space:nowrap}
.sk h3{margin-bottom:0}.sk p{color:var(--muted)}
@media (max-width:1100px){.sk4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:700px){.sk4{gap:.6rem}.sk{padding:.85rem .9rem .95rem}.sk-n{font-size:1.9rem;margin-bottom:.15rem}.sk h3{font-size:1rem}.sk p{font-size:.8125rem;line-height:1.4}}
html.vds .sk4,html.vds .gal,html.vds .gal4{display:block!important}html.vds .sk4>*,html.vds .gal>*,html.vds .gal4>*{margin-bottom:1rem}
/* 15.10 Т7: галерея — фото с подписью направления, нажатие ведёт на направление */
.gal-i{position:relative;display:block;border-radius:var(--r);overflow:hidden;border:1px solid var(--line);color:#fff;text-decoration:none;aspect-ratio:3/2;background:var(--surf2)}
.gal-i img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease)}
.gal-c{position:absolute;left:0;right:0;bottom:0;padding:2.25rem .9rem .75rem;background:linear-gradient(rgba(5,10,40,0),rgba(5,10,40,.82));display:flex;flex-direction:column;gap:.1rem;font-weight:700;line-height:1.25}
.gal-c small{font-weight:500;font-size:.8125rem;color:#CBD6EE}
@media (hover:hover){.gal-i:hover img{transform:scale(1.04)}.gal-i:hover{border-color:var(--acc)}}
.gal-i:focus-visible{outline:3px solid var(--acc);outline-offset:2px}
.gal4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}
.gal{grid-auto-columns:calc((100% - 2rem) / 3);gap:1rem}
.gal-top{display:flex;align-items:center;gap:.75rem 1rem;flex-wrap:wrap;margin-bottom:.85rem}.gal-top .pt-tabs{margin-bottom:0}.gal-top .rib-nav{margin-left:auto}
@media (max-width:1100px){.gal{grid-auto-columns:calc((100% - 1rem) / 2)}.gal4{gap:.75rem}.gal-c{font-size:.9375rem}}  /* на планшете мини-галерея — те же 4 в ряд: 2×2 не влезала в окно 1024×768 */
@media (max-width:700px){.gl-nav{display:none}.gal{grid-auto-columns:82%}.gal-c{padding:1.75rem .75rem .6rem;font-size:.9375rem}}
/* 15.10: галерея целиком — сетка, вкладки показываются/скрываются полностью, фото появляются по очереди */
.gal-pans>.pt-pan.off{display:none}
.gal-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
@media (max-width:1100px){.gal-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}}
#foto .gal-grid .gal-i{opacity:0;transform:translateY(18px) scale(.97)}
#foto.gal-on .pt-pan:not(.off) .gal-i{animation:galIn .6s var(--ease,cubic-bezier(.2,.7,.2,1)) both;animation-delay:calc(var(--i,0) * 70ms)}
@keyframes galIn{from{opacity:0;transform:translateY(18px) scale(.97)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){#foto .gal-grid .gal-i{opacity:1;transform:none;animation:none!important}}
html.vds #foto .gal-grid .gal-i{opacity:1;transform:none;animation:none!important}
/* педагоги */
.tchs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem}
.tch{display:grid;grid-template-columns:9rem minmax(0,1fr);gap:1.25rem;background:var(--surf);border:1px solid var(--line);border-radius:var(--r);padding:1.1rem}
.tch .nofoto{aspect-ratio:3/4}
.tch-more{margin-top:.6rem}.tch-more summary{cursor:pointer;font-weight:600;color:var(--acc);min-height:2.75rem;display:flex;align-items:center}.tch-more p{margin-top:.3rem}
.tch .role{color:var(--acc);font-weight:600;font-size:.875rem}.tch h3{margin:.2rem 0 .5rem;font-size:1.1875rem}.tch p{font-size:.9375rem}.tch p+p{margin-top:.45rem}
/* контакты */
.kt{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:1.25rem;align-items:stretch}
.kt-map{border-radius:var(--r);overflow:hidden;border:1px solid var(--line);min-height:22rem;background:linear-gradient(135deg,#07475A,#1B2C82)}
.kt-ymap{width:100%;height:100%;min-height:22rem}
.kt-ymap.on [class*="ground-pane"]{filter:grayscale(1) contrast(.95) brightness(1.03)}
.kt-ymap [class*="copyright__agreement"],.kt-ymap [class*="copyright__link"]{font-size:12px!important}  /* у Яндекса на телефоне 11 px, правило сайта — от 12 */
.kt-pin{position:relative;width:44px;height:56px;transform:translate(-50%,-100%)}
.kt-pin svg{display:block;width:44px;height:56px}
.kt-l{list-style:none;margin:0;padding:0;display:grid;gap:.85rem}
.kt-h{margin-bottom:1rem;font-size:clamp(1.4rem,1rem + 1vw,2rem)}.kt-l b{display:block;color:var(--head)}.kt-l a{font-weight:600}
/* сведения и политика */
.req{width:100%;border-collapse:collapse;background:var(--surf);border-radius:var(--r);overflow:hidden}
.req-box{border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.req th,.req td{text-align:left;padding:.55rem 1rem;border-top:1px solid var(--line);font-size:.9375rem;vertical-align:top}
.req tr:first-child th,.req tr:first-child td{border-top:0}
.req th{width:15rem;color:var(--muted);font-weight:600}
.links{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem 1.25rem}
.links a{display:flex;align-items:center;min-height:2.75rem;font-weight:600}
.links-404{margin-top:1rem;display:flex;flex-wrap:wrap;gap:0 1.75rem}
.links.links-t{display:flex;flex-wrap:wrap;gap:.25rem 2rem}.links-t li{display:flex;align-items:center;min-height:2.5rem;padding-left:1.1rem;position:relative;font-weight:600;color:var(--head)}.links-t li:before{content:"";position:absolute;left:0;width:.45rem;height:.45rem;border-radius:2px;background:var(--acc)}
main section[id]{scroll-margin-top:calc(var(--hd) + .5rem)}
.doc-note{font-size:.875rem;color:var(--muted);margin-top:.75rem}
.fq ul{margin:0;padding:0 1rem .9rem 2.2rem;font-size:.9375rem;line-height:1.5}
@media (max-width:900px){.minis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:1100px){.mini-b h3{font-size:.9375rem}}  /* 768–1100: «школьным предметам» неразрывно влезает в карточку */
@media (max-width:700px) and (max-height:800px){.pg-tel{display:none}}  /* низкий телефон 360×740: первый экран «Пробного» в окне, телефон — в верхней строке */
/* новости: рамки без фото — только значок (правило Розы 09.10) */
.nws{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.news-c{display:flex;flex-direction:column;background:var(--surf);border:1px solid var(--line);border-radius:var(--r);color:var(--ink);text-decoration:none}
.news-c:hover{border-color:var(--acc);color:var(--ink)}.news-ph{aspect-ratio:16/9;border-radius:calc(var(--r) - 1px) calc(var(--r) - 1px) 0 0;border:0}
.news-cover{width:100%;height:100%}.news-b{padding:.85rem 1rem 1rem;display:grid;gap:.35rem}.news-d{font-size:.8125rem}.news-b h3{font-size:1.0625rem}.news-b p{font-size:.875rem}
/* три новости в ряд до телефона, на телефоне — лента (каждый блок в окне) */@media (max-width:900px){.grid3{grid-template-columns:minmax(0,1fr)}}
@media (max-width:900px){.grid2{grid-template-columns:minmax(0,1fr)}.pg-split,.kt{grid-template-columns:minmax(0,1fr)}.tchs{grid-template-columns:minmax(0,1fr)}.pg-cover{aspect-ratio:2/1;max-height:none;margin:0}}
@media (max-width:700px){
 .pg-head h1{font-size:1.6rem}.pg-lead{font-size:.9375rem;line-height:1.45}.pg-acts .btn{flex:1 1 100%;white-space:normal;text-align:center;line-height:1.25;padding-top:.45rem;padding-bottom:.45rem}
 .grid2,.grid3{grid-template-columns:minmax(0,1fr)}
 .grid2.swipe-m,.grid3.swipe-m,.minis.swipe-m{display:grid}
 .minis,.minis.m3{grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}.mini-b{padding:.55rem .7rem .7rem}.mini-b h3{font-size:.9375rem}.mini-b p{font-size:.8125rem}
 .mini-ph img{aspect-ratio:2/1}
 .facts li{grid-template-columns:6.5rem minmax(0,1fr);gap:.5rem;font-size:.875rem;padding-bottom:.4rem}.facts{gap:.4rem}  /* подпись и значение в строку — иначе «О занятиях» выше окна 360×740 */
 .tch{grid-template-columns:5.5rem minmax(0,1fr);gap:.85rem;padding:.85rem}
 .kt-map,.kt-ymap{min-height:12rem}.kt-l{gap:.5rem}.kt-l li{font-size:.9375rem;line-height:1.4}.kt-h{margin-bottom:.6rem}
 .req th{width:auto}.req tr{display:grid;padding:.5rem .85rem;border-top:1px solid var(--line)}.req tr:first-child{border-top:0}.req th,.req td{padding:0;border:0}
 .links{grid-template-columns:minmax(0,1fr);gap:0}
 .cta-in{padding:1rem}.cta-b{width:100%}.cta-b .btn{flex:1 1 100%}
}

/* короткие телефоны (360×740): поля разделов тоньше — иначе контакты, реквизиты, пробное и цены вылезали за окно на 20–60 px */
@media (max-width:400px) and (max-height:780px){.sec{padding:1.25rem 0}.pg-head{padding:1rem 0 1rem}.sec-head{margin-bottom:.75rem}#ceny.sec{padding:1.25rem 0}.kt-map,.kt-ymap{min-height:9.5rem}
 .req-box,#ceny .pt-box{max-height:calc(calc(100 * var(--svh)) - var(--hd,4.75rem) - 11.5rem);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
 .pg-probnoe .pg-split{gap:.75rem}.pg-probnoe .lead-box{margin-top:0!important;padding:14px!important}}

@media (max-width:400px){.tch{grid-template-columns:4rem minmax(0,1fr);gap:.7rem}}  /* 360: ФИО и пометка не вылезают из карточки */

.steps{--sm:1.9rem;--sg:1.5rem;--hw:2.38rem;padding-top:1.3rem}
.step{margin-top:var(--sm)}
.step-n{width:var(--hw);height:2.75rem;margin:calc(-1 * var(--sm)) 0 .6rem;position:relative;z-index:2}  /* 15.10 вечер: орбиты меньше и текст ниже — электроны не заходят на заголовок карточки */
.step:not(:last-child)::after{content:"";position:absolute;z-index:0;pointer-events:none;height:1.5px;
 top:calc(1.375rem - var(--sm) - .75px);left:calc(1.1rem + var(--hw) / 2);width:calc(100% + 2px + var(--sg));
 background:repeating-linear-gradient(90deg,var(--bond) 0 2px,transparent 2px 8px)}
.step-at,.step-af{position:absolute;pointer-events:none;width:6.8rem;height:6.8rem;left:calc(1.1rem + var(--hw) / 2 - 3.4rem);top:calc(1.375rem - var(--sm) - 3.4rem)}
.step-at{z-index:1}.step-af{z-index:3}
.step-at svg,.step-af svg{display:block;width:100%;height:100%;overflow:visible}
.step-at .orb{fill:none;stroke:var(--orbit);stroke-width:1}
@media (max-width:900px) and (min-width:701px){.step:nth-child(2n)::after{display:none}.steps{row-gap:1.75rem}}
@media (max-width:700px){.steps{--sg:.75rem}.steps.swipe-m{padding-top:calc(var(--sm) + 1.4rem)}}
html.vds .step::after,html.vds .step-at,html.vds .step-af{display:none!important}

/* ══ 15.10 вечер: движение Талантики (tools/tl_motion.py) ══ */
@property --am-a{syntax:'<angle>';inherits:false;initial-value:0deg}
:root{--am-e:cubic-bezier(.16,1,.3,1);--am-io:cubic-bezier(.65,0,.35,1)}
@media (min-width:400px){html.am-on [data-rv=w]{display:inline-block}}
@media (prefers-reduced-motion:no-preference){
 /* до входа в окно — не видно (только когда скрипт включил движение; в ВДС — всё видно) */
 html.am-on:not(.vds) [data-amg]:not(.am-in) [data-rv],html.am-on:not(.vds) [data-amg][data-rv]:not(.am-in),html.am-on:not(.vds) [data-rv].am-wait{opacity:0}
 html.am-on:not(.vds) [data-amg]:not(.am-in) .step::after,html.am-on:not(.vds) .step.am-wait::after{transform:scaleX(0)}
 /* блок вошёл в окно: его элементы, которые ещё ниже окна (длинные списки, ленты вопросов, таблицы), ждут своей очереди — am-wait (см. JS);
    отыгравший элемент получает am-x — тогда его правило снимается и работают наведение и «.pop» фильтра */
 /* вход в окно: каждый вид — свой рисунок, задержка --d — порядок в блоке */
 html.am-on:not(.vds) .am-in [data-rv=c]:not(.am-x):not(.am-wait),html.am-on:not(.vds) .am-in[data-rv=c]:not(.am-x){transform-origin:50% 210%;
   animation:am-orb .9s var(--am-e) var(--d,0ms) backwards,am-glow 1.3s ease-out calc(var(--d,0ms) + .45s) backwards}
 html.am-on:not(.vds) .am-in [data-rv=f]:not(.am-x):not(.am-wait),html.am-on:not(.vds) .am-in[data-rv=f]:not(.am-x){animation:am-rise .8s var(--am-e) var(--d,0ms) backwards}
 html.am-on:not(.vds) .am-in [data-rv=r]:not(.am-x):not(.am-wait){animation:am-row .65s var(--am-e) var(--d,0ms) backwards}
 html.am-on:not(.vds) .am-in [data-rv=p]:not(.am-x):not(.am-wait){animation:am-pop .55s var(--am-e) var(--d,0ms) backwards}
 html.am-on:not(.vds) .am-in [data-rv=b]:not(.am-x):not(.am-wait){animation:am-btn .7s var(--am-e) var(--d,0ms) backwards}
 html.am-on:not(.vds) .am-in [data-rv=w]:not(.am-x):not(.am-wait){animation:am-word .85s var(--am-e) var(--d,0ms) backwards}
 html.am-on:not(.vds) .am-in [data-rv=ph]:not(.am-x):not(.am-wait){animation:am-hex 1.1s var(--am-e) var(--d,0ms) backwards}
 html.am-on:not(.vds) .am-in [data-rv=ic]:not(.am-x):not(.am-wait){animation:am-ic .85s var(--am-e) var(--d,0ms) backwards}
 html.am-on:not(.vds) .am-in [data-rv=orb]:not(.am-x):not(.am-wait){animation:am-orb2 1.1s var(--am-e) var(--d,0ms) backwards}
 html.am-on:not(.vds) .am-in [data-rv=w]:not(.am-x):not(.am-wait) .mm{animation:am-ic .9s var(--am-e) calc(var(--d,0ms) + .25s) backwards}
 html.am-on:not(.vds) .am-in .step[data-rv]:not(.am-x):not(.am-wait)::after{transform-origin:0 50%;animation:am-line .7s var(--am-io) calc(var(--d,0ms) + .55s) backwards}
}
@keyframes am-orb{from{opacity:0;rotate:var(--or,2deg);translate:0 26px;scale:.94}to{opacity:1;rotate:0deg;translate:0 0;scale:1}}
@keyframes am-glow{0%{box-shadow:0 0 0 0 rgba(134,240,207,0)}35%{box-shadow:0 0 0 1px rgba(134,240,207,.6),0 0 30px -4px rgba(134,240,207,.38)}100%{box-shadow:0 0 0 0 rgba(134,240,207,0)}}
@keyframes am-rise{from{opacity:0;translate:0 22px}to{opacity:1;translate:0 0}}
@keyframes am-row{from{opacity:0;translate:-18px 0}to{opacity:1;translate:0 0}}
@keyframes am-pop{from{opacity:0;scale:.7}to{opacity:1;scale:1}}
@keyframes am-btn{from{opacity:0;translate:0 14px;scale:.96}to{opacity:1;translate:0 0;scale:1}}
@keyframes am-word{from{opacity:0;translate:var(--wx,0) var(--wy,.4em);scale:.72}to{opacity:1;translate:0 0;scale:1}}
@keyframes am-hex{from{clip-path:polygon(35.6% 50%,42.8% 32%,57.2% 32%,64.4% 50%,57.2% 68%,42.8% 68%);scale:1.14}
 to{clip-path:polygon(0 50%,0 0,100% 0,100% 50%,100% 100%,0 100%);scale:1}}
@keyframes am-ic{from{opacity:0;scale:.35;rotate:-60deg}to{opacity:1;scale:1;rotate:0deg}}
@keyframes am-orb2{from{opacity:0;scale:0;rotate:-90deg}to{opacity:1;scale:1;rotate:0deg}}
@keyframes am-line{from{transform:scaleX(0)}to{transform:scaleX(1)}}

/* ── переход между страницами: новая страница раскрывается кругом-атомом из точки нажатия (--vx/--vy ставит скрипт),
   старая чуть уходит вглубь и гаснет; шапка и верхняя строка стоят на месте (их имена — site-head / site-top) ── */
@view-transition{navigation:auto}
::view-transition-old(root){animation:am-vt-out .5s var(--am-io) both}
::view-transition-new(root){animation:am-vt-in .65s var(--am-io) both}
@keyframes am-vt-out{to{opacity:.3;transform:scale(.975)}}
@keyframes am-vt-in{from{clip-path:circle(0% at var(--vx,50%) var(--vy,42%))}to{clip-path:circle(145% at var(--vx,50%) var(--vy,42%))}}
html.vds::view-transition-old(root),html.vds::view-transition-new(root){animation:none}
@media (prefers-reduced-motion:reduce){@view-transition{navigation:none}}

/* ── взаимодействия ── */
@media (prefers-reduced-motion:no-preference){
 /* кнопки: подъём и свечение, по контуру бежит электрон-комета; нажатие — «вдавливание»; фокус с клавиатуры — кольцо стягивается */
 .btn{position:relative;isolation:isolate;transition:background-color .2s,border-color .2s,color .2s,translate .3s var(--am-e),scale .15s ease,box-shadow .3s ease}
 .btn::after{content:"";position:absolute;z-index:-1;inset:-2px;border-radius:inherit;padding:2px;pointer-events:none;opacity:0;transition:opacity .25s ease;
  background:conic-gradient(from var(--am-a),rgba(134,240,207,0) 0 58%,rgba(134,240,207,.25) 70%,#86F0CF 86%,#fff 91%,rgba(255,255,255,0) 92%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}
 @media (hover:hover){
  .btn:hover{translate:0 -2px;box-shadow:0 12px 28px -14px rgba(134,240,207,.65)}
  .btn:hover::after{opacity:1;animation:am-spin 1.7s linear infinite}
 }
 .btn:active{scale:.96;translate:0 0;transition-duration:.1s}
 .btn:focus-visible,.rs-tab:focus-visible,.rs-age:focus-visible,.nav a:focus-visible,.fq summary:focus-visible,.mini:focus-visible,.news-c:focus-visible,.put-item:focus-visible{animation:am-focus .35s var(--am-e)}
 /* меню шапки: под пунктом прорисовывается «связь» */
 .nav a{position:relative}
 .nav a::after{content:"";position:absolute;left:.85rem;right:.85rem;bottom:.32rem;height:2px;border-radius:2px;background:linear-gradient(90deg,#00E7AE,#06B4D2 50%,#9989F8);
  transform:scaleX(0);transform-origin:0 50%;transition:transform .35s var(--am-e);pointer-events:none}
 .nav a:hover::after,.nav a:focus-visible::after{transform:scaleX(1)}
 .nav a:active{scale:.96}
 .burger{transition:background-color .2s,border-color .2s,scale .15s ease}.burger:active{scale:.92}
 .burger span{transition:rotate .4s var(--am-e)}.burger[aria-expanded=true] span{rotate:180deg}
 /* меню телефона: выезжает и гаснет, пункты встают по очереди */
 html.menu-open .mnav:not([hidden]){animation:am-mn-in .32s var(--am-e)}
 html.menu-open .mnav:not([hidden]) nav a,html.menu-open .mnav:not([hidden])>*:not(nav){animation:am-row .45s var(--am-e) calc(var(--k,0) * 40ms + 60ms) backwards}
 .mnav.am-out{animation:am-mn-out .2s ease-in forwards}
 /* карточки: подъём, мягкая тень и мятная кромка; фото внутри чуть приближается */
 .age,.ped,.box,.otz-c,.mini,.tch,.news-c,.sk,.step,.put-item,.rs-note,.wk-day,.napr-card{transition:translate .35s var(--am-e),box-shadow .35s ease,border-color .25s ease,scale .15s ease}
 .age img,.put-item img,.mini-ph img,.nc-ph img,.news-ph img,.news-cover{transition:scale .7s var(--am-e)}
 .mini-ph,.nc-ph,.news-ph{overflow:hidden}
 @media (hover:hover){
  .age:hover,.ped:hover,.box:hover,.otz-c:hover,.mini:hover,.tch:hover,.news-c:hover,.sk:hover,.step:hover,a.put-item:hover,.rs-note:hover,.wk-day:hover{translate:0 -4px;
   box-shadow:0 20px 42px -26px rgba(0,0,0,.75),0 0 0 1px rgba(134,240,207,.45);border-color:rgba(134,240,207,.7)}
  a.put-item:hover{transform:none}
  .napr-card:hover{box-shadow:0 0 0 1px rgba(134,240,207,.45),0 14px 34px -24px rgba(0,0,0,.7)}
  .age:hover img,a.put-item:hover img,.mini:hover .mini-ph img,.napr-card:hover .nc-ph img,.news-c:hover .news-ph img,.news-c:hover .news-cover{scale:1.05}
 }
 a.mini:active,a.news-c:active,a.put-item:active,a.gal-i:active{scale:.985}
 /* вкладки и переключатели: нажатие, выбранная — «защёлкивается»; показанная панель проявляется, строки встают по очереди (высота не меняется) */
 .rs-tab,.rs-age{transition:background-color .2s,color .2s,border-color .2s,translate .25s var(--am-e),scale .15s ease}
 @media (hover:hover){.rs-tab:hover,.rs-age:hover{translate:0 -1px}}
 .rs-tab:active,.rs-age:active{scale:.94}
 html.am-u .rs-tab[aria-selected=true],html.am-u .rs-age[aria-pressed=true]{animation:am-sel .35s var(--am-e)}
 /* панель проявляется только когда вкладку переключил человек (класс am-sw ставит скрипт) — не при появлении блока */
 .am-sw .rs-day:not(.off),.am-sw .pt-pan:not(.off),.am-sw .wk-day:not(.off){animation:am-pan .4s var(--am-e)}
 .am-sw .rs-day:not(.off)>li,.am-sw .pt-pan:not(.off) tbody tr{animation:am-row .45s var(--am-e) calc(var(--k,0) * 28ms) backwards}
 /* чипы, дни, флажки фильтра и согласия */
 .chip span,.day span{transition:background-color .2s,border-color .2s,color .2s,scale .15s ease}
 .chip:active span,.day:active span,.opt:active{scale:.94}
 html.am-u .chip input:checked+span,html.am-u .day input:checked+span{animation:am-sel .3s var(--am-e)}
 .opt{transition:background-color .2s,scale .15s ease}
 html.am-u .opt input:checked,html.am-u .check input:checked{animation:am-chk .3s var(--am-e)}
 #sel-chips button{animation:am-pop .3s var(--am-e)}
 /* поля формы и подбор: кромка мягко загорается */
 .pk-f select,.fld select,.fld input[type=text],.fld input[type=tel]{transition:border-color .25s,box-shadow .3s ease}
 .pk-f select:focus{box-shadow:0 0 0 3px rgba(134,240,207,.35);border-color:var(--acc)}
 /* атомы молекулы: наведение — ближе, нажатие — вдавливание, выбранный — расходится кольцо */
 .at-ph{transition:box-shadow .25s,border-color .25s,scale .3s var(--am-e)}
 @media (hover:hover){.atom:hover .at-ph{scale:1.06}}
 .atom:active .at-ph{scale:.93}
 html.am-u .atom.sel .at-ph{animation:am-ring .7s ease-out}
 /* вопросы, стрелки лент, крестик окна, cookie */
 .fq{transition:border-color .25s,box-shadow .3s}
 @media (hover:hover){.fq:hover{border-color:rgba(134,240,207,.6)}}
 .fq summary:active{scale:.99}
 .rib-nav button{transition:background-color .2s,border-color .2s,opacity .2s,scale .15s ease}.rib-nav button:active{scale:.9}
 .modal-x{transition:background-color .2s,rotate .35s var(--am-e)}
 @media (hover:hover){.modal-x:hover{rotate:90deg}}
 #ck:not([hidden]){animation:am-ck .55s var(--am-e) .35s backwards}
 #ck.am-out{animation:am-ck-out .25s ease-in forwards}
}
@keyframes am-spin{to{--am-a:360deg}}
@keyframes am-focus{from{outline-offset:8px;outline-color:rgba(134,240,207,0)}}
@keyframes am-sel{from{scale:.9}to{scale:1}}
@keyframes am-chk{from{scale:.6}to{scale:1}}
@keyframes am-pan{from{opacity:0;translate:0 10px}to{opacity:1;translate:0 0}}
@keyframes am-ring{from{box-shadow:0 0 0 3px var(--acc),0 0 0 3px rgba(134,240,207,.7)}to{box-shadow:0 0 0 3px var(--acc),0 0 0 20px rgba(134,240,207,0)}}
@keyframes am-mn-in{from{opacity:0;translate:0 -12px}to{opacity:1;translate:0 0}}
@keyframes am-mn-out{to{opacity:0;translate:0 -10px}}
@keyframes am-ck{from{opacity:0;translate:0 26px}to{opacity:1;translate:0 0}}
@keyframes am-ck-out{to{opacity:0;translate:0 20px}}
/* версия для слабовидящих — ничего не движется и не светится */
html.vds .btn::after,html.vds .nav a::after{display:none!important}
html.vds [data-rv],html.vds .btn,html.vds .mnav,html.vds #ck,html.vds .rs-tab,html.vds .rs-age,html.vds .chip span,html.vds .day span,html.vds input,html.vds .at-ph{animation:none!important;translate:none!important;scale:none!important;rotate:none!important}
@media (prefers-reduced-motion:reduce){.btn::after,.nav a::after{display:none}}

.foot .f-req .podval__studiya{white-space:nowrap}
.foot .f-req .podval__studiya a{font-family:var(--disp);color:#fff;text-decoration:underline;text-decoration-color:var(--acc);text-decoration-thickness:2px;text-underline-offset:.3em;transition:color .5s var(--ease)}
@media (hover:hover){.foot .f-req .podval__studiya a:hover{color:var(--acc);text-decoration:underline}}

/* ── 23.10 мобильная версия и планшеты (tools/tl_mob_2310.py) ── */
/* значок меню: span — коробка 1,25rem×14px, верхняя и нижняя линии — ::before/::after, средняя — фон-линия по центру;
   открыто — линии сходятся крестом, средняя стягивается к центру, в центре — мятное ядро (.burger::after) */
.burger{position:relative}
.burger span{position:relative;display:block;width:1.25rem;height:14px;box-shadow:none;border-radius:0;
 background:linear-gradient(var(--head),var(--head)) center/100% 2px no-repeat}
.burger span::before,.burger span::after{content:"";position:absolute;left:0;right:0;height:2px;border-radius:2px;background:var(--head)}
.burger span::before{top:0}.burger span::after{bottom:0}
.burger::after{content:"";position:absolute;left:50%;top:50%;width:6px;height:6px;margin:-3px 0 0 -3px;border-radius:50%;background:var(--acc);
 box-shadow:0 0 0 3px rgba(134,240,207,.18);transform:scale(0);pointer-events:none}
.burger[aria-expanded=true] span{background-size:0 2px;rotate:none}
.burger[aria-expanded=true] span::before{transform:translateY(6px) rotate(45deg)}
.burger[aria-expanded=true] span::after{transform:translateY(-6px) rotate(-45deg)}
.burger[aria-expanded=true]::after{transform:scale(1)}
.burger[aria-expanded=true]{border-color:rgba(134,240,207,.55)}
/* версия для слабовидящих рисует свой значок (tl_common) — наши линии и ядро там не нужны */
html.vds .head .burger::after,html.vds .head .burger span::after{display:none!important}
html.vds .head .burger span::before{transform:none!important;top:4px!important}
html.vds .head .burger span{background-image:none!important}

@media (prefers-reduced-motion:no-preference){
 .burger span{transition:background-size .3s cubic-bezier(.2,.7,.2,1)}
 .burger span::before,.burger span::after{transition:transform .38s cubic-bezier(.3,1.35,.5,1)}
 .burger::after{transition:transform .3s cubic-bezier(.3,1.5,.5,1) .12s}
 .burger[aria-expanded=false]::after,.burger:not([aria-expanded=true])::after{transition-delay:0s;transition-duration:.15s}
 /* меню раскрывается кругом из кнопки (--bx/--by ставит скрипт), закрывается — стягивается обратно */
 html.menu-open .mnav:not([hidden]){animation:tl-mn-open .5s cubic-bezier(.2,.7,.2,1) both}
 .mnav.am-out{animation:tl-mn-close .2s cubic-bezier(.5,0,.75,0) forwards}
 /* пункты: по очереди, с лёгким сдвигом от кнопки; под пунктом пробегает «связь» и гаснет */
 html.menu-open .mnav:not([hidden]) nav a,html.menu-open .mnav:not([hidden])>*:not(nav){animation:tl-mn-row .5s cubic-bezier(.2,.7,.2,1) calc(var(--k,0) * 45ms + 90ms) backwards}
 .mnav nav a{position:relative}
 .mnav nav a::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;border-radius:2px;pointer-events:none;
  background:linear-gradient(90deg,#00E7AE,#06B4D2 50%,#9989F8);transform:scaleX(0);transform-origin:0 50%;opacity:0}
 html.menu-open .mnav:not([hidden]) nav a::after{animation:tl-mn-bond .9s cubic-bezier(.2,.7,.2,1) calc(var(--k,0) * 45ms + 200ms) both}
 .mnav.am-out nav a,.mnav.am-out>*:not(nav){animation:tl-mn-row-out .16s ease-in forwards}
}
@keyframes tl-mn-open{from{clip-path:circle(0 at var(--bx,90%) var(--by,0));opacity:.6}to{clip-path:circle(150% at var(--bx,90%) var(--by,0));opacity:1}}
@keyframes tl-mn-close{from{clip-path:circle(150% at var(--bx,90%) var(--by,0));opacity:1}to{clip-path:circle(0 at var(--bx,90%) var(--by,0));opacity:.4}}
@keyframes tl-mn-row{from{opacity:0;translate:24px 0;scale:.97}to{opacity:1;translate:0 0;scale:1}}
@keyframes tl-mn-row-out{to{opacity:0;translate:12px 0}}
@keyframes tl-mn-bond{0%{transform:scaleX(0);opacity:1}55%{transform:scaleX(1);opacity:1}100%{transform:scaleX(1);opacity:0}}
html.vds .mnav nav a::after{display:none!important}
/* ВДС на телефоне: кнопка «Версия для слабовидящих» в меню сжималась до круглого значка 44 px (правило значка шапки сильнее),
   и подпись шла столбиком по букве поверх пунктов меню — в меню кнопка снова во всю подпись */
html.vds .mnav .mnav-vds{width:auto!important;max-width:100%!important;height:auto!important;min-height:48px!important;border-radius:12px!important;
 padding:.4rem .6rem!important;gap:.5rem!important;text-align:left;justify-content:flex-start}
html.vds .mnav .mnav-vds span{display:inline!important;white-space:normal!important;-webkit-hyphens:auto;hyphens:auto}
html.vds .mnav,html.vds .mnav *{animation:none!important;clip-path:none!important}

/* подвал: планшет боком — четыре колонки; телефон — ссылки в две колонки, поля тоньше */
@media (min-width:901px) and (max-width:1100px){.f-cols{grid-template-columns:repeat(4,minmax(0,1fr));gap:1.5rem 1.25rem}.f-brand{grid-column:1/-1}
 .f-brand p{margin:.5rem 0 .9rem}}
@media (max-width:560px){
 .foot{padding:2.5rem 0 1.5rem}
 .f-cols{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.75rem 1rem}.f-brand{grid-column:1/-1}
 .f-brand p{margin:.5rem 0 1rem}
 .foot h3{margin-bottom:.55rem}.foot ul{gap:.1rem}
 .foot ul li{font-size:.875rem;line-height:1.3}.foot ul a{display:inline-block;padding:.32rem 0}
 .f-req{margin-top:1.75rem;padding-top:1.1rem}
}

/* «Расписание» главной при одной таблице в ширину: высота блока при переключении дней не прыгает (решение 7.10, проверка anim_tal),
   поэтому все дни по-прежнему в одной ячейке; но карточка короткого дня тянется на всю ячейку — пустое место внутри таблицы,
   а не «дыра» между таблицей и раскрывашкой (как колонка на компьютере с 15.10) */
@media (max-width:900px){#raspisanie .rs-pans>.rs-day{align-self:stretch}}

/* шапки внутренних страниц на планшете: текст и фото рядом (как на компьютере), не фото 2:1 на весь экран */
@media (min-width:701px) and (max-width:900px){
 .pg-head:not(.pg-probnoe) .pg-split{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:1.5rem;align-items:center}
 .pg-head:not(.pg-probnoe) .pg-cover{aspect-ratio:4/5;max-height:24rem;margin:0}
 .pg-head:not(.pg-probnoe) .pg-acts .btn{white-space:normal;text-align:center;line-height:1.25}
}

/* 360: пара «персональных данных» в H1 (неразрывная) шире колонки — заголовок на ступень мельче на самых узких */
@media (max-width:380px){.pg-head h1{font-size:1.45rem}}

/* первый экран главной — ровно в окно: на 390×844 был выше на 7 px, на 768×1024 — на 18 px */
@media (min-width:641px) and (max-width:900px){.hero .mol{height:min(calc(34 * var(--svh)),24rem)}}
@media (max-width:640px) and (min-height:801px){.hero .mol{height:min(calc(26 * var(--svh)),15rem)}}
/* 360×740: «Направления» главной были выше окна на 14 px (так было и до 23.10) — поля блока тоньше */
@media (max-width:400px) and (max-height:780px){#katalog.sec{padding-top:1rem;padding-bottom:1rem}}

/* версия для слабовидящих, крупный шрифт: дни «Расписания» главной не помещались в строку — «Пн» вылезал из кнопки на 360–390,
   а на 768 ряд кнопок уходил за край экрана (страница 797 px). Теперь кнопки дней переносятся во второй ряд */
html.vds #raspisanie .rs-tabs{flex-wrap:wrap!important}
html.vds #raspisanie .rs-tab{flex:1 1 auto!important;min-width:auto!important;padding:0 .6rem!important}
/* там же на планшете три примечания под таблицей стояли в три узкие колонки — «администратора» крупным шрифтом вылезал за экран; столбцом */
@media (max-width:1100px){html.vds #raspisanie .rs-notes{grid-template-columns:minmax(0,1fr)!important;grid-template-rows:none!important}}
html.vds #raspisanie .rs-note b{overflow-wrap:break-word}
/* на телефоне строка дня (время | занятие) крупным шрифтом рвала слова посередине («Китайск-ий», «худож-ник») — время над названием */
@media (max-width:700px){html.vds #raspisanie .rs-day li{grid-template-columns:minmax(0,1fr)!important;gap:.15rem!important}}
/* ВДС на телефоне, шрифт 150–200 %: заголовки 50–64 px не помещали длинное слово в строку и рвали его посередине
   («Расписани-е», «абонеме-нты», «Футбол-ика»). Заголовки — не крупнее доли ширины экрана (всё равно крупнее обычной версии),
   длинные слова в заголовках переносятся по слогам с дефисом (lang="ru"), а не в случайном месте; то же в подписи согласия у формы («персональны-х»); в обычном тексте переносов нет */
@media (max-width:560px){
 html.vds main h1,html.vds main h2,html.vds main h3,html.vds main summary,html.vds main label{-webkit-hyphens:auto;hyphens:auto;hyphenate-limit-chars:10 4 4;-webkit-hyphenate-limit-before:4;-webkit-hyphenate-limit-after:4}
 html.vds-f2 main h1,html.vds-f3 main h1{font-size:min(2rem,10.5vw)!important}
 html.vds-f2 main h2,html.vds-f3 main h2{font-size:min(1.6rem,9vw)!important}
 html.vds-f2 main h3,html.vds-f3 main h3{font-size:min(1.2rem,8.5vw)!important}
}

/* ── 23.10 ВДС на компьютере и телефоне (tools/tl_vds_2310.py) ── */
/* размер шрифта: A не мельче обычной версии (там корень = min(100vw/90, 100vh/50.625) от 1280), на компьютере не меньше 18 px */
html.vds.vds-f1{font-size:18px!important}
@media (min-width:1280px){
 html.vds.vds-f1{font-size:max(18px,min(calc(100vw / 80),calc(100vh / 45)))!important}
 html.vds.vds-f2{font-size:max(24px,min(calc(100vw / 60),calc(100vh / 33.75)))!important}
 html.vds.vds-f3{font-size:max(32px,min(calc(100vw / 45),calc(100vh / 25.3125)))!important}
}
html.vds body{font-size:1rem!important;line-height:1.55}
/* весь обычный текст — 1rem: в обычной версии подписи, цены, метки .75–.875rem, в ВДС это мелко */
html.vds main *:not(h1):not(h2):not(h3):not(svg):not(path):not(circle):not(line):not(rect):not(polyline):not(polygon),
html.vds .foot *:not(svg):not(path):not(circle):not(line):not(rect):not(polyline):not(polygon){font-size:1rem!important;letter-spacing:0!important}
html.vds.vds main h1{font-size:2.1rem!important;line-height:1.15!important}
html.vds.vds main h2{font-size:1.6rem!important;line-height:1.2!important}
html.vds.vds main h3{font-size:1.25rem!important;line-height:1.25!important}
html.vds.vds main h1 *,html.vds.vds main h2 *,html.vds.vds main h3 *{font-size:inherit!important;line-height:inherit!important}
/* слова не рвём посередине: перенос внутри слова — только если слово само шире колонки */
html.vds h1,html.vds h2,html.vds h3,html.vds p,html.vds li,html.vds a,html.vds td,html.vds th,html.vds span,html.vds label,html.vds summary{word-break:normal!important;overflow-wrap:break-word}
html.vds main h1,html.vds main h2,html.vds main h3{-webkit-hyphens:auto;hyphens:auto;hyphenate-limit-chars:10 4 4;-webkit-hyphenate-limit-before:4;-webkit-hyphenate-limit-after:4}
html.vds .tl-nw{white-space:nowrap}

/* колонка по центру, не шире 66rem */
html.vds .wrap{max-width:66rem!important;margin-left:auto!important;margin-right:auto!important;padding-left:clamp(16px,4vw,48px)!important;padding-right:clamp(16px,4vw,48px)!important;box-sizing:content-box!important}
html.vds .sec{padding-top:2.5rem!important;padding-bottom:2.5rem!important}
html.vds .sec-head{max-width:none!important;margin-bottom:1.25rem!important}
html.vds .sec-head p,html.vds .pg-lead,html.vds .hero-lead,html.vds .h-text p{max-width:none!important}
html.vds .sec-cta{margin-top:1.5rem!important;display:flex!important;flex-wrap:wrap;gap:.75rem}

/* кнопки: текст 1rem, высота от текста */
html.vds .btn,html.vds main button{min-height:2.75rem;padding:.55rem 1.1rem!important;line-height:1.25!important}

/* шапка на компьютере: логотип, разделы словами, кнопка ВДС, «Записаться» — один ряд */
.hd-vds{display:none}
@media (min-width:1024px){
 html.vds .topbar .tb-vds{display:none!important}
 html.vds .tb-in{justify-content:flex-start!important}
 html.vds .tb-in,html.vds .tb-in *{font-size:1rem!important}
 html.vds .hd-in{display:flex!important;flex-wrap:wrap!important;align-items:center!important;column-gap:1.5rem!important;row-gap:.6rem!important;padding-top:.75rem!important;padding-bottom:.75rem!important}
 html.vds .head .logo{order:0;margin-right:0!important;font-size:1.3rem!important;white-space:nowrap!important;flex:none}
 html.vds .head .nav{display:flex!important;order:1;flex:1 1 auto;flex-wrap:wrap;justify-content:center;gap:.4rem 1.25rem!important;margin:0!important}
 html.vds .head .nav a{font-size:1rem!important;padding:.35rem 0!important;white-space:nowrap}
 html.vds .head .hd-vds{display:inline-flex!important;order:2;align-items:center;justify-content:center;flex:none;width:2.75rem;height:2.75rem;padding:0;border:2px solid var(--vds-fg)!important;
  border-radius:50%;background:var(--vds-bg)!important;color:var(--vds-fg)!important;cursor:pointer}
 html.vds .head .hd-vds svg{width:1.4rem;height:1.4rem}
 html.vds .head .hd-cta{order:3;font-size:1rem!important;flex:none;min-height:2.75rem!important;padding:0 1.1rem!important}
 html.vds .head .hd-cta *{font-size:inherit!important}
 html.vds .head .burger{display:none!important}
}
/* 1024–1279 и крупный шрифт: разделы — вторым рядом во всю ширину, слева */
@media (min-width:1024px) and (max-width:1279px){
 html.vds .head .logo{margin-right:auto!important}
 html.vds .head .nav{order:4;flex-basis:100%;justify-content:flex-start}
}
@media (min-width:1024px){
 html.vds-f2 .head .logo,html.vds-f3 .head .logo{margin-right:auto!important}
 html.vds-f2 .head .nav,html.vds-f3 .head .nav{order:4;flex-basis:100%;justify-content:flex-start}
}

/* первый экран: текст на всю колонку (молекула в ВДС скрыта — справа была пустота) */
html.vds .hero{min-height:0!important;padding-top:2rem!important;padding-bottom:2rem!important}
html.vds .h-text{display:block!important;width:auto!important;max-width:none!important}
html.vds .h-text>*{margin-bottom:1rem!important}
html.vds .formula{margin-top:.5rem!important}

/* поля: подпись над полем с отступом, между полями — отступ */
html.vds .picker{display:block!important;padding:1.25rem!important}
html.vds .picker .pk-title{margin-bottom:.75rem!important;font-weight:700}
html.vds .pk-f{display:block!important;margin-bottom:1.1rem!important}
html.vds .pk-f>span{display:block!important;margin-bottom:.45rem!important;font-weight:700}
html.vds .pk-acts{display:flex!important;flex-wrap:wrap;gap:.75rem;margin-top:.5rem}
html.vds .fld{display:block!important;margin-bottom:1.1rem!important}
html.vds .fld>label{display:block!important;margin-bottom:.45rem!important}
html.vds .fld-row{display:block!important}
html.vds .fld-check{display:flex!important;gap:.75rem;align-items:flex-start;margin:1rem 0!important}
html.vds .fld-check .check{display:flex!important;gap:.75rem!important;align-items:flex-start!important}
html.vds .fld-check input{flex:none;margin-top:.2rem}
html.vds select,html.vds input[type=text],html.vds input[type=tel],html.vds input[type=email],html.vds textarea{min-height:3rem!important;font-size:1rem!important;width:100%;box-sizing:border-box}

/* ленты со свайпом в ВДС — обычные блоки: без выноса за поля колонки (иначе на телефоне страница шире экрана на 2 px) */
html.vds .swipe-m,html.vds .swipe-t,html.vds .rib{margin-left:0!important;margin-right:0!important;padding-left:0!important;padding-right:0!important;overflow:visible!important;
 scroll-snap-type:none!important;grid-auto-flow:row!important}
html.vds .swipe-m>*,html.vds .swipe-t>*{flex:none!important;width:auto!important;max-width:none!important;min-width:0!important}
/* кнопка «Записаться» в шапке планшета — тоже 1rem (было 16 px) */
@media (min-width:761px){html.vds .head .hd-cta,html.vds .head .hd-cta *{font-size:1rem!important}}
/* галерея на планшете — по две в ряд, нечётная последняя — во всю ширину; на телефоне — по одной */
@media (max-width:1023px){
 html.vds .gal-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:1rem!important}
 html.vds .gal-grid>:last-child:nth-child(odd){grid-column:1/-1}
}
@media (max-width:699px){html.vds .gal-grid{grid-template-columns:minmax(0,1fr)!important}}

/* фото: не выше 50vh, не шире колонки */
html.vds main img{max-width:100%!important;max-height:50vh!important}
html.vds .pg-cover{max-width:100%!important}
html.vds .pg-cover img{width:100%!important;height:min(50vh,26rem)!important;max-height:50vh!important;object-fit:cover}
/* шапка страницы на компьютере при A: текст слева, фото справа (а не фото на всю колонку под текстом) */
@media (min-width:1024px){
 html.vds.vds-f1 .pg-head:not(.pg-probnoe) .pg-split{display:grid!important;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr)!important;gap:2rem!important;align-items:center!important}
 html.vds.vds-f1 .pg-head:not(.pg-probnoe) .pg-cover img{height:min(50vh,22rem)!important}
}

/* сетки карточек: на компьютере при A — по 2–3 в ряд, ряды ровные; при A+ / A++ и на телефоне — столбцом */
@media (min-width:1024px){
 html.vds.vds-f1 .ages,html.vds.vds-f1 .peds,html.vds.vds-f1 .tchs,html.vds.vds-f1 .minis,html.vds.vds-f1 .grid3,html.vds.vds-f1 .steps,
 html.vds.vds-f1 .nws,html.vds.vds-f1 .gal-grid,html.vds.vds-f1 .gal4,html.vds.vds-f1 .sk4,html.vds.vds-f1 .grid2{
  display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:1.25rem!important;align-items:stretch!important;overflow:visible!important}
 html.vds.vds-f1 .ages>*,html.vds.vds-f1 .peds>*,html.vds.vds-f1 .tchs>*,html.vds.vds-f1 .minis>*,html.vds.vds-f1 .grid3>*,html.vds.vds-f1 .steps>*,
 html.vds.vds-f1 .nws>*,html.vds.vds-f1 .gal-grid>*,html.vds.vds-f1 .gal4>*,html.vds.vds-f1 .sk4>*,html.vds.vds-f1 .grid2>*{margin:0!important;width:auto!important;min-width:0!important}
}
/* три карточки (возраст, «Для лицеистов», отзывы) — по три в ряд, иначе третья остаётся одна с дырой справа */
@media (min-width:1024px){
 html.vds.vds-f1 .ages,html.vds.vds-f1 .grid3,html.vds.vds-f1 .minis,html.vds.vds-f1 .gal-grid,html.vds.vds-f1 .nws{grid-template-columns:repeat(6,minmax(0,1fr))!important}
 html.vds.vds-f1 .ages>*,html.vds.vds-f1 .grid3>*,html.vds.vds-f1 .minis>*,html.vds.vds-f1 .gal-grid>*,html.vds.vds-f1 .nws>*{grid-column:span 2}
 /* ровные ряды без дыр (без :has — по номеру с конца): если в последнем ряду остаётся 2 — они по половине; если 1 — последние четыре 2×2 */
 html.vds.vds-f1 .ages>:nth-last-child(2):nth-child(3n+1),html.vds.vds-f1 .ages>:nth-last-child(2):nth-child(3n+1)~*,
 html.vds.vds-f1 .grid3>:nth-last-child(2):nth-child(3n+1),html.vds.vds-f1 .grid3>:nth-last-child(2):nth-child(3n+1)~*,
 html.vds.vds-f1 .minis>:nth-last-child(2):nth-child(3n+1),html.vds.vds-f1 .minis>:nth-last-child(2):nth-child(3n+1)~*,
 html.vds.vds-f1 .gal-grid>:nth-last-child(2):nth-child(3n+1),html.vds.vds-f1 .gal-grid>:nth-last-child(2):nth-child(3n+1)~*,
 html.vds.vds-f1 .nws>:nth-last-child(2):nth-child(3n+1),html.vds.vds-f1 .nws>:nth-last-child(2):nth-child(3n+1)~*,
 html.vds.vds-f1 .ages>:nth-last-child(4):nth-child(3n+1),html.vds.vds-f1 .ages>:nth-last-child(4):nth-child(3n+1)~*,
 html.vds.vds-f1 .grid3>:nth-last-child(4):nth-child(3n+1),html.vds.vds-f1 .grid3>:nth-last-child(4):nth-child(3n+1)~*,
 html.vds.vds-f1 .minis>:nth-last-child(4):nth-child(3n+1),html.vds.vds-f1 .minis>:nth-last-child(4):nth-child(3n+1)~*,
 html.vds.vds-f1 .gal-grid>:nth-last-child(4):nth-child(3n+1),html.vds.vds-f1 .gal-grid>:nth-last-child(4):nth-child(3n+1)~*,
 html.vds.vds-f1 .nws>:nth-last-child(4):nth-child(3n+1),html.vds.vds-f1 .nws>:nth-last-child(4):nth-child(3n+1)~*{grid-column:span 3}
}
/* «Путь ребёнка» (пять ступеней) — столбцом, фото слева, текст справа: пять в сетке по 2 давали дыру */
html.vds .put-row{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:1rem!important}
html.vds .put-item{display:grid!important;grid-template-columns:minmax(8rem,30%) minmax(0,1fr)!important;gap:1.25rem!important;align-items:center!important;padding:1rem!important;height:auto!important;
 width:auto!important;max-width:none!important;min-width:0!important;flex:none!important;margin:0!important}
html.vds .put-item>img,html.vds .put-item>.put-ico{grid-column:1;width:100%!important;height:min(30vh,11rem)!important;object-fit:cover!important;margin:0!important}
html.vds .put-item>.put-b{grid-column:2;min-width:0;padding:0!important}
@media (max-width:560px){html.vds .put-item{grid-template-columns:minmax(0,1fr)!important}html.vds .put-item>.put-b,html.vds .put-item>img,html.vds .put-item>.put-ico{grid-column:1}}

/* каталог: заголовок «Направления» — над фильтром (был под панелью фильтра, панель наезжала на него), фильтр — компактной сеткой */
html.vds .kat-grid{display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:0!important}
html.vds .kat-grid>.list>*{order:5}
html.vds .kat-grid>.list{display:contents!important}
html.vds .kat-grid .sec-head{order:0;margin-bottom:1.25rem!important}
html.vds .kat-grid>.flt-panel{order:1;width:auto!important;max-width:none!important;position:static!important;height:auto!important;max-height:none!important;margin:0 0 1.25rem!important;transform:none!important}
html.vds .kat-grid .list-top{order:2}
html.vds .kat-grid .demo-note{order:3}
html.vds .kat-grid .rows{order:4}
html.vds .flt-panel fieldset{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(13rem,1fr))!important;gap:.35rem 1.5rem!important;margin-bottom:1rem!important}
html.vds .flt-panel .opt{display:flex!important;align-items:center;gap:.6rem}
html.vds .flt-panel fieldset>legend,html.vds .flt-panel fieldset .days-row{grid-column:1/-1}
html.vds .flt-panel .days-row{display:flex!important;flex-wrap:wrap;gap:.5rem}
/* дни недели — кнопками одного размера (на странице «Направления» поля у подписей пропадали, кнопки сжимались до 26 px) */
html.vds .flt-panel .day>span{display:inline-flex!important;align-items:center;justify-content:center;min-width:2.75rem;min-height:2.75rem;padding:.3rem .7rem!important;box-sizing:border-box}
/* цветной кружок рубрики в карточке каталога — в ВДС пустой, отодвигал подпись */
html.vds .nc-type .sw{display:none!important}
html.vds .flt-panel .opt>span{padding:0!important;margin:0!important}

/* подвал: колонками, а не одним длинным столбцом ссылок */
html.vds .f-cols{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:1.5rem 2rem!important}
html.vds .f-cols>*{margin:0!important;min-width:0}
html.vds .f-brand{grid-column:1/-1}
@media (min-width:1024px){html.vds.vds-f1 .f-cols{grid-template-columns:repeat(4,minmax(0,1fr))!important}}
@media (max-width:560px){html.vds-f2 .f-cols,html.vds-f3 .f-cols{grid-template-columns:minmax(0,1fr)!important}}

/* фото в карточках — одной высоты, кадр по центру */
html.vds .age img,html.vds .put-item img,html.vds .mini-ph img,html.vds .news-ph img,html.vds .ped-ph img,html.vds .gal-grid img{width:100%!important;height:min(40vh,15rem)!important;max-height:50vh!important;object-fit:cover!important;display:block}
html.vds .mini-ph,html.vds .news-ph,html.vds .ped-ph{height:auto!important;aspect-ratio:auto!important}

/* каталог: фото слева, текст справа; при A — по две карточки в ряд */
html.vds .rows{display:grid!important;grid-template-columns:minmax(0,1fr)!important;grid-auto-flow:row!important;grid-auto-columns:auto!important;gap:1rem!important;overflow:visible!important}
html.vds .rows>*{margin:0!important;width:auto!important;min-width:0!important;max-width:none!important}
/* нечётное число видимых карточек — последняя на всю ширину (класс ставит скрипт: фильтр прячет карточки) */
@media (min-width:1024px){html.vds.vds-f1 .rows>.tl-last-wide{grid-column:1/-1}
 html.vds.vds-f1 .rows>.napr-card.tl-last-wide{grid-template-columns:calc((100% - 1rem) / 2 * .34) minmax(0,1fr)!important}}
@media (min-width:1024px){html.vds.vds-f1 .rows{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
html.vds .napr-card{display:grid!important;grid-template-columns:minmax(7rem,34%) minmax(0,1fr)!important;grid-template-rows:auto 1fr!important;column-gap:1rem!important;row-gap:.75rem!important;
 align-items:start!important;padding:1rem!important;height:auto!important}
html.vds .napr-card .nc-ph{grid-column:1;grid-row:1 / span 2!important;aspect-ratio:4/3!important;height:auto!important;width:100%!important;max-height:none!important}
html.vds .napr-card .nc-ph img{width:100%!important;height:100%!important;max-height:none!important;object-fit:cover!important}
html.vds .napr-card .nc-body{grid-column:2;grid-row:1;min-width:0}
html.vds .napr-card>.btn{grid-column:2;grid-row:2;justify-self:start;align-self:end}
html.vds .nc-meta,html.vds .nc-price{display:block!important}
html.vds .nc-meta>span,html.vds .nc-price .pi{display:inline!important}
html.vds .nc-meta>span+span::before{content:" · "}
html.vds .nc-type .ts{display:none!important}
@media (max-width:560px){
 html.vds .napr-card{grid-template-columns:minmax(0,1fr)!important}
 html.vds .napr-card .nc-ph{grid-row:auto!important;max-height:40vh!important}
 html.vds .napr-card .nc-body,html.vds .napr-card>.btn{grid-column:1;grid-row:auto}
}

/* таблицы цен и реквизитов на компьютере и планшете — настоящей таблицей (в ВДС все ячейки шли столбиком по одной на строку);
   на телефоне — столбиком, как было */
@media (min-width:700px){
 html.vds.vds-f1 .ptbl,html.vds.vds-f1 .req{display:table!important;width:100%!important;border-collapse:collapse}
 html.vds.vds-f1 .ptbl thead{display:table-header-group!important}html.vds.vds-f1 .ptbl tbody,html.vds.vds-f1 .req tbody{display:table-row-group!important}
 html.vds.vds-f1 .ptbl tr,html.vds.vds-f1 .req tr{display:table-row!important}
 html.vds.vds-f1 .ptbl th,html.vds.vds-f1 .ptbl td,html.vds.vds-f1 .req th,html.vds.vds-f1 .req td{display:table-cell!important;padding:.6rem .9rem!important;border-top:1px solid var(--vds-fg)!important;vertical-align:top}
 html.vds.vds-f1 .ptbl thead th:first-child{display:table-cell!important}
 html.vds.vds-f1 .ptbl .r{text-align:right!important;white-space:nowrap}
 html.vds.vds-f1 .ptbl .fm{display:block!important;margin:.2rem 0 0!important}
 html.vds.vds-f1 .ptbl td:first-child,html.vds.vds-f1 .ptbl th:first-child{width:46%!important;min-width:12rem}
 html.vds.vds-f1 .req th{width:34%}
}
@media (min-width:1000px){
 html.vds.vds-f2 .ptbl,html.vds.vds-f2 .req{display:table!important;width:100%!important;border-collapse:collapse}
 html.vds.vds-f2 .ptbl thead{display:table-header-group!important}html.vds.vds-f2 .ptbl tbody,html.vds.vds-f2 .req tbody{display:table-row-group!important}
 html.vds.vds-f2 .ptbl tr,html.vds.vds-f2 .req tr{display:table-row!important}
 html.vds.vds-f2 .ptbl th,html.vds.vds-f2 .ptbl td,html.vds.vds-f2 .req th,html.vds.vds-f2 .req td{display:table-cell!important;padding:.6rem .9rem!important;border-top:1px solid var(--vds-fg)!important;vertical-align:top}
 html.vds.vds-f2 .ptbl thead th:first-child{display:table-cell!important}
 html.vds.vds-f2 .ptbl .r{text-align:right!important;white-space:nowrap}
 html.vds.vds-f2 .ptbl .fm{display:block!important;margin:.2rem 0 0!important}
 html.vds.vds-f2 .ptbl td:first-child,html.vds.vds-f2 .ptbl th:first-child{width:46%!important;min-width:12rem}
 html.vds.vds-f2 .req th{width:34%}
}
@media (min-width:1280px){
 html.vds.vds-f3 .ptbl,html.vds.vds-f3 .req{display:table!important;width:100%!important;border-collapse:collapse}
 html.vds.vds-f3 .ptbl thead{display:table-header-group!important}html.vds.vds-f3 .ptbl tbody,html.vds.vds-f3 .req tbody{display:table-row-group!important}
 html.vds.vds-f3 .ptbl tr,html.vds.vds-f3 .req tr{display:table-row!important}
 html.vds.vds-f3 .ptbl th,html.vds.vds-f3 .ptbl td,html.vds.vds-f3 .req th,html.vds.vds-f3 .req td{display:table-cell!important;padding:.6rem .9rem!important;border-top:1px solid var(--vds-fg)!important;vertical-align:top}
 html.vds.vds-f3 .ptbl thead th:first-child{display:table-cell!important}
 html.vds.vds-f3 .ptbl .r{text-align:right!important;white-space:nowrap}
 html.vds.vds-f3 .ptbl .fm{display:block!important;margin:.2rem 0 0!important}
 html.vds.vds-f3 .ptbl td:first-child,html.vds.vds-f3 .ptbl th:first-child{width:46%!important;min-width:12rem}
 html.vds.vds-f3 .req th{width:34%}
}
/* галерея: вкладки в ВДС видны — значит, и показываем только выбранную (раньше шли все подряд без заголовков) */
html.vds.vds .gal-pans>.pt-pan.off{display:none!important}
/* рамка «фото будет» (педагоги) — не на пол-экрана */
html.vds .nofoto{height:min(30vh,11rem)!important;min-height:0!important;aspect-ratio:auto!important}

/* «Расписание» главной: в ВДС виден только выбранный день — без пустоты под коротким днём */
html.vds #raspisanie .rs-pans>.rs-day.off{display:none!important}
@media (min-width:701px){html.vds #raspisanie .rs-day li{grid-template-columns:minmax(6rem,auto) minmax(0,1fr)!important;gap:.2rem 1rem!important}}
/* при A++ на телефоне время над названием (в две колонки названия рвались по буквам), кнопки возраста и дней — с переносом */
@media (max-width:700px){html.vds #raspisanie .rs-day li{grid-template-columns:minmax(0,1fr)!important;gap:.15rem!important}}
html.vds .rs-bar,html.vds .rs-ages,html.vds .rs-days{flex-wrap:wrap!important;max-width:100%}

/* фильтр каталога: цветной кружок интереса в ВДС пустой и отодвигал подпись от галочки */
html.vds .flt-panel .opt .sw{display:none!important}
/* вкладки (цены, галерея) — переносом строк, а не лентой за край экрана */
html.vds .pt-tabs{flex-wrap:wrap!important;overflow:visible!important;margin-right:0!important;padding-right:0!important;scroll-snap-type:none!important}
/* «Пробное занятие»: у формы своя сетка с зазором, поля шли то шире, то уже — один шаг, как в форме на главной */
html.vds .pg-probnoe .lead-form{display:block!important}
/* «Контакты»: общий белый фон ВДС ложился на слои Яндекс Карты и закрывал саму карту */
/* :not(#tl-x) — только чтобы перебить общее правило ВДС «все элементы — белым фоном» (у него вес выше обычного класса) */
html.vds .kt-ymap ymaps:not(#tl-x),html.vds .kt-ymap canvas:not(#tl-x){background:transparent!important}
html.vds .kt-ymap [class*="copyrights-promo"]:not(#tl-x),html.vds .kt-ymap [class*="copyright__wrap"]:not(#tl-x),html.vds .kt-ymap [class*="copyright__layout"]:not(#tl-x),html.vds .kt-ymap [class*="gotoymaps__container"]:not(#tl-x),html.vds .kt-ymap [class*="gototaxi__container"]:not(#tl-x){background:var(--vds-bg)!important}

/* новости: столбцом, текст под фото во всю ширину карточки */
html.vds .nws{display:grid!important;grid-template-columns:minmax(0,1fr)!important;grid-auto-flow:row!important;gap:1rem!important}
html.vds .nws>*,html.vds .news-b{min-width:0!important;width:auto!important;max-width:none!important}
html.vds .news-b{grid-template-columns:minmax(0,1fr)!important}

/* «Новости академии» на главной: значок, текст, кнопки шли в три колонки — при крупном шрифте текст сжимался до 90 px; кнопки — строкой под текстом */
html.vds .ev{grid-template-columns:auto minmax(0,1fr)!important;column-gap:1.25rem!important;row-gap:1rem!important}
html.vds .ev>.ev-b{min-width:0!important}
html.vds .ev>.ev-a{grid-column:2!important;flex-wrap:wrap!important;justify-content:flex-start!important;gap:.6rem!important}
@media (max-width:560px){html.vds .ev{grid-template-columns:minmax(0,1fr)!important}html.vds .ev>.ev-a{grid-column:1!important}}

/* «Частые вопросы»: плюс оставался мятным, а белый фон вопроса срезал скруглённые углы рамки */
html.vds details.fq>summary::after{color:var(--vds-fg)!important}
html.vds details.fq{overflow:hidden}

/* логотип в шапке: на телефоне и планшете — не мельче 1rem, насколько позволяет ширина (рядом только бургер) */
@media (max-width:1023px){html.vds .head .logo,html.vds .head .logo .lg-a{font-size:min(1rem,6vw)!important;white-space:normal!important}}
/* A++ на телефоне: длинные слова абзацев («общеобразовательная») шире колонки — перенос по слогам с дефисом, а не по буквам */
@media (max-width:560px){html.vds.vds-f3 main p,html.vds.vds-f3 main li,html.vds.vds-f3 main td{-webkit-hyphens:auto;hyphens:auto}}

/* телефон: заголовки — не крупнее доли ширины экрана (повтор правила tl_mob_2310: здесь размеры заголовков заданы заново) */
@media (max-width:560px){
 html.vds.vds main h1{font-size:min(2.1rem,10.5vw)!important}
 html.vds.vds main h2{font-size:min(1.6rem,9vw)!important}
 html.vds.vds main h3{font-size:min(1.25rem,8.5vw)!important}
}

@media (min-width:1280px){html{font-size:16px;font-size:max(13px,min(calc(100vw / 90),calc(100vh / 50.625)))}}

/* Safari: длинный текст варианта в select раздвигал страницу шире телефона — режем внутри поля */
select{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fld-row>*{min-width:0}
/* поля контейнера — явным расчётом, а не auto: одинаковые слева и справа на любом мониторе */
.wrap{margin-left:max(0px,calc((100% - var(--wrap)) / 2));margin-right:max(0px,calc((100% - var(--wrap)) / 2))}
/* ленты: горизонтальная прокрутка со snap — длинные списки не растягивают блок по высоте */
.rib{display:grid;grid-auto-flow:column;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.rib::-webkit-scrollbar{display:none}
.rib>*{scroll-snap-align:start}
.rib-nav{display:flex;gap:.5rem;flex:none}
.rib-nav button{width:2.75rem;height:2.75rem;border-radius:var(--rb);border:1px solid var(--line);background:#fff;color:var(--navy);cursor:pointer;font-size:1.125rem;line-height:1;transition:background-color .2s,opacity .2s}
.rib-nav button:hover{background:var(--line)}
.rib-nav button[disabled]{opacity:.35;cursor:default}
.flt-panel-head,.flt-panel-foot,.flt-toggle{display:none}
@media (max-width:1100px){
 /* фильтр каталога на планшете и телефоне — панель снизу по кнопке «Фильтр» (ТЗ §9.8, мобильная версия) */
 .flt-toggle{display:inline-flex;align-items:center;gap:.5rem}
 .flt-panel{position:fixed!important;left:0;right:0;bottom:0;top:auto!important;z-index:70;max-height:80vh;overflow:auto;margin:0!important;border-radius:20px 20px 0 0!important;
  background:#fff!important;padding:1rem var(--pad) 1.25rem!important;box-shadow:0 -12px 40px rgba(10,1,68,.25);transform:translateY(105%);visibility:hidden;
  transition:transform .3s,visibility 0s .3s;display:grid!important;gap:.9rem!important;width:auto!important;max-width:none!important}
 .flt-open .flt-panel{transform:none;visibility:visible;transition:transform .3s}
 /* 14.10 (Роза: «мобильная версия криво открывается»): закрытая панель шириной по содержимому (fieldset не ужимается) распирала страницу
    на телефонах уже 357 px — панель строго в ширину экрана, поля ужимаются */
 .flt-panel{box-sizing:border-box!important;max-width:100vw!important;grid-template-columns:minmax(0,1fr)!important}.flt-panel fieldset{min-width:0!important}
 .list-top{flex-wrap:wrap;gap:.5rem}
 .flt-panel-head{display:flex;align-items:center;justify-content:space-between;font-weight:700;color:var(--navy)}
 .flt-panel-head button{width:2.75rem;height:2.75rem;border:0;border-radius:12px;background:var(--line);color:var(--navy);font-size:1.4rem;cursor:pointer}
 .flt-panel-foot{display:block}
}
@media (max-width:1100px) and (min-width:701px){
 /* планшет: длинные ряды карточек — лентой по 2,4 карточки */
 .swipe-t{display:grid!important;grid-template-columns:none!important;grid-auto-flow:column;grid-auto-columns:40%;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch}
 .swipe-t::-webkit-scrollbar{display:none}
 .swipe-t>*{scroll-snap-align:start;margin-top:0!important}
 .swipe-hint{display:block!important}
}
@media (max-width:700px){
 /* на телефоне — ленты карточек свайпом вместо столбцов */
 .swipe-m,.swipe-t{display:grid!important;grid-template-columns:none!important;grid-auto-flow:column;grid-auto-columns:82%;overflow-x:auto;scroll-snap-type:x mandatory;
  gap:.75rem!important;scrollbar-width:none;margin-right:calc(-1 * var(--pad));padding-right:var(--pad);-webkit-overflow-scrolling:touch}
 .swipe-m::-webkit-scrollbar,.swipe-t::-webkit-scrollbar{display:none}
 .swipe-m>*,.swipe-t>*{scroll-snap-align:start;margin-top:0!important}
 .swipe-hint{display:block!important}
 /* форма записи компактнее, чтобы блок целиком помещался в окно телефона */
 .lead-form{gap:.55rem!important}
 .fld{gap:.2rem!important}
 .fld label{font-size:.875rem!important}
 .fld input[type=text],.fld input[type=tel],.fld select{min-height:2.875rem!important}
 .fld-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:.6rem!important}
 .check{font-size:.8125rem!important;line-height:1.35!important}
 .err{font-size:.8125rem}
}
.swipe-hint{display:none;font-size:.8125rem;color:var(--muted);margin-top:.4rem}

@media (max-width:640px){.head .logo .lg-a{display:block;font-size:.5em;letter-spacing:.06em;line-height:1.1;margin-bottom:.1em}}
.nw,a[href^="tel:"]{white-space:nowrap}

/* ══ 28.10 вечер: замечания Вовы (tools/tl_2810v.py) ══ */
.head{-webkit-backdrop-filter:none;backdrop-filter:none}
.hd-in{grid-template-columns:auto 1fr auto auto auto}
.hd-ph{display:inline-flex;align-items:center;gap:.45rem;color:var(--head);font-weight:700;font-size:1rem;text-decoration:none;white-space:nowrap}
.hd-ph:hover{color:var(--acc)}.hd-ph svg{flex:none;color:var(--acc)}
@media (min-width:1101px) and (max-width:1499px){.head .nav a{padding-left:.55rem;padding-right:.55rem}}
/* 1101–1259: шесть разделов, логотип и кнопка в строку не влезали и до телефона (страница 1178 px при окне 1101) — меню в бургер, как на планшете */
@media (min-width:1101px) and (max-width:1259px){.head .nav{display:none}.head .burger{display:inline-flex}.hd-in{grid-template-columns:auto 1fr auto auto}.hd-cta{grid-column:3}}
@media (max-width:1259px){.hd-ph{grid-column:2;justify-self:end}}
/* где номер словами не помещается — круглая кнопка со значком трубки */
@media (min-width:1260px) and (max-width:1359px),(max-width:900px){.hd-ph{width:2.75rem;height:2.75rem;justify-content:center;border:1px solid var(--line);border-radius:10px}.hd-ph span{display:none}}
html.vds .head .hd-ph{display:none!important}
.napr-card .nc-price{padding:.45rem 0 .2rem}
.napr-card .nc-acts{display:flex;flex-direction:column;gap:.5rem;align-self:center;min-width:11.5rem}
.napr-card .nc-acts .btn{width:100%}
@media (max-width:700px){.napr-card .nc-acts{grid-column:2;min-width:0;align-self:stretch}.napr-card .nc-more{display:none}.napr-card .nc-price{padding:.2rem 0 0}}
html.vds .napr-card .nc-acts{min-width:0;align-self:auto}
.napr-stick .btn{white-space:normal;padding-left:.75rem;padding-right:.75rem;text-align:center;line-height:1.2}
.napr-stick .ns-p span{white-space:nowrap}
@media (min-width:1101px){.napr-lay{grid-template-columns:minmax(0,1fr) 17.5rem}}  /* цена «от 4 000 ₽ · 4 занятия» — одной строкой */
.put-b .here{min-height:2.5rem;display:inline-flex;align-items:center}
.put-b{flex:1 1 auto}
.put-b>p{padding-bottom:.65rem}
.put-go,.put-b .here{margin-top:auto;align-self:flex-start}
.put-go{display:inline-flex;align-items:center;gap:.4rem;min-height:2.5rem;padding:0 1rem;border-radius:var(--rb);border:2px solid var(--acc);color:var(--head);font-weight:700;font-size:.875rem;line-height:1.2;transition:background-color .2s,color .2s}
a.put-item:hover .put-go{background:var(--acc);color:var(--accink)}
.put-go.put-off{border-color:var(--line);color:var(--muted);font-weight:600}
/* телефон: кнопка в одну строку с номером — иначе блок «Путь» на 360×740 выше окна (727 из 676) */
@media (max-width:640px){.put-b{display:grid;grid-template-columns:minmax(0,1fr) auto;align-content:start;column-gap:.5rem}.put-b>*{grid-column:1/-1}.put-b .put-n{grid-column:1;grid-row:1;align-self:center}.put-go,.put-b .here{grid-column:2;grid-row:1;align-self:center;margin-top:0}.put-b>p{padding-bottom:0}}
.sh-links{display:block;margin-top:.35rem}
#raspisanie .rasp[data-age="1-6"] .rs-tab:not([data-d="sb"]){display:none}
#raspisanie .rs-pans>.rs-day.rs-kid{display:flex;flex-direction:column;align-self:stretch}
#raspisanie .rs-day.rs-kid .rs-cta{flex:1 1 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;text-align:center;padding:1.25rem 1rem}
#raspisanie .rs-cta p{color:var(--ink);max-width:26rem;line-height:1.45}
#raspisanie .rs-cta a{color:var(--head);font-weight:700;text-decoration:none}

/* ══ 29.10 (tl_vova_2910.py): по образцу правок Вовы лицею ══ */
/* 1. шапка: колонок столько, сколько видимых элементов — поля слева и справа равны */
@media (min-width:1260px){.head .hd-in{grid-template-columns:auto minmax(0,1fr) auto auto;column-gap:1.1rem}.head .nav{gap:.15rem}.head .nav a{padding-left:.5rem;padding-right:.5rem}}
@media (min-width:761px) and (max-width:1100px){.head .hd-in{grid-template-columns:auto minmax(0,1fr) auto auto}}
@media (max-width:760px){.head .hd-in{grid-template-columns:auto minmax(0,1fr) 0 auto}}

/* 2. первый экран страниц: крошки и заголовок — от верха, вровень с фото */
.pg-split{align-items:start}
@media (min-width:701px) and (max-width:900px){.pg-head:not(.pg-probnoe) .pg-split{align-items:start}}

/* 3. подчёркивание при наведении — плавно проявляется, а не появляется рывком */
.topbar a,.foot a,.napr-card h3 a,a.sl-n,.ptbl td a{text-decoration-line:underline;text-decoration-color:transparent;text-decoration-thickness:1px;text-underline-offset:.2em;
  transition:text-decoration-color .3s ease,color .2s ease}
.topbar a:hover,.foot a:hover,.napr-card h3 a:hover,a.sl-n:hover,.ptbl td a:hover{text-decoration-line:underline;text-decoration-color:currentColor}
.foot a.btn,.foot a.logo{text-decoration-line:none}

/* 4. ссылки строкой — небольшими кнопками рядом с блоком */
html:not(.vds) .sh-links{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem;font-size:0}
html:not(.vds) .sh-links a,html:not(.vds) .pt-note a[href="/sveden/"]{display:inline-flex;align-items:center;gap:.45rem;min-height:2.5rem;padding:0 .9rem;border-radius:var(--rb);
  border:2px solid var(--acc);color:var(--head);font-size:.875rem;font-weight:700;line-height:1.2;text-decoration:none;
  transition:background-color .25s ease,color .25s ease,translate .35s var(--am-e)}
html:not(.vds) .sh-links a::after,html:not(.vds) .pt-note a[href="/sveden/"]::after{content:"→";transition:translate .35s var(--am-e)}
@media (hover:hover){html:not(.vds) .sh-links a:hover,html:not(.vds) .pt-note a[href="/sveden/"]:hover{background:var(--acc);color:var(--accink);translate:0 -2px}
 html:not(.vds) .sh-links a:hover::after,html:not(.vds) .pt-note a[href="/sveden/"]:hover::after{translate:3px 0}}
html:not(.vds) .req-box+.pt-note{margin-top:1rem}
@media (max-width:400px) and (max-height:780px){html:not(.vds) .req-box+.pt-note{margin-top:.4rem}}  /* 360×740: «Реквизиты» с кнопкой были выше окна на 7 px */
html:not(.vds) .tch>div:last-child{display:flex;flex-direction:column}
html:not(.vds) .tch-more{margin-top:auto;padding-top:.6rem}
html:not(.vds) .tch-more summary{width:fit-content;margin-left:auto;list-style:none;gap:.5rem;min-height:2.5rem;padding:0 .9rem;border-radius:var(--rb);border:2px solid var(--acc);
  color:var(--head);font-size:.875rem;font-weight:700;transition:background-color .25s ease,color .25s ease}
html:not(.vds) .tch-more summary::-webkit-details-marker{display:none}
html:not(.vds) .tch-more summary::after{content:"+";font-size:1.15rem;line-height:1;transition:rotate .35s var(--am-e)}
html:not(.vds) .tch-more[open] summary::after{rotate:45deg}
@media (hover:hover){html:not(.vds) .tch-more summary:hover{background:var(--acc);color:var(--accink)}}

/* 5. карточки-ссылки: стрелка в правом нижнем углу */
html:not(.vds) a.mini,html:not(.vds) a.news-c{position:relative}
html:not(.vds) a.mini::after,html:not(.vds) a.news-c::after{content:"→";position:absolute;right:.8rem;bottom:.8rem;width:2rem;height:2rem;border-radius:50%;
  display:grid;place-items:center;border:1.5px solid var(--acc);color:var(--acc);font-weight:700;font-size:1rem;line-height:1;
  transition:background-color .25s ease,color .25s ease,translate .35s var(--am-e)}
html:not(.vds) a.mini .mini-b>:last-child,html:not(.vds) a.news-c .news-b>:last-child{padding-right:2.6rem}
@media (hover:hover){html:not(.vds) a.mini:hover::after,html:not(.vds) a.news-c:hover::after{background:var(--acc);color:var(--accink);translate:3px 0}}
@media (max-width:700px){html:not(.vds) a.mini::after,html:not(.vds) a.news-c::after{right:.55rem;bottom:.55rem;width:1.75rem;height:1.75rem;font-size:.9rem}
 html:not(.vds) a.mini .mini-b>:last-child,html:not(.vds) a.news-c .news-b>:last-child{padding-right:2.1rem}}

/* 6. расписания: время — плашкой (без вертикальных полей, высота строки та же) */
html:not(.vds) .sl-t .nw,html:not(.vds) .rs-day li:not(.rs-ph) .rs-t{display:inline-block;padding:0 .4rem;border-radius:6px;background:rgba(134,240,207,.14);color:var(--acc)}
html:not(.vds) .rs-day li:not(.rs-ph) .rs-t{justify-self:start}

/* 7. последний блок перед подвалом: поле снизу, как между блоками */
main{padding-bottom:clamp(2.25rem,4.5vw,3.5rem)}
@media (max-width:700px){main{padding-bottom:2rem}}
@media (max-width:400px) and (max-height:780px){main{padding-bottom:1.25rem}}

/* ══ 29.10 (tl_kern_2910.py): кернинг — метка-плейсхолдер в заголовках Dela Gothic One без ложного жирного ══ */
.phy{font-synthesis:none}

/* ══ 29.10 вечер (tl_foto_2910.py): фасад с вывеской Талантики — вывеска у левого края кадра, кадр сдвинут влево ══ */
.pg-cover img[src$="tl-fasad.webp"]{object-position:0 50%}
