/*
Theme Name: ПРИМ — Landing
Theme URI: https://dancegroup.ru/
Description: Самостоятельная тема спортивно-танцевального клуба «ПРИМ» с редактируемыми разделами и живыми отзывами Яндекс Карт.
Author: Custom
Version: 1.4.3
Requires at least: 5.5
Tested up to: 6.5
Requires PHP: 7.2
Text Domain: prim
*/

:root{
  --white:#ffffff; --paper:#fcfbf9; --mist:#f5f4f0;
  --ink:#272530; --ink-2:#66636f; --muted:#a6a3ad; --line:#eceae4;
  --gold-1:#ac8433; --gold-2:#c6a04a; --gold-3:#ddbd72; --gold-soft:#f8f1e1;
  --gold-grad:linear-gradient(120deg,#bf9538 0%,#dcb85f 52%,#ecd291 72%,#c39e44 100%);
  --gold-text:linear-gradient(100deg,#9c7420,#c6a04a 50%,#ddbd72 70%,#ac8433);
  --shadow:0 30px 60px -34px rgba(50,40,15,.28);
  --shadow-sm:0 16px 36px -26px rgba(50,40,15,.26);
  --r:20px; --maxw:1180px; --ease:cubic-bezier(.22,.61,.36,1);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
html.prim-scroll-lock{overflow:hidden}
body{margin:0; background:var(--white); color:var(--ink-2);
  font-family:"Manrope",system-ui,sans-serif; font-size:16px; line-height:1.8; -webkit-font-smoothing:antialiased}
h1,h2,h3,.disp{font-family:"Montserrat",system-ui,sans-serif; line-height:1.12; font-weight:700; letter-spacing:-.015em; color:var(--ink); margin:0}
a{color:inherit; text-decoration:none}
img{max-width:100%; display:block}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 26px}
.eyebrow{display:inline-block; font-family:"Montserrat"; font-size:.72rem; font-weight:700;
  letter-spacing:.19em; text-transform:uppercase; background:var(--gold-text);
  -webkit-background-clip:text; background-clip:text; color:transparent}
.gt{background:var(--gold-text); -webkit-background-clip:text; background-clip:text; color:transparent}

.btn{position:relative; display:inline-flex; align-items:center; justify-content:center; gap:.5em;
  font-family:"Montserrat"; font-weight:600; font-size:.9rem; padding:.92em 1.7em; border-radius:100px;
  cursor:pointer; border:1.5px solid transparent; transition:transform .3s var(--ease),box-shadow .3s var(--ease),background .3s,color .25s,border-color .25s}
.btn-gold{background:var(--gold-grad); color:#3c2c08; box-shadow:0 12px 26px -16px rgba(180,140,50,.6)}
.btn-gold:hover{transform:translateY(-2px); box-shadow:0 18px 34px -16px rgba(180,140,50,.66)}
.btn-line{background:var(--white); color:var(--ink); border-color:var(--line)}
.btn-line:hover{border-color:var(--gold-2); color:var(--gold-1); transform:translateY(-2px)}
.btn-lg{padding:1.05em 2.05em; font-size:.98rem}

/* HEADER (logo + burger popup menu) */
header{position:sticky; top:0; z-index:60; background:rgba(255,255,255,.78);
  backdrop-filter:saturate(1.5) blur(16px); transition:box-shadow .35s,background .35s}
header.scrolled{background:rgba(255,255,255,.92); box-shadow:0 1px 0 var(--line),0 14px 30px -26px rgba(0,0,0,.28)}
.nav{display:flex; align-items:center; gap:16px; height:82px; transition:height .35s var(--ease)}
header.scrolled .nav{height:68px}
.brand img{height:48px; width:auto; transition:height .35s var(--ease)}
header.scrolled .brand img{height:42px}
.brand-badges{display:flex; align-items:center; gap:4px; flex:0 0 auto}
.brand-badge{display:inline-flex; align-items:center; flex:0 0 auto}
.brand-badge img{height:68px; width:auto; display:block; transition:height .35s var(--ease)}
.brand-badge-1 img{transform:scale(1.06)}
header.scrolled .brand-badge img{height:58px}
.nav-cta{display:flex; align-items:center; gap:14px; margin-left:auto}
.nav-phone{font-family:"Montserrat"; font-weight:700; font-size:.9rem; white-space:nowrap; color:var(--ink)}
.nav-phone small{display:block; font-family:"Manrope"; font-size:.6rem; font-weight:600; letter-spacing:.13em;
  text-transform:uppercase; color:var(--muted)}
.menu-btn{display:inline-flex; align-items:center; gap:.6em; font-family:"Montserrat"; font-weight:600; font-size:.86rem;
  color:var(--ink); background:var(--white); border:1.5px solid var(--line); border-radius:100px; padding:.62em 1.05em .62em 1.15em; cursor:pointer; transition:.25s}
.menu-btn:hover{border-color:var(--gold-2); color:var(--gold-1)}
.menu-btn .bars{display:inline-flex; flex-direction:column; gap:3px}
.menu-btn .bars i{width:16px; height:2px; background:currentColor; border-radius:2px; display:block}

/* HERO */
.hero{position:relative; overflow:hidden; background:
  radial-gradient(760px 460px at 88% 0%, rgba(221,189,114,.14), transparent 60%), var(--white)}
.hero .wrap{position:relative; z-index:2; display:grid; max-width:1320px; grid-template-columns:.92fr 1.08fr; gap:36px;
  align-items:center; padding-top:76px; padding-bottom:86px}
.hero h1{font-size:clamp(2.05rem,4.2vw,3.35rem); font-weight:700}
.hero h1 .soft{font-weight:500; color:var(--ink-2)}
.brand-word{display:inline-block; font-family:"Montserrat"; font-weight:800;
  font-size:clamp(2.9rem,7vw,4.9rem); letter-spacing:-.005em; line-height:1; margin:.16em 0 .3em}
.hero .lead{max-width:30rem; font-size:1.04rem; margin:0 0 34px}
.hero-actions{display:flex; gap:13px; flex-wrap:wrap}
.hero-note{margin-top:22px; font-size:.82rem; color:var(--muted); display:flex; align-items:center; gap:.6em}
.hero-note b{color:var(--gold-1); font-family:"Montserrat"; font-weight:700}
.hero-media{position:relative; display:flex; justify-content:center}
.hero-frame{position:relative; width:100%; max-width:680px; overflow:hidden;
  background:radial-gradient(120% 100% at 70% 15%, #fffdf7, #f7efdd)}
.hero-frame img{width:100%; display:block}

/* MARQUEE (experiment) */
.marq{overflow:hidden; border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:var(--paper)}
.marq-track{display:flex; width:max-content; animation:marq 34s linear infinite}
.marq-track .set{display:flex; align-items:center}
.marq-track b{font-family:"Montserrat"; font-weight:600; font-size:.92rem; color:var(--ink); padding:15px 0; white-space:nowrap}
.marq-track .d{color:var(--gold-2); padding:0 26px; font-size:.7rem}
@keyframes marq{to{transform:translateX(-50%)}}

/* STATS */
.stats{background:var(--paper); border-bottom:1px solid var(--line)}
.stats .wrap{display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:20px; padding:40px 26px}
.stat{text-align:center; position:relative}
.stat+.stat::before{content:""; position:absolute; left:0; top:14%; height:72%; width:1px; background:var(--line)}
.stat .num{font-family:"Montserrat"; font-weight:800; font-size:clamp(1.8rem,3.4vw,2.5rem);
  background:var(--gold-text); -webkit-background-clip:text; background-clip:text; color:transparent; line-height:1}
.stat .lbl{font-size:.8rem; color:var(--ink-2); margin-top:7px}

/* SECTION */
.section{padding:100px 0}
.sec-head{max-width:640px; margin-bottom:54px}
.sec-head.center{margin-inline:auto; text-align:center}
.sec-head h2{font-size:clamp(1.75rem,3.3vw,2.6rem); margin-top:14px}
.sec-head p{margin:16px 0 0; font-size:1.02rem}
.prim-front-view-2 .sec-head{max-width:1050px}
.prim-front-view-2 .sec-head.center{max-width:1050px}
.prim-front-view-2 .sec-head h2{font-size:clamp(2.85rem,6.4vw,5.8rem); line-height:.98; letter-spacing:-.05em}

/* Version 2: large mosaic statistics. */
.prim-front-view-2 .stats{padding:16px 0 82px}
.prim-front-view-2 .stats .wrap{grid-template-columns:1.15fr .85fr 1fr; gap:16px; padding:0 26px}
.prim-front-view-2 .stat{display:flex; min-height:190px; padding:28px; align-items:flex-end; overflow:hidden;
  border:0; border-radius:24px; background:var(--white); text-align:left; box-shadow:0 18px 50px rgba(20,19,16,.07)}
.prim-front-view-2 .stat+.stat::before{display:none}
.prim-front-view-2 .stat:nth-child(1){background:var(--white); color:var(--ink)}
.prim-front-view-2 .stat:nth-child(2){background:var(--ink); color:var(--white); box-shadow:none}
.prim-front-view-2 .stat:nth-child(3){background:var(--ink); color:var(--white); box-shadow:none}
.prim-front-view-2 .stat .num{font-size:clamp(3.1rem,6vw,5.2rem); color:inherit; line-height:.9; letter-spacing:-.05em;
  background:none; -webkit-text-fill-color:currentColor}
.prim-front-view-2 .stat .lbl{max-width:260px; margin-top:15px; color:inherit; font-size:.84rem; line-height:1.48}
.prim-front-view-2 .stat:nth-child(1) .lbl{color:var(--ink-2)}
.prim-front-view-2 .stat:nth-child(3) .lbl{color:rgba(255,255,255,.74)}

/* wing divider removed for calmness; using a soft rule */
.soft-rule{height:1px; max-width:120px; margin:0 auto; background:linear-gradient(90deg,transparent,var(--gold-2),transparent); opacity:.5}

/* cards / branches */
.grid4{display:grid; grid-template-columns:repeat(4,1fr); gap:22px}
.card{position:relative; background:var(--white); border:1px solid var(--line); border-radius:var(--r);
  padding:28px 26px 26px; overflow:hidden; transition:transform .4s var(--ease),box-shadow .4s var(--ease),border-color .3s}
.card:hover{transform:translateY(-6px); box-shadow:var(--shadow); border-color:transparent}
.card .idx{font-family:"Montserrat"; font-weight:700; font-size:.86rem; color:var(--gold-2); letter-spacing:.04em}
.card h3{font-size:1.14rem; margin:12px 0 6px}
.card .sub{font-size:.85rem; margin:0 0 20px}
.card .more{font-family:"Montserrat"; font-weight:600; font-size:.82rem; color:var(--gold-1); display:inline-flex; align-items:center; gap:.4em}
.card .more::after{content:"→"; transition:transform .3s var(--ease)}
.card:hover .more::after{transform:translateX(5px)}
.card::after{content:""; position:absolute; left:0; right:0; top:0; height:3px; background:var(--gold-grad); transform:scaleX(0); transform-origin:left; transition:transform .4s var(--ease)}
.card:hover::after{transform:scaleX(1)}

/* Production view: keep an incomplete branch row centered. */
.prim-front-view-1 #branches .grid4{display:flex; flex-wrap:wrap; justify-content:center}
.prim-front-view-1 #branches .card{width:calc((100% - 44px)/3); min-width:240px}

/* Version 2: dark branch table from the mosaic concept. */
.branches-mosaic{color:var(--white); background:var(--ink)}
.branches-mosaic .sec-head{display:grid; max-width:none; grid-template-columns:1.25fr .75fr; gap:0 54px; align-items:end; margin-bottom:58px; text-align:left}
.branches-mosaic .sec-head.center{margin-inline:0; text-align:left}
.branches-mosaic .sec-head .eyebrow{grid-column:1/-1; color:var(--gold-2)}
.branches-mosaic .sec-head h2{grid-column:1; color:var(--white)}
.branches-mosaic .sec-head p{grid-column:2; margin:0 0 7px; color:rgba(255,255,255,.62); line-height:1.7}
.branches-mosaic .grid4{grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:0; border-top:1px solid rgba(255,255,255,.17); border-left:1px solid rgba(255,255,255,.17)}
.branches-mosaic .card{min-height:290px; padding:28px; border:0; border-right:1px solid rgba(255,255,255,.17);
  border-bottom:1px solid rgba(255,255,255,.17); border-radius:0; color:var(--white); background:transparent; box-shadow:none}
.branches-mosaic .card::after{display:none}
.branches-mosaic .card:hover{transform:none; color:var(--ink); background:var(--gold-2); box-shadow:none}
.branches-mosaic .card .idx{margin-bottom:78px; color:var(--gold-2)}
.branches-mosaic .card:hover .idx{color:var(--ink)}
.branches-mosaic .card h3{color:inherit; font-size:1.35rem}
.branches-mosaic .card .sub{color:rgba(255,255,255,.58); line-height:1.55}
.branches-mosaic .card:hover .sub{color:rgba(29,29,27,.68)}
.branches-mosaic .card .more{margin-top:auto; color:var(--gold-2)}
.branches-mosaic .card:hover .more{color:var(--ink)}

/* advantages */
.adv{background:var(--paper)}
.adv-mosaic{display:grid; grid-template-columns:1.15fr .85fr .85fr; grid-auto-rows:minmax(185px,auto); gap:16px}
.adv-tile{position:relative; overflow:hidden; padding:28px; border:1px solid var(--line); border-radius:25px;
  background:var(--mist); transition:transform .35s var(--ease),box-shadow .35s var(--ease)}
.adv-tile:hover{transform:translateY(-3px); box-shadow:var(--shadow-sm)}
.adv-tile:nth-child(1){grid-row:span 2; color:var(--white); background:var(--ink); border-color:var(--ink)}
.adv-tile:nth-child(4){grid-column:span 2; color:var(--white); background:var(--gold-1); border-color:var(--gold-1)}
.adv-tile:nth-child(6){grid-column:span 2}
.adv-tile-label{position:relative; z-index:2; display:block; margin-bottom:44px; color:var(--gold-1);
  font-family:"Montserrat",sans-serif; font-size:.74rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase}
.adv-tile:nth-child(1) .adv-tile-label,.adv-tile:nth-child(4) .adv-tile-label{color:#f6da9c}
.adv-tile p{position:relative; z-index:2; margin:0; color:inherit; font-size:1.05rem; line-height:1.5}
.adv-tile:nth-child(1) p{font-family:"Montserrat",sans-serif; font-size:clamp(1.45rem,2.6vw,2.35rem); font-weight:700; line-height:1.28}
.adv-tile:nth-child(4) p{max-width:680px; font-family:"Montserrat",sans-serif; font-size:clamp(1.2rem,2vw,1.75rem); font-weight:700; line-height:1.35}
.adv-tile-mark{position:absolute; right:-8px; bottom:-35px; color:rgba(198,160,74,.13);
  font-family:"Montserrat",sans-serif; font-size:9.4rem; font-weight:800; line-height:1; pointer-events:none}
.adv-tile:nth-child(4) .adv-tile-mark{color:rgba(255,255,255,.12)}

/* video */
.video-shell{position:relative; border-radius:24px; overflow:hidden; box-shadow:var(--shadow);
  border:1px solid var(--line); aspect-ratio:16/9; background:#0d0d0d}
.video-shell iframe{position:absolute; inset:0; width:100%; height:100%; border:0}

/* children's video reviews */
.children-voices{background:var(--mist)}
.children-video-shell{position:relative; max-width:960px; margin:0 auto; aspect-ratio:16/9; overflow:hidden;
  border:1px solid rgba(198,160,74,.28); border-radius:24px; background:var(--white); box-shadow:var(--shadow)}
.children-video-shell iframe{position:absolute; inset:0; width:100%; height:100%; border:0}
.children-video-placeholder{position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center;
  padding:36px; text-align:center; background:
  radial-gradient(circle at 24% 20%,rgba(221,189,114,.28),transparent 27%),
  radial-gradient(circle at 82% 76%,rgba(198,160,74,.18),transparent 30%),
  linear-gradient(145deg,#fffdf8 0%,var(--gold-soft) 100%)}
.children-video-placeholder::before{content:""; position:absolute; width:62%; aspect-ratio:1; border:1px solid rgba(198,160,74,.18);
  border-radius:50%; box-shadow:0 0 0 54px rgba(198,160,74,.06),0 0 0 108px rgba(198,160,74,.035)}
.children-video-placeholder>*{position:relative; z-index:1}
.children-video-mark{width:76px; height:76px; margin-bottom:24px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  color:#4b3710; background:var(--gold-grad); box-shadow:0 18px 36px -20px rgba(172,132,51,.75)}
.children-video-mark i{display:block; width:0; height:0; margin-left:5px; border-top:10px solid transparent;
  border-bottom:10px solid transparent; border-left:16px solid currentColor}
.children-video-placeholder strong{font-family:"Montserrat"; color:var(--ink); font-size:clamp(1.2rem,2.6vw,1.75rem); line-height:1.25}
.children-video-placeholder p{max-width:520px; margin:12px 0 0; color:var(--ink-2); font-size:.96rem}

/* Version 2: children video and Yandex parent reviews in one section. */
.combined-reviews{background:var(--mist)}
.combined-reviews-grid{display:grid; grid-template-columns:1.12fr .88fr; gap:16px; align-items:stretch}
.combined-reviews-grid .children-video-shell{width:100%; max-width:none; height:620px; margin:0; aspect-ratio:auto}
.combined-reviews-grid .yandex-reviews-shell{width:100%; max-width:none; height:620px; margin:0; box-shadow:none}
.combined-reviews-grid .yandex-reviews-viewport{height:calc(100% - 68px)}
.combined-reviews-grid .yandex-reviews-shell iframe{height:100%}

/* trainers */
.grid3{display:grid; grid-template-columns:repeat(3,1fr); gap:24px}
.trainer{background:var(--white); border:1px solid var(--line); border-radius:var(--r); overflow:hidden;
  transition:transform .4s var(--ease),box-shadow .4s var(--ease)}
.trainer:hover{transform:translateY(-6px); box-shadow:var(--shadow)}
.trainer .ph{aspect-ratio:3/3.4; position:relative; display:flex; align-items:flex-end; justify-content:center;
  background:radial-gradient(120% 90% at 50% 12%, #fdfaf2, #efeadd); overflow:hidden}
.trainer .ph img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover}
.trainer .ph .mono{position:relative; z-index:1; margin-bottom:26px; font-family:"Montserrat"; font-weight:800; font-size:2.7rem;
  background:var(--gold-text); -webkit-background-clip:text; background-clip:text; color:transparent; opacity:.85}
.trainer .ph::after{content:""; position:absolute; left:0; right:0; bottom:0; height:3px; background:var(--gold-grad); z-index:2}
.trainer .body{padding:22px 24px}
.trainer h3{font-size:1.14rem}
.trainer .role{font-size:.82rem; margin:5px 0 8px}
.trainer .tag{font-size:.76rem; color:var(--gold-1); font-family:"Montserrat"; font-weight:600}
.trainer .lnk{display:inline-block; margin-top:14px; font-family:"Montserrat"; font-weight:600; font-size:.8rem; color:var(--gold-1)}

/* Version 2: editorial trainer list. */
.trainers-mosaic .sec-head.center{margin-inline:0; text-align:left}
.trainers-mosaic .grid3{display:flex; flex-direction:column; gap:14px; counter-reset:trainer}
.trainers-mosaic .trainer{display:grid; min-height:410px; grid-template-columns:100px minmax(230px,280px) minmax(0,1fr);
  align-items:center; padding:18px 28px 18px 0; border:0; border-radius:24px; background:var(--white); box-shadow:none;
  counter-increment:trainer}
.trainers-mosaic .trainer::before{content:counter(trainer,decimal-leading-zero); align-self:start; padding:26px 0 0 28px;
  color:var(--gold-1); font-family:"Montserrat"; font-size:.78rem; font-weight:700; letter-spacing:.08em}
.trainers-mosaic .trainer:hover{transform:none; box-shadow:none}
.trainers-mosaic .trainer .ph{width:100%; height:auto; min-height:0; aspect-ratio:768/1086; align-items:center; border-radius:20px}
.trainers-mosaic .trainer .ph::before,.trainers-mosaic .trainer .ph::after{display:none}
.trainers-mosaic .trainer .ph img{object-position:center top; transition:transform .45s var(--ease)}
.trainers-mosaic .trainer:hover .ph img{transform:scale(1.035)}
.trainers-mosaic .trainer .ph .mono{margin:0}
.trainers-mosaic .trainer .body{padding:30px 36px}
.trainers-mosaic .trainer h3{font-size:clamp(1.55rem,3vw,2.5rem); line-height:1.08; letter-spacing:-.035em}
.trainers-mosaic .trainer .role{max-width:620px; margin-top:10px; line-height:1.55}
.trainers-mosaic .trainer:nth-child(even){color:var(--white); background:var(--ink)}
.trainers-mosaic .trainer:nth-child(even)::before{color:var(--gold-2)}
.trainers-mosaic .trainer:nth-child(even) h3{color:var(--white)}
.trainers-mosaic .trainer:nth-child(even) .role{color:rgba(255,255,255,.68)}
.trainers-mosaic .trainer:nth-child(even) .tag,.trainers-mosaic .trainer:nth-child(even) .lnk{color:var(--gold-2)}

/* reviews */
.review{background:var(--white); border:1px solid var(--line); border-radius:var(--r); padding:28px 26px;
  transition:transform .4s var(--ease),box-shadow .4s var(--ease)}
.review:hover{transform:translateY(-5px); box-shadow:var(--shadow-sm)}
.review .stars{color:var(--gold-2); letter-spacing:.16em; font-size:.84rem}
.review p{font-size:.94rem; margin:16px 0 20px}
.review .who{display:flex; align-items:center; gap:12px}
.review .av{width:42px; height:42px; border-radius:50%; background:var(--gold-grad); flex:none;
  display:flex; align-items:center; justify-content:center; color:#fff; font-family:"Montserrat"; font-weight:700}
.review .who b{font-family:"Montserrat"; font-weight:700; font-size:.9rem; display:block; color:var(--ink)}
.review .who small{font-size:.76rem; color:var(--muted)}

/* CTA */
.cta{background:radial-gradient(680px 320px at 50% -30%, rgba(221,189,114,.4), transparent 62%), var(--gold-soft)}
.cta .wrap{text-align:center; padding:92px 26px}
.cta h2{font-size:clamp(1.85rem,3.8vw,2.85rem)}
.cta p{max-width:520px; margin:14px auto 30px}

/* footer */
footer{background:var(--paper); border-top:1px solid var(--line); padding:72px 0 30px; position:relative}
footer::before{content:""; position:absolute; left:0; right:0; top:-1px; height:2px; background:var(--gold-grad); opacity:.6}
.foot-grid{display:grid; grid-template-columns:1.5fr 1fr 1fr 1.25fr; gap:38px}
.foot-brand img{height:64px; margin-bottom:18px}
.foot-brand p{font-size:.88rem; max-width:17rem; margin:0}
footer h4{font-family:"Montserrat"; font-size:.72rem; letter-spacing:.17em; text-transform:uppercase;
  color:var(--gold-1); margin:0 0 16px; font-weight:700}
footer ul{list-style:none; margin:0; padding:0}
footer li{margin-bottom:10px}
footer a.fl{font-size:.9rem; color:var(--ink-2); transition:color .25s}
footer a.fl:hover{color:var(--gold-1)}
.foot-contact b{font-family:"Montserrat"; color:var(--ink); font-size:1rem; display:block; margin-bottom:6px}
.socials{display:flex; gap:10px; margin-top:18px}
.socials a{width:35px; height:35px; border-radius:12px; border:1.5px solid var(--line); background:var(--white);
  display:flex; align-items:center; justify-content:center; font-family:"Montserrat"; font-weight:700; font-size:.72rem; color:var(--gold-1); transition:.25s}
.socials a:hover{border-color:var(--gold-2); transform:translateY(-3px)}
.foot-bottom{border-top:1px solid var(--line); margin-top:48px; padding-top:24px; display:flex;
  justify-content:space-between; flex-wrap:wrap; gap:10px; font-size:.78rem; color:var(--muted)}

/* MODAL */
.overlay{position:fixed; inset:0; background:rgba(30,24,10,.46); backdrop-filter:blur(5px);
  display:flex; align-items:center; justify-content:center; padding:24px; z-index:120; opacity:0; visibility:hidden; transition:.35s var(--ease)}
.overlay.open{opacity:1; visibility:visible}
.modal{position:relative; background:var(--white); width:100%; max-width:440px; border-radius:24px; padding:38px 34px;
  box-shadow:var(--shadow); transform:translateY(18px) scale(.97); transition:.4s var(--ease)}
.overlay.open .modal{transform:none}
.modal .x{position:absolute; top:16px; right:16px; width:38px; height:38px; border:1.5px solid var(--line);
  background:var(--white); border-radius:11px; cursor:pointer; font-size:1.05rem; color:var(--ink-2); transition:.25s}
.modal .x:hover{border-color:var(--gold-2); color:var(--gold-1)}
.modal h3{font-size:1.5rem; margin:6px 0 22px}
.field{margin-bottom:16px}
.field label{display:block; font-family:"Montserrat"; font-size:.76rem; font-weight:600; margin-bottom:7px; color:var(--ink)}
.field label .req{color:#cf5347}
.field input,.field select{width:100%; padding:.88em 1em; border-radius:13px; border:1.5px solid var(--line);
  background:var(--paper); font-family:"Manrope"; font-size:.92rem; color:var(--ink); transition:.25s}
.field input:focus,.field select:focus{outline:0; border-color:var(--gold-2); background:#fff; box-shadow:0 0 0 4px rgba(198,160,74,.15)}
.modal .btn-gold{width:100%; margin-top:6px}
.modal .ok{text-align:center; padding:14px 0}
.modal .ok .ring{width:66px; height:66px; border-radius:50%; background:var(--gold-grad); margin:0 auto 16px; display:flex; align-items:center; justify-content:center; color:#fff}
.modal .ok .ring svg{width:30px;height:30px}
.modal .ok h3{margin-bottom:6px}.modal .ok p{font-size:.92rem}

/* OFFCANVAS (popup menu) */
.offcanvas{position:fixed; inset:0 0 0 auto; width:min(340px,88vw); background:var(--white); z-index:130;
  transform:translateX(100%); transition:transform .42s var(--ease); box-shadow:var(--shadow);
  display:flex; flex-direction:column; padding:24px 26px 30px; overflow:auto}
.offcanvas.open{transform:none}
.oc-top{display:flex; align-items:center; justify-content:space-between; margin-bottom:22px}
.oc-top img{height:34px}
.oc-back{position:fixed; inset:0; background:rgba(30,24,10,.4); z-index:125; opacity:0; visibility:hidden; transition:.35s}
.oc-back.open{opacity:1; visibility:visible}
.offcanvas .x{width:42px; height:42px; border:1.5px solid var(--line); background:var(--white); border-radius:12px; cursor:pointer; font-size:1.05rem; color:var(--ink-2)}
.offcanvas a.oc{font-family:"Montserrat"; font-weight:500; font-size:1.02rem; color:var(--ink); padding:.92em 0; border-bottom:1px solid var(--line); transition:color .2s, padding-left .25s var(--ease); position:relative}
.offcanvas a.oc:hover{color:var(--gold-1); padding-left:8px}
.offcanvas .oc-cta{margin-top:22px}
.offcanvas .oc-phone{margin-top:18px; font-family:"Montserrat"; font-weight:700; color:var(--ink); font-size:1.05rem}

/* REVEAL */
.reveal{opacity:0; transform:translateY(30px); transition:opacity .8s var(--ease), transform .8s var(--ease)}
.reveal.zoom{transform:scale(.965)}
.reveal.left{transform:translateX(-28px)}
.reveal.in{opacity:1; transform:none}

@media(max-width:1000px){
  .nav-phone{display:none}
  .hero .wrap{grid-template-columns:1fr; padding-top:44px; padding-bottom:56px}
  .hero-media{order:-1} .hero-frame{max-width:560px}
  .grid4{grid-template-columns:repeat(2,1fr)} .grid3{grid-template-columns:1fr 1fr}
  .adv-mosaic{grid-template-columns:1fr 1fr}
  .adv-tile:nth-child(1){grid-row:auto}
  .adv-tile:nth-child(4),.adv-tile:nth-child(6){grid-column:auto}
  .stats .wrap{grid-template-columns:repeat(2,1fr); gap:26px}
  .stat:nth-child(2)::before,.stat:nth-child(3)::before{display:none}
  .foot-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:600px){
  .adv-mosaic{grid-template-columns:1fr}
  .adv-tile{min-height:180px; padding:24px}
  .adv-tile-label{margin-bottom:34px}
  .grid4,.grid3,.foot-grid{grid-template-columns:1fr}
  .section{padding:64px 0}
  .hero-actions .btn{flex:1}
  .stats .wrap{grid-template-columns:1fr 1fr}
  .foot-bottom{flex-direction:column}
  .menu-btn span.t{display:none}
  .children-video-shell{border-radius:18px}
  .children-video-shell.is-placeholder{aspect-ratio:auto; min-height:250px}
  .children-video-placeholder{padding:24px 20px}
  .children-video-mark{width:58px; height:58px; margin-bottom:16px}
  .children-video-placeholder p{font-size:.84rem; line-height:1.55}
}
@media(prefers-reduced-motion:reduce){
  *{scroll-behavior:auto!important}
  .reveal{opacity:1!important; transform:none!important; transition:none!important}
  .marq-track{animation:none!important}
}
/* ---------- Theme additions ---------- */
/* generic inner pages (fallback templates) */
.page-wrap{max-width:var(--maxw); margin:0 auto; padding:60px 26px 90px}
.page-wrap h1,.page-wrap h2,.page-wrap h3{margin:1.2em 0 .5em}
.page-wrap p,.page-wrap li{color:var(--ink-2)}
.page-wrap a{color:var(--gold-1)}
.page-wrap img{border-radius:14px}
.entry-title{font-size:clamp(1.8rem,3.4vw,2.6rem); margin-bottom:.4em}
.post-meta{color:var(--muted); font-size:.85rem; margin-bottom:1.6em}
.pagenav{display:flex; gap:12px; flex-wrap:wrap; margin-top:40px}
.pagenav a,.pagenav span{padding:.5em .9em; border:1px solid var(--line); border-radius:10px; font-family:"Montserrat"; font-weight:600; font-size:.85rem}
.pagenav .current{background:var(--gold-grad); color:#3c2c08; border-color:transparent}

/* news */
.inner-news .inner-section{background:var(--paper)}
.news-grid{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px}
.news-card{overflow:hidden; border:1px solid var(--line); border-radius:22px; background:var(--white);
  box-shadow:0 12px 34px rgba(45,36,19,.05); transition:transform .35s var(--ease),box-shadow .35s var(--ease)}
.news-card:hover{transform:translateY(-4px); box-shadow:var(--shadow-sm)}
.news-card-media{display:block; overflow:hidden; aspect-ratio:4/3; background:var(--gold-soft)}
.news-card-media img{width:100%; height:100%; object-fit:cover; border-radius:0; transition:transform .5s var(--ease)}
.news-card:hover .news-card-media img{transform:scale(1.045)}
.news-card-body{padding:24px}
.news-date{display:block; margin-bottom:12px; color:var(--gold-1); font-family:"Montserrat"; font-size:.76rem; font-weight:700; letter-spacing:.08em}
.news-card h2{margin:0 0 12px; font-size:1.25rem; line-height:1.3}
.news-card h2 a{color:var(--ink)}
.news-card p{margin:0 0 22px; color:var(--ink-2); font-size:.91rem; line-height:1.65}
.news-more{display:inline-flex; align-items:center; gap:7px; color:var(--gold-1); font-family:"Montserrat"; font-size:.82rem; font-weight:700}
.news-more span{transition:transform .25s var(--ease)}
.news-more:hover span{transform:translateX(4px)}
.news-pagination{justify-content:center}
.news-empty{max-width:720px; margin:0 auto; padding:64px 28px; border:1px solid var(--line); border-radius:24px; background:var(--white); text-align:center}
.news-empty h2{margin:10px 0 14px; font-size:clamp(1.7rem,4vw,2.6rem)}
.news-empty p{margin:0; color:var(--ink-2)}
.news-single{max-width:900px; margin:0 auto}
.news-single .entry-title{font-size:clamp(2rem,5vw,3.7rem); line-height:1.08}
.news-single-image{width:100%; max-height:620px; margin:28px 0 36px; object-fit:cover}
.news-single .entry-content{font-size:1.04rem; line-height:1.8}
.news-single-nav{display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-top:54px; padding-top:28px; border-top:1px solid var(--line)}
.news-single-nav>div:last-child{text-align:right}
.news-single-nav a{display:inline-flex; flex-direction:column; gap:6px}
.news-single-nav span{color:var(--muted); font-size:.78rem}
.news-single-nav strong{color:var(--ink); font-family:"Montserrat"; font-size:.9rem}

@media(max-width:1000px){.news-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){
  .news-grid{grid-template-columns:1fr}
  .news-single-nav{grid-template-columns:1fr}
  .news-single-nav>div:last-child{text-align:left}
}

/* ---------- Внутренние страницы ---------- */
.inner-main{background:var(--white)}
.inner-hero{position:relative; overflow:hidden; border-bottom:1px solid var(--line); background:
  radial-gradient(680px 300px at 85% 0%,rgba(221,189,114,.18),transparent 64%),var(--paper)}
.inner-hero .wrap{padding-top:58px; padding-bottom:68px}
.inner-back{display:inline-flex; align-items:center; gap:.55em; margin-bottom:34px; color:var(--ink-2);
  font-family:"Montserrat"; font-size:.82rem; font-weight:600; transition:color .2s,transform .2s}
.inner-back:hover{color:var(--gold-1); transform:translateX(-3px)}
.inner-hero .eyebrow{display:block; margin-bottom:12px}
.inner-hero h1{max-width:850px; font-size:clamp(2.15rem,5vw,4rem)}
.inner-hero p{max-width:720px; margin:20px 0 0; font-size:1.04rem}
.inner-section{padding:80px 0}
.inner-note{padding:22px 26px; border:1px dashed var(--gold-2); border-radius:16px; background:var(--gold-soft); color:var(--ink)}

/* Направления */
.direction-list{display:flex; flex-direction:column; gap:30px}
.direction-row{display:grid; grid-template-columns:minmax(300px,.78fr) 1.22fr; overflow:hidden; border:1px solid var(--line);
  border-radius:24px; background:var(--white); box-shadow:var(--shadow-sm)}
.direction-row:nth-child(even) .direction-row-media{order:2}
.direction-row-media{min-height:360px; overflow:hidden; background:linear-gradient(145deg,var(--gold-soft),var(--paper));
  display:flex; align-items:center; justify-content:center}
.direction-row-media img{width:100%; height:100%; min-height:360px; object-fit:cover}
.direction-row-media span{font:800 clamp(3rem,8vw,6rem) "Montserrat"; color:var(--gold-2); opacity:.55}
.direction-row-body{align-self:center; padding:46px 50px}
.direction-row-body h2{font-size:clamp(1.65rem,3vw,2.35rem); margin:12px 0 18px}
.direction-copy{margin-bottom:24px}
.direction-copy p{margin:0 0 12px}
.direction-links{display:flex; flex-wrap:wrap; gap:9px; margin:-4px 0 24px}
.direction-links a,.direction-links span{display:inline-flex; padding:8px 13px; border:1px solid rgba(198,160,74,.35);
  border-radius:100px; background:var(--gold-soft); color:var(--ink); font-size:.82rem; font-weight:600}
.direction-links a{transition:transform .2s,border-color .2s,color .2s}
.direction-links a:hover{transform:translateY(-2px); border-color:var(--gold-2); color:var(--gold-1)}

/* Цены — филиал слева, направления горизонтально справа */
.price-branches{display:flex; flex-direction:column; gap:0}
.price-branch{display:grid; grid-template-columns:210px minmax(0,1fr); gap:34px; padding:38px 0; border-top:1px solid var(--line)}
.price-branch:first-child{padding-top:0; border-top:0}
.price-branch-head h2{font-size:1.45rem; margin-top:10px}
.price-cards{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px}
.price-card{display:flex; flex-direction:column; min-width:0; padding:24px; border:1px solid var(--line); border-radius:18px; background:var(--paper);
  transition:transform .3s var(--ease),box-shadow .3s,border-color .3s}
.price-card:hover{transform:translateY(-3px); border-color:rgba(198,160,74,.35); box-shadow:var(--shadow-sm)}
.price-card h3{font-size:1rem; line-height:1.35}
.price-frequency{margin:10px 0 0; color:var(--gold-1); font-family:"Montserrat"; font-size:.78rem; font-weight:700}
.price-copy{margin:15px 0 20px; font-size:.84rem; line-height:1.65}
.price-copy p{margin:0}
.price-amount{margin-top:auto; padding-top:16px; border-top:1px solid var(--line); color:var(--ink);
  font-family:"Montserrat"; font-size:1.18rem; font-weight:800}
.price-branches>.inner-note{margin-top:28px}

/* Документы */
.document-branches{display:flex; flex-direction:column; gap:56px}
.document-branch{display:grid; grid-template-columns:220px minmax(0,1fr); gap:36px}
.document-branch-head h2{font-size:1.45rem; margin-top:10px}
.document-groups{display:flex; flex-direction:column; gap:30px}
.document-group{padding:26px; border:1px solid var(--line); border-radius:20px; background:var(--paper)}
.document-group>h3{font-size:1.05rem; margin-bottom:18px}
.document-list{display:flex; flex-direction:column; gap:10px}
.document-card{display:grid; grid-template-columns:48px minmax(0,1fr) auto; gap:16px; align-items:center; padding:16px;
  border:1px solid var(--line); border-radius:14px; background:var(--white)}
.document-type{display:flex; align-items:center; justify-content:center; width:48px; height:48px; border-radius:12px;
  background:var(--gold-soft); color:var(--gold-1); font:800 .66rem "Montserrat"}
.document-card h4{font-family:"Montserrat"; font-size:.92rem; color:var(--ink); margin:0}
.document-copy{margin-top:5px; font-size:.78rem; line-height:1.55}
.document-copy p{margin:0}
.document-open{padding:.55em .85em; border-radius:100px; border:1px solid var(--line); color:var(--ink);
  font:600 .76rem "Montserrat"; transition:border-color .2s,color .2s}
.document-open:hover{border-color:var(--gold-2); color:var(--gold-1)}
.document-open.is-muted{border-color:transparent; color:var(--muted)}

/* Тренеры */
.trainer-video-section{background:var(--mist)}
.trainer-video-section .video-shell{max-width:960px; margin:0 auto}
.video-empty{position:absolute; inset:0; display:flex; align-items:center; justify-content:center; color:#fff; font-family:"Montserrat"; font-weight:700}
.trainer-list-section{background:var(--white)}
.trainer-page-list{display:flex; flex-direction:column; gap:28px}
.trainer-page-card{display:grid; grid-template-columns:340px minmax(0,1fr); overflow:hidden; border:1px solid var(--line);
  border-radius:24px; background:var(--paper)}
.trainer-page-photo{min-height:420px; overflow:hidden; display:flex; align-items:center; justify-content:center;
  background:radial-gradient(120% 90% at 50% 12%,#fdfaf2,#efeadd)}
.trainer-page-photo img{width:100%; height:100%; min-height:420px; object-fit:cover}
.trainer-page-photo span{font:800 3.4rem "Montserrat"; color:var(--gold-2)}
.trainer-page-body{align-self:center; padding:42px 46px}
.trainer-page-body h2{font-size:clamp(1.55rem,3vw,2.2rem); margin:10px 0}
.trainer-page-role{margin:0 0 20px; color:var(--ink); font-weight:600}
.trainer-page-copy{font-size:.92rem}
.trainer-page-copy p{margin:0 0 12px}
.trainer-page-copy+.btn{margin-top:14px}

/* Персональная страница тренера */
.trainer-single-hero{padding:54px 0 92px; background:var(--paper)}
.trainer-single-hero .inner-back{display:inline-flex; margin-bottom:34px}
.trainer-single-hero-grid{display:grid; grid-template-columns:minmax(300px,430px) minmax(0,1fr); gap:clamp(42px,7vw,92px); align-items:center}
.trainer-single-main-photo{width:100%; overflow:hidden; aspect-ratio:768/1086; border-radius:26px; background:var(--mist)}
.trainer-single-main-photo img{width:100%; height:100%; object-fit:cover; object-position:center top}
.trainer-single-main-photo span{display:flex; width:100%; height:100%; align-items:center; justify-content:center; color:var(--gold-2); font:800 4rem "Montserrat"}
.trainer-single-heading h1{max-width:760px; margin:16px 0 20px; font-size:clamp(2.35rem,5vw,5rem); line-height:1; letter-spacing:-.045em}
.trainer-single-heading p{max-width:680px; margin:0 0 32px; color:var(--ink-2); font-size:clamp(1rem,1.8vw,1.25rem); line-height:1.65}
.trainer-single-content-section{padding:92px 0; background:var(--white)}
.trainer-single-content{max-width:920px; color:var(--ink-2); font-size:1.03rem; line-height:1.85}
.trainer-single-content>*:first-child{margin-top:0}
.trainer-single-content>*:last-child{margin-bottom:0}
.trainer-single-content h2,.trainer-single-content h3{margin:1.5em 0 .6em}
.trainer-single-content h2{font-size:clamp(1.7rem,3.4vw,2.7rem)}
.trainer-single-content h3{font-size:clamp(1.25rem,2.4vw,1.7rem)}
.trainer-single-content p,.trainer-single-content ul,.trainer-single-content ol{margin:0 0 1.15em}
.trainer-single-content img{height:auto; border-radius:20px}
.trainer-single-content .wp-block-image,.trainer-single-content .wp-block-gallery{margin-top:36px; margin-bottom:36px}
.trainer-single-gallery-section{padding:72px 0; background:var(--mist)}
.trainer-single-gallery{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px}
.trainer-single-gallery-item{display:block; overflow:hidden; aspect-ratio:4/3; border-radius:20px; background:var(--white)}
.trainer-single-gallery-item img{width:100%; height:100%; object-fit:cover; transition:transform .45s var(--ease)}
.trainer-single-gallery-item:hover img{transform:scale(1.04)}
.trainer-single-footer{padding:54px 0 84px; text-align:center; background:var(--white)}
.trainer-single-main-photo[data-trainer-lightbox],.trainer-single-gallery-item{cursor:zoom-in}
.trainer-lightbox{position:fixed; inset:0; z-index:220; display:grid; grid-template-columns:72px minmax(0,1fr) 72px;
  align-items:center; gap:20px; padding:34px; background:rgba(12,12,14,.94); backdrop-filter:blur(12px)}
.trainer-lightbox[hidden]{display:none}
.trainer-lightbox figure{display:flex; min-width:0; max-width:min(1100px,100%); max-height:calc(100vh - 68px); margin:0 auto;
  align-items:center; flex-direction:column; justify-content:center}
.trainer-lightbox figure img{display:block; max-width:100%; max-height:calc(100vh - 112px); object-fit:contain; border-radius:14px}
.trainer-lightbox figcaption{min-height:30px; padding-top:10px; color:rgba(255,255,255,.72); font:600 .78rem "Montserrat"}
.trainer-lightbox-close,.trainer-lightbox-arrow{display:flex; align-items:center; justify-content:center; border:1px solid rgba(255,255,255,.24);
  border-radius:50%; color:#fff; background:rgba(255,255,255,.08); cursor:pointer; transition:background .2s,border-color .2s,transform .2s}
.trainer-lightbox-close:hover,.trainer-lightbox-arrow:hover{border-color:rgba(255,255,255,.58); background:rgba(255,255,255,.16)}
.trainer-lightbox-close{position:absolute; top:24px; right:24px; width:48px; height:48px; font-size:1.8rem}
.trainer-lightbox-arrow{width:56px; height:56px; font:600 1.25rem "Montserrat"}
.trainer-lightbox-arrow.is-next{grid-column:3}

/* Контакты */
.contact-cards{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px}
.contact-card{display:flex; flex-direction:column; gap:8px; min-width:0; padding:26px; border:1px solid var(--line); border-radius:18px;
  background:var(--paper); transition:transform .3s var(--ease),box-shadow .3s,border-color .3s}
.contact-card:hover{transform:translateY(-3px); border-color:rgba(198,160,74,.35); box-shadow:var(--shadow-sm)}
.contact-card span{font-size:.78rem; color:var(--muted)}
.contact-card strong{overflow-wrap:anywhere; font:700 1.02rem "Montserrat"; color:var(--ink)}
.contact-actions{display:flex; align-items:center; justify-content:space-between; gap:24px; margin-top:30px}
.contact-socials{display:flex; flex-wrap:wrap; justify-content:flex-end; gap:10px}
.contact-socials a{padding:.62em 1em; border:1px solid var(--line); border-radius:100px; color:var(--ink); font:600 .8rem "Montserrat"}
.contact-socials a:hover{border-color:var(--gold-2); color:var(--gold-1)}
.contact-branches-section{background:var(--mist)}
.contact-branches{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px}
.contact-branch{padding:26px; border:1px solid var(--line); border-radius:18px; background:var(--white)}
.contact-branch h3{font-size:1.05rem}
.contact-branch p{margin:9px 0 18px; font-size:.86rem}
.contact-branch a{color:var(--gold-1); font:600 .8rem "Montserrat"}

@media(max-width:1000px){
  .price-branch,.document-branch{grid-template-columns:1fr; gap:20px}
  .price-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .contact-cards,.contact-branches{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
  .inner-hero .wrap{padding-top:38px; padding-bottom:48px}
  .inner-back{margin-bottom:26px}
  .inner-section{padding:58px 0}
  .direction-row,.trainer-page-card{grid-template-columns:1fr}
  .direction-row:nth-child(even) .direction-row-media{order:0}
  .direction-row-media,.direction-row-media img{min-height:260px}
  .direction-row-body,.trainer-page-body{padding:30px 26px}
  .trainer-page-photo,.trainer-page-photo img{min-height:360px}
  .trainer-single-hero{padding:38px 0 62px}
  .trainer-single-hero-grid{grid-template-columns:1fr; gap:34px}
  .trainer-single-main-photo{max-width:520px; margin:0 auto}
  .trainer-single-heading h1{font-size:clamp(2.2rem,11vw,3.6rem)}
  .trainer-single-content-section{padding:62px 0}
  .trainer-single-gallery-section{padding:52px 0}
  .trainer-single-gallery{grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px}
  .trainer-lightbox{grid-template-columns:46px minmax(0,1fr) 46px; gap:8px; padding:70px 10px 18px}
  .trainer-lightbox-close{top:12px; right:12px; width:44px; height:44px}
  .trainer-lightbox-arrow{width:44px; height:44px}
  .trainer-lightbox figure{max-height:calc(100vh - 88px)}
  .trainer-lightbox figure img{max-height:calc(100vh - 126px); border-radius:10px}
  .contact-actions{align-items:stretch; flex-direction:column}
  .contact-actions .btn{width:100%}
  .contact-socials{justify-content:center}
}
@media(max-width:560px){
  .price-cards,.contact-cards,.contact-branches{grid-template-columns:1fr}
  .document-group{padding:20px 16px}
  .document-card{grid-template-columns:42px minmax(0,1fr)}
  .document-type{width:42px; height:42px}
  .document-open{grid-column:2; justify-self:start}
  .trainer-single-gallery{grid-template-columns:1fr}
}

/* WPForms rendered inside the modal — match theme fields */
#modalForm .wpforms-container{margin:0}
#modalForm .wpforms-form .wpforms-field{padding:0 0 16px}
#modalForm .wpforms-form .wpforms-field-label{font-family:"Montserrat"; font-size:.76rem; font-weight:600; margin-bottom:7px; color:var(--ink)}
#modalForm .wpforms-form input[type=text],
#modalForm .wpforms-form input[type=email],
#modalForm .wpforms-form input[type=tel],
#modalForm .wpforms-form select,
#modalForm .wpforms-form textarea{width:100%; padding:.88em 1em; border-radius:13px; border:1.5px solid var(--line);
  background:var(--paper); font-family:"Manrope"; font-size:.92rem; color:var(--ink); transition:.25s}
#modalForm .wpforms-form input:focus,
#modalForm .wpforms-form select:focus,
#modalForm .wpforms-form textarea:focus{outline:0; border-color:var(--gold-2); background:#fff; box-shadow:0 0 0 4px rgba(198,160,74,.15)}
#modalForm .wpforms-form button[type=submit]{width:100%; margin-top:6px; background:var(--gold-grad); color:#3c2c08;
  border:0; border-radius:100px; font-family:"Montserrat"; font-weight:600; padding:1.05em 2.05em; font-size:.98rem; cursor:pointer}

/* keep sticky header below wp admin bar */
.admin-bar header{top:32px}
@media(max-width:782px){.admin-bar header{top:46px}}

/* ---------- Мобильная шапка: закреплена сверху ---------- */
/* overflow-x:clip убирает боковой сдвиг страницы (из-за него шапка «съезжала»),
   при этом, в отличие от overflow:hidden, не ломает position:sticky. */
html{overflow-x:clip}
body{overflow-x:clip}
[id]{scroll-margin-top:96px}

@media(max-width:1000px){
  /* жёстко прикрепляем шапку к верху экрана и двигаем вместе со скроллом */
  header{position:fixed; left:0; right:0; top:0}
  .nav{height:64px}
  header.scrolled .nav{height:64px}      /* без скачка высоты при прокрутке */
  .brand img,
  header.scrolled .brand img{height:32px}
  body{padding-top:64px}                  /* компенсируем высоту фиксированной шапки */
  .admin-bar header{top:0}                /* на мобильном админ-бар не фиксирован для посетителей */
  [id]{scroll-margin-top:76px}
}

/* ---------- Плавающая кнопка Max/Telegram + попап ---------- */
.fab{position:fixed; right:24px; bottom:24px; z-index:118; width:60px; height:60px; border-radius:50%;
  border:0; cursor:pointer; background:var(--gold-grad); color:#3c2c08;
  box-shadow:0 16px 32px -12px rgba(180,140,50,.75); display:flex; align-items:center; justify-content:center;
  transition:transform .3s var(--ease), box-shadow .3s}
.fab:hover{transform:translateY(-3px) scale(1.05); box-shadow:0 20px 38px -12px rgba(180,140,50,.8)}
.fab .fab-ic{position:absolute; display:flex; align-items:center; justify-content:center;
  animation:fab-swap 4s ease-in-out infinite}
.fab .fab-ic svg{width:27px; height:27px}
.fab .fab-ic-max{animation-delay:-2s}
@keyframes fab-swap{0%,44%{opacity:1; transform:scale(1) rotate(0)} 50%,94%{opacity:0; transform:scale(.5) rotate(-25deg)} 100%{opacity:1; transform:scale(1) rotate(0)}}
@media(prefers-reduced-motion:reduce){.fab .fab-ic{animation:none} .fab .fab-ic-max{opacity:0}}

.fab-back{position:fixed; inset:0; background:rgba(30,24,10,.42); z-index:117; opacity:0; visibility:hidden; transition:.3s}
.fab-back.open{opacity:1; visibility:visible}

.fab-pop{position:fixed; left:50%; top:50%; z-index:119; width:min(340px,90vw); background:var(--white);
  border:1px solid var(--line); border-radius:20px; box-shadow:var(--shadow); padding:28px 26px 24px;
  transform:translate(-50%,-50%) scale(.95); opacity:0; visibility:hidden; transform-origin:center;
  transition:opacity .35s var(--ease), transform .35s var(--ease), visibility .35s}
.fab-pop.open{opacity:1; visibility:visible; transform:translate(-50%,-50%) scale(1)}
.fab-pop.has-two-qr{width:min(540px,92vw)}
.fab-pop .fab-x{position:absolute; top:12px; right:12px; width:32px; height:32px; border:1.5px solid var(--line);
  background:var(--white); border-radius:9px; cursor:pointer; font-size:.95rem; color:var(--ink-2); transition:.25s}
.fab-pop .fab-x:hover{border-color:var(--gold-2); color:var(--gold-1)}
.fab-pop-head b{font-family:"Montserrat"; font-weight:700; color:var(--ink); font-size:1.05rem; display:block; margin:0 26px 4px 0}
.fab-pop-head p{margin:0 0 16px; font-size:.85rem}
.fab-qrs{display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,184px)); justify-content:center; gap:14px; margin-bottom:16px}
.fab-qr{display:flex; justify-content:center}
.fab-qr img{width:184px; height:184px; object-fit:contain; border:1px solid var(--line); border-radius:14px; padding:8px; background:#fff}
.fab-links{display:flex; flex-direction:column; gap:10px}
.fab-link{display:flex; align-items:center; justify-content:center; gap:.5em; font-family:"Montserrat"; font-weight:600;
  font-size:.9rem; padding:.82em 1em; border-radius:12px; transition:transform .25s, box-shadow .25s}
.fab-link-max{background:var(--gold-grad); color:#3c2c08}
.fab-link-tg{background:var(--ink); color:#fff}
.fab-link:hover{transform:translateY(-2px)}
@media(max-width:600px){.fab{right:16px; bottom:16px}}

/* Иконки соцсетей в подвале (SVG-логотипы) */
.socials a svg{width:19px; height:19px; display:block}

/* ---------- Направления: карточки с фото ---------- */
.direction-slider{position:relative}
.direction-slider-viewport{overflow:hidden; padding:8px 2px 30px; margin:-8px -2px -30px}
.direction-slider-track{display:flex; gap:22px; overflow-x:auto; scroll-snap-type:x mandatory;
  scrollbar-width:none; padding-bottom:30px; margin-bottom:-30px; cursor:grab}
.direction-slider-track::-webkit-scrollbar{display:none}
.direction-slider-track.is-dragging{cursor:grabbing; scroll-snap-type:none; user-select:none}
.direction-slider-track.is-dragging a{pointer-events:none}
.direction-slide{flex:0 0 calc((100% - 44px)/3); min-width:0; scroll-snap-align:start}
.direction-slider-controls{display:flex; justify-content:center; gap:10px; margin-top:30px}
.direction-slider-btn{width:46px; height:46px; border:1.5px solid var(--line); border-radius:50%; background:var(--white);
  color:var(--ink); font:600 1.2rem "Montserrat"; cursor:pointer; transition:transform .25s,border-color .25s,color .25s,opacity .25s}
.direction-slider-btn:hover:not(:disabled){transform:translateY(-2px); border-color:var(--gold-2); color:var(--gold-1)}
.direction-slider-btn:disabled{opacity:.32; cursor:default}
.card-dir{padding:0; overflow:hidden}
.card-dir .card-img{position:relative; aspect-ratio:4/3; overflow:hidden;
  background:linear-gradient(135deg,var(--gold-soft),#fff); display:flex; align-items:center; justify-content:center}
.card-dir .card-img img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s var(--ease)}
.card-dir:hover .card-img img{transform:scale(1.05)}
.card-dir .card-img .idx{font-family:"Montserrat"; font-weight:800; font-size:2rem; color:var(--gold-2); opacity:.55}
.card-dir .card-body{padding:20px 24px 24px}
.card-dir h3{font-size:1.14rem; margin:0 0 6px}
.card-dir .sub{margin:0 0 16px}
.card-dir .more{position:relative; z-index:2; cursor:pointer}

/* ---------- Живые отзывы Яндекс Карт: три карточки в одном блоке ---------- */
.yandex-reviews-shell{width:min(100%,760px); min-width:300px; margin:0 auto; overflow:hidden;
  border:1px solid var(--line); border-radius:24px; background:var(--white); box-shadow:var(--shadow)}
.yandex-reviews-viewport{position:relative; height:620px; overflow:hidden; background:var(--white)}
.yandex-reviews-panel{position:absolute; inset:0; visibility:hidden; opacity:0; pointer-events:none; transition:opacity .25s ease}
.yandex-reviews-panel.is-active{visibility:visible; opacity:1; pointer-events:auto}
.yandex-reviews-shell iframe{display:block; width:100%; height:100%; border:0}
.yandex-reviews-footer{display:flex; min-height:68px; padding:10px 16px; align-items:center; justify-content:space-between; gap:16px;
  border-top:1px solid var(--line); background:var(--white)}
.yandex-reviews-nav{display:flex; align-items:center; gap:10px; flex:none}
.yandex-reviews-nav button{display:flex; width:38px; height:38px; padding:0; align-items:center; justify-content:center; border:1px solid var(--line);
  border-radius:50%; color:var(--ink); background:var(--white); cursor:pointer; transition:border-color .2s,color .2s}
.yandex-reviews-nav button:hover{border-color:var(--gold-2); color:var(--gold-1)}
.yandex-reviews-nav span{min-width:40px; color:var(--muted); text-align:center; font:600 .72rem "Montserrat"}
.yandex-reviews-all{display:inline-flex; align-items:center; gap:9px; color:var(--ink); font:700 .76rem "Montserrat"}
.yandex-reviews-all:hover{color:var(--gold-1)}
.reviews-more{margin-top:40px; text-align:center}
.ya-badge{display:inline-flex; align-items:center; justify-content:center; width:22px; height:22px;
  border-radius:5px; background:#fc3f1d; color:#fff; font-family:"Montserrat"; font-weight:800; font-size:.82rem; line-height:1}

/* ---------- Последние новости на главной ---------- */
.home-news{color:var(--white); background:var(--ink)}
.home-news .sec-head{margin-bottom:0}
.home-news .sec-head h2{color:var(--white)}
.home-news .eyebrow{color:var(--gold-2)}
.home-news-head{display:flex; align-items:flex-end; justify-content:space-between; gap:34px; margin-bottom:58px}
.home-news-head>.btn{flex:none; margin-bottom:7px; border-color:rgba(255,255,255,.42); color:var(--white); background:transparent}
.home-news-head>.btn:hover{border-color:var(--gold-2); color:var(--gold-2)}
.home-news-head>.btn span{display:inline-block; margin-left:6px; transition:transform .25s var(--ease)}
.home-news-head>.btn:hover span{transform:translateX(4px)}
.home-news-grid{display:grid; grid-template-columns:1.2fr .8fr .8fr; gap:16px}
.home-news-card{display:flex; min-height:430px; overflow:hidden; flex-direction:column; border:1px solid rgba(255,255,255,.16);
  border-radius:24px; background:rgba(255,255,255,.045); transition:transform .35s var(--ease),border-color .35s var(--ease)}
.home-news-card:hover{transform:translateY(-4px); border-color:rgba(198,160,74,.6)}
.home-news-card:nth-child(2){border-color:var(--gold-1); color:#2d220d; background:var(--gold-grad)}
.home-news-media{display:block; height:215px; overflow:hidden}
.home-news-media img{width:100%; height:100%; object-fit:cover; transition:transform .5s var(--ease)}
.home-news-card:hover .home-news-media img{transform:scale(1.045)}
.home-news-body{display:flex; height:100%; padding:28px; flex:1; flex-direction:column}
.home-news-body time{display:block; margin-bottom:22px; color:var(--gold-2); font:700 .72rem "Montserrat"; letter-spacing:.1em}
.home-news-card:nth-child(2) .home-news-body time{color:#60440d}
.home-news-body h3{margin:0 0 13px; color:inherit; font-size:clamp(1.3rem,2.2vw,1.9rem); line-height:1.2}
.home-news-body p{margin:0 0 26px; color:rgba(255,255,255,.6); font-size:.88rem; line-height:1.6}
.home-news-card:nth-child(2) .home-news-body p{color:rgba(45,34,13,.7)}
.home-news-more{display:inline-flex; align-items:center; gap:7px; margin-top:auto; color:var(--gold-2); font:700 .78rem "Montserrat"}
.home-news-card:nth-child(2) .home-news-more{color:#49340b}
.home-news-more span{transition:transform .25s var(--ease)}
.home-news-more:hover span{transform:translateX(4px)}
.home-news-empty{padding:36px; border:1px solid rgba(255,255,255,.16); border-radius:24px; background:rgba(255,255,255,.045)}
.home-news-empty p{margin:0; color:rgba(255,255,255,.65)}

/* Version 2: restrained black, white and neutral palette. Gold stays only in small brand accents. */
.prim-front-view-2 .hero{background:var(--white)}
.prim-front-view-2 .hero-frame{background:#f3f3f1}
.prim-front-view-2 .hero .gt{background:none; color:var(--ink); -webkit-text-fill-color:currentColor}
.prim-front-view-2 .stats{border-bottom:0; background:#f4f4f2}
.prim-front-view-2 #directions{background:var(--white)}
.prim-front-view-2 .card-dir{border-color:transparent; box-shadow:0 16px 44px rgba(20,19,16,.06)}
.prim-front-view-2 .card-dir::after{display:none}
.prim-front-view-2 .card-dir .card-img{background:#f1f1ef}
.prim-front-view-2 .branches-mosaic .card:hover{color:var(--ink); background:var(--white)}
.prim-front-view-2 .adv{background:#f4f4f2}
.prim-front-view-2 .adv-tile{border:0; background:var(--white); box-shadow:none}
.prim-front-view-2 .adv-tile:nth-child(1){color:var(--white); background:var(--ink)}
.prim-front-view-2 .adv-tile:nth-child(4){color:var(--ink-2); background:var(--white)}
.prim-front-view-2 .adv-tile:nth-child(4) .adv-tile-label{color:var(--gold-1)}
.prim-front-view-2 .adv-tile:nth-child(4) .adv-tile-mark{color:rgba(39,37,48,.07)}
.prim-front-view-2 #teachers{background:var(--white)!important}
.prim-front-view-2 .combined-reviews{background:#f4f4f2}
.prim-front-view-2 .combined-reviews-grid .children-video-shell,
.prim-front-view-2 .combined-reviews-grid .yandex-reviews-shell{border:0; box-shadow:none}
.prim-front-view-2 .children-video-placeholder{background:var(--white)}
.prim-front-view-2 .children-video-placeholder::before{border-color:rgba(39,37,48,.08); box-shadow:0 0 0 54px rgba(39,37,48,.035),0 0 0 108px rgba(39,37,48,.02)}
.prim-front-view-2 .children-video-mark{color:var(--gold-2); background:var(--ink); box-shadow:none}
.prim-front-view-2 .home-news-card{border:0; background:rgba(255,255,255,.055)}
.prim-front-view-2 .home-news-card:hover{border-color:transparent; background:rgba(255,255,255,.09)}
.prim-front-view-2 .home-news-card:nth-child(2){border:0; color:var(--white); background:rgba(255,255,255,.055)}
.prim-front-view-2 .home-news-card:nth-child(2) .home-news-body time,
.prim-front-view-2 .home-news-card:nth-child(2) .home-news-more{color:var(--gold-2)}
.prim-front-view-2 .home-news-card:nth-child(2) .home-news-body p{color:rgba(255,255,255,.6)}
.prim-front-view-2 .cta{background:var(--white)}
.prim-front-view-2 .cta .wrap{border-top:1px solid var(--line)}

/* Значок «хорошее место» на мобильных чуть меньше */
@media(max-width:560px){
  .brand-badges{gap:2px}
  .brand-badge img, header.scrolled .brand-badge img{height:48px}
  .brand img{height:40px}
  .nav-cta>.btn{display:none}
  .yandex-reviews-viewport{height:560px}
  .yandex-reviews-footer{align-items:stretch; flex-direction:column}
  .yandex-reviews-nav{justify-content:center}
  .yandex-reviews-all{justify-content:center; padding-bottom:6px}
  .fab-pop.has-two-qr{padding-inline:18px}
  .fab-pop.has-two-qr .fab-qrs{grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px}
  .fab-pop.has-two-qr .fab-qr img{width:100%; height:auto; aspect-ratio:1}
}

@media(max-width:900px){.direction-slide{flex-basis:calc((100% - 22px)/2)}}
@media(max-width:600px){.direction-slide{flex-basis:88%}}

@media(max-width:900px){
  .prim-front-view-1 #branches .card{width:calc((100% - 22px)/2)}
  .prim-front-view-2 .stats .wrap{grid-template-columns:1fr 1fr; gap:16px}
  .prim-front-view-2 .stat:nth-child(3){grid-column:span 2}
  .trainers-mosaic .trainer{min-height:345px; grid-template-columns:72px 210px minmax(0,1fr); padding-right:16px}
  .trainers-mosaic .trainer::before{padding-left:20px}
  .trainers-mosaic .trainer .body{padding:24px}
  .combined-reviews-grid{grid-template-columns:1fr}
  .combined-reviews-grid .children-video-shell{height:auto; aspect-ratio:16/9}
  .home-news-grid{grid-template-columns:1fr 1fr}
  .home-news-card:first-child{grid-column:span 2}
}
@media(max-width:600px){
  .prim-front-view-1 #branches .card{width:100%; min-width:0}
  .prim-front-view-2 .sec-head h2{font-size:clamp(2.55rem,13vw,4rem)}
  .prim-front-view-2 .stats{padding-bottom:64px}
  .prim-front-view-2 .stats .wrap{grid-template-columns:1fr; gap:12px}
  .prim-front-view-2 .stat,.prim-front-view-2 .stat:nth-child(3){grid-column:auto; min-height:160px; padding:24px}
  .branches-mosaic .sec-head{grid-template-columns:1fr; gap:0}
  .branches-mosaic .sec-head .eyebrow,.branches-mosaic .sec-head h2,.branches-mosaic .sec-head p{grid-column:1}
  .branches-mosaic .sec-head p{margin-top:20px}
  .branches-mosaic .grid4{grid-template-columns:1fr}
  .branches-mosaic .card{min-height:225px}
  .branches-mosaic .card .idx{margin-bottom:48px}
  .trainers-mosaic .trainer{grid-template-columns:54px minmax(0,1fr); min-height:0; padding:14px 14px 20px 0}
  .trainers-mosaic .trainer::before{grid-column:1; grid-row:1/span 2; padding:18px 0 0 16px}
  .trainers-mosaic .trainer .ph{grid-column:2; grid-row:1; width:100%; height:auto; min-height:0; aspect-ratio:768/1086; border-radius:18px}
  .trainers-mosaic .trainer .body{grid-column:2; grid-row:2; padding:22px 6px 4px}
  .combined-reviews-grid .yandex-reviews-shell{height:560px}
  .combined-reviews-grid .yandex-reviews-viewport{height:calc(100% - 116px)}
  .home-news-head{align-items:flex-start; flex-direction:column; margin-bottom:38px}
  .home-news-head>.btn{margin-bottom:0}
  .home-news-grid{grid-template-columns:1fr}
  .home-news-card:first-child{grid-column:auto}
  .home-news-card{min-height:340px}
  .home-news-media{height:200px}
}
