.malevich__hide {
    display: none;
}

.header__button {
    color: #fff !important;
}

.malevich_shown .malevich__contacts:not(.malevich_shown.malevich_open .malevich__contacts) {
    max-height: 0 !important;
}

.opening_form form {
    align-items: flex-start !important;
}

.opening_form .modal-form__title,
.opening_form .modal-hero__text {
    text-align: center !important;
}

.opening_form .modal-form {
    padding-bottom: 1rem;
}

.opening_form .modal-hero__intro {
    color: #303030;
    font-size: 1.4rem;
    text-align: center;
}

.opening_form .checkbox span {
    color: #686868;
}

.opening_form .m_top {
    margin-top: -1rem;
}

.opening_form .form__submit {
    margin: 1rem auto;
}

.opening_form form a {
    text-decoration: underline !important;
}

.opening_form form a:hover {
    text-decoration: none !important;
}

.opening_form .contacts__socials {
    margin: 0;
    padding: 4rem 0 2rem 0;
    display: none;
}

.opening_form .contacts__socials ul {
    justify-content: center;
}

.opening_form .contacts__socials ul li a {
    color: #ec5524;
}

.opening_form .contacts__socials ul li a:hover {
    color: var(--color-orange-dark);
}

.section-opening {
    padding: 4rem 0;
    margin: 5rem 0;
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
}

.section-opening .opening_form {
    background: #faf8f5;
}

@media (max-width: 1100px) {
    .section-opening {
        padding: 0;
        margin: 0;
    }

    .section-opening .container {
        padding-right: 0;
        padding-left: 0;
    }
}

.section-opening .opening_form {
    max-width: 45rem;
    background: #fff;
    margin: 0 auto;
}

@media (min-width: 1101px) {
    .spa-item__holder {
        padding: 0 3.4rem 10.6rem !important;
    }
}

@media (max-width: 700px) {
    .spa-item__holder {
        padding: 0 1.2rem 10rem !important;
    }
}

@media (max-width: 700px) {
    .opening_form .form__row,
    .opening_form .form__item {
        width: 100%;
    }
}

.prices__item-heading span {
    text-align: right;
}


.modal_cert .cabinet-box {
    min-height: 46.2rem;
    display: flex
}

.modal_cert .cabinet-box__image {
    flex: none;
    width: 32.2rem
}

.modal_cert .cabinet-box__image img {
    object-fit: cover;
    width: 100%;
    height: 100%;
    display: block
}

.modal_cert .cabinet-box__description {
    align-self: center;
    padding: 3.2rem
}

.modal_cert .cabinet-box__title {
    letter-spacing: .4rem;
    font-size: 2rem;
    font-weight: 400;
    line-height: 4rem;
    font-family: var(--header-text-font-family), sans-serif;
    margin-bottom: 1.6rem
}

.modal_cert .cabinet-box__text {
    color: var(--color-grey-primary);
    font-size: 1.2rem;
    font-weight: 400;
    line-height: 1.5
}

.modal_cert .cabinet-box__link {
    margin-top: 3.2rem
}

@media (min-width: 701px) {
    .certificate-card__label {
        max-width: 308px;
    }
}

.step-payment .disclaimer a,
.step-payment .form__checkbox a,
.step-gratitude a:not(.button) {
    text-decoration: underline;
}

.step-payment .disclaimer a:hover,
.step-payment .form__checkbox a:hover,
.step-gratitude a:hover {
    text-decoration: none;
}

.step-nominal .section-certificate-top {
    display: grid;
    gap: 2rem;
    grid-template-columns: 60% calc(40% - 2rem);
}

@media (max-width: 700px) {
    .step-nominal .section-certificate-top {
        grid-template-columns: none;
        gap: 1rem;
    }
}

.section-certificate-top__filter_group {
    display: grid;
    gap: 2rem;
    grid-template-columns: 50% calc(50% - 2rem);
}

.section-certificate-top .select__wrap {
    max-width: 20rem;
    margin-top: 2rem;
}

.step-payment .cart-sticky .section-steps {
    display: none;
}

