/*
Theme Name: 101 Landings Child mts-home-online.ru
Description: Starter child theme for migrating legacy landings to 101landings parent.
Template: 101landings
Version: 1.0.0
*/

/* ============================================================================
   MTS редизайн 2026 — библиотека компонентов (перенесено из css/figma/*).
   Порядок: tokens → components → forms → tariff-card → popups.
   Источник правды для компонентов лендинга. Стили блоков — в css/style-blocks/*.
   ============================================================================ */

/* === tokens.css === */
/**
 * MTS редизайн 2026 — дизайн-токены.
 * Source: Variable Collection «MTS Colors», light mode (Figma 185:35993).
 * Все компоненты опираются на эти переменные. Сырые HEX в теле компонентов не используются.
 */

:root {
    /* --- Бренд / controls --- */
    --brand-red: #FF0032;
    --primary-hover: #E5002D;
    --primary-pressed: #CC0028;
    --inactive: #BCC3D0;
    --focus-ring: #1D2023;

    /* --- Текст --- */
    --text-primary: #1D2023;
    --text-secondary: #626C77;
    --text-tertiary: #969FA8;
    --text-inverse: #FFFFFF;
    --text-link: #45B6FC;
    --text-link-hover: #62C3FF;
    --text-link-active: #22ABFF;
    --text-error: #E8002E;

    /* --- Акценты --- */
    --accent-info: #0097FD;
    --accent-positive: #26CD58;
    --accent-negative: #F95721;
    --accent-warning: #FAC031;

    /* --- Поверхности / фоны --- */
    --surface-page: #FFFFFF;
    --surface-muted: #F2F3F7;
    --surface-muted-2: #F2F2F5;
    --input-hover: #F7F8FA;
    --button-gray: #E2E5EB;
    --button-light-gray: #F2F3F7;
    /* Secondary button hover/pressed (Figma 185:38415) */
    --secondary-hover: #E6E8EE;
    --secondary-pressed: #D9DCE3;
    --bg-layout: #E9EAEF;
    --bg-header: rgba(255, 255, 255, 0.7);
    --bg-footer: #E9EAEF;
    --bg-stroke: #BCC3D0;
    --bg-blackout: rgba(29, 32, 35, 0.4);

    /* --- Scrollbar (Figma Scrollbar 185:37037 / Thumb 185:36996) --- */
    --scrollbar-track: #E2E5EB;
    /* surface/border — тонкая линия трека 2px */
    --scrollbar-thumb: #BCC3D0;
    /* surface/thumb — ползунок 4px */

    /* --- Состояния контролов --- */
    --segment-selected: rgba(127, 140, 153, 0.35);
    --tab-default: rgba(238, 239, 242, 0.6);
    /* Активный таб — сине-тёмный градиент (Figma Tab 185:38613) */
    --tab-active-gradient: linear-gradient(109.76deg, #5FAEF8 4.96%, #1D1E23 62.89%);
    --badge-red-soft: #FFE8EC;
    --badge-info-soft: rgba(0, 151, 253, 0.1);
    --badge-info-text: #2563EB;
    --focus-border: #626C77;

    /* --- Радиусы --- */
    --radius-sm: 8px;
    --radius-md: 12px;
    --radius-lg: 16px;
    --radius-xl: 20px;
    --radius-2xl: 24px;

    /* --- Spacing (4-base) --- */
    --space-4: 4px;
    --space-8: 8px;
    --space-12: 12px;
    --space-16: 16px;
    --space-20: 20px;
    --space-24: 24px;
    --space-32: 32px;
    --space-40: 40px;
    --space-48: 48px;
    --space-64: 64px;

    /* --- Тени --- */
    --shadow-elevation-1: 0 2px 8px rgba(0, 0, 0, 0.08);
    --shadow-elevation-2: 0 8px 12px rgba(0, 0, 0, 0.06);
    --shadow-tariff-card: 0 2px 8px 0 rgba(0, 0, 0, 0.08);
    --shadow-adress-check-form: 0 4px 16px rgba(0, 0, 0, 0.05);
    --shadow-segment-selected: 0 0 4px rgba(0, 0, 0, 0.05);

    /* --- Эффекты: размытие (Figma 185:36342 «effects/blur») --- */
    --blur-backdrop: 2px;
    /* Backdrop модалок: bg/blackout + backdrop-filter blur 2px */
    --blur-header: 12px;
    /* размытие под полупрозрачным хедером bg/header */

    /* --- Типографика --- */
    --font-family: 'MTS Text', 'MTS Wide', 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;

    /* H1 / Bold (hero desktop) */
    --font-h1-size: 48px;
    --font-h1-lh: 56px;
    /* H1 Mobile / Bold */
    --font-h1-mobile-size: 32px;
    --font-h1-mobile-lh: 38px;
    /* H2 / Bold */
    --font-h2-size: 32px;
    --font-h2-lh: 38px;
    /* H3 / Medium */
    --font-h3-size: 24px;
    --font-h3-lh: 32px;
    /* H4 / Medium */
    --font-h4-size: 20px;
    --font-h4-lh: 28px;
    /* Body Large */
    --font-body-lg-size: 18px;
    --font-body-lg-lh: 24px;
    /* Body Default */
    --font-body-size: 16px;
    --font-body-lh: 24px;
    /* Body Small */
    --font-body-sm-size: 14px;
    --font-body-sm-lh: 20px;
    /* Caption */
    --font-caption-size: 12px;
    --font-caption-lh: 16px;
    /* Button / Bold UPPER */
    --font-button-size: 14px;
    --font-button-lh: 20px;
    /* Price / Medium — цена тарифа (PriceBlock, TariffCard) */
    --font-price-size: 24px;
    --font-price-lh: 32px;

    --fw-regular: 400;
    --fw-medium: 500;
    --fw-bold: 700;
}

/* --- Типографические утилиты MTS Text --- */
.h1 {
    font: var(--fw-bold) var(--font-h1-size)/var(--font-h1-lh) var(--font-family);
}

.h2 {
    font: var(--fw-bold) var(--font-h2-size)/var(--font-h2-lh) var(--font-family);
}

.h3 {
    font: var(--fw-medium) var(--font-h3-size)/var(--font-h3-lh) var(--font-family);
}

.h4 {
    font: var(--fw-medium) var(--font-h4-size)/var(--font-h4-lh) var(--font-family);
}

.body-lg {
    font: var(--fw-regular) var(--font-body-lg-size)/var(--font-body-lg-lh) var(--font-family);
}

.body {
    font: var(--fw-regular) var(--font-body-size)/var(--font-body-lh) var(--font-family);
}

.body-sm {
    font: var(--fw-regular) var(--font-body-sm-size)/var(--font-body-sm-lh) var(--font-family);
}

.caption {
    font: var(--fw-regular) var(--font-caption-size)/var(--font-caption-lh) var(--font-family);
}

.price {
    font: var(--fw-medium) var(--font-price-size)/var(--font-price-lh) var(--font-family);
}

@media (max-width: 800px) {
    .h1 {
        font-size: var(--font-h1-mobile-size);
        line-height: var(--font-h1-mobile-lh);
    }
}

/* === components.css === */
/**
 * MTS редизайн 2026 — базовые контролы и контентные блоки.
 * Имена классов = имена компонентов Figma. Значения сверены с макетом
 * (file ymxaJVY1BNTfRbax5YEPIF) по REST API. Сырых HEX в теле компонентов нет.
 *
 * Составные блоки вынесены в отдельные файлы:
 *   tariff-card.css · forms.css · popups.css
 *
 * Базовые сбросы скоупятся под .ui, чтобы не протекать в остальную верстку.
 */

.ui,
.ui * {
    box-sizing: border-box;
}

.ui {
    font-family: var(--font-family);
    color: var(--text-primary);
}

html.has-modal-open,
body.has-modal-open {
    overflow: hidden;
}

/* ============================================================
   Button (185:38415) — variant × size × state
   ============================================================ */
.Button {
    --_bg: transparent;
    --_color: var(--text-primary);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-8);
    border: 2px solid transparent;
    margin: 0;
    background: var(--_bg);
    color: var(--_color);
    font-family: var(--font-family);
    font-weight: var(--fw-bold);
    font-size: var(--font-button-size);
    line-height: var(--font-button-lh);
    text-transform: uppercase;
    text-decoration: none;
    cursor: pointer;
    white-space: nowrap;
    transition: background-color .15s ease, color .15s ease, border-color .15s ease;
    -webkit-tap-highlight-color: transparent;
    user-select: none;
}

/* variant: Action (primary) */
.Button--action {
    --_bg: var(--brand-red);
    --_color: var(--text-inverse);
}

.Button--action:hover {
    --_bg: var(--primary-hover);
}

.Button--action:active {
    --_bg: var(--primary-pressed);
}

.Button--action.is-disabled,
.Button--action:disabled {
    --_bg: var(--inactive);
    --_color: var(--text-inverse);
}

/* variant: Secondary */
.Button--secondary {
    --_bg: var(--button-light-gray);
    --_color: var(--text-primary);
}

