/* ============================================================
   Учебный центр «Эшелон» — ЕДИНЫЙ файл дизайн-системы.
   Токены + компоненты. Custom CSS кита Elementor намеренно пуст:
   два источника правил конфликтовали (в ките оставались старые
   правила с !important, которые перебивали этот файл).
   ============================================================ */

/* ============================================================
   Учебный центр «Эшелон» — токены дизайн-системы
   Источник: Claude Design → «Эшелон Design System» → tokens/*.css
   Переносится дословно: в дизайн-системе это уже обычные
   CSS-переменные, Elementor их потребляет без изменений.

   Куда класть: Elementor → Настройки сайта → Пользовательский CSS
   (или styles.css дочерней темы — тогда попадает под git).
   ============================================================ */

:root {
  /* ===== Ink (near-black neutrals) ===== */
  --ink-900: #111214; /* основной текст, тёмные плашки */
  --ink-800: #1d1e21;
  --ink-700: #2a2a2e;
  --ink-600: #3a3a3e;
  --ink-500: #4a4a4e; /* вторичный текст */
  --ink-400: #6a6a6e; /* приглушённый текст */
  --ink-300: #9a9a9e; /* плейсхолдер / disabled */
  --ink-200: #c8c8ca;

  /* ===== Линии и подложки ===== */
  --line-300: #d6d6d8;
  --line-200: #e0e0e1; /* бордер по умолчанию */
  --line-100: #ececed; /* тонкий разделитель */
  --paper:     #ffffff;
  --paper-50:  #f7f7f8; /* фон приглушённой секции */
  --paper-100: #f0f0f1;

  /* ===== Брендовый красный (из знака #d84642) ===== */
  --red-700: #b4302a; /* pressed */
  --red-600: #cc3b34; /* заливка primary (углублён под белый текст) */
  --red-500: #d84642; /* цвет знака — акценты, подчёркивания */
  --red-100: #f2cbc9; /* бордер тинта */
  --red-50:  #fbeae9; /* фон тинта */

  /* ===== Брендовый серый (из вордмарка) ===== */
  --brand-gray: #5b5b5b;

  /* ===== Семантика (использовать редко, только статусы) ===== */
  --success-600: #1a7f47;
  --success-50:  #e8f4ee;
  --warning-600: #b7791f;
  --warning-50:  #fbf1de;
  --info-600:    #2563eb;
  --info-50:     #e8effd;

  /* ===== Семантические алиасы ===== */
  --text-primary:   var(--ink-900);
  --text-secondary: var(--ink-500);
  --text-muted:     var(--ink-400);
  --text-inverse:   var(--paper);
  --text-accent:    var(--red-600);

  --surface-page:    var(--paper);
  --surface-subtle:  var(--paper-50);
  --surface-card:    var(--paper);
  --surface-inverse: var(--ink-900);

  --border-default: var(--line-200);
  --border-strong:  var(--ink-900);
  --border-accent:  var(--red-600);

  --focus-ring: var(--red-600);

  /* ===== Типографика ===== */
  --font-sans: 'IBM Plex Sans', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --font-mono: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, monospace;

  --fs-display:  56px; /* hero H1 */
  --fs-h1:       37px;
  --fs-h2:       28px;
  --fs-h3:       21px;
  --fs-h4:       17px;
  --fs-body-lg:  17px;
  --fs-body:     15px;
  --fs-sm:       13px;
  --fs-xs:       11.5px;

  --lh-display: 1.02;
  --lh-h1:      1.08;
  --lh-h2:      1.14;
  --lh-h3:      1.24;
  --lh-h4:      1.32;
  --lh-body-lg: 1.6;
  --lh-body:    1.6;
  --lh-sm:      1.5;
  --lh-xs:      1.45;

  --fw-regular:  400;
  --fw-medium:   500;
  --fw-semibold: 600;
  --fw-bold:     700;

  --tracking-tight:  -0.015em; /* display / заголовки */
  --tracking-normal: 0;
  --tracking-wide:   0.06em;   /* моно-eyebrow */
  --tracking-caps:   0.12em;   /* мелкие капс-лейблы */

  /* ===== Пространство (база 4px) ===== */
  --space-0: 0;
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-8: 32px;
  --space-10: 40px;
  --space-12: 48px;
  --space-16: 64px;
  --space-20: 80px;
  --space-24: 96px;

  --container-max: 1200px;
  --container-pad: 32px;
  --section-y:     96px;

  /* ===== Радиусы (характер «институт» — углы почти острые) ===== */
  --radius-0:    0;
  --radius-sm:   2px;
  --radius-md:   4px; /* радиус контролов по умолчанию */
  --radius-lg:   6px;
  --radius-pill: 999px;

  /* ===== Тени (система border-led, тени сдержанные) ===== */
  --shadow-none:  none;
  --shadow-xs:    0 1px 2px rgba(17,18,20,0.06);
  --shadow-sm:    0 1px 3px rgba(17,18,20,0.08), 0 1px 2px rgba(17,18,20,0.04);
  --shadow-md:    0 4px 14px rgba(17,18,20,0.08);
  --shadow-lg:    0 12px 34px rgba(17,18,20,0.12);
  --shadow-focus: 0 0 0 3px rgba(212,43,31,0.28);

  /* ===== Движение ===== */
  --dur-fast:      120ms;
  --dur-base:      180ms;
  --dur-slow:      280ms;
  --ease-standard: cubic-bezier(0.2, 0, 0, 1);
}


/* ============================================================
   Учебный центр «Эшелон» — слой дизайн-системы поверх Elementor

   ВАЖНО про порядок подключения: Elementor генерирует post-<id>.css
   с правилом .elementor-widget-heading .elementor-heading-title{
   color:var(--e-global-color-primary)} и подключает его ПОСЛЕ кита.
   Поэтому CSS кита проигрывает по порядку при равной специфичности.
   Этот файл печатается в <head> последним (mu-plugin uc-self-hosted-fonts.php),
   что и позволяет обойтись без !important почти везде.
   ============================================================ */

/* ============================================================
   1. РИТМ. Elementor берёт зазор контейнера из --widgets-spacing.
   ============================================================ */
body.elementor-kit-7 {
  --widgets-spacing: 14px 14px;
  --widgets-spacing-row: 14px;
  --widgets-spacing-column: 14px;
}

/* Текст выравнивается по левому краю — как в макете. */
.e-con > .e-con-inner,
.e-con-full { text-align: left; }

/* ============================================================
   2. ЗАГОЛОВКИ. Снимаем красный по умолчанию.
   Красный — акцент, а не цвет заголовков (правило дизайн-системы:
   максимум один красный акцент на смысловой блок).
   ============================================================ */
.elementor-widget-heading .elementor-heading-title { color: var(--ink-900); }

.elementor-widget-heading h1.elementor-heading-title { font-size: var(--fs-h1); line-height: var(--lh-h1); font-weight: 700; letter-spacing: var(--tracking-tight); }
.elementor-widget-heading h2.elementor-heading-title { font-size: var(--fs-h2); line-height: var(--lh-h2); font-weight: 700; letter-spacing: var(--tracking-tight); }
.elementor-widget-heading h3.elementor-heading-title { font-size: var(--fs-h3); line-height: var(--lh-h3); font-weight: 600; }

/* Hero-заголовок — единственный крупный. */
.uc-display .elementor-heading-title,
.uc-display h1.elementor-heading-title {
  font-size: var(--fs-display);
  line-height: var(--lh-display);
  font-weight: 700;
  letter-spacing: var(--tracking-tight);
  color: var(--ink-900);
}

/* Моно-надзаголовок. */
.uc-eyebrow .elementor-heading-title {
  font-family: var(--font-mono);
  font-size: var(--fs-xs);
  font-weight: 500;
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
  color: var(--red-600);
  margin-bottom: 2px;
}

.uc-lead, .uc-lead p { font-size: var(--fs-body-lg); line-height: 1.6; color: var(--text-secondary); }
.uc-measure, .uc-measure p { max-width: 62ch; }
.uc-mono-note, .uc-mono-note p, .uc-mono-note .elementor-heading-title {
  font-family: var(--font-mono); font-size: var(--fs-xs);
  letter-spacing: var(--tracking-wide); color: var(--text-muted); margin: 0;
}
.uc-num .elementor-heading-title {
  font-family: var(--font-mono); font-variant-numeric: tabular-nums;
  font-weight: 600; font-size: 14px; color: var(--ink-900);
}

/* ============================================================
   3. КНОПКИ
   ============================================================ */
