/* vdoam.ru — кастомные стили поверх темы.
   Версионируется через [[++custom_assets_version]] (см. bin/vdoam-assets-push.sh). */

/* ===== Yandex SmartCaptcha во всех формах заявок ===== */
.vdoam-smartcaptcha {
    min-height:100px;
    margin:12px 0 4px;
    max-width:100%;
    overflow:hidden;
}
.vdoam-smartcaptcha-hint,
.vdoam-form-result {
    width:100%;
    box-sizing:border-box;
    font-size:13px;
    line-height:1.35;
    margin:6px 0 10px;
    color:#C62828;
}
.vdoam-form-result.is-success { color:#138A36; }
.vdoam-form-result.is-error { color:#C62828; }
.user_form .vdoam-smartcaptcha {
    display:flex;
    justify-content:center;
}
.form-banner__form {
    flex-wrap:wrap !important;
}
.form-banner__form .vdoam-smartcaptcha,
.form-banner__form .vdoam-smartcaptcha-hint,
.form-banner__form .vdoam-form-result {
    flex:0 0 100%;
    order:5;
}
.form-banner__form .vdoam-smartcaptcha {
    display:flex;
    justify-content:center;
}
.form-banner__form .form-banner__btn {
    order:6;
}

/* ===== /czenyi: убрать border у .service-price-tabs__content-inner (просили) ===== */
.service-price-tabs__content-inner {
    border:none !important;
    border-radius:0 !important;
}

/* ===== Модалки форм (callback + онлайн-договор) — облагораживаем ===== */
.user_form {
    width:92% !important;
    max-width:540px !important;
    border-radius:24px !important;
    padding:40px 44px !important;
    box-shadow:0 20px 60px rgba(0,0,0,.25) !important;
    border:none !important;
    box-sizing:border-box;
}
@media (max-width:560px) {
    .user_form { padding:32px 22px !important; }
}
.user_form .f_zag {
    font-size:22px;
    font-weight:700;
    margin-bottom:22px;
    line-height:1.3;
    color:#262A38;
}
/* поля ввода */
.user_form input[type=text],
.user_form input[type=tel],
.user_form input[type=email],
.user_form select,
.user_form textarea {
    border:1.5px solid #E2E2E2 !important;
    border-radius:12px !important;
    padding:14px 16px !important;
    transition:border-color .2s, box-shadow .2s;
}
.user_form input:focus,
.user_form select:focus,
.user_form textarea:focus {
    border-color:#FF1E48 !important;
    box-shadow:0 0 0 3px rgba(255,30,72,.12) !important;
    outline:none;
}
.user_form label { font-weight:600; color:#262A38; }
/* кнопка отправки */
.user_form .modal-btn,
.user_form button[type=submit],
.user_form .btn {
    border-radius:12px !important;
    padding:15px 36px !important;
}
/* чекбокс согласия — inline текст, не flex (иначе ломается в колонку) */
.user_form .soglasie {
    font-size:13px;
    color:#777;
    display:block !important;
    line-height:1.45;
    font-weight:400;
    text-align:left;
}
.user_form .soglasie input[type=checkbox] {
    width:auto !important;
    min-width:0 !important;
    margin:0 7px 0 0 !important;
    padding:0 !important;
    vertical-align:middle;
    accent-color:#FF1E48;
    display:inline-block !important;
}
.user_form .soglasie a { color:#FF1E48; white-space:normal; }

/* крестик закрытия — круглая кнопка вместо тонкого X */
.user_form .fa-times-circle-o,
.user_form .cl_nw,
.user_form .close-container {
    position:absolute;
    top:16px;
    right:16px;
    width:38px;
    height:38px;
    border-radius:50%;
    background:#F3F3F3;
    display:flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
    transition:.2s;
    z-index:5;
}
.user_form .fa-times-circle-o:hover,
.user_form .cl_nw:hover,
.user_form .close-container:hover {
    background:#FF1E48;
}
.user_form .fa-times-circle-o::before {
    content:'\00d7';
    font-family:Arial, sans-serif;
    font-size:24px;
    line-height:1;
    color:#777;
    font-style:normal;
}
.user_form .fa-times-circle-o:hover::before { color:#fff; }
/* CSS-крестик callback (leftright/rightleft) — центрируем в кружке */
.user_form .cl_nw .leftright,
.user_form .cl_nw .rightleft {
    height:2px;
    width:18px;
    background:#777;
    border-radius:2px;
    position:absolute;
    top:50%;
    left:50%;
    margin:0 !important;
    transition:.2s;
}
.user_form .cl_nw .leftright { transform:translate(-50%,-50%) rotate(45deg); }
.user_form .cl_nw .rightleft { transform:translate(-50%,-50%) rotate(-45deg); }
.user_form .cl_nw:hover .leftright,
.user_form .cl_nw:hover .rightleft { background:#fff; }

/* форма обратного звонка внутри модалки — ограничить ширину, центрировать */
.user_form form#call_form {
    max-width:350px;
    margin:40px auto 0;
}

/* Чипы-переключатели вместо <select> (категория / формат в договоре) */
.chip-group {
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-top:6px;
}
.chip {
    padding:9px 16px;
    border:1.5px solid #E2E2E2;
    border-radius:10px;
    background:#fff;
    color:#262A38;
    font-size:14px;
    font-weight:500;
    cursor:pointer;
    transition:.18s;
    user-select:none;
    line-height:1.2;
}
.chip:hover { border-color:#FF1E48; color:#FF1E48; }
.chip.active {
    background:#FF1E48;
    border-color:#FF1E48;
    color:#fff;
}

/* backdrop затемнение */
#bd {
    background:rgba(20,20,30,.55) !important;
    backdrop-filter:blur(2px);
}

/* ===== Акции-баннеры (feature-flag ?dev=Y) ===== */
/* Баннер-карточка акции — на базе темовой .actions__item.
   Сбрасываем padding/min-height темы, баннер картинкой без обрезки, кнопка снизу. */
.actions__item--banner {
    padding:0;
    min-height:0;
    display:flex;
    flex-direction:column;
}
.actions__item-banner { display:block; line-height:0; overflow:hidden; }
.actions__item-banner img {
    width:100%;
    aspect-ratio:16/9;    /* thumb уже 800×450, ровная сетка */
    height:auto;
    object-fit:cover;
    display:block;
    transition:transform .3s;
}
.actions__item-banner:hover img { transform:scale(1.04); }
/* две кнопки 50/50 под баннером */
.actions__item-btns {
    display:flex;
    gap:12px;
    padding:16px 20px 20px;
}
.actions__item-btns .actions__item-btn {
    flex:1 1 50%;
    max-width:none;
    padding:14px 10px;
    text-align:center;
    border-radius:10px;
    font-size:14px;
}
.actions__item-btns .btn--grey:hover {
    background-color:#e4e4e4;
    border-color:#e4e4e4;
}

/* ===== Страница акции (/akcii/*) ===== */
.akcia-page__banner img, .akcia__banner img {
    width:100%;
    max-width:900px;
    height:auto;
    border-radius:16px;
    display:block;
    margin:0 auto 28px;
}
.akcia__body h3 { font-size:20px; font-weight:700; margin:22px 0 10px; }
.akcia__body ul { margin:10px 0 18px; padding-left:22px; }
.akcia__body li { margin-bottom:8px; line-height:1.5; }
.akcia__body p { margin-bottom:12px; line-height:1.6; }
.akcia__cta { text-align:center; margin:32px 0; }
.akcia__cta .btn { display:inline-flex; padding:16px 48px; }

/* ===== Header иконки + соцсети ===== */
.header__icon::before {
    content:'';
    position:absolute;
    top:0;
    left:0;
    width:40px;
    height:40px;
    background:#303030;
    border-radius:5px;
    background-position:center;
    background-size:70%;
    background-repeat:no-repeat;
}
.header__social-icon path {
    -webkit-transition:.3s;
    -o-transition:.3s;
    transition:.3s;
    fill:#fe1f48;
}

/* ===== Header кнопки «Автошкола рядом» + «Обратный звонок» — красные ===== */
/* НЕ добавляем класс .btn .btn--red в chunk — там padding:20px ломает шапку.
   Тут точечный override .header__btn под цветом сайта. */
.header__btn {
    background-color:#FF1E48 !important;
    color:#fff !important;
    border:1px solid #FF1E48;
}
.header__btn:hover {
    background-color:#fff !important;
    color:#FF1E48 !important;
    border:1px solid #FF1E48;
}

/* ===== Header (chunk id=13) ===== */
.header__phone.header__icon.phone { min-height:40px; align-items:center; display:flex; }
.header__social {
    display:flex;
    margin-top:15px;
    flex-direction:column;
    gap:10px;
    align-items:center;
    justify-content:flex-end;
}
@media (min-width:991px) { .logo.header__logo img { margin-top:-15px; } }
.footer-logo {
    max-width:160px;
    padding:11px;
    background:#fff;
    border-radius:20px;
}

/* ===== Главная: блок карточек тарифов ===== */
.cards-block__wrapper { gap:15px; }

/* ===== Контакты / карта (resource id=11) ===== */
.contacts-map #filials-map { width:100%; height:100%; }
.contacts-steps { padding:85px 0 60px 0 !important; }
@media (max-width:768px) { .contacts-steps { padding:40px 0 30px 0 !important; } }

/* ===== Категории-свайпер (главная) ===== */
.categories-swiper-wrap {
    position:relative;
    padding:0;
    margin:0 auto;
    margin-bottom:40px;
}
.categories-swiper { overflow:hidden; }
.categories-swiper .swiper-slide { height:auto; margin-bottom:20px; }

.categories-swiper-arrow {
    position:absolute;
    top:50%;
    transform:translateY(-50%);
    width:44px;
    height:44px;
    background:#FF1E48;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
    z-index:10;
    transition:.2s;
    box-shadow:0 4px 12px rgba(255,30,72,.3);
    border:none;
}
.categories-swiper-arrow:hover {
    background:#d4163b;
    transform:translateY(-50%) scale(1.08);
    box-shadow:0 6px 18px rgba(255,30,72,.4);
}
.categories-swiper-arrow svg { width:18px; height:18px; fill:#fff; }
.categories-swiper-prev { left:0; }
.categories-swiper-next { right:0; }
.categories-swiper-arrow.swiper-button-disabled {
    opacity:.25;
    cursor:default;
    pointer-events:none;
}
@media (max-width:768px) {
    .categories-swiper-arrow { width:36px; height:36px; }
}

/* Табы под каруселью категорий */
.service-price-tabs__content-tab { margin-bottom:10px; }
.service-price-tabs__content-btns {
    display:flex;
    margin-bottom:-11px;
}
.service-price-tabs__content-text.active {
    display:block;
    border-radius:10px;
    border:1px solid #D9D9D9;
    overflow:hidden;
}

/* ===== /czenyi: шапки таблиц тарифов — фиксируем ширины колонок ===== */
.table-wrapper .table { width:100%; border-collapse:collapse; table-layout:fixed; }
.table-wrapper .table th,
.table-wrapper .table td { padding:14px 18px; vertical-align:middle; word-wrap:break-word; }
.table-wrapper .table__header th { white-space:nowrap; }
.table-wrapper .table th:nth-child(1),
.table-wrapper .table td:nth-child(1) { width:14%; }   /* Тариф */
.table-wrapper .table th:nth-child(2),
.table-wrapper .table td:nth-child(2) { width:14%; }   /* Категория */
.table-wrapper .table th:nth-child(3),
.table-wrapper .table td:nth-child(3) { width:auto; }  /* Что входит */
.table-wrapper .table th:nth-child(4),
.table-wrapper .table td:nth-child(4) { width:16%; }   /* Стоимость */
@media (max-width:768px) {
    .table-wrapper .table th,
    .table-wrapper .table td { padding:10px 8px; font-size:13px; }
}

/* Header phone — крупнее и контрастнее (был #4B4B4B / 14px, плохо читался) */
.header__phone.header__icon.phone a {
    color:#1A1A1A;
    font-size:19px;
    font-weight:800;
    letter-spacing:0.2px;
    white-space:nowrap;
}
.header__phone.header__icon.phone a:hover { color:#FF1E48; }

/* Fix: Яндекс.Метрика tag_phone.js (Целевой звонок) оборачивает номер в <small>
   с убывающей opacity 0.93→0 — последние цифры невидимы. Возвращаем видимость. */
a[href^="tel:"] small,
.header__phone small,
.footer-contact__text small { opacity:1 !important; }