.Button--secondary:hover {
    --_bg: var(--secondary-hover);
}

.Button--secondary:active {
    --_bg: var(--secondary-pressed);
}

.Button--secondary.is-disabled,
.Button--secondary:disabled {
    --_bg: var(--button-light-gray);
    --_color: var(--inactive);
}

/* variant: Black (навигация с иконками, Body/Medium 16, без uppercase) */
.Button--black {
    --_bg: transparent;
    --_color: var(--text-primary);
    height: 32px;
    padding: var(--space-4);
    gap: var(--space-8);
    border-radius: var(--radius-sm);
    font-weight: var(--fw-medium);
    font-size: var(--font-body-size);
    line-height: var(--font-body-lh);
    text-transform: none;
}

.Button--black .Button__icon {
    width: 24px;
    height: 24px;
    color: var(--text-tertiary);
}

.Button--black:hover {
    --_color: var(--text-secondary);
}

.Button--black.is-disabled,
.Button--black:disabled {
    --_color: var(--inactive);
}

/* variant: Blue (текстовая ссылка-кнопка) */
.Button--blue {
    --_bg: transparent;
    --_color: var(--text-link);
    font-weight: var(--fw-medium);
    text-transform: none;
    padding: var(--space-4) var(--space-8);
    border-radius: var(--radius-sm);
    height: auto;
}

.Button--blue:hover {
    --_color: var(--text-link-hover);
}

.Button--blue:active {
    --_color: var(--text-link-active);
}

.Button--blue.is-disabled,
.Button--blue:disabled {
    --_color: var(--inactive);
}

/* кегли blue */
.Button--blue.Button--16 {
    font-size: 16px;
    line-height: 24px;
}

.Button--blue.Button--20 {
    font-size: 20px;
    line-height: 28px;
}

.Button--blue.Button--24 {
    font-size: 24px;
    line-height: 32px;
}

.Button--blue.Button--48t {
    font-size: 32px;
    line-height: 40px;
}

/* variant: RedText (текстовая кнопка красным — CookieBanner «ОК», Figma 185:39993) */
.Button--redText {
    --_bg: transparent;
    --_color: var(--brand-red);
    padding: var(--space-8);
    border-radius: var(--radius-lg);
    height: auto;
}

.Button--redText:hover {
    --_color: var(--primary-hover);
}

.Button--redText:active {
    --_color: var(--primary-pressed);
}

/* size (заливочные варианты) */
.Button--big {
    height: 52px;
    padding: var(--space-16) var(--space-24);
    border-radius: var(--radius-lg);
}

.Button--44 {
    height: 44px;
    padding: var(--space-12) var(--space-20);
    border-radius: 14px;
}

.Button--small {
    height: 40px;
    padding: var(--space-12) var(--space-20);
    border-radius: 14px;
}

.Button--36 {
    height: 36px;
    padding: var(--space-8);
    border-radius: var(--radius-lg);
}

.Button--32 {
    height: 32px;
    padding: var(--space-4) var(--space-8);
    border-radius: var(--radius-sm);
}

.Button--24 {
    height: 24px;
    padding: 2px var(--space-4);
    border-radius: var(--radius-sm);
}

/* icon-only квадраты */
.Button--icon-68 {
    width: 68px;
    padding: 0;
}

.Button--icon-58 {
    width: 58px;
    padding: 0;
}

.Button--icon-36 {
    width: 36px;
    height: 36px;
    padding: 0;
}

/* состояния */
.Button:focus-visible,
.Button.is-focus {
    outline: none;
    border-color: var(--focus-border);
}

.Button.is-disabled,
.Button:disabled {
    pointer-events: none;
}

.Button--fullWidth {
    width: 100%;
}

/* loading: текст скрыт, показываем ••• */
.Button.is-loading {
    color: transparent !important;
    position: relative;
    pointer-events: none;
}

.Button.is-loading>* {
    visibility: hidden;
}

.Button.is-loading::after {
    content: "";
    position: absolute;
    inset: 0;
    margin: auto;
    width: 24px;
    height: 6px;
    background-image: radial-gradient(circle 3px, currentColor 92%, transparent 0);
    background-size: 12px 6px;
    color: var(--text-inverse);
    animation: btn-dots .9s infinite linear;
    visibility: visible;
}

.Button--secondary.is-loading::after,
.Button--black.is-loading::after,
.Button--blue.is-loading::after {
    color: var(--text-primary);
}

@keyframes btn-dots {

    0%,
    100% {
        opacity: .35;
    }

    50% {
        opacity: 1;
    }
}

.Button__icon {
    display: inline-flex;
    width: 20px;
    height: 20px;
    flex: 0 0 auto;
}

.Button__icon svg {
    width: 100%;
    height: 100%;
}

/* ============================================================
   IconButton / CloseButton (185:38478 / 185:38511)
   ============================================================ */
.IconButton {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 2px solid transparent;
    padding: 2px;
    background: transparent;
    color: var(--text-tertiary);
    border-radius: var(--radius-sm);
    cursor: pointer;
    transition: color .15s ease, border-color .15s ease;
}

.IconButton--28 {
    width: 28px;
    height: 28px;
}

.IconButton--36 {
    width: 36px;
    height: 36px;
}

.IconButton:hover {
    color: var(--text-secondary);
}

.IconButton:focus-visible,
.IconButton.is-focus {
    outline: none;
    border-color: var(--focus-border);
}

.IconButton.is-disabled,
.IconButton:disabled {
    color: var(--inactive);
    pointer-events: none;
}

.IconButton--prev .IconButton__icon {
    transform: scaleX(-1);
}

.IconButton__icon {
    display: inline-flex;
    width: 24px;
    height: 24px;
}

.IconButton--36 .IconButton__icon {
    width: 28px;
    height: 28px;
}

.IconButton__icon svg {
    width: 100%;
    height: 100%;
}

.carousel__arrow {
    color: var(--text-tertiary);
    opacity: 1;
}

.carousel__arrow.is-disabled,
.carousel__arrow:disabled {
    color: var(--text-tertiary);
    opacity: .6;
}

.CloseButton {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border: 2px solid transparent;
    border-radius: var(--radius-sm);
    padding: 0;
    background: transparent;
    color: var(--text-tertiary);
    cursor: pointer;
    transition: color .15s ease, border-color .15s ease;
}

.CloseButton:hover {
    color: var(--text-secondary);
}

.CloseButton:focus-visible {
    outline: none;
    border-color: var(--focus-border);
}

.CloseButton svg {
    width: 14px;
    height: 14px;
}

/* ============================================================
   Input (185:37565) — поля 52px, текст 14/20, r16
   ============================================================ */
.Input {
    display: block;
}

.Input__field {
    width: 100%;
    height: 52px;
    padding: 0 var(--space-16);
    border: 2px solid transparent;
    border-radius: var(--radius-lg);
    background: var(--surface-muted);
    color: var(--text-primary);
    font-family: var(--font-family);
    font-size: var(--font-body-sm-size);
    line-height: var(--font-body-sm-lh);
    outline: none;
    transition: border-color .15s ease, background-color .15s ease;
}

.Input__field::placeholder {
    color: var(--text-secondary);
}

.Input__field:hover {
    background: var(--input-hover);
}

.Input__field:focus {
    border-color: var(--focus-border);
}

.Input.is-error .Input__field {
    border-width: 1px;
    border-color: var(--text-error);
}

/* Error-состояние из lead-forms.js (ставит aria-invalid="true" на инпут) —
   красная рамка + светлый фон, как в макете Input/PhoneInput (185:37565/185:37592). */
.Input__field[aria-invalid="true"] {
    border-width: 1px;
    border-color: var(--text-error);
    background: #fff;
    /* перекрываем чёрный outline из родительского base-forms.css (currentColor) */
    outline: 1px solid var(--text-error);
    outline-offset: -1px;
}

.Input.is-disabled .Input__field,
.Input__field:disabled {
    opacity: .6;
    pointer-events: none;
}

.Input__hint {
    margin-top: var(--space-4);
    font-size: var(--font-caption-size);
    line-height: var(--font-caption-lh);
    color: var(--text-secondary);
}

.Input.is-error .Input__hint {
    color: var(--text-error);
}

/* ============================================================
   PhoneInput / PhoneRow (185:37592 / 185:37803)
   ============================================================ */
.PhoneInput {
    display: block;
}

/* PhoneRow — заполненная строка: label+value слева + действие справа */
.PhoneRow {
    display: flex;
    align-items: center;
    gap: var(--space-8);
    width: 440px;
    max-width: 100%;
    min-height: 52px;
    padding: var(--space-8) var(--space-12);
    border: 2px solid transparent;
    border-radius: var(--radius-lg);
    background: var(--surface-muted);
}

.PhoneRow:hover {
    background: var(--input-hover);
}

.PhoneRow.is-focus {
    border-color: var(--focus-border);
}

.PhoneRow.is-valid {
    border: 1px solid var(--accent-positive);
}

.PhoneRow__texts {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-width: 0;
}

