/* ===== Общие утилитарные классы (замена inline-стилей) ===== */

/* Скрытие элементов (управляется классами/JS) */
.is-hidden { display: none !important; }

/* Display */
.is-block { display: block; }
.is-inline-block { display: inline-block; }
.is-flex { display: flex; }
.is-inline-flex { display: inline-flex; }
.is-grid { display: grid; }
.is-relative { position: relative; }
.is-static { position: static; }

/* Flex-направления и выравнивание */
.flex-col { flex-direction: column; }
.flex-row { flex-direction: row; }
.flex-wrap { flex-wrap: wrap; }
.flex-center { align-items: center; justify-content: center; }
.items-center { align-items: center; }
.items-start { align-items: flex-start; }
.justify-center { justify-content: center; }
.justify-between { justify-content: space-between; }
.flex-grow { flex-grow: 1; }
.flex-shrink-0 { flex-shrink: 0; }
.flex-1 { flex: 1; }

/* Зазоры */
.gap-4 { gap: 4px; }
.gap-6 { gap: 6px; }
.gap-8 { gap: 8px; }
.gap-10 { gap: 10px; }
.gap-12 { gap: 12px; }
.gap-15 { gap: 15px; }
.gap-16 { gap: 16px; }
.gap-20 { gap: 20px; }
.gap-24 { gap: 24px; }
.gap-32 { gap: 32px; }

/* Отступы сверху */
.mt-0 { margin-top: 0; }
.mt-6 { margin-top: 6px; }
.mt-8 { margin-top: 8px; }
.mt-10 { margin-top: 10px; }
.mt-12 { margin-top: 12px; }
.mt-15 { margin-top: 15px; }
.mt-20 { margin-top: 20px; }
.mt-24 { margin-top: 24px; }
.mt-30 { margin-top: 30px; }
.mt-40 { margin-top: 40px; }

/* Отступы снизу */
.mb-0 { margin-bottom: 0; }
.mb-4 { margin-bottom: 4px; }
.mb-6 { margin-bottom: 6px; }
.mb-8 { margin-bottom: 8px; }
.mb-10 { margin-bottom: 10px; }
.mb-12 { margin-bottom: 12px; }
.mb-14 { margin-bottom: 14px; }
.mb-15 { margin-bottom: 15px; }
.mb-16 { margin-bottom: 16px; }
.mb-20 { margin-bottom: 20px; }
.mb-24 { margin-bottom: 24px; }
.mb-32 { margin-bottom: 32px; }

/* Отступы по бокам */
.ml-4 { margin-left: 4px; }
.ml-8 { margin-left: 8px; }
.ml-10 { margin-left: 10px; }
.mr-4 { margin-right: 4px; }
.mr-8 { margin-right: 8px; }

/* Внутренние отступы */
.p-15 { padding: 15px; }
.p-20 { padding: 20px; }
.p-24 { padding: 24px; }
.p-32 { padding: 32px; }
.p-40 { padding: 40px; }
.py-8 { padding-top: 8px; padding-bottom: 8px; }
.pb-8 { padding-bottom: 8px; }
.pl-20 { padding-left: 20px; }

/* Типографика */
.fs-11 { font-size: 11px; }
.fs-12 { font-size: 12px; }
.fs-13 { font-size: 13px; }
.fs-14 { font-size: 14px; }
.fs-15 { font-size: 15px; }
.fs-16 { font-size: 16px; }
.fs-18 { font-size: 18px; }
.fs-19 { font-size: 19px; }
.fs-20 { font-size: 20px; }
.fs-25 { font-size: 25px; }
.fs-28 { font-size: 28px; }
.fw-500 { font-weight: 500; }
.fw-600 { font-weight: 600; }
.fw-700 { font-weight: 700; }

/* Цвета текста */
.text-main { color: var(--text-main, #0f172a); }
.text-muted { color: var(--text-muted, #64748b); }
.text-accent { color: var(--accent-blue, #0284c7); }
.text-danger { color: #ef4444; }
.text-center { text-align: center; }
.text-right { text-align: right; }
.text-left { text-align: left; }

/* Оформление ссылок/текста */
.no-underline { text-decoration: none; }
.pre-line { white-space: pre-line; }
.pre-wrap { white-space: pre-wrap; }
.break-all { word-break: break-all; }
.cursor-pointer { cursor: pointer; }
.monospace { font-family: monospace; }

/* Ширина */
.w-100 { width: 100%; }
.w-auto { width: auto; }
.w-30 { width: 30px; }
.w-40 { width: 40px; }
.w-48 { width: 48px; }
.w-64 { width: 64px; }
.mw-300 { min-width: 300px; }
.mw-320 { min-width: 320px; }
.maxw-800 { max-width: 800px; }
.maxw-900 { max-width: 900px; }
.maxw-1200 { max-width: 1200px; }
.maxw-1400 { max-width: 1400px; }
.center-block { margin-left: auto; margin-right: auto; }

/* Служебный пиксель Яндекс.Метрики */
.metrika-pixel { position: absolute; left: -9999px; }
