/* ===========================================================================
   Первый экран и разделы страниц
   =========================================================================== */

/* --- герой главной: смещённая композиция, фото несёт структуру ---------- */
.hero {
  position: relative;
  background: var(--dark);
  color: var(--on-dark);
  isolation: isolate;
  overflow: hidden;
}
.hero__media { position: absolute; inset: 0; z-index: -2; }
.hero__media img {
  width: 100%; height: 100%; object-fit: cover;
  object-position: 52% 32%;
  filter: saturate(.78) contrast(1.04);
}
.hero::after {
  content: ''; position: absolute; inset: 0; z-index: -1;
  background:
    linear-gradient(96deg, rgba(11,10,9,.94) 0%, rgba(11,10,9,.74) 42%, rgba(11,10,9,.34) 78%),
    /* Столбик «Направления / Группы / Оценка» стоит справа внизу, где боковая
       плёнка самая слабая: подпись падала до 2,99:1. Нижняя плёнка доведена
       до .86 и поднята выше. */
    linear-gradient(0deg, rgba(11,10,9,.86) 0%, rgba(11,10,9,.24) 38%, rgba(11,10,9,0) 58%);
}
/* На узком экране боковая плёнка не работает: колонки нет, текст идёт
   во всю ширину. Подзаголовок стоит выше нижней плёнки и падал до 3,07:1. */
@media (max-width: 53.6875em) {
  .hero::after {
    background: linear-gradient(0deg,
      rgba(11,10,9,.92) 0%, rgba(11,10,9,.84) 46%,
      rgba(11,10,9,.62) 72%, rgba(11,10,9,.42) 100%);
  }
}
.hero__inner {
  display: grid;
  gap: var(--s-6);
  padding-block: clamp(3.5rem, 12vh, 8rem) clamp(2.5rem, 7vh, 5rem);
  min-height: min(88svh, 780px);
  align-content: end;
}
@media (min-width: 62.5em) {
  .hero__inner { grid-template-columns: 63fr 37fr; align-items: end; gap: var(--s-8); }
}
/* Заголовок набран одним цветом целиком: подкрашивать в нём одно
   словосочетание — самый частый признак сгенерированной страницы. */
.hero h1 { max-width: 15ch; }
.hero h1 span { display: block; }
.hero__sub {
  font-size: clamp(1rem, 1.7vw, var(--t-md));
  line-height: 1.45;
  /* --on-dark-2 (#9BA3AB) держал 4,5:1 только на ровном тёмном. Поверх
     фотографии первого экрана в худшей точке выходило 3,97 на 390 px:
     подзаголовок стоит выше нижней плёнки. Взят тон второго уровня
     для тёмных поверхностей, он на полторы ступени светлее. */
  color: var(--on-dark-fg-2);
  max-width: 46ch;
  margin-top: var(--s-5);
}
/* Группа кнопок — общая кромка. Раньше это был flex-wrap: кнопки вставали
   по своему тексту, и при переносе получалась ступенька (317 против 296 на
   телефоне, 317 против 186 в блоке заявки). Колонки равны по построению.
   Число колонок задано явно, а не через auto-fit: auto-fit считает минимум
   от содержимого и на 360 px уводил страницу вбок на 13 px. */
.hero__actions {
  display: grid; gap: var(--s-3);
  grid-template-columns: 1fr;
  margin-top: var(--s-6);
}
@media (min-width: 34em) {
  .hero__actions { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 38rem; }
}
.hero__aside {
  display: grid; gap: var(--s-4);
  align-content: end;
  border-left: 1px solid var(--line-dark);
  padding-left: var(--s-5);
}
@media (max-width: 62.4375em) {
  .hero__aside { border-left: 0; padding-left: 0; border-top: 1px solid var(--line-dark);
    padding-top: var(--s-5); }
}
.hero__aside dl { margin: 0; display: grid; gap: var(--s-4); }
.hero__aside dt { font-size: var(--t-xs); color: var(--on-dark-fg-2); }
.hero__aside dd {
  margin: 2px 0 0;
  font-family: var(--display); font-weight: 700; text-transform: uppercase;
  font-size: var(--t-md); line-height: 1.06; letter-spacing: -0.008em;
}