.PhoneRow__label {
    font-size: var(--font-caption-size);
    line-height: var(--font-caption-lh);
    color: var(--text-secondary);
}

.PhoneRow__value {
    font-size: var(--font-body-sm-size);
    line-height: var(--font-body-sm-lh);
    color: var(--text-primary);
}

/* ============================================================
   Select / DropDown (185:38260 / 185:38829)
   ============================================================ */
.Select {
    position: relative;
    display: inline-block;
    width: 100%;
}

.Select__control {
    display: flex;
    align-items: center;
    gap: var(--space-8);
    width: 100%;
    height: 52px;
    padding: 0 var(--space-16);
    border: 2px solid transparent;
    border-radius: var(--radius-lg);
    background: var(--surface-muted);
    color: var(--text-primary);
    font-family: var(--font-family);
    font-size: var(--font-body-sm-size);
    line-height: var(--font-body-sm-lh);
    cursor: pointer;
    text-align: left;
    transition: border-color .15s ease, background-color .15s ease;
}

.Select__control:hover {
    background: var(--input-hover);
}

.Select__value {
    flex: 1 1 auto;
}

.Select__control:focus,
.Select.is-focus .Select__control {
    outline: none;
    border-color: var(--focus-border);
}

.Select.is-error .Select__control {
    border-color: var(--text-error);
}

.Select.is-disabled .Select__control {
    opacity: .6;
    pointer-events: none;
}

.Select__chevron {
    flex: 0 0 auto;
    width: 20px;
    height: 20px;
    display: inline-flex;
    transition: transform .2s ease;
    color: var(--text-secondary);
}

.Select__chevron svg {
    width: 100%;
    height: 100%;
}

.Select.is-open .Select__chevron {
    transform: rotate(180deg);
}

.Select__placeholder {
    color: var(--text-secondary);
}

.DropDown {
    position: absolute;
    z-index: 20;
    top: calc(100% + 4px);
    left: 0;
    width: 304px;
    max-width: 100%;
    max-height: 292px;
    overflow-y: auto;
    padding: var(--space-16) var(--space-8);
    background: var(--surface-muted);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-elevation-2);
    display: none;
}

.Select.is-open .DropDown {
    display: block;
}

/* Elements/Item (185:37535) — строка списка/выпадашки, r16, pad8 */
.Item {
    display: flex;
    align-items: center;
    gap: var(--space-8);
    width: 100%;
    min-height: 52px;
    padding: var(--space-8);
    border: 2px solid transparent;
    background: transparent;
    border-radius: var(--radius-lg);
    font-family: var(--font-family);
    font-size: var(--font-body-sm-size);
    line-height: var(--font-body-sm-lh);
    color: var(--text-secondary);
    cursor: pointer;
    text-align: left;
}

.Item:hover {
    background: var(--input-hover);
}

.Item.is-focus {
    border-color: var(--focus-border);
}

.Item.is-selected {
    color: var(--text-primary);
}

.Item.is-disabled {
    color: var(--inactive);
    pointer-events: none;
}

.Item__hint {
    font-size: var(--font-caption-size);
    line-height: var(--font-caption-lh);
    color: var(--text-secondary);
}

/* Инлайн-выбор города (Figma 45:12184 / 223:45671): поле-поиск встроено прямо
   в контрол Select. Пользователь печатает в самом инпуте, ниже — список городов. */
.DropDown--city {
    width: 100%;
    min-width: 0;
    max-width: none;
    max-height: 320px;
}

.Select__input {
    padding-right: 44px;
    cursor: text;
    text-overflow: ellipsis;
}

.Select__input::placeholder {
    color: var(--text-secondary);
}

[data-city-select] .Select__chevron {
    position: absolute;
    top: 26px;
    right: var(--space-16);
    transform: translateY(-50%);
    pointer-events: auto;
    cursor: pointer;
}

[data-city-select].is-open .Select__chevron {
    transform: translateY(-50%) rotate(180deg);
}

.DropDown__list {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.DropDown--city .Item {
    min-height: 40px;
}

.DropDown__empty {
    padding: var(--space-12);
    color: var(--text-secondary);
    font-size: var(--font-body-sm-size);
}

/* ============================================================
   SegmentedControl / SegmentItem (185:38578 / 185:37152)
   ============================================================ */
.SegmentedControl {
    display: inline-flex;
    gap: var(--space-4);
}

.SegmentItem {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-8);
    height: 36px;
    padding: var(--space-8);
    border: 0;
    background: var(--tab-default);
    border-radius: var(--radius-md);
    font-family: var(--font-family);
    font-size: var(--font-body-sm-size);
    line-height: var(--font-body-sm-lh);
    text-wrap: nowrap;
    color: var(--text-primary);
    cursor: pointer;
    transition: background-color .15s ease;
}

.SegmentItem:hover {
    background: var(--button-gray);
}

.SegmentItem.is-selected {
    background: var(--segment-selected);
    box-shadow: var(--shadow-segment-selected);
}

/* ============================================================
   Tabs / Tab (185:38613 / 185:37153) — вертикальный: иконка + подпись
   ============================================================ */
.Tabs {
    display: inline-flex;
    gap: var(--space-8);
    flex-wrap: wrap;
}

.Tab {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-4);
    border: 0;
    background: transparent;
    cursor: pointer;
    font-family: var(--font-family);
    padding: 0;
}

.Tab__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 104px;
    height: 56px;
    border-radius: var(--radius-md);
    background: var(--tab-default);
    color: var(--text-primary);
    transition: background .15s ease, color .15s ease;
}

.Tab__icon svg,
.Tab__icon img {
    width: 40px;
    height: 40px;
}

.Tab__label {
    font-weight: var(--fw-medium);
    font-size: var(--font-body-sm-size);
    line-height: var(--font-body-sm-lh);
    color: var(--text-primary);
}

.Tab.is-active .Tab__icon {
    background: var(--tab-active-gradient);
    color: var(--text-inverse);
}

/* ============================================================
   Badge (185:37184)
   ============================================================ */
.Badge {
    display: inline-flex;
    align-items: center;
    gap: var(--space-4);
    padding: 2px var(--space-8);
    border-radius: var(--radius-sm);
    font-weight: var(--fw-medium);
    font-size: var(--font-caption-size);
    line-height: var(--font-caption-lh);
    white-space: nowrap;
}

.Badge--action {
    background: var(--badge-red-soft);
    color: var(--brand-red);
}

.Badge--hit {
    background: var(--badge-info-soft);
    color: var(--badge-info-text);
}

.Badge--discount {
    background: var(--button-gray);
    color: var(--text-primary);
}

/* ============================================================
   Прочие контролы
   ============================================================ */
/* Link (185:37176) */
.Link {
    color: var(--text-link);
    text-decoration: none;
    cursor: pointer;
    transition: color .15s ease;
}

.Link:hover {
    color: var(--text-link-hover);
}

.Link:active {
    color: var(--text-link-active);
}

/* Tag (1987:6138) */
.Tag {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 24px;
    max-width: 100%;
    padding: 4px var(--space-8);
    border: 0;
    border-radius: 6px;
    background: rgba(29, 32, 35, 0.08);
    color: var(--text-primary);
    font-family: var(--font-family);
    font-size: var(--font-caption-size);
    line-height: var(--font-caption-lh);
    font-weight: var(--fw-medium);
    white-space: normal;
    text-align: center;
    cursor: pointer;
    transition: background-color .15s ease, color .15s ease;
}

.Tag:hover,
.Tag--hover {
    background: rgba(29, 32, 35, 0.12);
}

.Tag:active,
.Tag--pressed {
    background: rgba(29, 32, 35, 0.18);
}

.Tag:focus-visible,
.Tag--focus {
    outline: 2px solid var(--focus-ring);
    outline-offset: 2px;
}

.Tag:disabled,
.Tag--disabled {
    background: transparent;
    color: var(--text-tertiary);
    cursor: default;
}

.Tag--plain {
    background: transparent;
}

/* Tooltip (66:24513) — белое облачко над триггером, хвост вниз */
.Tooltip {
    position: relative;
    display: inline-flex;
}

.Tooltip__bubble {
    position: absolute;
    bottom: calc(100% + 8px);
    left: 50%;
    transform: translateX(-50%);
    width: 172px;
    padding: var(--space-8);
    background: var(--surface-page);
    color: var(--text-primary);
    border-radius: 8px;
    font-size: 12px;
    line-height: 16px;
    box-shadow: var(--shadow-elevation-2);
    opacity: 0;
    visibility: hidden;
    transition: opacity .15s ease;
    z-index: 30;
}

.Tooltip__bubble::after {
    content: "";
    position: absolute;
    top: 100%;
    left: 50%;
    width: 12px;
    height: 12px;
    background: var(--surface-page);
    transform: translate(-50%, -50%) rotate(45deg);
    box-shadow: var(--shadow-elevation-2);
    clip-path: polygon(100% 0, 100% 100%, 0 100%);
}

.Tooltip--tail-left .Tooltip__bubble {
    left: 0;
    transform: none;
}

