/* ==========================================================================
   Variables
   ========================================================================== */

:root {
    --color-primary:    #0093d5;
    --color-primary-dk: #007db5;
    --color-text:       #171717;
    --color-text-muted: #4b5e67;
    --color-bg-footer:  #f5f5f5;
    --font-main: 'Montserrat', sans-serif;
}

/* ==========================================================================
   Container
   ========================================================================== */

.container {
    width: 100%;
    max-width: 1320px;
    margin-left: auto;
    margin-right: auto;
}

/* ==========================================================================
   Header
   ========================================================================== */

.site-header {
    position: sticky;
    top: 0;
    z-index: 1000;
    background: #f5f5f5;
    font-family: var(--font-main);
}

/* ── Верхняя строка ──────────────────────────────────────────────────────── */

.site-header__top {
    border-bottom: 1px solid #e8e8e8;
}

.site-header__top-inner {
    display: flex;
    align-items: center;
    gap: 24px;
    height: 90px;
}

/* Logo */

.site-header__logo {
    flex-shrink: 0;
    display: flex;
    align-items: center;
}

.site-header__logo-img {
    width: 160px;
    height: 53px;
    object-fit: contain;
    display: block;
}

.site-header__logo-text {
    font-size: 14px;
    font-weight: 700;
    color: var(--color-primary);
    line-height: 1.3;
    text-transform: uppercase;
    max-width: 130px;
}

/* Info: address + phone */

.site-header__info {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 32px;
}

.site-header__info-block {
    display: flex;
    align-items: center;
    gap: 10px;
}

.site-header__info-icon {
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    color: var(--color-text-muted);
}

.site-header__info-text {
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.site-header__info-label {
    font-size: 14px;
    font-weight: 600;
    color: var(--color-text);
    line-height: 1.3;
}

.site-header__info-sub {
    font-size: 12px;
    color: var(--color-text-muted);
    line-height: 1.3;
}

.site-header__phone {
    text-decoration: none;
    transition: color .2s;
}

.site-header__phone:hover {
    color: var(--color-primary);
}

/* Actions: CTA + social circles */

.site-header__actions {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

.site-header__cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 54px;
    padding: 0 26px;
    background: var(--color-primary);
    color: #fff;
    font-size: 14px;
    font-weight: 600;
    border-radius: 27px;
    white-space: nowrap;
    transition: background-color .2s;
    text-decoration: none;
}

.site-header__cta:hover {
    background: var(--color-primary-dk);
    color: #fff;
}

.site-header__social {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 51px;
    height: 51px;
    flex-shrink: 0;
}

.site-header__social img {
    width: 51px;
    height: 51px;
}

/* Burger */

.site-header__burger {
    display: none;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    width: 36px;
    height: 36px;
    background: none;
    border: none;
    padding: 4px;
    cursor: pointer;
    flex-shrink: 0;
}

.site-header__burger-line {
    display: block;
    width: 100%;
    height: 2px;
    background: var(--color-text);
    border-radius: 2px;
    transition: transform .3s, opacity .3s;
}

.site-header__burger[aria-expanded="true"] .site-header__burger-line:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
}

.site-header__burger[aria-expanded="true"] .site-header__burger-line:nth-child(2) {
    opacity: 0;
}

.site-header__burger[aria-expanded="true"] .site-header__burger-line:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
}

/* ── Нижняя строка (навигация) ───────────────────────────────────────────── */

.site-header__nav-bar {
    border-top: 1px solid #f0f0f0;
}

.site-header__nav-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 46px;
}

.site-header__nav {
    display: flex;
    align-items: center;
}

.site-header__nav-link {
    font-size: 14px;
    font-weight: 500;
    color: var(--color-text);
    padding: 6px 14px;
    white-space: nowrap;
    transition: color .2s;
    text-decoration: none;
}

.site-header__nav-link:hover {
    color: var(--color-primary);
}

/* «Услуги» — только раскрывает меню, без ссылки */
.site-header__nav-link[role="button"] {
    cursor: pointer;
}

.site-header__nav-link:first-child {
    padding-left: 0;
}

.site-header__lk {
    font-size: 14px;
    font-weight: 500;
    color: var(--color-text-muted);
    white-space: nowrap;
    transition: color .2s;
    text-decoration: none;
}

.site-header__lk:hover {
    color: var(--color-primary);
}

/* ── Выпадающие панели меню на десктопе (Tilda rec1712690391 / rec1712690491, 1400px) ── */

.site-header__nav-link.is-open { color: var(--color-primary); }

.nav-dd {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 5;
    border-bottom: 1px solid #ededed;
    background: #fff;
    opacity: 0;
    transition: opacity .2s ease;
}
.nav-dd.is-open { opacity: 1; }

.nav-dd__inner {
    display: flex;
    align-items: flex-start;
    padding: 29px 0 55px;
}
.nav-dd--services .nav-dd__inner { padding-bottom: 49px; }

.nav-dd__col { flex: 0 0 290px; display: flex; flex-direction: column; gap: 32px; }
.nav-dd--services .nav-dd__col { flex-basis: 288px; }
.nav-dd--services .nav-dd__col--second { flex: 1 1 auto; min-width: 0; }
.nav-dd--services .nav-dd__label { line-height: 16px; }

.nav-dd__group { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; }

.nav-dd__label {
    margin: 0 0 2px;
    font-family: 'Montserrat', Arial, sans-serif;
    font-size: 15px;
    font-weight: 500;
    line-height: 15px;
    letter-spacing: -0.2px;
    color: #bcbcbc;
}

.nav-dd__link {
    font-family: 'Montserrat', Arial, sans-serif;
    font-size: 15px;
    font-weight: 500;
    line-height: 15px;
    letter-spacing: -0.2px;
    color: #171717;
    text-decoration: none;
    transition: color .2s;
}
.nav-dd__link:hover,
.nav-dd__link:focus-visible { color: var(--color-primary); }

/* «О центре»: 4 карточки соцсетей 250×178 */
.nav-dd__socials { flex: 1 1 auto; display: flex; gap: 10px; }