@media (max-width: 700px) {
    .step-payment .layout__items {
        display: flex;
        flex-direction: column;
    }

    .step-payment .layout__item {
        order: 1;
    }

    .step-payment .cart-sticky {
        order: -1;
        margin-bottom: 2.5rem;
    }

    .step-payment .cart-sticky .section-steps {
        display: block !important;
    }

    .step-payment .layout__item .section-steps {
        display: none;
    }
}

.certs-block a.button,
.certs-block button.button {
    border-color: #000;
}

.payment__actions button.button {
    border-color: var(--color-orange-primary);
}

.certs-block button[disabled].button {
    border-color: #ccc;
}

.certificate-card_bottom__empty_dsc {
    justify-content: center !important;
}

.sum__delivery {
    text-transform: none !important;
    font-weight: normal !important;
    margin-bottom: 1rem;
    display: none;
}

.skeleton {
    background-color: #e0e0e0;
    position: relative;
    overflow: hidden;
    border-radius: 5px;
}

.skeleton::after {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    height: 100%;
    width: 100%;
    background: linear-gradient(
            to right,
            transparent,
            rgba(255, 255, 255, 0.4),
            transparent
    );
    animation: shimmer 1.2s infinite;
}

@keyframes shimmer {
    100% {
        left: 100%;
    }
}

.gift__card span {
    text-align: right;
    margin-top: 12rem;
    font-size: 1.1rem !important;
}

.gift__card::after {
    display: none !important;
}

.modal-login .form__checkbox {
    width: 100%;
    margin-top: -10px;
}

.prices__item-heading span {
    color: #b19f8f;
}

.modal-hero.form-box {
    display: block !important;
}

@media (min-width: 1101px) {
    .menu-contacts__action {
        display: none;
    }
}

@media (min-width: 1101px) {
    .footer__contacts ul {
        grid-template-columns: 15.3rem 24rem 15.3rem 15.3rem;
    }
}

@media (max-width: 1100px) {
    .custom_margin__top {
        margin-top: 5.6rem !important;
    }
}

@media (min-width: 1101px) {
    .custom_margin__top {
        margin-top: 20rem !important;
    }

    .section-accordion {
        margin-top: 7rem !important; /* было 12.8rem — верхний отступ блока «Общественные бани» был великоват */
    }
}

.header__logotype-index span {
    overflow: hidden;
    display: inline-block;
    vertical-align: top;
    transition: width .75s cubic-bezier(.16, 1, .3, 1), opacity .75s cubic-bezier(.16, 1, .3, 1);
}

@media (min-width: 1101px) {
    .header:not(.-scroll):not(.-fill) .header__logotype-index span {
        width: 3.7rem;
    }
}

@media (min-width: 1101px) {
    .header__logotype-index span {
        width: 15.6rem;
    }
}

@media (max-width: 1100px) {
    .header:not(.-scroll):not(.-fill) .header__logotype-index span {
        opacity: 0;
    }
}

@media (max-width: 1100px) {
    .header__logotype-index span {
        width: 2.9rem;
    }
}

@media (max-width: 1100px) {
    .header__logotype-index span svg {
        max-width: 12.1rem;
        max-height: 4.4rem;
    }
}

.header__logotype-index svg {
    fill: currentColor;
}

/* Ширина контактов: в овале (десктоп) значение приходит из бандла (_menu.scss).
   Здесь оставляем только мобильный/планшетный блок контактов под меню. */
@media (max-width: 1100px) {
    .menu__contacts .menu-contacts__data {
        max-width: 27rem;
    }
}

@media (max-width: 1100px) {
    .modal__gift .action-btn {
        text-align: center !important;
    }
}

.section-presentation h2 {
    color: #e95524;
}

.presentation__block ul li {
    align-items: flex-start;
}

.presentation__block ul li::before {
    flex: 0 0 auto;
    width: 8px;
    height: 3px;
    margin-top: 0.77em;
}