.Tooltip--tail-left .Tooltip__bubble::after {
    left: var(--space-16);
}

.Tooltip--tail-center .Tooltip__bubble {
    left: 50%;
    transform: translateX(-50%);
}

.Tooltip--tail-center .Tooltip__bubble::after {
    left: 50%;
}

.Tooltip--tail-right .Tooltip__bubble {
    right: 0;
    left: auto;
    transform: none;
}

.Tooltip--tail-right .Tooltip__bubble::after {
    right: var(--space-16);
    left: auto;
}

.Tooltip:hover .Tooltip__bubble,
.Tooltip:focus-visible .Tooltip__bubble,
.Tooltip.is-open .Tooltip__bubble {
    opacity: 1;
    visibility: visible;
}

/* TwoLineButton (185:37375) */
.TwoLineButton {
    display: inline-flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
    border: 0;
    background: transparent;
    cursor: pointer;
    text-align: left;
    padding: 0;
    font-family: var(--font-family);
}

.TwoLineButton__title {
    font-size: var(--font-body-size);
    line-height: var(--font-body-lh);
    color: var(--text-primary);
    font-weight: var(--fw-medium);
}

.TwoLineButton__sub {
    font-size: var(--font-body-sm-size);
    line-height: var(--font-body-sm-lh);
    color: var(--text-link);
}

/* RadioButton (185:36925) */
.RadioButton {
    display: inline-flex;
    align-items: center;
    gap: var(--space-8);
    cursor: pointer;
}

.RadioButton__control {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    border: 2px solid var(--bg-stroke);
    flex: 0 0 auto;
    position: relative;
    transition: border-color .15s ease;
}

.RadioButton input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.RadioButton input:checked+.RadioButton__control {
    border-color: var(--brand-red);
}

.RadioButton input:checked+.RadioButton__control::after {
    content: "";
    position: absolute;
    inset: 3px;
    border-radius: 50%;
    background: var(--brand-red);
}

.RadioButton__label {
    font-size: var(--font-body-size);
    line-height: var(--font-body-lh);
}

/* Marker (185:36924) */
.Marker {
    width: 32px;
    height: 32px;
    border-radius: 50% 50% 50% 0;
    background: var(--brand-red);
    transform: rotate(-45deg);
    box-shadow: var(--shadow-elevation-1);
}

/* Trigger (185:37452) */
.Trigger {
    display: inline-flex;
    align-items: center;
    gap: var(--space-4);
    border: 0;
    background: transparent;
    color: var(--text-link);
    cursor: pointer;
    font-family: var(--font-family);
    font-size: var(--font-body-size);
    line-height: var(--font-body-lh);
    padding: 0;
}

.Trigger__chevron {
    display: inline-flex;
    transition: transform .2s ease;
}

.Trigger.is-open .Trigger__chevron {
    transform: rotate(180deg);
}

/* CarouselIndicator (185:36990) */
.CarouselIndicator {
    display: inline-flex;
    align-items: center;
    gap: var(--space-8);
}

.CarouselIndicator__dot {
    width: 8px;
    height: 8px;
    border-radius: 4px;
    background: var(--inactive);
    cursor: pointer;
    transition: width .2s ease, background-color .2s ease;
}

.CarouselIndicator__dot.is-active {
    width: 20px;
    background: var(--brand-red);
}

/* Scrollbar (185:37037 / Thumb 185:36996): трек — тонкая линия 2px по центру, ползунок 4px */
.Scrollbar {
    overflow: auto;
    scrollbar-width: thin;
    scrollbar-color: var(--scrollbar-thumb) transparent;
}

.Scrollbar::-webkit-scrollbar {
    width: 4px;
    height: 4px;
}

.Scrollbar::-webkit-scrollbar-track {
    background: linear-gradient(to right, transparent calc(50% - 1px), var(--scrollbar-track) calc(50% - 1px), var(--scrollbar-track) calc(50% + 1px), transparent calc(50% + 1px));
}

.Scrollbar::-webkit-scrollbar-thumb {
    background: var(--scrollbar-thumb);
    border-radius: 2px;
}

/* Icon (185:36482) */
.Icon {
    display: inline-flex;
    width: 24px;
    height: 24px;
    flex: 0 0 auto;
}

.Icon svg {
    width: 100%;
    height: 100%;
}

/* MTSLogo (185:36858) */
.MTSLogo {
    display: inline-flex;
    align-items: center;
}

.MTSLogo svg {
    display: block;
    height: 32px;
    width: auto;
}

/* LogoItem / LogoContainer (185:36859 / 185:36860) — стек сервисов с нахлёстом */
.LogoContainer {
    display: inline-flex;
    align-items: center;
}

.LogoContainer .LogoItem+.LogoItem {
    margin-left: -8px;
}

.LogoItem {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: var(--radius-sm);
    background: var(--surface-muted);
    border: 1px solid var(--text-inverse);
    overflow: hidden;
}

.LogoItem img,
.LogoItem svg {
    width: 22px;
    height: 22px;
    object-fit: contain;
}

/* ============================================================
   Контентные блоки
   ============================================================ */
/* Accordion (185:37333) */
.Accordion {
    border-bottom: 1px solid var(--bg-stroke);
}

.Accordion:not(:last-child) {
    margin-bottom: 22px;
}

.Accordion__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-16);
    width: 100%;
    padding: 4px 0 12px;
    border: 0;
    background: transparent;
    cursor: pointer;
    text-align: left;
    font-family: var(--font-family);
    font-weight: var(--fw-medium);
    font-size: var(--font-h4-size);
    line-height: var(--font-h4-lh);
    color: var(--text-primary);
}

.Accordion__chevron {
    flex: 0 0 auto;
    display: inline-flex;
    transition: transform .2s ease;
    color: var(--text-secondary);
}

.Accordion__body {
    display: none;
    padding: 0 0 var(--space-8);
    font-size: var(--font-body-size);
    line-height: var(--font-body-lh);
    color: var(--text-secondary);
}

.Accordion.is-open .Accordion__chevron {
    transform: rotate(180deg);
}

.Accordion.is-open .Accordion__body {
    display: block;
}

/* ProductCard (185:41407) */
.ProductCard {
    display: flex;
    flex-direction: column;
    gap: var(--space-12);
    padding: var(--space-20);
    background: var(--surface-page);
    border-radius: var(--radius-2xl);
    box-shadow: var(--shadow-tariff-card);
}

.ProductCard__media {
    width: 100%;
    aspect-ratio: 16 / 10;
    border-radius: var(--radius-lg);
    background: var(--surface-muted);
    overflow: hidden;
}

.ProductCard__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ProductCard__title {
    font-weight: var(--fw-medium);
    font-size: var(--font-h4-size);
    line-height: var(--font-h4-lh);
}

.ProductCard__text {
    font-size: var(--font-body-size);
    line-height: var(--font-body-lh);
    color: var(--text-secondary);
}

/* SeoCard (186:42191) */
.SeoCard {
    padding: var(--space-32);
    background: var(--surface-muted);
    border-radius: var(--radius-2xl);
    display: flex;
    flex-direction: column;
    gap: var(--space-12);
}

.SeoCard__title {
    font-weight: var(--fw-bold);
    font-size: var(--font-h3-size);
    line-height: var(--font-h3-lh);
}

.SeoCard__text {
    font-size: var(--font-body-size);
    line-height: var(--font-body-lh);
    color: var(--text-secondary);
}

/* Advantages (185:41754) */
.Advantages {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: var(--space-24);
}

.Advantages__item {
    display: flex;
    flex-direction: column;
    gap: var(--space-8);
}

.Advantages__icon {
    width: 48px;
    height: 48px;
    color: var(--brand-red);
}

.Advantages__title {
    font-weight: var(--fw-medium);
    font-size: var(--font-h4-size);
    line-height: var(--font-h4-lh);
}

.Advantages__text {
    font-size: var(--font-body-size);
    line-height: var(--font-body-lh);
    color: var(--text-secondary);
}

/* StepItem / StepCard (186:41821 / 186:41822) */
.StepCard {
    display: flex;
    flex-direction: column;
    gap: var(--space-16);
}

.StepItem {
    display: flex;
    gap: var(--space-16);
    align-items: flex-start;
}

.StepItem__num {
    flex: 0 0 auto;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--brand-red);
    color: var(--text-inverse);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: var(--fw-bold);
    font-size: var(--font-body-size);
}

.StepItem__body {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
}

.StepItem__title {
    font-weight: var(--fw-medium);
    font-size: var(--font-h4-size);
    line-height: var(--font-h4-lh);
}

.StepItem__text {
    font-size: var(--font-body-size);
    line-height: var(--font-body-lh);
    color: var(--text-secondary);
}

/* BulletedItem / BulletedList (186:41868 / 186:41869) */
.BulletedList {
    display: flex;
    flex-direction: column;
    gap: var(--space-12);
    margin: 0;
    padding: 0;
    list-style: none;
}

.BulletedItem {
    display: flex;
    gap: var(--space-12);
    align-items: flex-start;
    font-size: var(--font-body-size);
    line-height: var(--font-body-lh);
}

