/**
 * @file programme.css — страница типа «Программа» (node--type-programme) ТОЛЬКО: подключается точечно
 * (node.html.twig, тем же приёмом, что уже lightbox), не входит в глобальную библиотеку events_engine/global.
 * Специально НЕ трогает общие токены/правила контейнера и карточек (--ee-container/--ee-card-min,
 * .ee-cards/.views-view-grid в cards.css/engine.css) — план 2026-09-29 (pm/decisions.md), чтобы не пересекаться
 * с параллельной задачей вёрстки. Архивная плитка (блок 3) сознательно переиспользует УЖЕ существующие
 * descendant-селекторы .views-view-grid из engine.css без единой новой строки там — см. докблок в
 * recipes/programme-page/recipe.yml, почему выбран Grid-стиль Views, а не .ee-cards.
 */

/* Блок 1 — общее описание цикла целиком (field_programme_description, обычный {{ content }}): должно быть видно
   ПОЛНОСТЬЮ на первом экране без прокрутки, а снизу — виден «краешек» блока 2 (анонса), намёк на продолжение.
   min-height (не height) — если оператор впишет длинный текст, блок просто станет выше одного экрана вместо
   обрезки; это осознанный компромисс (честно: при длинном описании «умещается на первом экране» перестаёт
   быть точным, это не баг, а естественный предел приёма «высота под контент»). --ee-header-height — уже
   существующий токен (theme.css), только читается, не переопределяется. */
.node--type-programme > .node__content {
  min-height: calc(100svh - var(--ee-header-height, 4rem) - 7rem);
  display: flex;
  flex-direction: column;
  justify-content: center;
}

/* Блок 2 — анонс ближайшего события, крупно. Один-единственный .ee-card внутри — растягивается на всю ширину
   секции и переворачивается в вертикальную раскладку (картинка сверху, крупнее обычной карточки списка), вместо
   обычной горизонтальной карточки-строки из cards.css. Задаёт только сама эта обёртка — обычные карточки
   (списки/архив ниже) не затронуты, класс .ee-card в остальных местах сайта не переопределяется. */
.ee-programme-announce .ee-card {
  flex-direction: column;
  max-width: 40rem;
  margin-inline: auto;
}
.ee-programme-announce .ee-card__cover {
  flex: none;
  aspect-ratio: 16 / 10;
  min-height: 0;
}
.ee-programme-announce .ee-card__title { font-size: 1.375rem; }
.ee-programme-announce .ee-master-events__title,
.ee-programme-announce .ee-programme-events__title { text-align: center; }

.ee-programme-events__title {
  margin: 2rem 0 1rem;
  font-size: 1.25rem;
  font-weight: 700;
}

/* Архив: подпись года над каждой годовой плиткой. Группировка — штатная Views (style.options.grouping), Grid-стиль
   печатает заголовок группы САМ (core views-view-grid.html.twig: «{% if title %}<h3>{{ title }}</h3>{% endif %}»,
   без класса и без отдельного шаблона views-view-grouping — проверено фактом на живом HTML, не по документации:
   отдельный шаблон views-view-grouping--*.html.twig для Grid-стиля НЕ вызывается вовсе). Поэтому стиль — точным
   селектором по стабильному классу Drupal (view-display-id-block_archive, уникален для этого представления/
   дисплея), без новых классов/шаблонов. */
.view-display-id-block_archive .view-content > h3 {
  margin: 2rem 0 .75rem;
  font-size: 1.0625rem;
  font-weight: 700;
  color: var(--muted-foreground);
}
.view-display-id-block_archive .view-content > h3:first-child { margin-top: 1rem; }