.uc-btn .elementor-button {
  font-family: var(--font-sans); font-weight: 600; font-size: 14px; line-height: 1;
  padding: 13px 24px; border-radius: var(--radius-md); border: 1px solid transparent;
  display: inline-flex; align-items: center; justify-content: center; gap: var(--space-2);
  transition: background var(--dur-base) var(--ease-standard), border-color var(--dur-base) var(--ease-standard);
}
.uc-btn--primary   .elementor-button { background: var(--red-600); color: #fff; border-color: var(--red-600); }
.uc-btn--primary   .elementor-button:hover { background: var(--red-700); border-color: var(--red-700); color: #fff; }
.uc-btn--dark      .elementor-button { background: var(--ink-900); color: #fff; border-color: var(--ink-900); }
.uc-btn--dark      .elementor-button:hover { background: var(--ink-700); border-color: var(--ink-700); color: #fff; }
.uc-btn--secondary .elementor-button { background: var(--paper); color: var(--ink-900); border-color: var(--line-300); }
.uc-btn--secondary .elementor-button:hover { border-color: var(--ink-900); color: var(--ink-900); }
.uc-btn--ghost     .elementor-button { background: transparent; color: var(--ink-900); border-color: transparent; padding-inline: 0; }
.uc-btn--ghost     .elementor-button:hover { color: var(--red-600); background: transparent; }
.uc-btn--sm .elementor-button { padding: 9px 14px; font-size: var(--fs-sm); }
.uc-btn--lg .elementor-button { padding: 16px 30px; font-size: var(--fs-body-lg); }
.uc-btn .elementor-button:focus-visible { outline: none; box-shadow: var(--shadow-focus); }

.uc-section--dark .uc-btn--secondary .elementor-button { background: transparent; color: var(--paper); border-color: rgba(255,255,255,.3); }
.uc-section--dark .uc-btn--secondary .elementor-button:hover { border-color: var(--paper); color: var(--paper); }

/* ============================================================
   4. КАРТОЧКИ
   ============================================================ */
.uc-card {
  background: var(--surface-card);
  border: 1px solid var(--border-default);
  border-radius: var(--radius-md);
  overflow: hidden;
}
.uc-card--hover { transition: border-color var(--dur-base), box-shadow var(--dur-base); }
.uc-card--hover:hover { box-shadow: var(--shadow-md); border-color: var(--ink-300); }
.uc-card--featured { border-top: 3px solid var(--red-500); }

/* -- Карточка направления: icon-box, к которому подмешан uc-card -- */
.elementor-widget-icon-box.uc-card { padding: 20px; }
.uc-card .elementor-icon-box-wrapper { text-align: left; }
.uc-card .elementor-icon-box-icon { margin-bottom: 14px; }
.uc-card .elementor-icon-box-icon .elementor-icon { font-size: 26px; color: var(--ink-900); }
.uc-card .elementor-icon-box-icon .elementor-icon svg { width: 26px; height: 26px; fill: var(--ink-900); }
.uc-card .elementor-icon-box-title { margin: 0 0 8px; }
.uc-card .elementor-icon-box-title,
.uc-card .elementor-icon-box-title a {
  font-size: 15px; font-weight: 600; line-height: 1.3; color: var(--ink-900);
}
.uc-card .elementor-icon-box-description { font-size: 12.5px; line-height: 1.5; color: var(--ink-400); margin: 0; }

/* -- Карточка курса -- */
.uc-course__cat .elementor-heading-title {
  font-family: var(--font-mono); font-size: 11px; letter-spacing: .1em;
  text-transform: uppercase; color: var(--red-600);
}
.uc-course__title .elementor-heading-title {
  font-size: var(--fs-h4); font-weight: 600; line-height: 1.3;
  letter-spacing: -.01em; color: var(--ink-900);
}
.uc-course__meta, .uc-course__meta p { font-size: var(--fs-sm); color: var(--ink-500); margin: 0; }
.uc-course__price-now .elementor-heading-title {
  font-family: var(--font-mono); font-size: 18px; font-weight: 600; color: var(--ink-900);
}

/* ============================================================
   5. СЕКЦИИ И СЕТКИ
   ============================================================ */
.uc-section--subtle { background: var(--surface-subtle); border-top: 1px solid var(--line-200); border-bottom: 1px solid var(--line-200); }
.uc-section--dark { background: var(--surface-inverse); }
.uc-section--dark, .uc-section--dark p, .uc-section--dark li { color: var(--paper-100); }
.uc-section--dark .elementor-widget-heading .elementor-heading-title { color: var(--paper); }
.uc-section--dark .uc-eyebrow .elementor-heading-title { color: var(--red-500); }
.uc-section--dark .uc-lead, .uc-section--dark .uc-lead p { color: #c8c8ca; }
.uc-section--dark .uc-mono-note,
.uc-section--dark .uc-mono-note p,
.uc-section--dark .uc-mono-note .elementor-heading-title { color: rgba(255,255,255,.5); }

/* Хайрлайн-сетка: фон-линия живёт на внутреннем блоке, иначе паддинг
   контейнера показывает серую полосу по краю. */
.uc-hairline-grid { background: transparent; padding: 0; }
.uc-hairline-grid > .e-con-inner { background: var(--line-200); gap: 1px; padding: 0; }
.uc-hairline-grid > .e-con-inner > * { background: var(--surface-page); }
.uc-section--dark .uc-hairline-grid > .e-con-inner { background: #2a2a2e; }
.uc-section--dark .uc-hairline-grid > .e-con-inner > * { background: var(--ink-900); }

/* Ячейка метрик */
.uc-stat__value .elementor-heading-title {
  font-family: var(--font-mono); font-size: 32px; font-weight: 600;
  line-height: 1.1; color: var(--ink-900);
}
.uc-stat__label, .uc-stat__label p { font-size: var(--fs-sm); color: var(--ink-400); margin: 0; }
.uc-section--dark .uc-stat__value .elementor-heading-title { color: var(--paper); }

/* Строка расписания: 180px / гибкая / кнопка — как в макете */
.uc-schedrow > .e-con-inner {
  display: grid;
  grid-template-columns: 180px minmax(0, 1fr) auto;
  gap: 20px;
  align-items: center;
}
.uc-schedrow { border-top: 1px solid var(--line-200); }
.uc-schedrow .uc-num .elementor-heading-title { font-size: 14px; }

/* Преимущество: линия сверху */
.uc-feat { border-top: 2px solid var(--ink-900); padding-top: 16px; }
.uc-feat .elementor-icon-box-wrapper { text-align: left; }
.uc-feat .elementor-icon-box-icon { margin-bottom: 12px; }
.uc-feat .elementor-icon-box-icon .elementor-icon { font-size: 24px; color: var(--red-600); }
.uc-feat .elementor-icon-box-icon .elementor-icon svg { width: 24px; height: 24px; fill: var(--red-600); }
.uc-feat .elementor-icon-box-title,
.uc-feat .elementor-icon-box-title a { font-size: 17px; font-weight: 600; color: var(--ink-900); }
.uc-feat .elementor-icon-box-title { margin: 0 0 8px; }
.uc-feat .elementor-icon-box-description { font-size: 14px; line-height: 1.6; color: var(--ink-500); margin: 0; }

/* Корпоративный блок — icon-box в хайрлайн-сетке, иконка слева */
.uc-hairline-grid .elementor-widget-icon-box { padding: 22px 24px; }
.uc-hairline-grid .elementor-icon-box-title,
.uc-hairline-grid .elementor-icon-box-title a { font-size: 15px; font-weight: 600; color: var(--ink-900); }
.uc-hairline-grid .elementor-icon-box-description { font-size: 13.5px; line-height: 1.55; color: var(--ink-500); }
.uc-hairline-grid .elementor-icon-box-icon .elementor-icon { font-size: 22px; color: var(--ink-900); }

/* ============================================================
   6. МЕЛОЧИ
   ============================================================ */
.uc-badge .elementor-heading-title {
  display: inline-block; font-family: var(--font-mono); font-size: var(--fs-xs);
  font-weight: 500; letter-spacing: var(--tracking-wide); text-transform: uppercase;
  padding: 4px 8px; border-radius: var(--radius-sm);
  background: var(--red-50); color: var(--red-700); border: 1px solid var(--red-100);
}
.uc-badge--neutral .elementor-heading-title { background: var(--paper-50); color: var(--ink-500); border-color: var(--line-200); }
.uc-badge--solid   .elementor-heading-title { background: var(--red-600); color: #fff; border-color: var(--red-600); }

.uc-hatch   { background-image: repeating-linear-gradient(135deg,#e9e9ea 0 10px,#f3f3f4 10px 20px); border: 1px solid var(--line-200); }
.uc-hatch-d { background-image: repeating-linear-gradient(135deg,rgba(255,255,255,.05) 0 10px,rgba(255,255,255,.02) 10px 20px); border: 1px solid rgba(255,255,255,.14); }

.uc-topbar, .uc-topbar p {
  font-family: var(--font-mono); font-size: 11.5px; letter-spacing: .06em;
  color: rgba(255,255,255,.72); margin: 0;
}
.uc-topbar strong { color: #fff; font-weight: 600; }

.uc-footer-links p { margin: 0; line-height: 2; }
.uc-footer-links a { color: var(--ink-300); text-decoration: none; font-size: 13px; }
.uc-footer-links a:hover { color: #fff; }

/* Меню в шапке */
.uc-nav .elementor-nav-menu .elementor-item { font-size: 14px; font-weight: 500; }

/* ============================================================
   7. АДАПТИВ
   ============================================================ */
@media (max-width: 1024px) {
  :root { --section-y: 72px; --fs-display: 42px; }
  .uc-schedrow > .e-con-inner { grid-template-columns: 150px minmax(0,1fr) auto; gap: 14px; }
}
@media (max-width: 767px) {
  :root { --section-y: 56px; --fs-display: 32px; --container-pad: 20px; }
  .uc-schedrow > .e-con-inner { grid-template-columns: 1fr; gap: 8px; }
  .uc-display .elementor-heading-title { font-size: 32px; }
}

/* ============================================================
   8. ПРИОРИТЕТ НАД ДЕФОЛТАМИ ВИДЖЕТОВ

   Elementor кладёт дефолты виджетов в post-<id>.css КАЖДОГО поста,
   включая шаблоны шапки и подвала. Их CSS подключается после этого
   файла (мостик рендерит шаблоны на wp_body_open / wp_footer), поэтому
   выиграть порядком нельзя — берём специфичностью.

   Префикс body даёт (0,2,1) против (0,2,0) у дефолтов виджета,
   но проигрывает (0,3,0) — правилам по конкретному элементу.
   Это ровно то поведение, которое нужно: наши умолчания применяются,
   а явно заданный в панели цвет виджета продолжает работать.
   ============================================================ */

body .elementor-widget-heading .elementor-heading-title { color: var(--ink-900); }
body .uc-display .elementor-heading-title { color: var(--ink-900); font-size: var(--fs-display); line-height: var(--lh-display); }
body .uc-eyebrow .elementor-heading-title { color: var(--red-600); font-family: var(--font-mono); font-size: var(--fs-xs); letter-spacing: var(--tracking-caps); text-transform: uppercase; }
body .uc-course__cat .elementor-heading-title { color: var(--red-600); font-family: var(--font-mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; }
body .uc-course__title .elementor-heading-title { color: var(--ink-900); font-size: var(--fs-h4); }
body .uc-course__price-now .elementor-heading-title { color: var(--ink-900); font-family: var(--font-mono); font-size: 18px; }
body .uc-stat__value .elementor-heading-title { color: var(--ink-900); font-family: var(--font-mono); font-size: 32px; }
body .uc-num .elementor-heading-title { color: var(--ink-900); font-family: var(--font-mono); font-size: 14px; }
body .uc-mono-note .elementor-heading-title { color: var(--text-muted); font-family: var(--font-mono); font-size: var(--fs-xs); }

body .uc-badge .elementor-heading-title { background: var(--red-50); color: var(--red-700); border: 1px solid var(--red-100); }
body .uc-badge--neutral .elementor-heading-title { background: var(--paper-50); color: var(--ink-500); border-color: var(--line-200); }
body .uc-badge--solid .elementor-heading-title { background: var(--red-600); color: #fff; border-color: var(--red-600); }

body .uc-btn--primary   .elementor-button { background-color: var(--red-600); color: #fff; border-color: var(--red-600); }
body .uc-btn--primary   .elementor-button:hover { background-color: var(--red-700); border-color: var(--red-700); }
body .uc-btn--dark      .elementor-button { background-color: var(--ink-900); color: #fff; border-color: var(--ink-900); }
body .uc-btn--secondary .elementor-button { background-color: var(--paper); color: var(--ink-900); border-color: var(--line-300); }
body .uc-btn--secondary .elementor-button:hover { border-color: var(--ink-900); color: var(--ink-900); }
body .uc-btn--ghost     .elementor-button { background-color: transparent; color: var(--ink-900); border-color: transparent; }
body .uc-btn--ghost     .elementor-button:hover { color: var(--red-600); background-color: transparent; }
body .elementor-widget-form .elementor-button[type="submit"] { background-color: var(--red-600); color: #fff; }

body .uc-card .elementor-icon-box-title,
body .uc-card .elementor-icon-box-title a { color: var(--ink-900); font-size: 15px; font-weight: 600; }
body .uc-card .elementor-icon-box-description { color: var(--ink-400); font-size: 12.5px; }
body .uc-card .elementor-icon-box-icon .elementor-icon { color: var(--ink-900); font-size: 26px; }
body .uc-feat .elementor-icon-box-title,
body .uc-feat .elementor-icon-box-title a { color: var(--ink-900); font-size: 17px; font-weight: 600; }
body .uc-feat .elementor-icon-box-description { color: var(--ink-500); font-size: 14px; }
body .uc-feat .elementor-icon-box-icon .elementor-icon { color: var(--red-600); font-size: 24px; }
body .uc-hairline-grid .elementor-icon-box-title,
body .uc-hairline-grid .elementor-icon-box-title a { color: var(--ink-900); font-size: 15px; font-weight: 600; }
body .uc-hairline-grid .elementor-icon-box-description { color: var(--ink-500); font-size: 13.5px; }
body .uc-hairline-grid .elementor-icon-box-icon .elementor-icon { color: var(--ink-900); font-size: 22px; }

body .uc-section--dark .elementor-widget-heading .elementor-heading-title { color: var(--paper); }
body .uc-section--dark .uc-eyebrow .elementor-heading-title { color: var(--red-500); }
body .uc-section--dark .uc-mono-note .elementor-heading-title,
body .uc-section--dark .uc-mono-note p { color: rgba(255,255,255,.5); }
body .uc-section--dark .uc-stat__value .elementor-heading-title { color: var(--paper); }
body .uc-section--dark .uc-btn--secondary .elementor-button { background-color: transparent; color: var(--paper); border-color: rgba(255,255,255,.3); }

/* ============================================================
   9. ДОБИВКА ПО СПЕЦИФИЧНОСТИ

   Elementor выравнивает icon-box по центру правилом
   .elementor-widget-icon-box.elementor-position-block-start .elementor-icon-box-wrapper
   — это (0,3,0), выше и обычных правил, и префикса body.
   Поэтому здесь селекторы намеренно длиннее: (0,3,1).
   ============================================================ */

body .uc-card.elementor-widget-icon-box .elementor-icon-box-wrapper,
body .uc-feat.elementor-widget-icon-box .elementor-icon-box-wrapper,
body .uc-hairline-grid .elementor-widget-icon-box .elementor-icon-box-wrapper {
  text-align: left;
  align-items: flex-start;
}
body .uc-card.elementor-widget-icon-box .elementor-icon-box-icon,
body .uc-feat.elementor-widget-icon-box .elementor-icon-box-icon {
  margin-inline: 0;
  text-align: left;
}
/* В корпоративном блоке иконка слева от текста — раскладка строкой. */
body .uc-hairline-grid .elementor-widget-icon-box .elementor-icon-box-wrapper {
  flex-direction: row;
  gap: 16px;
}
body .uc-hairline-grid .elementor-widget-icon-box .elementor-icon-box-icon { margin-bottom: 0; }

/* -- Расписание: сетка 180 / гибкая / кнопка.
   Виджет даты получил width:20% при сборке — сбрасываем, иначе дата переносится. -- */
body .uc-schedrow > .e-con-inner {
  display: grid;
  grid-template-columns: 180px minmax(0, 1fr) auto;
  gap: 20px;
  align-items: center;
}
body .uc-schedrow > .e-con-inner > .elementor-widget { width: auto; max-width: none; }
body .uc-schedrow .uc-num .elementor-heading-title { white-space: nowrap; }
body .uc-schedrow { padding-block: 14px; }

/* -- Хайрлайн-сетка: убрать внутренний отступ, иначе фон-линия
   вылезает серой полосой по краю. -- */
body .uc-hairline-grid > .e-con-inner {
  padding: 0;
  background: var(--line-200);
  gap: 1px;
}
body .uc-section--dark .uc-hairline-grid > .e-con-inner { background: #2a2a2e; }

/* -- Карточка курса: воздух между заголовком и мета-строкой -- */
body .uc-course__title { margin-bottom: 6px; }

@media (max-width: 767px) {
  body .uc-schedrow > .e-con-inner { grid-template-columns: 1fr; gap: 6px; }
  body .uc-hairline-grid > .e-con-inner { grid-template-columns: 1fr; }
}

/* Ячейки хайрлайн-сетки должны заполнять строку целиком, иначе
   фон-линия проступает серыми полями по краям. */
body .uc-hairline-grid > .e-con-inner { align-items: stretch; }
body .uc-hairline-grid > .e-con-inner > .e-con { width: 100%; margin: 0; }

/* Поля формы — по дизайн-системе: почти острые углы, тонкая линия. */
body .elementor-widget-form .elementor-field-group .elementor-field {
  border: 1px solid var(--line-300);
  border-radius: var(--radius-md);
  background: var(--paper);
  font-family: var(--font-sans);
  font-size: var(--fs-body);
  color: var(--ink-900);
  padding: 11px 12px;
}
body .elementor-widget-form .elementor-field-group > label {
  font-size: var(--fs-sm); font-weight: 500; color: var(--ink-500); margin-bottom: 6px;
}
body .elementor-widget-form .elementor-field:focus {
  outline: none; border-color: var(--ink-900); box-shadow: var(--shadow-focus);
}

/* Хайрлайн-сетка через бордеры, а не через фон+gap.
   Приём с подложкой оставлял серые поля там, где ячейки не добирали
   ширину до 100%. Бордеры на ячейках такого зазора не дают. */
body .uc-hairline-grid > .e-con-inner { background: transparent; gap: 0; }
body .uc-hairline-grid > .e-con-inner > .e-con + .e-con { border-left: 1px solid var(--line-200); }
body .uc-hairline-grid > .e-con-inner > .elementor-widget + .elementor-widget { border-top: 1px solid var(--line-200); }
body .uc-section--dark .uc-hairline-grid > .e-con-inner > .e-con + .e-con { border-left-color: #2a2a2e; }
body .uc-section--dark .uc-hairline-grid > .e-con-inner > .elementor-widget + .elementor-widget { border-top-color: #2a2a2e; }

/* Ячейки хайрлайн-ряда: равная ширина через flex-basis 0.
   Заданные при сборке --width:25% вместе с бордерами-разделителями
   давали неравные колонки (первая шире остальных на 39px). */
body .uc-hairline-grid > .e-con-inner > .e-con {
  flex: 1 1 0;
  width: auto;
  min-width: 0;
}

/* Рамка хайрлайн-блока — на внутреннем элементе.
   У boxed-контейнера рамка внешнего блока тянется во всю ширину вьюпорта,
   а не по колонке 1200px. Горизонтальные margin тут не помогают: ширина
   остаётся 100%, и блок просто уезжает за правый край. */
body .uc-hairline-grid { border: 0; }
body .uc-hairline-grid > .e-con-inner { border: 1px solid var(--line-200); }
body .uc-section--dark .uc-hairline-grid > .e-con-inner { border-color: #2a2a2e; }

/* Карточки в ряду тянутся на всю высоту строки.
   Иначе карточка с более коротким описанием («ИСО/МЭК 27001-2021»)
   оказывается ниже соседей и ряд выглядит рваным. */
body .e-con-inner > .uc-card,
body .e-con-inner > .elementor-widget-icon-box.uc-card { align-self: stretch; }
body .elementor-widget-icon-box.uc-card { display: flex; flex-direction: column; }
body .elementor-widget-icon-box.uc-card > .elementor-widget-container { flex: 1; }

/* Строка расписания: дочерние контейнеры получили при сборке --width:33.33%
   (побочный эффект flex_direction=row). В грид-раскладке это давало треть
   от колонки — заголовок курса переносился при куче свободного места. */
body .uc-schedrow > .e-con-inner > .e-con { width: 100%; max-width: none; }

/* Равная высота карточек: селектор без привязки к родителю —
   вложенные контейнеры Elementor рендерятся как .e-con-full, без .e-con-inner. */
body .uc-card.elementor-widget-icon-box { align-self: stretch; height: auto; }
body .e-con > .uc-card { align-self: stretch; }

/* Сборщик обернул каждую карточку в собственный контейнер (25% ширины).
   Тянуть надо обёртку, а виджет — на её высоту; иначе карточка с более
   коротким описанием ниже соседей. */
body .uc-card.elementor-widget-icon-box { height: 100%; }
body .e-con-inner > .e-con, body .e-con-full > .e-con { align-self: stretch; }

/* ============================================================
   10. СТРАНИЦА КУРСА
   ============================================================ */

/* Таблица фактов в герое: строки «ключ — значение».
   Один text-editor, маркетолог правит как обычный текст. */
body .uc-facts { border: 1px solid rgba(255,255,255,.14); padding: 10px 24px 18px; }
body .uc-facts p {
  display: flex; justify-content: space-between; align-items: baseline; gap: 16px;
  margin: 0; padding: 12px 0; border-bottom: 1px solid rgba(255,255,255,.1);
  font-size: 14px; color: rgba(255,255,255,.6);
}
body .uc-facts p:last-child { border-bottom: 0; }
body .uc-facts strong { color: #fff; font-weight: 600; text-align: right; }
body .uc-facts-price .elementor-heading-title { font-family: var(--font-mono); font-size: 26px; font-weight: 600; color: #fff; }

/* Красный eyebrow на тёмном герое курса — светлее, читаемость. */
body .uc-section--dark .uc-eyebrow-hero .elementor-heading-title { color: #ff6a5f; font-family: var(--font-mono); font-size: 12px; letter-spacing: .12em; text-transform: uppercase; }

/* Аккордеон программы — вид дизайн-системы: тонкие линии, моно-часы. */
body .uc-program .elementor-accordion .elementor-accordion-item {
  border: 1px solid var(--line-200); border-radius: var(--radius-md);
  margin-bottom: 10px; overflow: hidden; background: var(--paper);
}
body .uc-program .elementor-accordion .elementor-tab-title {
  font-family: var(--font-sans); font-size: 16px; font-weight: 600; color: var(--ink-900);
  padding: 16px 20px; border-bottom: 0;
}
body .uc-program .elementor-accordion .elementor-tab-title.elementor-active { border-bottom: 1px solid var(--line-100); }
body .uc-program .elementor-accordion .elementor-tab-title .elementor-accordion-icon { color: var(--ink-400); }
body .uc-program .elementor-accordion .elementor-tab-content {
  font-size: 14.5px; line-height: 1.65; color: var(--ink-500);
  padding: 16px 20px 20px; border-top: 0;
}
body .uc-program .elementor-accordion .elementor-tab-content ol { margin: 0; padding-left: 20px; }
body .uc-program .elementor-accordion .elementor-tab-content li { margin-bottom: 6px; }

/* Плашка «условия обучения» */
body .uc-note { background: var(--paper-50); border: 1px solid var(--line-200); border-radius: var(--radius-md); padding: 20px 24px; }
body .uc-note p { margin: 0; font-size: 14.5px; line-height: 1.6; color: var(--ink-500); }

/* Заголовки аккордеона — это <a>, их перекрашивает глобальный цвет ссылок. */
body .uc-program .elementor-accordion .elementor-tab-title a,
body .uc-program .elementor-accordion .elementor-accordion-title { color: var(--ink-900); }
body .uc-program .elementor-accordion .elementor-tab-title a:hover { color: var(--red-600); }
body .uc-program .elementor-tab-content li::marker { color: var(--ink-400); font-family: var(--font-mono); font-size: 13px; }

/* Тинтовый бейдж нечитаем на тёмном герое — инвертируем. */
body .uc-section--dark .uc-badge:not(.uc-badge--solid) .elementor-heading-title {
  background: rgba(255,255,255,.08); color: #fff; border-color: rgba(255,255,255,.25);
}

/* ============================================================
   11. СТРАНИЦА КУРСА — СТРОГО ПО МАКЕТУ course.html
   Эталон отрендерен из ui_kits/marketing + _ds_bundle.js,
   значения сверены с исходниками компонентов.
   ============================================================ */

/* -- Badge: точные метрики компонента (11px, .04em, 4px 9px) -- */
body .uc-badge .elementor-heading-title,
body .uc-badge--neutral .elementor-heading-title,
body .uc-badge--solid .elementor-heading-title {
  display: inline-flex; align-items: center; gap: 6px;
  font-family: var(--font-mono); font-size: 11px; font-weight: 500;
  letter-spacing: .04em; text-transform: uppercase;
  padding: 4px 9px; border-radius: var(--radius-sm);
}
body .uc-badge .elementor-heading-title { background: var(--red-50); color: var(--red-700); border: 1px solid var(--red-100); }
body .uc-badge--neutral .elementor-heading-title { background: var(--paper); color: var(--ink-500); border-color: var(--line-300); }
/* solid по дизайн-системе — ink-900, не красный */
body .uc-badge--solid .elementor-heading-title { background: var(--ink-900); color: #fff; border-color: var(--ink-900); }
body .uc-badge--dot .elementor-heading-title::before {
  content: ''; width: 6px; height: 6px; border-radius: 50%;
  background: var(--red-600); flex-shrink: 0;
}
/* ОТКАТ инверсии на тёмном: в макете тинтовый бейдж остаётся тинтовым */
body .uc-section--dark .uc-badge:not(.uc-badge--solid) .elementor-heading-title {
  background: var(--red-50); color: var(--red-700); border-color: var(--red-100);
}

/* -- Карточка фактов: паддинг 24 по компоненту -- */
body .uc-facts { padding: 24px; }

/* -- Полоса табов: sticky, как в макете -- */
body .uc-tabsbar {
  position: sticky; top: 0; z-index: 40;
  background: var(--paper); border-bottom: 1px solid var(--line-200);
}
body .uc-tabs .e-n-tabs-heading { gap: 0; justify-content: flex-start; }
body .uc-tabs .e-n-tab-title {
  background: transparent; border: none; border-radius: 0;
  padding: 12px 18px; margin-bottom: -1px;
  border-bottom: 2px solid transparent;
}
body .uc-tabs .e-n-tab-title .e-n-tab-title-text {
  font-family: var(--font-sans); font-size: var(--fs-body); font-weight: 500; color: var(--ink-400);
}
body .uc-tabs .e-n-tab-title[aria-selected="true"],
body .uc-tabs .e-n-tab-title.e-active { border-bottom-color: var(--red-600); }
body .uc-tabs .e-n-tab-title[aria-selected="true"] .e-n-tab-title-text,
body .uc-tabs .e-n-tab-title.e-active .e-n-tab-title-text { color: var(--ink-900); font-weight: 600; }
body .uc-tabs .e-n-tabs-content { padding-top: 44px; padding-bottom: 44px; }

/* Заголовок внутри вкладки — 24px по макету */
body .uc-tab-h2 .elementor-heading-title { font-size: 24px; font-weight: 700; letter-spacing: -.01em; }

/* -- Аккордеон программы: СТРОГО по ModuleAccordion.jsx --
   Одна рамка вокруг всего, нумерация 01/02 моно-красным,
   плюс справа, активный заголовок на paper-50, отступ контента 66px. */
body .uc-program { max-width: 820px; }
body .uc-program .elementor-accordion {
  border: 1px solid var(--line-200); border-radius: var(--radius-md);
  overflow: hidden; counter-reset: uc-mod;
}
body .uc-program .elementor-accordion .elementor-accordion-item {
  border: none; border-bottom: 1px solid var(--line-100);
  border-radius: 0; margin-bottom: 0; background: var(--paper);
}
body .uc-program .elementor-accordion .elementor-accordion-item:last-child { border-bottom: none; }
body .uc-program .elementor-accordion .elementor-tab-title {
  display: flex; align-items: center; gap: 16px;
  padding: 18px 22px; border-bottom: 0; counter-increment: uc-mod;
}
body .uc-program .elementor-accordion .elementor-tab-title::before {
  content: counter(uc-mod, decimal-leading-zero);
  font-family: var(--font-mono); font-size: 13px; color: var(--red-600);
  width: 28px; flex-shrink: 0;
}
body .uc-program .elementor-accordion .elementor-tab-title a {
  flex: 1; font-size: var(--fs-h4); font-weight: 600; color: var(--ink-900);
}
body .uc-program .elementor-accordion .elementor-tab-title .elementor-accordion-icon {
  order: 10; margin-left: auto; width: auto; color: var(--ink-400); font-size: 16px;
}
body .uc-program .elementor-accordion .elementor-tab-title.elementor-active { background: var(--paper-50); }
body .uc-program .elementor-accordion .elementor-tab-content {
  padding: 4px 22px 22px 66px; border-top: 0;
  font-size: var(--fs-body); line-height: 1.45; color: var(--ink-700);
}
body .uc-program .elementor-tab-content ol {
  list-style: none; margin: 0; padding: 0;
  display: flex; flex-direction: column; gap: 8px; counter-reset: uc-les;
}
body .uc-program .elementor-tab-content ol li {
  display: flex; gap: 10px; margin: 0; counter-increment: uc-les;
}
body .uc-program .elementor-tab-content ol li::before {
  content: counter(uc-les, decimal-leading-zero);
  font-family: var(--font-mono); font-size: 12px; color: var(--ink-300); margin-top: 2px;
}

/* -- Чипы инструментов: по ToolChip.jsx -- */
body .uc-chips { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
body .uc-chips .uc-chip2 {
  display: flex; align-items: center; gap: 12px;
  background: var(--paper); border: 1px solid var(--line-200);
  border-radius: var(--radius-md); padding: 12px 14px; min-width: 0;
}
body .uc-chip2__mono {
  width: 34px; height: 34px; flex-shrink: 0;
  background: var(--ink-900); color: #fff;
  display: flex; align-items: center; justify-content: center;
  border-radius: var(--radius-sm);
  font-family: var(--font-mono); font-size: 15px; font-weight: 600;
}
body .uc-chip2__body { min-width: 0; }
body .uc-chip2__body strong { display: block; font-size: var(--fs-body); font-weight: 600; color: var(--ink-900); }
body .uc-chip2__body em {
  display: block; font-style: normal; font-size: var(--fs-xs); color: var(--ink-400);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
@media (max-width: 1024px) { body .uc-chips { grid-template-columns: repeat(2, 1fr); } }

/* -- Тарифы: по TariffCard.jsx -- */
body .uc-tariffs { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; max-width: 720px; align-items: stretch; }
body .uc-tariff {
  background: var(--paper); border: 1px solid var(--line-200);
  border-radius: var(--radius-md); padding: 28px; position: relative;
}
body .uc-tariff--featured {
  background: var(--ink-900); border-color: var(--ink-900);
  border-top: 3px solid var(--red-600);
}
body .uc-tariff--featured::after {
  content: 'РЕКОМЕНДУЕМ'; position: absolute; top: -1px; right: 20px;
  background: var(--red-600); color: #fff;
  font-family: var(--font-mono); font-size: 10px; letter-spacing: .08em;
  padding: 4px 10px; border-radius: 0 0 var(--radius-sm) var(--radius-sm);
}
body .uc-tariff__name .elementor-heading-title { font-size: var(--fs-h3); font-weight: 600; letter-spacing: -.01em; }
body .uc-tariff--featured .uc-tariff__name .elementor-heading-title { color: #fff; }
body .uc-tariff__blurb, body .uc-tariff__blurb p { font-size: var(--fs-sm); color: var(--ink-500); line-height: 1.5; margin: 0; }
body .uc-tariff--featured .uc-tariff__blurb p { color: rgba(255,255,255,.65); }
body .uc-tariff__price .elementor-heading-title { font-family: var(--font-mono); font-size: 30px; font-weight: 600; color: var(--ink-900); }
body .uc-tariff--featured .uc-tariff__price .elementor-heading-title { color: #fff; }
body .uc-tariff__features { border-top: 1px solid var(--line-100); margin-top: 22px; padding-top: 22px; }
body .uc-tariff--featured .uc-tariff__features { border-top-color: rgba(255,255,255,.14); }
body .uc-tariff__features ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 11px; }
body .uc-tariff__features li {
  font-size: var(--fs-body); line-height: 1.45; color: var(--ink-600); margin: 0;
  padding-left: 26px;
  background: url("data:image/svg+xml;charset=utf8,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3.3 8.4l3 3L12.8 5' stroke='%23cc3b34' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat 0 3px;
}
body .uc-tariff--featured .uc-tariff__features li { color: rgba(255,255,255,.85); }

/* Табы: гасим дефолтную заливку Elementor через переменные виджета.
   По макету активный таб — прозрачный фон + красное подчёркивание 2px. */
body .uc-tabs {
  --n-tabs-title-background-color: transparent;
  --n-tabs-title-background-color-hover: transparent;
  --n-tabs-title-background-color-active: transparent;
  --n-tabs-title-color: var(--ink-400);
  --n-tabs-title-color-hover: var(--ink-900);
  --n-tabs-title-color-active: var(--ink-900);
  --n-tabs-title-border-radius: 0;
  --n-tabs-title-padding-block-start: 12px;
  --n-tabs-title-padding-block-end: 12px;
  --n-tabs-title-padding-inline-start: 18px;
  --n-tabs-title-padding-inline-end: 18px;
}
body .uc-tabs .e-n-tab-title,
body .uc-tabs .e-n-tab-title[aria-selected="true"],
body .uc-tabs .e-n-tab-title:hover { background: transparent; }
body .uc-tabs .e-n-tab-title { font-family: var(--font-sans); font-size: var(--fs-body); font-weight: 500; color: var(--ink-400); }
body .uc-tabs .e-n-tab-title[aria-selected="true"] { color: var(--ink-900); font-weight: 600; }

/* Иконка аккордеона — ink-400 по макету, не красная. */
body .uc-program .elementor-accordion .elementor-tab-title .elementor-accordion-icon,
body .uc-program .elementor-accordion .elementor-tab-title .elementor-accordion-icon i,
body .uc-program .elementor-accordion .elementor-tab-title .elementor-accordion-icon svg { color: var(--ink-400); fill: var(--ink-400); }

/* Кнопка во всю ширину (правило потерялось при консолидации CSS). */
body .uc-btn--block, body .uc-btn--block .elementor-button-wrapper { width: 100%; }
body .uc-btn--block .elementor-button { display: flex; width: 100%; padding: 14px; font-size: 15px; }
body .uc-tariff .uc-btn--block { margin-top: 24px; }

/* По эталону линия есть и под последней строкой фактов — перед ценой. */
body .uc-facts p:last-child { border-bottom: 1px solid rgba(255,255,255,.1); }

/* ============================================================
   12. СТРАНИЦА КУРСА v2 — по настоящему ui_kits/marketing/course.html
   (якорная навигация, прайс-карта в герое, секции; НЕ табы).
   Значения взяты из исходника макета дословно.
   ============================================================ */

/* Хлебные крошки в тёмном герое: mono 11.5/.05em, rgba .55 */
body .uc-crumbs p { font-family: var(--font-mono); font-size: 11.5px; letter-spacing: .05em; color: rgba(255,255,255,.55); margin: 0; }
body .uc-crumbs a { color: rgba(255,255,255,.55); text-decoration: none; }
body .uc-crumbs a:hover { color: #fff; }

/* H1 курса: 42/1.06, максимум 18ch */
body .uc-course-h1 .elementor-heading-title { font-size: 42px; line-height: 1.06; font-weight: 700; letter-spacing: -.015em; max-width: 18ch; color: #fff; }

/* Мета-строка героя: иконка red-500 18px + текст 14.5/500 */
body .uc-meta .elementor-icon-list-items { display: flex; flex-wrap: wrap; gap: 36px; }
body .uc-meta .elementor-icon-list-item { display: flex; align-items: center; gap: 10px; padding: 0 !important; }
body .uc-meta .elementor-icon-list-icon i,
body .uc-meta .elementor-icon-list-icon svg { color: var(--red-500); fill: var(--red-500); font-size: 18px; width: 18px; }
body .uc-meta .elementor-icon-list-text { font-size: 14.5px; font-weight: 500; color: #fff; }

/* Прайс-карта: белая, border line-200, shadow-lg, паддинг 28, sticky */
body .uc-pricecard {
  background: var(--paper); color: var(--ink-900);
  border: 1px solid var(--line-200); box-shadow: var(--shadow-lg);
  padding: 28px; position: sticky; top: 24px;
}
body .uc-pricecard .uc-eyebrow .elementor-heading-title { margin-bottom: 8px; }
body .uc-price-big .elementor-heading-title { font-family: var(--font-mono); font-size: 34px; font-weight: 700; letter-spacing: -.01em; color: var(--ink-900); }
body .uc-price-note, body .uc-price-note p { font-size: 13px; color: var(--ink-400); margin: 0; }
body .uc-pricecard .uc-btn--block + .uc-btn--block { margin-top: -4px; }
/* строки с иконками под разделителем */
body .uc-price-perks { border-top: 1px solid var(--line-200); padding-top: 16px; margin-top: 6px; }
body .uc-price-perks .elementor-icon-list-item { display: flex; align-items: center; gap: 10px; padding: 6px 0; }
body .uc-price-perks .elementor-icon-list-icon i,
body .uc-price-perks .elementor-icon-list-icon svg { color: var(--ink-500); fill: var(--ink-500); font-size: 16px; width: 16px; }
body .uc-price-perks .elementor-icon-list-text { font-size: 13.5px; color: var(--ink-600); }

/* Якорная навигация: 13.5 ink-500, gap 28, активный ink-900 + подчерк ink-900 */
body .uc-anchorbar { background: var(--paper); border-bottom: 1px solid var(--line-200); position: sticky; top: 0; z-index: 50; }
body .uc-anchorbar > .e-con-inner { display: flex; flex-direction: row; gap: 28px; align-items: stretch; }
body .uc-anchor, body .uc-anchor p { margin: 0; }
body .uc-anchor a {
  display: inline-block; font-size: 13.5px; color: var(--ink-500);
  padding: 14px 0; border-bottom: 1px solid transparent; margin-bottom: -1px;
  text-decoration: none;
}
body .uc-anchor a:hover { color: var(--ink-900); }
body .uc-anchor--active a { color: var(--ink-900); font-weight: 600; border-bottom-color: var(--ink-900); }

/* Секции: паддинг 52, h2 28 с отступом 24 — глобальные h2 уже 28 */
body .uc-h2-20 .elementor-heading-title { font-size: 20px; font-weight: 700; letter-spacing: -.01em; margin-bottom: 8px; }
body .uc-h2-24 .elementor-heading-title { font-size: 24px; font-weight: 700; letter-spacing: -.01em; }
body .uc-h2-26 .elementor-heading-title { font-size: 26px; font-weight: 700; letter-spacing: -.01em; }

/* Цель программы: первый абзац 17 ink-700, второй 15 ink-500 */
body .uc-goal-lead p { font-size: 17px; line-height: 1.65; color: var(--ink-700); margin: 0 0 20px; max-width: 58ch; }
body .uc-goal-sub p { font-size: 15px; line-height: 1.65; color: var(--ink-500); margin: 0; max-width: 58ch; }

/* Карточка «для кого»: pad 26, строки с разделителями, иконка красная */
body .uc-whocard { background: var(--paper); border: 1px solid var(--line-200); border-radius: var(--radius-md); padding: 26px; }
body .uc-whocard .elementor-icon-list-item { display: flex; align-items: flex-start; gap: 12px; padding: 12px 0; border-top: 1px solid var(--line-200); }
body .uc-whocard .elementor-icon-list-item:first-child { border-top: none; padding-top: 0; }
body .uc-whocard .elementor-icon-list-icon i,
body .uc-whocard .elementor-icon-list-icon svg { color: var(--red-600); fill: var(--red-600); font-size: 18px; width: 18px; margin-top: 2px; }
body .uc-whocard .elementor-icon-list-text { font-size: 15px; line-height: 1.55; color: var(--ink-700); }

/* Аккордеон: правки под настоящий макет.
   Метка «Раздел N» справа (счётчиком), закрытый заголовок белый,
   открытый paper-50, контент прозрачный (сквозит фон секции). */
body .uc-program .elementor-accordion .elementor-accordion-item { background: transparent; }
body .uc-program .elementor-accordion .elementor-tab-title { background: var(--paper); }
body .uc-program .elementor-accordion .elementor-tab-title.elementor-active { background: var(--paper-50); }
body .uc-program .elementor-accordion .elementor-tab-content { background: transparent; }
body .uc-program .elementor-accordion .elementor-tab-title a { order: 1; }
body .uc-program .elementor-accordion .elementor-tab-title::after {
  content: 'Раздел ' counter(uc-mod);
  order: 2; font-family: var(--font-mono); font-size: 12px; color: var(--ink-400);
  flex-shrink: 0; margin-left: auto;
}
body .uc-program .elementor-accordion .elementor-tab-title .elementor-accordion-icon { order: 3; margin-left: 0; }
/* Аннотация раздела перед списком уроков */
body .uc-program .elementor-tab-content p { font-size: 15px; line-height: 1.55; color: var(--ink-500); margin: 0 0 14px; }
body .uc-program .elementor-tab-content ol li { font-size: 15px; color: var(--ink-700); }

/* Списки «результат/требования»: 15 ink-700, ряды по 10px */
body .uc-li .elementor-icon-list-item { display: flex; align-items: flex-start; gap: 12px; padding: 10px 0; }
body .uc-li .elementor-icon-list-text { font-size: 15px; line-height: 1.55; color: var(--ink-700); }
body .uc-li--check .elementor-icon-list-icon i,
body .uc-li--check .elementor-icon-list-icon svg { color: var(--red-600); fill: var(--red-600); font-size: 16px; width: 18px; margin-top: 3px; }
body .uc-li--dot .elementor-icon-list-icon i,
body .uc-li--dot .elementor-icon-list-icon svg { color: var(--ink-400); fill: var(--ink-400); font-size: 7px; width: 18px; margin-top: 8px; }

/* Контакты моно в блоке записи */
body .uc-mono-contacts p { font-family: var(--font-mono); font-size: 13px; line-height: 1.9; color: var(--ink-500); margin: 0; }

/* Форма записи: подпись-согласие в html-поле формы */
body .uc-enroll-form .elementor-field-type-html { font-size: 12px; color: var(--ink-400); max-width: 34ch; align-self: center; }
body .uc-enroll-form .elementor-field-group.elementor-field-type-submit { align-items: center; justify-content: flex-end; }

/* Прайс-карта — белый остров внутри тёмной секции: возвращаем светлую
   палитру поверх правил uc-section--dark (иначе цена и secondary-кнопка
   становятся белым по белому). */
body .uc-section--dark .uc-pricecard .elementor-widget-heading .elementor-heading-title { color: var(--ink-900); }
body .uc-section--dark .uc-pricecard .uc-eyebrow .elementor-heading-title { color: var(--red-600); }
body .uc-section--dark .uc-pricecard .uc-price-big .elementor-heading-title { color: var(--ink-900); font-family: var(--font-mono); font-size: 34px; font-weight: 700; letter-spacing: -.01em; }
body .uc-section--dark .uc-pricecard p { color: var(--ink-400); }
body .uc-section--dark .uc-pricecard .uc-btn--secondary .elementor-button { background: var(--paper); color: var(--ink-900); border-color: var(--line-300); }
body .uc-section--dark .uc-pricecard .uc-btn--secondary .elementor-button:hover { border-color: var(--ink-900); }
body .uc-section--dark .uc-pricecard .elementor-icon-list-text { color: var(--ink-600); }

/* Точки требований — мельче, как в макете */
body .uc-li--dot .elementor-icon-list-icon i,
body .uc-li--dot .elementor-icon-list-icon svg { font-size: 5px; width: 18px; margin-top: 9px; }

/* Размер иконок icon-list управляется переменной Elementor — правило
   font-size на <i> проигрывает. Задаём переменную. */
body .uc-li--dot { --e-icon-list-icon-size: 5px; }
body .uc-li--check { --e-icon-list-icon-size: 15px; }
/* Зазор между кнопками прайс-карты (были слиплись из-за -4px) */
body .uc-pricecard .uc-btn--block + .uc-btn--block { margin-top: 0; }

/* Иконки отдаются как SVG — размер задаёт width, а не font-size.
   Мои же ранние правила держали width:18px. */
body .uc-li--dot .elementor-icon-list-icon svg { width: 5px; height: 5px; margin-top: 9px; }
body .uc-li--check .elementor-icon-list-icon svg { width: 15px; height: 15px; margin-top: 4px; }
body .uc-li--dot .elementor-icon-list-icon,
body .uc-li--check .elementor-icon-list-icon { width: 18px; flex-shrink: 0; }

/* ============================================================
   13. ПРАВКИ ПО ЗАМЕЧАНИЯМ (23.07)
   ============================================================ */

/* 1) Прайс-карта: воздух между подписью «за одного слушателя…»
      и кнопкой «Записаться на курс» */
body .uc-pricecard .uc-price-note { margin-bottom: 14px; }

/* 2) Карточка «для кого этот курс» / «требования к подготовке»:
      воздух между заголовком-капсом и перечислением */
body .uc-whocard .uc-eyebrow .elementor-heading-title { margin-bottom: 16px; }

/* ============================================================
   14. КАТАЛОГ КУРСОВ — по ui_kits/marketing/catalog.html
   ============================================================ */

/* Поиск в герое */
body .uc-cat-search form { display: flex; gap: 12px; max-width: 560px; }
body .uc-cat-search input[type="search"] {
  flex: 1; border: 1px solid var(--line-300); border-radius: var(--radius-md);
  background: var(--paper); font-family: var(--font-sans); font-size: var(--fs-body);
  color: var(--ink-900); padding: 13px 12px; outline: none;
}
body .uc-cat-search input[type="search"]:focus { border-color: var(--ink-900); box-shadow: var(--shadow-focus); }
body .uc-cat-search button {
  font-family: var(--font-sans); font-weight: 600; font-size: var(--fs-body-lg);
  padding: 16px 30px; border-radius: var(--radius-md); border: 1px solid var(--red-600);
  background: var(--red-600); color: #fff; cursor: pointer;
}
body .uc-cat-search button:hover { background: var(--red-700); }

/* Сайдбар направлений */
body .uc-sidebar { position: sticky; top: 24px; }
body .uc-dirnav { border: 1px solid var(--line-200); background: var(--paper); }
body .uc-dirnav p { margin: 0; }
body .uc-dirnav a {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 11px 14px; font-size: 13.5px; color: var(--ink-600);
  border-left: 2px solid transparent; text-decoration: none;
}
body .uc-dirnav a:hover { background: var(--paper-50); color: var(--ink-900); }
body .uc-dirnav a em { font-style: normal; font-family: var(--font-mono); font-size: 11px; color: var(--ink-400); }
body .uc-dirnav a i { width: 18px; color: var(--ink-500); margin-right: 8px; }
body .uc-dirnav a span { display: flex; align-items: center; }

/* Карточка «Не нашли нужное?» */
body .uc-sidecard { border: 1px solid var(--line-200); border-radius: var(--radius-md); background: var(--paper); padding: 20px; margin-top: 20px; }
body .uc-sidecard .elementor-heading-title { font-size: 14.5px; font-weight: 600; color: var(--ink-900); }
body .uc-sidecard p { font-size: 13px; line-height: 1.55; color: var(--ink-500); margin: 0; }

/* Заголовок направления */
body .uc-dirhead { display: flex; align-items: center; gap: 14px; }
body .uc-dirhead .uc-dirhead__ico {
  width: 40px; height: 40px; flex-shrink: 0; border: 1px solid var(--line-200);
  display: grid; place-items: center; background: var(--paper);
}
body .uc-dirhead .uc-dirhead__ico i, body .uc-dirhead .uc-dirhead__ico svg { font-size: 20px; width: 20px; color: var(--ink-900); fill: var(--ink-900); }
body .uc-dirhead h2 { font-size: 22px; font-weight: 700; letter-spacing: -.01em; margin: 0; color: var(--ink-900); }
body .uc-dirhead .uc-dirhead__note { font-size: 13px; color: var(--ink-400); }
body .uc-dirhead .uc-dirhead__n { margin-left: auto; font-family: var(--font-mono); font-size: 12px; color: var(--ink-400); white-space: nowrap; }

/* Таблица курсов направления */
body .uc-ctable { border: 1px solid var(--line-200); border-top: 2px solid var(--ink-900); background: var(--paper); }
body .uc-ctable a.uc-crow {
  display: grid; grid-template-columns: minmax(0,1fr) 150px 170px 100px;
  gap: 20px; align-items: center; padding: 18px 20px;
  border-top: 1px solid var(--line-200); text-decoration: none;
  transition: background var(--dur-base);
}
body .uc-ctable a.uc-crow:first-child { border-top: none; }
body .uc-ctable a.uc-crow:hover { background: var(--paper-50); }
body .uc-crow .uc-crow__code { display: block; font-family: var(--font-mono); font-size: 11px; letter-spacing: .08em; color: var(--red-600); margin-bottom: 5px; }
body .uc-crow strong { display: block; font-size: 15px; font-weight: 600; color: var(--ink-900); line-height: 1.35; }
body .uc-crow small { display: block; font-size: 12px; color: var(--ink-400); }
body .uc-crow .uc-crow__v { font-size: 13.5px; color: var(--ink-700); }
body .uc-crow .uc-crow__go { justify-self: end; font-size: 13px; font-weight: 600; color: var(--ink-900); white-space: nowrap; }
body .uc-ctable a.uc-crow:hover .uc-crow__go { color: var(--red-600); }

@media (max-width: 1024px) {
  body .uc-ctable a.uc-crow { grid-template-columns: 1fr; gap: 8px; }
  body .uc-crow .uc-crow__go { justify-self: start; }
  body .uc-sidebar { position: static; }
}

/* Активный пункт навигации каталога (ставится scroll-spy скриптом) */
body .uc-dirnav a.on { color: var(--ink-900); font-weight: 600; border-left-color: var(--red-600); background: var(--paper-50); }

/* ============================================================
   15. ДОКУМЕНТЫ И ЛИЦЕНЗИИ — по ui_kits/marketing/documents.html
   ============================================================ */

/* Карточка лицензии в герое */
body .uc-permit { background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.14); padding: 24px; }
body .uc-permit__head { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; }
body .uc-permit__head i { color: var(--red-500); font-size: 20px; }
body .uc-permit__label { font-family: var(--font-mono); font-size: 11px; letter-spacing: .1em; color: rgba(255,255,255,.6); text-transform: uppercase; }
body .uc-permit__title { font-size: 15px; font-weight: 600; color: #fff; margin-bottom: 6px; }
body .uc-permit__text { font-size: 13.5px; color: rgba(255,255,255,.6); line-height: 1.55; }

/* Компактный заголовок раздела (38px бокс — по макету документов) */
body .uc-dirhead--sm .uc-dirhead__ico { width: 38px; height: 38px; }
body .uc-dirhead--sm .uc-dirhead__ico i { font-size: 19px; }

/* Список документов */
body .uc-doclist { border: 1px solid var(--line-200); border-top: 2px solid var(--ink-900); background: var(--paper); }
body .uc-doclist a.uc-doc {
  display: flex; align-items: center; gap: 14px; padding: 15px 18px;
  border-top: 1px solid var(--line-200); text-decoration: none;
  transition: background var(--dur-base);
}
body .uc-doclist a.uc-doc:first-child { border-top: none; }
body .uc-doclist a.uc-doc:hover { background: var(--paper-50); }
body .uc-doc__ext {
  width: 34px; height: 34px; flex: none;
  border: 1px solid var(--line-200); display: grid; place-items: center;
  font-family: var(--font-mono); font-size: 9px; font-weight: 600;
  letter-spacing: .02em; color: var(--ink-500); background: var(--paper);
}
body .uc-doc__t { font-size: 14.5px; color: var(--ink-800); line-height: 1.4; flex: 1; }
body .uc-doc__m { font-family: var(--font-mono); font-size: 11px; letter-spacing: .06em; color: var(--ink-400); transition: color var(--dur-base); white-space: nowrap; }
body .uc-doclist a.uc-doc:hover .uc-doc__m { color: var(--red-600); }
body .uc-doc__i { color: var(--ink-400); font-size: 15px; width: 16px; text-align: center; }

@media (max-width: 1024px) {
  body .uc-doclist a.uc-doc { flex-wrap: wrap; }
}

/* ============================================================
   16. КОНТАКТЫ — по ui_kits/marketing/contacts.html
   ============================================================ */

/* Контактные карточки 4-в-ряд */
body .uc-cicards { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
body .uc-cicards .uc-ci { display: flex; gap: 16px; align-items: flex-start; padding: 20px; border: 1px solid var(--line-200); background: var(--paper); }
body .uc-ci > i { color: var(--red-600); font-size: 22px; margin-top: 2px; }
body .uc-ci__l { font-size: 12px; letter-spacing: .02em; color: var(--ink-400); margin-bottom: 5px; }
body .uc-ci__v { font-size: 17px; font-weight: 600; color: var(--ink-900); }
body .uc-ci__n { font-size: 13px; color: var(--ink-500); margin-top: 3px; }
@media (max-width: 1024px) { body .uc-cicards { grid-template-columns: repeat(2, 1fr); } }

/* Карта */
body .uc-map { border: 1px solid var(--line-200); display: flex; flex-direction: column; height: 100%; }
body .uc-map__frame { flex: 1; min-height: 420px; position: relative; background: repeating-linear-gradient(135deg,#e9e9ea 0 12px,#f3f3f4 12px 24px); }
body .uc-map__frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
body .uc-map__bar { border-top: 1px solid var(--line-200); padding: 16px 20px; display: flex; justify-content: space-between; align-items: center; background: var(--paper); gap: 12px; }
body .uc-map__addr { font-size: 14px; color: var(--ink-700); }
body .uc-map__route { font-size: 13px; font-weight: 600; color: var(--ink-900); white-space: nowrap; }
body .uc-map__route:hover { color: var(--red-600); }
body .uc-map__route i { font-size: 12px; margin-left: 6px; color: var(--ink-400); }

/* Карточка формы «Напишите нам» */
body .uc-contactform { background: var(--paper); border: 1px solid var(--line-200); border-top: 3px solid var(--red-600); border-radius: var(--radius-md); padding: 32px; }
body .uc-contactform .uc-h2-24 .elementor-heading-title { margin-bottom: 6px; }

/* Гостиницы */
body .uc-hotels { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
body .uc-hotels .uc-hotel { border: 1px solid var(--line-200); border-top: 2px solid var(--ink-900); background: var(--paper); padding: 24px; }
body .uc-hotel__head { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; }
body .uc-hotel__head i { color: var(--red-600); font-size: 20px; }
body .uc-hotel__head strong { font-size: 16px; font-weight: 600; color: var(--ink-900); }
body .uc-hotel__row { display: flex; gap: 9px; align-items: flex-start; margin-top: 9px; font-size: 14px; color: var(--ink-600); }
body .uc-hotel__row i { color: var(--ink-400); font-size: 14px; width: 15px; margin-top: 3px; }
@media (max-width: 1024px) { body .uc-hotels { grid-template-columns: 1fr; } }

/* Реквизиты и группа компаний */
body .uc-req__org { font-size: 16px; font-weight: 600; color: var(--ink-900); margin: 0 0 6px; }
body .uc-req__data { font-size: 14px; line-height: 1.7; color: var(--ink-600); margin: 0; }
body .uc-req__link { display: inline-flex; align-items: center; gap: 6px; margin-top: 14px; font-size: 14px; font-weight: 600; }
body .uc-grouplist { display: flex; flex-direction: column; gap: 1px; background: var(--line-200); border: 1px solid var(--line-200); }
body .uc-grouplist a { background: var(--paper); padding: 14px 18px; display: flex; justify-content: space-between; align-items: center; text-decoration: none; }
body .uc-grouplist a:hover { background: var(--paper-50); }
body .uc-grouplist a span { font-size: 14.5px; font-weight: 500; color: var(--ink-800); }
body .uc-grouplist a i { color: var(--ink-400); font-size: 14px; }

/* ============================================================
   17. РАСПИСАНИЕ — месяц-переключатель + таблица запусков
   ============================================================ */

/* Табы месяцев (стиль табов страницы курса) */
body .uc-mtabs { display: flex; gap: 0; border-bottom: 1px solid var(--line-200); }
body .uc-mtabs button {
  font-family: var(--font-sans); font-size: var(--fs-body); font-weight: 500;
  color: var(--ink-400); background: transparent; border: none;
  padding: 12px 18px; cursor: pointer; margin-bottom: -1px;
  border-bottom: 2px solid transparent;
}
body .uc-mtabs button:hover { color: var(--ink-900); }
body .uc-mtabs button.on { color: var(--ink-900); font-weight: 600; border-bottom-color: var(--red-600); }
body .uc-mtabs .uc-mtabs__n { font-family: var(--font-mono); font-size: 11px; color: var(--ink-400); margin-left: 7px; }

/* Панели месяцев */
body .uc-mpanel { display: none; }
body .uc-mpanel.on { display: block; }

/* Таблица запусков */
body .uc-sched { border: 1px solid var(--line-200); border-top: 2px solid var(--ink-900); background: var(--paper); }
body .uc-sched a.uc-srow, body .uc-sched .uc-srow {
  display: grid; grid-template-columns: 150px minmax(0,1fr) 190px 130px;
  gap: 20px; align-items: center; padding: 17px 20px;
  border-top: 1px solid var(--line-200); text-decoration: none;
  transition: background var(--dur-base);
}
body .uc-sched .uc-srow:first-child { border-top: none; }
body .uc-sched a.uc-srow:hover { background: var(--paper-50); }
body .uc-srow__date { font-family: var(--font-mono); font-size: 13.5px; font-weight: 600; color: var(--ink-900); white-space: nowrap; }
body .uc-srow__code { display: block; font-family: var(--font-mono); font-size: 11px; letter-spacing: .08em; color: var(--red-600); margin-bottom: 4px; }
body .uc-srow strong { display: block; font-size: 15px; font-weight: 600; color: var(--ink-900); line-height: 1.35; }
body .uc-srow__meta { font-size: 13px; color: var(--ink-500); }
body .uc-srow__go { justify-self: end; font-size: 13px; font-weight: 600; color: var(--ink-900); white-space: nowrap; }
body .uc-sched a.uc-srow:hover .uc-srow__go { color: var(--red-600); }

/* Завершённый поток */
body .uc-srow--past { opacity: .55; }
body .uc-srow--past .uc-srow__go { color: var(--ink-400); font-weight: 500; }

/* Блок «по мере набора группы» */
body .uc-ondemand { background: var(--paper-50); border: 1px solid var(--line-200); border-radius: var(--radius-md); padding: 22px 24px; }
body .uc-ondemand p { margin: 0 0 10px; font-size: 14.5px; color: var(--ink-700); }
body .uc-ondemand ul { margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: 1fr 1fr; gap: 8px 24px; }
body .uc-ondemand li a { font-size: 14px; color: var(--ink-700); text-decoration: none; }
body .uc-ondemand li a:hover { color: var(--red-600); }
body .uc-ondemand li::before { content: '·'; color: var(--red-600); margin-right: 8px; font-weight: 700; }

@media (max-width: 1024px) {
  body .uc-sched a.uc-srow, body .uc-sched .uc-srow { grid-template-columns: 1fr; gap: 6px; }
  body .uc-srow__go { justify-self: start; }
  body .uc-ondemand ul { grid-template-columns: 1fr; }
}

/* ============================================================
   18. РЕКВИЗИТЫ — по ui_kits/marketing/requisites.html
   ============================================================ */

body .uc-reqtable { border: 1px solid var(--line-200); border-top: 2px solid var(--ink-900); background: var(--paper); }
body .uc-reqtable .uc-rr {
  display: grid; grid-template-columns: 200px 1fr auto;
  gap: 20px; align-items: center; padding: 14px 20px;
  border-top: 1px solid var(--line-200);
}
body .uc-reqtable .uc-rr:first-child { border-top: none; }
body .uc-rr__l { font-size: 13px; color: var(--ink-500); }
body .uc-rr__v { font-size: 15px; font-weight: 600; color: var(--ink-900); letter-spacing: .01em; }
body .uc-rr__cp {
  width: 30px; height: 30px; border: 1px solid var(--line-200);
  display: grid; place-items: center; background: var(--paper);
  cursor: pointer; color: var(--ink-400); font-size: 13px;
}
body .uc-rr__cp:hover { border-color: var(--ink-400); color: var(--ink-900); }
body .uc-rr__cp.done { color: var(--success-600); border-color: var(--success-600); }

/* Липкая колонка реквизитов */
body .uc-reqside { position: sticky; top: 24px; }
body .uc-reqside .uc-card--featured { padding: 24px; }

/* Выпадающее подменю в шапке */
body .uc-nav .sub-menu, body .uc-nav .elementor-nav-menu--dropdown {
  border: 1px solid var(--line-200); border-top: 2px solid var(--ink-900);
  box-shadow: var(--shadow-md); background: var(--paper);
}
body .uc-nav .sub-menu a { font-size: 13.5px; color: var(--ink-600); padding: 10px 16px; }
body .uc-nav .sub-menu a:hover { background: var(--paper-50); color: var(--ink-900); }

@media (max-width: 767px) { body .uc-reqtable .uc-rr { grid-template-columns: 1fr; gap: 4px; } }

/* Выпадашка меню на чистом CSS: скрипт smartmenus не грузится для
   шапки, отрендеренной Themer-мостиком (зависимости виджета не
   попадают в очередь) — ховер решает без JS. */
body .uc-nav li.menu-item-has-children { position: relative; }
body .uc-nav li.menu-item-has-children:hover > .sub-menu,
body .uc-nav li.menu-item-has-children:focus-within > .sub-menu {
  display: block !important;
  position: absolute; top: 100%; left: 0; z-index: 200; min-width: 190px;
}
body .uc-nav .sub-menu li { display: block; }
body .uc-nav .sub-menu a { display: block; white-space: nowrap; }

/* Текущий пункт подменю: красный на светлом вместо тёмной плашки */
body .uc-nav .sub-menu .current-menu-item > a,
body .uc-nav .sub-menu a.elementor-item-active {
  background: var(--paper-50) !important; color: var(--red-600) !important;
}

/* ============================================================
   19 · НОВОСТИ (news.html / news-list.html)
   ============================================================ */

/* Светлые крошки (шапка статьи на светлом фоне) */
body .uc-crumbs--lt, body .uc-crumbs--lt p { font-family: var(--font-mono); font-size: 11.5px; letter-spacing: .05em; color: var(--ink-400); }
body .uc-crumbs--lt a { color: var(--ink-400); }
body .uc-crumbs--lt a:hover { color: var(--red-600); }

/* Бейджи над заголовком */
.uc-nbadges { display: flex; gap: 8px; flex-wrap: wrap; }
.uc-nbadge { display: inline-flex; align-items: center; gap: 7px;
  font-family: var(--font-mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase;
  padding: 5px 11px; border: 1px solid var(--line-200); color: var(--ink-600); background: var(--paper); }
a.uc-nbadge:hover { border-color: var(--ink-300); color: var(--ink-900); }
.uc-nbadge--accent { border-color: rgba(216,70,66,.35); color: var(--red-600); }
.uc-nbadge__dot { width: 6px; height: 6px; border-radius: 50%; background: var(--red-600); display: inline-block; }

/* Заголовок и мета статьи */
body .uc-news-h1 .elementor-heading-title, body h1.uc-news-h1 { font-size: 38px; font-weight: 700; line-height: 1.12; letter-spacing: -.015em; color: var(--ink-900); }
.uc-nmeta { display: flex; align-items: center; gap: 20px; flex-wrap: wrap;
  font-family: var(--font-mono); font-size: 13px; letter-spacing: .04em; color: var(--ink-400); text-transform: uppercase; }
.uc-nmeta__sep { width: 1px; height: 14px; background: var(--line-200); }
.uc-nmeta__share { margin-left: auto; display: flex; gap: 12px; align-items: center; }
.uc-nmeta__share em { font-style: normal; font-family: var(--font-sans); font-size: 13px; text-transform: none; letter-spacing: 0; }
.uc-nmeta__share a { color: var(--ink-500); font-size: 15px; }
.uc-nmeta__share a:hover { color: var(--red-600); }

/* Тело статьи */
.uc-news-img { margin: 0 0 32px; }
.uc-news-img img { width: 100%; height: auto; border: 1px solid var(--line-200); display: block; }
body .uc-article { font-size: 17px; line-height: 1.7; color: var(--ink-700); }
body .uc-article p { font-size: 17px; line-height: 1.7; color: var(--ink-700); margin: 0 0 20px; }
body .uc-article h2, body .uc-article h3 { font-size: 23px; font-weight: 700; letter-spacing: -.01em; color: var(--ink-900); margin: 36px 0 14px; }
body .uc-article h4 { font-size: 19px; font-weight: 700; color: var(--ink-900); margin: 28px 0 12px; }
body .uc-article li { font-size: 17px; line-height: 1.7; color: var(--ink-700); margin-bottom: 8px; }
body .uc-article ul, body .uc-article ol { padding-left: 24px; margin: 0 0 20px; }
body .uc-article blockquote { margin: 28px 0; padding: 4px 0 4px 24px; border-left: 3px solid var(--red-600);
  font-size: 19px; line-height: 1.55; color: var(--ink-900); font-weight: 500; }
body .uc-article blockquote p { font-size: 19px; line-height: 1.55; color: var(--ink-900); margin: 0; }
body .uc-article img { max-width: 100%; height: auto; border: 1px solid var(--line-200); }
body .uc-article a { color: var(--red-600); }
body .uc-article a:hover { color: var(--red-700); }
body .uc-article strong { color: var(--ink-900); }

/* Сайдбар статьи */
body .uc-newsside { position: sticky; top: 96px; }

/* Карточки новостей (список, «Другие новости») */
.uc-ncards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
a.uc-ncard { display: flex; flex-direction: column; border: 1px solid var(--line-200); background: var(--paper);
  transition: border-color .18s, box-shadow .18s; color: inherit; }
a.uc-ncard:hover { border-color: var(--ink-300); box-shadow: var(--shadow-sm); }
.uc-ncard__img { display: block; height: 160px; border-bottom: 1px solid var(--line-200); overflow: hidden; }
.uc-ncard__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.uc-ncard__img.uc-hatch { border: 0; border-bottom: 1px solid var(--line-200); }
.uc-ncard__body { display: flex; flex-direction: column; flex: 1; padding: 20px; }
.uc-ncard__meta { font-family: var(--font-mono); font-size: 11px; letter-spacing: .1em; color: var(--red-600);
  text-transform: uppercase; margin-bottom: 10px; }
.uc-ncard__title { font-weight: 600; font-size: 15.5px; line-height: 1.35; color: var(--ink-900); margin-bottom: 14px; }
.uc-ncard__go { margin-top: auto; color: var(--red-600); font-weight: 600; font-size: 13.5px; }

@media (max-width: 1024px) { .uc-ncards { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 767px) {
  .uc-ncards { grid-template-columns: 1fr; }
  body .uc-news-h1 .elementor-heading-title, body h1.uc-news-h1 { font-size: 29px; }
  .uc-nmeta__share { margin-left: 0; }
}

body .uc-sidecourse p { font-weight: 600; font-size: 15.5px; line-height: 1.35; color: var(--ink-900); margin: 0 0 10px; }
body .uc-mono-caps p { text-transform: uppercase; letter-spacing: .04em; }

/* Список новостей: главная карточка */
a.uc-feat { display: grid; grid-template-columns: 1.1fr .9fr; border: 1px solid var(--line-200);
  border-top: 2px solid var(--ink-900); background: var(--paper); color: inherit; transition: box-shadow .18s; }
a.uc-feat:hover { box-shadow: var(--shadow-sm); }
a.uc-feat:hover .uc-feat__go { color: var(--red-700); }
.uc-feat__img { display: block; min-height: 280px; overflow: hidden; }
.uc-feat__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.uc-feat__body { display: flex; flex-direction: column; justify-content: center; padding: 34px 36px; }
.uc-feat__body .uc-nbadges { margin-bottom: 16px; }
.uc-feat__date { font-family: var(--font-mono); font-size: 12px; letter-spacing: .06em; color: var(--ink-400); margin-bottom: 10px; }
.uc-feat__title { font-size: 27px; font-weight: 700; line-height: 1.18; letter-spacing: -.01em; color: var(--ink-900); margin-bottom: 12px; }
.uc-feat__exc { font-size: 15.5px; line-height: 1.6; color: var(--ink-500); margin-bottom: 20px; }
.uc-feat__go { color: var(--red-600); font-weight: 600; font-size: 14.5px; }

/* Список новостей: строки «Ранее» */
.uc-lrows { border-top: 2px solid var(--ink-900); }
a.uc-lrow { display: grid; grid-template-columns: 120px 1fr auto; gap: 24px; align-items: center;
  padding: 20px 0; border-top: 1px solid var(--line-200); color: inherit; }
a.uc-lrow:first-child { border-top: 0; }
a.uc-lrow .uc-lrow__date { font-family: var(--font-mono); font-size: 13px; color: var(--ink-400); }
a.uc-lrow .uc-lrow__title { font-size: 15.5px; font-weight: 500; color: var(--ink-800); transition: color .18s; }
a.uc-lrow:hover .uc-lrow__title { color: var(--red-600); }

/* Список новостей: фильтры и поиск */
.uc-ntags { display: flex; gap: 8px; flex-wrap: wrap; }
.uc-ntags button { font-family: var(--font-mono); font-size: 12px; letter-spacing: .06em; text-transform: uppercase;
  padding: 8px 14px; border: 1px solid var(--line-200); background: var(--paper); color: var(--ink-600); cursor: pointer;
  transition: border-color .15s, color .15s, background .15s; }
.uc-ntags button:hover { border-color: var(--ink-300); color: var(--ink-900); }
.uc-ntags button.on { background: var(--ink-900); border-color: var(--ink-900); color: #fff; }
.uc-nsearch { width: 300px; max-width: 100%; font-family: var(--font-sans); font-size: 14px; color: var(--ink-900);
  padding: 11px 14px; border: 1px solid var(--line-200); background: var(--paper); outline: none; }
.uc-nsearch:focus { border-color: var(--ink-900); }
.uc-newsfilters { background: var(--paper); border-bottom: 1px solid var(--line-200); position: sticky; top: 0; z-index: 50; }
.uc-news-empty { font-size: 15.5px; color: var(--ink-500); padding: 24px 0; display: none; }

@media (max-width: 1024px) { a.uc-feat { grid-template-columns: 1fr; } .uc-feat__img { min-height: 200px; } }
@media (max-width: 767px) {
  a.uc-lrow { grid-template-columns: 90px 1fr; }
  a.uc-lrow .uc-nbadge { display: none; }
  .uc-feat__title { font-size: 22px; }
}

/* Правовые страницы: плотнее, мельче */
body .uc-article--legal, body .uc-article--legal p, body .uc-article--legal li { font-size: 15px; line-height: 1.65; }
body .uc-article--legal h2, body .uc-article--legal h3 { font-size: 19px; margin: 28px 0 10px; }
body .uc-article--legal table { border-collapse: collapse; font-size: 14px; margin: 0 0 20px; }
body .uc-article--legal td, body .uc-article--legal th { border: 1px solid var(--line-200); padding: 8px 10px; vertical-align: top; }

/* Галочка согласия в формах */
body .elementor-field-type-acceptance { font-size: 13px; color: var(--ink-500); }
body .elementor-field-type-acceptance a { color: var(--red-600); text-decoration: underline; }
body .elementor-field-type-acceptance input { accent-color: var(--red-600); margin-right: 8px; }

/* Фото в герое главной (класс SOC) */
body .uc-hero-photo { border: 1px solid var(--line-200); }

/* Предохранитель от reset.css темы Hello: она красит ЛЮБУЮ кнопку в малиновый
   #C36 на hover/focus. Наши компонентные правила специфичнее и перекрывают это
   там, где фон нужен (uc-btn, uc-ntags .on, uc-cat-search, формы Elementor). */
body button:hover, body button:focus,
body [type='button']:hover, body [type='button']:focus,
body [type='submit']:hover, body [type='submit']:focus {
  background-color: transparent; color: var(--ink-900);
}

/* Активные состояния сильнее предохранителя ([type=button] весит как класс) */
body .uc-ntags button.on, body .uc-ntags button.on:hover, body .uc-ntags button.on:focus {
  background-color: var(--ink-900); border-color: var(--ink-900); color: #fff;
}
body .uc-cat-search button:focus { background-color: var(--red-700); color: #fff; }

/* ============================================================
   20 · ЭКЗАМЕНЫ (exams.html — ССК)
   ============================================================ */

body .uc-h2-27 .elementor-heading-title { font-size: 27px; font-weight: 700; letter-spacing: -.01em; margin-bottom: 22px; }
body .uc-h2-30 .elementor-heading-title { font-size: 30px; font-weight: 700; line-height: 1.1; letter-spacing: -.015em; }
body .uc-h3-17 .elementor-heading-title { font-size: 17px; font-weight: 600; margin-bottom: 14px; }
body .uc-xh1 .elementor-heading-title { font-size: 40px; max-width: 20ch; }

/* Бейджи героя на тёмном */
.uc-nbadge--dark-accent { border-color: rgba(216,70,66,.5); color: var(--red-500); background: transparent; }
.uc-nbadge--solid { background: var(--red-600); border-color: var(--red-600); color: #fff; }
body .uc-section--dark .uc-nbadges { margin-bottom: 20px; }

/* Мета в герое: длительность · дата · время */
body .uc-xmeta p, p.uc-xmeta { display: flex; gap: 36px; flex-wrap: wrap; margin: 28px 0 0; }
.uc-xmeta span { display: inline-flex; align-items: center; gap: 10px; font-size: 14.5px; font-weight: 500; color: #fff; }
.uc-xmeta i { color: var(--red-500); font-size: 17px; }

/* Факты в прайс-карточке */
.uc-xfacts { border-top: 1px solid var(--line-200); padding-top: 16px; margin-top: 6px;
  display: flex; flex-direction: column; gap: 12px; }
.uc-xfacts span { display: flex; gap: 10px; align-items: center; font-size: 13.5px; color: var(--ink-600); }
.uc-xfacts i { color: var(--ink-500); font-size: 15px; }
body .uc-section--dark .uc-pricecard .uc-xfacts span { color: var(--ink-600); }

/* Якорная навигация */
body .uc-xanchorbar { background: var(--paper); border-bottom: 1px solid var(--line-200);
  position: sticky; top: 0; z-index: 50; }
.uc-xanchors { display: flex; gap: 26px; overflow-x: auto; }
.uc-xanchors a { font-size: 13.5px; color: var(--ink-500); padding: 12px 0; white-space: nowrap;
  border-bottom: 1px solid transparent; margin-bottom: -1px; }
.uc-xanchors a:hover { color: var(--ink-900); }
.uc-xanchors a.on { color: var(--ink-900); font-weight: 600; border-bottom-color: var(--ink-900); }

/* Аудитория: сетка 2 колонки */
.uc-xaud { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 16px; }
.uc-xaud__item { display: flex; gap: 10px; align-items: flex-start; font-size: 14.5px;
  color: var(--ink-700); line-height: 1.4; }
.uc-xaud__item i { color: var(--red-600); font-size: 16px; margin-top: 1px; }

/* Параметры экзамена (карточка) */
.uc-xparams { display: flex; flex-direction: column; gap: 12px; margin-top: 4px; }
.uc-xparam { display: flex; justify-content: space-between; align-items: baseline; gap: 16px;
  border-top: 1px solid var(--line-200); padding-top: 12px; }
.uc-xparam__l { font-size: 13.5px; color: var(--ink-500); }
.uc-xparam__v { font-size: 14.5px; font-weight: 600; color: var(--ink-900); text-align: right; }

/* Таблицы */
table.uc-t { width: 100%; border-collapse: collapse; background: var(--paper); border: 1px solid var(--line-200); }
table.uc-t th { text-align: left; font-size: 12px; letter-spacing: .06em; text-transform: uppercase;
  color: var(--ink-500); background: var(--paper-50); padding: 12px 16px; border-bottom: 2px solid var(--ink-900); }
table.uc-t td { font-size: 14.5px; line-height: 1.55; color: var(--ink-700); padding: 14px 16px;
  border-top: 1px solid var(--line-200); vertical-align: top; }
table.uc-t td:first-child { font-weight: 600; color: var(--ink-900); width: 34%; }

/* Проза секций */
body .uc-xprose p { font-size: 16px; line-height: 1.7; color: var(--ink-700); margin: 0 0 16px; max-width: 80ch; }
body .uc-xprose .uc-xstrong { font-weight: 600; color: var(--ink-900); }

/* Красные галочки «зачем» */
.uc-xcheck { display: flex; gap: 10px; margin-bottom: 12px; }
.uc-xcheck i { color: var(--red-600); font-size: 15px; margin-top: 3px; }
.uc-xcheck span { font-size: 15px; line-height: 1.55; color: var(--ink-700); }

/* Нумерованные блоки: кодекс */
.uc-xnum { border: 1px solid var(--line-200); border-top: 2px solid var(--ink-900); background: var(--paper); }
.uc-xnum__row { display: flex; gap: 14px; align-items: flex-start; padding: 14px 18px;
  border-top: 1px solid var(--line-200); }
.uc-xnum__row:first-child { border-top: none; }
.uc-xnum__row em { font-style: normal; font-family: var(--font-mono); font-size: 13px;
  color: var(--red-600); font-weight: 600; }
.uc-xnum__row span { font-size: 14.5px; line-height: 1.5; color: var(--ink-800); }

/* Подготовка: нумерованная сетка */
.uc-xprep { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 0;
  border: 1px solid var(--line-200); border-top: 2px solid var(--ink-900); background: var(--paper); }
.uc-xprep__item { display: flex; gap: 16px; align-items: flex-start; padding: 20px 22px;
  border-top: 1px solid var(--line-200); }
.uc-xprep__item:first-child { border-top: none; }
.uc-xprep__item em { font-style: normal; font-family: var(--font-mono); font-size: 15px;
  font-weight: 700; color: var(--red-600); }
.uc-xprep__item span { font-size: 14.5px; line-height: 1.5; color: var(--ink-700); }

/* Чеклист: 4 шага */
.uc-xsteps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.uc-xstep { border: 1px solid var(--line-200); border-top: 2px solid var(--red-600);
  background: var(--paper); padding: 22px; display: flex; flex-direction: column; }
.uc-xstep__tag { display: flex; align-items: center; gap: 8px; margin-bottom: 14px; }
.uc-xstep__tag i { color: var(--red-600); font-size: 17px; }
.uc-xstep__tag em { font-style: normal; font-family: var(--font-mono); font-size: 11px;
  letter-spacing: .08em; text-transform: uppercase; color: var(--ink-400); }
.uc-xstep__title { font-weight: 600; font-size: 15.5px; margin-bottom: 12px; line-height: 1.3; color: var(--ink-900); }
.uc-xstep ul { margin: 0; padding-left: 18px; display: flex; flex-direction: column; gap: 7px; }
.uc-xstep li { font-size: 13.5px; line-height: 1.5; color: var(--ink-600); }

/* Кнопка-контур на тёмном */
body .uc-btn--outline-light .elementor-button { background: transparent; color: #fff;
  border: 1px solid rgba(255,255,255,.3); }
body .uc-btn--outline-light .elementor-button:hover { border-color: #fff; background: transparent; color: #fff; }

@media (max-width: 1024px) {
  .uc-xsteps { grid-template-columns: repeat(2, 1fr); }
  body .uc-xh1 .elementor-heading-title { font-size: 32px; }
}
@media (max-width: 767px) {
  .uc-xaud { grid-template-columns: 1fr; }
  .uc-xsteps { grid-template-columns: 1fr; }
  table.uc-t td:first-child { width: auto; }
}

/* Каталог: пустой результат фильтра */
body .uc-cat-empty { display: none; }
body .uc-cat-empty p { font-size: 15.5px; color: var(--ink-500); border: 1px dashed var(--line-300);
  background: var(--paper); padding: 22px 24px; margin: 0; }

/* Карточка на boxed-контейнере: оформление переносим на внутреннюю колонку,
   иначе на широких экранах белый фон и красная кромка тянутся на весь вьюпорт
   (контейнер 100% ширины, контент — 1200px), а боковые поля уводят правый
   край за экран (см. грабли №9). */
body .e-con-boxed.uc-card {
  background: transparent; border: none; border-radius: 0; overflow: visible;
}
body .e-con-boxed.uc-card > .e-con-inner {
  background: var(--surface-card);
  border: 1px solid var(--border-default);
  border-radius: var(--radius-md);
}
body .e-con-boxed.uc-card--featured > .e-con-inner { border-top: 3px solid var(--red-500); }

/* Селект в формах: каретка Elementor позиционируется по обёртке и вылезает
   за край поля — прижимаем поле к обёртке и ставим каретку внутрь. */
body .elementor-form .elementor-select-wrapper { position: relative; display: block; }
body .elementor-form .elementor-select-wrapper select {
  width: 100%; padding-right: 38px; appearance: none;
}
body .elementor-form .select-caret-down-wrapper {
  position: absolute; inset-inline-end: 16px; top: 50%; transform: translateY(-50%);
  color: var(--ink-500); pointer-events: none; line-height: 0;
}

/* Выравнивание секций-карточек по сетке. Боковые поля/паддинги контейнера
   гасим (они сдвигали карточку на 32px вправо, правый край уезжал за экран),
   рамка и внутренние отступы — на .e-con-inner. */
body .e-con-boxed.uc-card { margin-left: 0 !important; margin-right: 0 !important;
  padding: 0 !important; }
body .e-con-boxed.uc-card > .e-con-inner { padding: 40px; }

/* Карточка записи на страницах курсов: по ширине контентной колонки (820px),
   правый край совпадает с блоком программы «Что внутри курса». */
body .e-con-boxed.uc-card--featured:has(.uc-enroll-form) > .e-con-inner {
  max-width: 820px;
  margin-left: max(calc((100% - 1200px) / 2), 0px);
  margin-right: auto;
}

/* Длинные названия курсов в герое: меньше кегль, шире колонка.
   Классы ставятся автоматически по длине названия (генератор/скрипт):
   до 40 симв. — базовый 42px/18ch; 41–70 — md; более 70 — long. */
body .uc-course-h1--md .elementor-heading-title { font-size: 34px; line-height: 1.12; max-width: 26ch; }
body .uc-course-h1--long .elementor-heading-title { font-size: 29px; line-height: 1.18; max-width: 36ch; }
@media (max-width: 767px) {
  body .uc-course-h1--md .elementor-heading-title { font-size: 27px; }
  body .uc-course-h1--long .elementor-heading-title { font-size: 23px; }
}

/* ============================================================
   21 · СВЕДЕНИЯ ОБ ОБРАЗОВАТЕЛЬНОЙ ОРГАНИЗАЦИИ (education-info.html)
   ============================================================ */

/* Карточка лицензии в герое */
.uc-svd-lic { background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.14); padding: 24px; }
.uc-svd-lic__tag { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; }
.uc-svd-lic__tag i { color: var(--red-500); font-size: 18px; }
.uc-svd-lic__tag span { font-family: var(--font-mono); font-size: 11px; letter-spacing: .1em;
  text-transform: uppercase; color: rgba(255,255,255,.6); }
.uc-svd-lic__t { font-size: 15px; font-weight: 600; color: #fff; margin-bottom: 6px; }
.uc-svd-lic__n { font-size: 13.5px; color: rgba(255,255,255,.6); line-height: 1.55; }

/* Оглавление */
body .uc-svd-side { position: sticky; top: 24px; }
.uc-svd-toc { border: 1px solid var(--line-200); background: var(--paper); max-height: 70vh; overflow-y: auto; }
a.uc-svd-toc__l { display: flex; gap: 10px; align-items: flex-start; padding: 10px 14px;
  font-size: 13px; line-height: 1.4; color: var(--ink-600); border-left: 2px solid transparent; }
a.uc-svd-toc__l:hover { background: var(--paper-50); color: var(--ink-900); }
a.uc-svd-toc__l.on { color: var(--ink-900); font-weight: 600; border-left-color: var(--red-600); background: var(--paper-50); }
.uc-svd-toc__l em { font-style: normal; font-family: var(--font-mono); font-size: 10.5px;
  color: var(--ink-400); padding-top: 2px; flex: none; }

/* Аккордеоны подразделов */
.uc-svd-list section.uc-svd-acc { border: 1px solid var(--line-200); background: var(--paper);
  border-top: 2px solid var(--ink-900); margin-bottom: 14px; }
.uc-svd-acc__h { display: flex; align-items: center; gap: 16px; padding: 18px 22px; cursor: pointer; user-select: none; }
.uc-svd-acc__h:hover { background: var(--paper-50); }
.uc-svd-acc__ico { width: 36px; height: 36px; flex: none; border: 1px solid var(--line-200);
  display: grid; place-items: center; background: var(--paper); color: var(--ink-900); font-size: 16px;
  transition: background .15s, color .15s; }
.uc-svd-acc.open .uc-svd-acc__ico { background: var(--ink-900); color: #fff; }
.uc-svd-acc__t { font-size: 16.5px; font-weight: 600; color: var(--ink-900); line-height: 1.35; flex: 1; }
.uc-svd-n { font-family: var(--font-mono); font-size: 11px; letter-spacing: .06em;
  text-transform: uppercase; color: var(--ink-400); flex: none; }
.uc-svd-acc__chev { color: var(--ink-500); font-size: 14px; transition: transform .2s; }
.uc-svd-acc.open .uc-svd-acc__chev { transform: rotate(180deg); }
.uc-svd-acc__b { display: none; padding: 26px 22px 28px; border-top: 1px solid var(--line-200); }
.uc-svd-acc.open .uc-svd-acc__b { display: block; }

/* Подзаголовки и строки документов */
.uc-svd-sub { font-size: 15px; font-weight: 600; color: var(--ink-900); margin: 26px 0 12px;
  padding-bottom: 8px; border-bottom: 1px solid var(--line-200); }
.uc-svd-sub:first-child { margin-top: 0; }
.uc-svd-doc { display: flex; align-items: center; gap: 13px; padding: 11px 0;
  border-top: 1px solid var(--line-200); color: inherit; }
.uc-svd-sub + .uc-svd-doc { border-top: none; }
a.uc-svd-doc:hover .uc-svd-doct { color: var(--red-600); }
.uc-svd-ext { width: 32px; height: 32px; flex: none; border: 1px solid var(--line-200);
  display: grid; place-items: center; font-family: var(--font-mono); font-size: 8.5px;
  font-weight: 600; color: var(--ink-500); background: var(--paper); }
.uc-svd-doct { font-size: 14.5px; line-height: 1.45; color: var(--ink-800); flex: 1; transition: color .15s; }
.uc-svd-doc--off .uc-svd-doct { color: var(--ink-400); }
.uc-svd-docs { font-family: var(--font-mono); font-size: 10.5px; letter-spacing: .06em;
  text-transform: uppercase; color: var(--ink-400); flex: none; }
.uc-svd-doc i { color: var(--ink-400); font-size: 14px; }

/* Пустой подраздел и проза */
.uc-svd-empty { display: flex; gap: 12px; align-items: flex-start; padding: 16px 18px;
  background: var(--paper-50); border: 1px solid var(--line-200); }
.uc-svd-empty i { color: var(--ink-400); font-size: 17px; margin-top: 2px; }
.uc-svd-empty b { display: block; font-size: 14px; font-weight: 600; color: var(--ink-700); margin-bottom: 4px; }
.uc-svd-empty span { font-size: 13.5px; line-height: 1.55; color: var(--ink-500); }
.uc-svd-prose { font-size: 15.5px; line-height: 1.7; color: var(--ink-700); margin: 0 0 14px; max-width: 76ch; }

@media (max-width: 1024px) {
  body .uc-svd-side { position: static; width: 100% !important; }
}

/* Сведения: строки «параметр — значение» и таблица руководства */
.uc-svd-kv__r { display: grid; grid-template-columns: 280px 1fr; gap: 6px 24px;
  padding: 10px 0; border-top: 1px solid var(--line-200); }
.uc-svd-kv__r:first-child { border-top: none; }
.uc-svd-kv__l { font-size: 13.5px; color: var(--ink-500); line-height: 1.5; }
.uc-svd-kv__v { font-size: 14.5px; color: var(--ink-800); line-height: 1.5; }
.uc-svd-kv + .uc-svd-sub { margin-top: 26px; }
table.uc-t--lead td:first-child { width: 30%; }
@media (max-width: 767px) { .uc-svd-kv__r { grid-template-columns: 1fr; gap: 2px; } }

/* Логотип в подвале */
body .uc-footer-logo img { height: 46px; width: auto; }

/* Нижняя строка подвала: контент вровень с колонками (у тех свои 10px) */
body .elementor-element-146ddef > .e-con-inner { padding-left: 10px; padding-right: 10px; }

/* Лицензия в подвале — цвет как у адреса (перебиваем общий цвет тёмной секции) */
body .uc-section--dark .uc-footer-lic p { color: rgba(255,255,255,.5); }

/* «О нас»: навигационные карточки разделов */
.uc-abcards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: 10px; }
a.uc-abcard { display: flex; flex-direction: column; background: var(--paper);
  border: 1px solid var(--line-200); border-top: 2px solid var(--ink-900); padding: 26px;
  color: inherit; transition: border-color .18s, box-shadow .18s; }
a.uc-abcard:hover { border-color: var(--ink-300); box-shadow: var(--shadow-md); }
a.uc-abcard:hover .uc-abcard__go { color: var(--red-700); }
.uc-abcard__ico { width: 40px; height: 40px; border: 1px solid var(--line-200);
  display: grid; place-items: center; color: var(--red-600); font-size: 17px; margin-bottom: 16px; }
.uc-abcard__t { font-size: 16.5px; font-weight: 700; color: var(--ink-900); line-height: 1.3; margin-bottom: 10px; }
.uc-abcard__d { font-size: 14px; line-height: 1.6; color: var(--ink-600); margin-bottom: 18px; }
.uc-abcard__go { margin-top: auto; font-size: 13.5px; font-weight: 600; color: var(--red-600); }
@media (max-width: 1024px) { .uc-abcards { grid-template-columns: 1fr; } }

/* Дата старта в карточке курса на главной */
body .uc-course__date p { font-family: var(--font-mono); font-size: 12px; letter-spacing: .06em;
  color: var(--red-600); text-transform: uppercase; margin: 0 0 4px; }

/* Карточки «направления обучения» на главной: кликабельна вся карточка
   (растянутая ссылка заголовка), а не только заголовок с иконкой */
body .elementor-widget-icon-box.uc-card { position: relative; }
body .elementor-widget-icon-box.uc-card .elementor-icon-box-title a::after {
  content: ''; position: absolute; inset: 0; z-index: 1;
}
/* Переход к направлению каталога по якорю: воздух над заголовком */
body [id^="dir-"] { scroll-margin-top: 24px; }

/* Образец сертификата ССК на главной (тёмная секция) */
body .uc-ssk-cert img { width: 100%; height: auto; border: 1px solid rgba(255,255,255,.18);
  box-shadow: 0 18px 44px rgba(0,0,0,.5); display: block; }