.BulletedItem::before {
    content: "";
    flex: 0 0 auto;
    width: 8px;
    height: 8px;
    margin-top: 8px;
    border-radius: 50%;
    background: var(--brand-red);
}

/* Push (185:38915) — 48 / 52 */
.Push {
    display: flex;
    align-items: center;
    gap: var(--space-12);
    padding: 0 var(--space-16);
    background: var(--surface-page);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-elevation-2);
    font-size: var(--font-body-sm-size);
    line-height: var(--font-body-sm-lh);
}

.Push--48 {
    min-height: 48px;
}

.Push--52 {
    min-height: 52px;
}

/* TariffControl (185:39016) — 48 / 84 */
.TariffControl {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-12);
    padding: var(--space-12) var(--space-16);
    background: var(--surface-muted);
    border-radius: var(--radius-md);
}

.TariffControl--48 {
    min-height: 48px;
}

.TariffControl--84 {
    min-height: 84px;
}

/* PromoBanner (185:38880) — фоновое изображение + CTA снизу */
.PromoBanner {
    position: relative;
    width: 100%;
    border-radius: var(--radius-xl);
    overflow: hidden;
    background: var(--surface-muted) center/cover no-repeat;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
}

.PromoBanner__bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 0;
}

.PromoBanner__cta {
    position: relative;
    z-index: 1;
    padding: 0 var(--space-12) var(--space-12);
}

.PromoBanner--mobile {
    aspect-ratio: 328 / 224;
}

.PromoBanner--tablet {
    aspect-ratio: 720 / 234;
}

.PromoBanner--desktop-1200 {
    aspect-ratio: 1040 / 337;
}

.PromoBanner--desktop-1440 {
    aspect-ratio: 1208 / 392;
}

@media (min-width: 800px) {
    .PromoBanner__cta {
        padding-bottom: var(--space-24);
        max-width: 420px;
    }
}

/* ============================================================
   Header / Footer
   ============================================================ */
.FigmaHeader {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-24);
    padding: var(--space-16) var(--space-24);
    background: var(--bg-layout);
    backdrop-filter: blur(var(--blur-header));
    -webkit-backdrop-filter: blur(var(--blur-header));
}

.FigmaHeader__contacts {
    display: flex;
    align-items: center;
    gap: var(--space-24);
}

.FigmaFooter {
    background: var(--bg-layout);
    padding: var(--space-48) var(--space-24);
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: var(--space-32);
    font-size: var(--font-body-sm-size);
    line-height: var(--font-body-sm-lh);
    color: var(--text-secondary);
}

.FigmaFooter__col {
    display: flex;
    flex-direction: column;
    gap: var(--space-12);
}

.FigmaFooter__copyright {
    grid-column: 1 / -1;
    color: var(--text-tertiary);
    font-size: var(--font-caption-size);
}

@media (max-width: 800px) {
    .FigmaFooter {
        grid-template-columns: 1fr 1fr;
    }
}

/* === forms.css === */
/**
 * MTS редизайн 2026 — AdressForm (185:39369) / AdressCheckForm.
 * Сверено с макетом по 4 размерам (Figma get_design_context):
 *   328  → pad 20/12/16/12; поля в столбец; сегменты на всю ширину; заголовок H4 20/28
 *   720  → pad 20/40/16/40; город 208 + улица; контакты — 3 равных поля; заголовок H4; gap сегментов 4
 *   1040 → pad 32/132;      город 252; контакты — 3 равных поля; заголовок H3 24/32; gap сегментов 8
 *   1208 → pad 32/102;      город 332; «Дом» 332 фикс; телефон/кнопка тянутся
 * Тень формы — elevation-2 (0 8 12 #0000000F). Зависит от tokens.css и components.css.
 */

.AdressForm,
.AdressCheckForm {
    width: 100%;
    max-width: 1208px;
    background: var(--surface-page);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-elevation-2);
    display: flex;
    flex-direction: column;
    gap: var(--space-12);
    /* mobile-first: 20/12/16/12 */
    padding: var(--space-20) var(--space-12) var(--space-16);
}

/* Самодостаточность вне скоупа .ui (компонент переиспользуется на страницах) */
.AdressForm,
.AdressForm *,
.AdressCheckForm,
.AdressCheckForm * {
    box-sizing: border-box;
}

.AdressForm__head,
.AdressCheckForm__head {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
}

.AdressForm__title,
.AdressCheckForm__title {
    font-weight: var(--fw-medium);
    font-size: 20px;
    line-height: 28px;
    color: var(--text-primary);
}

.AdressForm__subtitle,
.AdressCheckForm__subtitle {
    font-size: var(--font-body-sm-size);
    line-height: var(--font-body-sm-lh);
    color: var(--text-primary);
}

.AdressForm__form,
.AdressCheckForm__form {
    display: flex;
    flex-direction: column;
    gap: var(--space-8);
}

/* Ряды полей. Mobile: каждое поле на всю ширину. */
.AdressForm__fields,
.AdressCheckForm__fields {
    display: grid;
    gap: var(--space-8);
}

.AdressForm__row,
.AdressCheckForm__row {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-8);
    align-items: flex-start;
}

/* min-width:0 — чтобы flex-элементы не распирали ряд по intrinsic-ширине */
.AdressForm__row>*,
.AdressCheckForm__row>* {
    min-width: 0;
    width: 100%;
}

.AdressForm__legal,
.AdressCheckForm__legal {
    font-size: var(--font-caption-size);
    line-height: var(--font-caption-lh);
    color: var(--text-secondary);
}

.AdressForm__legal a,
.AdressCheckForm__legal a {
    color: var(--text-link);
    text-decoration: none;
}

/* SegmentedControl: mobile — на всю ширину, сегменты равные */
.AdressForm .SegmentedControl,
.AdressCheckForm .SegmentedControl {
    display: flex;
    width: 100%;
}

.AdressForm .SegmentItem,
.AdressCheckForm .SegmentItem {
    flex: 1 1 0;
    min-width: 0;
}

