/* ============================================================
   NEWS-DETAIL.CSS — Страница отдельной новости
   Театр на Таганке

   Подключается ПОСЛЕ page.css (каноническая позиция).
   Переиспользует page.css: header--page, page.

   Визуальные стили заимствованы из:
     — today__nav        → news-detail__nav (кнопка «← Новости»)
     — history section   → news-detail__title, __date (заголовок, дата)
     — today__quote      → news-detail__lead (вводная цитата)
     — history section   → news-detail__body (текстовый блок)
   ============================================================ */

/* ------------------------------------------------------------
   ПРАВКА 09.08: короткие новости — фото наезжало на подвал.
   На десктопе .news-detail__image имеет position: absolute и
   не даёт высоты странице: высоту держит только текст левой
   колонки. Если текст короче фото (напр. /news/otmena_9aug),
   картинка вылезает за низ main и ложится поверх футера.
   Решение — плавающий спейсер .news-detail__hero::before,
   резервирующий высоту в правой колонке, не двигая левую.
   Место правки помечено комментарием «ПРАВКА 09.08».
   ------------------------------------------------------------ */


/* ══════════════════════════════════════════════════
   НАВИГАЦИЯ «← Новости»
   Паттерн today__nav: стрелка + текст, 52px высота.
   ══════════════════════════════════════════════════ */
.news-detail__nav {
  height: 52px;
  display: flex;
  align-items: center;
  padding: 0 var(--space-s);
  margin-top: 48px;
  background: var(--color-bg-warm);
}

.news-detail__nav-link {
  display: flex;
  align-items: center;
  gap: 8px;
  text-decoration: none;
  color: var(--color-black-soft);
}

.news-detail__nav-arrow {
  width: 24px;
  height: 24px;
  flex-shrink: 0;
}

.news-detail__nav-text {
  font-family: var(--font-main);
  font-size: 18px;
  font-weight: var(--font-weight-medium);
  line-height: var(--line-height-heading);
  letter-spacing: -0.015em;
  color: var(--color-black-soft);
}


/* ══════════════════════════════════════════════════
   РАЗДЕЛИТЕЛЬ
   На всю ширину, 1px чёрный.
   ══════════════════════════════════════════════════ */
.news-detail__divider {
  width: 100%;
  height: 1px;
  background: var(--color-black-soft);
}


/* ══════════════════════════════════════════════════
   ШАПКА СТАТЬИ
   Мобилка: flex-column (заголовок, дата, фото).
   Десктоп: grid 2 колонки (текст слева, фото справа).
   ══════════════════════════════════════════════════ */
.news-detail__hero {
  padding: 60px 10px 0;
}

.news-detail__hero-text {
  display: flex;
  flex-direction: column;
  gap: 24px;
}


/* ══════════════════════════════════════════════════
   ЗАГОЛОВОК НОВОСТИ
   Стиль history__section-name: Pragmatica Extended Bold.
   ══════════════════════════════════════════════════ */
.news-detail__title {
  font-family: var(--font-accent);
  font-size: 32px;
  font-weight: var(--font-weight-bold);
  line-height: 0.9;
  letter-spacing: -0.035em;
  color: var(--color-black-soft);
}


/* ══════════════════════════════════════════════════
   ДАТА
   Стиль history__section-subtitle: Pragmatica Medium.
   ══════════════════════════════════════════════════ */
.news-detail__date {
  display: block;
  font-family: var(--font-main);
  font-size: 18px;
  font-weight: var(--font-weight-medium);
  line-height: 1.15;
  letter-spacing: -0.015em;
  color: var(--color-black-soft);
}


/* ══════════════════════════════════════════════════
   ФОТО
   Мобилка: квадрат. Десктоп: 4:3, в правой колонке.
   ══════════════════════════════════════════════════ */
.news-detail__image {
  width: 100%;
  aspect-ratio: 1;
  overflow: hidden;
  border-radius: var(--card-radius);
  margin-top: 40px;
}

.news-detail__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: var(--card-radius);
}


/* ══════════════════════════════════════════════════
   ВВОДНЫЙ БЛОК (ЦИТАТА)
   Стиль today__quote: кавычки SVG + крупный текст + бар.
   ══════════════════════════════════════════════════ */
.news-detail__lead {
  padding: 80px var(--space-s) 40px;
}

