/* ==========================================================================
   AST — библиотека переменных
   Выгружено из Figma «AST-DPO-v6» (DGkWHYpcSlB9oo2TocVdgQ), 2026-09-30.
   8 коллекций, 174 переменные. Значения соответствуют библиотеке 1:1.
   Коллекции «06 Typography» и «09 Semantic Space» имеют четыре режима:
   Desktop — в :root, Laptop / Tablet / Mobile — в блоках [data-mode="…"] ниже.
   Диапазоны: Desktop ≥ 1440, Laptop 1024–1439, Tablet 640–1023, Mobile ≤ 639.
   В конце файла — 13 токенов из стилей Figma: тени, начертания, трекинг.
   Переменными они не заведены, править их в Figma нужно в стилях.
   ========================================================================== */

:root {
  /* --- 01 Color — Примитивы цвета --- */
  --ast-color-primitive-blue-50: #ebf6ff;
  --ast-color-primitive-blue-100: #d6edff;
  --ast-color-primitive-blue-200: #a8d9ff;
  --ast-color-primitive-blue-300: #6fc0ff;
  --ast-color-primitive-blue-400: #2ba1ff;
  --ast-color-primitive-blue-500: #0086ff;
  --ast-color-primitive-blue-600: #006bcc;
  --ast-color-primitive-blue-700: #004f96;

  --ast-color-primitive-neutral-0: #ffffff;
  --ast-color-primitive-neutral-50: #f6f6f8;
  --ast-color-primitive-neutral-100: #edeeef;
  --ast-color-primitive-neutral-200: #d9dadd;
  --ast-color-primitive-neutral-300: #afb0b7;
  --ast-color-primitive-neutral-400: #878991;
  --ast-color-primitive-neutral-450: #6b6d76;
  --ast-color-primitive-neutral-500: #4f5159;
  --ast-color-primitive-neutral-600: #3b3d44;
  --ast-color-primitive-neutral-700: #2c2e35;
  --ast-color-primitive-neutral-800: #202227;
  --ast-color-primitive-neutral-900: #171920;

  --ast-color-primitive-red-50: #fef2f2;
  --ast-color-primitive-red-500: #db2626;
  --ast-color-primitive-red-600: #b81c1c;

  --ast-color-primitive-peach-50: #fef7ec;
  --ast-color-primitive-peach-100: #fdeed6;
  --ast-color-primitive-peach-200: #fddfb2;
  --ast-color-primitive-peach-300: #fccf8f;
  --ast-color-primitive-peach-400: #f0ad4e;
  --ast-color-primitive-peach-500: #d98c1f;
  --ast-color-primitive-peach-600: #a86813;
  --ast-color-primitive-peach-700: #7a4a0c;

  --ast-color-primitive-green-50: #e8f8ef;
  --ast-color-primitive-green-500: #16a34a;
  --ast-color-primitive-green-600: #15803d;

  --ast-color-primitive-alpha-white-10: rgb(255 255 255 / 0.10);
  --ast-color-primitive-alpha-white-85: rgb(255 255 255 / 0.85);

  /* --- 02 Space — Отступы --- */
  --ast-space-2xs: 4rem;
  --ast-space-xs: 8rem;
  --ast-space-s: 12rem;
  --ast-space-m: 16rem;
  --ast-space-l: 24rem;
  --ast-space-xl: 32rem;
  --ast-space-2xl: 48rem;
  --ast-space-3xl: 64rem;
  --ast-space-4xl: 96rem;
  --ast-space-5xl: 128rem;

  /* --- 03 Radius — Скругления --- */
  --ast-radius-xs: 4rem;
  --ast-radius-s: 6rem;
  --ast-radius-m: 8rem;
  --ast-radius-full: 999rem;

  /* --- 04 Border — Толщина границ --- */
  --ast-border-width-thin: 1rem;
  --ast-border-width-thick: 2rem;

  /* --- 05 Opacity — Прозрачность --- */
  --ast-opacity-subtle: 0.08;
  --ast-opacity-muted: 0.4;
  --ast-opacity-hushed: 0.6;

  /* --- 08 Semantic Color — Семантические цвета — ссылки на примитивы --- */
  --ast-color-bg-base: var(--ast-color-primitive-neutral-0);
  --ast-color-bg-subtle: var(--ast-color-primitive-neutral-50);
  --ast-color-bg-muted: var(--ast-color-primitive-neutral-100);
  --ast-color-bg-inverse: var(--ast-color-primitive-neutral-900);
  --ast-color-bg-inverse-2: var(--ast-color-primitive-neutral-700);
  --ast-color-bg-inverse-3: var(--ast-color-primitive-neutral-500);
  --ast-color-bg-inverse-subtle: var(--ast-color-primitive-neutral-200);
  --ast-color-bg-accent: var(--ast-color-primitive-blue-500);
  --ast-color-bg-accent-hover: var(--ast-color-primitive-blue-600);
  --ast-color-bg-accent-active: var(--ast-color-primitive-blue-700);
  --ast-color-bg-accent-subtle: var(--ast-color-primitive-blue-50);
  --ast-color-bg-accent-secondary: var(--ast-color-primitive-peach-300);
  --ast-color-bg-accent-secondary-subtle: var(--ast-color-primitive-peach-50);
  --ast-color-bg-overlay-light: var(--ast-color-primitive-alpha-white-10);
  --ast-color-bg-glass: var(--ast-color-primitive-alpha-white-85);

  --ast-color-text-primary: var(--ast-color-primitive-neutral-900);
  --ast-color-text-secondary: var(--ast-color-primitive-neutral-700);
  --ast-color-text-tertiary: var(--ast-color-primitive-neutral-500);
  --ast-color-text-muted: var(--ast-color-primitive-neutral-400);
  --ast-color-text-inverse: var(--ast-color-primitive-neutral-0);
  --ast-color-text-inverse-2: var(--ast-color-primitive-neutral-100);
  --ast-color-text-accent: var(--ast-color-primitive-blue-500);
  --ast-color-text-accent-strong: var(--ast-color-primitive-blue-700);
  --ast-color-text-accent-secondary: var(--ast-color-primitive-peach-600);
  --ast-color-text-on-accent-secondary: var(--ast-color-primitive-neutral-900);
  --ast-color-text-error: var(--ast-color-primitive-red-600);
  --ast-color-text-success: var(--ast-color-primitive-green-600);

  --ast-color-border-subtle: var(--ast-color-primitive-neutral-100);
  --ast-color-border-default: var(--ast-color-primitive-neutral-200);
  --ast-color-border-strong: var(--ast-color-primitive-neutral-300);
  --ast-color-border-inverse: var(--ast-color-primitive-neutral-700);
  --ast-color-border-inverse-2: var(--ast-color-primitive-neutral-600);
  --ast-color-border-accent: var(--ast-color-primitive-blue-500);
  --ast-color-border-accent-secondary: var(--ast-color-primitive-peach-400);
  --ast-color-border-error: var(--ast-color-primitive-red-500);
  --ast-color-border-success: var(--ast-color-primitive-green-500);

  --ast-color-icon-primary: var(--ast-color-primitive-neutral-900);
  --ast-color-icon-secondary: var(--ast-color-primitive-neutral-700);
  --ast-color-icon-tertiary: var(--ast-color-primitive-neutral-500);
  --ast-color-icon-muted: var(--ast-color-primitive-neutral-400);
  --ast-color-icon-inverse: var(--ast-color-primitive-neutral-0);
  --ast-color-icon-inverse-2: var(--ast-color-primitive-neutral-100);
  --ast-color-icon-accent: var(--ast-color-primitive-blue-500);
  --ast-color-icon-accent-strong: var(--ast-color-primitive-blue-700);
  --ast-color-icon-accent-secondary: var(--ast-color-primitive-peach-300);
  --ast-color-icon-accent-secondary-strong: var(--ast-color-primitive-peach-600);
  --ast-color-icon-success: var(--ast-color-primitive-green-500);

  --ast-color-status-error-bg: var(--ast-color-primitive-red-50);
  --ast-color-status-success-bg: var(--ast-color-primitive-green-50);

  --ast-color-price-accent: var(--ast-color-primitive-blue-600);

  --ast-color-focus-ring: var(--ast-color-primitive-blue-500);

  /* --- 06 Typography — Типографика --- */
  --ast-typography-family-base: "Manrope";
  --ast-typography-size-display-xl: 48rem;
  --ast-typography-size-heading-xl: 40rem;
  --ast-typography-size-heading-l: 32rem;
  --ast-typography-size-heading-m: 24rem;
  --ast-typography-size-heading-s: 20rem;
  --ast-typography-size-heading-xs: 18rem;
  --ast-typography-size-body-l: 18rem;
  --ast-typography-size-body-m: 16rem;
  --ast-typography-size-body-s: 14rem;
  --ast-typography-size-body-xs: 12rem;
  --ast-typography-size-label-l: 16rem;
  --ast-typography-size-label-m: 14rem;
  --ast-typography-size-label-xs: 12rem;
  --ast-typography-line-display-xl: 50rem;
  --ast-typography-line-heading-xl: 42rem;
  --ast-typography-line-heading-l: 36rem;
  --ast-typography-line-heading-m: 28rem;
  --ast-typography-line-heading-s: 24rem;
  --ast-typography-line-heading-xs: 22rem;
  --ast-typography-line-body-l: 26rem;
  --ast-typography-line-body-m: 24rem;
  --ast-typography-line-body-s: 20rem;
  --ast-typography-line-body-xs: 16rem;
  --ast-typography-line-label-l: 22rem;
  --ast-typography-line-label-m: 20rem;
  --ast-typography-line-label-xs: 16rem;

  /* --- 09 Semantic Space — Раскладка --- */
  --ast-layout-gutter: var(--ast-space-xl);
  --ast-layout-content: 1320rem;
  --ast-layout-content-narrow: 1096rem;
  --ast-layout-content-text: 872rem;

  /* --- 09 Semantic Space — Вертикальный ритм секций --- */
  --ast-layout-section-compact: 64rem;
  --ast-layout-section-regular: 96rem;
  --ast-layout-section-spacious: 128rem;

  /* --- 09 Semantic Space — Зазоры --- */
  --ast-gap-xs: 16rem;
  --ast-gap-s: 24rem;
  --ast-gap-m: 32rem;
  --ast-gap-l: 48rem;
  --ast-gap-xl: 64rem;

  /* --- 09 Semantic Space — Поля карточек --- */
  --ast-padding-card-s: 16rem;
  --ast-padding-card-m: 24rem;
  --ast-padding-card-l: 32rem;
  --ast-padding-card-xl: 48rem;
  --ast-padding-card-2xl: 64rem;

  /* --- 09 Semantic Space — Пороги сеток --- */
  --ast-grid-card-min: 288rem;
  --ast-grid-split-min: 280rem;

  /* --- 09 Semantic Space — Карточки --- */
  --ast-carousel-card: 429.333rem;
  --ast-card-teacher: var(--ast-carousel-card);
  --ast-card-review: var(--ast-carousel-card);
  --ast-card-program: var(--ast-carousel-card);
  --ast-card-audience: var(--ast-carousel-card);
  --ast-card-process: var(--ast-carousel-card);
  --ast-card-project: var(--ast-carousel-card);
  --ast-card-review-featured: 652rem;
  --ast-card-pricing: 365.333rem;
  --ast-card-logo: 168rem;
  --ast-card-min-height: 286rem;

  /* --- 09 Semantic Space — Меры строки и логотипы --- */
  --ast-measure-heading: 648rem;
  --ast-measure-text: 560rem;
  --ast-logo-bounds-w: 120rem;
  --ast-logo-bounds-h: 40rem;

  /* --- 09 Semantic Space — Герой --- */
  --ast-hero-gap: 220rem;

  /* --- 09 Semantic Space — Варианты компонентов --- */
  --ast-variant-card-layout: Default;
  --ast-variant-header: Desktop;
  --ast-variant-announcement: Default;
  --ast-variant-fact-row: Horizontal;
  --ast-variant-before-after: Horizontal;
  --ast-variant-segmented: Horizontal;
}