/* --- шапка внутренней страницы ------------------------------------------
   До 09.09.2026 здесь был только воздух: 72 px пустоты под шапкой сайта,
   крошки, ещё 40 px — и заголовок. Ни фотографии, ни одного факта до первого
   прокрута, а высота у каждой страницы своя, потому что её задавала длина
   лида. Теперь шапка страницы — сам по себе экран: фотография зала во всю
   ширину, заголовок поверх и до трёх чисел внизу. Светлый вариант остался
   для документов и 404, где фотографии неуместны. */
.pagehead { padding-block: var(--s-6) clamp(1.5rem, 3vw, 2.5rem); }
.pagehead h1 { font-size: clamp(2.25rem, 6vw, 4.5rem); max-width: 18ch; }
.pagehead .lede { margin-top: var(--s-5); max-width: 64ch; }

.pagehead--media {
  position: relative; isolation: isolate;
  background: var(--dark);
  overflow: hidden;
  display: grid; align-content: end;
  /* Высота задана снизу одним значением на все страницы: раньше «Тренеры»
     и «Расписание» начинались на разной высоте, и переход между ними прыгал. */
  min-height: clamp(23rem, 33vw, 31rem);
  padding-block: clamp(2rem, 4vw, 3.25rem) clamp(2.25rem, 4.5vw, 3.5rem);
}
.pagehead__media { position: absolute; inset: 0; z-index: -2; }
.pagehead__media picture { display: block; height: 100%; }
.pagehead__media img {
  width: 100%; height: 100%; object-fit: cover; object-position: center 40%;
  filter: saturate(.76) contrast(1.03) brightness(.88);
}
/* Затемнение идёт слева направо: текст лежит в левой трети, фотография
   остаётся читаемой справа. На узком экране колонки нет, поэтому и
   затемнение разворачивается сверху вниз. */
.pagehead--media::after {
  content: ''; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(96deg,
    rgba(9, 10, 12, .95) 0%, rgba(9, 10, 12, .93) 58%,
    rgba(9, 10, 12, .62) 80%, rgba(9, 10, 12, .38) 100%);
}
@media (max-width: 53.6875em) {
  .pagehead--media::after {
    background: linear-gradient(178deg,
      rgba(9, 10, 12, .74) 0%, rgba(9, 10, 12, .90) 52%, rgba(9, 10, 12, .95) 100%);
  }
}
.pagehead--media .lede { color: var(--on-dark-fg-2); }
.pagehead--media .crumbs li + li::before { color: var(--on-dark-fg-3); }
.pagehead__actions {
  margin-top: clamp(1.5rem, 3vw, 2rem);
  display: flex; gap: var(--s-3); flex-wrap: wrap;
}
/* Кнопка поверх фотографии: тонкая кромка на неоднородном фоне пропадает,
   поэтому призрачная кнопка в шапке получает заметный контур и подложку. */
.pagehead--media .btn--ghost {
  border-color: var(--fg-3);
  --btn-bg: rgb(9 10 12 / .38);
}
.pagehead--media .btn--ghost:hover { --btn-bg: rgb(9 10 12 / .62); border-color: var(--fg); }
.page-kids .pagehead--media .btn--ghost { --btn-bg: rgb(var(--kids-bg-rgb) / .72); }
.page-kids .pagehead--media .btn--ghost:hover { --btn-bg: var(--kids-bg-3); }

/* Три числа внизу шапки: первый экран перестаёт быть только заголовком.
   Значения берутся из data.py и подтверждённых источников — выдуманных
   цифр здесь нет. */
.pagehead__facts {
  margin-top: clamp(1.75rem, 4vw, 2.75rem);
  padding-top: var(--s-5);
  border-top: 1px solid var(--line-dark);
  display: grid; gap: var(--s-5) clamp(1.5rem, 4vw, 3.5rem);
  grid-template-columns: 1fr;
}
@media (min-width: 34em) {
  .pagehead__facts { grid-template-columns: repeat(3, minmax(0, 1fr)); max-width: 54rem; }
}
.pagehead__fact b {
  display: block;
  font-family: var(--display); font-weight: 700; text-transform: uppercase;
  font-size: clamp(1.55rem, 3vw, 2.25rem); line-height: 1;
  letter-spacing: -0.012em; font-variant-numeric: tabular-nums;
  color: var(--on-dark);
}
.pagehead__fact--text b {
  font-family: var(--text); font-weight: 600; text-transform: none;
  font-size: var(--t-base); line-height: 1.28; letter-spacing: 0;
  max-width: 24ch;
}
.pagehead__fact span {
  display: block; margin-top: .45rem;
  font-size: var(--t-xs); line-height: 1.35;
  color: var(--on-dark-fg-3); max-width: 26ch;
}

