/* ==========================================================================
   block-content.css — универсальный блок контента
   ==========================================================================
   .block-content — самостоятельный компонент. Можно разместить:
     — на верхнем уровне .container,
     — внутри .content-card,
     — внутри другого .block-content.

   ЛОГИКА ОТСТУПОВ
   ---------------
   Отступы телу даёт ТОЛЬКО рамка (border) внешнего блока-обёртки.
   Если блок лежит внутри .content-card — паддинг обеспечивает
   .content-body--padded родителя, а сам .block-content ничего
   не добавляет.

   Если .block-content лежит на верхнем уровне (без рамки), то:
   — при заголовке с плашкой (.block-content--heading-card) тело получает
     вертикальный отступ сверху (20px), чтобы не прилипать к плашке;
     боковых отступов нет — текст идёт от края до края;
   — при заголовке без плашки тело идёт от края до края без отступов.

   МОДИФИКАТОРЫ
   ------------

   Отступы:
     .block-content              — базовый, margin-top: 30px.
     .block-content--tight       — уменьшенные вертикальные отступы (15px).

   Обёртка-список:
     .block-content--cards       — внутри только .content-card, между ними
                                   единый зазор, внешние margin обнуляются.

   Вид заголовка <h2>:
     .block-content--heading-default   — обычный заголовок раздела
                                         (без плашки). По умолчанию.
     .block-content--heading-card      — бежевая плашка на всю ширину,
                                         линия снизу.
     .block-content--heading-none      — заголовок не стилизуется.
   ========================================================================== */

.block-content {
  margin-top: 30px;
  margin-bottom: 0;
}

.block-content--tight {
  margin-top: 15px;
}

.block-content--cards > .content-card {
  margin-bottom: 30px;
}
.block-content--cards > .content-card:last-child {
  margin-bottom: 0;
}

/* ==========================================================================
   ЗАГОЛОВКИ
   ========================================================================== */

.block-content--heading-default > h2 {
  margin: 0 0 15px 0;
  color: #3b0a60;
  font-size: 22px;
  font-weight: bold;
}

.block-content--heading-card > h2 {
  margin: 0;
  padding: 20px 30px;
  background-color: #ebdcb2;
  color: #3b0a60;
  font-size: 22px;
  font-weight: bold;
  border-bottom: 1px solid #c9bca2;
}

.block-content--heading-none > h2 {
  /* как отрисовал бы браузер */
}

/* ==========================================================================
   ТЕЛО
   ==========================================================================
   Тело — .content-body. По умолчанию внутри .block-content
   padding отсутствует (плоский блок). Если у блока есть плашка
   или он карточный — padding возвращается.
   ========================================================================== */

.block-content > .content-body {
  padding: 0;
  background-color: transparent;
}

/* Если заголовок с плашкой — тело отступает сверху от плашки. */
.block-content--heading-card > .content-body {
  padding: 20px 0 0;
}

/* ==========================================================================
   Вертикальные зазоры внутри блока
   ========================================================================== */

.block-content > *:first-child {
  margin-top: 0;
}

.block-content > *:last-child {
  margin-bottom: 0;
}

/* Если перед вложенным .block-content стоит абзац, у него убираем
   margin-bottom — иначе отступ «сверху блока» складывается с отступом
   абзаца. */
.content-body > *:has(+ .block-content) {
  margin-bottom: 0;
}