/* Общее для страниц агента D: расписание и цены, акции, отзывы, вечеринки.
   site.css не правим, здесь только то, чего на главной нет. */

/* первый экран внутренней страницы */
.page-hero{padding-block:120px clamp(40px,6vw,72px);isolation:isolate;overflow:hidden;
  background:radial-gradient(55% 70% at 88% 0%,rgba(143,99,255,.26),transparent 65%),radial-gradient(45% 60% at 0% 100%,rgba(255,63,142,.16),transparent 65%)}
.page-hero .crumbs{margin-bottom:22px}
.page-hero h1{font:800 clamp(30px,4.2vw,56px)/1.04 var(--display);letter-spacing:-.035em;margin-top:18px;text-wrap:balance}
.page-hero h1 em{font-style:normal;background:linear-gradient(90deg,var(--neon) 0%,var(--amber) 70%);-webkit-background-clip:text;background-clip:text;color:transparent}
.page-hero .hero-cta{margin-top:26px}
.ph-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(24px,4vw,64px);align-items:center}
.ph-grid>*{min-width:0}
.ph-media{border-radius:var(--r-l);overflow:hidden;border:1px solid var(--line-2);aspect-ratio:4/3;background:var(--bg-3);box-shadow:0 30px 80px rgba(0,0,0,.45)}
.ph-media img{width:100%;height:100%;object-fit:cover}
@media(max-width:900px){.ph-grid{grid-template-columns:1fr}}
@media(max-width:560px){.page-hero .hero-cta .btn{width:100%;white-space:normal;text-align:center}}

/* строка цифр под заголовком */
.facts{display:flex;gap:clamp(16px,2.4vw,36px);flex-wrap:wrap;margin-top:30px;padding-top:22px;border-top:1px solid var(--line)}
.facts div{display:flex;flex-direction:column;gap:2px}
.facts b{font:700 clamp(18px,1.8vw,26px)/1.1 var(--display);white-space:nowrap}
.facts span{font-size:13px;color:var(--muted)}
.facts .stars{color:var(--amber);letter-spacing:2px;font-size:13px}
@media(max-width:560px){.facts{display:grid;grid-template-columns:1fr 1fr;gap:18px 12px}}