.nav-dd__social {
    flex: 0 1 250px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    min-width: 0;
    padding: 30px;
    border-radius: 8px;
    background: #f9f9f9;
    font-family: 'Montserrat', Arial, sans-serif;
    font-size: 15px;
    line-height: 20px;
    text-decoration: none;
}
.nav-dd__social-icon { display: block; width: 50px; height: 50px; }
.nav-dd__social-name { margin-top: 20px; font-weight: 600; color: #0a0909; transition: color .2s; }
.nav-dd__social:hover .nav-dd__social-name { color: var(--color-primary); }
.nav-dd__social-count { display: flex; align-items: center; gap: 12px; margin-top: 8px; font-weight: 400; color: #757575; }
.nav-dd__social-count img { width: 15px; height: 15px; opacity: .5; }

/* «Услуги»: карточка «Остались вопросы?» с формой и фото */
.nav-dd__card {
    position: relative;
    flex: 0 0 642px;
    height: 428px;
    padding: 30px 0 0 30px;
    overflow: hidden;
    border-radius: 20px;
    background: #f9f9f9;
}
.nav-dd__card-body { position: relative; z-index: 1; width: 333px; }
.nav-dd__card-title {
    margin: 0;
    font-family: 'FuturaPT', Arial, sans-serif;
    font-size: 26px;
    font-weight: 500;
    line-height: 23px;
    color: #171717;
}
.nav-dd__card-title span { color: var(--color-primary); }
.nav-dd__card-text {
    width: 329px;
    margin: 12px 0 0;
    font-family: 'Montserrat', Arial, sans-serif;
    font-size: 15px;
    line-height: 22px;
    color: #3f3f3f;
}
.nav-dd__card-photo {
    position: absolute;
    right: 0;
    bottom: 0;
    width: 244px;
    height: 398px;
    border-radius: 8px;
    object-fit: cover;
    object-position: left center;
}

/* «Для дома» (Tilda rec1712690651): список видеокурсов слева + карточка «Магазин» +
   карточка «Остались вопросы?» — карточки одинаковой ширины */
.nav-dd--home .nav-dd__inner { gap: 24px; align-items: stretch; }
.nav-dd--home .nav-dd__col { gap: 20px; }
.nav-dd--home .nav-dd__group { gap: 20px; }
.nav-dd__card--shop,
.nav-dd__card--narrow { flex: 1 1 0; height: auto; min-height: 360px; }
.nav-dd__card--shop { padding: 30px 40px 0 30px; overflow: hidden; }
.nav-dd__card--narrow { padding: 30px; }
.nav-dd__card--shop .nav-dd__card-body,
.nav-dd__card--narrow .nav-dd__card-body { width: auto; max-width: 260px; }
.nav-dd__card--shop .nav-dd__card-text,
.nav-dd__card--narrow .nav-dd__card-text { width: auto; }
.nav-dd__card-photo--shop {
    position: absolute;
    right: -70px;
    bottom: 20px;
    width: 210px;
    height: 320px;
    border-radius: 12px;
    object-fit: cover;
}
.nav-dd__feature {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 24px;
    font-family: 'Montserrat', Arial, sans-serif;
    font-size: 14px;
    line-height: 1.3;
    color: #3f3f3f;
}
.nav-dd__card-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 240px;
    height: 64px;
    margin-top: 24px;
    padding: 0 15px;
    font-size: 15px;
}

.nav-dd__form { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; margin-top: 24px; }
.nav-dd__form .blog-offer__phone-wrap { align-self: stretch; background: #fff; }
.nav-dd__form .blog-offer__phone { font-size: 15px; }
.nav-dd__form .blog-offer__name { background: #fff; font-size: 15px; }
.nav-dd__form .blog-offer__consent { gap: 10px; font-size: 13px; line-height: 15.6px; color: #7a7a7a; }
.nav-dd__form .blog-offer__consent input { margin-top: 0; }
.nav-dd__form .blog-offer__submit { width: 240px; margin-top: 24px; padding: 0 15px; font-size: 15px; }
.nav-dd__form .blog-offer__submit:hover { background: #0080b9; }
.nav-dd__form .lead-form__message { margin: 0; }

@media (max-width: 1359px) {
    .nav-dd__inner { padding-left: 20px; padding-right: 20px; }
}

@media (max-width: 1199px) {
    .nav-dd--services .nav-dd__col { flex-basis: 250px; }
    .nav-dd__card { flex-basis: 393px; }
    .nav-dd__card-photo { display: none; }
}

@media (max-width: 1199px) {
    .nav-dd { display: none; }
}

/* Мобильные кнопки справа: запись / звонок / меню (Tilda rec1712699211) */

.site-header__mobile-actions {
    display: none;
    align-items: center;
    gap: 4px;
    margin-left: auto;
}

.site-header__round-btn {
    display: block;
    flex: 0 0 46px;
    width: 46px;
    height: 46px;
}

.site-header__round-btn svg,
.site-header__round-btn img {
    display: block;
    width: 100%;
    height: 100%;
}

.site-header__round-btn--wa {
    display: none;
}

/* ── Мобильное меню-шторка (Tilda rec1712690761) ──────────────────────────── */

.mobile-drawer {
    position: fixed;
    inset: 0;
    z-index: 100000;
    overflow: hidden;
    visibility: hidden;
    pointer-events: none;
    transition: visibility 0s linear .3s;
}

.mobile-drawer.is-open {
    visibility: visible;
    pointer-events: auto;
    transition-delay: 0s;
}

.mobile-drawer__panel {
    position: absolute;
    inset: 0;
    overflow-y: auto;
    padding: 30px 28px 40px;
    background: #fff;
    transform: translateX(100%);
    transition: transform .3s ease;
}

.mobile-drawer.is-open .mobile-drawer__panel.is-active {
    transform: translateX(0);
}

.mobile-drawer__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 50px;
}

.mobile-drawer__logo img {
    display: block;
    width: 162px;
    height: 54px;
}

.mobile-drawer__close,
.mobile-drawer__arrow {
    display: block;
    flex: 0 0 32px;
    width: 32px;
    height: 32px;
    padding: 0;
    border: 0;
    background: none;
    overflow: hidden;
    cursor: pointer;
}

.mobile-drawer__close { border-radius: 12px; }
.mobile-drawer__arrow { border-radius: 8px; }

.mobile-drawer__close svg,
.mobile-drawer__arrow svg {
    display: block;
    width: 100%;
    height: 100%;
}

.mobile-drawer__arrow--back {
    transform: rotate(180deg);
}

.mobile-drawer__nav {
    border-top: 1px solid #ebebeb;
}

.mobile-drawer__item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    width: 100%;
    min-height: 70px;
    padding: 0;
    border: 0;
    border-bottom: 1px solid #ebebeb;
    background: none;
    text-align: left;
    font-family: 'Montserrat', Arial, sans-serif;
    font-size: 16px;
    font-weight: 500;
    line-height: 25px;
    color: #14313f;
    text-decoration: none;
    cursor: pointer;
}

.mobile-drawer__item:hover {
    color: #0093d5;
}

.mobile-drawer__group-label {
    display: flex;
    align-items: center;
    min-height: 56px;
    margin: 0;
    padding: 0;
    border-bottom: 1px solid #ebebeb;
    font-family: 'Montserrat', Arial, sans-serif;
    font-size: 14px;
    font-weight: 500;
    color: #bcbcbc;
}

.mobile-drawer__back {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0 0 24px;
    padding: 0;
    border: 0;
    background: none;
    font-family: 'Montserrat', Arial, sans-serif;
    font-size: 16px;
    font-weight: 500;
    color: #0093d5;
    cursor: pointer;
}

.mobile-drawer__buttons {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 24px;
}

.mobile-drawer__btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    height: 64px;
    padding: 0 16px;
    border: 1px solid transparent;
    border-radius: 60px;
    font-family: 'Montserrat', Arial, sans-serif;
    font-size: 15px;
    font-weight: 500;
    color: #14313f;
    text-decoration: none;
    cursor: pointer;
}

.mobile-drawer__btn svg {
    flex: 0 0 16px;
    width: 16px;
    height: 16px;
}

.mobile-drawer__btn--outline {
    margin-bottom: 12px;
    border-color: #0093d5;
    background: transparent;
    color: #0093d5;
}

.mobile-drawer__btn--light {
    background: #f0f8fc;
}

.mobile-drawer__btn--phone {
    gap: 12px;
    font-weight: 700;
}

.mobile-drawer__dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #0093d5;
}

.mobile-drawer__btn--primary {
    background: #0093d5;
    color: #fff;
}

.mobile-drawer__pair {
    display: flex;
    gap: 8px;
}

.mobile-drawer__pair .mobile-drawer__btn {
    flex: 1 1 0;
    min-width: 0;
}

.mobile-drawer__pair--wrap {
    flex-wrap: wrap;
}

.mobile-drawer__pair--wrap .mobile-drawer__btn {
    flex: 0 0 calc(50% - 4px);
}

.mobile-drawer__label {
    margin: 36px 0 16px;
    font-family: 'Montserrat', Arial, sans-serif;
    font-size: 16px;
    font-weight: 400;
    color: #3f3f3f;
}

/* Окно записи на консультацию (из меню) */
.cm-modal__dialog--form {
    width: 560px;
    max-width: calc(100% - 40px);
    padding: 40px;
    border-radius: 8px;
}

/* Окна с формой стоят по центру экрана, как в Tilda (общее .cm-modal__dialog прижимало их к верху: margin 40px auto).
   auto-отступы во flex-контейнере центрируют по вертикали, а если окно выше экрана — оно просто начинается сверху и прокручивается */
.cm-modal:not([hidden]):has(.cm-modal__dialog--form) {
    display: flex;
    padding: 40px 0;
    box-sizing: border-box;
}

.cm-modal .cm-modal__dialog--form {
    margin: auto;
}

.cm-modal__form-title {
    margin: 0 0 12px;
    font-family: 'FuturaPT', Arial, sans-serif;
    font-size: 28px;
    font-weight: 500;
    line-height: 1.2;
    color: #14313f;
}

.cm-modal__form-title span {
    color: #0093d5;
}

.cm-modal__form-desc {
    margin: 0 0 24px;
    font-family: 'Montserrat', Arial, sans-serif;
    font-size: 15px;
    line-height: 1.5;
    color: #676767;
}

@media (max-width: 639px) {
    .cm-modal:not([hidden]):has(.cm-modal__dialog--form) { padding: 60px 0 20px; }
    .cm-modal__dialog--form { max-width: calc(100% - 20px); padding: 28px 20px; }
    .cm-modal__form-title { font-size: 24px; }
}

/* Запись на приём: удобные дата и время — поля только в окне записи (lead-form.php, аргумент booking) */
.lead-form__row {
    display: flex;
    flex-direction: column;
    gap: 8px;
    border: 0;
    margin: 0;
    padding: 0;
}

.lead-form__label {
    font-family: 'Montserrat', Arial, sans-serif;
    font-size: 14px;
    line-height: 20px;
    color: #676767;
    padding: 0;
}

/* Форма — колонка с отступом 14px, подпись к полю должна стоять ближе */
.lead-form--booking > .lead-form__label { margin-bottom: -6px; }

.lead-form__date {
    width: 100%;
    height: 64px;
    border-radius: 32px;
    border: none;
    background: #f7f7f7;
    padding: 0 20px;
    font-family: 'Montserrat', Arial, sans-serif;
    font-size: 16px;
    color: #000;
}

.lead-form__times { gap: 10px; }

.lead-form__times .lead-form__label { margin-bottom: 2px; }

.lead-form__time {
    display: flex;
    align-items: center;
    gap: 8px;
    font-family: 'Montserrat', Arial, sans-serif;
    font-size: 16px;
    color: #14313f;
    cursor: pointer;
}

.lead-form__time input { width: 20px; height: 20px; accent-color: #0093d5; cursor: pointer; }

@media (min-width: 480px) {
    .lead-form__times { flex-direction: row; flex-wrap: wrap; align-items: center; gap: 8px 24px; }
    .lead-form__times .lead-form__label { flex-basis: 100%; margin-bottom: 0; }
}

/* ── Responsive ──────────────────────────────────────────────────────────── */

/* Шапка и подвал вплотную к краям, пока контейнер 1320px шире окна — на Тильде при 1200 поля ~13px */
@media (max-width: 1359px) {
    .site-header .container {
        padding-left: 13px;
        padding-right: 13px;
    }
}

@media (max-width: 1199px) {
    /* Как в Тильде на планшете и телефоне: шапка 92px, лого 162×54, справа круглые кнопки, без строки меню */
    .site-header__top .container {
        padding-left: 20px;
        padding-right: 20px;
    }

    .site-header__top-inner {
        height: 92px;
        align-items: flex-start;
        padding-top: 11px;
    }

    .site-header__info,
    .site-header__actions {
        display: none;
    }

    .site-header__mobile-actions {
        display: flex;
        margin-top: 10px;
    }

    .site-header__burger {
        display: flex;
        align-items: center;
        gap: 3px;
        width: 46px;
        height: 46px;
        padding: 0;
        border-radius: 50%;
        background: #0093d5;
    }

    .site-header__burger-line {
        width: 17px;
        height: 2px;
        border-radius: 1px;
        background: #fff;
    }

    .site-header__burger[aria-expanded="true"] .site-header__burger-line:nth-child(1) {
        transform: translateY(5px) rotate(45deg);
    }

    .site-header__burger[aria-expanded="true"] .site-header__burger-line:nth-child(3) {
        transform: translateY(-5px) rotate(-45deg);
    }

    .site-header__nav-bar {
        display: none;
    }

    .site-header__logo-img {
        width: 162px;
        height: 54px;
    }
}

@media (min-width: 1200px) {
    .mobile-drawer {
        display: none;
    }
}

/* Планшет 640–1199 (Tilda rec1712699211, сетка 640): ряд 615px по центру —
   лого, «Записаться» 202×54, круглые кнопки 54px; календарь заменяет кнопка «Записаться» */
@media (min-width: 640px) and (max-width: 1199px) {
    .site-header__top .container {
        max-width: 655px;
    }

    .site-header__top-inner {
        gap: 0;
    }

    .site-header__actions {
        display: flex;
        margin: 7px 0 0 auto;
    }

    .site-header__actions .site-header__social {
        display: none;
    }

    .site-header__cta {
        width: 202px;
        height: 54px;
        padding: 0 15px;
        border-radius: 30px;
        font-size: 13px;
        font-weight: 500;
    }

    .site-header__mobile-actions {
        margin-top: 7px;
        margin-left: 4px;
    }

    .site-header__mobile-actions .site-header__round-btn:first-child {
        display: none;
    }

    .site-header__round-btn--wa {
        display: block;
    }

    .site-header__round-btn,
    .site-header__burger {
        flex-basis: 54px;
        width: 54px;
        height: 54px;
    }
}

/* ==========================================================================
   Footer
   ========================================================================== */

.site-footer {
    /* Как в Тильде: белая карточка на сером фоне страницы, скруглена сверху */
    margin: 0 14px;
    border-radius: 20px 20px 0 0;
    background: #fff;
    color: var(--color-text);
    font-family: var(--font-main);
}

/* ── Соцсети + СМИ (над белым футером, на фоне страницы) ─────────────────── */

.site-footer__proof {
    padding: 48px 0 32px;
}

.site-footer__proof-row {
    display: flex;
    gap: 32px;
}

.site-footer__proof-col {
    flex: 1 1 0;
    min-width: 0;
}

.site-footer__proof-label {
    font-family: 'Montserrat', Arial, sans-serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 19px;
    color: #a8a8a8;
    margin: 0 0 30px;
}

.site-footer__proof-items {
    display: flex;
    gap: 12px;
    flex-wrap: nowrap;
}

.site-footer__proof-item {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 0;
    flex: 1 1 0;
    max-width: 154px;
    min-height: 172px;
    padding: 20px;
    background: #fff;
    border-radius: 12px;
    text-align: center;
    text-decoration: none;
    color: var(--color-text);
}

.site-footer__proof-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 50px;
    height: 50px;
    flex-shrink: 0;
}
.site-footer__proof-icon img { width: 100%; height: 100%; }

.site-footer__proof-text {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    margin-top: 32px;
    font-family: 'Montserrat', Arial, sans-serif;
    font-size: 16px;
    line-height: 21px;
}
.site-footer__proof-text strong { font-size: 16px; font-weight: 600; color: #0a0909; }
.site-footer__proof-count {
    display: flex;
    align-items: center;
    gap: 12px;
    font-weight: 400;
    color: #757575;
}
.site-footer__proof-count img { width: 15px; height: 15px; flex-shrink: 0; }

.site-footer__media-logos {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.site-footer__media-logo {
    flex: 0 0 calc((100% - 36px) / 4);
    display: flex;
    align-items: center;
    justify-content: center;
    height: 81px;
    background: #fff;
    border-radius: 12px;
    padding: 8px 14px;
}

.site-footer__media-logo img {
    max-width: 100%;
    max-height: 24px;
    width: auto;
    object-fit: contain;
    opacity: .7;
}

/* ── Белая карточка: лого / описание / телефон / запись ──────────────────── */

.site-footer__brand {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 24px;
    padding: 36px 0;
    border-bottom: 1px solid #eee;
}

.site-footer__logo {
    display: inline-flex;
    flex: 1 1 0;
    text-decoration: none;
}

.site-footer__logo-img {
    width: 160px;
    height: 53px;
    object-fit: contain;
    display: block;
}

.site-footer__logo-text {
    font-size: 18px;
    font-weight: 700;
    color: var(--color-text);
    line-height: 1.2;
}

.site-footer__tagline {
    font-size: 14px;
    font-weight: 400;
    color: rgb(157, 157, 157);
    line-height: 1.5;
    flex: 1 1 0;
    margin: 0;
}

.site-footer__phone-block {
    display: flex;
    flex-direction: column;
    flex: 1 1 0;
    gap: 4px;
}

.site-footer__phone-label {
    font-size: 14px;
    font-weight: 400;
    color: var(--color-text-muted);
}

.site-footer__phone {
    font-family: 'FuturaPT', Arial, sans-serif;
    font-size: 24px;
    font-weight: 600;
    color: var(--color-text);
    text-decoration: none;
    transition: color .2s;
}
.site-footer__phone:hover { color: var(--color-primary); }

.site-footer__brand-actions {
    display: flex;
    align-items: center;
    flex: 1 1 0;
    gap: 10px;
    justify-content: flex-end;
}

.site-footer__cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 1;
    height: 54px;
    padding: 0 26px;
    background: var(--color-primary);
    color: #fff;
    font-size: 16px;
    font-weight: 600;
    border-radius: 27px;
    white-space: nowrap;
    text-decoration: none;
    transition: background-color .2s;
}
.site-footer__cta:hover { background: var(--color-primary-dk); color: #fff; }

.site-footer__social-round {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 51px;
    height: 51px;
    flex-shrink: 0;
}
.site-footer__social-round img { width: 51px; height: 51px; }

/* ── Навигация: 4 колонки ──────────────────────────────────────────────── */

.site-footer__cols {
    display: flex;
    flex-wrap: wrap;
    gap: 24px 32px;
    padding: 36px 0;
    border-bottom: 1px solid #eee;
}

.site-footer__col {
    flex: 1 1 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

/* На десктопе обёртка ссылок и кнопка заголовка не влияют на вёрстку — аккордеон только на телефоне */
.site-footer__col-links { display: contents; }
.site-footer__col-toggle {
    padding: 0;
    border: 0;
    background: none;
    font: inherit;
    color: inherit;
    text-align: inherit;
    cursor: default;
    pointer-events: none;
}

.site-footer__col-title {
    display: table-cell;
    font-family: Montserrat, Arial, sans-serif;
    font-size: 16px;
    font-weight: 400;
    color: rgb(157, 157, 157);
    margin: 0 0 4px;
}

.site-footer__col a {
    font-size: 16px;
    color: var(--color-text-muted);
    text-decoration: underline;
    text-decoration-color: rgba(75,94,103,.3);
    text-underline-offset: 3px;
    transition: color .2s;
    width: fit-content;
}
.site-footer__col a:hover { color: var(--color-primary); }

/* ── Соцсети / адрес / маршрут / такси ────────────────────────────────── */

.site-footer__contact-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 24px 32px;
    padding: 28px 0;
}

.site-footer__contact-row > * { flex: 0 0 calc((100% - 96px) / 4); min-width: 0; }

.site-footer__socials-label,
.site-footer__address-icon { display: none; }

.site-footer__socials {
    display: flex;
    gap: 8px;
    align-items: center;
}

.site-footer__address-block {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.site-footer__address-name {
    font-size: 16px;
    font-weight: 600;
    color: var(--color-text);
    margin-bottom: 6px;
}

.site-footer__address-link {
    font-size: 16px;
    color: var(--color-text-muted);
    text-decoration: none;
}
.site-footer__address-link:hover { text-decoration: underline; }

.site-footer__address-how {
    font-size: 16px;
    color: var(--color-primary);
    text-decoration: none;
}
.site-footer__address-how:hover { text-decoration: underline; }

.site-footer__btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    height: 58px;
    padding: 0 20px;
    border-radius: 29px;
    font-size: 16px;
    font-weight: 600;
    text-decoration: none;
    white-space: nowrap;
}
.site-footer__btn--route,
.site-footer__btn--taxi {
    background: #eff3f5;
    color: #171717;
}

/* ── Нижняя полоса ───────────────────────────────────────────────────────── */

.site-footer__bottom {
    padding: 18px 0;
    border-top: 1px solid #ededed;
}

.site-footer__bottom-inner {
    display: flex;
    flex-wrap: wrap;
    gap: 24px 32px;
    align-items: stretch;
}

.site-footer__bottom-col {
    flex: 1 1 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.site-footer__bottom-col:not(:has(.site-footer__bottom-label)) {
    justify-content: flex-end;
}

.site-footer__bottom-label {
    display: table-cell;
    font-family: Montserrat, Arial, sans-serif;
    font-size: 13px;
    font-weight: 400;
    color: rgb(157, 157, 157);
}

.site-footer__bottom-text {
    display: table-cell;
    font-family: Montserrat, Arial, sans-serif;
    font-size: 13px;
    font-weight: 400;
    color: rgb(157, 157, 157);
    line-height: 1.5;
}

.site-footer__copy {
    display: table-cell;
    font-family: Montserrat, Arial, sans-serif;
    font-size: 13px;
    font-weight: 400;
    color: rgb(157, 157, 157);
}

.site-footer__legal-link {
    display: table-cell;
    font-family: Montserrat, Arial, sans-serif;
    font-size: 13px;
    font-weight: 400;
    color: rgb(157, 157, 157);
    transition: color .2s;
    text-decoration: none;
}
.site-footer__legal-link:hover { color: var(--color-primary); }

/* Только для телефона (как в мобильной Тильде): ссылка на рассылку, индекс в лицензии, перенос в реквизитах */
.site-footer__subscribe,
.site-footer__only-mobile { display: none; }

.site-footer__copyright-note {
    font-size: 11px;
    color: #b0b0b0;
    margin: 4px 0 0;
}

/* ── Responsive footer ───────────────────────────────────────────────────── */

/* Контейнер 1320px шире окна — без полей текст прилипает к краям белой карточки */
@media (min-width: 640px) and (max-width: 1359px) {
    .site-footer .container,
    .site-footer__proof > .container {
        padding-left: 20px;
        padding-right: 20px;
    }
}

/* Планшет 640–1199 — по Tilda rec810711150 / rec841898502 на 1000px:
   соцсети 2×2 (305×90) и СМИ 4×2 (148×90) в колонке 620px; белая карточка — колонка 600px:
   лого + соцсети / телефон + запись / адрес + такси и маршрут / меню в две колонки / реквизиты */
@media (min-width: 640px) and (max-width: 1199px) {
    .site-footer__proof { padding: 30px 0 60px; }
    .site-footer__proof > .container { max-width: 660px; }
    .site-footer__proof-row { gap: 28px; }
    .site-footer__proof-label { margin-bottom: 10px; }
    .site-footer__proof-items { flex-wrap: wrap; gap: 10px 9px; }
    .site-footer__proof-item {
        flex: 0 0 calc((100% - 9px) / 2);
        flex-direction: row;
        align-items: center;
        justify-content: flex-start;
        gap: 16px;
        max-width: none;
        min-height: 90px;
        padding: 0 20px;
    }
    .site-footer__proof-icon { width: 54px; height: 54px; }
    .site-footer__proof-text { gap: 8px; margin-top: 0; }
    .site-footer__media-logos { gap: 10px; }
    .site-footer__media-logo { flex: 0 0 calc((100% - 30px) / 4); height: 90px; }

    /* Белая карточка: сетка 310 + 290 по центру, обёртки строк «растворяются» в ней */
    .site-footer {
        display: grid;
        grid-template-columns: 1fr 310px 290px 1fr;
        margin: 0 10px;
        padding-top: 40px;
    }
    .site-footer > .site-footer__brand-wrap,
    .site-footer__brand,
    .site-footer > .site-footer__contact-wrap,
    .site-footer__contact-row { display: contents; }
    .site-footer > .site-footer__cols-wrap,
    .site-footer > .site-footer__bottom { grid-column: 1 / -1; width: 100%; }
    .site-footer .container { max-width: 640px; }

    .site-footer__tagline,
    .site-footer__socials-label { display: none; }

    .site-footer__brand > *,
    .site-footer__contact-row > * { flex: none; min-width: 0; }

    /* 1 — лого и соцсети */
    .site-footer__logo,
    .site-footer__socials {
        grid-row: 1;
        padding-bottom: 30px;
        border-bottom: 1px solid #ededed;
    }
    .site-footer__logo { grid-column: 2; }
    .site-footer__logo-img { width: 213px; height: 72px; object-position: left center; }
    .site-footer__socials { grid-column: 3; align-self: end; gap: 4px; padding-top: 18px; }

    /* 2 — телефон и запись */
    .site-footer__phone-block,
    .site-footer__brand-actions {
        grid-row: 2;
        padding: 30px 0;
        border-bottom: 1px solid #ededed;
    }
    .site-footer__phone-block { grid-column: 2; gap: 8px; }
    .site-footer__phone-label { font-size: 14px; line-height: 18px; color: #9d9d9d; }
    .site-footer__phone { font-size: 24px; line-height: 24px; }
    .site-footer__brand-actions {
        grid-column: 3;
        justify-content: flex-start;
        align-items: flex-start;
        gap: 4px;
        width: auto;
        margin: 0;
    }
    .site-footer__cta { flex: 0 0 169px; height: 54px; padding: 0 15px; font-size: 14px; }
    .site-footer__social-round,
    .site-footer__social-round img { width: 54px; height: 54px; }

    /* 3 — адрес слева, такси и маршрут справа друг под другом */
    .site-footer__address-block {
        grid-column: 2;
        grid-row: 3 / span 2;
        gap: 8px;
        padding: 32px 0 38px;
    }
    .site-footer__address-icon { display: block; width: 30px; height: 30px; margin-bottom: 16px; }
    .site-footer__address-icon img { display: block; width: 30px; height: 30px; }
    .site-footer__address-name { margin: 0; font-size: 14px; line-height: 14px; }
    .site-footer__address-link,
    .site-footer__address-how { font-size: 14px; line-height: 14px; }
    .site-footer__address-link { color: #000; }
    .site-footer__address-how { font-weight: 500; }
    .site-footer__btn {
        grid-column: 3;
        justify-self: start;
        height: 48px;
        gap: 16px;
        padding: 0 20px;
        border-radius: 24px;
        font-size: 14px;
    }
    .site-footer__btn img { width: 22px; height: 22px; }
    .site-footer__btn--taxi { grid-row: 3; margin-top: 32px; }
    .site-footer__btn--route { grid-row: 4; align-self: start; margin-top: 12px; }
    .site-footer__btn--route { margin-bottom: 38px; }

    /* 4 — меню: «Центр» и «Онлайн продукты» слева, «Услуги» одним списком справа */
    .site-footer__cols {
        display: grid;
        grid-template-columns: 310px 1fr;
        gap: 16px 0;
        padding: 36px 0 40px;
        border-top: 1px solid #ededed;
        border-bottom: 0;
    }
    .site-footer__col { flex: none; gap: 16px; }
    .site-footer__col[data-footer-acc="center"] { grid-column: 1; grid-row: 1; }
    .site-footer__col[data-footer-acc="services"]:not(.site-footer__col--cont) { grid-column: 2; grid-row: 1; }
    .site-footer__col.site-footer__col--cont { grid-column: 2; grid-row: 2; }
    .site-footer__col[data-footer-acc="online"] { grid-column: 1; grid-row: 2; margin-top: 24px; }
    .site-footer__col--cont .site-footer__col-title { display: none; }
    .site-footer__col-title { margin: 0 0 7px; font-size: 15px; line-height: 23px; }
    .site-footer__col a { font-size: 15px; line-height: 23px; color: #171717; }

    /* 5 — реквизиты в две колонки */
    .site-footer__bottom { padding: 24px 0 20px; border-top: 0; }
    .site-footer__bottom-inner { gap: 20px 10px; }
    .site-footer__bottom-col { flex: 0 0 calc(50% - 5px); }
    .site-footer__bottom-label { font-size: 12px; }
    .site-footer__bottom-text { font-size: 12px; line-height: 20px; }
}

@media (max-width: 1199px) {
    .site-footer__proof-row {
        flex-direction: column;
        gap: 32px;
    }
    .site-footer__col,
    .site-footer__contact-row > *,
    .site-footer__bottom-col {
        flex: 0 0 calc(50% - 16px);
    }
    .site-footer__brand-actions {
        margin-left: 0;
        width: 100%;
    }
}

@media (max-width: 575px) {
    .site-footer__col,
    .site-footer__contact-row > *,
    .site-footer__bottom-col {
        flex-basis: 100%;
    }
    .site-footer__media-logo {
        flex-basis: calc((100% - 12px) / 2);
    }
}

/* Телефон — соцсети и СМИ по мобильной версии Tilda (rec810711150, 360px):
   колонка 320px по центру, карточки 155×155 и 155×90 */
@media (max-width: 639px) {
    .site-footer__proof { padding: 30px 0 75px; }
    .site-footer__proof > .container {
        width: min(320px, calc(100% - 40px));
        max-width: none;
        margin: 0 auto;
        padding: 0;
    }
    .site-footer__proof-row { gap: 30px; }
    .site-footer__proof-label { margin-bottom: 12px; font-size: 15px; line-height: 18px; }
    .site-footer__proof-items { flex-wrap: wrap; gap: 10px; }
    .site-footer__proof-item {
        flex: 0 0 calc((100% - 10px) / 2);
        max-width: none;
        min-height: 155px;
        justify-content: flex-start;
        align-items: center;
        padding: 16px 0 0;
    }
    .site-footer__proof-icon { width: 54px; height: 54px; }
    .site-footer__proof-text { align-items: center; gap: 5px; margin-top: 22px; }
    .site-footer__proof-count { gap: 8px; font-size: 14px; line-height: 18px; }
    .site-footer__proof-count img { opacity: .5; }

    .site-footer__media-logos { gap: 10px; }
    .site-footer__media-logo { flex: 0 0 calc((100% - 10px) / 2); height: 90px; padding: 0; }
    .site-footer__media-logo:nth-child(5) { order: 3; }
    .site-footer__media-logo:nth-child(6) { order: 4; }
    .site-footer__media-logo:nth-child(3) { order: 5; }
    .site-footer__media-logo:nth-child(4) { order: 6; }
    .site-footer__media-logo:nth-child(7) { order: 7; }
    .site-footer__media-logo:nth-child(8) { order: 8; }
    .site-footer__media-logo img { max-width: none; max-height: none; opacity: 1; }
    .site-footer__media-logo:nth-child(1) img { width: 72px; height: 20px; }
    .site-footer__media-logo:nth-child(2) img { width: 80px; height: 16px; }
    .site-footer__media-logo:nth-child(3) img { width: 78px; height: 31px; }
    .site-footer__media-logo:nth-child(4) img { width: 53px; height: 24px; }
    .site-footer__media-logo:nth-child(5) img { width: 87px; height: 22px; }
    .site-footer__media-logo:nth-child(6) img { width: 74px; height: 11px; }
    .site-footer__media-logo:nth-child(7) img { width: 71px; height: 19px; }
    .site-footer__media-logo:nth-child(8) img { width: 33px; height: 36px; }
}

/* Телефон — карточка контактов и меню-аккордеон по мобильной версии Tilda
   (rec791764761 — белая карточка 346px, rec791764762 — аккордеон t585, 360px) */
@media (max-width: 639px) {
    .site-footer {
        display: flex;
        flex-direction: column;
        margin: 0;
        border-radius: 0;
        background: transparent;
    }
    .site-footer > .site-footer__brand-wrap,
    .site-footer > .site-footer__contact-wrap {
        width: min(346px, calc(100% - 14px));
        max-width: none;
        margin: 0 auto;
        background: #fff;
    }
    .site-footer > .site-footer__brand-wrap { order: 1; padding: 39px 13px 0; border-radius: 20px 20px 0 0; }
    .site-footer > .site-footer__contact-wrap { order: 2; padding: 30px 13px 39px; border-radius: 0 0 20px 20px; }
    .site-footer > .site-footer__cols-wrap {
        order: 3;
        width: min(320px, calc(100% - 40px));
        max-width: none;
        margin: 0 auto;
        padding: 45px 0 29px;
    }
    .site-footer > .site-footer__bottom { order: 4; }

    /* Лого, описание, телефон + мессенджеры, «Записаться» */
    .site-footer__brand { justify-content: flex-start; gap: 0; padding: 0; border-bottom: 0; }
    .site-footer__logo { flex: 0 0 100%; order: 1; }
    .site-footer__logo-img { width: 184px; height: 62px; object-position: left center; }
    .site-footer__tagline {
        flex: 0 0 100%;
        order: 2;
        margin-top: 19px;
        padding-bottom: 24px;
        border-bottom: 1px solid #ededed;
        font-size: 14px;
        line-height: 20px;
        color: #9d9d9d;
    }
    .site-footer__phone-block { order: 3; flex: 1 1 160px; min-width: 0; align-self: flex-start; gap: 5px; margin-top: 24px; }
    .site-footer__phone-label { font-size: 14px; line-height: 18px; color: #9d9d9d; }
    .site-footer__phone { font-size: 20px; line-height: 20px; letter-spacing: -0.2px; color: #171717; }
    .site-footer__brand-actions { display: contents; }
    .site-footer__brand .site-footer__social-round { order: 5; align-self: flex-start; margin: 25px 0 0 12px; }
    .site-footer__brand .site-footer__social-round[aria-label="Telegram"] { order: 4; margin-left: 0; }
    .site-footer__social-round,
    .site-footer__social-round img { width: 40px; height: 40px; }
    .site-footer__cta {
        order: 6;
        flex: 0 0 100%;
        height: 62px;
        margin-top: 22px;
        border-radius: 30px;
        font-size: 15px;
        font-weight: 500;
        letter-spacing: -0.3px;
    }

    /* Соцсети, адрес, маршрут, такси */
    .site-footer__contact-row { flex-direction: column; flex-wrap: nowrap; align-items: flex-start; gap: 0; padding: 0; }
    .site-footer__contact-row > * { flex: none; }
    .site-footer__socials-label { display: block; margin: 0 0 12px; font-size: 14px; line-height: 22px; color: #9d9d9d; }
    .site-footer__socials { align-self: stretch; gap: 12px; padding-bottom: 24px; border-bottom: 1px solid #ededed; }
    .site-footer__address-block { position: relative; min-height: 40px; margin-top: 34px; padding-left: 52px; gap: 0; }
    .site-footer__address-icon { display: block; position: absolute; top: 0; left: 0; width: 40px; height: 40px; }
    .site-footer__address-icon img { display: block; width: 40px; height: 40px; }
    .site-footer__address-name { margin: 0 0 10px; font-size: 15px; line-height: 15px; letter-spacing: -0.2px; color: #171717; }
    .site-footer__address-link { margin-bottom: 10px; font-size: 15px; line-height: 15px; letter-spacing: -0.3px; color: #000; }
    .site-footer__address-how { font-size: 15px; line-height: 15px; font-weight: 500; letter-spacing: -0.5px; }
    .site-footer__btn { height: 52px; gap: 16px; padding: 0 20px; border-radius: 50px; font-size: 14px; letter-spacing: -0.2px; }
    .site-footer__btn img { width: 22px; height: 22px; }
    .site-footer__btn--route { margin-top: 32px; }
    .site-footer__btn--taxi { margin-top: 8px; }

    /* Меню — аккордеон; «Услуги» = две колонки, открываются вместе */
    .site-footer__cols { flex-direction: column; flex-wrap: nowrap; gap: 0; padding: 0 0 17px; border-bottom: 1px solid #ededed; }
    .site-footer__col { flex: none; gap: 0; border-top: 1px solid #eee; }
    .site-footer__col--cont { border-top: 0; }
    .site-footer__col--cont .site-footer__col-title { display: none; }
    .site-footer__col-title { display: block; margin: 0; }
    .site-footer__col-toggle {
        position: relative;
        display: block;
        width: 100%;
        padding: 28px 50px 28px 0;
        text-align: left;
        font-family: 'Montserrat', Arial, sans-serif;
        font-size: 15px;
        font-weight: 500;
        line-height: 20px;
        color: #000;
        cursor: pointer;
        pointer-events: auto;
    }
    .site-footer__col-toggle::before,
    .site-footer__col-toggle::after {
        content: '';
        position: absolute;
        top: 50%;
        right: 9px;
        width: 22px;
        height: 1px;
        background: #222;
        transition: transform .3s ease-in-out;
    }
    .site-footer__col-toggle::after { transform: rotate(90deg); }
    .site-footer__col.is-open .site-footer__col-toggle::before { transform: rotate(45deg); }
    .site-footer__col.is-open .site-footer__col-toggle::after { transform: rotate(135deg); }
    .site-footer__col-links { display: none; flex-direction: column; align-items: flex-start; gap: 19px; padding: 18px 0 35px; }
    .site-footer__col.is-open .site-footer__col-links { display: flex; }
    .site-footer__col[data-footer-acc="services"]:not(.site-footer__col--cont) .site-footer__col-links { padding-bottom: 0; }
    .site-footer__col--cont .site-footer__col-links { padding-top: 19px; }
    .site-footer__col a {
        font-size: 15px;
        line-height: 20px;
        color: #0093d5;
        text-decoration: none;
        border-bottom: 1px solid #0093d5;
    }

    /* Нижняя полоса (Tilda rec791764764): рассылка, лицензия, реквизиты, политика, копирайт */
    .site-footer__bottom { padding: 10px 0 21px; border-top: 0; }
    .site-footer__bottom > .container {
        width: min(320px, calc(100% - 40px));
        max-width: none;
        margin: 0 auto;
        padding: 0;
    }
    .site-footer__bottom-inner { flex-direction: column; flex-wrap: nowrap; gap: 16px; }
    .site-footer__bottom-col { flex: none; gap: 4px; }
    .site-footer__bottom-col--note { display: none; }
    .site-footer__subscribe {
        display: block;
        width: fit-content;
        margin-bottom: 4px;
        font-family: Montserrat, Arial, sans-serif;
        font-size: 13px;
        line-height: 20px;
        color: #9d9d9d;
        text-decoration: none;
    }
    .site-footer__only-mobile { display: inline; }
    .site-footer__bottom-label { display: block; font-weight: 500; line-height: 20px; color: #3a3a3a; }
    .site-footer__bottom-text { display: block; line-height: 20px; }
    .site-footer__bottom-col--license .site-footer__bottom-text { letter-spacing: -0.15px; }
    .site-footer__bottom-col:last-child { gap: 16px; }
    .site-footer__legal-link { display: block; width: fit-content; line-height: 20px; }
    .site-footer__copy { display: block; line-height: 12px; }
}

/* ── Кнопка «Наверх» (Tilda t890, rec1713184671) ─────────────────────────── */

.to-top {
    position: fixed;
    right: 20px;
    bottom: 90px;
    z-index: 9990;
    width: 50px;
    height: 50px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: none;
    cursor: pointer;
    opacity: 0;
    visibility: hidden;
    transition: opacity .3s ease, visibility .3s ease;
}
.to-top.is-visible { opacity: 1; visibility: visible; }
.to-top svg { display: block; }
.to-top rect { transition: fill .2s ease, fill-opacity .2s ease; }
@media (hover: hover) {
    .to-top:hover rect { fill: #0093d5; fill-opacity: 1; }
}

/* ── Согласие на cookies (Tilda rec1056073596) ───────────────────────────── */

.cookie-notice {
    position: fixed;
    right: 30px;
    bottom: 30px;
    z-index: 100001;
    width: 600px;
    max-width: calc(100% - 60px);
    opacity: 1;
    transform: translateY(0);
    transition: opacity .3s ease, transform .3s ease;
}

.cookie-notice.is-hiding {
    opacity: 0;
    transform: translateY(20px);
}

.cookie-notice__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 15px 25px;
    border-radius: 8px;
    background: #3aa5d6;
}

.cookie-notice__text {
    margin: 0;
    font-family: 'FuturaPT', Arial, sans-serif;
    font-size: 18px;
    font-weight: 300;
    line-height: 1.55;
    color: #fff;
}

.cookie-notice__link,
.cookie-notice__link:hover {
    color: #fff;
    text-decoration: none;
    border-bottom: 1px solid #e5f0f5;
}

.cookie-notice__btn {
    flex: 0 0 auto;
    min-width: 88px;
    height: 30px;
    padding: 0 20px;
    border: 1px solid #fff;
    border-radius: 5px;
    background: transparent;
    color: #fff;
    font-family: 'FuturaPT', Arial, sans-serif;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.4;
    cursor: pointer;
    transition: background-color .2s ease-in-out, color .2s ease-in-out;
}

.cookie-notice__btn:hover,
.cookie-notice__btn:focus-visible {
    background: #fff;
    color: #3aa5d6;
}

/* Телефон — как в Tilda: плашка прижата к низу и краям экрана, без скругления */
@media (max-width: 639px) {
    .cookie-notice {
        right: 0;
        bottom: 0;
        left: 0;
        width: auto;
        max-width: none;
    }
    .cookie-notice__inner {
        border-radius: 0;
    }
    .cookie-notice__text {
        line-height: 1.45;
    }
}

/* ── Всплывающие окна (общие) + политика конфиденциальности (Tilda rec581141486) ── */

body.cm-modal-open {
    overflow: hidden;
}

.cm-modal {
    position: fixed;
    inset: 0;
    z-index: 100002;
    overflow-y: auto;
    background: rgba(0, 0, 0, .6);
    opacity: 0;
    transition: opacity .3s ease;
}

.cm-modal.is-open {
    opacity: 1;
}

.cm-modal__close {
    position: fixed;
    top: 20px;
    right: 20px;
    z-index: 1;
    width: 23px;
    height: 23px;
    padding: 0;
    border: 0;
    background: none;
    cursor: pointer;
}

.cm-modal__close svg {
    display: block;
    width: 100%;
    height: 100%;
}

.cm-modal__dialog {
    position: relative;
    margin: 40px auto;
    background: #fff;
}

.cm-modal__dialog--policy {
    width: 684px;
    max-width: calc(100% - 40px);
    padding: 36px 40px 50px;
    background: #fbfbf9;
}

.cm-modal__title {
    margin: 0 0 15px;
    font-family: 'FuturaPT', Arial, sans-serif;
    font-size: 34px;
    font-weight: 500;
    line-height: 1.17;
    color: #000;
}

.cm-modal__content {
    font-family: 'Montserrat', Arial, sans-serif;
    font-size: 16px;
    line-height: 1.55;
    color: #616161;
}

.cm-modal__content p {
    margin: 0 0 12px;
}

.cm-modal__content h3 {
    margin: 24px 0 8px;
    font-family: 'Montserrat', Arial, sans-serif;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.55;
    color: #171717;
}

.cm-modal__content a {
    color: #0093d5;
}

@media (max-width: 639px) {
    .cm-modal__dialog { margin: 60px auto 20px; }
    .cm-modal__dialog--policy { max-width: calc(100% - 20px); padding: 24px 20px 32px; }
    .cm-modal__title { font-size: 26px; }
    .cm-modal__content { font-size: 15px; }
}

/* ── Формы заявок (общие) ────────────────────────────────────────────────── */

.lead-form__hp {
    position: absolute !important;
    left: -9999px !important;
    width: 1px;
    height: 1px;
    opacity: 0;
}

.lead-form__message {
    margin: 12px 0 0;
    font-family: 'Montserrat', Arial, sans-serif;
    font-size: 14px;
    line-height: 1.4;
    color: #0a7a3d;
}

.lead-form__message.is-error {
    color: #d0342c;
}

[data-lead-form] [type="submit"]:disabled {
    opacity: .6;
    cursor: wait;
}

/* ── Всплывающее предложение (Tilda rec3491328801) ───────────────────────── */

.cm-modal--offer {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    padding: 20px 100px 20px 40px;
    background: rgba(0, 0, 0, .7);
}

.cm-modal--offer[hidden] {
    display: none;
}

.offer-popup {
    position: relative;
    width: 637px;
    max-width: 100%;
    height: 540px;
    margin: 0;
    background: none;
    zoom: var(--offer-zoom, 1); /* масштаб под ширину экрана, как у Тильды — считает main.js */
}

.offer-popup__visual {
    position: absolute;
    top: 0;
    right: 0;
    width: 500px;
    height: 540px;
    border-radius: 16px;
    background-color: #dfe6ef;
    background-position: 64.8% 0;
    background-size: cover;
}

.offer-popup__photo {
    position: absolute;
    top: 0;
    right: 0;
    width: 269px;
    max-width: none;
    height: 100%;
    border-radius: 20px;
    object-fit: cover;
    object-position: left center;
    pointer-events: none;
}

.offer-popup__close {
    position: absolute;
    top: 0;
    right: -60px;
    width: 40px;
    height: 40px;
    padding: 0;
    border: 0;
    background: none;
    cursor: pointer;
}

.offer-popup__close svg {
    display: block;
    width: 100%;
    height: 100%;
}

.offer-popup__card {
    position: absolute;
    top: 19px;
    left: 0;
    z-index: 2;
    width: 410px;
    min-height: 504px;
    padding: 32px;
    border-radius: 16px;
    background: #fff;
}

.offer-popup__author {
    margin: 0 0 12px;
    font-family: 'Montserrat', Arial, sans-serif;
    font-size: 12px;
    font-weight: 500;
    line-height: 1.45;
    color: #70828b;
}

.offer-popup__author strong {
    font-weight: 600;
    color: #14313f;
}

.offer-popup__title {
    max-width: 310px;
    font-family: 'FuturaPT', Arial, sans-serif;
    font-size: 28px;
    font-weight: 500;
    line-height: .95;
    color: #14313f;
}

.offer-popup__title span {
    font-weight: 600;
    color: #0093d5;
}

.offer-popup__title s {
    font-weight: 400;
    color: rgba(20, 49, 63, .3);
}

.offer-popup__text {
    margin: 12px 0 20px;
    font-family: 'Montserrat', Arial, sans-serif;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.45;
    color: #4b5e67;
}

.offer-popup__note {
    max-width: 314px;
    margin: 20px 0 0;
}

.offer-popup__note strong {
    font-weight: 600;
    color: #14313f;
}

/* Форма в попапе компактнее общей lead-form — размеры как на Тильде (rec3491328801) */
.offer-popup .offer-popup__form {
    max-width: 320px;
    gap: 10px;
}

.offer-popup__form .blog-offer__phone-wrap,
.offer-popup__form .blog-offer__phone-flag,
.offer-popup__form .blog-offer__phone {
    height: 52px;
}

.offer-popup__form .blog-offer__phone {
    font-family: 'FuturaPT', Arial, sans-serif;
}

.offer-popup__form .blog-offer__name {
    height: 52px;
    font-family: 'FuturaPT', Arial, sans-serif;
}

.offer-popup__form .blog-offer__consent {
    gap: 10px;
    font-size: 13px;
    line-height: 1.2;
    color: #595959;
}

.offer-popup__form .blog-offer__consent input {
    flex-shrink: 0;
    width: 16px;
    height: 16px;
    margin: 0;
    border: 1px solid rgba(115, 127, 132, .6);
    border-radius: 0;
    background: #fff center / 10px no-repeat;
    appearance: none;
    -webkit-appearance: none;
    cursor: pointer;
}

.offer-popup__form .blog-offer__consent input:checked {
    border-color: #737f84;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 8'%3E%3Cpath d='M1 4l3 3 5-6' fill='none' stroke='%23000' stroke-width='1.5'/%3E%3C/svg%3E");
}

.offer-popup__form .blog-offer__consent a {
    text-decoration: none;
    border-bottom: 1px solid rgb(166, 190, 200);
}

.offer-popup__form .blog-offer__submit {
    width: 100%;
    height: 52px;
    font-family: 'Montserrat', Arial, sans-serif;
    font-size: 14px;
}

@media (max-width: 767px) {
    .cm-modal--offer {
        align-items: flex-start;
        justify-content: center;
        padding: 70px 10px 20px;
    }
    .offer-popup {
        zoom: 1;
        display: flex;
        flex-direction: column;
        align-items: center;
        width: 340px;
        height: auto;
    }
    .offer-popup__visual {
        position: relative;
        width: 320px;
        max-width: 100%;
        height: 357px;
    }
    .offer-popup__photo {
        top: -8px;
        right: auto;
        left: 50%;
        width: 185px;
        height: 288px;
        transform: translateX(-50%);
    }
    .offer-popup__close {
        top: -56px;
        right: auto;
        left: 50%;
        transform: translateX(-50%);
    }
    .offer-popup__card {
        position: relative;
        top: auto;
        width: 100%;
        min-height: 0;
        margin-top: -78px;
        padding: 24px 20px;
        text-align: center;
    }
    .offer-popup__form {
        text-align: left;
    }
    .offer-popup__title,
    .offer-popup__form,
    .offer-popup__note {
        margin-left: auto;
        margin-right: auto;
    }
}

/* ── Окно «Дарим вам бесплатный сертификат» (Tilda rec1601729901 + rec1843032521) ──────────────────
   Карточка 560×540 со скруглением 8: слева текст и форма, справа листовка. На широком экране карточка
   стоит правее центра (как в Тильде, сетка 1440 / 1200), на планшете — по центру, на телефоне 340×671 */

.cm-modal--cert {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    box-sizing: border-box;
    padding: 20px;
    background: rgba(23, 23, 23, .9);
    -webkit-backdrop-filter: blur(3px);
    backdrop-filter: blur(3px);
}

.cm-modal--cert[hidden] { display: none; }

.cert-popup {
    position: relative;
    flex: none;
    width: 560px;
    height: 540px;
    margin-block: auto; /* по центру по высоте, а на низком экране окно прокручивается, а не обрезается сверху */
    font-family: 'Montserrat', Arial, sans-serif;
}

.cert-popup__card {
    position: absolute;
    inset: 0;
    border-radius: 8px;
    background: #fff;
}

.cert-popup__title {
    position: absolute;
    top: 40px;
    left: 40px;
    width: 302px;
    margin: 0;
    font-family: 'FuturaPT', Arial, sans-serif;
    font-size: 28px;
    font-weight: 500;
    line-height: 28px;
    color: #000;
}

.cert-popup__title span { color: #3aa5d6; }

.cert-popup__text {
    position: absolute;
    top: 112px;
    left: 40px;
    width: 329px;
    margin: 0;
    font-size: 14px;
    line-height: 21px;
    color: #3d4c52;
}

.cert-popup__form {
    position: absolute;
    top: 209px;
    left: 34px;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    width: 291px;
    height: 205px;
    gap: 0;
}

.cert-popup__form .blog-offer__phone-wrap,
.cert-popup__form .blog-offer__phone-flag,
.cert-popup__form .blog-offer__phone-select,
.cert-popup__form .blog-offer__phone { height: 54px; }

.cert-popup__form .blog-offer__phone-wrap { flex: none; border-radius: 50px; }
.cert-popup__form .blog-offer__phone { border-radius: 50px; font-size: 15px; }

.cert-popup__form .blog-offer__consent {
    gap: 10px;
    font-size: 14px;
    line-height: 21px;
    color: #737f84;
}

.cert-popup__form .blog-offer__consent input {
    flex-shrink: 0;
    width: 16px;
    height: 16px;
    margin: 2px 0 0;
    border: 1px solid #737f84;
    border-radius: 0;
    background: #fff center / 10px no-repeat;
    appearance: none;
    -webkit-appearance: none;
    cursor: pointer;
}

.cert-popup__form .blog-offer__consent input:checked {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 8'%3E%3Cpath d='M1 4l3 3 5-6' fill='none' stroke='%23000' stroke-width='1.5'/%3E%3C/svg%3E");
}

.cert-popup__form .blog-offer__consent a { text-decoration: none; color: #0093d5; border-bottom: 1px solid rgba(0, 147, 213, .5); }

.cert-popup__form .blog-offer__submit {
    flex: none;
    width: 100%;
    height: 54px;
    font-family: 'Montserrat', Arial, sans-serif;
    font-size: 14px;
}

.cert-popup__form .lead-form__message { position: absolute; top: 100%; left: 0; right: 0; margin: 6px 0 0; }

.cert-popup__note {
    position: absolute;
    top: 443px;
    left: 40px;
    width: 296px;
    margin: 0;
    font-size: 14px;
    line-height: 21px;
    color: #3d4c52;
}

.cert-popup__note strong { font-weight: 600; color: #171717; }

/* «+» с пояснением: в Тильде это tooltip — текст показывается по наведению */
.cert-popup__tip {
    position: relative;
    display: inline-block;
    width: 16px;
    height: 16px;
    margin-left: 4px;
    border-radius: 50%;
    background: #0093d5 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 4.2v7.6M4.2 8h7.6' stroke='%23fff' stroke-width='1.5'/%3E%3C/svg%3E") center / 100% no-repeat;
    vertical-align: -3px;
    cursor: pointer;
    outline: 0;
}

.cert-popup__tip-text {
    position: absolute;
    bottom: calc(100% + 10px);
    left: 50%;
    z-index: 3;
    box-sizing: border-box;
    width: 260px;
    padding: 12px 14px;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 4px 24px rgba(0, 0, 0, .2);
    font-size: 13px;
    line-height: 18px;
    color: #3d4c52;
    opacity: 0;
    pointer-events: none;
    transform: translateX(-70%);
    transition: opacity .2s;
}

.cert-popup__tip:hover .cert-popup__tip-text,
.cert-popup__tip:focus .cert-popup__tip-text { opacity: 1; }

.cert-popup__close {
    position: absolute;
    top: 40px;
    left: 480px;
    z-index: 3;
    width: 40px;
    height: 40px;
    padding: 0;
    border: 0;
    background: none;
    cursor: pointer;
}

.cert-popup__close img { display: block; width: 100%; height: 100%; }

.cert-popup__flyer {
    position: absolute;
    z-index: 2;
    max-width: none;
    pointer-events: none;
}

.cert-popup__flyer--a { top: 113px; left: 389px; width: 171px; height: 393px; object-fit: contain; object-position: left top; }
.cert-popup__flyer--b { display: none; }

@media (min-width: 1200px) {
    .cm-modal--cert { justify-content: flex-end; padding-right: max(20px, calc(50% - 580px)); }
    .cert-popup__text { width: 305px; }
    .cert-popup__title { width: 298px; }
    .cert-popup__form { top: 216px; left: 40px; width: 300px; height: 213px; }
    .cert-popup__note { top: 458px; width: 324px; }
    .cert-popup__flyer--a { top: 112px; height: 306px; }
}

@media (min-width: 1440px) {
    .cm-modal--cert { padding-right: calc(50% - 680px); }
}

@media (max-width: 639px) {
    .cm-modal--cert { padding: 80px 10px 10px; }
    .cert-popup { width: 340px; height: 671px; }
    .cert-popup__title { top: 202px; left: 20px; width: 279px; font-size: 26px; line-height: 26px; }
    .cert-popup__text { top: 266px; left: 20px; width: 309px; }
    .cert-popup__form { top: 357px; left: 20px; width: 300px; height: 205px; }
    .cert-popup__note { top: 578px; left: 20px; width: 297px; }
    .cert-popup__close { top: -50px; left: 298px; width: 32px; height: 32px; }
    .cert-popup__flyer--a { display: none; }
    .cert-popup__flyer--b { display: block; top: -70px; left: 20px; width: 235px; height: 247px; object-fit: contain; }
}