/* Крошки читались как выцветшая надпись: 12,5 px самым светлым из текстовых
   тонов, да ещё поверх фотографии. Формально контраст проходил, на глаз
   строка выглядела отключённой. Кегль поднят до основного мелкого, тон —
   до второго уровня, разделитель перестал быть линией интерфейса.
   Текущая страница набрана в полный тон: у пути должен быть виден конец. */
.crumbs {
  font-size: var(--t-sm); color: var(--fg-2);
  margin-bottom: var(--s-5);
}
/* baseline обязателен: ссылка в крошках — блок с padding-block 4px (зона
   нажатия), а текущая страница — голый текст. При выравнивании по верху
   «Главная» опускалась на 4px ниже соседа. Ловит build/baseline.mjs. */
.crumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--s-2); }
.crumbs li + li::before { content: '/'; margin-right: var(--s-2); color: var(--fg-3); }
.crumbs li:last-child { color: var(--fg); font-weight: 600; }
.crumbs a { text-decoration: none; }
.crumbs a:hover { text-decoration: underline; }

/* --- полоса с фотографией во всю ширину, текст поверх ------------------- */
.strip { position: relative; isolation: isolate; color: var(--on-dark);
  background: var(--dark); overflow: hidden; }
.strip img {
  position: absolute; inset: 0; z-index: -2;
  width: 100%; height: 100%; object-fit: cover; filter: saturate(.8);
}
.strip::after {
  content: ''; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(92deg, rgba(11,10,9,.9), rgba(11,10,9,.45) 70%, rgba(11,10,9,.2));
}
/* Та же беда, что и в первом экране: боковая плёнка на узком экране
   не работает — колонки нет, текст идёт во всю ширину. Подпись под
   цитатой падала до 3,51:1. */
@media (max-width: 53.6875em) {
  .strip::after {
    background: linear-gradient(178deg,
      rgba(11,10,9,.72) 0%, rgba(11,10,9,.86) 46%, rgba(11,10,9,.93) 100%);
  }
}
.strip__inner { padding-block: clamp(4rem, 10vw, 8rem); }

/* --- блок основателя ------------------------------------------------------
   Портрет тянется на высоту текстовой колонки: иначе под ним остаётся
   пустота в треть экрана. */
.founder__img { position: relative; height: 100%; display: flex; flex-direction: column; }
.founder__img picture { flex: 1 1 auto; display: block; min-height: 0; }
.founder__img img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 53.6875em) {
  .founder__img img { height: auto; aspect-ratio: 4 / 5; }
}
/* Послужной список чемпиона, а не таблица параметров.

   Тёмную плашку пробовали и убрали: сайт светлый, и графитовый прямоугольник
   посреди светлой полосы читался как чужая вставка. Работу держит набор,
   а не заливка.

   Контраст строится сразу по трём осям: кегль (4×), вес (700 против 400)
   и ширина знака (узкий дисплейный против обычного текстового). Одного
   кегля мало — это масштабирование, а не контраст.

   Линейка начинается под подписью, а не от края: рамка со всех сторон
   превращала список в таблицу, из-за которой он и читался казённо.

   Вынос цифр в межколонник тоже пробовали: слева стоит портрет,
   и числа наезжали на фотографию. */