/* ---- tablet 720 ---- */
@media (min-width: 800px) {

    .AdressForm,
    .AdressCheckForm {
        padding: var(--space-20) var(--space-40) var(--space-16);
    }

    .AdressForm .SegmentedControl,
    .AdressCheckForm .SegmentedControl {
        display: inline-flex;
        width: auto;
    }

    .AdressForm .SegmentItem,
    .AdressCheckForm .SegmentItem {
        flex: 0 0 auto;
    }

    /* row1: город(208) + улица; row2: дом + телефон + кнопка — три равных поля */
    .AdressForm__row,
    .AdressCheckForm__row {
        grid-template-columns: 208px minmax(0, 1fr);
    }

    .AdressForm__row--contacts,
    .AdressCheckForm__row--contacts {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

/* ---- desktop 1040 ---- */
@container (min-width: 1040px) {

    .AdressForm,
    .AdressCheckForm {
        padding: var(--space-32) 132px;
    }

    .AdressForm__title,
    .AdressCheckForm__title {
        font-size: var(--font-h3-size);
        line-height: var(--font-h3-lh);
    }

    .AdressForm__subtitle,
    .AdressCheckForm__subtitle {
        font-size: var(--font-body-size);
        line-height: var(--font-body-lh);
    }

    .AdressForm .SegmentedControl,
    .AdressCheckForm .SegmentedControl {
        gap: var(--space-8);
    }

    .AdressForm__row,
    .AdressCheckForm__row {
        grid-template-columns: 252px minmax(0, 1fr);
    }

    .AdressForm__row--contacts,
    .AdressCheckForm__row--contacts {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

/* ---- desktop 1208 ---- */
@container (min-width: 1208px) {

    .AdressForm,
    .AdressCheckForm {
        padding: var(--space-32) 102px;
    }

    .AdressForm__row,
    .AdressCheckForm__row {
        grid-template-columns: 332px minmax(0, 1fr);
    }

    /* «Дом» фиксируется под шириной города (332), телефон/кнопка тянутся */
    .AdressForm__row--contacts,
    .AdressCheckForm__row--contacts {
        grid-template-columns: 332px repeat(2, minmax(0, 1fr));
    }
}

/* === tariff-card.css === */
/**
 * MTS редизайн 2026 — TariffCard (185:39370) + TariffFeature + PriceBlock.
 * Сверено с Figma: width 320, pad 16/12/12, r20, gap16; заголовок 20/28 Bold,
 * описание/фичи 14/20, цена 24/32 Medium. CTA на всю ширину, прижата вниз.
 * Зависит от tokens.css и components.css (Badge, Button, LogoContainer).
 */

.TariffCard {
    display: flex;
    flex-direction: column;
    gap: var(--space-16);
    min-width: 320px;
    max-width: 100%;
    padding: var(--space-16) var(--space-12) var(--space-12);
    background: var(--surface-page);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-tariff-card);
}

.TariffCard__badges {
    display: flex;
    gap: var(--space-4);
    flex-wrap: wrap;
}

.TariffCard__head {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
}

.TariffCard__title {
    font-weight: var(--fw-bold);
    font-size: 20px;
    line-height: 28px;
    color: var(--text-primary);
}

.TariffCard__desc {
    font-size: var(--font-body-sm-size);
    line-height: var(--font-body-sm-lh);
    color: var(--text-primary);
}

.TariffCard__features {
    display: flex;
    flex-direction: column;
    gap: var(--space-16);
}

/* блок цены + кнопки прижимается вниз, высота карточек в ряду выравнивается */
.TariffCard__footer {
    display: flex;
    flex-direction: column;
    gap: var(--space-12);
    margin-top: auto;
}

/* TariffFeature: иконка 24 + (значение / подпись) */
.TariffFeature {
    display: flex;
    align-items: flex-start;
    gap: var(--space-12);
}

.TariffFeature__icon {
    width: 24px;
    height: 24px;
    flex: 0 0 auto;
    color: var(--text-tertiary);
}

.TariffFeature__icon svg {
    width: 100%;
    height: 100%;
}

.TariffFeature__body {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.TariffFeature__label {
    font-size: var(--font-body-sm-size);
    line-height: var(--font-body-sm-lh);
    color: var(--text-secondary);
}

.TariffFeature__value {
    font-weight: var(--fw-medium);
    font-size: var(--font-body-size);
    line-height: var(--font-body-lh);
    color: var(--text-primary);
}

/* Линейка: переключатель скорости (radio для 2 вариантов / slider для 3+).
   Колонка: шапка (иконка+текст) сверху, контрол на всю ширину карточки снизу. */
.TariffFeature--control {
    flex-direction: column;
    align-items: stretch;
    gap: var(--space-12);
}

.TariffFeature--slider {
    gap: var(--space-4);
}

.TariffFeature__head {
    display: flex;
    align-items: flex-start;
    gap: var(--space-12);
}

.TariffCard__speed-radios {
    display: flex;
    gap: var(--space-4);
    width: 100%;
}

.TariffCard__speed-radios .RadioButton {
    flex: 1 1 0;
    gap: var(--space-8);
    padding: 12px 8px;
    background: #EEEFF2;
    border-radius: 12px;
    font-weight: var(--fw-medium);
}

/* Маркер радио (Figma 69:25338): не выбран — белый кружок с тонкой обводкой;
   выбран — толстое красное кольцо с белым центром, без центральной точки. */
.TariffCard__speed-radios .RadioButton__control {
    background: #fff;
    border: 1.5px solid var(--button-gray);
}

.TariffCard__speed-radios .RadioButton input:checked+.RadioButton__control {
    border: 3px solid var(--brand-red);
    background: #fff;
}

.TariffCard__speed-radios .RadioButton input:checked+.RadioButton__control::after {
    content: none;
}

.TariffFeature--control .Slider {
    width: 100%;
    padding: 0 8px;
}

.TariffFeature--control .Slider__track {
    margin: 12px 0;
}

/* Offer container: лого-стек сервисов + (текст + подсказка). Текст с «?» — группа
   без растяжки, чтобы «?» и облачко над ним не уезжали к краю карточки (Figma 69:25338). */
.TariffCard__offer {
    display: flex;
    align-items: flex-start;
    gap: var(--space-8);
}

.TariffCard__offer-info {
    display: flex;
    align-items: flex-start;
    gap: var(--space-4);
}

.TariffCard__offer-text {
    font-size: var(--font-body-sm-size);
    line-height: var(--font-body-sm-lh);
    color: var(--text-primary);
}

.TariffCard__offer-hint {
    position: relative;
    flex: 0 0 auto;
    width: 24px;
    height: 24px;
    cursor: pointer;
}

.TariffCard__offer-hint img {
    width: 100%;
    height: 100%;
    display: block;
}

/* PriceBlock: бейдж скидки + цена + подпись */
.PriceBlock {
    display: flex;
    flex-direction: column;
    gap: var(--space-8);
}

/* Бейдж скидки — по ширине контента, а не на всю карточку (Figma 69:25255). */
.PriceBlock .Badge--discount {
    align-self: flex-start;
}

.PriceBlock__price-wrap {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
}

.PriceBlock__price {
    font-weight: var(--fw-medium);
    font-size: var(--font-price-size);
    line-height: var(--font-price-lh);
    color: var(--text-primary);
}

.PriceBlock__sub {
    font-size: var(--font-body-sm-size);
    line-height: var(--font-body-sm-lh);
    color: var(--text-secondary);
}

/* Connect container: текст подключения + CTA */
.TariffCard__connect {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
}

.TariffCard__connect-text {
    font-size: var(--font-body-sm-size);
    line-height: var(--font-body-sm-lh);
    color: var(--text-secondary);
}

/* Slider + Thumb (внутри TariffCard) */
.Slider {
    display: flex;
    flex-direction: column;
    gap: var(--space-8);
    touch-action: none;
}

.Slider__value {
    font-weight: var(--fw-medium);
    font-size: var(--font-body-size);
    line-height: var(--font-body-lh);
}

.Slider__track {
    position: relative;
    height: 4px;
    border-radius: 2px;
    background: var(--button-gray);
    touch-action: none;
}

.Slider__fill {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    border-radius: 2px;
    background: var(--brand-red);
}

.Slider__thumb {
    position: absolute;
    top: 50%;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: #fff;
    border: 0;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.16), 0 0 2px rgba(0, 0, 0, 0.08);
    transform: translate(-50%, -50%);
    cursor: pointer;
}

/* Ряд карточек в карусели: тянутся по колонке, высота выравнивается */
.TariffCard--stretch {
    width: 100%;
    height: 100%;
}

.MobileTariffCard {
    min-height: 422px;
    border-radius: 20px;
    padding: 16px 12px 12px;
}

.MobileTariffCard__badges {
    min-height: 20px;
    gap: 4px;
}

.MobileTariffCard__body {
    display: flex;
    flex-direction: column;
    gap: var(--space-16);
    width: 100%;
}

.MobileTariffCard__title {
    white-space: nowrap;
}

.MobileTariffCard__desc {
    min-height: 40px;
}

.MobileTariffCard__feature-body {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
}

.MobileTariffCard__limits {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-8);
    width: 100%;
    font-weight: var(--fw-medium);
    font-size: var(--font-body-size);
    line-height: var(--font-body-lh);
    color: var(--text-primary);
    white-space: nowrap;
}

.MobileTariffCard__services {
    display: flex;
    align-items: flex-start;
    gap: var(--space-12);
    min-height: 40px;
    overflow: visible;
}

.MobileTariffCard__services-logos {
    flex: 0 0 auto;
    display: flex;
    align-items: flex-start;
    width: auto;
    max-width: 104px;
    height: 32px;
}

.MobileTariffCard__service-logo {
    display: block;
    flex: 0 0 32px;
    width: 32px;
    height: 32px;
    border: 1px solid var(--white, #fff);
    border-radius: 8px;
}

.MobileTariffCard__service-logo + .MobileTariffCard__service-logo {
    margin-left: -8px;
}

.MobileTariffCard__services-wrap {
    position: relative;
    flex: 1 1 auto;
    min-width: 0;
}

.MobileTariffCard__services-text {
    display: block;
    width: 100%;
    min-width: 0;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--text-primary);
    font-family: var(--font-family);
    font-size: var(--font-body-sm-size);
    line-height: var(--font-body-sm-lh);
    text-align: left;
    overflow: hidden;
    text-overflow: ellipsis;
    cursor: help;
}

.MobileTariffCard__services-text:not([data-mobile-services-trigger]) {
    cursor: default;
}

.MobileTariffCard__tooltip {
    position: absolute;
    left: 50%;
    bottom: calc(100% + 8px);
    z-index: 9999;
    width: 172px;
    padding: 8px;
    border-radius: 7px;
    background: var(--surface-page, #fff);
    box-shadow: 0 8px 12px rgba(0, 0, 0, 0.06);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateX(-50%) translateY(4px);
    transition: opacity .16s ease, visibility .16s ease, transform .16s ease;
}

.MobileTariffCard__tooltip.is-fixed {
    position: fixed;
    right: auto;
    bottom: auto;
    transform: translateY(4px);
}

.MobileTariffCard__tooltip::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 100%;
    width: 12px;
    height: 12px;
    background: var(--surface-page, #fff);
    transform: translate(-50%, -6px) rotate(45deg);
}

.MobileTariffCard__tooltip ul {
    width: 156px;
    margin: 0;
    padding-left: 18px;
    color: var(--text-primary);
    font-size: 12px;
    line-height: 16px;
    word-break: break-word;
}

.MobileTariffCard__tooltip li {
    margin: 0;
}

.MobileTariffCard__services-wrap:hover .MobileTariffCard__tooltip,
.MobileTariffCard__services-wrap:focus-within .MobileTariffCard__tooltip,
.MobileTariffCard__services-wrap.is-open .MobileTariffCard__tooltip {
    opacity: 1;
    visibility: visible;
    transform: translateX(-50%);
}

.MobileTariffCard__tooltip.is-fixed,
.MobileTariffCard__services-wrap:hover .MobileTariffCard__tooltip.is-fixed,
.MobileTariffCard__services-wrap:focus-within .MobileTariffCard__tooltip.is-fixed,
.MobileTariffCard__services-wrap.is-open .MobileTariffCard__tooltip.is-fixed {
    transform: none;
}

.MobileTariffCard__footer {
    min-height: 148px;
    width: 100%;
}

.MobileTariffCard__price {
    min-height: 84px;
    justify-content: center;
}

.MobileTariffCard__actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-4);
    width: 100%;
}

.MobileTariffCard__actions--single {
    grid-template-columns: 1fr;
}

.MobileTariffCard__actions .Button {
    min-width: 0;
    padding-right: var(--space-12);
    padding-left: var(--space-12);
}

.MobileTariffCard__details--hidden {
    display: none;
}

@media (max-width: 360px) {
    .MobileTariffCard__limits {
        gap: var(--space-4);
        font-size: 14px;
        line-height: 20px;
    }

    .MobileTariffCard__services-logos {
        width: 88px;
    }

    .MobileTariffCard__actions .Button {
        padding-right: var(--space-8);
        padding-left: var(--space-8);
    }
}

/* === popups.css === */
/**
 * MTS редизайн 2026 — модалки и оверлеи.
 * Backdrop (185:36482), ConnectionModal (185:39943), ConnectionSuccess (185:40213),
 * CitySelector (185:39989), SelectRegion (185:41360), PolicyLinksModal (185:39958),
 * CookieBanner (185:40000), PopupSupport (249:44830).
 * Все открываются поверх Backdrop; закрытие по CloseButton и клику по Backdrop.
 * Зависит от tokens.css и components.css.
 */

.Backdrop {
    position: fixed;
    inset: 0;
    background: var(--bg-blackout);
    backdrop-filter: blur(var(--blur-backdrop));
    -webkit-backdrop-filter: blur(var(--blur-backdrop));
    display: none;
    align-items: center;
    justify-content: center;
    padding: var(--space-16);
    z-index: 1000;
}

.Backdrop.is-open {
    display: flex;
}

.Backdrop--bottom {
    align-items: flex-end;
    justify-content: center;
    padding: 0;
}

/* Неблокирующие плашки (регион/cookie): без затемнения и блокировки, привязаны к
   правому краю контейнера (.mts-container сам задаёт max-width/padding под брейкпоинт). */
.Backdrop--float {
    background: transparent;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    pointer-events: none;
    padding: 0;
}

.Backdrop--float .mts-container {
    display: flex;
}

.Backdrop--float .CitySelector,
.Backdrop--float .CookieBanner {
    pointer-events: auto;
}

.Backdrop--top-right {
    align-items: flex-start;
}

.Backdrop--top-right .mts-container {
    justify-content: flex-end;
}

.Backdrop--bottom-right {
    align-items: flex-end;
    padding-bottom: var(--space-16);
}

.Backdrop--bottom-right .mts-container {
    justify-content: flex-end;
}

/* База модалки */
.Modal {
    position: relative;
    width: 100%;
    max-width: 328px;
    max-height: calc(100vh - 32px);
    overflow-y: auto;
    background: var(--surface-page);
    border-radius: var(--radius-xl);
    padding: var(--space-40, 40px) var(--space-16) var(--space-32);
    box-shadow: var(--shadow-elevation-2);
    display: flex;
    flex-direction: column;
    gap: var(--space-12);
}

.Modal__close {
    position: absolute;
    top: var(--space-16);
    right: var(--space-16);
}

.Modal__head {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
    padding-right: var(--space-32);
}

.Modal__title {
    font-weight: var(--fw-medium);
    font-size: 20px;
    line-height: 28px;
    color: var(--text-primary);
}

.Modal__subtitle {
    font-size: var(--font-body-sm-size);
    line-height: var(--font-body-sm-lh);
    color: var(--text-primary);
}

.Modal__body {
    display: flex;
    flex-direction: column;
    gap: var(--space-8);
}

/* ConnectionModal — 328 / 720 / 776 / 794 */
.ConnectionModal {
    gap: var(--space-12);
}

@media (min-width: 800px) {
    .ConnectionModal {
        max-width: 720px;
        padding: var(--space-32) var(--space-40, 40px);
    }
}

@media (min-width: 1201px) {
    .ConnectionModal {
        max-width: 794px;
    }
}

/* AddressModal (Figma 6:10577) — попап проверки адреса БЕЗ заголовка.
   Горизонтальная форма: row1 город+улица, row2 дом+телефон+кнопка, ниже legal.
   overflow:visible: базовый .Modal задаёт overflow-y:auto, который обрезает
   absolute-выпадашки автокомплита (.address-results) и города (.DropDown--city) —
   из-за этого список улиц/домов был виден не полностью. У самого списка свой скролл. */
.AddressModal {
    gap: var(--space-12);
    overflow: visible;
    container-type: inline-size;
}

@media (min-width: 768px) {
    .AddressModal {
        max-width: 720px;
        padding: var(--space-40, 40px) var(--space-20) var(--space-32);
    }
}

@media (min-width: 1040px) {
    .AddressModal {
        max-width: 776px;
        padding: var(--space-40, 40px) var(--space-40, 40px) var(--space-32);
    }
}

@media (min-width: 1201px) {
    .AddressModal {
        max-width: 794px;
    }
}

/* Заголовок попапа адреса (Figma 152:35122) — динамический, от кнопки-источника.
   padding-right, чтобы длинный текст не заходил под CloseButton. */
.AddressModal__title {
    margin: 0 0 8px;
    font-weight: var(--fw-medium);
    font-size: 24px;
    line-height: 32px;
    color: var(--text-primary);
    padding-right: var(--space-32);
}

.AddressModal__subtitle {
    margin: -4px 0 8px;
    max-width: 296px;
    font-size: var(--font-body-sm-size);
    line-height: var(--font-body-sm-lh);
    color: var(--text-primary);
}

@media (max-width: 800px) {
    .AddressModal__title {
        font-size: 20px;
        line-height: 28px;
        margin: 0 0 8px;
    }
}

.AddressModalForm {
    display: grid;
    gap: var(--space-8);
}

.AddressModalForm__segments {
    display: flex;
    width: 100%;
}

.AddressModalForm__segments .SegmentItem {
    flex: 1 1 0;
    min-width: 0;
}

.AddressModalForm__row {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-8);
    align-items: flex-start;
}