/* заметка для клиента: чем макет отличается от сайта */
.mock-note{display:flex;gap:12px;align-items:flex-start;margin-top:18px;padding:14px 18px;border-radius:var(--r-s);border:1px dashed rgba(143,99,255,.6);background:rgba(143,99,255,.08);font-size:13.5px;color:var(--muted)}
.mock-note b{color:#c3adff;white-space:nowrap}
.mock-note code{font-size:12.5px;color:var(--ink)}

/* карточки с фактами */
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.card{border-radius:var(--r-m);border:1px solid var(--line);background:var(--bg-2);padding:22px;display:flex;flex-direction:column;gap:8px}
.card small{font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--faint)}
.card b{font:700 clamp(18px,1.7vw,22px)/1.2 var(--display)}
.card p{font-size:14.5px;color:var(--muted)}
.card a.more{margin-top:auto;padding-top:6px;color:var(--amber);font-weight:700;font-size:14px}
@media(max-width:1020px){.cards{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.cards{grid-template-columns:1fr}}

/* пунктирная карточка «уточняется» */
.card.tbd,.offer.tbd{border-style:dashed;border-color:var(--line-2);background:transparent}

/* список «что вас ждет» */
.perks{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.perks li{border-radius:var(--r-m);border:1px solid var(--line);background:var(--bg-2);padding:22px;font-size:15px;color:var(--muted)}
.perks li b{display:block;color:var(--ink);font:700 17px/1.25 var(--display);margin-bottom:8px}
@media(max-width:900px){.perks{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.perks{grid-template-columns:1fr}}

/* чипы-ссылки на направления */
.chips{display:flex;gap:8px;flex-wrap:wrap}
.chip{display:inline-flex;align-items:center;gap:8px;padding:9px 16px;border-radius:999px;border:1px solid var(--line-2);font-weight:600;font-size:14px;color:var(--muted);transition:.18s}
.chip:hover{color:var(--ink);border-color:var(--amber)}

/* ---------- расписание: панель фильтров ---------- */
.tt-bar{display:grid;gap:14px;padding:18px;border-radius:var(--r-m);border:1px solid var(--line);background:var(--bg-2);margin-bottom:18px;position:sticky;top:72px;z-index:5;box-shadow:0 18px 40px rgba(11,7,17,.6)}
.tt-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.tt-sel{position:relative;flex:1 1 180px;min-width:0}
.tt-sel span{display:block;font-size:12px;color:var(--faint);margin:0 0 5px 4px}
.tt-sel select{width:100%;height:46px;border-radius:12px;border:1px solid var(--line-2);background:rgba(255,255,255,.05) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23f8f2ec' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 12px center/16px;color:var(--ink);padding:0 36px 0 14px;font:500 15px var(--body);appearance:none;cursor:pointer}
.tt-sel select:focus{outline:0;border-color:var(--amber)}
.tt-sel select option{background:#1a1128}
.tt-sel select.on{border-color:rgba(255,178,77,.7);background-color:rgba(255,178,77,.08)}
.tt-toggles{display:flex;gap:8px;flex-wrap:wrap;align-self:end}
.tt-toggles .tab{height:46px}
.tt-meta{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;font-size:14px;color:var(--muted)}
.tt-meta b{color:var(--ink)}
.tt-reset{color:var(--amber);font-weight:700;font-size:14px}
.tt-reset[hidden]{display:none}
.view{display:inline-flex;padding:4px;border-radius:999px;border:1px solid var(--line-2);gap:2px}
.view button{padding:7px 14px;border-radius:999px;font-weight:600;font-size:13.5px;color:var(--muted)}
.view button[aria-pressed="true"]{background:var(--ink);color:#120b1c}
@media(max-width:1099px){.view{display:none}}
@media(max-width:720px){.tt-bar{position:static;padding:14px}.tt-sel{flex-basis:100%}}

/* по дням: у дня число занятий под фильтром */
.day.none{opacity:.45}
.row-dir{font-size:13px;color:var(--amber);font-weight:600;margin-top:4px;display:inline-block;margin-left:6px}
.row-dir:hover{text-decoration:underline}

/* неделя целиком */
.week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px}
.week[hidden],#dayView[hidden]{display:none}
/* До первого прогона скрипта вид выбирает ширина, как и сам скрипт (1100 px): неделя
   впечатана в HTML ради поисковиков, и без этого она появлялась бы и исчезала,
   сдвигая страницу (CLS 0,18 на замере 25.09). */
@media(max-width:1099px){#week:not([data-view]){display:none}}
@media(min-width:1100px){#dayView:not([data-view]){display:none}}
.wcol{display:flex;flex-direction:column;gap:8px;min-width:0}
.whead{position:sticky;top:0;padding:10px 12px;border-radius:12px;background:var(--bg-3);border:1px solid var(--line);font:700 14px/1.2 var(--display);display:flex;justify-content:space-between;align-items:baseline}
.whead small{font:500 12px var(--body);color:var(--faint)}
.whead.today{background:linear-gradient(180deg,#ffc266,var(--amber-2));color:#1b0f05;border-color:transparent}
.whead.today small{color:rgba(27,15,5,.7)}
.wcard{display:block;text-align:left;padding:11px 12px;border-radius:12px;border:1px solid var(--line);background:var(--bg-2);border-left:3px solid var(--neon);transition:.15s;font-size:13px;line-height:1.35}
.wcard.f{border-left-color:var(--violet)}
.wcard:hover{border-color:rgba(255,178,77,.6);border-left-color:var(--amber);background:rgba(255,178,77,.06);transform:translateY(-1px)}
.wcard .t{font:700 13px/1 var(--display);color:var(--ink)}
.wcard b{display:block;font-size:13.5px;margin:6px 0 4px;word-break:break-word}
.wcard .lvl{margin-top:0;font-size:11px;padding:2px 8px}
.wcard .who{display:block;color:var(--faint);font-size:12px;margin-top:6px}
.wcard .go{display:none}
.wcard:hover .t,.wcard:focus-visible .t{color:var(--amber)}
.wempty{padding:14px 10px;border-radius:12px;border:1px dashed var(--line);font-size:12.5px;color:var(--faint);text-align:center}
.legend{display:flex;gap:18px;flex-wrap:wrap;font-size:13px;color:var(--muted);margin-top:14px}
.legend i{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--neon);margin-right:7px;vertical-align:0}
.legend i.f{background:var(--violet)}

/* ---------- цены ---------- */
.price .old{color:var(--faint);font-size:14px;text-decoration:line-through;text-decoration-color:rgba(255,63,142,.7)}
.price ul{list-style:none;padding:0;margin:4px 0 18px;display:grid;gap:6px;font-size:14px;color:var(--muted)}
.price li::before{content:"·";color:var(--amber);font-weight:800;margin-right:8px}
.mini small{display:block;color:var(--faint);font-size:12.5px;margin-top:3px}
.promo{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-top:16px;padding:20px 24px;border-radius:var(--r-m);background:linear-gradient(135deg,#3a0f3f 0%,#5a1747 55%,#a83a2c 130%);border:1px solid rgba(255,63,142,.4)}
.promo b{font:700 clamp(17px,1.8vw,21px)/1.25 var(--display)}
.promo p{font-size:14.5px;color:rgba(248,242,236,.8);margin-top:4px}

/* индивидуальные: прайс по преподавателям */
.indiv{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(24px,4vw,56px);align-items:start}
.plist{border:1px solid var(--line);border-radius:var(--r-m);background:var(--bg-2);overflow:hidden}
.prow{display:grid;grid-template-columns:1fr auto;gap:4px 16px;align-items:center;padding:14px 20px;border-top:1px solid var(--line);transition:background .15s}
.prow:first-child{border-top:0}
.prow:hover{background:rgba(255,255,255,.035)}
.prow b{font-size:15.5px}
.prow span{font-size:13px;color:var(--muted);grid-column:1}
.prow em{font:700 16px/1 var(--display);font-style:normal;white-space:nowrap;grid-row:1/span 2;grid-column:2;color:var(--amber)}
@media(max-width:900px){.indiv{grid-template-columns:1fr}}

/* ---------- отзывы ---------- */
.rv-grid{columns:3 320px;column-gap:16px}
.rv-grid .review{break-inside:avoid;margin:0 0 16px}
.review .src{font-size:12px;color:var(--faint);margin-left:auto}
.widget{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,560px);gap:clamp(24px,4vw,56px);align-items:start}
.widget-frame{border-radius:var(--r-l);overflow:hidden;border:1px solid var(--line-2);background:#fff;height:800px}
.widget-frame iframe{width:100%;height:100%;border:0;display:block}
@media(max-width:900px){.widget{grid-template-columns:1fr}.widget-frame{height:640px}}

/* ---------- вечеринка: залы по этажам ---------- */
.floors{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.floor{border-radius:var(--r-m);padding:24px;border:1px solid var(--line);background:linear-gradient(160deg,#2a1436,#1a1128 70%)}
.floor small{font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--amber)}
.floor b{display:block;font:700 20px/1.25 var(--display);margin-top:10px}
@media(max-width:800px){.floors{grid-template-columns:1fr}}
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,64px);align-items:center}
.split>*{min-width:0}
.split-img{border-radius:var(--r-l);overflow:hidden;border:1px solid var(--line);aspect-ratio:4/3}
.split-img img{width:100%;height:100%;object-fit:cover}
@media(max-width:900px){.split{grid-template-columns:1fr}}
.prose p{color:var(--muted);font-size:16px;margin-top:14px;max-width:41.2em}
.prose p b{color:var(--ink)}
/* max-width здесь в em, а не в ch: ch зависит от запасного шрифта (см. site.css, Onest Fb) */