.founder__record {
  --num-col: 4.4rem;
  --num-gap: clamp(1rem, 2vw, 1.5rem);
  list-style: none;
  margin: clamp(1.75rem, 3.5vw, 2.5rem) 0 0;
  padding: 0;
  display: grid;
  /* Уже колонки: строки из четырёх слов, растянутые на 700 px, оставляют
     половину списка пустой. */
  max-width: 32rem;
}
.founder__record li {
  position: relative;
  display: grid; grid-template-columns: var(--num-col) 1fr;
  gap: var(--num-gap);
  align-items: baseline;
  padding-block: clamp(.7rem, 1.4vw, 1rem);
  font-size: var(--t-sm);
}
.founder__record li + li::before {
  content: ''; position: absolute; top: 0;
  left: calc(var(--num-col) + var(--num-gap)); right: 0;
  height: 1px; background: var(--line);
}
.founder__record b {
  font-family: var(--display); font-weight: 700;
  /* Кегль вне общей шкалы намеренно: ровная шкала выглядит машинно,
     а здесь нужен один акцент по размеру. */
  font-size: clamp(2.5rem, 4.4vw, 3.4rem);
  line-height: .84;
  /* Крупный кегль набирается плотнее: −0,03em по таблице трекинга. */
  letter-spacing: -0.03em;
  font-variant-numeric: tabular-nums;
  white-space: nowrap; text-align: right;
  color: var(--fg);
}
.founder__record span {
  color: var(--fg-2);
  max-width: 32ch;
}

/* Список параметров, а не послужной список: значения здесь словесные
   («Детский кикбоксинг»), и в узкой колонке крупный набор рядом с подписью
   не помещался вовсе. Подпись сверху, значение под ней — тот же приём,
   что у чисел в шапке страницы. */
.factlist {
  list-style: none; margin: var(--s-6) 0 0; padding: 0;
  display: grid; gap: 1px; background: var(--line);
  border-block: 1px solid var(--line);
}
.factlist li {
  background: var(--bg);
  display: grid; gap: 3px;
  padding: var(--s-4) 0;
}
.factlist span { font-size: var(--t-xs); color: var(--fg-3); }
.factlist b {
  font-family: var(--display); font-weight: 700; text-transform: uppercase;
  font-size: var(--t-md); line-height: 1.06; letter-spacing: -0.01em;
}

/* --- две колонки «для кого» --------------------------------------------- */
.audience { display: grid; gap: var(--s-4); grid-template-columns: 1fr; }
@media (min-width: 48.75em) { .audience { grid-template-columns: repeat(3, 1fr); } }
.audience__card {
  border: 1px solid var(--line); background: var(--bg-3);
  padding: var(--s-6); display: flex; flex-direction: column; gap: var(--s-4);
}
.audience__card h3 { font-size: var(--t-md); text-transform: uppercase; }
.audience__card p { font-size: var(--t-sm); color: var(--fg-2); }
.audience__card a { font-size: var(--t-sm); font-weight: 600; }
.audience__links { margin-top: auto; display: flex; flex-wrap: wrap; gap: var(--s-5); }

/* --- карта --------------------------------------------------------------- */
/* width: 100% обязателен. Без него связка aspect-ratio + min-height
   вычисляет ширину из высоты и растягивает блок за экран: 280px × 16/9 = 498px. */
.map {
  position: relative;
  width: 100%;
  border: 1px solid var(--line);
  background: var(--bg-2);
  aspect-ratio: 16 / 9;
  min-height: 17.5rem;
}
.map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
/* На телефоне карта — картинка: палец при прокрутке не застревает в виджете.
   Маршрут — кнопкой «Яндекс Карты» рядом, в приложении. */
@media (hover: none) { .map iframe { pointer-events: none; } }
.map__fallback {
  position: absolute; inset: 0;
  display: grid; place-content: center; gap: var(--s-4); text-align: center;
  padding: var(--s-6); color: var(--fg-2); font-size: var(--t-sm);
  background-image:
    linear-gradient(to right, var(--line) 1px, transparent 1px),
    linear-gradient(to bottom, var(--line) 1px, transparent 1px);
  background-size: 48px 48px, 48px 48px;
  background-position: -1px -1px;
}
.map__fallback > * { position: relative; }
/* Кнопка стоит на сетке из линий: без своей подложки подпись падала
   до 4,08:1 там, где под ней проходит линия. */
.map__fallback .btn--ghost { background: var(--bg); border-color: var(--fg-3); }
.map__fallback .btn--ghost:hover { background: var(--bg-3); border-color: var(--fg); }

/* --- страница детской группы: светлее и теплее --------------------------- */
/* Единственная страница со сдвигом нейтралей в тепло: тёмная агрессивная схема
   на детской аудитории отталкивает родителя. Тон вынесен из кремового кластера
   30–50° сознательно. */
