/* ============================================================
   Блоки Winter: базовые утилиты
   Отступы, фон, скругление, нижняя граница, типографика.
   ============================================================ */

@layer components {

  .blk { position: relative; }

  /* ---- Внешние отступы ---- */
  .blk-mt-0 { margin-top: 0; }
  .blk-mt-1 { margin-top: var(--sp-1); }
  .blk-mt-2 { margin-top: var(--sp-2); }
  .blk-mt-3 { margin-top: var(--sp-3); }
  .blk-mt-4 { margin-top: var(--sp-4); }
  .blk-mt-5 { margin-top: var(--sp-5); }
  .blk-mt-6 { margin-top: var(--sp-6); }

  .blk-mb-0 { margin-bottom: 0; }
  .blk-mb-1 { margin-bottom: var(--sp-1); }
  .blk-mb-2 { margin-bottom: var(--sp-2); }
  .blk-mb-3 { margin-bottom: var(--sp-3); }
  .blk-mb-4 { margin-bottom: var(--sp-4); }
  .blk-mb-5 { margin-bottom: var(--sp-5); }
  .blk-mb-6 { margin-bottom: var(--sp-6); }

  /* ---- Внутренние отступы ---- */
  .blk-pt-0 { padding-top: 0; }
  .blk-pt-1 { padding-top: var(--sp-1); }
  .blk-pt-2 { padding-top: var(--sp-2); }
  .blk-pt-3 { padding-top: var(--sp-3); }
  .blk-pt-4 { padding-top: var(--sp-4); }
  .blk-pt-5 { padding-top: var(--sp-5); }
  .blk-pt-6 { padding-top: var(--sp-6); }

  .blk-pb-0 { padding-bottom: 0; }
  .blk-pb-1 { padding-bottom: var(--sp-1); }
  .blk-pb-2 { padding-bottom: var(--sp-2); }
  .blk-pb-3 { padding-bottom: var(--sp-3); }
  .blk-pb-4 { padding-bottom: var(--sp-4); }
  .blk-pb-5 { padding-bottom: var(--sp-5); }
  .blk-pb-6 { padding-bottom: var(--sp-6); }

  /* ---- Фон ---- */
  .blk-bg-none { background: transparent; }
  .blk-bg-surface { background: var(--surface); }
  .blk-bg-secondary { background: var(--secondary); }
  .blk-bg-accent { background: var(--accent); color: var(--on-accent); }
  .blk-bg-dark { background: #0A0E12; color: #E4E8ED; color-scheme: dark; }

  /* ---- Скругление ---- */
  .blk-radius-2 { border-radius: var(--radius-2); }
  .blk-radius-3 { border-radius: var(--radius-3); }
  .blk-radius-4 { border-radius: var(--radius-4); }
  .blk-radius-5 { border-radius: var(--radius-5); }

  /* ---- Нижняя граница ---- */
  .blk-bb { border-bottom: 1px solid var(--border); }

  /* ---- Типографика ---- */
  .blk-fs-sm { font-size: 0.875rem; }
  .blk-fs-base { font-size: 1rem; }
  .blk-fs-lg { font-size: 1.125rem; }
  .blk-fs-xl { font-size: 1.25rem; }
  .blk-fs-2xl { font-size: 1.5rem; }

  .blk-fw-light { font-weight: 300; }
  .blk-fw-normal { font-weight: 400; }
  .blk-fw-medium { font-weight: 500; }
  .blk-fw-semibold { font-weight: 600; }
  .blk-fw-bold { font-weight: 700; }

  .blk-italic { font-style: italic; }
  .blk-uppercase { text-transform: uppercase; letter-spacing: 0.04em; }

  /* ---- Заголовок блока ---- */
  .blk-title {
    font-family: var(--font-display);
    font-size: var(--fs-h2-alt);
    font-weight: 600;
    line-height: 1.15;
    margin-bottom: var(--sp-3);
    text-wrap: balance;
  }
}