.news-detail__lead-inner {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.news-detail__lead-text {
  font-family: var(--font-main);
  font-size: 24px;
  font-weight: var(--font-weight-book);
  line-height: 1.2;
  letter-spacing: -0.01em;
  color: var(--color-black-soft);
}

.news-detail__lead-text p + p {
  margin-top: 1em;
}

.news-detail__lead-bar {
  width: 100%;
  height: 12px;
  background: var(--color-black-soft);
}


/* ══════════════════════════════════════════════════
   ТЕКСТОВЫЙ БЛОК
   Стиль history__section-text: Pragmatica Book, 18px.
   ══════════════════════════════════════════════════ */
.news-detail__body {
  font-family: var(--font-main);
  font-size: 18px;
  font-weight: var(--font-weight-book);
  line-height: 1.35;
  letter-spacing: -0.01em;
  color: var(--color-black-soft);
  padding: 0 10px 80px;
}

.news-detail__body p + p {
  margin-top: 32px;
}


/* ══════════════════════════════════════════════════
   ПЛАНШЕТ (768–1023.98px)
   ══════════════════════════════════════════════════ */
@media (min-width: 768px) and (max-width: 1023.98px) {
  .news-detail__nav {
    padding: 0 var(--space-m);
  }

  .news-detail__hero {
    padding: 60px 16px 0;
  }

  .news-detail__lead {
    padding: 80px var(--space-m) 40px;
  }

  .news-detail__lead-text {
    font-size: 28px;
  }

  .news-detail__body {
    padding: 0 16px 100px;
  }
}


/* ══════════════════════════════════════════════════
   ДЕСКТОП (≥1024px)
   Контент — в левой половине двухколоночной сетки.
   ══════════════════════════════════════════════════ */
@media (min-width: 1024px) {
  /* ПРАВКА 09.08: main должен учитывать плавающий спейсер
     в своей высоте — иначе резерв не работает. */
  .page--news-detail {
    display: flow-root;
  }

  .news-detail__nav {
    padding: 0 var(--inner-pad-x);
  }

  .news-detail__nav-text {
    font-size: 20px;
  }

  /* Hero: relative-контейнер, текст слева, фото абсолютно справа */
  .news-detail__hero {
    position: relative;
    padding: 60px var(--inner-pad-x) 0;
  }

  /* ПРАВКА 09.08: невидимый спейсер под абсолютное фото.
     Флоат вправо занимает высоту в правой колонке, но не
     сдвигает вниз текст левой — строки .news-detail__body
     и так не выходят за левую половину. Габариты повторяют
     .news-detail__image (та же ширина + aspect-ratio 4/3),
     margin-bottom равен padding-bottom текстового блока,
     чтобы низ фото и низ текста давали одинаковый отступ
     до подвала. На длинных новостях спейсер короче текста
     и ни на что не влияет. */
  .news-detail__hero::before {
    content: '';
    display: block;
    float: right;
    width: calc((100% - var(--inner-col-gap)) / 2);
    aspect-ratio: 4 / 3;
    margin-bottom: 120px;
    pointer-events: none;
  }

  .news-detail__hero-text {
    width: calc((100% - var(--inner-col-gap)) / 2);
    gap: 24px;
  }

  .news-detail__title {
    font-family: var(--font-accent);
    font-size: 36px;
    font-weight: var(--font-weight-black);
    line-height: 0.9;
    letter-spacing: -0.04em;
  }

  .news-detail__date {
    font-size: 20px;
    line-height: 1.25;
  }

  /* Фото: абсолютно в правой колонке, 4:3 */
  .news-detail__image {
    position: absolute;
    top: 60px;
    right: var(--inner-pad-x);
    width: calc((100% - 2 * var(--inner-pad-x) - var(--inner-col-gap)) / 2);
    margin-top: 0;
    aspect-ratio: 4 / 3;
  }

  .news-detail__lead {
    padding: 224px var(--inner-pad-x) 80px;
  }

  .news-detail__lead-inner {
    max-width: calc((100vw - 2 * var(--inner-pad-x) - var(--inner-col-gap)) / 2);
    gap: 25px;
  }

  .news-detail__lead-text {
    font-size: clamp(22px, 2.679vw, 34px);
    line-height: 1.1;
    letter-spacing: -0.01em;
  }

  .news-detail__lead-bar {
    max-width: calc((100vw - 2 * var(--inner-pad-x) - var(--inner-col-gap)) / 2);
  }

  .news-detail__body {
    font-size: 20px;
    padding: 0 var(--inner-pad-x) 120px;
    max-width: calc((100% - var(--inner-col-gap)) / 2 + var(--inner-pad-x));
  }
}


/* ══════════════════════════════════════════════════
   ПРОМЕЖУТОЧНЫЙ ДЕСКТОП (≥1280px)
   ══════════════════════════════════════════════════ */
@media (min-width: 1280px) {
  .news-detail__title {
    font-size: 38px;
  }

  .news-detail__body {
    font-size: 21px;
  }
}


/* ══════════════════════════════════════════════════
   ШИРОКИЙ ДЕСКТОП (≥1440px)
   ══════════════════════════════════════════════════ */
@media (min-width: 1440px) {
  .news-detail__title {
    font-size: 40px;
  }

  .news-detail__body {
    font-size: 22px;
  }
}