/*
.modal__opening form {
padding: 0 4rem 4rem 4rem;
}

@media (max-width: 1100px) {
.modal__opening form {
    padding: 0 var(--container-gap) 4rem var(--container-gap);
}
}

.modal__opening .form-box {
padding-bottom: 4rem;
}

.modal__opening .form__submit {
text-align: center;
}

.modal__opening .modal-hero__text {
color: #303030;
}

.modal__opening .checkbox span {
color: #686868;
}

.modal__opening form a {
text-decoration: underline !important;
}

.modal__opening form a:hover {
text-decoration: none !important;
}

.modal__opening .m_top {
margin-top: -1.5rem;
}

.modal__opening .modal__container {
display: block !important;
}

.section-opening {
padding: 4rem 0;
margin: 5rem 0;
background-position: center;
background-size: cover;
background-repeat: no-repeat;
}

@media (max-width: 1100px) {
.section-opening {

}
}

.opening__block {
max-width: 45rem;
background: #fff;
margin: 0 auto;
}

.modal__opening .contacts__socials {
margin: 0;
padding: 0;
display: none;
}

.modal__opening .contacts__socials ul {
justify-content: center;
}

.modal__opening .contacts__socials ul li a {
color: #ec5524;
}

.modal__opening .contacts__socials ul li a:hover {
color: var(--color-orange-dark);
}
*/
/* ==== План комплекса: пилюля (фото-круг + текст, стиль кнопок сайта) ==== */
.plan-pill {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    gap: 1.6rem;
    box-sizing: border-box;
    padding: 0.7rem 2.4rem 0.7rem 0.7rem;
    border: 1px solid var(--color-orange-primary);
    border-radius: 5rem;
    background-color: rgba(217, 217, 217, 0.02);
    -webkit-backdrop-filter: blur(0.5rem);
    backdrop-filter: blur(0.5rem);
    color: var(--color-black-primary);
    font-size: 1.2rem;
    letter-spacing: 0.2rem;
    text-transform: uppercase;
    text-decoration: none;
    -webkit-tap-highlight-color: transparent;
    transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}