.AddressModalForm__row>* {
    min-width: 0;
    width: 100%;
}

.AddressModalForm__legal {
    font-size: var(--font-caption-size);
    line-height: var(--font-caption-lh);
    color: var(--text-secondary);
}

.AddressModalForm__legal a {
    color: var(--text-link);
    text-decoration: none;
}

@container (min-width: 680px) {
    .AddressModalForm__segments {
        display: inline-flex;
        width: auto;
        justify-self: start;
    }

    .AddressModalForm__segments .SegmentItem {
        flex: 0 0 auto;
    }

    .AddressModalForm__row {
        grid-template-columns: 220px minmax(0, 1fr);
    }

    .AddressModalForm__row--contacts {
        grid-template-columns: 220px repeat(2, minmax(0, 1fr));
    }
}

@container (min-width: 696px) {
    .AddressModalForm__row {
        grid-template-columns: 226px minmax(0, 1fr);
    }

    .AddressModalForm__row--contacts {
        grid-template-columns: 226px repeat(2, minmax(0, 1fr));
    }
}

@container (min-width: 714px) {
    .AddressModalForm__row {
        grid-template-columns: 232px minmax(0, 1fr);
    }

    .AddressModalForm__row--contacts {
        grid-template-columns: 232px repeat(2, minmax(0, 1fr));
    }
}

/* LeadModal — ловец лидов «Дарим 1000 ₽» (Figma 51:24519/51:26253/51:26353).
   Мобайл — колонка 328; с ≥768 (планшет) — 2 ряда 720; десктоп — 776.
   Наследует layout-классы AddressModalForm, но горизонталь включаем раньше (с 768),
   чтобы на планшете была раскладка по макету, а не узкая мобильная. */
@media (min-width: 768px) {
    .LeadModal {
        max-width: 720px;
        padding: var(--space-40, 40px) var(--space-20) var(--space-32);
    }

    .LeadModal .Modal__title {
        font-size: 24px;
        line-height: 32px;
    }

    .LeadModal .Modal__subtitle {
        font-size: 16px;
        line-height: 24px;
    }
}

@media (min-width: 1040px) {
    .LeadModal {
        max-width: 776px;
        padding: var(--space-40, 40px) var(--space-40, 40px) var(--space-32);
    }
}

@media (min-width: 1201px) {
    .LeadModal {
        max-width: 794px;
    }
}

/* ConnectionSuccess — 360 / 440 / 512 / 590 */
.ConnectionSuccess {
    max-width: 360px;
    gap: var(--space-16);
    text-align: left;
}

.ConnectionSuccess__image {
    width: 100px;
    height: 100px;
}