.page-kids {
  --bg:     var(--kids-bg);
  --bg-2:   var(--kids-bg-2);
  --bg-3:   var(--kids-bg-3);
  --line:   var(--kids-line);
  --line-2: var(--kids-line-2);
  --fg-3:   var(--kids-fg-3);
  --bg-rgb: var(--kids-bg-rgb);
}
/* Шапка детской страницы остаётся светлой. Тёмная фотография во всю ширину
   с белым заголовком — ровно тот «агрессивный» тон, который на детской
   аудитории отталкивает родителя; здесь та же конструкция развёрнута
   наизнанку: тёплая подложка слева, фотография проявляется справа,
   набор графитовый. Все нейтрали объявлены заново, потому что общий блок
   тёмных поверхностей уже переписал их выше по каскаду. */
.page-kids .pagehead--media {
  --bg:        var(--kids-bg);
  --bg-2:      var(--kids-bg-2);
  --bg-3:      var(--kids-bg-3);
  --fg:        var(--ink);
  --fg-2:      var(--ink-2);
  --fg-3:      var(--kids-fg-3);
  --line:      var(--kids-line);
  --line-2:    var(--kids-line-2);
  --brand:     var(--ink);
  --brand-2:   var(--dark-3);
  --on-brand:  var(--kids-bg-3);
  --accent-ink: var(--accent-ink);
  background: var(--kids-bg);
  color: var(--ink);
}
.page-kids .pagehead--media::after {
  background: linear-gradient(96deg,
    rgb(var(--kids-bg-rgb) / .97) 0%, rgb(var(--kids-bg-rgb) / .94) 54%,
    rgb(var(--kids-bg-rgb) / .58) 78%, rgb(var(--kids-bg-rgb) / .10) 100%);
}
@media (max-width: 53.6875em) {
  .page-kids .pagehead--media::after {
    background: linear-gradient(178deg,
      rgb(var(--kids-bg-rgb) / .80) 0%, rgb(var(--kids-bg-rgb) / .93) 52%,
      rgb(var(--kids-bg-rgb) / .97) 100%);
  }
}
.page-kids .pagehead--media .pagehead__media img {
  filter: saturate(.94) brightness(1.06);
}
.page-kids .pagehead--media .lede { color: var(--ink-2); }
.page-kids .pagehead--media .crumbs li + li::before { color: var(--kids-line-2); }
.page-kids .pagehead__facts { border-top-color: var(--kids-line); }
.page-kids .pagehead__fact b { color: var(--ink); }
/* Подпись под числом лежит на фотографии: --kids-fg-3 давал 4,25:1
   в худшей точке при норме 4,5. */
.page-kids .pagehead__fact span { color: var(--ink-2); }

/* --- сквозная нижняя врезка записи -------------------------------------- */
.cta-band { background: var(--dark); color: var(--on-dark); }
.cta-band__inner {
  padding-block: clamp(3rem, 7vw, 6rem);
  display: grid; gap: var(--s-6);
}
@media (min-width: 56.25em) {
  .cta-band__inner { grid-template-columns: 1.35fr 1fr; align-items: center; gap: var(--s-8); }
}
.cta-band h2 { max-width: 16ch; }
.cta-band p { color: var(--on-dark-2); max-width: 48ch; }
/* Две равные колонки резали кнопку по живому: в колонке ~200 px подпись
   «Записаться на тренировку» вставала в две строки и кнопка превращалась
   в блок текста с рамкой. Теперь кнопки берут свою ширину и переносятся
   целиком, а на узком экране растягиваются на всю строку. */
.cta-band .btn-row {
  display: flex; flex-wrap: wrap; gap: var(--s-3);
  align-content: start;
}
/* Кнопки в столбик и одной ширины: в колонке врезки они всё равно не встают
   в строку, а разная ширина у пары из двух кнопок читается как небрежность. */
.cta-band .btn-row .btn { flex: 1 1 100%; max-width: 22rem; }

/* --- список «что взять» --------------------------------------------------- */
.checklist { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--s-3); }
.checklist li {
  display: grid; grid-template-columns: 1.6rem 1fr; gap: var(--s-3);
  align-items: baseline;
  font-size: var(--t-base);
  padding-bottom: var(--s-3); border-bottom: 1px solid var(--line);
}
.checklist li::before {
  content: '□'; font-family: var(--mono); color: var(--fg-3);
}
.checklist li[data-club]::before { content: '■'; color: var(--fg); }