@media (hover: hover) and (pointer: fine) {
    .plan-pill:hover {
        background-color: var(--color-beige-primary, #ece6de);
        border-color: var(--color-orange-dark, #c4451c);
    }
}
.plan-pill:active {
    background-color: var(--color-beige-primary, #ece6de);
    border-color: var(--color-orange-dark, #c4451c);
}
.plan-pill__photo {
    width: 4.6rem;
    height: 4.6rem;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
}

/* бургер: пилюля над «Забронировать», обе на всю ширину */
.menu-contacts__action .plan-pill {
    width: 100%;
    height: 5.4rem;
    padding: 0.5rem 2.4rem 0.5rem 0.5rem;
    margin-bottom: 1.6rem;
    font-size: 1.2rem;
    letter-spacing: 0.12rem;
}
.menu-contacts__action .plan-pill .plan-pill__photo {
    width: 4.4rem;
    height: 4.4rem;
}

/* ДО СОГЛАСОВАНИЯ С ЗАКАЗЧИКОМ: точка входа скрыта (страница /plan/ живёт).
   Раскрытие = удалить это правило. */
.menu-contacts__action .plan-pill {
    display: none;
}

/* кнопка «Забронировать» в бургере — оранжевая заливка */
.menu-contacts__action .button_order-fill {
    background-color: var(--color-orange-primary);
    border-color: var(--color-orange-primary);
    color: var(--color-white, #fff);
}
.menu-contacts__action .button_order-fill:hover,
.menu-contacts__action .button_order-fill:active {
    background-color: var(--color-orange-dark, #c4451c);
    border-color: var(--color-orange-dark, #c4451c);
    color: var(--color-white, #fff);
}

/* ==== Глобальная карта (футер, все страницы кроме /about/ и /plan/) ====
   Скрыта всегда; показывается только fullscreen-оверлей. */
.map-global .map__banner { display: none !important; }
.map-global .map:not(.map--fullscreen) { display: none; }
.map-global .map--fullscreen .map__outer-wrapper {
    position: fixed;
    inset: 0;
    z-index: 600;
    background: #0d0f0c;
}

/* ==== Страница /plan/ ==== */
.plan-page__head {
    /* под фиксированный хедер (~8rem) + воздух */
    padding-top: 12.8rem;
}
@media (max-width: 700px) {
    .plan-page__head { padding-top: 8.8rem; }
}
.plan-page .breadcrumbs {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 2.4rem;
    font-size: 1.2rem;
    letter-spacing: 0.2rem;
    text-transform: uppercase;
    color: #686868;
}
.plan-page .breadcrumbs a {
    color: #686868;
    text-decoration: none;
    transition: color 0.2s ease;
}
@media (hover: hover) and (pointer: fine) {
    .plan-page .breadcrumbs a:hover { color: var(--color-orange-primary); }
}
.plan-page .breadcrumbs span[aria-current] { color: var(--color-black-primary); }
.plan-page__intro {
    max-width: 86rem;
    margin-top: 2.4rem;
    font-size: 1.5rem;
    line-height: 2.4rem;
    color: #303030;
}
.plan-page__intro p + p { margin-top: 1.2rem; }
.plan-page__intro a { color: var(--color-orange-primary); }
/* заголовок ↔ схема: воздух; схема ↔ новости: умеренно; новости ↔ футер: без лишнего */
.plan-page .section-map { padding-top: 3.2rem; padding-bottom: 0; }
.plan-page .section-map .map__scroll { margin-bottom: 0; }
.plan-page .section-news { padding-top: 4.8rem; padding-bottom: 0; }
@media (max-width: 700px) {
    .plan-page__intro { font-size: 1.4rem; line-height: 2.2rem; }
    .plan-page .section-map { padding-top: 2rem; }
    .plan-page .section-news { padding-top: 3.2rem; }
    /* на мобилке на /plan/ показываем баннер карты как на /about/ */
}


/* /plan/: мобильная типографика как на других страницах */
@media (max-width: 700px) {
    .plan-page .title {
        font-size: 4.8rem;
        line-height: 1.2;
    }
    .plan-page .breadcrumbs {
        font-size: 1.1rem;
        letter-spacing: 0.15rem;
        margin-bottom: 1.8rem;
    }
}


/* ============================================================
   Футер: соцсети/адрес/телефон/легал/подвал (CPMO footer-redesign, 2026-07-30)
   Причины:
   1) .footer__socials — иконки соцсетей схлопывались в столбик
      (класс существовал в разметке, но не был стилизован рядом) —
      явный flex-ряд ниже, независимо от состояния бандла.
   2) footer.php теперь разносит "Бани"/"СПА" и номер телефона
      отдельно — здесь только оформление новой разметки
      (.footer__phone/.footer__phone-label/.footer__phone-number).
   3) Мобилка: адрес кликабелен на карту без подчёркивания,
      юрлицо/юр.адрес переезжают под email, "Сайт разработан
      в REDLOFT" — отдельной плашкой в подвале footnote.
   Десктоп не тронут (изменения точечно под max-width:1100px).
   ============================================================ */

.footer__socials ul {
    display: flex;
    align-items: center;
    gap: 1rem;
}
.footer__socials li { flex: none; }
/* !important на display: в бандле есть .social ul li a{display:block}
   (specificity 1 класс + 3 элемента) — она специфичнее нашего
   .footer__socials a (1 класс + 1 элемент) и выигрывала несмотря на
   более позднюю загрузку custom.css. Из-за этого иконки визуально были
   40x40 кругом с фоном (те свойства выигрывали), но БЕЗ flex-центровки —
   SVG внутри прижимался к верхнему краю круга, из-за разной высоты
   иконок (Telegram/WhatsApp — 26px, VK — 20px) это давало заметный
   разнобой по вертикали ("криво"). */
.footer__socials a {
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 4rem;
    height: 4rem;
    border-radius: 50%;
    background: rgba(48, 48, 48, .06);
    color: var(--color-grey-dark);
    transition: background-color .25s ease, color .25s ease;
}
@media (prefers-reduced-motion: reduce) {
    .footer__socials a { transition: none; }
}
@media (any-pointer: fine) {
    .footer__socials a:hover { background: var(--color-orange-primary); color: #fff; }
}
.footer__socials svg { display: block; width: 1.4rem; height: 1.4rem; fill: currentColor; }

/* адрес: реальная ссылка на карту, но без вида ссылки (без подчёркивания) */
a.footer__contact-text_link {
    display: inline-block;
    text-decoration: none;
    color: var(--color-grey-dark);
    cursor: pointer;
}
a.footer__contact-text_link:hover,
a.footer__contact-text_link:active { color: var(--color-orange-primary); }

/* телефон: метка — второстепенный текст сверху, кликабелен только номер */
.footer__phone { margin-bottom: 1.2rem; }
.footer__phone:last-child { margin-bottom: 0; }
/* grey-dark (#565656, ≈4.9:1 на молочном), а не grey-medium (#8d8d8d, ≈2.7:1):
   метка «Бани»/«СПА» — смысловой текст обычного кегля, обязан пройти WCAG AA. */
.footer__phone-label {
    display: block;
    font-size: 1.2rem;
    color: var(--color-grey-dark);
    margin-bottom: .2rem;
}
.footer__phone-number {
    display: inline-block;
    font-size: 1.4rem;
    color: var(--color-grey-dark);
    text-decoration: none;
}
@media (any-pointer: fine) {
    .footer__phone-number:hover { color: var(--color-orange-primary); }
}

/* почта: каждый адрес своей строкой (раньше — <br/> между ссылками) */
.footer__email-link {
    display: block;
    font-size: 1.4rem;
    color: var(--color-grey-dark);
    text-decoration: none;
    margin-bottom: .4rem;
}
.footer__email-link:last-child { margin-bottom: 0; }
@media (any-pointer: fine) {
    .footer__email-link:hover { color: var(--color-orange-primary); }
}

/* видимый фокус-ринг с клавиатуры на всех ссылках футера, независимо от hover */
.footer a:focus-visible {
    outline: 2px solid var(--color-orange-primary);
    outline-offset: 2px;
    border-radius: .2rem;
}

/* мобилка ≤1100px: юрлицо — вниз под email, REDLOFT — в подвал footnote */
@media (max-width: 1100px) {
    /* меню (О комплексе / ВИП дома / Цены / Документы) — по центру и сразу
       развёрнуто целиком, без сворачивания в аккордеон: в футере чем больше
       видно сразу, тем лучше. Базовый бандл держит подсписки схлопнутыми
       (max-height:0, opacity:0) до клика — !important перебивает эту
       "закрытую" версию тех же свойств, а не просто добавляет новую.
       Раскладка — 2 колонки (было: одна колонка на всю ширину, много
       пустого места по бокам): О комплексе/ВИП дома в одной строке,
       Цены/Документы — в следующей (естественный DOM-порядок 4 пунктов). */
    .footer__menu > ul {
        grid-template-columns: repeat(2, 1fr) !important;
        column-gap: 2rem;
        row-gap: 4rem;
        text-align: left;
    }
    .footer__links { justify-items: start; }
    .footer__links > a,
    .footer__links > .footer__contact-heading { font-size: 1.7rem; }
    .footer__links ul {
        max-height: none !important;
        opacity: 1 !important;
        visibility: visible !important;
        margin-top: 1.8rem !important;
        margin-bottom: 0 !important;
        overflow: visible !important;
        row-gap: 1.4rem !important;
    }

    /* explicit override: базовый бандл ставит flex-direction:column-reverse —
       нам нужен предсказуемый порядок через `order`, поэтому фиксируем column.
       margin/padding-top тоже урезаны — было 4rem+4rem (итого 8rem) от конца
       меню до иконок соцсетей, ощутимо "далековато". */
    .footer__middle {
        flex-direction: column !important;
        row-gap: 4.8rem;
        margin-top: 2.4rem !important;
        padding-top: 2.4rem !important;
    }

    .footer__socials-wrap { order: 0; }
    .footer__contacts { order: 1; }
    .footer__middle .footer__details { order: 2; text-align: center; margin-top: 0; }

    .footer__socials { margin-top: 3.2rem; }
    .footer__socials ul { justify-content: center; gap: 1.6rem; }
    .footer__socials a { width: 5.6rem; height: 5.6rem; }
    /* !important + обнуление max-width/max-height: в бандле есть более
       специфичный .footer__socials ul li a svg{max-width:2rem;max-height:1.6rem}
       (тот же класс специфичности-паттерн, что и с display у .social ul li a) —
       он подрезал наш width:2.2rem вниз до 2rem, иконки внутри 5.6rem-круга
       выглядели мелковато. */
    .footer__socials svg {
        width: 2.6rem !important;
        height: 2.6rem !important;
        max-width: none !important;
        max-height: none !important;
    }
    /* НЕ child-комбинатор: после обёртки в .footer__socials-wrap этот блок стал
       внуком .footer__middle, и правило с ">" молча перестало матчиться — дубль
       кредита REDLOFT (инлайн + нижняя плашка) держался бы только на descendant-
       правиле бандла, которое мы не контролируем. */
    .footer__socials-wrap .footer__developer { display: none; }

    .footer__contacts ul { text-align: center; row-gap: 4rem; }
    .footer__contact-heading { font-size: 1.5rem; margin-bottom: 1.4rem; }
    .footer__contact-text,
    a.footer__contact-text_link { font-size: 1.6rem; }

    .footer__phone { margin-bottom: 2rem; }
    /* см. комментарий у базового правила: контраст AA, поэтому grey-dark,
       а не rgba(48,48,48,.6) (≈3.5:1 — не проходит для обычного кегля). */
    .footer__phone-label { font-size: 1.4rem; font-weight: 500; color: var(--color-grey-dark); margin-bottom: .4rem; }
    .footer__phone-number { font-size: 2rem; font-weight: 500; padding: .6rem 0; }
    .footer__email-link { font-size: 1.6rem; padding: .6rem 0; margin-bottom: .8rem; }

    /* базовый бандл красит footer__footnote в оранжевый ТОЛЬКО на десктопе —
       на мобилке фон оставался обычным (milk), а свой оранжевый фон был только
       у .footer__copyright (старый bleed-хак с отрицательными полями). В итоге
       получались 3 визуально несвязанных блока: документы на milk, copyright —
       отдельная оранжевая коробка, REDLOFT — ещё одна плашка. Теперь одна
       сплошная оранжевая полоса на всю мобилку, как на десктопе. */
    .footer__footnote { background: var(--color-orange-primary); color: #fff; }
    .footer__footnote ul { align-items: center; text-align: center; padding: 3.2rem 0 2.8rem; gap: 1.8rem 2.4rem; }
    .footer__footnote ul li a { color: #fff; }
    .footer__copyright {
        order: 1;
        font-size: 1.4rem;
        opacity: .85;
        margin-top: .8rem;
        padding-top: 1.8rem;
        width: 100%;
        border-top: 1px solid rgba(255, 255, 255, .25);
        /* гасим старый bleed-хак (свой фон + отрицательные поля) — теперь
           родитель .footer__footnote уже сплошной оранжевый, дублировать не нужно */
        background: transparent;
        margin-left: 0;
        margin-right: 0;
        padding-left: 0;
        padding-right: 0;
    }
    .footer__copyright-break { display: inline; }

    /* "Сайт разработан в REDLOFT" — отдельная полноширинная плашка под
       footnote, тот же оранжевый (без второго оттенка — раньше был на
       шаг темнее и читался как дефект рендера), тонкий разделитель,
       безопасный отступ снизу (home-indicator на iPhone). */
    .footer__developer_bottom {
        display: block;
        width: 100%;
        background: var(--color-orange-primary);
        border-top: 1px solid rgba(255, 255, 255, .25);
        padding: 1.8rem var(--container-gap) calc(env(safe-area-inset-bottom, 0px) + 1.8rem);
        font-size: 1.4rem;
        color: #fff;
        text-align: center;
    }
    .footer__developer_bottom a {
        display: inline-block;
        margin-top: .2rem;
        text-decoration: none;
        border-bottom: 1px solid rgba(255, 255, 255, .5);
        padding-bottom: .1rem;
    }
}
@media (min-width: 1101px) {
    .footer__copyright-break { display: none; }

    /* "Сайт разработан в REDLOFT" — на один уровень по низу с колонкой
       контактов (.footer__contacts занимает grid-area 1/2/span 2/span1 —
       то есть высоту двух строк). Растягиваем .footer__socials-wrap на ту
       же высоту и раздвигаем содержимое: иконки сверху, REDLOFT снизу. */
    .footer__socials-wrap {
        grid-row: 1 / span 2;
        display: flex;
        flex-direction: column;
        justify-content: space-between;
        height: 100%;
    }
}

/* ============================================================
   Соц-иконки (мессенджеры) — единый оптический размер.
   Внутр. правка 2026-08-02 (не светить клиенту).

   Проблема: svg приходят с ЗАШИТЫМИ inline-размерами и РАЗНЫМИ
   пропорциями: Dzen 24x24 (квадрат), Telegram 31x26, VK 35x20
   (широкий). Нормализация «по высоте» оставляет ширину разной
   (20/24/35px) — визуально это и читается как разнобой.

   Решение: единый КВАДРАТНЫЙ бокс. viewBox + preserveAspectRatio
   (по умолчанию xMidYMid meet) вписывают глиф по пропорции и
   центрируют его в боксе — иконки садятся оптически ровно.

   ⚠️ СПЕЦИФИЧНОСТЬ: в бандле есть .social ul li a svg{...!important}
   (0-1-4). При равном !important побеждает БОЛЕЕ СПЕЦИФИЧНЫЙ, а не
   тот, что загружен позже — поэтому здесь 0-2-4 (класс блока +
   .social + ul li a svg), иначе правило молча проигрывает.
   ============================================================ */
.footer__socials.social ul li a svg,
.contacts__socials.social ul li a svg {
    width: 2.4rem !important;
    height: 2.4rem !important;
    max-width: none !important;
    max-height: none !important;
}

/* блок контактов: ряд с центровкой (в футере это уже есть, тут не было) */
.contacts__socials.social ul { display: flex; align-items: center; gap: 1.6rem; }
.contacts__socials.social ul li { flex: none; }
.contacts__socials.social ul li a { display: flex !important; align-items: center; justify-content: center; }

/* мобилка: круг соцсети 5.6rem — там иконка должна быть крупнее */
@media (max-width: 1100px) {
    .footer__socials.social ul li a svg { width: 3rem !important; height: 3rem !important; }
    .contacts__socials.social ul li a svg { width: 2.6rem !important; height: 2.6rem !important; }
}

/* hover в футере: белая иконка на оранжевом круге.
   Бандл красит svg через fill:currentColor, но правило .social ul li a svg
   (0-1-4) специфичнее, чем цвет на .footer__socials a — поэтому задаём fill
   явно и с той же «весовой категорией», иначе глиф остаётся тёмным. */
.footer__socials.social ul li a:hover svg,
.footer__socials.social ul li a:focus-visible svg {
    fill: #fff !important;
    color: #fff !important;
}

/* WhatsApp: глиф нарисован не по центру своего viewBox (0 0 31 26) — занимает
   ~24 из 31 единицы по ширине, поэтому в круге визуально уезжает влево.
   Тот же приём уже применён для меню в этом файле. */
.footer__socials.social ul li a[href*="wa.me"] svg,
.footer__socials.social ul li a[href*="whatsapp"] svg,
.contacts__socials.social ul li a[href*="wa.me"] svg,
.contacts__socials.social ul li a[href*="whatsapp"] svg {
    transform: translate(11.3%, 3.8%);
}

/* ============================================================
   Мобилка: карта в контактах не должна перехватывать скролл.
   Поверх карты лежит прозрачный слой — первое касание просто
   уходит в страницу (скроллим мимо), тап по слою снимает его и
   отдаёт управление карте. Слой возвращается, когда карта ушла
   из экрана, чтобы следующий проход снова был безопасным.
   ============================================================ */
@media (max-width: 1100px) {
    .contacts__map { position: relative; }

    .contacts__map-guard {
        position: absolute;
        inset: 0;
        z-index: 3;
        cursor: pointer;
        background: transparent;
        display: flex;
        align-items: flex-end;
        justify-content: center;
        padding-bottom: 1.6rem;
        transition: opacity .2s ease;
    }

    .contacts__map-guard span {
        font-size: 1.1rem;
        line-height: 1;
        color: var(--color-white);
        background: rgba(48, 48, 48, .72);
        border-radius: 2rem;
        padding: .8rem 1.6rem;
        pointer-events: none;
    }

    .contacts__map.-map-active .contacts__map-guard {
        opacity: 0;
        pointer-events: none;
    }
}

/* ============================================================
   Мобилка: обложки новостей. Афиши бывают вертикальные, контейнер —
   горизонтальный, из-за чего вокруг картинки оставались поля.
   Вместо подкраски фона фиксируем ВЫСОТУ, а ширину контейнера ужимаем
   под пропорции самой картинки — обложка просто становится уже и
   прижимается к левому краю карточки. Полей нет вообще.
   ============================================================ */
@media (max-width: 1100px) {
    .article__image {
        width: max-content;
        max-width: 100%;
        background: none;
    }

    .article__image img {
        width: auto;
        height: 100%;
        max-width: 100%;
        object-fit: contain;
    }
}

/* ============================================================
   «Наша кухня»: большое фото стояло НАД блоком и перебивало его.
   Переносим под весь блок (после слайдера) через flex-order — без
   правки шаблона — и ужимаем высоту до 60% от прежней.
   Ширина остаётся во всю ширину экрана (img: cover, 100%).
   Прежние значения высоты: 63.8rem / 60rem / 38.2rem.
   ============================================================ */
.kitchen {
    display: flex;
    flex-direction: column;
}

.kitchen__hero {
    order: 1; /* остальные дети идут с order:0 — фото уходит в конец */
    margin-bottom: 0 !important;
}

@media (min-width: 1101px) {
    .kitchen__hero {
        height: 38.3rem !important; /* 63.8 × 0.6 */
        margin-top: 4.8rem;
    }
}

@media (min-width: 701px) and (max-width: 1100px) {
    .kitchen__hero {
        height: 36rem !important; /* 60 × 0.6 */
        margin-top: 2.4rem;
    }
}

@media (max-width: 700px) {
    .kitchen__hero {
        height: 22.9rem !important; /* 38.2 × 0.6 */
        margin-top: 2.4rem;
    }
}

/* ============================================================
   МОБИЛКА — пакет правок 02.08 (внутреннее, не светить клиенту)
   ============================================================ */
@media (max-width: 1100px) {
    /* 1. Заголовок карточки новости — уже, чтобы перенос делил строку
       примерно поровну, а не оставлял «хвост» из одного слова. */
    .article__title {
        max-width: 78%;
    }


    /* 3. Ритм секций: у кухни сверху не было отступа вовсе, у апартаментов
       он был больше — приводим к одному «дыханию». */
    .section-kitchen {
        margin-top: 5.6rem;
    }

    /* мобилка: тот же пустой хвост аккордеона — подтягиваем секцию вверх (зазор ~60px) */
    .section-apartment {
        margin-top: -16rem !important;
    }

    /* 4. Слайдер кухни: точки были скрыты, из-за чего блок не читался как
       слайдер. Возвращаем их под слайдером по центру. */
    .kitchen__slider .swiper-pagination {
        display: block !important;
        position: relative !important;
        padding-left: 0 !important;
        margin-top: 1.6rem;
        text-align: center;
    }

    .kitchen__slider .swiper-pagination .swiper-pagination-bullet {
        margin: 0 .4rem;
    }

    /* 5. Плашка на карте: была прижата к низу и не читалась. Поднимаем в
       центр карты и сужаем, чтобы текст лёг в две строки. */
    .contacts__map-guard {
        align-items: center;
        padding-bottom: 0;
    }

    .contacts__map-guard span {
        max-width: 13rem;
        white-space: normal;
        text-align: center;
        line-height: 1.35;
        padding: 1rem 1.4rem;
        font-size: 1.2rem;
    }
}

/* Десктоп: над ВИП-апартаментами sticky-аккордеон оставляет большой пустой хвост
   (~250px). Подтягиваем секцию вверх, чтобы «ВИП АПАРТАМЕНТЫ» шли близко (зазор ~50px). */
@media (min-width: 1101px) {
    .section-apartment {
        margin-top: -20rem !important;
    }
}


/* «Наша кухня», десктоп: сверху отступа не было вовсе — задаём дыхание,
   чуть больше, чем у апартаментов (7rem), чтобы блок читался отдельно. */
@media (min-width: 1101px) {
    .section-kitchen {
        margin-top: 10rem;
    }
}
