/* ============================================
   ГЛОБАЛЬНАЯ ТИПОГРАФИКА BLS Group
   Десктоп-first, мобильные брейкпоинты ниже
   ============================================ */

/* ----- Hero H1 (обложка) ----- */
.t-cover h1,
.t-cover .t-title,
.t-section_theme_dark h1 {
  font-size: clamp(48px, 6vw, 72px);
  line-height: 1.12;
  letter-spacing: -0.01em;
}

/* ----- H1 в секциях ----- */
h1:not(.t-cover h1) {
  font-size: clamp(40px, 4vw, 48px);
  line-height: 1.15;
  letter-spacing: -0.01em;
}

/* ----- H2 ----- */
h2 {
  font-size: clamp(28px, 3vw, 36px);
  line-height: 1.2;
  letter-spacing: -0.005em;
}

/* ----- H3 ----- */
h3 {
  font-size: clamp(20px, 2.2vw, 28px);
  line-height: 1.25;
}

/* ----- Основной текст ----- */
p,
.t-text,
.t-descr {
  font-size: clamp(16px, 1.1vw, 18px);
  line-height: 1.65;
  max-width: 68ch;
}

/* ----- Лид / подзаголовок ----- */
.t-descr_xl,
.t-uptitle,
.t-lead,
[class*="subtitle"],
[class*="__subtitle"] {
  font-size: clamp(18px, 1.5vw, 22px);
  line-height: 1.5;
}

/* ----- Подписи, метки, навигация ----- */
.t-menu__link,
.t-uptitle_xs,
[class*="__label"],
[class*="__caption"],
[class*="__tag"],
figcaption,
caption {
  font-size: 14px;
  line-height: 1.4;
}

/* ----- Кнопки ----- */
.t-btn,
.t-btnflex,
button:not([class*="t-"]) {
  font-size: clamp(16px, 1.1vw, 18px);
  line-height: 1.25;
  letter-spacing: 0.02em;
}

/* ============================================
   МОБИЛЬНЫЕ БРЕЙКПОИНТЫ
   ============================================ */

@media (max-width: 960px) {
  .t-cover h1,
  .t-cover .t-title,
  .t-section_theme_dark h1 {
    font-size: clamp(40px, 6vw, 48px);
    line-height: 1.13;
  }

  h1:not(.t-cover h1) {
    font-size: clamp(32px, 5vw, 36px);
  }

  h2 {
    font-size: clamp(26px, 4vw, 30px);
  }

  h3 {
    font-size: clamp(20px, 3vw, 22px);
  }

  p,
  .t-text,
  .t-descr {
    font-size: 16px;
    line-height: 1.65;
    max-width: 100%;
  }

  .t-descr_xl,
  .t-uptitle,
  .t-lead,
  [class*="subtitle"],
  [class*="__subtitle"] {
    font-size: clamp(18px, 3vw, 20px);
  }
}

@media (max-width: 640px) {
  .t-cover h1,
  .t-cover .t-title,
  .t-section_theme_dark h1 {
    font-size: 40px;
    line-height: 1.15;
  }

  h1:not(.t-cover h1) {
    font-size: 32px;
  }

  h2 {
    font-size: 26px;
  }

  h3 {
    font-size: 20px;
  }

  p,
  .t-text,
  .t-descr {
    font-size: 16px;
    line-height: 1.6;
  }

  .t-descr_xl,
  .t-uptitle,
  .t-lead,
  [class*="subtitle"],
  [class*="__subtitle"] {
    font-size: 18px;
  }

  .t-menu__link {
    font-size: 15px;
  }

  .t-btn,
  .t-btnflex {
    font-size: 16px;
  }
}

:root {
  /* ═══ СЕКЦИИ ═══ */
  --section-pt: 80px;          /* отступ сверху */
  --section-pb: 100px;         /* отступ снизу */
  --section-px: 20px;          /* боковой отступ */

  /* ═══ КОНТЕНТ ВНУТРИ СЕКЦИИ ═══ */
  --header-mb: 60px;           /* отступ блока заголовка от контента */
  --title-mb: 12px;            /* отступ заголовка от подзаголовка */

  /* ═══ СЕТКА ═══ */
  --grid-gap: 24px;            /* gap между карточками */
  --card-radius: 16px;         /* скругление карточек */
  --card-padding: 32px 20px;   /* внутренние отступы карточки */

  /* ═══ ЭЛЕМЕНТЫ ═══ */
  --element-gap: 16px;         /* между элементами внутри карточки */
  --btn-mt: 20px;              /* отступ кнопки от контента */

  /* ═══ МОБИЛЬНЫЕ ═══ */
  --section-pt-mobile: 50px;
  --section-pb-mobile: 60px;
  --header-mb-mobile: 40px;
  --grid-gap-mobile: 16px;
}

@media (max-width: 640px) {
  :root {
    --section-pt: var(--section-pt-mobile);
    --section-pb: var(--section-pb-mobile);
    --header-mb: var(--header-mb-mobile);
    --grid-gap: var(--grid-gap-mobile);
  }
}