.ConnectionSuccess__image img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.ConnectionSuccess__heading {
    display: flex;
    flex-direction: column;
    gap: var(--space-8);
}

.ConnectionSuccess__title {
    font-weight: var(--fw-medium);
    font-size: var(--font-h3-size);
    line-height: var(--font-h3-lh);
}

.ConnectionSuccess__text {
    font-size: var(--font-body-size);
    line-height: var(--font-body-lh);
    color: var(--text-primary);
}

.ConnectionSuccess__queue {
    font-weight: var(--fw-medium);
    font-size: var(--font-body-size);
    line-height: var(--font-body-lh);
    white-space: pre-line;
}

.ConnectionSuccess__cta-note {
    font-size: var(--font-body-sm-size);
    line-height: var(--font-body-sm-lh);
    color: var(--text-secondary);
}

@media (min-width: 481px) {
    .ConnectionSuccess {
        max-width: 440px;
    }
}

@media (min-width: 800px) {
    .ConnectionSuccess {
        max-width: 512px;
    }
}

@media (min-width: 1201px) {
    .ConnectionSuccess {
        max-width: 590px;
    }
}

/* CitySelector — плашка справа внутри контейнера, нижние углы скруглены (Figma 2:2328).
   Мобайл — на всю ширину контейнера, ≥600 — фикс. 380 у правого края. */
.CitySelector {
    width: 100%;
    max-width: none;
    border-radius: 0 0 var(--radius-xl) var(--radius-xl);
    padding: var(--space-20) var(--space-12) var(--space-16);
    gap: var(--space-12);
}

.CitySelector__title {
    font-weight: var(--fw-medium);
    font-size: var(--font-body-size);
    line-height: var(--font-body-lh);
}

.CitySelector__actions {
    display: flex;
    gap: var(--space-12);
}

@media (min-width: 600px) {
    .CitySelector {
        max-width: 380px;
    }

    .CitySelector__title {
        font-size: 18px;
        line-height: 24px;
    }
}

/* SelectRegion — 328 / 720 / 776 / 794 */
.SelectRegion {
    max-width: 328px;
}

.SelectRegion__list {
    display: flex;
    flex-direction: column;
    max-height: 320px;
}

@media (min-width: 800px) {
    .SelectRegion {
        max-width: 720px;
    }
}

@media (min-width: 1201px) {
    .SelectRegion {
        max-width: 794px;
    }
}

/* PolicyLinksModal — 328, ссылки 14/20 medium */
.PolicyLinksModal {
    width: 328px;
    min-height: 156px;
    max-width: calc(100vw - 32px);
    justify-content: center;
    overflow: hidden;
    border-radius: 20px;
    padding: 36px var(--space-16) var(--space-32);
    gap: var(--space-8);
}

.PolicyLinksModal__link {
    display: block;
    width: 100%;
    margin: 0;
    font-weight: var(--fw-medium);
    font-size: var(--font-body-sm-size);
    line-height: var(--font-body-sm-lh);
    color: var(--text-primary);
    text-decoration: none;
    word-break: break-word;
}

.PolicyLinksModal__pdf {
    color: var(--text-link);
}

.PolicyLinksModal .Modal__close {
    top: var(--space-12);
    right: var(--space-12);
}

/* CookieBanner — строка «текст + ОК справа», r16. Мобайл — на всю ширину контейнера,
   ≥600 — фикс. 360 у правого края (Figma 185:39994). */
.CookieBanner {
    display: flex;
    width: 100%;
    max-width: none;
    flex-direction: row;
    align-items: center;
    gap: var(--space-8);
    background: var(--surface-page);
    border-radius: var(--radius-lg);
    padding: var(--space-8) var(--space-16);
    box-shadow: var(--shadow-elevation-2);
    overflow: visible;
}

@media (min-width: 600px) {
    .CookieBanner {
        max-width: 360px;
    }
}

.CookieBanner__text {
    flex: 1 1 auto;
    font-size: var(--font-caption-size);
    line-height: var(--font-caption-lh);
    color: var(--text-primary);
}

.CookieBanner__text a {
    color: var(--text-link);
    text-decoration: none;
}

.CookieBanner .Button--redText {
    flex: 0 0 auto;
    align-self: center;
}

.CookieBanner__text a:hover {
    color: var(--text-link-hover);
}

/* PopupSupport — mobile 328 (vertical) / desktop 720 (horizontal) */
.PopupSupport {
    max-width: 328px;
    gap: var(--space-16);
    align-items: flex-start;
}

.PopupSupport__text {
    font-size: var(--font-body-sm-size);
    line-height: var(--font-body-sm-lh);
    color: var(--text-primary);
}

.PopupSupport__text a {
    color: var(--text-link);
    text-decoration: none;
}

.PopupSupport__qr {
    flex: 0 0 180px;
    width: 180px;
    height: 180px;
    border-radius: var(--radius-xl);
    background: var(--surface-muted-2);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    color: var(--text-primary);
    font-size: var(--font-body-sm-size);
    align-self: center;
}

@media (min-width: 800px) {
    .PopupSupport {
        max-width: 720px;
        flex-direction: row;
        align-items: center;
        justify-content: center;
        gap: var(--space-20);
        padding: var(--space-40);
    }

    .PopupSupport__text {
        flex: 1 1 auto;
        align-self: center;
    }

    .PopupSupport__qr {
        align-self: center;
    }
}

/* ============================================================================
   Фундамент страниц редизайна (контейнер по брейкпоинтам, reset).
   Контент: 328 / 720 / 1040 / 1208; боковые отступы 16 / 40 / 80 / 116.
   ============================================================================ */
.mts-page,
.mts-page * {
    box-sizing: border-box;
}

.mts-page {
    margin: 0;
    font-family: var(--font-family);
    color: var(--text-primary);
    background: var(--surface-page);
    -webkit-font-smoothing: antialiased;
}

.mts-container {
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
    padding-left: 16px;
    padding-right: 16px;
}

@media (min-width: 600px) {
    .mts-container {
        max-width: 720px;
        padding-left: 24px;
        padding-right: 24px;
    }
}

@media (min-width: 800px) {
    .mts-container {
        max-width: 800px;
        padding-left: 40px;
        padding-right: 40px;
    }
}

@media (min-width: 1200px) {
    .mts-container {
        max-width: 1200px;
        padding-left: 80px;
        padding-right: 80px;
    }
}

@media (min-width: 1440px) {
    .mts-container {
        max-width: 1440px;
        padding-left: 116px;
        padding-right: 116px;
    }
}

/* Вертикальный ритм секций главной */
.mts-main {
    display: flex;
    flex-direction: column;
    padding-bottom: 56px;
    gap: 40px;
}

@media (max-width: 800px) {
    .mts-main {
        padding-bottom: 32px;
    }
}

.mts-section {
    width: 100%;
}

/* Заголовок секции: H2/H3 + опц. ссылка/кнопка */
.mts-section__head {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 24px;
}

@media (max-width: 800px) {
    .mts-section__head {
        margin-bottom: 16px;
    }
}

.mts-section__title {
    font-weight: var(--fw-medium);
    font-size: var(--font-h3-size);
    line-height: var(--font-h3-lh);
    color: var(--text-primary);
    margin: 0;
}

@media (max-width: 800px) {
    .mts-section__title {
        font-size: 20px;
        line-height: 28px;
    }
}

/* ============================================================================
   Фон-панели секций главной (hero и серая зона адрес/услуги).
   ============================================================================ */
.section-bg {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.section-bg--hero {
    position: relative;
    background: #FFFFFF;
}

/* Контент выше фон-слоя */
.section-bg--hero>* {
    position: relative;
    z-index: 1;
}

/* Figma 1:8287 «Content Container» — диагональный «металлик» фон под header/promo и
   верхней частью формы. Резко обрывается чуть выше середины формы (как в макете), без скруглений. */
.section-bg--hero::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    height: 552px;
    z-index: 0;
    background: linear-gradient(171.72deg, rgb(181, 187, 203) 23.42%, rgb(255, 255, 255) 46.82%, rgb(117, 122, 151) 97.53%);
}

.section-bg--muted {
    position: relative;
    background: #FFFFFF;
    gap: 32px;
}

.section-bg--muted>* {
    position: relative;
    z-index: 1;
}

/* Figma 1:8288 «Content Container» — серо-голубой фон с белым бликом справа-сверху под
   нижней формой; резко обрывается чуть выше середины блока доп. услуг (как сверху, но серый).
   Используется точный ассет из макета (images/section-bg-muted.svg). */
.section-bg--muted::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 70px;
    height: 360px;
    z-index: 0;
    background: url('images/section-bg-muted.svg') 0 0 / 100% 100% no-repeat;
}

@media (max-width: 1199px) {
    .section-bg--muted::before {
        height: 346px;
    }
}

@media (max-width: 799px) {
    .section-bg {
        gap: 16px;
    }

    .section-bg--muted {
        gap: 24px;
    }

    /* на мобиле доп. услуги встают в столбик — фон-панель выше */
    .section-bg--muted::before {
        height: 710px;
    }
}