/* --- Режим Laptop: отличия от Desktop --- */

@media (max-width: 1024px) {
  :root {
    /* --- 06 Typography — Типографика --- */
    --ast-typography-size-display-xl: 42rem;
    --ast-typography-size-heading-xl: 36rem;
    --ast-typography-size-heading-l: 30rem;
    --ast-typography-line-display-xl: 44rem;
    --ast-typography-line-heading-xl: 38rem;
    --ast-typography-line-heading-l: 34rem;

    /* --- 09 Semantic Space — Раскладка --- */
    --ast-layout-gutter: var(--ast-space-l);
    --ast-layout-content-narrow: 1320rem;
    --ast-layout-content-text: 1320rem;

    /* --- 09 Semantic Space — Вертикальный ритм секций --- */
    --ast-layout-section-compact: 56rem;
    --ast-layout-section-regular: 80rem;
    --ast-layout-section-spacious: 112rem;

    /* --- 09 Semantic Space — Зазоры --- */
    --ast-gap-m: 24rem;
    --ast-gap-l: 40rem;
    --ast-gap-xl: 56rem;

    /* --- 09 Semantic Space — Поля карточек --- */
    --ast-padding-card-l: 28rem;
    --ast-padding-card-xl: 40rem;
    --ast-padding-card-2xl: 56rem;

    /* --- 09 Semantic Space — Пороги сеток --- */
    --ast-grid-card-min: 440rem;

    /* --- 09 Semantic Space — Карточки --- */
    --ast-carousel-card: 405rem;
    --ast-card-review-featured: 615.5rem;
    --ast-card-pricing: 336rem;
    --ast-card-min-height: 260rem;

    /* --- 09 Semantic Space — Герой --- */
    --ast-hero-gap: 96rem;

    /* --- 09 Semantic Space — Варианты компонентов --- */
    --ast-variant-header: Desktop Small;
  }
}