/* --- лента событий -------------------------------------------------------- */
.timeline { display: grid; gap: 0; border-top: 1px solid var(--line); }
.timeline__row {
  display: grid; gap: var(--s-3);
  grid-template-columns: 1fr;
  padding: var(--s-5) 0;
  border-bottom: 1px solid var(--line);
}
@media (min-width: 51.25em) {
  .timeline__row { grid-template-columns: 9rem 1fr 1.1fr; gap: var(--s-6); align-items: baseline; }
}
.timeline__when { font-family: var(--mono); font-size: var(--t-sm); color: var(--fg-3);
  font-variant-numeric: tabular-nums; }
.timeline__what { font-family: var(--display); font-weight: 700; text-transform: uppercase;
  font-size: var(--t-md); line-height: 1.1; letter-spacing: -0.01em; }
.timeline__d { font-size: var(--t-sm); color: var(--fg-2); }

/* --- служебные страницы (политика, согласие) ---------------------------- */
.doc { max-width: 70ch; }
.doc h2 { font-size: var(--t-lg); margin-top: var(--s-7); }
.doc h3 { font-size: var(--t-md); margin-top: var(--s-6); }
.doc p, .doc li { font-size: var(--t-sm); color: var(--fg-2); }
.doc ol, .doc ul { padding-left: 1.2rem; }
.doc li { margin-bottom: var(--s-2); }

/* --- 404 ------------------------------------------------------------------ */
.notfound { min-height: 60svh; display: grid; place-content: center; text-align: center;
  gap: var(--s-5); }

/* ===========================================================================
   Печать
   Расписание и контакты печатают: родитель вешает лист на холодильник,
   новичок кладёт адрес в карман. На бумаге не нужны ни липкая шапка,
   ни тёмные заливки, ни фотографии во всю полосу, ни органы управления,
   которые некуда нажать. Адрес ссылки печатается рядом с текстом, но
   только в прозе: у кнопок он превращается в шум, повторённый восемь раз.
   =========================================================================== */
@media print {
  @page { margin: 14mm; }

  html, body { background: #fff; }

  /* Интерфейс, который на бумаге не работает */
  .header, .drawer, .burger, .toc, .skip-link,
  .cta-band, .map, .modal, .form, .gallery, .strip, .dirs,
  .pagehead__media, .pagehead__actions, .footer__social, .footer__logo,
  .sched__bar, .sgroup__go, .btn, .trust, .rating__stars { display: none !important; }

  /* Тёмные поверхности печатать нельзя: тонер и нечитаемо */
  .pagehead--media, .section--dark, .footer, .hero {
    background: #fff !important;
    min-height: 0 !important;
    padding-block: 0 !important;
  }
  .pagehead--media::after, .hero::after { display: none !important; }

  /* Ни одного серого: на бумаге светлый текст пропадает */
  main, main *, footer, footer * { color: #000 !important; }

  .section, .section--band, .section--tight, .section--air, .section--close {
    padding-block: 0 0 8mm !important;
    background: #fff !important;
  }
  .wrap { max-width: none; padding-inline: 0; }

  /* Разделы не рвутся посреди заголовка */
  h1, h2, h3 { break-after: avoid-page; }
  .sgroup, .principle, .timeline__row, .step, details { break-inside: avoid-page; }

  /* Ссылка в прозе называет свой адрес: подчёркнутое слово на бумаге
     ничего не значит. У кнопок и служебных ссылок адрес не печатается. */
  main p a[href^="http"]::after,
  main li a[href^="http"]::after,
  main dd a[href^="http"]::after { content: ' (' attr(href) ')'; font-size: 9pt; word-break: break-all; }
  main p a[href^="/"]::after,
  main li a[href^="/"]::after { content: ' (courage74.ru' attr(href) ')'; font-size: 9pt; }
  main a[href^="tel:"]::after, main a[href^="#"]::after,
  main .crumbs a::after { content: '' !important; }

  /* Свёрнутые ответы на бумаге раскрыты: печатают ради содержимого */
  details > .faq__body { display: block !important; }
  summary { list-style: none; font-weight: 700; }
  summary::marker, summary::-webkit-details-marker { display: none; content: ''; }

  .sched-scroll { overflow: visible !important; }
  .sched-scroll > table { min-width: 0 !important; }
  .sched__groups { display: block !important; }
}
