/* =========================================================
   САЙТ — ОБЩИЕ СТИЛИ
========================================================= */

body {
    color: var(--md-text-color, #261d22);
    background-color: var(--md-page-bg, #fff);
}




/* =========================================================
   САЙТ — ГЛАВНАЯ
========================================================= */

.home-page {
    background: var(--md-page-bg, #fff9fb);
}

.home-letter-spacing {
    letter-spacing: 2px;
}

.home-hero-text {
    max-width: 700px;

    line-height: 1.6;
}

.home-section-text {
    max-width: 720px;

    line-height: 1.6;
}

.home-step-number {
    width: 40px;

    height: 40px;

    flex: 0 0 40px;

    display: flex;

    align-items: center;

    justify-content: center;

    border-radius: 50%;

    background: var(--md-primary-color, #261d22);

    color: #fff;

    font-weight: 700;
}

.home-page .btn-dark {
    background: var(--md-button-color, #261d22);

    border-color: var(--md-button-color, #261d22);

    border-radius: var(--md-button-radius, 0);
}

.home-page .btn-dark:hover {
    background: var(--md-button-hover-color, #3a2f34);

    border-color: var(--md-button-hover-color, #3a2f34);
}

.home-page .btn-outline-dark {
    color: var(--md-button-color, #261d22);

    border-color: var(--md-secondary-color, #d8ccd1);

    border-radius: var(--md-button-radius, 0);
}

.home-page .btn-outline-dark:hover {
    background: var(--md-button-color, #261d22);

    border-color: var(--md-button-color, #261d22);

    color: #fff;
}

.home-page .card,
.home-page .bg-white {
    border-color: var(--md-border-color, #eee) !important;

    background-color: var(--md-surface-color, #fff);
}


/* =========================================================
   ГЛАВНАЯ — МОБИЛЬНЫЙ
========================================================= */

@media (
    max-width: 767.98px
) {

    .home-page .display-1 {
        font-size: 44px;
    }

    .home-page .display-6 {
        font-size: 32px;
    }

    .home-hero-text {
        font-size: 17px;
    }
}


/* =========================================================
   НЕЖНО-РОЗОВАЯ ТЕМА ЭЛЕМЕНТОВ ФОРМ
========================================================= */

:root {
    --md-pink: #f6d6df;

    --md-pink-hover: #efbdca;

    --md-pink-border: #e8afbf;

    --md-pink-focus:
        rgba(
            239,
            189,
            202,
            0.35
        );
}


/* =========================================================
   ПОЛЯ ВВОДА
========================================================= */

.form-control,
.form-select {
    background-color: var(--md-input-bg, #fff) !important;

    border-color: var(--md-input-border-color, #ced4da) !important;

    color: var(--md-input-text-color, #212529) !important;

    border-radius: var(--md-input-radius, 0) !important;

    min-height: var(--md-input-height, 38px);
}

.form-control:focus,
.form-select:focus,
textarea.form-control:focus {
    background-color: var(--md-input-bg, #fff) !important;

    border-color: var(--md-input-focus-color, #efbdca) !important;

    color: var(--md-input-text-color, #212529) !important;

    box-shadow:
        0 0 0 0.25rem
        color-mix(
            in srgb,
            var(--md-input-focus-color, #efbdca) 35%,
            transparent
        ) !important;

    outline: 0;
}


/* =========================================================
   ЧЕКБОКСЫ
========================================================= */

.form-check-input[type="checkbox"] {
    background-color: var(--md-input-bg, #fff) !important;

    border-color: var(--md-input-border-color, #e8afbf) !important;

    accent-color: var(--md-primary-color, #261d22);
}

.form-check-input[type="checkbox"]:checked {
    background-color: var(--md-primary-color, #261d22) !important;

    border-color: var(--md-primary-color, #261d22) !important;
}

.form-check-input[type="checkbox"]:focus {
    border-color: var(--md-input-focus-color, #efbdca) !important;

    box-shadow:
        0 0 0 0.25rem
        color-mix(
            in srgb,
            var(--md-input-focus-color, #efbdca) 35%,
            transparent
        ) !important;
}


/* =========================================================
   РАДИО
========================================================= */

.form-check-input[type="radio"] {
    background-color: var(--md-input-bg, #fff) !important;

    border-color: var(--md-input-border-color, #e8afbf) !important;

    accent-color: var(--md-primary-color, #261d22);
}

.form-check-input[type="radio"]:checked {
    background-color: var(--md-primary-color, #261d22) !important;

    border-color: var(--md-primary-color, #261d22) !important;
}

.form-check-input[type="radio"]:focus {
    border-color: var(--md-input-focus-color, #efbdca) !important;

    box-shadow:
        0 0 0 0.25rem
        color-mix(
            in srgb,
            var(--md-input-focus-color, #efbdca) 35%,
            transparent
        ) !important;
}


/* =========================================================
   BOOTSTRAP SWITCH
========================================================= */

.form-switch .form-check-input {
    appearance: none !important;

    width: 2em;

    height: 1em;

    margin-top: .25em;

    background-color: var(--md-switch-inactive-bg, #dee2e6) !important;

    border-color: var(--md-switch-inactive-bg, #dee2e6) !important;

    background-image:
        radial-gradient(
            circle at .5em 50%,
            var(--md-switch-thumb-color, #fff) 0 .42em,
            transparent .43em
        ) !important;

    background-repeat: no-repeat !important;

    background-position: center !important;

    transition:
        background-color .15s ease-in-out,
        border-color .15s ease-in-out;
}

.form-switch .form-check-input:checked {
    background-color: var(--md-switch-active-bg, #efbdca) !important;

    border-color: var(--md-switch-active-bg, #efbdca) !important;

    background-image:
        radial-gradient(
            circle at calc(100% - .5em) 50%,
            var(--md-switch-thumb-color, #fff) 0 .42em,
            transparent .43em
        ) !important;
}

.form-switch .form-check-input:focus {
    border-color: var(--md-input-focus-color, #efbdca) !important;

    box-shadow:
        0 0 0 0.25rem
        color-mix(
            in srgb,
            var(--md-input-focus-color, #efbdca) 35%,
            transparent
        ) !important;
}


/* =========================================================
   ФОКУС КНОПОК И ССЫЛОК
========================================================= */

button:focus-visible,
a:focus-visible {
    outline:
        3px solid
        var(--md-secondary-color, var(--md-pink-border));

    outline-offset: 2px;
}


/* =========================================================
   DISABLED
========================================================= */

.form-control:disabled,
.form-control[readonly],
.form-select:disabled,
.form-check-input:disabled {
    opacity: 0.6;
}


/* =========================================================
   FOOTER — ИКОНКА МЕТРО
========================================================= */

.footer-metro-icon {
    width: 20px;

    height: 20px;

    flex: 0 0 16px;

    display: block;

    object-fit: contain;

    filter:
        brightness(0)
        saturate(100%)
        invert(18%)
        sepia(95%)
        saturate(2928%)
        hue-rotate(334deg)
        brightness(92%)
        contrast(97%);
}


/* =========================================================
   MAX — ИКОНКА СОЦСЕТИ
========================================================= */

.md-max-icon {
    display: inline-block;

    width: 18px;

    height: 18px;

    background-image:
        url('/assets/img/Max_logo.svg');

    background-repeat: no-repeat;

    background-position: center;

    background-size: contain;
}


/* =========================================================
   КАРТА КОНТАКТОВ
========================================================= */

.contacts-map {
    width: 100%;

    height: 520px;

    overflow: hidden;
}

.contacts-map iframe {
    display: block;

    width: 100% !important;

    height: 520px !important;

    min-height: 520px !important;

    max-height: 520px !important;

    border: 0 !important;
}

@media (
    max-width: 767.98px
) {

    .contacts-map {
        height: 420px;
    }

    .contacts-map iframe {
        height: 420px !important;

        min-height: 420px !important;

        max-height: 420px !important;
    }
}


/* =========================================================
   СОЦИАЛЬНЫЕ СЕТИ — ФИРМЕННЫЕ ЦВЕТА
========================================================= */

a .fa-vk {
    color: #0077ff;
}

a .fa-telegram-plane {
    color: #229ed9;
}

a .fa-instagram {
    color: #e4405f;
}

a .fa-whatsapp {
    color: #25d366;
}

a .md-max-icon {
    filter: none;
}


/* =========================================================
   ПЛАНШЕТ / ПК
========================================================= */

@media (min-width: 768px) {

    a .fa-vk {
        color: #0077ff;
    }

    a .fa-telegram-plane {
        color: #229ed9;
    }

    a .fa-instagram {
        color: #e4405f;
    }

    a .fa-whatsapp {
        color: #25d366;
    }

}


/* =========================================================
   HOVER
========================================================= */

a:hover .fa-vk {
    color: #0066dd;
}

a:hover .fa-telegram-plane {
    color: #168dcc;
}

a:hover .fa-instagram {
    color: #d92f50;
}

a:hover .fa-whatsapp {
    color: #1eb85a;
}


/* =========================================================
   ЯНДЕКС — РЕЙТИНГ
========================================================= */

.footer-yandex-rating {
    border: 1px solid rgba(255,255,255,.22);

    padding: 14px 16px;

    margin-top: 14px;
}

.footer-yandex-rating-name {
    font-size: 14px;

    font-weight: 700;

    margin-bottom: 8px;
}

.footer-yandex-rating-main {
    display: flex;

    align-items: center;

    gap: 10px;
}

.footer-yandex-rating-stars {
    font-size: 18px;

    letter-spacing: 1px;

    line-height: 1;
}

.footer-yandex-rating-value {
    font-size: 18px;

    font-weight: 700;

    line-height: 1;
}

.footer-yandex-rating-link {
    display: inline-block;

    margin-top: 10px;

    font-size: 12px;

    color: rgba(255,255,255,.75);

    text-decoration: none;
}

.footer-yandex-rating-link:hover {
    color: #fff;
}

/* =========================================================
   САЙТ — ГЛОБАЛЬНЫЙ ДИЗАЙН
   Значения берутся из site_design через layout.php.
========================================================= */

html,
body {
    min-height: 100%;
}

body {
    background-color: var(--md-page-bg, #fff) !important;
    color: var(--md-text-color, #261d22);
}

main {
    min-height: 1px;
    background-color: var(--md-page-bg, #fff);
}

.bg-white {
    background-color: var(--md-surface-color, #fff) !important;
}

.text-dark {
    color: var(--md-text-color, #261d22) !important;
}

.text-body {
    color: var(--md-text-color, #261d22) !important;
}

.text-secondary,
.text-body-secondary {
    color: var(--md-secondary-color, #8c7c83) !important;
}

.border-dark {
    border-color: var(--md-button-color, #261d22) !important;
}

/* Обычные кнопки */
.btn {
    border-radius: var(--md-button-radius, 0) !important;
}

.btn:not(.btn-sm):not(.btn-lg) {
    min-height: var(--md-button-height, 42px);
}

.navbar-toggler {
    border-radius: var(--md-button-radius, 0) !important;
}

.btn-dark {
    background-color: var(--md-button-color, #261d22) !important;
    border-color: var(--md-button-color, #261d22) !important;
    color: var(--md-button-text-color, #fff) !important;
}

.btn-dark:hover,
.btn-dark:focus-visible {
    background-color: var(--md-button-hover-color, #3a2f34) !important;
    border-color: var(--md-button-hover-color, #3a2f34) !important;
    color: var(--md-button-text-color, #fff) !important;
}

.btn-outline-dark {
    background-color: transparent !important;
    border-color: var(--md-button-color, #261d22) !important;
    color: var(--md-button-color, #261d22) !important;
}

.btn-outline-dark:hover,
.btn-outline-dark:focus-visible {
    background-color: var(--md-button-color, #261d22) !important;
    border-color: var(--md-button-color, #261d22) !important;
    color: var(--md-button-text-color, #fff) !important;
}

.btn-light {
    background-color: var(--md-surface-color, #fff) !important;
    border-color: var(--md-input-border-color, #e8afbf) !important;
    color: var(--md-text-color, #261d22) !important;
}

.btn-light:hover,
.btn-light:focus-visible {
    background-color: var(--md-input-bg, #fff) !important;
    border-color: var(--md-button-color, #261d22) !important;
    color: var(--md-text-color, #261d22) !important;
}

/* Bootstrap .rounded-0 не должен ломать глобальный радиус кнопок */
.btn.rounded-0 {
    border-radius: var(--md-button-radius, 0) !important;
}

/* Карточки и поверхности */
.card {
    background-color: var(--md-surface-color, #fff);
    color: var(--md-text-color, #261d22);
}

.card.border,
.card.border-dark {
    border-color: var(--md-input-border-color, #e8afbf) !important;
}

/* Поля групп */
.input-group-text {
    min-height: var(--md-input-height, 38px);

    background-color: var(--md-input-bg, #fff) !important;

    border-color: var(--md-input-border-color, #e8afbf) !important;

    color: var(--md-input-text-color, #212529) !important;

    border-radius: var(--md-input-radius, 0) !important;
}

/* Модальные окна */
.modal-dialog {
    max-width: var(--md-modal-max-width, 720px) !important;
}

.modal-content {
    background-color: var(--md-modal-bg, #fff) !important;

    color: var(--md-text-color, #261d22);

    border-radius: var(--md-modal-radius, 0) !important;

    border-color: var(--md-input-border-color, #e8afbf) !important;
}

.modal-header {
    background-color: var(--md-modal-header-bg, #f8f9fa) !important;

    color: var(--md-text-color, #261d22);

    border-bottom-color: var(--md-input-border-color, #e8afbf) !important;
}

.modal-body,
.modal-footer {
    background-color: var(--md-modal-bg, #fff) !important;

    color: var(--md-text-color, #261d22);
}

.modal-footer {
    border-top-color: var(--md-input-border-color, #e8afbf) !important;
}

.modal-content.rounded-0,
.modal-header.rounded-0 {
    border-radius: var(--md-modal-radius, 0) !important;
}

.modal-backdrop.show {
    background-color: var(--md-modal-overlay, rgba(0,0,0,.45)) !important;

    opacity: 1 !important;
}

.modal .btn-close {
    width: 1.5rem;
    height: 1.5rem;
    padding: .25rem;

    background-image: none !important;

    background-color: transparent !important;

    border: 0 !important;

    border-radius: 0 !important;

    color: var(--md-modal-close-color, #6c757d) !important;

    opacity: 1 !important;

    display: inline-flex;

    align-items: center;

    justify-content: center;
}

.modal .btn-close::before {
    content: "×";

    display: block;

    font-size: 1.8rem;

    line-height: 1;

    color: var(--md-modal-close-color, #6c757d);
}

.modal .btn-close:focus-visible {
    box-shadow:
        0 0 0 0.25rem
        color-mix(
            in srgb,
            var(--md-input-focus-color, #efbdca) 35%,
            transparent
        ) !important;

    outline: 0;
}

/* Унифицированный фокус */
button:focus-visible,
a:focus-visible {
    outline:
        3px solid
        var(--md-input-focus-color, #efbdca);

    outline-offset: 2px;
}

.form-range {
    accent-color: var(--md-button-color, #261d22);
}

/* Bootstrap utility .rounded-0 оставляем как есть для обычных блоков,
   но кнопки и модалки используют свои глобальные радиусы выше. */



/* =========================================================
   САЙТ — BOOKING / ФОРМА ЗАПИСИ
   Компактная современная компоновка без «продающих» окон
========================================================= */

.md-booking-page {
    --md-booking-border: var(--md-input-border-color, #e8dde1);
    --md-booking-soft: color-mix(in srgb, var(--md-primary-color, #261d22) 5%, var(--md-surface-color, #fff));
}

.md-booking-page > [class*="col-"] > .card {
    border-color: var(--md-booking-border) !important;
    border-radius: var(--md-block-radius, 0px) !important;
    box-shadow: 0 10px 30px rgba(38, 29, 34, .05) !important;
}

.md-booking-page .card-body {
    padding: clamp(22px, 4vw, 36px) !important;
}

.md-booking-page h1.h2 {
    font-size: clamp(24px, 3vw, 32px);
    line-height: 1.15;
    letter-spacing: -.02em;
}

/* Карточка выбранного времени */
.md-booking-page .bg-light.border,
.md-booking-page .border.p-3,
.md-booking-page .border.p-4 {
    background: var(--md-booking-soft) !important;
    border-color: var(--md-booking-border) !important;
    border-radius: var(--md-block-radius, 0px) !important;
}

.md-booking-page .border.p-3 {
    padding: 14px 16px !important;
}

.md-booking-page .border.p-4 {
    padding: 18px 20px !important;
}

.md-booking-page hr {
    border-color: var(--md-booking-border);
    opacity: 1;
}

/* Авторизованный пользователь — компактно, без огромного рекламного окна */
.md-booking-account-summary,
.md-booking-guest-note {
    position: relative;
    padding: 14px 16px;
    border: 1px solid var(--md-booking-border);
    border-radius: var(--md-block-radius, 0px);
    background: var(--md-booking-soft);
}

.md-booking-account-summary .fw-bold,
.md-booking-guest-note .fw-bold {
    font-size: 14px;
}

.md-booking-account-summary > div:not(.fw-bold) {
    display: inline-block;
    margin: 0 14px 0 0 !important;
    font-size: 13px;
}

.md-booking-account-summary strong {
    font-weight: 650;
}

/* Процедуры и дополнительные услуги */
.md-booking-page .form-check {
    min-height: 24px;
}

.md-booking-page .form-check + .form-check {
    margin-top: 7px;
}

.md-booking-page .form-check-label {
    cursor: pointer;
}

.md-booking-page .form-check-input {
    margin-top: .35em;
}

.md-booking-page .mb-3 > .form-check-label,
.md-booking-page .form-check-label.fw-semibold {
    font-size: 14px;
}

/* Поля формы — компактнее */
.md-booking-page .form-control,
.md-booking-page .form-select {
    min-height: var(--md-input-height, 42px);
}

.md-booking-page textarea.form-control {
    min-height: 100px;
}

.md-booking-page .form-control-lg {
    min-height: 44px;
    padding-top: .55rem;
    padding-bottom: .55rem;
    font-size: 1rem;
}

/* Мессенджеры после успешной записи */
.md-booking-messenger {
    padding-top: 18px;
    border-top: 1px solid var(--md-booking-border);
}

.md-booking-messenger .badge {
    font-size: 11px;
    font-weight: 600;
    padding: 6px 9px;
    border-radius: var(--md-button-radius, 0px);
}

.md-booking-messenger .row > div > .border {
    padding: 14px !important;
    border-color: var(--md-booking-border) !important;
    border-radius: var(--md-block-radius, 0px) !important;
    background: var(--md-booking-soft);
}

.md-booking-messenger .btn {
    min-height: var(--md-button-height, 40px);
}

/* Кнопки */
.md-booking-page .btn {
    border-radius: var(--md-button-radius, 0px) !important;
    min-height: var(--md-button-height, 42px);
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.md-booking-page .btn-dark {
    background: var(--md-button-color, #261d22);
    border-color: var(--md-button-color, #261d22);
    color: var(--md-button-text-color, #fff);
}

.md-booking-page .btn-outline-dark {
    color: var(--md-button-color, #261d22);
    border-color: var(--md-input-border-color, #e8dde1);
}

/* Успешная запись */
.md-booking-page .bg-success-subtle {
    width: 50px !important;
    height: 50px !important;
    border-radius: 50%;
    font-size: 24px;
}

@media (max-width: 767.98px) {
    .md-booking-page > [class*="col-"] > .card {
        border-left-width: 0 !important;
        border-right-width: 0 !important;
    }

    .md-booking-page .card-body {
        padding: 20px 16px !important;
    }

    .md-booking-account-summary > div:not(.fw-bold) {
        display: block;
        margin: 5px 0 0 !important;
    }

    .md-booking-page .d-flex.flex-wrap.gap-2 > .btn {
        flex: 1 1 auto;
    }
}
/* =========================================================
   BOOKING — МЕССЕНДЖЕРЫ
========================================================= */

.md-book-messengers .row {
    align-items: stretch;
}

.md-book-messengers .md-messenger-card {
    min-height: 172px;
    border-radius: var(--md-block-radius, 0);
}

.md-book-messengers .md-messenger-card .fa-telegram-plane {
    color: #229ed9;
    font-size: 18px;
}

.md-book-messengers .md-max-icon {
    flex: 0 0 18px;
}

.md-book-messengers .btn-sm {
    white-space: nowrap;
}

@media (max-width: 767.98px) {
    .md-book-messengers .md-messenger-card {
        min-height: 0;
    }
}


/* =========================================================
   САЙТ — ГЛАВНАЯ: УПРАВЛЯЕМЫЕ БЛОКИ
========================================================= */

.home-page {
    color: var(--md-text-color, #261d22);
    background: var(--md-page-bg, #ffffff);
}

.home-page .text-secondary {
    color: var(--md-secondary-color, #8c7c83) !important;
}

.home-section {
    padding: 1.15rem 0;
}

.home-hero-section {
    padding-top: 2.4rem;
    padding-bottom: 1.35rem;
}

.home-section-last {
    padding-bottom: 2.5rem;
}

.home-panel-pad {
    padding: clamp(1.35rem, 2.8vw, 2.5rem);
}

.home-eyebrow {
    color: var(--md-secondary-color, #8c7c83);
    font-size: .78rem;
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: .11em;
    text-transform: uppercase;
}

.home-hero-copy {
    max-width: 760px;
}

.home-hero-title {
    margin: .7rem 0 .55rem;
    font-size: clamp(3.45rem, 7vw, 6.6rem);
    font-weight: 800;
    line-height: .86;
    letter-spacing: -.055em;
}

.home-hero-quote {
    margin-bottom: 1.2rem;
    color: var(--md-secondary-color, #8c7c83);
    font-size: .875rem;
}

.home-hero-text {
    max-width: 660px;
    font-size: clamp(1rem, 1.5vw, 1.18rem);
    line-height: 1.65;
}

.home-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .7rem;
    margin-top: 1.65rem;
}

.home-section-title {
    font-size: clamp(1.75rem, 3vw, 2.45rem);
    font-weight: 750;
    line-height: 1.08;
    letter-spacing: -.025em;
}

.home-panel,
.home-news-card,
.home-feature-card,
.home-promo-frame,
.home-masters-box,
.home-account-panel {
    border: 1px solid var(--md-border-color, #e8afbf);
    border-radius: var(--md-block-radius, 0);
    overflow: hidden;
}

.home-panel,
.home-news-card,
.home-feature-card,
.home-promo-frame,
.home-masters-box {
    background: var(--md-surface-color, #ffffff);
}

.home-panel,
.home-masters-box,
.home-account-panel,
.home-feature-card,
.home-news-card {
    box-shadow: 0 14px 45px rgba(38, 29, 34, .045);
}

.home-news-card {
    transition: transform .18s ease, box-shadow .18s ease;
}

.home-news-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 18px 48px rgba(38, 29, 34, .075);
}

.home-feature-card {
    transition: none;
}

.home-feature-icon {
    font-size: 1.7rem;
    line-height: 1;
    margin-bottom: .9rem;
}

.home-news-footer {
    display: flex;
    justify-content: flex-end;
    margin-top: 1rem;
    padding-top: .85rem;
    border-top: 1px solid color-mix(
        in srgb,
        var(--md-border-color, #e8afbf) 72%,
        transparent
    );
}

.home-news-archive-link {
    color: var(--md-secondary-color, #8c7c83);
    font-size: .875rem;
    text-decoration: none;
    transition: color .15s ease;
}

.home-news-archive-link:hover,
.home-news-archive-link:focus {
    color: var(--md-text-color, #261d22);
    text-decoration: underline;
}

.home-step {
    display: flex;
    align-items: flex-start;
    gap: .9rem;
}

.home-step-number {
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--md-primary-color, #261d22);
    color: var(--md-button-text-color, #ffffff);
    font-weight: 700;
    box-shadow: 0 8px 22px color-mix(
        in srgb,
        var(--md-primary-color, #261d22) 14%,
        transparent
    );
}

.home-feature-icon {
    display: flex;
    width: 48px;
    height: 48px;
    align-items: center;
    justify-content: center;
    margin-bottom: 1rem;
    border: 1px solid var(--md-border-color, #e8afbf);
    border-radius: 50%;
    background: color-mix(
        in srgb,
        var(--md-primary-color, #261d22) 5%,
        var(--md-surface-color, #fff)
    );
    font-size: 1.35rem;
}

.home-account-panel {
    position: relative;
    isolation: isolate;
    background: var(--md-primary-color, #261d22);
    color: var(--md-button-text-color, #ffffff);
}

.home-account-panel::after {
    content: '';
    position: absolute;
    z-index: -1;
    width: 220px;
    height: 220px;
    top: -125px;
    right: -45px;
    border-radius: 50%;
    background: color-mix(
        in srgb,
        var(--md-button-text-color, #fff) 9%,
        transparent
    );
}

.home-account-muted {
    color: color-mix(
        in srgb,
        var(--md-button-text-color, #ffffff) 70%,
        transparent
    );
}

.home-account-button {
    min-height: var(--md-button-height, 42px);
    border-radius: var(--md-button-radius, 0);
    border: 1px solid var(--md-button-text-color, #ffffff);
    background: var(--md-button-text-color, #ffffff);
    color: var(--md-primary-color, #261d22);
}

.home-account-button:hover,
.home-account-button:focus {
    border-color: var(--md-button-text-color, #ffffff);
    background: transparent;
    color: var(--md-button-text-color, #ffffff);
}

.home-page .btn-dark,
.home-page .btn-outline-dark {
    min-height: var(--md-button-height, 42px);
    border-radius: var(--md-button-radius, 0);
}

.home-page .btn-dark {
    background: var(--md-button-color, var(--md-primary-color, #261d22));
    border-color: var(--md-button-color, var(--md-primary-color, #261d22));
    color: var(--md-button-text-color, #fff);
}

.home-page .btn-dark:hover,
.home-page .btn-dark:focus {
    background: var(--md-button-hover-color, #3a2f34);
    border-color: var(--md-button-hover-color, #3a2f34);
    color: var(--md-button-text-color, #fff);
}

.home-page .btn-outline-dark {
    color: var(--md-text-color, #261d22);
    border-color: var(--md-border-color, #e8afbf);
    background: transparent;
}

.home-page .btn-outline-dark:hover,
.home-page .btn-outline-dark:focus {
    color: var(--md-button-text-color, #fff);
    border-color: var(--md-button-color, var(--md-primary-color, #261d22));
    background: var(--md-button-color, var(--md-primary-color, #261d22));
}

.home-price-panel {
    background: color-mix(
        in srgb,
        var(--md-primary-color, #261d22) 3.5%,
        var(--md-surface-color, #fff)
    );
}


/* =========================================================
   ГЛАВНАЯ — БАННЕР / МАСТЕРА
========================================================= */

.home-promo-frame {
    width: 100%;
    padding: 0;
}

.home-masters-box {
    padding: .75rem;
}

.home-masters-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    padding: .35rem .35rem .8rem;
}

.home-masters-title {
    margin: 0;
    font-size: clamp(1.35rem, 2.1vw, 1.8rem);
    font-weight: 800;
    line-height: 1;
    letter-spacing: -.025em;
}

.home-masters-count {
    padding-bottom: .1rem;
    color: var(--md-secondary-color, #8c7c83);
    font-size: .78rem;
    white-space: nowrap;
}

.home-banner-card,
.home-master-card,
.home-masters-carousel,
.home-masters-carousel .carousel-inner,
.home-masters-carousel .carousel-item {
    width: 100%;
    aspect-ratio: 1 / 1;
}

.home-banner-card,
.home-master-card,
.home-masters-carousel {
    border-radius: max(0px, calc(var(--md-block-radius, 0px) - 7px));
}

.home-banner-card,
.home-master-card {
    position: relative;
    overflow: hidden;
    background: var(--md-surface-color, #ffffff);
}

.home-banner-image,
.home-master-photo {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.home-master-photo {
    transition: transform 7s ease;
}

.carousel-item.active .home-master-photo {
    transform: scale(1.035);
}

.home-master-overlay {
    position: absolute;
    left: .7rem;
    right: .7rem;
    bottom: .7rem;
    padding: 15px 17px;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: max(0px, calc(var(--md-block-radius, 0px) - 10px));
    background: rgba(24, 19, 22, .58);
    color: #ffffff;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}

.home-master-name {
    margin-bottom: 4px;
    font-size: 1.08rem;
    font-weight: 800;
    line-height: 1.2;
}

.home-master-description {
    display: -webkit-box;
    overflow: hidden;
    font-size: .89rem;
    line-height: 1.4;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 4;
}

.home-masters-control {
    width: 12%;
    opacity: .68;
}

.home-masters-control:hover,
.home-masters-control:focus {
    opacity: 1;
}

@media (max-width: 991.98px) {
    .home-hero-section {
        padding-top: 1.8rem;
    }

    .home-hero-title {
        font-size: clamp(3.2rem, 12vw, 5.2rem);
    }
}

@media (max-width: 767.98px) {
    .home-section {
        padding: .7rem 0;
    }

    .home-hero-section {
        padding-top: 1.25rem;
        padding-bottom: .85rem;
    }

    .home-section-last {
        padding-bottom: 1.5rem;
    }

    .home-panel-pad {
        padding: 1.25rem;
    }

    .home-hero-title {
        margin-top: .55rem;
        font-size: clamp(3rem, 16vw, 4.4rem);
    }

    .home-hero-actions {
        margin-top: 1.2rem;
    }

    .home-hero-actions .btn {
        flex: 1 1 160px;
    }

    .home-masters-heading {
        padding: .25rem .25rem .7rem;
    }

    .home-master-overlay {
        left: .55rem;
        right: .55rem;
        bottom: .55rem;
        padding: 13px 14px;
    }

    .home-master-description {
        font-size: .84rem;
        -webkit-line-clamp: 3;
    }

    .home-step {
        gap: .75rem;
    }

    .home-step-number {
        width: 38px;
        height: 38px;
        flex-basis: 38px;
    }
}


/* =========================================================
   ЕДИНЫЕ СТИЛИ ВНУТРЕННИХ СТРАНИЦ
   Все ключевые цвета, радиусы и размеры берутся из site_design.
========================================================= */
.md-page-shell {
    padding-top: clamp(24px, 4vw, 48px);
    padding-bottom: clamp(32px, 5vw, 64px);
}

.md-page-header {
    margin-bottom: clamp(22px, 3vw, 36px);
}

.md-content-card,
.md-auth-card {
    background: var(--md-surface-color, #fff);
    color: var(--md-text-color, #261d22);
    border: 1px solid var(--md-border-color, #e8afbf);
    border-radius: var(--md-block-radius, 0) !important;
    box-shadow: 0 12px 32px color-mix(in srgb, var(--md-text-color, #261d22) 7%, transparent);
}

.md-auth-card {
    overflow: hidden;
}

.md-auth-logo {
    max-width: 260px;
    width: 100%;
    height: auto;
}

.md-avatar { width: 58px; height: 58px; object-fit: cover; }
.md-avatar-lg { width: 64px; height: 64px; }

.legal-policy-content { line-height: 1.72; }
.legal-policy-content h1 { font-size: clamp(1.75rem, 4vw, 2.45rem); font-weight: 800; letter-spacing: -.025em; margin-bottom: 1.3rem; }
.legal-policy-content h2 { font-size: 1.2rem; font-weight: 800; margin-top: 2rem; margin-bottom: .8rem; }
.legal-policy-content li { margin-bottom: .45rem; }
.legal-policy-content a { color: var(--md-primary-color, #261d22); text-decoration: underline; text-underline-offset: 3px; }

.md-contact-panel {
    background: var(--md-primary-color, #261d22);
    color: var(--md-button-text-color, #fff);
    border-radius: var(--md-block-radius, 0);
}
.md-contact-panel a { color: inherit; }
.md-contact-icon { width: 18px; height: 18px; object-fit: contain; }

.md-price-card { overflow: hidden; }
.md-price-body { position: relative; overflow: hidden; }
.md-price-botanical {
    position: absolute; left: 0; top: 0; width: 95px; height: 100%;
    pointer-events: none; z-index: 0; opacity: .30; color: var(--md-secondary-color, #8c7c83);
}
.md-price-content { position: relative; z-index: 1; }
.md-price-logo { max-width: 220px; width: 100%; height: auto; }
.md-price-value { min-width: 95px; text-align: right; }

.md-footer-reviews-frame {
    width: 100%; height: 120px; display: block; box-sizing: border-box;
    border: 1px solid var(--md-border-color, #e8afbf);
    border-radius: var(--md-block-radius, 0);
}
.md-footer-socials { gap: 4px; padding-top: 4px; }
.md-footer-social-link { width: 44px; height: 44px; flex: 0 0 44px; }
.md-footer-social-link i { font-size: 22px; line-height: 1; }

/* Личный кабинет */
.md-account-page{max-width:980px;margin:0 auto}.md-account-header{margin-bottom:24px}.md-account-title{font-size:clamp(30px,4vw,42px);font-weight:800;letter-spacing:-.04em;margin:0}.md-account-subtitle{color:var(--md-secondary-color,#8c7c83);margin-top:6px}
.md-account-card{background:var(--md-surface-color,#fff);border:1px solid var(--md-border-color,#e8dde1);border-radius:var(--md-block-radius,0);padding:22px;margin-bottom:18px}.md-account-profile-top{display:flex;align-items:center;justify-content:space-between;gap:16px}.md-account-name{font-size:22px;font-weight:800;margin:0}.md-account-edit{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--md-border-color,#e8dde1);border-radius:50%;color:var(--md-text-color,#261d22);transition:.2s}.md-account-edit:hover{background:var(--md-primary-color,#261d22);color:#fff}
.md-account-info{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:20px}.md-account-info-item{padding:14px 15px;background:var(--md-page-bg,#fff9fb);border-radius:var(--md-block-radius,0);min-width:0}.md-account-info-label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--md-secondary-color,#8c7c83);margin-bottom:5px}.md-account-info-value{font-size:14px;font-weight:700;overflow-wrap:anywhere}
.md-notify-panel{margin-top:18px;padding-top:18px;border-top:1px solid var(--md-border-color,#e8dde1)}.md-notify-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:12px}.md-notify-title{font-size:16px;font-weight:800;margin:0}.md-notify-subtitle{font-size:12px;line-height:1.45;color:var(--md-secondary-color,#8c7c83);margin-top:3px}.md-notify-channels{display:grid;gap:9px}.md-notify-channel{border:1px solid var(--md-border-color,#e8dde1);background:var(--md-surface-color,#fff);border-radius:var(--md-block-radius,0);overflow:hidden}.md-notify-channel-main{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px}.md-notify-brand{display:flex;align-items:center;gap:10px;min-width:0}.md-notify-icon{width:32px;height:32px;display:flex;align-items:center;justify-content:center;flex:0 0 32px;border-radius:50%;background:var(--md-page-bg,#fff9fb);font-size:17px}.md-notify-brand strong{display:block;font-size:14px;line-height:1.15}.md-notify-brand span{display:block;font-size:11px;line-height:1.3;color:var(--md-secondary-color,#8c7c83);margin-top:2px}.md-notify-options{display:flex;align-items:center;gap:18px;padding:8px 12px 9px 54px;border-top:1px solid var(--md-border-color,#e8dde1);background:var(--md-page-bg,#fff9fb)}.md-notify-option{display:inline-flex;align-items:center;gap:7px;margin:0;min-height:22px}.md-notify-option .form-check-input{float:none;margin:0}.md-notify-option .form-check-label{font-size:12px;font-weight:700;line-height:1.2}.md-notify-option small{font-size:10px;font-weight:400;color:var(--md-secondary-color,#8c7c83)}.md-notify-save{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px}.md-notify-note{font-size:11px;line-height:1.4;color:var(--md-secondary-color,#8c7c83);max-width:610px}.md-messenger-connect{width:auto!important;min-height:32px!important;height:32px!important;padding:0 11px!important;font-size:11px!important;white-space:nowrap;display:inline-flex!important;align-items:center!important;justify-content:center!important;line-height:1!important}.md-notify-save .btn{min-height:34px!important;height:34px!important;padding:0 14px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;font-size:12px!important;line-height:1!important}
.md-account-section{margin-top:30px}.md-account-section-title{font-size:20px;font-weight:800;margin:0 0 12px}.md-booking-card{background:var(--md-surface-color,#fff);border:1px solid var(--md-border-color,#e8dde1);border-radius:var(--md-block-radius,0);padding:18px;margin-bottom:10px}.md-booking-card-past{opacity:.72;background:var(--md-page-bg,#fff9fb)}.md-booking-date{font-size:20px;font-weight:800;letter-spacing:-.02em}.md-booking-actions{display:flex;gap:8px}.md-booking-actions .btn{min-width:110px;height:36px!important;width:auto!important;font-size:13px;display:inline-flex!important;align-items:center!important;justify-content:center!important;line-height:1!important;padding-top:0!important;padding-bottom:0!important}
@media(max-width:767.98px){.md-account-card{padding:16px;border-radius:var(--md-block-radius,0)}.md-account-profile-top{align-items:flex-start}.md-account-info{grid-template-columns:1fr;gap:8px}.md-notify-head{display:block}.md-notify-head .badge{display:inline-block;margin-top:7px}.md-notify-channel-main{padding:9px 10px}.md-notify-options{padding:8px 10px;gap:14px;flex-wrap:wrap}.md-notify-save{align-items:flex-start;flex-direction:column}.md-messenger-connect{font-size:10px!important;padding:0 9px!important}.md-booking-card{padding:15px;border-radius:var(--md-block-radius,0)}}

@media (max-width: 767.98px) {
    .md-page-shell { padding-top: 22px; padding-bottom: 36px; }
    .md-content-card, .md-auth-card { box-shadow: 0 8px 24px color-mix(in srgb, var(--md-text-color, #261d22) 6%, transparent); }
}

.md-price-botanical-right { right: 0; left: auto; transform: scaleX(-1); }
.md-price-content-padded { padding-left: 72px; padding-right: 72px; }
.md-price-main-logo { display:block; width:260px; max-width:75%; height:auto; margin:0 auto; }
.md-price-dots { border-bottom-style:dotted !important; min-width:20px; }
@media (max-width: 767.98px) { .md-price-content-padded { padding-left: 18px; padding-right: 18px; } .md-price-botanical { opacity:.18; width:70px; } }

.md-site-footer { background: var(--md-primary-color, #261d22); color: var(--md-button-text-color, #fff); }
.md-site-footer .text-white, .md-site-footer a { color: var(--md-button-text-color, #fff) !important; }
.md-site-footer .text-white-50 { color: color-mix(in srgb, var(--md-button-text-color, #fff) 62%, transparent) !important; }
.md-auth-brand-text, .md-price-brand-text { display:inline-block; color:var(--md-text-color,#261d22); font-weight:800; letter-spacing:-.03em; }
.md-auth-brand-text { font-size:clamp(1.6rem,4vw,2.35rem); }
.md-price-brand-text { font-size:clamp(1.7rem,4vw,2.5rem); }