/* --- Режим Tablet: отличия от Desktop --- */

@media (max-width: 920px) {
  :root {
    /* --- 06 Typography — Типографика --- */
    --ast-typography-size-display-xl: 36rem;
    --ast-typography-size-heading-xl: 32rem;
    --ast-typography-size-heading-l: 28rem;
    --ast-typography-size-heading-m: 22rem;
    --ast-typography-size-heading-s: 18rem;
    --ast-typography-size-heading-xs: 16rem;
    --ast-typography-size-body-l: 16rem;
    --ast-typography-size-body-m: 15rem;
    --ast-typography-line-display-xl: 38rem;
    --ast-typography-line-heading-xl: 34rem;
    --ast-typography-line-heading-l: 32rem;
    --ast-typography-line-heading-m: 26rem;

    /* --- 09 Semantic Space — Раскладка --- */
    --ast-layout-gutter: var(--ast-space-l);
    --ast-layout-content-narrow: 1320rem;
    --ast-layout-content-text: 1320rem;

    /* --- 09 Semantic Space — Вертикальный ритм секций --- */
    --ast-layout-section-compact: 48rem;
    --ast-layout-section-regular: 72rem;
    --ast-layout-section-spacious: 88rem;

    /* --- 09 Semantic Space — Зазоры --- */
    --ast-gap-s: 20rem;
    --ast-gap-m: 24rem;
    --ast-gap-l: 32rem;
    --ast-gap-xl: 40rem;

    /* --- 09 Semantic Space — Поля карточек --- */
    --ast-padding-card-s: 12rem;
    --ast-padding-card-m: 20rem;
    --ast-padding-card-l: 24rem;
    --ast-padding-card-xl: 32rem;
    --ast-padding-card-2xl: 48rem;

    /* --- 09 Semantic Space — Пороги сеток --- */
    --ast-grid-card-min: 320rem;
    --ast-grid-split-min: 426rem;

    /* --- 09 Semantic Space — Карточки --- */
    --ast-carousel-card: 360rem;
    --ast-card-review-featured: 548rem;
    --ast-card-pricing: var(--ast-carousel-card);
    --ast-card-logo: 148rem;
    --ast-card-min-height: 240rem;

    /* --- 09 Semantic Space — Меры строки и логотипы --- */
    --ast-measure-heading: 560rem;
    --ast-measure-text: 520rem;

    /* --- 09 Semantic Space — Герой --- */
    --ast-hero-gap: 64rem;

    /* --- 09 Semantic Space — Варианты компонентов --- */
    --ast-variant-header: Mobile;
    --ast-variant-announcement: Mobile;
  }
}

/* --- Режим Mobile: отличия от Desktop --- */

@media (max-width: 640px) {
  :root {
    /* --- 06 Typography — Типографика --- */
    --ast-typography-size-display-xl: 28rem;
    --ast-typography-size-heading-xl: 28rem;
    --ast-typography-size-heading-l: 24rem;
    --ast-typography-size-heading-m: 20rem;
    --ast-typography-size-heading-s: 18rem;
    --ast-typography-size-heading-xs: 16rem;
    --ast-typography-size-body-l: 16rem;
    --ast-typography-size-body-m: 15rem;
    --ast-typography-size-label-l: 15rem;
    --ast-typography-size-label-m: 13rem;
    --ast-typography-line-display-xl: 34rem;
    --ast-typography-line-heading-xl: 32rem;
    --ast-typography-line-heading-l: 28rem;
    --ast-typography-line-heading-m: 26rem;
    --ast-typography-line-body-l: 24rem;
    --ast-typography-line-body-m: 22rem;
    --ast-typography-line-label-l: 20rem;

    /* --- 09 Semantic Space — Раскладка --- */
    --ast-layout-gutter: var(--ast-space-m);
    --ast-layout-content-narrow: 1320rem;
    --ast-layout-content-text: 1320rem;

    /* --- 09 Semantic Space — Вертикальный ритм секций --- */
    --ast-layout-section-compact: 40rem;
    --ast-layout-section-regular: 56rem;
    --ast-layout-section-spacious: 72rem;

    /* --- 09 Semantic Space — Зазоры --- */
    --ast-gap-s: 16rem;
    --ast-gap-m: 16rem;
    --ast-gap-l: 24rem;
    --ast-gap-xl: 32rem;

    /* --- 09 Semantic Space — Поля карточек --- */
    --ast-padding-card-s: 12rem;
    --ast-padding-card-m: 16rem;
    --ast-padding-card-l: 20rem;
    --ast-padding-card-xl: 24rem;
    --ast-padding-card-2xl: 32rem;

    /* --- 09 Semantic Space — Пороги сеток --- */
    --ast-grid-card-min: 300rem;

    /* --- 09 Semantic Space — Карточки --- */
    --ast-carousel-card: 300rem;
    --ast-card-review-featured: var(--ast-carousel-card);
    --ast-card-pricing: var(--ast-carousel-card);
    --ast-card-logo: 86rem;
    --ast-card-min-height: 220rem;

    /* --- 09 Semantic Space — Меры строки и логотипы --- */
    --ast-measure-heading: 420rem;
    --ast-measure-text: 480rem;
    --ast-logo-bounds-w: 78rem;
    --ast-logo-bounds-h: 26rem;

    /* --- 09 Semantic Space — Герой --- */
    --ast-hero-gap: 48rem;

    /* --- 09 Semantic Space — Варианты компонентов --- */
    --ast-variant-header: Mobile;
    --ast-variant-announcement: Mobile;
    --ast-variant-before-after: Vertical;
    --ast-variant-segmented: Vertical;
  }
}

/* --- Стили Figma: не переменные. Править в стилях, не в переменных. --- */

:root {
  /* --- Эффект-стили Elevation --- */
  --ast-elevation-subtle: 0 1rem 2rem 0 rgb(0 0 0 / 0.05);
  --ast-elevation-raised: 0 2rem 4rem -1rem rgb(0 0 0 / 0.06), 0 1rem 2rem 0 rgb(0 0 0 / 0.04);
  --ast-elevation-overlay: 0 8rem 16rem -4rem rgb(0 0 0 / 0.08), 0 2rem 6rem -2rem rgb(0 0 0 / 0.05);

  /* --- Текстовые стили — начертания и трекинг --- */
  --ast-typography-weight-medium: 500;
  --ast-typography-weight-semibold: 600;

  --ast-typography-tracking-display-xl: -0.03em;
  --ast-typography-tracking-heading-xl: -0.025em;
  --ast-typography-tracking-heading-l: -0.02em;
  --ast-typography-tracking-heading-m: -0.015em;
  --ast-typography-tracking-heading-s: -0.01em;
  --ast-typography-tracking-heading-xs: -0.01em;
  --ast-typography-tracking-body: 0;
  --ast-typography-tracking-label: 0;
}
