/* Токены палитры (2026-08-02): 125 цветов накопились волнами правок,
   близкие оттенки сведены к ролям. Новые блоки берут только переменные. */
:root{
  --r-s: 14px;
  --r-m: 20px;
  --r-l: 24px;

  --bb-sky: #79B5D1;
  --bb-teal: #4E8FAA;
  --bb-teal-deep: #395A6A;
  --bb-navy: #1E4D6B;
  --bb-ink: #1F2A33;
  --bb-muted: #5A6470;
  --bb-muted-2: #7B8794;
  --bb-line: #DAF2FD;
  --bb-line-2: #C2E4F2;
  --bb-bg: #F4F9FB;
  --bb-bg-warm: #F0F0F0;
  --bb-white: #FFFFFF;
}
/* Собран из main.tpl.html (52 блоков). Порядок сохранён: поздние правила перебивают ранние. */
:root {
            /* Строгая палитра по ТЗ */
            --blue-main: var(--bb-sky);
            --blue-dark: var(--bb-teal-deep);
            --blue-light: var(--bb-line);
            --bg-very-light: var(--bb-bg);
            --white: var(--bb-white);
            --text-main: #111111;
            --text-sec: #555555;

            /* Стилистические константы */
            --transition: 0.4s cubic-bezier(0.25, 1, 0.5, 1);
            --shadow-sm: 0 4px 12px rgba(57, 90, 106, 0.05);
            --shadow-md: 0 15px 40px rgba(121, 181, 209, 0.12);
            --shadow-lg: 0 20px 50px rgba(57, 90, 106, 0.15);
            --radius-lg: 32px;
            --radius-md: 24px;
            --container-w: 1240px;
        }

        /* Общие сбросы */
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
            -webkit-tap-highlight-color: transparent;
        }

        html {
            scroll-behavior: smooth;
            scroll-padding-top: 80px;
        }

        body {
            font-family: 'Manrope', sans-serif;
            background-color: var(--white);
            color: var(--text-main);
            line-height: 1.6;
            overflow-x: hidden;
            -webkit-font-smoothing: antialiased;
        }

        img {
            max-width: 100%;
            display: block;
            object-fit: cover;
        }

        a {
            text-decoration: none;
            color: inherit;
            transition: var(--transition);
        }

        ul {
            list-style: none;
        }

        .container {
            width: 100%;
            max-width: var(--container-w);
            margin: 0 auto;
            padding: 0 24px;
        }

        /* Типографика Body Bliss */
        h1,
        h2,
        h3,
        h4,
        .serif {
            font-family: 'Playfair Display', serif;
            font-weight: 500;
            letter-spacing: -0.01em;
        }

        h1 i,
        h2 i,
        h3 i {
            font-style: italic;
            color: var(--blue-main);
        }

        h2 {
            font-size: clamp(2rem, 4vw, 3.2rem);
            line-height: 1.1;
            text-align: center;
            margin-bottom: 40px;
        }

        h3 {
            font-size: clamp(1.4rem, 2vw, 1.8rem);
            line-height: 1.3;
        }

        .section-tag {
            font-size: 0.75rem;
            text-transform: uppercase;
            letter-spacing: 0.15em;
            color: var(--blue-main);
            font-weight: 700;
            text-align: center;
            margin-bottom: 16px;
            font-family: 'Manrope', sans-serif;
        }

        /* Кнопки */
        .btn {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            padding: 18px 36px;
            border-radius: 999px;
            font-weight: 700;
            font-size: 0.85rem;
            text-transform: uppercase;
            letter-spacing: 0.05em;
            cursor: pointer;
            transition: var(--transition);
            border: 1px solid transparent;
            text-align: center;
            white-space: nowrap;
            font-family: 'Manrope', sans-serif !important;
        }

        .btn:hover {
            transform: translateY(-3px);
            box-shadow: var(--shadow-md);
        }

        .btn:active {
            transform: translateY(-1px);
        }

        .btn-primary {
            background-color: var(--blue-dark);
            color: var(--white);
            box-shadow: 0 8px 24px rgba(57, 90, 106, 0.2);
            border: 1px solid rgba(255, 255, 255, 0.1);
        }

        .btn-primary:hover {
            background-color: var(--blue-main);
            color: var(--white);
        }

        .btn-outline {
            background-color: transparent;
            color: var(--text-main);
            border-color: var(--text-main);
        }

        .btn-outline:hover {
            background-color: var(--text-main);
            color: var(--white);
        }

        /* Анимация появления */
        .fade-up {
            opacity: 0;
            transform: translateY(40px);
            transition: 0.8s cubic-bezier(0.2, 0.8, 0.2, 1);
        }

        .fade-up.visible {
            opacity: 1;
            transform: translateY(0);
        }

        /* ================= HEADER ================= */
        header {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            padding: 24px 0;
            background-color: transparent;
            /* Прозрачный фон изначально */
            color: var(--white);
            /* Белый текст изначально */
            z-index: 1000;
            transition: var(--transition);
            border-bottom: 1px solid rgba(255, 255, 255, 0.1);
        }

        header.scrolled {
            padding: 12px 0;
            background-color: rgba(255, 255, 255, 0.98);
            backdrop-filter: blur(12px);
            border-bottom: 1px solid var(--bb-bg-warm);
            box-shadow: var(--shadow-sm);
            color: var(--text-main);
            /* Темный текст при скролле */
        }

        .header-inner {
            display: flex;
            justify-content: space-between;
            align-items: center;
        }

        .logo {
            font-family: 'Playfair Display', serif;
            font-size: 1.6rem;
            font-weight: 400;
            letter-spacing: 0.02em;
            display: flex;
            gap: 6px;
            color: inherit;
        }

        .logo i {
            font-style: italic;
            color: var(--white);
            transition: var(--transition);
        }

        header.scrolled .logo i {
            color: var(--blue-main);
        }

        .nav-menu {
            display: none;
        }

        .header-actions {
            display: none;
        }

        @media (min-width: 1024px) {
            .nav-menu {
                display: flex;
                gap: 28px;
                font-weight: 500;
                font-size: 0.75rem;
                text-transform: uppercase;
                letter-spacing: 0.1em;
            }

            .nav-menu a {
                color: inherit;
                transition: var(--transition);
            }

            header.scrolled .nav-menu a:hover {
                color: var(--blue-main);
            }

            .header-actions {
                display: flex;
                align-items: center;
                gap: 20px;
            }

            .header-socials {
                display: flex;
                gap: 8px;
            }

            .header-socials a {
                width: 34px;
                height: 34px;
                border-radius: 50%;
                background: rgba(255, 255, 255, 0.1);
                display: flex;
                align-items: center;
                justify-content: center;
                color: var(--white);
                transition: 0.3s;
            }

            header.scrolled .header-socials a {
                background: var(--bg-very-light);
                color: var(--blue-dark);
            }

            .header-socials a:hover {
                background: var(--blue-main);
                color: var(--white);
            }

            header.scrolled .header-socials a:hover {
                background: var(--blue-main);
                color: var(--white);
            }

            .header-socials svg {
                width: 16px;
                height: 16px;
            }

            .header-phone {
                color: inherit;
            }

            .btn-header {
                border: 1px solid rgba(255, 255, 255, 0.8);
                padding: 12px 24px;
                border-radius: 999px;
                font-size: 0.75rem;
                font-weight: 800;
                text-transform: uppercase;
                letter-spacing: 0.05em;
                color: var(--white);
                background: rgba(255, 255, 255, 0.08);
                cursor: pointer;
                transition: 0.3s;
                font-family: 'Manrope', sans-serif;
            }

            .btn-header:hover {
                background: var(--white);
                color: var(--text-main);
                border-color: var(--white);
            }

            header.scrolled .btn-header {
                border-color: var(--blue-dark);
                color: var(--white);
                background: var(--blue-dark);
                font-weight: 800;
            }

            header.scrolled .btn-header:hover {
                background: var(--blue-main);
                border-color: var(--blue-main);
            }
        }

        .burger {
            width: 32px;
            height: 20px;
            display: flex;
            flex-direction: column;
            justify-content: space-between;
            cursor: pointer;
            position: relative;
            z-index: 1001;
        }

        .burger span {
            display: block;
            width: 100%;
            height: 2px;
            background-color: var(--white);
            transition: 0.3s;
        }

        header.scrolled .burger span {
            background-color: var(--text-main);
        }

        @media (min-width: 1024px) {
            .burger {
                display: none;
            }
        }

        /* Mobile Menu */
        .mobile-menu {
            position: fixed;
            top: 0;
            right: -100%;
            width: 100%;
            height: 100vh;
            background: var(--white);
            padding: 100px 40px;
            transition: 0.5s cubic-bezier(0.7, 0, 0.3, 1);
            z-index: 999;
            display: flex;
            flex-direction: column;
            gap: 24px;
        }

        .mobile-menu.active {
            right: 0;
        }

        .mobile-menu a {
            color: var(--text-main);
            font-size: 1.2rem;
            font-weight: 600;
            text-transform: uppercase;
            letter-spacing: 0.05em;
            border-bottom: 1px solid var(--bb-bg-warm);
            padding-bottom: 12px;
        }

        /* ================= HERO ================= */
        .hero {
            position: relative;
            min-height: 100vh;
            display: flex;
            align-items: center;
            background-color: var(--blue-dark);
            overflow: hidden;
            padding-top: 100px;
            padding-bottom: 60px;
        }

        .hero-bg {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            z-index: 1;
            /* Важно: cover гарантирует что фото растянется на 100% ширины и высоты */
            background-size: cover !important;
            background-position: center !important;
            background-repeat: no-repeat !important;
        }

        .hero::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            /* Виньетка + более сильный градиент для читабельности */
            background:
                radial-gradient(ellipse 75% 95% at 50% 50%,
                    rgba(17, 17, 17, 0) 30%,
                    rgba(17, 17, 17, 0.65) 80%,
                    rgba(17, 17, 17, 0.9) 100%),
                linear-gradient(90deg,
                    rgba(17, 17, 17, 0.75) 0%,
                    rgba(17, 17, 17, 0.3) 100%);
            z-index: 2;
        }

        .hero-content {
            position: relative;
            z-index: 10;
            width: 100%;
            max-width: 1200px;
            margin: 0 auto;
            padding: 0 clamp(20px, 4vw, 52px);
        }
        @media (max-width: 768px) {
            .hero-content { padding: 0 16px; }
            .hero h1 {
                font-size: clamp(2.2rem, 8.2vw, 3.3rem);
                line-height: 1.06;
            }
            .hero-subtitle {
                font-size: clamp(1.35rem, 5.2vw, 2rem);
                margin-bottom: 28px;
            }
        }

        .hero-layout {
            display: flex;
            align-items: center;
            justify-content: space-between;
        }

        .hero-text-col {
            max-width: 650px;
        }

        .rh-track::-webkit-scrollbar { display: none; }
        .rh-track { scrollbar-width: none; -ms-overflow-style: none; }

        .hero-tagline {
            display: flex;
            align-items: center;
            gap: 16px;
            margin-bottom: 24px;
            font-size: 0.75rem;
            font-weight: 700;
            letter-spacing: 0.15em;
            text-transform: uppercase;
            color: rgba(255, 255, 255, 0.9);
        }

        .hero-tagline::before {
            content: '';
            display: block;
            width: 40px;
            height: 1px;
            background: rgba(255, 255, 255, 0.9);
        }

        .hero h1 {
            font-size: clamp(3rem, 5.5vw, 4.5rem);
            line-height: 1.1;
            margin-bottom: 12px;
            color: var(--white);
            font-family: 'Playfair Display', serif;
            font-weight: 600;
        }

        .hero h1 i {
            font-family: 'Playfair Display', serif;
            font-weight: 400;
            font-style: italic;
            color: var(--white);
            opacity: 1;
        }

        .hero-subtitle {
            font-family: 'Playfair Display', serif;
            font-size: clamp(1.8rem, 3vw, 2.5rem);
            font-style: italic;
            font-weight: 400;
            color: var(--white);
            margin-bottom: 40px;
            line-height: 1.2;
            opacity: 0.95;
        }

        .hero-cta-wrapper {
            display: flex;
            flex-direction: column;
            gap: 20px;
            margin-bottom: 48px;
            align-items: flex-start;
        }

        @media (min-width: 768px) {
            .hero-cta-wrapper {
                flex-direction: row;
                align-items: center;
                gap: 24px;
            }
        }

        .btn-hero {
            padding: 18px 32px;
            font-size: 0.9rem;
        }

        .btn-price {
            background: rgba(255, 255, 255, 0.2);
            padding: 4px 12px;
            border-radius: 999px;
            margin-left: 12px;
            font-weight: 800;
            font-size: 1.05rem;
        }

        .hero-offer-badge {
            display: flex;
            align-items: center;
            gap: 16px;
            background: rgba(255, 255, 255, 0.1);
            backdrop-filter: blur(10px);
            padding: 12px 24px;
            border-radius: 999px;
            box-shadow: var(--shadow-sm);
            border: 1px solid rgba(255, 255, 255, 0.2);
        }

        .offer-icon-badge {
            font-size: 1.6rem;
            line-height: 1;
        }

        .offer-text-badge {
            display: flex;
            flex-direction: column;
        }

        .offer-text-badge strong {
            font-size: 0.95rem;
            color: var(--white);
            line-height: 1.2;
        }

        .offer-text-badge span {
            font-size: 0.75rem;
            color: rgba(255, 255, 255, 0.7);
            text-transform: uppercase;
            letter-spacing: 0.05em;
            margin-top: 2px;
        }

        .hero-trust {
            display: flex;
            width: -webkit-fit-content;
            width: -moz-fit-content;
            width: fit-content;
            align-items: center;
            gap: 16px;
            background: rgba(255, 255, 255, 0.1);
            backdrop-filter: blur(8px);
            padding: 12px 24px;
            border-radius: 999px;
            border: 1px solid rgba(255, 255, 255, 0.2);
            font-size: 0.85rem;
            color: var(--white);
            font-weight: 600;
            box-shadow: var(--shadow-sm);
            margin: 0 auto;
        }

        .stars {
            color: #FFC107;
            font-size: 1rem;
            letter-spacing: 2px;
        }

        /* ================= MARQUEE removed 2026-05-20 ================= */

        /* ================= PROCEDURES ================= */
        section {
            padding: 64px 0;
        }

        @media (min-width: 768px) {
            section {
                padding: 120px 0;
            }
        }

        .procedures-grid {
            display: grid;
            grid-template-columns: 1fr;
            gap: 24px;
            margin-top: 48px;
        }

        @media (min-width: 768px) {
            .procedures-grid {
                grid-template-columns: 1fr 1fr;
                gap: 24px;
            }
        }

        @media (min-width: 1024px) {
            .procedures-grid {
                grid-template-columns: repeat(4, 1fr);
                gap: 20px;
            }
        }

        .proc-card {
            position: relative;
            border-radius: var(--radius-md);
            overflow: hidden;
            aspect-ratio: 3/4;
            display: flex;
            flex-direction: column;
            justify-content: flex-end;
            padding: 24px;
            color: var(--white);
            cursor: pointer;
            box-shadow: var(--shadow-sm);
        }

        .proc-card img {
            position: absolute;
            inset: 0;
            width: 100%;
            height: 100%;
            z-index: 1;
            transition: 0.8s cubic-bezier(0.2, 0, 0.2, 1);
        }

        .proc-card::after {
            content: '';
            position: absolute;
            inset: 0;
            background: linear-gradient(to top, rgba(17, 17, 17, 0.95) 0%, rgba(17, 17, 17, 0.4) 60%, transparent 100%);
            z-index: 2;
            transition: 0.4s;
        }

        .proc-card:hover img {
            transform: scale(1.05);
        }

        .proc-card:hover::after {
            background: linear-gradient(to top, rgba(17, 17, 17, 0.95) 0%, rgba(17, 17, 17, 0.6) 100%);
        }

        .proc-content {
            position: relative;
            z-index: 10;
            display: flex;
            flex-direction: column;
        }

        .proc-info h3 {
            font-size: 1.5rem;
            margin-bottom: 8px;
            color: var(--white);
        }

        .proc-tag {
            font-size: 0.75rem;
            text-transform: uppercase;
            letter-spacing: 0.1em;
            color: var(--blue-main);
            font-weight: 700;
            margin-bottom: 8px;
            display: block;
        }

        .proc-desc {
            font-size: 0.85rem;
            color: rgba(255, 255, 255, 0.85);
            line-height: 1.4;
            margin-bottom: 20px;
            font-family: 'Manrope', sans-serif;
        }

        .proc-arrow {
            width: 40px;
            height: 40px;
            border-radius: 50%;
            border: 1px solid rgba(255, 255, 255, 0.5);
            display: flex;
            align-items: center;
            justify-content: center;
            transition: 0.3s;
            font-size: 1.2rem;
            align-self: flex-start;
        }

        .proc-card:hover .proc-arrow {
            background: var(--white);
            color: var(--blue-dark);
            transform: rotate(-45deg);
            border-color: var(--white);
        }

        /* ================= PRICING ================= */
        .pricing {
            background: linear-gradient(180deg, var(--bg-very-light) 0%, var(--white) 100%);
        }

        .pricing h2 {
            color: var(--text-main);
        }

        .pricing-grid {
            display: grid;
            grid-template-columns: 1fr;
            gap: 24px;
            margin-top: 48px;
        }

        @media (min-width: 992px) {
            .pricing-grid {
                grid-template-columns: repeat(4, 1fr);
                align-items: stretch;
            }
            .pricing-grid.loyalty-grid {
                grid-template-columns: repeat(3, 1fr);
                max-width: 1080px;
                margin-left: auto;
                margin-right: auto;
            }
        }

        .loyalty-lead {
            text-align: center;
            font-family: 'Manrope', sans-serif;
            font-size: 1rem;
            color: var(--text-sec, #6b6b6b);
            max-width: 640px;
            /* 2026-08-01: снизу отступа не было вовсе — подпись липла к чипам фильтров.
               Отступ до контента берём тот же, что у шапок остальных секций. */
            margin: 0 auto var(--bb-head-gap, 48px);
            line-height: 1.6;
        }

        @media (max-width: 768px) {
            .loyalty-lead { margin-bottom: var(--bb-head-gap-mobile, 32px); }
        }

        /* Подпись поясняет заголовок — держим её при нём, а не при чипах.
           !important перебивает общую систему ритма шапок (--bb-head-gap): для
           заголовка с подписью шапка секции кончается не на нём, а на подписи. */
        section.loyalty-block > .container > h2:first-of-type:has(+ .loyalty-lead) {
            margin-bottom: clamp(14px, 1.2vw, 20px) !important;
        }

        .price-card {
            background: var(--white);
            border-radius: var(--radius-md);
            padding: 50px 40px;
            text-align: center;
            box-shadow: var(--shadow-sm);
            display: flex;
            flex-direction: column;
            align-items: center;
            position: relative;
            border: 1px solid var(--bb-bg-warm);
            transition: 0.3s;
        }

        .price-card.highlight {
            background: var(--white);
            border: 2px solid var(--blue-light);
            box-shadow: var(--shadow-md);
            transform: scale(1.02);
            z-index: 2;
        }

        /* 2026-05-29: визуал подарочной карты — повторяет .preview-card в /certificate-визарде */
        .price-card.cert-card {
            background: linear-gradient(145deg, #EAF4FA 0%, var(--bb-line) 55%, var(--bb-line-2) 100%);
            border: 1px solid rgba(57, 90, 106, 0.08);
            /* 2026-08-01: было 0 16px 48px без spread — тени соседних карточек
               смыкались в просветах и красили их в серый */
            box-shadow: 0 14px 34px -18px rgba(31, 42, 51, 0.28);
            border-radius: var(--r-m);
            padding: 38px 32px 32px;
            margin: 0;
        }
        .price-card.cert-card.highlight {
            background: linear-gradient(145deg, var(--bb-line) 0%, var(--bb-line-2) 55%, #A8D4E8 100%);
            border: 2px solid var(--blue-dark, var(--bb-teal-deep));
            box-shadow: 0 18px 44px -20px rgba(57, 90, 106, 0.38);
            transform: scale(1.03);
        }
        /* 2026-08-01: бренд-строка сертификата = логотип из шапки (Playfair Display) */
        .price-card.cert-card .cert-card-brand {
            font-family: 'Playfair Display', serif;
            font-weight: 400;
            font-size: 17px;
            letter-spacing: 0.02em;
            line-height: 1.1;
            color: var(--blue, #4F7E94);
            margin-bottom: 13px;
        }
        .price-card.cert-card .cert-card-brand span { font-style: italic; }
        .price-card.cert-card .cert-card-caption {
            font-family: 'Playfair Display', serif;
            font-size: 0.95rem;
            letter-spacing: 0.03em;
            color: var(--text-sec, #6B6B6B);
            margin: -10px 0 24px;
        }
        .price-card.cert-card h3 { margin-bottom: 18px; }
        .price-card.cert-card .price-desc { margin-bottom: 4px; }

        /* 2026-07-28: Goal-фильтр над слайдером абонементов (Все / Похудение / ...) */
        .loyalty-goal-tabs {
            display: flex;
            flex-wrap: wrap;
            gap: 8px;
            justify-content: center;
            margin: 0 auto 28px;
            max-width: 720px;
            padding: 0 16px;
        }
        .loyalty-goal-tab {
            display: inline-flex;
            align-items: center;
            gap: 6px;
            padding: 9px 16px;
            border: 1px solid rgba(0, 0, 0, 0.14);
            background: #fff;
            border-radius: 999px;
            font-family: 'Manrope', sans-serif;
            font-size: 0.88rem;
            color: #333;
            cursor: pointer;
            transition: background 0.16s ease, border-color 0.16s ease, color 0.16s ease;
            white-space: nowrap;
            line-height: 1;
        }
        .loyalty-goal-tab:hover { background: #f7f5f2; border-color: rgba(0, 0, 0, 0.24); }
        .loyalty-goal-tab.is-active {
            background: var(--bb-teal-deep);
            color: #fff;
            border-color: var(--bb-teal-deep);
        }
        .loyalty-goal-tab-count { font-size: 0.78rem; font-weight: 500; opacity: 0.68; }
        .loyalty-goal-tab.is-active .loyalty-goal-tab-count { opacity: 0.92; }
        .loyalty-slide[hidden] { display: none !important; }
        @media (max-width: 480px) {
            .loyalty-goal-tab { padding: 7px 12px; font-size: 0.82rem; }
            .loyalty-goal-tabs { gap: 6px; margin-bottom: 20px; padding: 0 12px; }
        }

        /* «Выгодные пакеты» — старая цена, выгода, «Подробнее» (2026-07-02) */
        .price-card.cert-card .price-old {
            font-size: 0.95rem;
            color: var(--text-sec, #8a8a8a);
            text-decoration: line-through;
            margin: 0 0 2px;
            letter-spacing: 0.02em;
        }
        .price-card.cert-card .price-old .currency { font-size: 0.85rem; }
        .price-card.cert-card .price-saving {
            display: inline-block;
            background: rgba(45, 138, 145, 0.10);
            color: var(--blue-dark, #2d8a91);
            font-size: 0.85rem;
            font-weight: 600;
            padding: 5px 12px;
            border-radius: 999px;
            margin: 6px 0 10px;
            letter-spacing: 0.01em;
        }
        .price-card.cert-card .cert-card-actions {
            display: flex; flex-direction: column; gap: 10px;
            align-items: stretch; margin-top: 4px;
        }
        /* Крупная filled CTA-кнопка «Купить абонемент» — контрастнее, чем outline */
        .price-card.cert-card .btn.btn-primary.btn-buy-abonement {
            padding: 15px 20px;
            font-size: 0.92rem;
            font-weight: 700;
            letter-spacing: 0.10em;
            border-radius: 999px;
            width: 100%;
        }
        @media (max-width: 480px) {
            .price-card.cert-card .btn.btn-primary.btn-buy-abonement { padding: 14px 16px; font-size: 0.88rem; }
        }

        /* Sticky mobile CTA-bar — «Абонементы от X ₽ · Смотреть» / «Записаться» */
        .bb-sticky-cta {
            position: fixed; left: 0; right: 0; bottom: 0;
            z-index: 90;
            background: rgba(255, 255, 255, 0.96);
            backdrop-filter: blur(10px);
            border-top: 1px solid rgba(0,0,0,0.06);
            box-shadow: 0 -6px 24px rgba(0,0,0,0.08);
            padding: 12px 16px calc(12px + env(safe-area-inset-bottom, 0));
            display: none;
            transform: translateY(100%);
            transition: transform 0.28s ease, opacity 0.22s ease;
            opacity: 0;
        }
        .bb-sticky-cta.is-visible { transform: translateY(0); opacity: 1; }
        .bb-sticky-cta-row {
            display: flex; align-items: center; justify-content: space-between; gap: 12px;
        }
        .bb-sticky-cta-text {
            flex: 1 1 auto; min-width: 0;
            display: flex; flex-direction: column; gap: 2px;
        }
        .bb-sticky-cta-label {
            font-family: 'Manrope', sans-serif;
            font-size: 0.8rem; font-weight: 700;
            color: var(--text-main, #2b2b2b);
            letter-spacing: 0.02em;
            line-height: 1.15;
        }
        .bb-sticky-cta-sub {
            font-family: 'Manrope', sans-serif;
            font-size: 0.75rem; color: var(--text-sec, #7a7a7a);
            line-height: 1.15;
        }
        .bb-sticky-cta-btn {
            flex: 0 0 auto;
            background: var(--blue-dark, #2d8a91); color: #fff;
            border: none; padding: 12px 20px; border-radius: 999px;
            font-family: 'Manrope', sans-serif;
            font-size: 0.78rem; font-weight: 700; letter-spacing: 0.10em;
            text-transform: uppercase; cursor: pointer;
            transition: transform 0.15s ease, box-shadow 0.2s ease;
        }
        .bb-sticky-cta-btn:hover, .bb-sticky-cta-btn:focus-visible {
            transform: translateY(-1px);
            box-shadow: 0 8px 20px rgba(45, 138, 145, 0.28);
        }
        @media (min-width: 769px) { .bb-sticky-cta { display: none !important; } }
        @media (max-width: 768px) { .bb-sticky-cta { display: block; } }
        .price-card.cert-card .btn-link.loyalty-more-btn {
            background: none; border: none; padding: 6px 0;
            color: var(--blue-dark, #2d8a91);
            font-family: inherit; font-size: 0.9rem; font-weight: 600;
            cursor: pointer; text-transform: none; letter-spacing: 0.02em;
            transition: color 0.15s ease, transform 0.15s ease;
        }
        .price-card.cert-card .btn-link.loyalty-more-btn:hover {
            color: var(--text-main, #2b2b2b);
        }
        .price-card.cert-card .btn-link.loyalty-more-btn span { transition: transform 0.2s ease; display: inline-block; }
        .price-card.cert-card .btn-link.loyalty-more-btn:hover span { transform: translateX(4px); }

        /* Loyalty-модалка */
        .bb-loy-modal { position: fixed; inset: 0; z-index: 9999; display: none; }
        .bb-loy-modal[hidden] { display: none !important; }
        .bb-loy-modal.is-open { display: block; }
        .bb-loy-modal-backdrop {
            position: absolute; inset: 0;
            background: rgba(20, 25, 30, 0.55);
            backdrop-filter: blur(4px);
            opacity: 0; transition: opacity 0.22s ease;
        }
        .bb-loy-modal.is-open .bb-loy-modal-backdrop { opacity: 1; }
        .bb-loy-modal-dialog {
            position: relative;
            max-width: 480px; width: calc(100% - 32px);
            margin: 60px auto;
            background: #fff; border-radius: var(--r-m);
            padding: 34px 30px 28px; box-shadow: 0 24px 80px rgba(0,0,0,0.25);
            transform: translateY(12px) scale(0.98); opacity: 0;
            transition: transform 0.28s ease, opacity 0.22s ease;
        }
        .bb-loy-modal.is-open .bb-loy-modal-dialog { transform: none; opacity: 1; }
        .bb-loy-modal-close {
            position: absolute; top: 12px; right: 14px;
            width: 36px; height: 36px; border-radius: 50%;
            border: none; background: transparent; cursor: pointer;
            font-size: 22px; line-height: 1; color: var(--text-sec, #7a7a7a);
        }
        .bb-loy-modal-close:hover { color: var(--text-main, #2b2b2b); background: var(--bb-bg-warm); }
        .bb-loy-modal .bb-loy-eyebrow {
            font-size: 0.75rem; letter-spacing: 0.14em; text-transform: uppercase;
            color: var(--blue-dark, #2d8a91); margin: 0 0 8px;
        }
        .bb-loy-modal .bb-loy-title {
            font-family: 'Playfair Display', serif;
            font-size: 1.5rem; font-weight: 500; color: var(--text-main, #2b2b2b);
            margin: 0 0 14px; line-height: 1.25;
        }
        .bb-loy-modal .bb-loy-pricebox {
            background: #f7f4ef; border-radius: var(--r-s);
            padding: 14px 18px; margin: 0 0 16px;
        }
        .bb-loy-modal .bb-loy-price {
            font-size: 1.6rem; font-weight: 500; color: var(--text-main, #2b2b2b);
            display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap;
        }
        .bb-loy-modal .bb-loy-price-old {
            font-size: 0.95rem; color: var(--text-sec, #8a8a8a);
            text-decoration: line-through; font-weight: 400;
        }
        .bb-loy-modal .bb-loy-price-meta {
            font-size: 0.85rem; color: var(--text-sec, #6b6b6b);
            margin: 4px 0 0;
        }
        .bb-loy-modal .bb-loy-saving {
            display: inline-block;
            background: var(--blue-dark, #2d8a91); color: #fff;
            font-size: 0.8rem; font-weight: 600;
            padding: 4px 12px; border-radius: 999px;
            margin: 8px 0 0; letter-spacing: 0.02em;
        }
        .bb-loy-modal .bb-loy-desc {
            color: var(--text-main, #2b2b2b); font-size: 0.95rem;
            line-height: 1.55; margin: 0 0 22px;
        }
        .bb-loy-modal .bb-loy-cta {
            display: block; width: 100%;
            background: var(--blue-dark, #2d8a91); color: #fff;
            border: none; padding: 15px 20px; border-radius: 999px;
            font-family: inherit; font-size: 0.9rem; font-weight: 600;
            letter-spacing: 0.12em; text-transform: uppercase;
            cursor: pointer; transition: transform 0.15s ease, box-shadow 0.2s ease;
        }
        .bb-loy-modal .bb-loy-cta:hover { transform: translateY(-1px); box-shadow: 0 10px 24px rgba(45, 138, 145, 0.28); }
        @media (max-width: 480px) {
            .bb-loy-modal-dialog { margin: 30px auto; padding: 28px 22px 22px; }
            .bb-loy-modal .bb-loy-title { font-size: 1.3rem; }
            .bb-loy-modal .bb-loy-price { font-size: 1.4rem; }
        }

        .highlight-badge {
            position: absolute;
            top: -14px;
            left: 50%;
            transform: translateX(-50%);
            background: var(--blue-dark);
            color: var(--white);
            font-size: 0.7rem;
            font-weight: 700;
            text-transform: uppercase;
            letter-spacing: 0.1em;
            padding: 6px 20px;
            border-radius: 999px;
            white-space: nowrap;
        }

        .price-card h3 {
            font-size: 1.6rem;
            color: var(--text-main);
            margin-bottom: 24px;
            font-family: 'Playfair Display', serif;
        }

        .price-val {
            font-size: 3.5rem;
            font-weight: 300;
            color: var(--text-main);
            line-height: 1;
            margin-bottom: 20px;
            display: flex;
            align-items: flex-start;
            justify-content: center;
            gap: 8px;
            font-family: 'Manrope', sans-serif;
        }

        .price-val .prefix {
            font-size: 1.2rem;
            font-weight: 500;
            margin-top: 8px;
            color: var(--text-sec);
        }

        .price-val .currency {
            font-size: 2rem;
            font-weight: 400;
            margin-top: 4px;
        }

        .price-desc {
            font-size: 0.85rem;
            color: var(--text-sec);
            margin-bottom: 40px;
            flex-grow: 1;
            line-height: 1.5;
        }

        .price-card .btn {
            width: 100%;
        }

        /* ================= RESULTS SLIDER ================= */
        .results {
            background-color: var(--white);
        }

        .slider-wrapper {
            position: relative;
            margin-top: 48px;
        }

        .slider-track {
            display: flex;
            gap: 24px;
            overflow-x: auto;
            scroll-snap-type: x mandatory;
            scrollbar-width: none;
            padding: 10px 0 30px;
            -webkit-overflow-scrolling: touch;
        }

        .slider-track::-webkit-scrollbar {
            height: 4px;
        }

        .slider-track::-webkit-scrollbar-thumb {
            background: var(--blue-main);
            border-radius: var(--r-s);
        }

        /* Results slider — стрелки и точки-индикаторы */
        .slider-wrapper { position: relative; }
        .results-nav {
            position: absolute;
            top: 50%;
            transform: translateY(-50%);
            z-index: 3;
            width: 44px;
            height: 44px;
            border-radius: 50%;
            border: 1px solid rgba(121,181,209,0.25);
            background: rgba(255,255,255,0.85);
            -webkit-backdrop-filter: blur(8px);
            backdrop-filter: blur(8px);
            color: var(--bb-teal-deep);
            display: flex;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            box-shadow: 0 6px 18px -8px rgba(57,90,106,0.30);
            transition: background .2s, transform .2s, opacity .2s;
        }
        .results-nav:hover { background: #fff; transform: translateY(-50%) scale(1.05); }
        .results-nav:disabled { opacity: 0.35; cursor: default; }
        .results-nav--prev { left: 8px; }
        .results-nav--next { right: 8px; }
        @media (min-width: 768px) {
            .results-nav--prev { left: 16px; }
            .results-nav--next { right: 16px; }
        }
        .results-dots {
            display: flex;
            gap: 8px;
            justify-content: center;
            margin-top: 16px;
        }
        .results-dot {
            width: 8px;
            height: 8px;
            border-radius: 50%;
            border: none;
            background: rgba(121,181,209,0.30);
            cursor: pointer;
            padding: 0;
            transition: background .2s, transform .2s, width .25s;
        }
        .results-dot.is-active {
            background: var(--blue-main);
            width: 22px;
            border-radius: 999px;
        }
        @media (max-width: 480px) {
            .results-nav { width: 38px; height: 38px; }
        }

        .result-slide {
            min-width: 85%;
            scroll-snap-align: center;
            border-radius: var(--radius-md);
            overflow: hidden;
            position: relative;
            box-shadow: var(--shadow-md);
        }

        @media (min-width: 768px) {
            .result-slide {
                min-width: 450px;
            }
        }

        .result-slide img {
            height: 450px;
            width: 100%;
        }

        .result-label {
            position: absolute;
            bottom: 24px;
            background: rgba(255, 255, 255, 0.95);
            padding: 8px 20px;
            border-radius: 999px;
            font-size: 0.85rem;
            font-weight: 800;
            color: var(--text-main);
            box-shadow: var(--shadow-sm);
        }
        /* 2026-07-28: у городов с локальным портфолио плашки не нужны (уже в фото) + скрываем 4 запасные карточки */
        .results.results-local .result-label { display: none !important; }



        .label-before {
            left: 24px;
        }

        .label-after {
            right: 24px;
            color: var(--blue-dark);
        }

        /* ================= OFFERS ================= */
        .offers {
            background: var(--bg-very-light);
            border-radius: 40px;
            margin: 0 20px;
            padding: 64px 0;
        }

        @media (min-width: 768px) {
            .offers {
                margin: 0 40px;
                padding: 120px 0;
            }
        }

        .offers-grid {
            display: grid;
            grid-template-columns: 1fr;
            gap: 24px;
            margin-top: 48px;
            padding: 0 24px;
        }

        @media (min-width: 992px) {
            .offers-grid {
                grid-template-columns: repeat(2, 1fr);
                max-width: 880px;
                margin: 48px auto 0;
            }
        }

        .offer-card {
            background: var(--white);
            padding: 48px 32px;
            border-radius: var(--radius-md);
            box-shadow: var(--shadow-sm);
            text-align: center;
            display: flex;
            flex-direction: column;
            align-items: center;
            transition: 0.4s;
            border: 1px solid transparent;
        }

        .offer-card:hover {
            transform: translateY(-8px);
            border-color: var(--blue-light);
            box-shadow: var(--shadow-md);
        }

        .offer-icon {
            width: 56px;
            height: 56px;
            margin-bottom: 24px;
            color: var(--blue-main);
        }

        .offer-icon svg {
            width: 100%;
            height: 100%;
        }

        .offer-card h3 {
            color: var(--text-main);
            margin-bottom: 12px;
        }

        .offer-card p {
            color: var(--text-sec);
            margin-bottom: 32px;
            flex-grow: 1;
            font-size: 0.95rem;
        }

        /* ================= BOOKING ================= */
        .booking {
            background: var(--white);
        }

        .booking-wrap {
            max-width: 600px;
            margin: 0 auto;
            background: var(--white);
            padding: 60px 40px;
            border-radius: var(--radius-md);
            box-shadow: var(--shadow-md);
            border: 1px solid var(--bb-bg-warm);
        }

        .booking-wrap h2 {
            margin-bottom: 16px;
        }

        .booking-wrap p {
            color: var(--text-sec);
            margin-bottom: 40px;
            text-align: center;
        }

        .form-group {
            margin-bottom: 20px;
        }

        .form-control {
            width: 100%;
            padding: 16px 24px;
            border: 1px solid #E0E0E0;
            border-radius: 999px;
            font-family: inherit;
            font-size: 1rem;
            transition: 0.3s;
            background: var(--white);
            color: var(--text-main);
        }

        .form-control:focus {
            outline: none;
            border-color: var(--blue-main);
            box-shadow: 0 0 0 3px rgba(121, 181, 209, 0.1);
        }

        /* ================= CONTACTS ================= */
        .contacts {
            background-color: var(--white);
        }

        .contacts-wrapper {
            display: flex;
            flex-direction: column;
            gap: 48px;
        }

        @media (min-width: 992px) {
            .contacts-wrapper {
                flex-direction: row;
                align-items: center;
            }
        }

        .contacts-info {
            flex: 1;
        }

        .contacts-info h2 {
            text-align: left;
            margin-bottom: 16px;
        }

        .contacts-info .hours {
            font-size: 1.1rem;
            color: var(--text-sec);
            margin-bottom: 32px;
        }

        .contact-large-phone {
            font-family: 'Manrope', sans-serif;
            font-variant-numeric: tabular-nums;
            font-size: clamp(2rem, 4vw, 3rem);
            font-weight: 800;
            letter-spacing: -0.01em;
            margin-bottom: 12px;
            display: inline-block;
            color: var(--blue-dark);
            position: relative;
            text-decoration: none;
            transition: transform 0.35s cubic-bezier(0.25, 1, 0.5, 1);
            will-change: transform;
        }

        .contact-large-phone::after {
            content: '';
            position: absolute;
            left: 0;
            right: 0;
            bottom: 2px;
            height: 2px;
            background: linear-gradient(90deg, var(--blue-main), var(--blue-dark));
            transform: scaleX(0);
            transform-origin: left center;
            transition: transform 0.5s cubic-bezier(0.25, 1, 0.5, 1);
        }

        .contact-large-phone:hover {
            transform: translateY(-3px);
        }

        .contact-large-phone:hover::after {
            transform: scaleX(1);
        }

        .contact-address {
            font-size: 1.2rem;
            font-weight: 500;
            margin-bottom: 40px;
            color: var(--text-sec);
        }

        .socials {
            display: flex;
            gap: 16px;
        }

        .social-btn {
            width: 50px;
            height: 50px;
            border-radius: 50%;
            overflow: hidden;
            transition: 0.3s;
            background: var(--bg-very-light);
            display: flex;
            align-items: center;
            justify-content: center;
            border: 1px solid #eee;
            color: var(--blue-dark);
        }

        .social-btn:hover {
            transform: translateY(-3px);
            border-color: var(--blue-main);
            color: var(--blue-main);
            box-shadow: var(--shadow-sm);
        }

        .social-btn svg {
            width: 22px;
            height: 22px;
            transition: 0.3s;
        }

        .map-box {
            flex: 1;
            height: 360px;
            border-radius: var(--radius-md);
            overflow: hidden;
            background: #eee;
            box-shadow: var(--shadow-md);
        }

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

        .map-box iframe {
            width: 100%;
            height: 100%;
            border: 0;
        }

        /* ================= FOOTER (единый блок по ТЗ 2026-05-20) ================= */
        footer {
            background: var(--bb-white);
            color: #464646;
        }

        .footer-container {
            max-width: 1280px;
            margin: 0 auto;
            padding: 60px 80px;
        }

        .footer-top {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 32px;
            align-items: start;
        }

        .footer-left {
            text-align: left;
        }
        .footer-left .footer-h2,
        .footer-left .footer-address {
            text-align: inherit;
        }

        .footer-brand {
            font-family: 'Playfair Display', serif;
            font-size: 28px;
            font-weight: 400;
            color: #464646;
            line-height: 1;
            text-decoration: none;
            display: inline-block;
        }
        .footer-brand i {
            font-style: italic;
            color: var(--bb-sky);
        }

        .footer-city-tag {
            font-family: 'Manrope', sans-serif;
            font-size: 11px;
            font-weight: 500;
            letter-spacing: 0.15em;
            text-transform: uppercase;
            color: var(--bb-sky);
            margin-top: 4px;
            margin-bottom: 24px;
        }

        .footer-h2 {
            font-family: 'Playfair Display', serif;
            font-size: 32px;
            font-weight: 400;
            color: #464646;
            margin: 0 0 4px;
            line-height: 1.1;
        }
        .footer-h2 i {
            font-style: italic;
            color: var(--bb-sky);
        }

        .footer-hours {
            font-family: 'Manrope', sans-serif;
            font-size: 14px;
            color: #888888;
            margin: 0 0 20px;
        }

        .footer-phone {
            font-family: 'Manrope', sans-serif;
            font-size: 24px;
            font-weight: 500;
            color: #464646;
            text-decoration: none;
            display: block;
            margin-bottom: 4px;
            line-height: 1.2;
        }
        .footer-phone:hover { color: var(--bb-sky); }

        .footer-address {
            font-family: 'Manrope', sans-serif;
            font-size: 14px;
            color: #888888;
            margin: 0 0 16px;
        }

        .footer-socials-new {
            display: flex;
            gap: 12px;
        }
        .footer-socials-new a {
            width: 36px;
            height: 36px;
            border-radius: 50%;
            background: #F1F5F8;
            color: var(--bb-sky);
            display: inline-flex;
            align-items: center;
            justify-content: center;
            transition: background 0.3s ease;
        }
        .footer-socials-new a:hover {
            background: var(--bb-line);
        }
        .footer-socials-new svg {
            width: 18px;
            height: 18px;
        }

        .footer-map-box {
            width: 100%;
            height: 280px;
            border-radius: var(--r-s);
            overflow: hidden;
            background: #F1F5F8;
        }
        .footer-map-box iframe {
            width: 100%;
            height: 100%;
            border: 0;
            display: block;
        }

        .footer-divider {
            border-top: 1px solid #E5E5E5;
            margin: 24px 0;
        }

        .footer-legal {
            text-align: center;
        }

        .footer-legal-meta {
            font-family: 'Manrope', sans-serif;
            font-size: 12px;
            color: #999999;
            margin: 0 0 12px;
        }

        .footer-legal-links {
            display: flex;
            justify-content: center;
            flex-wrap: wrap;
            gap: 24px;
            margin: 0 0 16px;
        }
        .footer-legal-links a {
            font-family: 'Manrope', sans-serif;
            font-size: 12px;
            color: #888888;
            text-decoration: underline;
        }
        .footer-legal-links a:hover { color: var(--bb-sky); }

        .footer-legal-copyright {
            font-family: 'Manrope', sans-serif;
            font-size: 12px;
            color: #888888;
            text-align: center;
            margin: 0;
        }

        @media (max-width: 768px) {
            .footer-container { padding: 40px 24px; }
            .footer-top { grid-template-columns: 1fr; gap: 28px; }
            .footer-h2 { font-size: 28px; }
            .footer-phone { font-size: 20px; }
            .footer-map-box { height: 240px; }
            .footer-legal-links { gap: 14px; }
        }

        .footer-logo {
            font-family: 'Playfair Display', serif;
            font-size: 1.4rem;
            color: var(--text-main);
            display: flex;
            justify-content: center;
            gap: 6px;
            margin-bottom: 8px;
        }

        .footer-logo i {
            font-style: italic;
            color: var(--blue-main);
        }

        .footer-details {
            text-align: center;
            color: var(--text-sec);
            font-size: 13px;
            margin-bottom: 8px;
        }

        .footer-details p {
            margin-bottom: 2px;
        }

        .footer-links {
            display: flex;
            flex-direction: column;
            align-items: flex-start;
            gap: 8px;
            padding-top: 10px;
            border-top: 1px solid var(--bb-bg-warm);
        }

        @media (min-width: 768px) {
            .footer-links {
                flex-direction: row;
                align-items: center;
                justify-content: center;
                gap: 40px;
            }
        }

        .footer-links a {
            font-size: 0.85rem;
            color: var(--text-sec);
            text-decoration: underline;
            transition: 0.3s;
            text-align: left;
        }

        .footer-links a:hover {
            color: var(--blue-main);
        }

        .footer-contact {
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 8px;
            margin-bottom: 24px;
        }

        .footer-phone {
            font-family: 'Manrope', sans-serif;
            font-variant-numeric: tabular-nums;
            font-size: 1.5rem;
            color: var(--text-main);
            text-decoration: none;
            font-weight: 700;
            letter-spacing: 0.01em;
        }

        .footer-phone:hover {
            color: var(--blue-main);
        }

        .footer-address {
            font-size: 0.9rem;
            color: var(--text-sec);
            text-align: center;
        }

        .footer-socials {
            display: flex;
            gap: 12px;
            justify-content: center;
            margin-top: 12px;
            margin-bottom: 32px;
        }

        .footer-socials a {
            width: 40px;
            height: 40px;
            display: flex;
            align-items: center;
            justify-content: center;
            border-radius: 50%;
            background: #f3f4f6;
            color: #6b7280;
            transition: 0.25s;
            text-decoration: none;
            font-weight: 700;
            font-size: 11px;
            letter-spacing: 0.1em;
        }

        .footer-socials a:hover {
            color: #fff;
        }

        .footer-socials a[data-brand="vk"]:hover {
            background: #0077FF;
        }

        .footer-socials a[data-brand="tg"]:hover {
            background: #229ED9;
        }

        .footer-socials a[data-brand="max"]:hover {
            background: #FF1F8E;
        }

        .footer-socials svg {
            width: 22px;
            height: 22px;
        }

        /* ── Мобильный адаптив: планшеты 768-991px ── */
        @media (min-width: 768px) and (max-width: 991px) {
            .pricing-grid {
                grid-template-columns: repeat(2, 1fr);
            }

            .offers-grid {
                grid-template-columns: repeat(2, 1fr);
            }
        }


        /* MOBILE OVERFLOW FIXES */
        @media (max-width: 480px) {

            .btn,
            button.btn,
            a.btn {
                white-space: normal !important;
                word-break: break-word;
                text-align: center;
                padding-left: 16px !important;
                padding-right: 16px !important;
            }

            .popular-badge,
            [class*="popular"],
            [class*="badge"] {
                white-space: normal !important;
                max-width: 90% !important;
            }

            .hero-offer-badge,
            [class*="offer-badge"] {
                flex-wrap: wrap !important;
                max-width: 100% !important;
                white-space: normal !important;
            }

            .offer-text-badge,
            [class*="offer-text"] {
                white-space: normal !important;
                word-break: break-word;
            }

            img,
            video,
            iframe {
                max-width: 100% !important;
                height: auto;
            }
        }


        /* SOCIAL ICONS */
        .social-link {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            width: 40px;
            height: 40px;
            border-radius: 50%;
            background: #EFF7FB;
            transition: all 0.2s;
            text-decoration: none;
        }

        .social-link:hover {
            background: var(--bb-sky);
        }

        .social-link:hover svg path {
            fill: #fff;
        }

        .social-link svg {
            width: 20px;
            height: 20px;
        }

        .header-socials {
            display: flex;
            align-items: center;
            gap: 8px;
        }

        .footer-socials {
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 10px;
            margin: 16px 0;
        }


        /* SOCIALS В БЛОКЕ КОНТАКТОВ — крупнее */
        .contacts-info .footer-socials {
            justify-content: flex-start !important;
            gap: 12px !important;
            margin: 16px 0 !important;
        }

        .contacts-info .footer-socials .social-link {
            width: 48px !important;
            height: 48px !important;
        }

        .contacts-info .footer-socials .social-link svg {
            width: 22px !important;
            height: 22px !important;
        }

        /* Скрыть sticky-полоску 990р на страницах города */
        .mobile-sticky-cta {
            display: none !important;
        }


        /* Фикс позиционирования карточки с бейджем */
        .price-card {
            position: relative !important;
        }

        .popular-badge {
            position: absolute !important;
            top: -14px !important;
            left: 50% !important;
            transform: translateX(-50%) !important;
            white-space: nowrap !important;
            z-index: 2 !important;
        }


        /* FIX: кнопка hero не переносится на мобилке */
        @media (max-width: 480px) {
            .btn-hero {
                font-size: 11px !important;
                letter-spacing: 0.08em !important;
                padding: 18px 20px !important;
                white-space: nowrap !important;
            }

            .btn-price {
                font-size: 13px !important;
                padding: 6px 12px !important;
            }

            .hero-cta-wrapper {
                gap: 14px !important;
            }
        }


        /* CTA УНИФИКАЦИЯ — все кнопки записи тёмные */
        .btn-outline,
        .btn-secondary,
        a.btn:not(.btn-primary):not(.btn-dark) {
            background: var(--dark, #464646) !important;
            color: #fff !important;
            border-color: var(--dark, #464646) !important;
        }

        .btn-outline:hover,
        .btn-secondary:hover {
            opacity: 0.85 !important;
        }

        /* Подпись под формой */
        .form-hint {
            font-size: 12px;
            color: #999;
            margin-top: 8px;
            text-align: center;
            line-height: 1.5;
        }

        /* Чекбокс согласия */
        .form-consent {
            display: flex;
            align-items: flex-start;
            gap: 8px;
            margin-top: 12px;
            font-size: 12px;
            color: #999;
            line-height: 1.4;
        }

        .form-consent input[type="checkbox"] {
            flex-shrink: 0;
            margin-top: 2px;
            width: 16px;
            height: 16px;
            accent-color: var(--bb-sky);
        }

        .form-consent a {
            color: var(--bb-sky);
            text-decoration: underline;
        }


        /* MARQUEE HIDDEN */
        .marquee,
        .marquee-section,
        [class*='marquee'] {
            display: none !important;
        }

        /* Hero photo stays fully visible — no overlay; transition lives in the bridge below. */
        section.hero {
            position: relative;
        }

        /* ================= REVIEWS ================= */
        .reviews {
            background: linear-gradient(180deg, var(--white) 0%, var(--bg-very-light) 100%);
        }

        .reviews-head {
            display: flex;
            justify-content: space-between;
            align-items: flex-end;
            flex-wrap: wrap;
            gap: 24px;
            margin-bottom: 48px;
        }

        .reviews-rating {
            text-align: right;
        }

        .reviews-rating .stars {
            color: #FFC107;
            font-size: 1.1rem;
            letter-spacing: 2px;
        }

        .reviews-rating-num {
            font-family: 'Playfair Display', serif;
            font-size: 2.4rem;
            font-weight: 700;
            color: var(--blue-dark);
            line-height: 1;
            margin-top: 4px;
        }

        .reviews-rating-sub {
            font-size: 0.8rem;
            color: var(--text-sec);
            margin-top: 6px;
        }

        .reviews-grid {
            display: grid;
            grid-template-columns: 1fr;
            gap: 24px;
        }

        .rh-track {
            display: flex;
            gap: 14px;
            overflow-x: auto;
            padding: 8px 4px 16px;
            scroll-snap-type: x mandatory;
            -webkit-overflow-scrolling: touch;
        }
        .rh-track::-webkit-scrollbar { height: 4px; }
        .rh-track::-webkit-scrollbar-track {
            background: var(--bb-bg-warm); border-radius: 2px;
        }
        .rh-track::-webkit-scrollbar-thumb {
            background: var(--bb-sky); border-radius: 2px;
        }
        .rh-card {
            flex: 0 0 260px;
            scroll-snap-align: start;
            background: var(--bb-white);
            border-radius: var(--r-s);
            padding: 16px 18px;
            border: 1px solid #ebebeb;
            box-shadow: 0 1px 6px rgba(0,0,0,0.07);
            font-family: 'Manrope', sans-serif;
        }
        .rh-head {
            display: flex;
            align-items: center;
            gap: 10px;
            margin-bottom: 10px;
        }
        .rh-av {
            width: 36px;
            height: 36px;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 13px;
            font-weight: 700;
            flex-shrink: 0;
        }
        .rh-av--img {
            display: block;
            object-fit: cover;
            background: #eee;
        }
        .rh-cta {
            margin-top: 24px;
            text-align: center;
        }
        .rh-cta-link {
            display: inline-flex;
            align-items: center;
            gap: 10px;
            padding: 12px 22px;
            background: #fff;
            color: var(--bb-ink);
            border-radius: 999px;
            border: 1px solid rgba(0,0,0,0.08);
            box-shadow: 0 4px 14px rgba(0,0,0,0.06);
            text-decoration: none;
            font-weight: 600;
            font-size: 14px;
            transition: transform 0.2s ease, box-shadow 0.2s ease;
        }
        .rh-cta-link:hover {
            transform: translateY(-2px);
            box-shadow: 0 8px 22px rgba(0,0,0,0.10);
        }
        /* 2026-06-29: "Оставить отзыв 2GIS" — виджет рядом с rh-cta-link */
        .rh-cta-row {
            display: inline-flex;
            align-items: center;
            gap: 18px;
            flex-wrap: wrap;
            justify-content: center;
            max-width: 100%;
        }
        .rh-cta-widget {
            border: 0;
            background: transparent;
            flex: 0 0 auto;
            display: block;
            color-scheme: light;
        }
        @media (max-width: 480px) {
            .rh-cta-row { gap: 12px; }
        }
        .rh-nm {
            font-size: 13px;
            font-weight: 600;
            color: #1a1a1a;
            line-height: 1.2;
        }
        .rh-cnt { font-size: 12px; color: #666; margin-top: 2px; }
        .rh-stars {
            display: flex;
            align-items: center;
            gap: 5px;
            margin-bottom: 8px;
        }
        .rh-st { color: #f5a623; font-size: 14px; letter-spacing: 0.5px; }
        .rh-dt { font-size: 12px; color: #777; }
        .rh-txt { font-size: 13px; line-height: 1.55; color: #222; margin: 0; }
        .rh-more {
            font-size: 12px; color: #2684e5;
            margin-top: 5px; display: block;
            background: none; border: 0; padding: 0;
            font-family: inherit; cursor: pointer; text-align: left;
        }
        .rh-more:hover { color: #0f5fb8; text-decoration: underline; }

        @media (min-width: 992px) {
            .reviews-grid {
                grid-template-columns: repeat(3, 1fr);
                align-items: stretch;
            }
        }

        @media (max-width: 991px) {
            .reviews-rating { width: 100%; }
        }

        .review-card {
            background: var(--white);
            border-radius: var(--radius-md);
            padding: 36px 32px;
            box-shadow: var(--shadow-sm);
            border: 1px solid var(--bb-bg-warm);
            display: flex;
            flex-direction: column;
            transition: 0.3s;
        }

        .review-card:hover {
            box-shadow: var(--shadow-md);
            transform: translateY(-4px);
        }

        .review-top {
            display: flex;
            align-items: center;
            justify-content: space-between;
            margin-bottom: 16px;
        }

        .review-stars {
            color: #FFC107;
            font-size: 1rem;
            letter-spacing: 2px;
        }

        .review-date {
            font-size: 0.8rem;
            color: var(--text-sec);
        }

        .review-text {
            color: var(--text-main);
            font-size: 0.95rem;
            line-height: 1.65;
            margin-bottom: 28px;
            flex-grow: 1;
        }

        .review-author {
            display: flex;
            align-items: center;
            gap: 14px;
            padding-top: 20px;
            border-top: 1px solid var(--bb-bg-warm);
        }

        .review-avatar {
            width: 48px;
            height: 48px;
            border-radius: 50%;
            overflow: hidden;
            flex-shrink: 0;
            background: var(--bg-very-light);
        }

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

        .review-name {
            font-weight: 700;
            color: var(--text-main);
            font-size: 0.95rem;
        }

        .review-city {
            font-size: 0.78rem;
            color: var(--text-sec);
            margin-top: 2px;
            display: flex;
            align-items: center;
            gap: 6px;
            flex-wrap: wrap;
        }

        .yandex-badge,
        .twogis-badge {
            display: inline-block;
            font-size: 0.65rem;
            font-weight: 700;
            padding: 2px 8px;
            border-radius: 4px;
            letter-spacing: 0.04em;
        }

        .yandex-badge {
            background: #FFCC00;
            color: #000;
        }

        .twogis-badge {
            background: #19B362;
            color: #FFF;
        }

    
    /* WAVE DIVIDER */
    .wave-divider {
      position: relative;
      margin-top: -2px;
      line-height: 0;
      overflow: hidden;
      background-color: var(--blue-dark);
    }
    .wave-divider svg {
      display: block;
      width: 100%;
      height: 80px;
    }
    section.hero {
      padding-bottom: 0 !important;
    }
    section.hero::after {
      display: none !important;
    }

    /* ============ UI HOTFIX 2026-05-08 ============ */

    /* 1. Соцсети в шапке: единый цвет var(--bb-sky) через currentColor (inline SVG) */
    .header-socials .social-link,
    .header-actions .header-socials a {
      width: 40px !important;
      height: 40px !important;
      border-radius: 50% !important;
      display: inline-flex !important;
      align-items: center !important;
      justify-content: center !important;
      background: rgba(255, 255, 255, 0.10);
      color: var(--bb-sky);
      transition: 0.3s;
    }
    header.scrolled .header-socials .social-link,
    header.scrolled .header-actions .header-socials a {
      background: rgba(121, 181, 209, 0.12);
      color: var(--bb-sky);
    }
    .header-socials .social-link:hover,
    .header-actions .header-socials a:hover {
      background: var(--bb-sky);
      color: var(--bb-white);
    }
    .header-socials svg {
      width: 20px !important;
      height: 20px !important;
      display: block;
      fill: currentColor;
    }

    /* 2. Кнопки "ЗАПИСАТЬСЯ" и "КАЗАНЬ" — единый стиль */
    .hero .btn-primary.btn-hero,
    .hero-cta-wrapper .btn-hero,
    .header-actions .btn-header {
      background: var(--bb-sky) !important;
      background-color: var(--bb-sky) !important;
      color: var(--bb-white) !important;
      border: none !important;
      border-color: transparent !important;
      font-family: 'Playfair Display', serif !important;
      font-weight: 300 !important;
      text-transform: uppercase !important;
      letter-spacing: 0.05em !important;
      height: 56px;
      padding: 0 28px !important;
      box-shadow: 0 8px 24px rgba(121, 181, 209, 0.25);
    }
    .hero .btn-primary.btn-hero:hover,
    .hero-cta-wrapper .btn-hero:hover,
    .header-actions .btn-header:hover {
      background: var(--bb-sky) !important;
      background-color: var(--bb-sky) !important;
      color: var(--bb-white) !important;
      border-color: transparent !important;
    }
    /* Скролл-режим хедера: КАЗАНЬ остаётся в брендовом var(--bb-sky) */
    header.scrolled .header-actions .btn-header {
      background: var(--bb-sky) !important;
      background-color: var(--bb-sky) !important;
      color: var(--bb-white) !important;
      border-color: transparent !important;
    }
    header.scrolled .header-actions .btn-header:hover {
      background: var(--bb-sky) !important;
      background-color: var(--bb-sky) !important;
    }

    /* .btn-header — Cormorant шире чем sans, поэтому компактнее */
    .header-actions .btn-header {
      height: auto !important;
      padding: 8px 18px !important;
      letter-spacing: 0.02em !important;
      font-size: 0.85rem !important;
      line-height: 1.3 !important;
      box-shadow: 0 4px 14px rgba(121, 181, 209, 0.25) !important;
    }

    /* Бейдж цены "за 990 ₽" внутри hero-кнопки — лёгкий контраст */
    .btn.btn-hero .btn-price {
      font-family: 'Manrope', sans-serif !important;
      font-weight: 700;
      letter-spacing: 0.02em;
    }

    /* 3. Телефон в шапке — sans для читаемости цифр */
    .header-actions .header-phone,
    .header-phone {
      font-family: 'Manrope', sans-serif !important;
      font-weight: 700 !important;
      letter-spacing: 0.02em !important;
      font-size: 0.95rem !important;
      text-transform: none !important;
      font-variant-numeric: tabular-nums;
    }
    .offer-text-badge strong,
    .offer-text-badge span {
      font-family: 'Playfair Display', serif !important;
      font-weight: 300 !important;
      text-transform: uppercase !important;
      letter-spacing: 0.03em !important;
      white-space: nowrap !important;
    }
    .offer-text-badge strong {
      font-size: 0.95rem !important;
      line-height: 1.15 !important;
      color: var(--bb-white) !important;
    }
    .offer-text-badge span {
      font-size: 0.7rem !important;
      line-height: 1.15 !important;
      letter-spacing: 0.05em !important;
    }
    /* hero-offer-badge — горизонтальный pill, без переносов */
    .hero-offer-badge {
      display: inline-flex !important;
      align-items: center !important;
      gap: 14px !important;
      padding: 14px 24px !important;
      border-radius: 999px !important;
      flex-wrap: nowrap !important;
      white-space: nowrap !important;
      width: auto !important;
      max-width: none !important;
    }
    .hero-offer-badge .offer-icon-badge {
      flex-shrink: 0 !important;
      font-size: 1.5rem !important;
    }
    .hero-offer-badge .offer-text-badge {
      flex-shrink: 0 !important;
      flex-direction: column !important;
    }
    /* Сбрасываем агрессивные мобильные правила, ломавшие форму */
    @media (max-width: 480px) {
      .hero-offer-badge,
      [class*="offer-badge"] {
        flex-wrap: nowrap !important;
        white-space: nowrap !important;
      }
      .offer-text-badge,
      [class*="offer-text"] {
        white-space: nowrap !important;
        word-break: normal !important;
      }
      .offer-text-badge strong {
        font-size: 0.8rem !important;
      }
      .offer-text-badge span {
        font-size: 0.75rem !important;
      }
      .hero-offer-badge {
        padding: 10px 18px !important;
        gap: 10px !important;
      }
    }

    /* 4. Звёзды в hero-trust — только обводка, без жёлтой заливки */
    .hero-trust .stars {
      color: transparent !important;
      -webkit-text-stroke: 1px rgba(255, 255, 255, 0.7);
      text-shadow: none !important;
    }

    /* Мобильный фолбэк для hero-кнопки (узкие экраны) */
    @media (max-width: 480px) {
      .hero .btn-primary.btn-hero,
      .hero-cta-wrapper .btn-hero {
        height: auto;
        min-height: 56px;
        padding: 14px 18px !important;
      }
    }


    /* Pricing: old crossed-out price (introduced 2026-05-10) */
    .price-old {
      color: rgba(70, 70, 70, 0.5);
      font-size: 0.9em;
      margin-bottom: 4px;
    }
    .price-old s { text-decoration: line-through; }

    /* Footer copyright (introduced 2026-05-10) */
    .footer-copyright {
      margin-top: 6px;
      opacity: 0.55;
      font-size: 0.78em;
      text-align: center;
    }
    /* After Visit Block (av4) — refactor 2026-06-04: вмещается в один экран на любом устройстве */
    .av4-section {
      padding: 64px 0;
      background: var(--bb-white);
      overflow: hidden;
    }
    .av4-head {
      text-align: center;
      margin-bottom: 24px;
    }
    .av4-ey {
      font-size: 11px;
      letter-spacing: 0.14em;
      text-transform: uppercase;
      color: var(--bb-sky);
      margin: 0 0 8px;
      font-family: 'Manrope', sans-serif;
    }
    .av4-h {
      font-family: 'Playfair Display', serif;
      font-size: clamp(22px, 2.4vw, 32px);
      font-weight: 400;
      color: var(--bb-ink);
      margin: 0 0 6px;
    }
    .av4-h i { color: var(--bb-sky); font-style: italic; }
    .av4-sub {
      font-size: 14px;
      color: #aaa;
      margin: 0;
      font-family: 'Manrope', sans-serif;
    }
    .av4-strip {
      display: grid;
      /* 06.08.2026: число пар «фото + текст» задаёт сборщик через --av4-cols,
         чтобы карточку можно было добавить из админки */
      grid-template-columns: repeat(var(--av4-cols, 4), 1fr);
      grid-template-rows: 180px auto;
      grid-auto-flow: column;
      gap: 14px 16px;
      padding: 0 16px;
      align-items: stretch;
    }
    .av4-img {
      width: 100%;
      height: 180px;
      overflow: hidden;
      border-radius: var(--r-m);
    }
    .av4-img img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
    }
    .av4-img--circle {
      width: 180px;
      height: 180px;
      border-radius: 50%;
      justify-self: center;
    }
    .av4-img--drop-top {
      border-radius: 90px 90px 18px 18px;
    }
    .av4-img--square {
      border-radius: var(--r-m);
    }
    .av4-txt {
      width: 100%;
      min-height: 100px;
      padding: 14px 18px;
      display: flex;
      align-items: center;
      justify-content: center;
      text-align: center;
      font-family: 'Manrope', sans-serif;
      border-radius: var(--r-m);
    }
    .av4-txt p {
      margin: 0;
      font-size: 13px;
      line-height: 1.5;
    }
    .av4-txt strong { font-weight: 700; }
    .av4-txt--tall-pill {
      border-radius: 22px 10px 22px 10px;
    }
    .av4-txt--short-alt {
      border-radius: 10px 22px 10px 22px;
    }
    .av4-txt--round-top {
      border-radius: 18px 38px 18px 18px;
    }
    .av4-txt--circle-sm {
      border-radius: var(--r-m);
    }
    .t-bl { background: var(--bb-teal); color: #fff; }
    .t-dk { background: var(--bb-ink); color: #fff; }
    .t-lt {
      background: var(--bb-bg);
      border: 1.5px solid var(--bb-line-2);
      color: var(--bb-ink);
    }
    @media (max-width: 768px) {
      .av4-section { padding: 36px 16px; }
      .av4-head { margin-bottom: 16px; }
      .av4-h { font-size: 22px; }
      .av4-sub { font-size: 12px; }
      .av4-strip {
        display: grid;
        grid-template-columns: 72px 1fr;
        grid-template-rows: auto;
        grid-auto-flow: row;
        gap: 10px 12px;
        padding: 0;
        align-items: stretch;
      }
      .av4-strip > .av4-img,
      .av4-strip > .av4-txt {
        width: 100% !important;
        margin: 0 !important;
        align-self: stretch !important;
        max-width: none;
      }
      .av4-strip > .av4-img {
        height: 72px !important;
        border-radius: 50% !important;
        aspect-ratio: 1;
        justify-self: start;
      }
      .av4-strip > .av4-txt {
        height: auto !important;
        min-height: 72px;
        padding: 10px 14px !important;
        border-radius: 14px !important;
        justify-content: flex-start;
        text-align: left;
      }
      .av4-txt p { font-size: 13px; line-height: 1.5; }
    }
    /* av4: ультра-узкие экраны (iPhone SE 1g, Galaxy S5 и т.п.) */
    @media (max-width: 360px) {
      .av4-section.av4-section { padding: 20px 12px !important; }
      .av4-section > .container > .av4-head { margin-bottom: 8px !important; }
      .av4-h { font-size: 19px; line-height: 1.15; }
      .av4-sub { font-size: 11px; }
      .av4-strip {
        gap: 8px 10px;
        grid-template-columns: 60px 1fr;
      }
      .av4-strip > .av4-img {
        height: 60px !important;
      }
      .av4-strip > .av4-txt {
        padding: 8px 12px !important;
        min-height: 60px;
      }
      .av4-txt p { font-size: 12px; line-height: 1.4; }
    }
    /* === Master Card v3 (2026-06-22) — интерактивный блок «Наш мастер».
       Появляется только если в city.php есть master_card.
       grid-template-areas даёт правильный порядок на mobile без дублирования DOM. */
    .mc-section {
      position: relative;
      padding: 72px 0;
      background:
        radial-gradient(circle at 18% 12%, rgba(218, 242, 253, 0.55), transparent 45%),
        radial-gradient(circle at 88% 88%, rgba(121, 181, 209, 0.18), transparent 50%),
        var(--bb-bg);
      overflow: hidden;
    }
    .mc-wrap {
      display: grid;
      grid-template-columns: minmax(280px, 360px) 1fr;
      grid-template-areas:
        "photo header"
        "photo details"
        "stats details";
      column-gap: 56px;
      row-gap: 0;
      align-items: start;
      max-width: 1140px;
      margin: 0 auto;
      padding: 0 24px;
    }
    .mc-header  { grid-area: header; padding-top: 6px; }
    .mc-photo-wrap { grid-area: photo; position: relative; display: flex; flex-direction: column; align-self: stretch; }
    .mc-stats   { grid-area: stats; }
    .mc-details { grid-area: details; min-width: 0; }

    .mc-photo-blob {
      position: absolute;
      inset: -28px -36px auto auto;
      width: 220px; height: 220px;
      background: radial-gradient(circle, rgba(121, 181, 209, 0.5) 0%, rgba(121, 181, 209, 0) 70%);
      filter: blur(24px);
      animation: mcBlobDrift 9s ease-in-out infinite;
      pointer-events: none;
      z-index: 0;
    }
    .mc-photo-blob.mc-blob-2 {
      inset: auto auto -32px -24px;
      width: 180px; height: 180px;
      background: radial-gradient(circle, rgba(218, 242, 253, 0.7) 0%, rgba(218, 242, 253, 0) 70%);
      animation-duration: 11s;
      animation-direction: reverse;
    }
    @keyframes mcBlobDrift {
      0%, 100% { transform: translate(0, 0) scale(1); }
      50%      { transform: translate(-18px, 22px) scale(1.08); }
    }
    .mc-photo {
      position: relative;
      z-index: 1;
      border-radius: var(--r-l);
      overflow: hidden;
      height: 100%;
      min-height: 460px;
      max-height: 760px;
      box-shadow: 0 24px 60px rgba(57, 90, 106, 0.22);
      background: var(--bb-ink);
      transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.4s;
      transform-style: preserve-3d;
      will-change: transform;
    }
    .mc-photo:hover { box-shadow: 0 32px 80px rgba(57, 90, 106, 0.32); }
    .mc-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 18%; display: block; }

    .mc-stats {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 10px;
      margin-top: 18px;
    }
    .mc-stat {
      background: var(--bb-white);
      border-radius: var(--r-s);
      padding: 12px 10px;
      text-align: center;
      box-shadow: 0 6px 18px rgba(57, 90, 106, 0.08);
      min-height: 78px;
      display: flex;
      flex-direction: column;
      justify-content: center;
    }
    .mc-stat-num {
      display: block;
      font-family: 'Playfair Display', serif;
      font-size: 20px;
      color: var(--bb-ink);
      line-height: 1;
      margin-bottom: 5px;
    }
    .mc-stat-label {
      display: block;
      font-family: 'Manrope', sans-serif;
      font-size: 10px;
      letter-spacing: 0.06em;
      text-transform: uppercase;
      color: var(--bb-sky);
      line-height: 1.3;
    }

    .mc-eyebrow {
      font-family: 'Manrope', sans-serif;
      font-size: 11px;
      letter-spacing: 0.22em;
      text-transform: uppercase;
      color: var(--bb-sky);
      margin: 0 0 14px;
      display: inline-flex;
      align-items: center;
      gap: 10px;
    }
    .mc-eyebrow::before {
      content: '';
      width: 28px; height: 1px;
      background: var(--bb-sky);
    }
    .mc-name {
      font-family: 'Playfair Display', serif;
      font-size: clamp(30px, 3.4vw, 46px);
      font-weight: 400;
      color: var(--bb-ink);
      margin: 0 0 10px;
      line-height: 1.05;
    }
    .mc-title {
      font-family: 'Manrope', sans-serif;
      font-size: 16px;
      color: var(--bb-muted);
      margin: 0 0 28px;
    }

    .mc-tags {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      margin-bottom: 24px;
    }
    .mc-tag {
      display: inline-block;
      padding: 6px 14px;
      background: rgba(218, 242, 253, 0.7);
      color: var(--bb-ink);
      border-radius: 999px;
      font-family: 'Manrope', sans-serif;
      font-size: 13px;
      font-weight: 500;
      letter-spacing: 0.02em;
      transition: background 0.2s, transform 0.2s;
    }
    .mc-tag:hover { background: rgba(121, 181, 209, 0.4); transform: translateY(-1px); }

    .mc-quote {
      position: relative;
      margin: 0 0 32px;
      padding: 16px 0 16px 24px;
      border-left: 3px solid var(--bb-sky);
      font-family: 'Playfair Display', serif;
      font-style: italic;
      font-size: clamp(17px, 1.5vw, 21px);
      line-height: 1.55;
      color: var(--bb-ink);
    }

    /* Tabs: horizontal scroll on narrow widths, no wrap, hidden scrollbar */
    .mc-tabs {
      display: flex;
      flex-wrap: nowrap;
      gap: 4px;
      margin-bottom: 18px;
      border-bottom: 1px solid rgba(57, 90, 106, 0.12);
      overflow-x: auto;
      -webkit-overflow-scrolling: touch;
      scrollbar-width: none;
    }
    .mc-tabs::-webkit-scrollbar { display: none; }
    .mc-tab {
      position: relative;
      flex: 0 0 auto;
      white-space: nowrap;
      background: none;
      border: none;
      padding: 12px 16px 14px;
      font-family: 'Manrope', sans-serif;
      font-size: 14.5px;
      font-weight: 500;
      color: #6B7E88;
      cursor: pointer;
      transition: color 0.2s;
      letter-spacing: 0.01em;
    }
    .mc-tab:hover { color: var(--bb-ink); }
    .mc-tab.is-active { color: var(--bb-ink); }
    .mc-tab.is-active::after {
      content: '';
      position: absolute;
      left: 12px; right: 12px;
      bottom: -1px;
      height: 2px;
      background: var(--bb-sky);
      border-radius: 2px;
    }
    .mc-panels { position: relative; min-height: 200px; }
    .mc-panel {
      display: none;
      animation: mcPanelIn 0.35s cubic-bezier(0.22, 1, 0.36, 1);
    }
    .mc-panel.is-active { display: block; }
    @keyframes mcPanelIn {
      from { opacity: 0; transform: translateY(8px); }
      to   { opacity: 1; transform: translateY(0); }
    }
    .mc-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 18px; }
    .mc-list li {
      position: relative;
      padding-left: 28px;
      font-family: 'Manrope', sans-serif;
      font-size: 16px;
      line-height: 1.7;
      color: var(--bb-ink);
    }
    .mc-list li::before {
      content: '';
      position: absolute;
      left: 0; top: 11px;
      width: 8px; height: 8px;
      border-radius: 50%;
      background: var(--bb-sky);
      box-shadow: 0 0 0 4px rgba(121, 181, 209, 0.18);
    }

    /* Stack on tablets and below — eyebrow + name + title above photo */
    @media (max-width: 980px) {
      .mc-section { padding: 56px 0; }
      .mc-wrap {
        grid-template-columns: 1fr;
        grid-template-areas: "header" "photo" "stats" "details";
        column-gap: 0;
        row-gap: 24px;
        max-width: 540px;
        padding: 0 20px;
      }
      .mc-header { padding-top: 0; text-align: center; }
      .mc-eyebrow {
        justify-content: center;
        margin-bottom: 12px;
      }
      .mc-eyebrow::before { display: none; }
      .mc-name { font-size: 30px; }
      .mc-title { margin-bottom: 0; }
      .mc-photo-wrap { max-width: 340px; margin: 0 auto; width: 100%; display: block; }
      .mc-photo { border-radius: var(--r-m); aspect-ratio: 4 / 5; height: auto; min-height: 0; max-height: none; }
      .mc-stats { margin-top: 0; max-width: 340px; margin-left: auto; margin-right: auto; width: 100%; }
      .mc-tags { justify-content: center; margin-top: 8px; }
      .mc-quote { font-size: 17px; padding: 14px 0 14px 20px; line-height: 1.55; }
      .mc-list li { font-size: 15.5px; line-height: 1.65; }
    }
    @media (max-width: 480px) {
      .mc-section { padding: 44px 0; }
      .mc-name { font-size: 26px; }
      .mc-stat-num { font-size: 18px; }
      .mc-stat-label { font-size: 9.5px; letter-spacing: 0.05em; }
      .mc-tab { font-size: 12.5px; padding: 10px 12px 12px; }
    }

    .mc-cta-wrap {
      margin-top: 32px;
      padding-top: 28px;
      border-top: 1px solid rgba(57, 90, 106, 0.10);
      display: flex;
      align-items: center;
      gap: 20px;
      flex-wrap: wrap;
    }
    .mc-cta-btn {
      position: relative;
      display: inline-flex;
      align-items: center;
      gap: 10px;
      background: linear-gradient(135deg, var(--bb-sky) 0%, #5C9CBE 100%);
      color: var(--bb-white);
      padding: 15px 30px;
      border-radius: 999px;
      font-family: 'Manrope', sans-serif;
      font-weight: 600;
      font-size: 15px;
      letter-spacing: 0.02em;
      text-decoration: none;
      box-shadow: 0 12px 28px rgba(121, 181, 209, 0.40);
      transition: transform 0.25s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.25s;
    }
    .mc-cta-btn:hover {
      transform: translateY(-2px);
      box-shadow: 0 18px 36px rgba(121, 181, 209, 0.52);
      color: var(--bb-white);
    }
    .mc-cta-arrow {
      display: inline-block;
      transition: transform 0.25s;
      font-weight: 400;
    }
    .mc-cta-btn:hover .mc-cta-arrow { transform: translateX(4px); }
    .mc-cta-meta {
      display: inline-flex;
      align-items: center;
      gap: 12px;
      flex-wrap: wrap;
    }
    .mc-cta-price-pill {
      display: inline-block;
      padding: 6px 12px;
      background: var(--bb-white);
      color: var(--bb-ink);
      border-radius: 999px;
      font-family: 'Manrope', sans-serif;
      font-size: 13.5px;
      font-weight: 700;
      letter-spacing: 0.01em;
      box-shadow: 0 4px 14px rgba(57, 90, 106, 0.10);
    }
    .mc-cta-note {
      font-family: 'Manrope', sans-serif;
      font-size: 13px;
      color: var(--bb-muted);
      line-height: 1.45;
    }
    @media (max-width: 980px) {
      .mc-cta-wrap { justify-content: center; flex-direction: column; text-align: center; gap: 14px; }
      .mc-cta-meta { justify-content: center; }
    }

    @media (prefers-reduced-motion: reduce) {
      .mc-photo-blob, .mc-photo { animation: none !important; transition: none !important; }
    }
/* ===== BLOCK F — Unified CTA buttons (2026-05-21) =====
           Primary: bg var(--bb-sky), white text; hover bg #A1CBDF, no transform.
           Secondary: transparent + var(--bb-sky) border; hover inverts. */
        .btn,
        .btn.btn-primary,
        .btn.btn-primary.btn-hero,
        .bw-submit,
        .rh-cta-link {
            display: inline-flex !important;
            align-items: center !important;
            justify-content: center !important;
            background: var(--bb-sky) !important;
            color: var(--bb-white) !important;
            border: none !important;
            border-radius: 999px !important;
            padding: 14px 32px !important;
            font-family: 'Manrope', sans-serif !important;
            font-weight: 500 !important;
            font-size: 14px !important;
            line-height: 1.2 !important;
            letter-spacing: 0 !important;
            text-transform: none !important;
            box-shadow: none !important;
            transform: none !important;
            transition: background-color 0.2s ease !important;
            text-decoration: none !important;
            cursor: pointer !important;
        }
        .btn:hover,
        .btn.btn-primary:hover,
        .btn.btn-primary.btn-hero:hover,
        .bw-submit:hover,
        .rh-cta-link:hover {
            background: #A1CBDF !important;
            color: var(--bb-white) !important;
            border: none !important;
            transform: none !important;
            box-shadow: none !important;
        }
        .btn.btn-outline {
            display: inline-flex !important;
            align-items: center !important;
            justify-content: center !important;
            background: transparent !important;
            color: var(--bb-sky) !important;
            border: 1px solid var(--bb-sky) !important;
            border-radius: 999px !important;
            padding: 14px 32px !important;
            font-family: 'Manrope', sans-serif !important;
            font-weight: 500 !important;
            font-size: 14px !important;
            line-height: 1.2 !important;
            letter-spacing: 0 !important;
            text-transform: none !important;
            box-shadow: none !important;
            transform: none !important;
            transition: background-color 0.2s ease, color 0.2s ease !important;
            text-decoration: none !important;
            cursor: pointer !important;
        }
        .btn.btn-outline:hover {
            background: var(--bb-sky) !important;
            color: var(--bb-white) !important;
            border: 1px solid var(--bb-sky) !important;
            transform: none !important;
            box-shadow: none !important;
        }
    
        /* ─── CTA-trio: 3 карточки перед footer (2026-06-19) ─── */
        .cta-trio {
            padding: 100px 0 60px;
            background: var(--white, #fff);
        }
        .cta-trio-head {
            text-align: center;
            margin-bottom: 50px;
        }
        .cta-trio-head h2 {
            font-family: 'Playfair Display', serif;
            font-weight: 500;
            font-size: clamp(28px, 3.5vw, 44px);
            color: var(--text-main, #111);
            margin-top: 10px;
        }
        .cta-trio-head h2 i {
            font-style: italic;
            color: var(--bb-sky);
        }
        .cta-trio-grid {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 28px;
        }
        .cta-trio-card {
            display: flex;
            flex-direction: column;
            background: var(--bg-very-light, var(--bb-bg));
            border: 1px solid #E5EEF3;
            border-radius: var(--r-l);
            padding: 36px 28px 32px;
            text-decoration: none;
            color: inherit;
            transition: transform 0.3s cubic-bezier(0.25, 1, 0.5, 1), box-shadow 0.3s, border-color 0.3s;
            text-align: left;
        }
        .cta-trio-card:hover {
            transform: translateY(-6px);
            box-shadow: 0 20px 50px rgba(57, 90, 106, 0.12);
            border-color: var(--bb-sky);
        }
        .cta-trio-icon {
            font-size: 38px;
            line-height: 1;
            margin-bottom: 18px;
            display: block;
        }
        .cta-trio-card h3 {
            font-family: 'Playfair Display', serif;
            font-weight: 500;
            font-size: 24px;
            line-height: 1.25;
            color: var(--text-main, #111);
            margin-bottom: 10px;
        }
        .cta-trio-card p {
            font-size: 14px;
            line-height: 1.5;
            color: var(--text-sec, #555);
            margin-bottom: 24px;
            flex-grow: 1;
        }
        .cta-trio-btn {
            display: inline-block;
            font-size: 14px;
            font-weight: 600;
            letter-spacing: 0.03em;
            color: var(--bb-teal-deep);
            border-bottom: 1px solid var(--bb-sky);
            padding-bottom: 2px;
            align-self: flex-start;
            transition: color 0.2s, border-color 0.2s;
        }
        .cta-trio-card:hover .cta-trio-btn {
            color: var(--bb-sky);
            border-color: var(--bb-teal-deep);
        }
        @media (max-width: 900px) {
            .cta-trio { padding: 60px 0 40px; }
            .cta-trio-head { margin-bottom: 30px; }
            .cta-trio-grid { grid-template-columns: 1fr; gap: 18px; }
            .cta-trio-card { padding: 28px 22px 24px; }
            .cta-trio-card h3 { font-size: 22px; }
        }

        
        /* 2026-06-23 v2: горизонтальный скролл со snap, БЕЗ peek-обрезов */
        .rh-track,
        .loyalty-block .loyalty-track,
        .procedures-grid {
            display: flex !important;
            grid-template-columns: none !important;
            overflow-x: auto !important;
            overflow-y: visible !important;
            gap: 16px !important;
            padding: 4px 0 18px !important;
            margin: 0 !important;
            scroll-snap-type: x mandatory !important;
            scroll-padding-inline-end: 0 !important;
            -webkit-overflow-scrolling: touch;
            scrollbar-width: none;
            scrollbar-color: #c8d8e2 transparent;
        }
        .rh-track > .rh-card,
        .reviews .rh-card,
        .loyalty-block .loyalty-slide,
        .procedures-grid > .proc-card {
            flex: 0 0 calc((100% - 32px) / 3) !important;
            min-width: 0 !important;
            max-width: none !important;
            scroll-snap-align: start !important;
        }
        .rh-track::after { display: none !important; }
        @media (max-width: 1024px) {
            .rh-track > .rh-card,
            .reviews .rh-card,
            .loyalty-block .loyalty-slide,
            .procedures-grid > .proc-card { flex: 0 0 calc((100% - 16px) / 2) !important; }
        }
        @media (max-width: 768px) {
            .rh-track,
            .loyalty-block .loyalty-track,
            .procedures-grid {
                gap: 12px !important;
            }
            .rh-track > .rh-card,
            .reviews .rh-card,
            .loyalty-block .loyalty-slide,
            .procedures-grid > .proc-card { flex: 0 0 100% !important; }
        }

        /* 2026-07-14: Sparse loyalty layout — блок абонементов при 1-2 карточках.
           Селектор с двойным классом (.loyalty-block.loyalty-block-sparse) чтобы
           побеждать стандартные .loyalty-block .loyalty-slide { flex: 0 0 300px }
           определённые ниже в файле. */
        .loyalty-block.loyalty-block-sparse .loyalty-panel {
            display: grid !important;
            grid-template-columns: 1fr 1fr !important;
            gap: 56px !important;
            align-items: center;
            max-width: 920px;
            margin: 0 auto;
        }
        .loyalty-block.loyalty-block-sparse .slider-wrapper {
            display: flex !important;
            justify-content: center;
            padding: 0 !important;
        }
        .loyalty-block.loyalty-block-sparse .results-nav { display: none !important; }
        .loyalty-block.loyalty-block-sparse .loyalty-track {
            overflow: visible !important;
            scroll-snap-type: none !important;
            padding: 0 !important;
            display: flex !important;
            justify-content: center;
        }
        .loyalty-block.loyalty-block-sparse .loyalty-slide {
            flex: 0 0 320px !important;
            min-width: 0 !important;
            max-width: 320px !important;
            scroll-snap-align: none !important;
        }
        .loyalty-sparse-info {
            display: flex;
            flex-direction: column;
            justify-content: center;
            gap: 22px;
            padding: 8px 4px;
            text-align: left;
        }
        .loyalty-sparse-benefits {
            list-style: none;
            padding: 0;
            margin: 0;
            display: flex;
            flex-direction: column;
            gap: 14px;
        }
        .loyalty-sparse-benefits li {
            position: relative;
            padding-left: 22px;
            font-size: 16px;
            line-height: 1.5;
            color: #2c3e50;
            word-break: keep-all;
            overflow-wrap: normal;
        }
        .loyalty-sparse-benefits li::before {
            content: "";
            position: absolute; left: 0; top: 10px;
            width: 8px; height: 8px;
            border-radius: 50%;
            background: var(--blue-main, var(--bb-sky));
        }
        .loyalty-sparse-lead {
            font-size: 15px;
            color: var(--bb-muted-2);
            margin: 4px 0 0;
        }
        .loyalty-sparse-cta {
            align-self: flex-start;
            padding: 14px 26px;
            font-weight: 600;
            letter-spacing: 0.02em;
        }
        .loyalty-block-sparse .bb-slide-counter { display: none !important; }
        @media (max-width: 1024px) {
            .loyalty-block.loyalty-block-sparse .loyalty-panel {
                grid-template-columns: 1fr !important;
                gap: 28px !important;
                max-width: 520px;
            }
        }
        @media (max-width: 768px) {
            .loyalty-sparse-info { text-align: center; align-items: center; }
            .loyalty-sparse-cta { align-self: center; }
            .loyalty-sparse-benefits li { text-align: left; }
        }
/* ── Смысловые блоки 2026-07-21 (bbx-*): рендерятся только у городов с данными ── */
        .bbx-section { padding-top: 120px; padding-bottom: 8px; }
        .bbx-lead { max-width: 760px; margin: 0 0 32px; font-size: 17px; line-height: 1.6; color: var(--bb-muted); }
        .bbx-note { max-width: 760px; margin: 24px 0 0; font-size: 14px; line-height: 1.6; color: var(--bb-muted-2); }

        .bbx-hero-meta { list-style: none; display: flex; flex-wrap: wrap; gap: 10px 20px; margin: 18px 0 28px; padding: 0; }
        .bbx-hero-meta li { display: flex; align-items: center; gap: 12px; font-size: 15px; line-height: 1.5; color: rgba(255,255,255,.88); white-space: nowrap; }
        /* разделитель-точка ставится ПЕРЕД каждым пунктом, кроме первого — строка читается как перечисление */
        .bbx-hero-meta li + li::before { content: ''; width: 4px; height: 4px; border-radius: 50%; background: var(--bb-sky); flex: none; }
        .bbx-hero-offer { margin: 22px 0 0; font-size: 17px; color: #fff; font-weight: 600; }
        .bbx-hero-offer s { opacity: .55; font-weight: 400; margin-left: 6px; }
        .bbx-hero-soft { margin: 10px 0 0; font-size: 14px; color: rgba(255,255,255,.72); max-width: 620px; line-height: 1.55; }

        .bbx-sit-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 16px; }
        .bbx-sit { background: #fff; border: 1px solid #e8eef2; border-radius: var(--r-m); padding: 24px; }
        .bbx-sit-title { font-size: 19px; margin: 0 0 10px; line-height: 1.3; }
        .bbx-sit-text { margin: 0 0 14px; font-size: 15px; line-height: 1.6; color: var(--bb-muted); }
        .bbx-sit-tech { margin: 0; font-size: 13px; letter-spacing: .04em; text-transform: uppercase; color: var(--bb-sky); }

        .bbx-compare { border: 1px solid #e8eef2; border-radius: var(--r-m); overflow: hidden; background: #fff; }
        .bbx-cmp-head, .bbx-cmp-row { display: grid; grid-template-columns: 1.1fr 1fr 1fr; gap: 12px; padding: 14px 20px; }
        .bbx-cmp-head { background: var(--bb-bg); font-size: 13px; letter-spacing: .04em; text-transform: uppercase; color: var(--bb-muted); }
        .bbx-cmp-row { border-top: 1px solid #eef3f6; font-size: 15px; line-height: 1.5; color: var(--bb-muted); }
        .bbx-cmp-k b { color: var(--bb-ink); }
        .bbx-cmp-a { color: var(--bb-ink); }

        .bbx-steps { list-style: none; counter-reset: bbx; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 16px; }
        .bbx-step { counter-increment: bbx; position: relative; background: #fff; border: 1px solid #e8eef2; border-radius: var(--r-m); padding: 24px 24px 24px 64px; }
        .bbx-step::before { content: counter(bbx); position: absolute; left: 24px; top: 24px; width: 28px; height: 28px; border-radius: 50%; background: var(--bb-sky); color: #fff; font-size: 14px; display: flex; align-items: center; justify-content: center; }
        .bbx-step-time { font-size: 13px; letter-spacing: .04em; text-transform: uppercase; color: var(--bb-sky); }
        .bbx-step-title { font-size: 18px; margin: 6px 0 8px; line-height: 1.3; }
        .bbx-step-text { margin: 0; font-size: 15px; line-height: 1.6; color: var(--bb-muted); }

        .bbx-route { list-style: none; margin: 12px 0 0; padding: 0; }
        .bbx-route li { position: relative; padding-left: 16px; margin-bottom: 6px; font-size: 14px; line-height: 1.5; color: var(--bb-muted); }
        .bbx-route li::before { content: ''; position: absolute; left: 0; top: 8px; width: 5px; height: 5px; border-radius: 50%; background: var(--bb-sky); }

        @media (max-width: 1024px) {
            .bbx-sit-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
        }
        @media (max-width: 760px) {
            .bbx-section { padding-top: 64px; padding-bottom: 4px; }
            .bbx-sit-grid, .bbx-steps { grid-template-columns: minmax(0,1fr); }
            .bbx-cmp-head { display: none; }
            .bbx-cmp-row { grid-template-columns: minmax(0,1fr); gap: 4px; padding: 16px 18px; }
            .bbx-cmp-k { font-size: 17px; margin-bottom: 2px; }
            .bbx-cmp-a::before { content: 'Даёт: '; color: var(--bb-muted-2); font-weight: 600; }
            .bbx-cmp-b::before { content: 'Не решает: '; color: var(--bb-muted-2); font-weight: 600; }
        }
/* 4-е фото галереи «Атмосфера студии»: показываем на телефоне и планшете,
   на ПК остаются три кадра. Стиль обязан быть в <head> — из конца <body>
   правило доезжает после первой отрисовки и кадр заметно мелькает. */
.bbs-photo--m { display: none; }
@media (max-width: 900px) {
  .bbs-photo--m { display: block; }
}
@media (max-width: 520px) {
  .bbs-gallery { grid-template-columns: 1fr 1fr !important; }
  .bbs-photo, .bbs-wide { aspect-ratio: 1 / 1.25 !important; }
}
/* cc-tap-targets 2026-08-02: пальцу нужно 44px, глазу — прежний вид */
@media (max-width:768px){
  .loyalty-more-btn,
  .bw-service-more,
  .rh-more,
  .bbc-taxi,
  .bbf-phone-small{ min-height:44px; padding-top:10px; padding-bottom:10px; }
  /* Точки карусели 8×8 нажать невозможно — расширяем область, кружок прежний */
  .results-dots{ position:relative; }
  .results-dot{ position:relative; }
  .results-dot::after{ content:""; position:absolute; top:-16px; bottom:-16px; left:-8px; right:-8px; }
  .pf-popup .pf-close{ width:40px; height:40px; }   /* базовый стиль ниже по файлу — нужна специфичность */
}
.booking-wizard { --bb-section-gap: 80px; --bb-section-gap-mobile: 48px; padding: 80px 0; background: var(--bg-very-light, var(--bb-bg)); }
        .bw-header { margin-bottom: 32px; }
        .bw-progress {
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 6px;
            margin-bottom: 20px;
        }
        .bw-progress-dot {
            width: 6px;
            height: 6px;
            border-radius: 50%;
            background: #d0dce3;
            transition: all 0.3s ease;
            display: block;
        }
        .bw-progress-dot.active {
            background: var(--bb-sky);
            width: 24px;
            border-radius: 999px;
        }
        .bw-back { background: none; border: none; color: var(--bb-sky); cursor: pointer; font-size: 14px; padding: 0; margin: 0 auto 16px; display: flex; align-items: center; gap: 4px; font-family: 'Manrope', sans-serif; }
        .bw-back[hidden] { display: none; }
        .bw-step-title { font-family: 'Playfair Display', serif; font-size: clamp(24px, 3vw, 40px); font-weight: 400; text-align: center; margin: 0 0 8px; color: var(--text-main, #1c1c1c); }
        .bw-step-title i { color: var(--bb-sky); font-style: italic; }
        .bw-summary { text-align: center; font-size: 13px; color: var(--bb-sky); margin-bottom: 28px; min-height: 18px; font-family: 'Manrope', sans-serif; }
        .bw-step { display: none; }
        .bw-step.active { display: block; }
        .bw-services-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; max-width: 880px; margin: 0 auto; align-items: stretch; }
        .bw-service-card { background: white; border: 2px solid transparent; border-radius: var(--r-s); padding: 20px; cursor: pointer; transition: border-color 0.2s, box-shadow 0.2s, background 0.2s; }
        .bw-service-card:hover { border-color: var(--bb-sky); box-shadow: 0 4px 20px rgba(121,181,209,0.15); }
        .bw-service-card.selected { border-color: var(--bb-sky); background: #F0F8FC; }
        .bw-service-icon { width: 40px; height: 40px; margin-bottom: 12px; color: var(--bb-sky); display: block; }
        .bw-service-name { font-family: 'Playfair Display', serif; font-weight: 500; font-size: 20px; margin: 0 0 4px; color: var(--text-main, #1c1c1c); }
        .bw-service-desc { font-family: 'Manrope', sans-serif; font-size: 13px; color: #6b6b6b; margin: 0 0 8px; line-height: 1.4; }
        .bw-service-price { font-family: 'Manrope', sans-serif; font-size: 13px; color: var(--bb-teal-deep); font-weight: 600; }
        .bw-service-more {
            display: flex; align-items: center; justify-content: center; gap: 6px;
            width: 100%; margin-top: 14px; padding: 10px 0 2px;
            background: transparent; border: 0; border-top: 1px solid #e6eef2;
            color: var(--bb-sky); font-family: 'Manrope', sans-serif; font-size: 11px;
            font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase;
            cursor: pointer; transition: color .2s;
        }
        .bw-service-more:hover { color: var(--bb-teal-deep); }
        .bw-service-more-chev { display: inline-block; transition: transform .25s; font-size: 13px; line-height: 1; }
        .bw-service-card.expanded .bw-service-more-chev { transform: rotate(180deg); }
        .bw-service-full {
            display: none;
            margin-top: 12px; padding-top: 12px;
            border-top: 1px dashed #e6eef2;
            font-family: 'Manrope', sans-serif; font-size: 13px;
            line-height: 1.6; color: #4a4a4a; white-space: pre-line;
            text-align: left; pointer-events: none;
        }
        .bw-service-card.expanded .bw-service-full { display: block; }
        .bw-service-pick {
            display: inline-block; margin-top: 14px;
            padding: 10px 18px; border-radius: 999px;
            background: var(--bb-sky); color: #fff;
            font-family: 'Manrope', sans-serif; font-size: 12px;
            font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase;
            text-align: center; cursor: pointer; pointer-events: auto;
            transition: background .2s;
        }
        .bw-service-pick:hover { background: var(--bb-teal-deep); }
        .bw-services-tabs {
            display: flex; overflow-x: auto; gap: 8px;
            max-width: 880px; margin: 0 auto 20px; padding: 2px 4px 6px;
            scrollbar-width: none;
        }
        .bw-services-tabs::-webkit-scrollbar { display: none; }
        .bw-services-tab {
            flex-shrink: 0; padding: 8px 16px; border-radius: 999px;
            border: 1px solid #d6e3ea; background: white; color: #6b6b6b;
            cursor: pointer; font-family: 'Manrope', sans-serif;
            font-size: 12px; font-weight: 500; letter-spacing: 0.03em;
            text-transform: uppercase; white-space: nowrap;
            transition: all .2s;
        }
        .bw-services-tab:hover { border-color: var(--bb-sky); color: var(--bb-teal-deep); }
        .bw-services-tab.active { background: var(--bb-sky); border-color: var(--bb-sky); color: white; }
        .bw-service-meta {
            display: flex; gap: 6px 14px; align-items: center; flex-wrap: wrap;
            margin: 6px 0 10px; font-family: 'Manrope', sans-serif;
            font-size: 12px; color: #6b6b6b;
        }
        .bw-service-duration { display: inline-flex; align-items: center; gap: 5px; }
        .bw-service-tags {
            display: flex; gap: 5px; flex-wrap: wrap;
            margin: 4px 0 10px;
        }
        .bw-service-tag {
            padding: 4px 10px; border-radius: 999px;
            background: #F0F8FC; color: var(--bb-teal-deep);
            font-family: 'Manrope', sans-serif;
            font-size: 11px; font-weight: 500; letter-spacing: 0.02em;
            line-height: 1.3;
        }
        .bw-masters-grid { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; }
        .bw-master-card { background: white; border: 2px solid transparent; border-radius: var(--r-s); padding: 20px 24px; cursor: pointer; text-align: center; transition: border-color 0.2s, background 0.2s; min-width: 140px; }
        .bw-master-card:hover { border-color: var(--bb-sky); }
        .bw-master-card.selected { border-color: var(--bb-sky); background: #F0F8FC; }
        .bw-master-avatar { width: 64px; height: 64px; border-radius: 50%; background: #d0e8f0; margin: 0 auto 10px; overflow: hidden; display: flex; align-items: center; justify-content: center; color: var(--bb-teal-deep); font-family: 'Playfair Display', serif; font-size: 26px; }
        .bw-master-name { font-family: 'Playfair Display', serif; font-weight: 500; font-size: 18px; margin: 0 0 4px; color: var(--text-main, #1c1c1c); }
        .bw-master-spec { font-family: 'Manrope', sans-serif; font-size: 12px; color: #6b6b6b; margin: 0; }
        .bw-dates-strip { display: flex; gap: 10px; overflow-x: auto; padding-bottom: 8px; margin: 0 auto 12px; max-width: 600px; }
        @media (min-width: 640px) { .bw-dates-strip { justify-content: center; } }
        .bw-date-btn { flex-shrink: 0; padding: 12px 16px; border-radius: var(--r-s); border: 2px solid #e0e8ec; background: white; cursor: pointer; text-align: center; font-family: 'Manrope', sans-serif; transition: border-color 0.2s, background 0.2s; min-width: 64px; }
        .bw-date-btn:hover { border-color: var(--bb-sky); }
        .bw-date-btn.selected { border-color: var(--bb-sky); background: #F0F8FC; color: var(--bb-teal-deep); }
        .bw-date-dow { font-size: 12px; color: #6b6b6b; text-transform: uppercase; letter-spacing: 0.05em; }
        .bw-date-day { font-size: 22px; font-weight: 600; color: var(--text-main, #1c1c1c); margin-top: 2px; }
        .bw-date-month { text-align: center; font-family: 'Manrope', sans-serif; font-size: 13px; color: #6b6b6b; margin-bottom: 24px; }
        .bw-times-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; max-width: 400px; margin: 0 auto; }
        .bw-time-btn { padding: 14px; border-radius: 999px; border: 2px solid #e0e8ec; background: white; cursor: pointer; font-size: 15px; font-family: 'Manrope', sans-serif; transition: background 0.2s, color 0.2s, border-color 0.2s; }
        .bw-time-btn:hover { border-color: var(--bb-sky); }
        .bw-time-btn.selected { background: var(--bb-sky); color: white; border-color: var(--bb-sky); }
        .bw-contacts-form { max-width: 420px; margin: 0 auto; }
        .bw-input { width: 100%; padding: 16px 20px; border: 1.5px solid #d6d6d6; border-radius: var(--r-s); font-size: 16px; margin-bottom: 12px; font-family: 'Manrope', sans-serif; box-sizing: border-box; transition: border-color 0.2s; }
        .bw-input:focus { outline: none; border-color: var(--bb-sky); }
        .bw-submit { width: 100%; padding: 18px; background: var(--bb-sky); color: white; border: none; border-radius: 999px; font-family: 'Playfair Display', serif; font-weight: 300; font-size: 20px; text-transform: uppercase; letter-spacing: 0.05em; cursor: pointer; transition: background 0.2s; margin-top: 8px; }
        .bw-submit:hover { background: var(--bb-teal-deep); }
        .bw-submit:disabled { opacity: 0.6; cursor: not-allowed; }
        .bw-consent { font-size: 13px; color: #888; text-align: center; margin: 16px 0 0; line-height: 1.5; font-family: 'Manrope', sans-serif; }
        .bw-consent a { color: var(--bb-sky); text-decoration: underline; }
        .bw-success { text-align: center; padding: 60px 20px; }
        .bw-success-icon { width: 72px; height: 72px; background: var(--bb-sky); border-radius: 50%; display: flex; align-items: center; justify-content: center; margin: 0 auto 20px; font-size: 36px; color: white; }
        .bw-success h3 { font-family: 'Playfair Display', serif; font-weight: 500; font-size: 2rem; margin: 0 0 8px; color: var(--text-main, #1c1c1c); }
        .bw-success p { font-family: 'Manrope', sans-serif; color: #6b6b6b; margin: 0; }
        @media (max-width: 600px) {
            .booking-wizard { padding: 64px 0; }
            .bw-services-grid { grid-template-columns: 1fr; }
        }
            /* Phase 2: loading / error / empty states */
        .bw-loading { text-align: center; padding: 40px 20px; color: var(--bb-sky); font-size: 14px; font-family: 'Manrope', sans-serif; }
        .bw-error { text-align: center; padding: 20px; color: #e74c3c; font-size: 14px; font-family: 'Manrope', sans-serif; }
        .bw-empty { text-align: center; padding: 40px 20px; color: #888; font-size: 14px; font-family: 'Manrope', sans-serif; }

        /* ─── Loyalty block: табы абонементы/сертификаты + горизонтальный слайдер ─── */
        .loyalty-block .loyalty-tabs {
            display: flex;
            gap: 10px;
            justify-content: center;
            margin: 24px 0 8px;
            flex-wrap: wrap;
        }
        .loyalty-block .loyalty-tab {
            background: var(--white);
            border: 1px solid var(--blue-light);
            color: var(--text-sec);
            padding: 10px 22px;
            border-radius: 999px;
            cursor: pointer;
            font-weight: 700;
            font-size: 0.82rem;
            letter-spacing: 0.04em;
            text-transform: uppercase;
            font-family: inherit;
            transition: all .25s;
        }
        .loyalty-block .loyalty-tab:hover {
            border-color: var(--blue-main);
            color: var(--blue-dark);
        }
        .loyalty-block .loyalty-tab.is-active {
            background: var(--blue-main);
            color: var(--white);
            border-color: var(--blue-main);
            box-shadow: var(--shadow-sm);
        }
        .loyalty-block .loyalty-panel { display: none; }
        .loyalty-block .loyalty-panel.is-active { display: block; }
        .loyalty-block .loyalty-track {
            display: flex;
            gap: 24px;
            overflow-x: auto;
            scroll-snap-type: x mandatory;
            scrollbar-width: none;
            /* 2026-06-19: увеличен padding под тени карточек (box-shadow до 48px), чтобы не срезалось при скролле */
            padding: 32px 8px 56px;
            margin: 0;
        }
        .loyalty-block .loyalty-track::-webkit-scrollbar { display: none; }
        .loyalty-block .loyalty-slide {
            min-width: 280px;
            max-width: 320px;
            scroll-snap-align: start;
            flex: 0 0 auto;
        }
        @media (min-width: 768px) {
            .loyalty-block .loyalty-slide { min-width: 300px; }
        }
        @media (max-width: 480px) {
            .loyalty-block .loyalty-slide { min-width: 85%; }
        }
        /* Loyalty cards — visual rhythm fix (2026-06-01) */
        .loyalty-block .loyalty-track { align-items: stretch; }
        .loyalty-block .loyalty-slide {
            flex: 0 0 300px !important;
            min-width: 0 !important;
            max-width: none !important;
            display: flex !important;
            flex-direction: column !important;
            box-sizing: border-box;
        }
        .loyalty-block .loyalty-slide .btn {
            margin-top: auto !important;
            width: 100% !important;
        }
        .loyalty-block .loyalty-slide h3 {
            min-height: 3em;
            display: flex;
            align-items: center;
            justify-content: center;
        }
        @media (max-width: 480px) {
            .loyalty-block .loyalty-slide { flex: 0 0 85vw !important; }
        }
        @media (min-width: 481px) and (max-width: 768px) {
            .loyalty-block .loyalty-slide { flex: 0 0 280px !important; }
        }
/* ─── A) BOOKING-WIZARD: фиксированное окно с внутренним скроллом ─────────
           Каждый шаг — position:absolute внутри .bw-body фиксированной высоты.
           Размер виджета НЕ зависит от того, какой шаг активен. Если контента
           много (8 услуг) — скролл внутри карточки. Заголовок шага «прилипает». */
        .booking-wizard .bw-body {
            position: relative;
            height: 380px;
            overflow: hidden;
        }
        .booking-wizard .bw-body > .bw-step {
            display: block !important;
            position: absolute;
            inset: 0;
            overflow-y: auto;
            overflow-x: hidden;
            padding-right: 6px;
            opacity: 0;
            visibility: hidden;
            pointer-events: none;
            transform: translateY(6px);
            transition: opacity .35s ease, transform .35s ease, visibility .35s;
        }
        .booking-wizard .bw-body > .bw-step.active {
            opacity: 1;
            visibility: visible;
            pointer-events: auto;
            transform: translateY(0);
        }
        .booking-wizard .bw-body > .bw-step::-webkit-scrollbar { width: 4px; }
        .booking-wizard .bw-body > .bw-step::-webkit-scrollbar-track { background: transparent; }
        .booking-wizard .bw-body > .bw-step::-webkit-scrollbar-thumb { background: rgba(121,181,209,0.35); border-radius: 4px; }
        /* "прилипший" заголовок шага — контекст не теряется при прокрутке */
        .booking-wizard .bw-body > .bw-step > .bw-step-title {
            position: sticky;
            top: 0;
            z-index: 5;
            background: transparent;
            -webkit-backdrop-filter: blur(6px);
            backdrop-filter: blur(6px);
            padding: 4px 0 8px;
            margin: 0 0 4px;
        }
        .booking-wizard .bw-body > .bw-step > .bw-summary {
            position: sticky;
            top: 46px;
            z-index: 4;
            background: rgba(255,255,255,0.85);
            margin: 0 0 14px;
            padding-bottom: 4px;
        }

        /* ─── B) AMBIENT blur-blob'ы removed 2026-05-20 (голубой задник убран по брендбуку) ─── */
        #procedures,
        .pricing,
        .results,
        .booking-wizard,
        .reviews,
        .contacts {
            position: relative;
        }

        /* ─── C) BOOKING-WIZARD: компактная стеклянная карточка ───────── */
        .booking-wizard {
            background: linear-gradient(180deg, var(--bb-bg) 0%, #E8F2F8 55%, var(--bb-bg) 100%) !important;
            padding: 80px 0 !important;
        }
        .booking-wizard > .container {
            background: rgba(255, 255, 255, 0.55);
            -webkit-backdrop-filter: blur(12px) saturate(140%);
            backdrop-filter: blur(12px) saturate(140%);
            border: 1px solid rgba(121, 181, 209, 0.18);
            border-radius: var(--r-l);
            padding: 28px 28px 24px;
            max-width: 880px;
            box-shadow:
                0 24px 60px -24px rgba(57, 90, 106, 0.25),
                inset 0 1px 0 rgba(255, 255, 255, 0.85);
        }
        /* Мини-плашка-заголовок: отдельный блок над стеклянной карточкой */
        .booking-wizard .bw-title-block {
            position: relative;
            z-index: 3;
            max-width: 720px;
            margin: 0 auto 44px;
            padding: 0;
            text-align: center;
            background: none;
            border: 0;
            border-radius: 0;
            -webkit-backdrop-filter: none;
            backdrop-filter: none;
            box-shadow: none;
        }

        .booking-wizard .bw-eyebrow {
            font-family: 'Manrope', sans-serif;
            font-size: 12px;
            letter-spacing: 0.18em;
            text-transform: uppercase;
            color: var(--bb-sky);
            font-weight: 700;
            margin: 0 0 14px;
        }
        .booking-wizard .bw-title {
            font-family: 'Playfair Display', serif;
            font-size: clamp(30px, 3.6vw, 46px);
            font-weight: 400;
            line-height: 1.15;
            color: var(--text-main, #111);
            margin: 0 0 6px;
            letter-spacing: -0.01em;
        }
        .booking-wizard .bw-title i { font-style: italic; color: var(--bb-sky); }
        .booking-wizard .bw-sub {
            font-family: 'Manrope', sans-serif;
            font-size: 16px;
            color: #557184;
            line-height: 1.6;
            margin: 12px auto 0;
            max-width: 520px;
        }
        @media (max-width: 640px) {
            .booking-wizard .bw-title-block { max-width: 100%; padding: 0; margin-bottom: 28px; }
            .booking-wizard .bw-sub { font-size: 12.5px; }
        }
        /* Поджать верх стеклянной карточки и хедер с прогрессом */
        .booking-wizard > .container { padding-top: 22px !important; }
        .booking-wizard .bw-header { margin-bottom: 4px !important; }
        .booking-wizard .bw-progress { margin-bottom: 0; }

        /* ─── D) Мягкий «верхний слой» секций — намёк на разделитель ── */
        .pricing  { box-shadow: inset 0 60px 60px -60px rgba(121,181,209,0.10); }
        .results  { box-shadow: inset 0 60px 60px -60px rgba(57,90,106,0.05); }
        .reviews  { box-shadow: inset 0 60px 60px -60px rgba(121,181,209,0.08); }
        .contacts { box-shadow: inset 0 60px 60px -60px rgba(57,90,106,0.05); }


        /* ─── F) Плавающие «частицы пара» на фоне booking-wizard ────── */
        /* F) «частицы пара» (.container::before) удалены 2026-05-25 по просьбе клиента */

        /* ─── G) Мобильный адаптив для blob'ов секций ────────────────── */
        @media (max-width: 768px) {
            #procedures::before, #procedures::after,
            .pricing::before, .pricing::after,
            .results::before, .results::after,
            .reviews::before, .reviews::after,
            .contacts::before, .contacts::after {
                width: 320px; height: 320px;
                filter: blur(50px);
            }
            .booking-wizard::before { width: 560px; height: 420px; filter: blur(70px); }
            .booking-wizard::after  { width: 360px; height: 360px; filter: blur(60px); }
            .slider-track {
                gap: 16px;
                padding: 10px 16px 28px;
                margin: 0 -16px;
            }
            .result-slide {
                min-width: 88vw;
                max-width: 88vw;
                scroll-snap-align: start;
            }
        }

        /* ─── H) КОМПАКТНЫЕ ВНУТРЕННИЕ ЭЛЕМЕНТЫ ШАГОВ ─────────────────
           Уменьшаем плотность карточек, чтобы виджет не «дышал»
           воздухом и помещался в окно 380px без агрессивного скролла. */
        .booking-wizard .bw-step-title {
            font-size: clamp(20px, 2.4vw, 28px) !important;
            margin: 0 0 6px !important;
        }
        .booking-wizard .bw-summary {
            font-size: 12px;
            margin-bottom: 14px !important;
            min-height: 14px;
        }
        .booking-wizard .bw-services-grid { gap: 10px; }
        .booking-wizard .bw-service-card {
            padding: 14px;
            border-radius: var(--r-s);
        }
        .booking-wizard .bw-service-icon {
            width: 28px;
            height: 28px;
            margin-bottom: 6px;
        }
        .booking-wizard .bw-service-name {
            font-size: 17px;
            margin: 0 0 2px;
        }
        .booking-wizard .bw-service-desc {
            font-size: 12px;
            line-height: 1.35;
            margin: 0 0 6px;
        }
        .booking-wizard .bw-service-price { font-size: 12px; }

        .booking-wizard .bw-masters-grid { gap: 10px; }
        .booking-wizard .bw-master-card {
            padding: 12px 16px;
            min-width: 118px;
        }
        .booking-wizard .bw-master-avatar {
            width: 48px;
            height: 48px;
            font-size: 22px;
            margin-bottom: 8px;
        }
        .booking-wizard .bw-master-name { font-size: 16px; margin: 0 0 2px; }
        .booking-wizard .bw-master-spec { font-size: 11px; }

        .booking-wizard .bw-date-btn {
            padding: 10px 14px;
            min-width: 56px;
        }
        .booking-wizard .bw-date-day { font-size: 19px; }
        .booking-wizard .bw-date-month { margin-bottom: 18px; font-size: 12px; }

        .booking-wizard .bw-times-grid { gap: 8px; }
        .booking-wizard .bw-time-btn {
            padding: 11px;
            font-size: 14px;
        }

        .booking-wizard .bw-input {
            padding: 12px 16px;
            font-size: 15px;
            margin-bottom: 10px;
        }
        .booking-wizard .bw-submit {
            padding: 14px;
            font-size: 17px;
            margin-top: 4px;
        }
        .booking-wizard .bw-consent {
            font-size: 12px;
            margin-top: 12px;
        }

        .booking-wizard .bw-success { padding: 30px 16px; }
        .booking-wizard .bw-success-icon {
            width: 56px;
            height: 56px;
            font-size: 28px;
            margin: 0 auto 14px;
        }
        .booking-wizard .bw-success h3 { font-size: 1.5rem; }

        /* ─── J) ЖИВАЯ КАРТА ЗАПИСИ (sidecar) ──────────────────────────
           На десктопе — два столбца внутри стеклянной карточки: слева
           шаг, справа «чек» который заполняется по мере выборов.
           На мобиле — горизонтальная лента чипов сверху виджета. */
        .bw-summary-card {
            background: linear-gradient(180deg, rgba(255,255,255,0.78), rgba(240,248,252,0.65));
            border: 1px solid rgba(121,181,209,0.22);
            border-radius: var(--r-m);
            padding: 22px 20px 20px;
            position: relative;
            z-index: 2;
        }
        .bw-summary-card-title {
            font-family: 'Manrope', sans-serif;
            font-size: 11px;
            letter-spacing: 0.18em;
            text-transform: uppercase;
            color: var(--bb-sky);
            font-weight: 700;
            margin: 0 0 2px;
        }
        .bw-summary-card-sub {
            font-family: 'Playfair Display', serif;
            font-size: 18px;
            color: var(--text-main, #111);
            margin: 0 0 16px;
            font-weight: 400;
            line-height: 1.25;
        }
        .bw-summary-card-sub i { font-style: italic; color: var(--bb-sky); }
        .bw-sum-rows { display: flex; flex-direction: column; }
        .bw-sum-row {
            display: flex;
            gap: 12px;
            padding: 12px 0;
            border-top: 1px dashed rgba(121,181,209,0.2);
            align-items: center;
            transition: background .25s, padding .25s, margin .25s, border-color .25s;
        }
        .bw-sum-row:first-child { border-top: none; }
        .bw-sum-row.active {
            background: rgba(121,181,209,0.10);
            border-radius: var(--r-s);
            padding: 10px 12px;
            margin: 2px -10px;
            border-top-color: transparent;
        }
        .bw-sum-row.active + .bw-sum-row { border-top-color: transparent; }
        .bw-sum-icon {
            width: 36px;
            height: 36px;
            flex-shrink: 0;
            border-radius: 50%;
            background: rgba(255,255,255,0.7);
            border: 1px solid rgba(121,181,209,0.25);
            display: flex;
            align-items: center;
            justify-content: center;
            color: var(--bb-sky);
            transition: all .35s cubic-bezier(0.25,1,0.5,1);
            overflow: hidden;
            position: relative;
        }
        .bw-sum-icon > svg { width: 16px; height: 16px; transition: opacity .25s; }
        .bw-sum-icon > img {
            position: absolute;
            inset: 0;
            width: 100%; height: 100%;
            object-fit: cover;
        }
        .bw-sum-icon-check {
            position: absolute;
            bottom: -1px;
            right: -1px;
            width: 16px;
            height: 16px;
            background: var(--bb-sky);
            color: #fff;
            border-radius: 50%;
            font-size: 9px;
            line-height: 1;
            display: flex;
            align-items: center;
            justify-content: center;
            opacity: 0;
            transform: scale(0);
            transition: opacity .3s, transform .3s cubic-bezier(0.34, 1.56, 0.64, 1);
            border: 2px solid #fff;
            z-index: 2;
        }
        .bw-sum-row.filled .bw-sum-icon {
            background: linear-gradient(135deg, var(--bb-sky), #5A9BBA);
            color: #fff;
            border-color: transparent;
            box-shadow: 0 4px 14px rgba(121,181,209,0.32);
        }
        .bw-sum-row.filled .bw-sum-icon-check {
            opacity: 1;
            transform: scale(1);
        }
        .bw-sum-text { flex: 1; min-width: 0; }
        .bw-sum-label {
            font-family: 'Manrope', sans-serif;
            font-size: 10px;
            letter-spacing: 0.12em;
            text-transform: uppercase;
            color: #888;
            font-weight: 600;
            margin: 0;
        }
        .bw-sum-value {
            font-family: 'Manrope', sans-serif;
            font-size: 14px;
            color: var(--text-main, #111);
            font-weight: 600;
            line-height: 1.25;
            margin-top: 2px;
            word-break: break-word;
            min-height: 17px;
        }
        .bw-sum-row.empty .bw-sum-value::before {
            content: attr(data-placeholder);
            color: #b0b8bc;
            font-weight: 400;
            font-style: italic;
            font-size: 12px;
        }

        /* ── Desktop: двухколоночный grid внутри стеклянной карточки ── */
        @media (min-width: 769px) {
            .booking-wizard > .container {
                display: grid !important;
                grid-template-columns: minmax(0, 1fr) 260px;
                column-gap: 24px;
                row-gap: 0;
                align-items: start;
                max-width: 1160px !important;
            }
            .booking-wizard > .container > .bw-header,
            .booking-wizard > .container > .bw-body {
                grid-column: 1;
            }
            .booking-wizard > .container > .bw-summary-card {
                grid-column: 2;
                grid-row: 1 / span 2;
                align-self: stretch;
            }
            .booking-wizard .bw-body > .bw-step > .bw-summary {
                display: none !important;
            }
        }

        /* ── Mobile: лента чипов сверху, карточка свёрнута ── */
        @media (max-width: 768px) {
            .booking-wizard > .container {
                display: flex !important;
                flex-direction: column;
            }
            .bw-summary-card {
                order: -1;
                padding: 8px;
                border-radius: var(--r-s);
                margin-bottom: 10px;
            }
            .bw-summary-card-title,
            .bw-summary-card-sub { display: none; }
            .bw-sum-rows {
                flex-direction: row;
                flex-wrap: nowrap;
                gap: 6px;
                overflow-x: auto;
                padding: 0 2px 4px;
                scrollbar-width: none;
            }
            .bw-sum-rows::-webkit-scrollbar { display: none; }
            .bw-sum-row {
                flex: 0 0 auto;
                padding: 6px 14px 6px 6px;
                border: 1px solid rgba(121,181,209,0.22);
                border-radius: 999px;
                background: rgba(255,255,255,0.6);
                gap: 8px;
            }
            .bw-sum-row.filled {
                border-color: rgba(121,181,209,0.5);
                background: linear-gradient(135deg, rgba(218,242,253,0.8), rgba(255,255,255,0.7));
            }
            .bw-sum-row.active {
                border-color: rgba(121,181,209,0.7);
                background: rgba(218,242,253,0.85);
                box-shadow: 0 2px 8px rgba(121,181,209,0.18);
                padding: 6px 14px 6px 6px;
                margin: 0;
            }
            .bw-sum-icon { width: 24px; height: 24px; }
            .bw-sum-icon > svg { width: 12px; height: 12px; }
            .bw-sum-icon-check {
                width: 12px; height: 12px;
                font-size: 8px;
                bottom: -2px; right: -2px;
                border-width: 1.5px;
            }
            .bw-sum-label { display: none; }
            .bw-sum-value {
                font-size: 12px;
                margin: 0;
                white-space: nowrap;
                max-width: 110px;
                overflow: hidden;
                text-overflow: ellipsis;
            }
            .bw-sum-row.empty .bw-sum-value::before { font-size: 11px; }
            .booking-wizard .bw-body > .bw-step > .bw-summary { display: none !important; }
        }

        /* ─── I) МОБИЛЬНЫЙ АДАПТИВ ВИДЖЕТА — то же, но плотнее ────── */
        @media (max-width: 600px) {
            .booking-wizard { padding: 64px 0 !important; }
            .booking-wizard > .container {
                padding: 20px 16px 18px !important;
                border-radius: 22px !important;
            }
            .booking-wizard .bw-body { height: 440px; }
            .booking-wizard .bw-step-title {
                font-size: 20px !important;
            }
            .booking-wizard .bw-service-card {
                padding: 12px;
                border-radius: var(--r-s);
            }
            .booking-wizard .bw-service-name { font-size: 16px; }
            .booking-wizard .bw-master-card { min-width: 0; padding: 10px 12px; }
            .booking-wizard .bw-master-avatar { width: 42px; height: 42px; font-size: 18px; }
            .booking-wizard .bw-input {
                padding: 11px 14px;
                font-size: 14px;
            }
            .booking-wizard .bw-submit {
                padding: 13px;
                font-size: 16px;
            }
            /* Облегчаем декоративные «частицы пара» на узких экранах */
        }

        /* ─── K) КАЛЕНДАРЬ: 30 дней + бейдж месяца + разделитель ───── */
        .booking-wizard .bw-dates-strip {
            justify-content: flex-start !important;
            max-width: 100% !important;
            scroll-snap-type: x mandatory;
            scroll-padding-left: 4px;
            padding: 4px 8px 14px !important;
            margin: 0 -8px 14px !important;
            -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 5%, #000 95%, transparent 100%);
            mask-image: linear-gradient(90deg, transparent 0%, #000 5%, #000 95%, transparent 100%);
            scrollbar-width: thin;
        }
        .booking-wizard .bw-dates-strip::-webkit-scrollbar { height: 4px; }
        .booking-wizard .bw-dates-strip::-webkit-scrollbar-thumb { background: rgba(121,181,209,0.35); border-radius: 4px; }
        .booking-wizard .bw-date-btn {
            scroll-snap-align: start;
            position: relative;
            padding: 8px 14px 10px !important;
        }
        .booking-wizard .bw-date-mon {
            font-family: 'Manrope', sans-serif;
            font-size: 9px;
            text-transform: uppercase;
            letter-spacing: 0.1em;
            color: var(--bb-sky);
            font-weight: 700;
            line-height: 1;
            margin-bottom: 4px;
            text-align: center;
        }
        .booking-wizard .bw-date-btn.bw-date-first {
            margin-left: 10px;
        }
        .booking-wizard .bw-date-btn.bw-date-first::before {
            content: '';
            position: absolute;
            left: -7px;
            top: 25%;
            bottom: 25%;
            width: 1.5px;
            background: linear-gradient(180deg, transparent, rgba(121,181,209,0.55), transparent);
            border-radius: 1px;
        }
        .booking-wizard .bw-date-btn.bw-date-weekend .bw-date-dow {
            color: #C97D6E;
        }

        /* ─── L) СПА-ИЛЛЮСТРАЦИИ removed 2026-05-20 (эвкалипт/лотос/камни/пар/венки удалены) ─── */

        /* ─── M) ВЕКТОР 2: «РИТУАЛ» ───────────────────────────────────
           Тёплый акцент-сигнал, дыхание, дрейф, недельный круг,
           свеча. Идея «час с собой раз в неделю» — без копирайта,
           только через визуальные намёки. */

        :root {
            --ritual-honey: #A8D0E3;
            --ritual-amber: var(--bb-sky);
            --ritual-cream: #EFF7FB;
            --ritual-glow:  rgba(121, 181, 209, 0.5);
        }

        /* M.1 — Дыхание (slow breathing) на иконках summary-card.
           Не анимируем при prefers-reduced-motion. */
        @keyframes ritual-breath {
            0%, 100% { transform: scale(1);    opacity: 0.85; }
            50%      { transform: scale(1.07); opacity: 1; }
        }
        .bw-summary-card .bw-sum-row.filled .bw-sum-icon {
            animation: ritual-breath 4.5s ease-in-out infinite;
            animation-delay: 0.4s;
        }

        /* M.2 — Дрейф ambient-blob'ов removed 2026-05-20 (blob'ы удалены) */

        /* M.3 — Недельный круг в summary-card: 7 точек, одна тёплая.
           Тихий намёк «час раз в неделю». Прячется в углу.
           На мобиле — не показываем (карта свёрнута в чипы). */
        @media (min-width: 769px) {
            .bw-summary-card {
                position: relative;
            }
            /* M.3) «недельный круг из точек» (.bw-summary-card::after) удалён 2026-05-25 по просьбе клиента */
        }

        /* M.4 — (свеча в .contacts-wrapper удалена 2026-05-14: перекрывала VK-иконку) */

        /* M.5 — Тёплый «свечной» highlight на активных состояниях
           summary-card. Когда поле заполнено — рядом с зелёной
           галочкой проступает тёплое свечение (теплее, человечнее). */
        .bw-summary-card .bw-sum-row.filled .bw-sum-icon-check {
            box-shadow: 0 0 0 4px var(--ritual-glow);
        }
        .bw-summary-card .bw-sum-row.active::before {
            content: '';
            position: absolute;
            left: -2px;
            top: 50%;
            transform: translateY(-50%);
            width: 3px;
            height: 60%;
            background: linear-gradient(180deg, transparent, var(--ritual-amber), transparent);
            border-radius: 2px;
            opacity: 0.7;
        }
        .bw-summary-card .bw-sum-row { position: relative; }

        /* M.6 — Тёплая «лунная» точка над hero-заголовком: тихий
           «вечерний» сигнал интимности. Скромная, на правом верху. */
        .hero {
            position: relative;
        }
        .hero::after {
            content: '';
            position: absolute;
            top: 120px;
            right: 8%;
            width: 88px;
            height: 88px;
            pointer-events: none;
            z-index: 4;
            background: radial-gradient(circle at 50% 50%,
                rgba(245, 235, 220, 0.65) 0%,
                rgba(232, 201, 164, 0.35) 40%,
                transparent 70%);
            border-radius: 50%;
            filter: blur(2px);
            animation: ritual-breath 7s ease-in-out infinite;
        }
        @media (max-width: 768px) {
            .hero::after {
                top: 90px;
                right: 4%;
                width: 56px;
                height: 56px;
            }
        }

        /* M.7 — Тонкая горизонтальная «вечерняя» полоса под hero
           (на стыке с wave-divider): шёпот «час свечей». */
        .wave-divider {
            position: relative;
        }
        .wave-divider::before {
            content: '';
            position: absolute;
            top: -1px;
            left: 0;
            right: 0;
            height: 2px;
            background: linear-gradient(90deg,
                transparent 0%,
                rgba(232, 201, 164, 0.0) 20%,
                rgba(232, 201, 164, 0.55) 50%,
                rgba(232, 201, 164, 0.0) 80%,
                transparent 100%);
            pointer-events: none;
            z-index: 3;
        }

        /* M.8 — Доступность: уважаем prefers-reduced-motion */
        @media (prefers-reduced-motion: reduce) {
            .bw-summary-card .bw-sum-row.filled .bw-sum-icon,
            .bw-summary-card::after,
            .pricing::after,
            .reviews::before,
            .booking-wizard::after,
            .results::before,
            .contacts::after,
            #procedures::before,
            .hero::after {
                animation: none !important;
            }
        }

        /* ─── N) БОКОВЫЕ КОЛОННЫ-ЛИСТЬЯ removed 2026-05-20 ─── */

        /* N.2 — Hero parallax: фото стоит при скролле, текст уходит вверх */
        @media (min-width: 769px) {
            .hero-bg {
                background-attachment: fixed !important;
            }
        }

        /* N.3 — Hover-tilt + halo на карточках: 3D-наклон при hover */
        .proc-card,
        .price-card,
        .review-card,
        .problem-card,
        .offer-card,
        .result-slide {
            transform-style: preserve-3d;
            transition: transform .45s cubic-bezier(0.2, 0.8, 0.2, 1),
                        box-shadow .45s cubic-bezier(0.2, 0.8, 0.2, 1);
            will-change: transform;
        }
        .proc-card:hover {
            transform: perspective(1000px) rotateX(2deg) rotateY(-2deg) translateY(-6px);
            box-shadow: 0 30px 60px -16px rgba(57,90,106,0.28),
                        0 0 36px rgba(232,201,164,0.22);
        }
        .price-card:hover {
            transform: none;
            box-shadow: 0 8px 24px -12px rgba(57,90,106,0.14);
        }
        .review-card:hover {
            transform: perspective(1000px) rotateY(1.5deg) translateY(-4px);
            box-shadow: 0 22px 50px -14px rgba(57,90,106,0.20),
                        0 0 28px rgba(232,201,164,0.16);
        }
        .offer-card:hover {
            transform: perspective(1000px) rotateX(-1deg) rotateY(1deg) translateY(-6px);
        }
        .result-slide:hover {
            transform: perspective(1000px) rotateY(-2deg) translateY(-4px);
            box-shadow: 0 30px 60px -16px rgba(57,90,106,0.22),
                        0 0 36px rgba(232,201,164,0.20);
        }

        /* N.4 — Доступность: убираем тилт и колонки при reduced motion */
        @media (prefers-reduced-motion: reduce) {
            body::before, body::after { animation: none !important; }
            .proc-card:hover,
            .review-card:hover,
            .offer-card:hover,
            .result-slide:hover {
                transform: translateY(-4px) !important;
            }
            .price-card:hover { transform: none !important; }
        }

        /* ─── O) URGENCY — popular-dots + hero next-slot badge — 2026-05-14 ─── */

        /* O.1 — «Часто выбирают» на вечерних слотах 17:00–20:00 */
        /* 2026-06-19: звёздочки "популярных" слотов убраны по просьбе клиента */

        /* O.2 — Hero «Ближайшее свободное окно» */
        .hero-next-slot-badge {
            display: flex;
            width: -webkit-fit-content;
            width: -moz-fit-content;
            width: fit-content;
            align-items: center;
            gap: 10px;
            background: rgba(255, 255, 255, 0.10);
            -webkit-backdrop-filter: blur(10px);
            backdrop-filter: blur(10px);
            padding: 10px 18px 10px 14px;
            border-radius: 999px;
            border: 1px solid rgba(121, 181, 209, 0.42);
            font-family: 'Manrope', sans-serif;
            font-size: 13px;
            color: #fff;
            margin: 20px auto 8px;
            cursor: pointer;
            transition: transform .35s cubic-bezier(0.25,1,0.5,1),
                        background .35s,
                        box-shadow .35s;
            text-decoration: none;
            opacity: 0;
            transform: translateY(8px);
            animation: ritual-slot-appear .6s cubic-bezier(0.25,1,0.5,1) .4s forwards;
            box-shadow: 0 4px 14px rgba(57, 90, 106, 0.18);
        }
        .hero-next-slot-badge:hover {
            background: rgba(255, 255, 255, 0.18);
            transform: translateY(-2px);
            box-shadow: 0 8px 24px rgba(57, 90, 106, 0.25), 0 0 24px rgba(121,181,209,0.25);
        }
        @keyframes ritual-slot-appear {
            to { opacity: 1; transform: translateY(0); }
        }
        .hero-next-slot-dot {
            width: 9px;
            height: 9px;
            border-radius: 50%;
            background: #4ADE80;
            box-shadow: 0 0 10px #4ADE80, 0 0 0 0 rgba(74, 222, 128, 0.5);
            flex-shrink: 0;
            animation: ritual-slot-pulse 1.8s ease-in-out infinite;
        }
        @keyframes ritual-slot-pulse {
            0%, 100% { box-shadow: 0 0 10px #4ADE80, 0 0 0 0 rgba(74,222,128,0.5); transform: scale(1); }
            50%      { box-shadow: 0 0 14px #4ADE80, 0 0 0 8px rgba(74,222,128,0); transform: scale(1.1); }
        }
        .hero-next-slot-text { line-height: 1.3; }
        .hero-next-slot-text b {
            color: var(--ritual-cream);
            font-weight: 600;
        }
        @media (max-width: 600px) {
            .hero-next-slot-badge { font-size: 12px; padding: 8px 14px 8px 12px; gap: 8px; margin: 16px auto 6px; }
            .hero-next-slot-dot { width: 8px; height: 8px; }
        }
        @media (prefers-reduced-motion: reduce) {
            .hero-next-slot-badge { animation: none; opacity: 1; transform: none; }
            .hero-next-slot-dot { animation: none; }
        }

        /* ===== Block C — Аппаратные технологии fixes (2026-05-21) ===== */

        /* C.1 — убираем transform на hover (фото больше не "сужается", карточка не наклоняется) */
        .proc-card:hover img { transform: none; }
        .proc-card:hover { transform: none; }

        /* C.2 — фото должны заполнять карточку без растяжения, без обрезки по краям */
        .proc-card img { object-fit: cover; object-position: center; }

        /* C.3 — больше воздуха между текстом и краем карточки */
        .proc-card { padding: 28px; }

        /* C.4 — карусель с snap-scroll + chevron-подсказка на узких экранах */
        @media (max-width: 1023px) {
            #procedures { position: relative; }

            .procedures-grid {
                display: flex;
                flex-wrap: nowrap;
                overflow-x: auto;
                scroll-snap-type: x mandatory;
                gap: 16px;
                padding: 0 24px 12px;
                margin-left: -24px;
                margin-right: -24px;
                -webkit-overflow-scrolling: touch;
                scroll-padding-inline: 24px;
            }
            .procedures-grid::-webkit-scrollbar { height: 4px; }
            .procedures-grid::-webkit-scrollbar-thumb {
                background: rgba(121, 181, 209, 0.45);
                border-radius: 2px;
            }
            .procedures-grid::-webkit-scrollbar-track { background: transparent; }

            .procedures-grid > .proc-card {
                flex: 0 0 78%;
                max-width: 320px;
                scroll-snap-align: start;
            }

            #procedures::after {
                content: '›';
                position: absolute;
                right: 6px;
                top: 60%;
                transform: translateY(-50%);
                font-size: 40px;
                line-height: 1;
                color: var(--blue-main);
                pointer-events: none;
                z-index: 5;
                text-shadow: 0 2px 8px rgba(255, 255, 255, 0.9);
                animation: procHintPulse 1.6s ease-in-out infinite;
            }
            @keyframes procHintPulse {
                0%, 100% { transform: translate(0, -50%);    opacity: 0.45; }
                50%      { transform: translate(8px, -50%);  opacity: 1; }
            }
        }
        @media (prefers-reduced-motion: reduce) {
            #procedures::after { animation: none; opacity: 0.7; }
        }
    
        /* ==========================================================
           BLOCK H — VERTICAL RHYTHM (city templates, 2026-05-21)
           120/64 between sections, 48/32 head→content, 24 cards gap.
           Hero excluded — keeps its full-bleed layout.
           ========================================================== */
        :root {
            --bb-section-gap: 120px;
            --bb-section-gap-mobile: 64px;
            --bb-head-gap: 48px;
            --bb-head-gap-mobile: 32px;
            --bb-card-gap: 24px;
        }
        section:not(.hero) {
            padding-top: var(--bb-section-gap) !important;
            padding-bottom: var(--bb-section-gap) !important;
        }
        /* av4: компактная секция, должна влезать в один viewport */
        section.av4-section.av4-section {
            padding-top: 56px !important;
            padding-bottom: 56px !important;
        }
        section:not(.hero) > h2:first-of-type,
        section:not(.hero) > .container > h2:first-of-type,
        section:not(.hero) > .container > .reviews-head,
        section:not(.hero) > .reviews-head,
        section:not(.hero) > .container > .bw-header,
        section:not(.hero) > .bw-header,
        section:not(.hero) > .container > .av4-head,
        section:not(.hero) > .av4-head,
        section:not(.hero) > .container > .st-tabs-head,
        section:not(.hero) > .st-tabs-head {
            margin-bottom: var(--bb-head-gap) !important;
        }
        section.av4-section > .container > .av4-head {
            margin-bottom: 20px !important;
        }
        .procedures-grid,
        .pricing-grid,
        .reviews-grid,
        .bw-services-grid,
        .bw-masters-grid,
        .bw-times-grid,
        .results-grid,
        .problems-grid,
        .st-cards,
        .faq-list {
            gap: var(--bb-card-gap) !important;
        }
        @media (max-width: 768px) {
            section:not(.hero) {
                padding-top: var(--bb-section-gap-mobile) !important;
                padding-bottom: var(--bb-section-gap-mobile) !important;
            }
            section.av4-section.av4-section {
                padding-top: 32px !important;
                padding-bottom: 32px !important;
            }
            section:not(.hero) > h2:first-of-type,
            section:not(.hero) > .container > h2:first-of-type,
            section:not(.hero) > .container > .reviews-head,
            section:not(.hero) > .reviews-head,
            section:not(.hero) > .container > .bw-header,
            section:not(.hero) > .bw-header,
            section:not(.hero) > .container > .av4-head,
            section:not(.hero) > .av4-head,
            section:not(.hero) > .container > .st-tabs-head,
            section:not(.hero) > .st-tabs-head {
                margin-bottom: var(--bb-head-gap-mobile) !important;
            }
            section.av4-section > .container > .av4-head {
                margin-bottom: 14px !important;
            }
        }
        /* ========================================================== */

    
        /* ==========================================================
           HERO → SECTION TRANSITION (2026-05-29)
           Матчим главную статику: никакого градиента — hero обрывается,
           следующий блок начинается с чистого края. Сам div .hero-fade
           оставляем (есть в собранных страницах), просто скрываем.
           ========================================================== */
        .hero-fade { display: none !important; }
        .wave-divider { display: none !important; }
        /* ========================================================== */

    
        /* ==========================================================
           LEADFORM SECTION POLISH (2026-05-21)
           Replaces the bare centred form on Dikidi/email cities.
           Two-column grid: 3-step explainer + form card.
           ========================================================== */
        .bb-leadform-section {
            position: relative;
            overflow: hidden;
        }

        /* Fix 2026-05-25: leadform reuses .booking-wizard > .container, which on
           desktop becomes a 2-col grid (minmax(0,1fr) 260px) for the YClients
           summary card. That empty 260px column squeezed the lead form. Reset
           the container to a plain block so .bb-leadform-grid uses full width. */
        .booking-wizard.bb-leadform-section > .container {
            display: block !important;
            grid-template-columns: none !important;
        }
        .bb-leadform-section .bw-title-block {
            margin: 0 auto 56px !important;
            text-align: center;
            position: relative;
            z-index: 2;
        }
        .bb-leadform-grid {
            display: grid;
            grid-template-columns: 0.9fr 1.1fr;
            gap: 64px;
            max-width: 920px;
            margin: 0 auto;
            align-items: start;
            position: relative;
            z-index: 2;
        }
        .bb-leadform-steps {
            list-style: none;
            padding: 8px 0 0;
            margin: 0;
            display: flex;
            flex-direction: column;
            gap: 32px;
        }
        .bb-leadform-steps li {
            display: grid;
            grid-template-columns: 44px 1fr;
            gap: 18px;
            align-items: start;
        }
        .bb-leadform-step-num {
            width: 44px;
            height: 44px;
            border-radius: 50%;
            background: rgba(121, 181, 209, 0.12);
            color: var(--bb-sky);
            display: flex;
            align-items: center;
            justify-content: center;
            font-family: 'Playfair Display', serif;
            font-weight: 400;
            font-style: italic;
            font-size: 22px;
            flex-shrink: 0;
        }
        .bb-leadform-steps li > div {
            font-family: 'Manrope', sans-serif;
            font-size: 14px;
            line-height: 1.55;
            color: #4A5563;
        }
        .bb-leadform-steps li strong {
            display: block;
            font-family: 'Playfair Display', serif;
            font-weight: 400;
            font-style: normal;
            font-size: 21px;
            line-height: 1.2;
            color: var(--bb-ink);
            margin-bottom: 6px;
        }
        .bb-leadform-card {
            background: var(--bb-white);
            border: 1px solid #E8EEF3;
            border-radius: var(--r-l);
            padding: 40px 36px;
            box-shadow: 0 16px 40px rgba(57, 90, 106, 0.07);
        }
        .bb-leadform-card .bw-contacts-form {
            max-width: 100% !important;
            margin: 0 !important;
        }
        .bb-leadform-label {
            display: block;
            font-family: 'Manrope', sans-serif;
            font-size: 12px;
            font-weight: 600;
            color: var(--bb-teal-deep);
            text-transform: uppercase;
            letter-spacing: 0.12em;
            margin-bottom: 18px;
        }
        .bb-leadform-label .bw-input {
            margin-top: 8px !important;
            margin-bottom: 0 !important;
            font-size: 16px;
            color: var(--bb-ink);
        }
        .bb-leadform-card .bw-submit {
            margin-top: 22px !important;
        }
        .bb-leadform-card .bw-consent {
            font-family: 'Manrope', sans-serif;
            font-size: 12px;
            line-height: 1.5;
            color: #94A3B8;
            text-align: center;
            margin: 14px 0 0;
        }
        .bb-leadform-card .bw-consent a {
            color: var(--bb-sky);
            text-decoration: none;
            border-bottom: 1px dotted rgba(121, 181, 209, 0.5);
        }
        .bb-leadform-success {
            text-align: center;
            padding: 32px 8px;
        }
        .bb-leadform-check {
            width: 64px;
            height: 64px;
            border-radius: 50%;
            background: rgba(121, 181, 209, 0.14);
            color: var(--bb-sky);
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 32px;
            margin: 0 auto 20px;
        }
        .bb-leadform-success h3 {
            font-family: 'Playfair Display', serif;
            font-weight: 300;
            font-size: 28px;
            margin: 0 0 8px;
            color: var(--bb-ink);
        }
        .bb-leadform-success p {
            font-family: 'Manrope', sans-serif;
            font-size: 15px;
            line-height: 1.55;
            color: #4A5563;
            margin: 0;
        }

        @media (max-width: 880px) {
            .bb-leadform-grid {
                grid-template-columns: 1fr;
                gap: 36px;
                max-width: 480px;
            }
            .bb-leadform-card { padding: 32px 24px; }
            .bb-leadform-section .bw-title-block { margin-bottom: 36px !important; }
        }
        /* ========================================================== */

    /* HERO CTA MOBILE ALIGNMENT FIX (2026-05-22) — выравниваем плашки под CTA по ширине */
    @media (max-width: 600px) {
      .hero-cta-wrapper { align-items: stretch !important; }
      .hero-offer-badge {
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
        justify-content: center !important;
      }
      .hero-next-slot-badge {
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        justify-content: center !important;
      }
      .hero-trust {
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
      }
    }

    /* HERO BTN-PRICE NOWRAP (2026-05-22) — цена записи в одну строку */
    .btn-price { white-space: nowrap !important; }
    /* HERO BTN FONT UNIFY (2026-05-22) — шрифт hero-кнопок = Manrope (как body), без DM Sans/Cormorant */
    .btn.btn-hero,
    .hero .btn-primary.btn-hero,
    .hero-cta-wrapper .btn-hero {
      font-family: "Manrope", sans-serif !important;
      font-weight: 600 !important;
      letter-spacing: 0.02em !important;
    }

    /* HERO CTA REDESIGN v1 (2026-05-26) — Вариант 1: 2 кнопки в ряд + plain-строка слота */
    .hero-cta-row {
        display: flex;
        flex-wrap: wrap;
        gap: 12px;
        margin-bottom: 16px;
    }
    .hero-cta-primary {
        border: 0; cursor: pointer; -webkit-appearance: none; appearance: none;
        background: var(--bb-sky); color: #fff;
        border-radius: 40px; padding: 0 28px; height: 52px;
        display: flex; align-items: center;
        font-family: 'Manrope', sans-serif;
        font-size: 12px; font-weight: 500;
        letter-spacing: 0.12em; text-transform: uppercase;
        transition: background-color .2s ease;
        white-space: nowrap;
    }
    .hero-cta-primary:hover { background: #A1CBDF; }
    .hero-cta-gift {
        border: 1px solid rgba(255,255,255,0.2); cursor: pointer;
        background: rgba(255,255,255,0.1); color: #fff;
        border-radius: 40px; padding: 0 24px; height: 52px;
        display: flex; align-items: center; gap: 10px;
        font-family: 'Manrope', sans-serif;
        transition: background-color .2s ease, border-color .2s ease;
        -webkit-appearance: none; appearance: none;
    }
    .hero-cta-gift:hover {
        background: rgba(255,255,255,0.18);
        border-color: rgba(255,255,255,0.3);
    }
    .hero-cta-gift-icon { font-size: 16px; line-height: 1; }
    .hero-cta-gift-text {
        display: flex; flex-direction: column;
        align-items: flex-start; line-height: 1.2; text-align: left;
    }
    .hero-cta-gift-title {
        font-family: 'Manrope', sans-serif;
        font-size: 13px; color: rgba(255,255,255,0.85);
    }
    .hero-cta-gift-sub {
        font-family: 'Manrope', sans-serif;
        font-size: 11px; letter-spacing: 0.08em;
        text-transform: uppercase;
        color: rgba(255,255,255,0.78); margin-top: 2px;
    }
    /* 2026-06-04: secondary hero-CTA — Внести предоплату, открывает pf-попап */
    .hero-cta-prepay {
        border: 1px solid rgba(255,255,255,0.35); cursor: pointer;
        background: rgba(255,255,255,0.10); color: #fff;
        border-radius: 40px; padding: 0 22px; height: 52px;
        display: flex; align-items: center; gap: 10px;
        font-family: 'Manrope', sans-serif;
        font-size: 12px; font-weight: 500;
        letter-spacing: 0.1em; text-transform: uppercase;
        transition: background-color .2s ease, border-color .2s ease;
        -webkit-appearance: none; appearance: none;
        white-space: nowrap;
    }
    .hero-cta-prepay:hover {
        background: rgba(255,255,255,0.20);
        border-color: rgba(255,255,255,0.55);
    }
    .hero-cta-prepay-icon { font-size: 14px; line-height: 1; }
    @media (max-width: 600px) {
        .hero-cta-prepay { width: 100%; justify-content: center; }
    }
    /* Prepay popup (pf-*) — reused from /prepay-page for hero-CTA */
    .pf-overlay{position:fixed;inset:0;background:rgba(30,30,30,0.55);z-index:1000;opacity:0;pointer-events:none;transition:opacity 0.3s;backdrop-filter:blur(6px)}
    .pf-overlay.active{opacity:1;pointer-events:all}
    .pf-popup{position:fixed;top:50%;left:50%;transform:translate(-50%,-46%) scale(0.96);z-index:1001;background:#fff;border-radius: var(--r-l);padding:40px 36px 36px;width:420px;max-width:94vw;box-shadow:0 40px 100px rgba(0,0,0,0.18);transition:transform 0.35s cubic-bezier(0.34,1.56,0.64,1),opacity 0.3s;opacity:0;pointer-events:none}
    .pf-popup.active{opacity:1;pointer-events:all;transform:translate(-50%,-50%) scale(1)}
    .pf-title{font-family: 'Playfair Display', serif;font-size:28px;font-weight:400;color:#464646;margin-bottom:6px;line-height:1.15}
    .pf-sub{font-size:13px;color:#aaa;margin-bottom:24px}
    .pf-field{width:100%;padding:14px 18px;margin-bottom:12px;border:1.5px solid rgba(121,181,209,0.35);border-radius: var(--r-s);background:var(--bb-bg);font-family:'DM Sans',sans-serif;font-size:15px;color:#464646;outline:none;transition:border-color 0.2s,box-shadow 0.2s;box-sizing:border-box}
    .pf-field:focus{border-color:var(--bb-sky);box-shadow:0 0 0 3px rgba(121,181,209,0.15);background:#fff}
    .pf-popup #clientPhone{color:var(--bb-sky);letter-spacing:0.5px;font-size:15px}
    .pf-field::placeholder{color:#b0c8d4}
    .pf-btn{width:100%;padding:16px;background:var(--bb-sky);color:#fff;border:none;border-radius: var(--r-s);font-size:15px;font-weight:500;cursor:pointer;margin-top:4px;transition:background 0.2s,transform 0.15s}
    .pf-btn:hover:not(:disabled){background:var(--bb-teal);transform:translateY(-1px)}
    .pf-btn:disabled{opacity:0.45;cursor:not-allowed}
    .pf-close{position:absolute;top:14px;right:16px;width:30px;height:30px;border-radius: 50%;border:1px solid rgba(121,181,209,0.25);background:none;cursor:pointer;font-size:18px;color:#aaa;display:flex;align-items:center;justify-content:center;transition:all 0.2s}
    .pf-close:hover{background:#EFF7FB;color:#464646}
    .pf-hint{font-size:12px;color:#bbb;text-align:center;margin-top:12px}
    /* Строка слота — без рамок и фона */
    .hero-cta-slot {
        display: flex; align-items: center; gap: 8px;
        padding-left: 4px;
        background: transparent; border: 0; border-radius: 0;
        text-decoration: none;
        margin-top: 14px;
        font-family: 'Manrope', sans-serif; font-size: 15px;
        opacity: 0; animation: hero-slot-fade .5s .35s ease forwards;
    }
    .hero-cta-slot-dot {
        width: 7px; height: 7px; border-radius: 50%;
        background: #4CAF50; flex-shrink: 0;
    }
    .hero-cta-slot-label { color: rgba(255,255,255,0.7); }
    .hero-cta-slot-time  { color: #fff; font-weight: 500; }
    .hero-cta-slot:hover .hero-cta-slot-time { text-decoration: underline; }
    @keyframes hero-slot-fade { to { opacity: 1; } }
    @media (max-width: 600px) {
        .hero-cta-row { flex-direction: column; gap: 10px; }
        .hero-cta-primary, .hero-cta-gift { width: 100%; justify-content: center; }
        .hero-cta-slot { font-size: 14px; padding-left: 2px; }
    }
/* Блогерам (2026-08-02) — те же токены, что у секции предоплаты */
.bb-blogger{ padding:0 0 96px; background:#fff; }
.bb-blogger-inner{ max-width:1160px; margin:0 auto; padding:0 24px; }
.bb-blogger-card{ border:1px solid var(--bb-line); border-radius: var(--r-l); padding:44px 48px;
  background:linear-gradient(180deg,var(--bb-bg) 0%,var(--bb-white) 100%);
  box-shadow:0 30px 60px -34px rgba(57,90,106,.35); }
.bb-blogger-eyebrow{ font-family:'Manrope',sans-serif; font-size:12px; letter-spacing:.18em;
  text-transform:uppercase; color:var(--bb-sky); font-weight:700; margin:0 0 14px; }
.bb-blogger-title{ font-family:'Playfair Display',serif; font-size:clamp(28px,3vw,42px);
  line-height:1.15; margin:0 0 18px; color:var(--bb-ink); text-wrap:balance; }
.bb-blogger-title i{ font-style:italic; color:var(--bb-teal); }
.bb-blogger-lead{ font-size:17px; line-height:1.6; color:var(--bb-muted); margin:0 0 14px; max-width:620px; }
.bb-blogger-lead b{ color:var(--bb-ink); font-weight:700; }
.bb-blogger-note{ margin:0 0 26px; font-size:13px; color:#8a94a0; }
.bb-blogger-cta{ display:inline-flex; align-items:center; justify-content:center; padding:16px 34px;
  border:0; border-radius: 999px; background:var(--bb-teal); color:#fff; font-family:'Manrope',sans-serif;
  font-size:16px; font-weight:700; text-decoration:none; transition:background .2s, transform .2s; }
.bb-blogger-cta:hover{ background:var(--bb-teal-deep); transform:translateY(-2px); text-decoration:none; }
@media (max-width:768px){
  .bb-blogger{ padding:0 0 56px; }
  .bb-blogger-card{ padding:28px 22px; border-radius: var(--r-m); }
  .bb-blogger-cta{ display:flex; width:100%; }
}
/* visual-audit-fixes-2026-06-02 */
/* Visual audit pass (Ильяс review). Append-only CSS overrides. */

        /* 2026-07-31: Referral + review-cashback blocks (двухколоночная сетка) */
        .bbref { padding: 56px 0; background: #fbfaf7; }
        .bbref-inner { max-width: 1140px; margin: 0 auto; padding: 0 24px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
        .bbref-card { min-width: 0; background: #fff; border: 1px solid rgba(0,0,0,.08); border-radius: var(--r-m); padding: 32px 28px; display: flex; flex-direction: column; gap: 14px; }
        .bbref-card--referral { background: linear-gradient(160deg, #f5f0e8 0%, #fff 60%); border-color: rgba(57, 90, 106, .12); }
        .bbref-card--cashback { background: linear-gradient(160deg, #eef3f5 0%, #fff 60%); border-color: rgba(57, 90, 106, .12); }
        .bbref-eyebrow { display: inline-flex; align-items: center; font-family: 'Manrope', sans-serif; font-size: .82rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--bb-teal-deep); background: rgba(57, 90, 106, .08); padding: 6px 12px; border-radius: 999px; align-self: flex-start; }
        .bbref-title { font-family: 'Playfair Display', serif; font-size: 1.6rem; line-height: 1.2; color: #1e1e1e; margin: 0; word-break: keep-all; overflow-wrap: normal; }
        .bbref-title i { font-style: italic; color: var(--bb-teal-deep); }
        .bbref-lead { text-align: left; font-family: 'Manrope', sans-serif; font-size: .98rem; line-height: 1.5; color: #4a4a4a; margin: 0; }
        .bbref-cta { display: inline-flex; align-self: flex-start; margin-top: 6px; padding: 12px 22px; background: var(--bb-teal-deep); color: #fff; text-decoration: none; border-radius: 999px; font-family: 'Manrope', sans-serif; font-weight: 600; font-size: .94rem; transition: background .18s ease, transform .18s ease; }
        .bbref-cta:hover { background: #2a4553; transform: translateY(-1px); }
        .bbref-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 4px; }
        .bbref-link { display: inline-flex; padding: 10px 16px; background: transparent; color: var(--bb-teal-deep); text-decoration: none; border: 1px solid rgba(57, 90, 106, .3); border-radius: 999px; font-family: 'Manrope', sans-serif; font-size: .9rem; transition: background .18s ease, border-color .18s ease; }
        .bbref-link:hover { background: rgba(57, 90, 106, .06); border-color: rgba(57, 90, 106, .5); }
        /* 2026-07-31 (2): третья карточка — мобильное приложение (RuStore) */
        .bbref-card--app { background: linear-gradient(160deg, #eef0e9 0%, #fff 60%); border-color: rgba(57, 90, 106, .12); }
        .bbref-note { font-family: 'Manrope', sans-serif; font-size: .82rem; line-height: 1.45; color: #8a8a8a; margin: -4px 0 0; }
        .bbref-title { text-wrap: balance; }
        .bbref-card .bbref-cta, .bbref-card .bbref-actions { margin-top: auto; }
        @media (max-width: 980px) {
            .bbref-inner { grid-template-columns: 1fr 1fr; }
            .bbref-card--referral { grid-column: 1 / -1; }
            .bbref-title { font-size: 1.45rem; }
            .bbref-card { padding: 26px 22px; }
        }
        @media (max-width: 780px) {
            .bbref { padding: 40px 0; }
            .bbref-inner { grid-template-columns: 1fr; gap: 16px; padding: 0 16px; }
            .bbref-card { padding: 24px 22px; }
            .bbref-title { font-size: 1.4rem; }
        }

        /* (1) Reviews carousel — right edge fade so last card doesn't look clipped */
.reviews .container { position: relative; }
.rh-track {
    -webkit-mask-image: linear-gradient(to right, black 0, black calc(100% - 96px), transparent 100%);
    mask-image:         linear-gradient(to right, black 0, black calc(100% - 96px), transparent 100%);
    scroll-padding-right: 96px;
}
.rh-track::after {
    content: "";
    flex: 0 0 80px;
}
.reviews-scroll-cue {
    position: absolute;
    right: 8px;
    top: 50%;
    transform: translateY(-50%);
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: rgba(255,255,255,0.92);
    color: #1c1c1c;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 5;
    border: none;
    cursor: pointer;
    box-shadow: 0 6px 20px rgba(0,0,0,0.14);
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
    font-size: 22px;
    font-weight: 300;
    line-height: 1;
    transition: transform .15s ease, background-color .15s ease, opacity .15s ease;
}
.reviews-scroll-cue:hover { background: #fff; transform: translateY(-50%) scale(1.06); }
.reviews-scroll-cue:disabled { opacity: 0.35; cursor: default; transform: translateY(-50%); }
.reviews-scroll-cue--prev { left: 8px; right: auto; }
.reviews-scroll-cue--next { right: 8px; }
@media (max-width: 600px) {
    .reviews-scroll-cue--prev { left: 4px; }
    .reviews-scroll-cue--next { right: 4px; }
}
@media (max-width: 600px) {
    .reviews-scroll-cue { display: none; }
    .rh-track {
        -webkit-mask-image: linear-gradient(to right, black 0, black calc(100% - 48px), transparent 100%);
        mask-image:         linear-gradient(to right, black 0, black calc(100% - 48px), transparent 100%);
    }
}

/* (2) Footer map skeleton (CSS only — iframe paints over once Yandex loads) */
.footer-map-box {
    position: relative;
    background: linear-gradient(135deg, #EAF1F5 0%, var(--bb-line) 100%);
}
.footer-map-box::before {
    content: "Загрузка карты…";
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #88A1AE;
    font-family: 'Manrope', sans-serif;
    font-size: 13px;
    letter-spacing: 0.04em;
    z-index: 0;
    pointer-events: none;
}
.footer-map-box::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(110deg, transparent 0%, rgba(255,255,255,0.55) 50%, transparent 100%);
    transform: translateX(-100%);
    animation: footer-map-shimmer 1.8s ease-in-out infinite;
    z-index: 0;
    pointer-events: none;
}
@keyframes footer-map-shimmer {
    0% { transform: translateX(-100%); }
    100% { transform: translateX(100%); }
}
.footer-map-box iframe { position: relative; z-index: 1; }

/* (3) Abonement / cert cards — guard title + price overflow */
.loyalty-block .price-card.cert-card {
    padding: 36px 24px 28px;
}

/* 2026-06-25 subtle per-card patterns — визуально разводим 12+ одинаковых карточек.
   6 декоративных фонов через CSS-градиенты, ротация по :nth-child. Низкая
   непрозрачность (~5%), брендовый blue-main. Без файлов, без анимации. */
.loyalty-block .price-card.cert-card {
    background-blend-mode: multiply, normal;
}
.loyalty-block .price-card.cert-card.abonement-card:nth-child(6n+1) {
    background-image:
        radial-gradient(circle at 90% 10%, rgba(30, 77, 107, 0.07) 0, transparent 28%),
        linear-gradient(145deg, #EAF4FA 0%, var(--bb-line) 55%, var(--bb-line-2) 100%);
}
.loyalty-block .price-card.cert-card.abonement-card:nth-child(6n+2) {
    background-image:
        repeating-linear-gradient(45deg, rgba(30, 77, 107, 0.04) 0 1px, transparent 1px 14px),
        linear-gradient(145deg, #EAF4FA 0%, var(--bb-line) 55%, var(--bb-line-2) 100%);
}
.loyalty-block .price-card.cert-card.abonement-card:nth-child(6n+3) {
    background-image:
        radial-gradient(circle at 8% 92%, rgba(121, 181, 209, 0.18) 0, transparent 35%),
        linear-gradient(145deg, #EAF4FA 0%, var(--bb-line) 55%, var(--bb-line-2) 100%);
}
.loyalty-block .price-card.cert-card.abonement-card:nth-child(6n+4) {
    background-image:
        radial-gradient(circle at 50% 0%, rgba(30, 77, 107, 0.06) 0, transparent 40%),
        linear-gradient(145deg, #EAF4FA 0%, var(--bb-line) 55%, var(--bb-line-2) 100%);
}
.loyalty-block .price-card.cert-card.abonement-card:nth-child(6n+5) {
    background-image:
        repeating-linear-gradient(-45deg, rgba(30, 77, 107, 0.035) 0 1px, transparent 1px 18px),
        linear-gradient(145deg, #EAF4FA 0%, var(--bb-line) 55%, var(--bb-line-2) 100%);
}
.loyalty-block .price-card.cert-card.abonement-card:nth-child(6n+6) {
    background-image:
        radial-gradient(ellipse at 100% 100%, rgba(121, 181, 209, 0.22) 0, transparent 38%),
        linear-gradient(145deg, #EAF4FA 0%, var(--bb-line) 55%, var(--bb-line-2) 100%);
}

/* 2026-06-25 gift-card differentiation — выделяем подарочные сертификаты,
   когда они идут inline среди абонементов (Stage 5e merge). */
.loyalty-block .price-card.gift-card {
    position: relative;
    background: linear-gradient(180deg, var(--blue-pale, var(--bb-line)) 0%, var(--bb-white) 55%);
    border: 1px solid var(--blue-dark, var(--bb-navy));
    overflow: visible;
}
.loyalty-block .price-card.gift-card::before {
    content: "ПОДАРОК";
    position: absolute;
    top: -11px;
    right: 18px;
    background: var(--blue-dark, var(--bb-navy));
    color: var(--bb-white);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.22em;
    padding: 5px 11px 4px;
    border-radius: 3px;
    line-height: 1;
    z-index: 2;
    pointer-events: none;
}
.loyalty-block .price-card.gift-card .cert-card-caption {
    color: var(--blue-dark, var(--bb-navy));
    font-weight: 600;
}

/* 2026-07-31: Персона-виджет подарочных сертификатов */
.gift-widget { max-width: 960px; margin: 21px auto 34px; padding: 0 16px; }
#pricing .loyalty-lead { text-wrap: balance; }
.gift-widget-personas {
    display: flex; gap: 10px; justify-content: center; flex-wrap: wrap;
    margin-bottom: 21px;
}
.gift-persona {
    display: inline-flex; align-items: center; gap: 8px;
    padding: 10px 20px; border: 1.5px solid rgba(30, 77, 107, 0.18);
    background: #fff; border-radius: 999px; cursor: pointer;
    font-family: 'Manrope', sans-serif; font-size: 0.98rem; color: var(--bb-navy); font-weight: 600;
    transition: background 0.18s ease, border-color 0.18s ease, transform 0.14s ease;
}
.gift-persona:hover { background: #F5F0EA; }
.gift-persona.is-active {
    background: var(--bb-navy); color: #fff; border-color: var(--bb-navy);
    box-shadow: 0 6px 18px -8px rgba(30,77,107,0.35);
}
.gift-persona-emoji { font-size: 1.15rem; line-height: 1; }
.gift-widget-card {
    /* 2026-08-01: колонки в золотом сечении (0.382 / 0.618) */
    display: grid; grid-template-columns: minmax(0, 0.382fr) minmax(0, 0.618fr); gap: 34px;
    background: linear-gradient(160deg, #F5F0EA 0%, var(--bb-white) 55%);
    border: 1px solid rgba(30,77,107,0.14); border-radius: var(--r-l);
    padding: 34px; align-items: center;
}
.gift-cert-mockup {
    min-width: 0;
    aspect-ratio: 1.618 / 1; /* золотое сечение — и почти пропорция пластиковой карты */
    background: linear-gradient(135deg, var(--bb-navy) 0%, #2a6b8e 100%);
    border-radius: 13px; padding: 21px;
    color: #fff; display: flex; flex-direction: column;
    position: relative; overflow: hidden;
    box-shadow: 0 20px 40px -20px rgba(30,77,107,0.4);
}
.gift-cert-mockup::before {
    content: ""; position: absolute; inset: 0;
    background:
        radial-gradient(circle at 100% 0%, rgba(232,201,164,0.25) 0, transparent 45%),
        radial-gradient(circle at 0% 100%, rgba(255,255,255,0.08) 0, transparent 40%);
    pointer-events: none;
}
.gift-cert-mockup-header {
    display: flex; justify-content: space-between; align-items: flex-start;
    position: relative;
}
/* 2026-08-01: тот же шрифт, что у логотипа в шапке */
.gift-cert-brand {
    font-family: 'Playfair Display', serif; font-size: 1.05rem; letter-spacing: 0.02em;
    font-weight: 400; line-height: 1.1; opacity: 0.95;
}
.gift-cert-brand span { font-style: italic; font-weight: 400; }
.gift-cert-ribbon {
    background: #E8C9A4; color: var(--bb-navy);
    font-size: 0.62rem; letter-spacing: 0.18em; font-weight: 700;
    padding: 4px 9px; border-radius: 3px;
}
.gift-cert-mockup-body {
    flex: 1; display: flex; flex-direction: column; justify-content: center;
    text-align: center; position: relative;
}
.gift-cert-mockup-label {
    font-family: 'Manrope', sans-serif; font-size: 0.72rem; letter-spacing: 0.22em;
    opacity: 0.7; margin-bottom: 6px; text-transform: uppercase;
}
.gift-cert-mockup-sum {
    font-family: 'Playfair Display', serif; font-size: 2.2rem; font-weight: 500;
    letter-spacing: -0.01em; line-height: 1;
}
.gift-cert-mockup-note {
    font-family: 'Manrope', sans-serif; font-size: 0.78rem;
    opacity: 0.72; margin-top: 8px; font-style: italic;
}
.gift-cert-mockup-footer {
    display: flex; flex-direction: column; gap: 4px;
    position: relative;
}
.gift-cert-mockup-tinyline {
    height: 1px; background: rgba(255,255,255,0.28);
}
.gift-cert-mockup-tinyline:last-child { width: 60%; }
.gift-widget-content { min-width: 0; text-align: left; }
.gift-widget-context {
    font-family: 'Playfair Display', serif; font-size: 1.35rem; line-height: 1.3; color: #1e1e1e;
    margin: 0 0 8px; word-break: keep-all; overflow-wrap: normal; text-wrap: balance;
}
.gift-widget-context i { color: var(--bb-navy); font-style: italic; }
.gift-widget-hint {
    font-family: 'Manrope', sans-serif; font-size: 0.96rem; line-height: 1.55; color: #555;
    margin: 0 0 21px; text-align: left; text-wrap: pretty;
}
.gift-widget-nominals {
    display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 21px;
}
.gift-nominal {
    padding: 8px 14px; border: 1px solid rgba(30,77,107,0.22);
    background: #fff; border-radius: 999px; cursor: pointer;
    font-family: 'Manrope', sans-serif; font-size: 0.9rem; color: #333; font-weight: 500;
    transition: background 0.14s ease, border-color 0.14s ease;
}
.gift-nominal:hover { background: #F5F0EA; }
.gift-nominal.is-active {
    background: var(--bb-navy); color: #fff; border-color: var(--bb-navy);
}
.gift-widget-cta {
    display: inline-flex; align-items: center; gap: 8px;
    padding: 14px 26px; background: var(--bb-navy); color: #fff;
    border: none; border-radius: 999px; cursor: pointer;
    font-family: 'Manrope', sans-serif; font-weight: 600; font-size: 1rem;
    transition: background 0.18s ease, transform 0.14s ease;
    box-shadow: 0 10px 24px -10px rgba(30,77,107,0.4);
}
.gift-widget-cta:hover { background: #163a52; transform: translateY(-1px); }
.gift-widget-cta::after { content: "→"; font-size: 1.1em; }
.gift-widget-fine {
    font-family: 'Manrope', sans-serif; font-size: 0.82rem; line-height: 1.45; color: #888;
    margin: 13px 0 0;
}
/* Скрыть исходный слайдер, если виджет активирован (JS повесит класс на #pricing) */
#pricing.has-gift-widget .slider-wrapper { display: none; }
@media (max-width: 900px) {
    .gift-widget-card { grid-template-columns: 1fr; gap: 21px; padding: 21px; }
    .gift-cert-mockup { max-width: 320px; width: 100%; margin: 0 auto; }
    .gift-widget-content { text-align: center; }
    .gift-widget-nominals { justify-content: center; }
    .gift-widget-context, .gift-widget-hint { text-align: center; }
    .gift-widget-context { font-size: 1.2rem; }
}

/* 2026-07-31: abonement card polish — no brand/caption dup, click-through, goal tag */
.loyalty-block .price-card.abonement-card .cert-card-brand,
.loyalty-block .price-card.abonement-card .cert-card-caption { display: none; }
.loyalty-block .price-card.abonement-card {
    cursor: pointer;
    padding-top: 26px !important;
}
.loyalty-block .price-card.abonement-card h3 { margin-bottom: 6px; }
.abo-goal-tag {
    display: inline-block;
    padding: 3px 10px;
    font-family: 'Manrope', sans-serif; font-size: 0.72rem; font-weight: 600;
    letter-spacing: 0.06em;
    border-radius: 999px;
    margin-bottom: 12px;
    text-transform: none;
}
.abo-goal-tag[data-goal="slimming"] { background: rgba(232,201,164,0.35); color: #8a5a25; }
.abo-goal-tag[data-goal="edema"]    { background: rgba(88,158,193,0.20);  color: var(--bb-navy); }
.abo-goal-tag[data-goal="cellulite"]{ background: rgba(196,143,180,0.25); color: #7a3e69; }
.abo-goal-tag[data-goal="skin"]     { background: rgba(148,193,145,0.22); color: #3a6b3e; }
.abo-goal-tag[data-goal="back"]     { background: rgba(200,175,140,0.30); color: #6b5230; }
.abo-goal-tag[data-goal="general"], .abo-goal-tag:not([data-goal]) { background: rgba(120,120,120,0.13); color: #444; }
.loyalty-block .price-card.abonement-card .cert-card-actions .btn.btn-primary,
.loyalty-block .price-card.abonement-card .cert-card-actions .btn.cert-request-btn {
    text-transform: none;
    letter-spacing: 0.01em;
    font-weight: 600;
    font-size: 0.94rem;
}
/* 2026-07-31: gift-card visual polish — иконка-подарок, разнообразие фонов, мягче CTA */
.loyalty-block .price-card.gift-card { padding-top: 42px !important; text-align: center; }
.loyalty-block .price-card.gift-card .cert-card-brand { display: none; }
.loyalty-block .price-card.gift-card h3 { min-height: 0; margin-bottom: 20px; }
.loyalty-block .price-card.gift-card::after {
    content: "";
    position: absolute;
    top: 12px;
    left: 50%;
    transform: translateX(-50%);
    width: 32px;
    height: 32px;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231E4D6B' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><path d='M20 12v10H4V12'/><path d='M2 7h20v5H2z'/><path d='M12 22V7'/><path d='M12 7H7.5a2.5 2.5 0 0 1 0-5C11 2 12 7 12 7z'/><path d='M12 7h4.5a2.5 2.5 0 0 0 0-5C13 2 12 7 12 7z'/></svg>");
    background-repeat: no-repeat;
    background-size: contain;
    opacity: .55;
    pointer-events: none;
}
/* Тонкие варианты фонов через nth-child — 3 оттенка, повторяются по кругу */
.loyalty-block #loyCertSlider .loyalty-slide.gift-card:nth-child(3n+1) { background: linear-gradient(180deg, #F1F5F0 0%, var(--bb-white) 60%); }
.loyalty-block #loyCertSlider .loyalty-slide.gift-card:nth-child(3n+2) { background: linear-gradient(180deg, #F5F0EA 0%, var(--bb-white) 60%); }
.loyalty-block #loyCertSlider .loyalty-slide.gift-card:nth-child(3n+3) { background: linear-gradient(180deg, #EEF2F5 0%, var(--bb-white) 60%); }
/* CTA внутри gift-card — мягче, не капсом */
.loyalty-block .price-card.gift-card .btn.btn-outline,
.loyalty-block .price-card.gift-card .btn.cert-request-btn {
    text-transform: none;
    letter-spacing: 0.01em;
    font-weight: 600;
    font-size: 0.94rem;
    padding: 12px 18px;
    background: var(--bb-navy);
    color: #fff;
    border-color: var(--bb-navy);
    transition: background .18s ease, transform .18s ease;
}
.loyalty-block .price-card.gift-card .btn.btn-outline:hover,
.loyalty-block .price-card.gift-card .btn.cert-request-btn:hover {
    background: #163a52;
    transform: translateY(-1px);
}
/* На узких: разнообразие фонов сохраняется, размеры уже есть */
@media (max-width: 480px) {
    .loyalty-block .price-card.gift-card { padding-top: 38px !important; }
    .loyalty-block .price-card.gift-card::after { width: 26px; height: 26px; top: 10px; }
}

/* 2026-07-28: gift-card polish — плашка внутри карточки (overflow слайдера её резал);
   компактнее в отдельной секции; убран дублирующий caption («Подарочный сертификат»
   повторяет и h3 «Сертификат», и плашку «ПОДАРОК»). */
.loyalty-block .price-card.gift-card::before {
    top: 12px;
    right: 12px;
}
.loyalty-block .price-card.gift-card .cert-card-caption {
    display: none;
}
/* Если title уже развёрнут в «Сертификат на N ₽» — большая price-val становится дублем; скрываем. */
.loyalty-block .price-card.gift-card.price-in-title .price-val,
.loyalty-block .price-card.gift-card.price-in-title .price-desc {
    display: none;
}
.loyalty-block .price-card.gift-card h3 {
    font-size: 1.2rem;
    min-height: 0;
    -webkit-line-clamp: 2;
    margin-bottom: 14px;
}
.loyalty-block .price-card.gift-card .price-val {
    font-size: clamp(1.9rem, 3.5vw, 2.4rem);
    margin-bottom: 6px;
}
.loyalty-block .price-card.gift-card .price-desc {
    margin-bottom: 18px;
}
/* Non-inline gift-cards section — карточки уже, чтобы не растягивались flex'ом на всю ширину */
.loyalty-block #loyCertSlider .loyalty-slide.gift-card {
    flex: 0 0 260px !important;
    max-width: 300px !important;
    padding: 30px 22px 22px;
}
@media (max-width: 480px) {
    .loyalty-block .price-card.gift-card h3 { font-size: 1.05rem; }
    .loyalty-block #loyCertSlider .loyalty-slide.gift-card { flex: 0 0 240px !important; padding: 26px 18px 18px; }
    .loyalty-block .price-card.gift-card::before { top: 10px; right: 10px; font-size: 9px; padding: 4px 9px 3px; }
}


.loyalty-block .price-card h3 {
    font-size: 1.4rem;
    word-break: break-word;
    padding: 0 4px;
    margin-bottom: 16px;
    line-height: 1.18;
}
.loyalty-block .price-card .price-val {
    font-size: clamp(2.3rem, 4.8vw, 3.1rem);
    white-space: nowrap;
    overflow: visible;
}
@media (max-width: 480px) {
    .loyalty-block .price-card.cert-card { padding: 32px 20px 24px; }
    .loyalty-block .price-card h3 { font-size: 1.25rem; min-height: 2.6em; }
}

/* 2026-06-08 pravki: uniform card layout + accent CTA */
.loyalty-block .price-card h3 {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
    min-height: calc(1.18em * 3);
    margin-bottom: 20px;
}
.loyalty-block .price-card .price-val,
.loyalty-block .price-card .price-val .currency {
    white-space: nowrap;
}
.loyalty-block .price-card .price-desc {
    margin-bottom: 12px;
}
.loyalty-block .price-card .cert-card-caption {
    margin-bottom: 20px;
}
.loyalty-block .loyalty-slide {
    display: flex;
    flex-direction: column;
}
.loyalty-block .loyalty-slide .btn.btn-outline {
    margin-top: auto;
    background: var(--bb-teal-deep) !important;
    color: #fff !important;
    border: 1px solid var(--bb-teal-deep) !important;
    font-weight: 600 !important;
}
.loyalty-block .loyalty-slide .btn.btn-outline:hover {
    background: var(--bb-navy) !important;
    border-color: var(--bb-navy) !important;
    color: #fff !important;
}
@media (max-width: 480px) {
    .loyalty-block .price-card h3 {
        min-height: calc(1.18em * 3);
    }
}

/* (5) Hero status line → pill capsule */
.hero-cta-slot {
    margin-top: 18px;
    padding: 8px 16px 8px 12px !important;
    background: rgba(255,255,255,0.10);
    border: 1px solid rgba(255,255,255,0.32);
    border-radius: 999px;
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
    box-shadow: 0 6px 18px rgba(0,0,0,0.20);
    font-size: 13px;
    width: -moz-fit-content; width: fit-content;
    transition: background .25s ease, border-color .25s ease, transform .25s ease;
}
.hero-cta-slot:hover {
    background: rgba(255,255,255,0.18);
    border-color: rgba(255,255,255,0.50);
    transform: translateY(-1px);
}
.hero-cta-slot-dot { box-shadow: 0 0 8px #4CAF50; }
@media (max-width: 600px) {
    .hero-cta-slot { font-size: 12.5px; padding: 7px 14px 7px 12px !important; }
}

/* (6) Procedures cards — stronger bottom gradient + text-shadow safety */
.proc-card::after {
    background: linear-gradient(to top,
        rgba(15, 15, 15, 0.92) 0%,
        rgba(15, 15, 15, 0.78) 35%,
        rgba(15, 15, 15, 0.30) 70%,
        transparent 100%) !important;
}
.proc-info h3 { text-shadow: 0 1px 8px rgba(0,0,0,0.40); }
.proc-tag     { text-shadow: 0 1px 6px rgba(0,0,0,0.50); }

/* (7) av4 feelings bubbles — softer shadow + blur on light bubble */
.av4-txt {
    box-shadow: 0 12px 30px rgba(28, 46, 53, 0.18),
                0 2px 4px  rgba(28, 46, 53, 0.10) !important;
}
.av4-txt.t-lt {
    background: rgba(255,255,255,0.86) !important;
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
    border-color: rgba(122, 181, 209, 0.45) !important;
}

/* (9) Booking-wizard empty / error / loading — softer card + icon */
.bw-empty, .bw-error, .bw-loading {
    max-width: 460px;
    margin: 24px auto !important;
    padding: 26px 24px !important;
    background: rgba(255,255,255,0.70);
    border: 1px solid rgba(121,181,209,0.18);
    border-radius: var(--r-m);
    box-shadow: 0 10px 30px rgba(57, 90, 106, 0.06);
    font-size: 14px;
    line-height: 1.55;
}
.bw-empty::before, .bw-error::before, .bw-loading::before {
    content: "";
    display: block;
    width: 44px; height: 44px;
    margin: 0 auto 12px;
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    opacity: 0.85;
}
.bw-empty::before, .bw-loading::before {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='44' height='44' viewBox='0 0 24 24' fill='none' stroke='%2379B5D1' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='9'/><path d='M12 7v5l3.2 2'/></svg>");
}
.bw-error::before {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='44' height='44' viewBox='0 0 24 24' fill='none' stroke='%23E08F8F' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='M10.3 3.86 1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z'/><line x1='12' y1='9' x2='12' y2='13'/><line x1='12' y1='17' x2='12.01' y2='17'/></svg>");
}

/* (10) Footer socials — gap + mobile size; address/phone +1px on mobile */
.footer-socials-new { gap: 16px !important; }
@media (max-width: 768px) {
    .footer-socials-new a { width: 44px !important; height: 44px !important; }
    .footer-socials-new svg { width: 22px !important; height: 22px !important; }
    .footer-address { font-size: 15px !important; }
    .footer-phone { font-size: 24px !important; }
}

/* (11) Loyalty tabs — stronger active-state contrast */
.loyalty-block .loyalty-tab {
    background: transparent !important;
    border: 1px solid rgba(121,181,209,0.55) !important;
}
.loyalty-block .loyalty-tab:hover {
    background: rgba(121,181,209,0.10) !important;
    border-color: var(--blue-main) !important;
}
.loyalty-block .loyalty-tab.is-active {
    background: var(--blue-dark, var(--bb-teal-deep)) !important;
    color: #fff !important;
    border-color: var(--blue-dark, var(--bb-teal-deep)) !important;
    box-shadow: 0 4px 14px rgba(57, 90, 106, 0.22) !important;
}

/* (12) Mobile hero title — line-height bump */
@media (max-width: 768px) {
    .hero h1 { line-height: 1.12 !important; }
}

/* (13) Mobile horizontal rails — visible "peek" of next card */
@media (max-width: 600px) {
    /* .av4-strip rail-peek rule retired 2026-06-04 — strip is now grid, no horizontal scroll */
}
@media (max-width: 480px) {
    .reviews .rh-track { padding-right: 32px; }
    .reviews .rh-card { flex: 0 0 78% !important; }
    .results .slider-track { padding-right: 24px; }
    .loyalty-block .loyalty-slide { flex: 0 0 80vw !important; }
    .procedures-grid > .proc-card { flex: 0 0 78% !important; }
}
/* 2026-06-24: Option #1 центрированной карусели (карточка ~85%, peek=0, + счётчик).
   Намеренно в конце <body> чтобы гарантированно выиграть у более ранних !important. */
@media (max-width: 768px) {
  .loyalty-block .loyalty-track,
  .rh-track,
  .procedures-grid,
  .proc-grid,
  .reviews-grid {
    scroll-padding-inline: 7.5% !important;
  }
  .loyalty-block .loyalty-slide,
  .rh-track > .rh-card,
  .procedures-grid > .proc-card,
  .proc-grid > .proc-card,
  .reviews-grid > .review-card {
    flex: 0 0 85% !important;
    width: 85% !important;
    max-width: 85% !important;
    min-width: 0 !important;
    scroll-snap-align: center !important;
  }
  .loyalty-block .loyalty-track::before,
  .loyalty-block .loyalty-track::after,
  .rh-track::before,
  .rh-track::after,
  .procedures-grid::before,
  .procedures-grid::after,
  .proc-grid::before,
  .proc-grid::after,
  .reviews-grid::before,
  .reviews-grid::after {
    content: '' !important;
    display: block !important;
    flex: 0 0 7.5% !important;
    min-width: 7.5% !important;
  }
}
.bb-slide-counter {
  display: none;
  text-align: center;
  font-size: 13px;
  color: #7a8c95;
  margin-top: 10px;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.5px;
}
@media (max-width: 768px) {
  /* Скрыть нативный scrollbar на mobile-каруселях, чтобы не торчала полоска под карточкой */
  .loyalty-block .loyalty-track,
  .rh-track,
  .procedures-grid,
  .proc-grid,
  .reviews-grid {
    scrollbar-width: none !important;
  }
  .loyalty-block .loyalty-track::-webkit-scrollbar,
  .rh-track::-webkit-scrollbar,
  .procedures-grid::-webkit-scrollbar,
  .proc-grid::-webkit-scrollbar,
  .reviews-grid::-webkit-scrollbar {
    display: none !important;
    width: 0 !important; height: 0 !important;
  }
  .bb-slide-counter { display: block; }
}
.bbs { background: #fff; padding: 96px 0; }
.bbs-inner { max-width: 1200px; margin: 0 auto; padding: 0 24px; }
.bbs-head { text-align: center; margin-bottom: 40px; }
.bbs-eyebrow { font-family: 'Manrope', sans-serif; font-size: 12px; letter-spacing: .18em; text-transform: uppercase; color: var(--bb-sky); font-weight: 700; margin: 0 0 14px; }
.bbs-title { font-family: 'Playfair Display', serif; font-size: clamp(30px, 3.4vw, 46px); line-height: 1.15; margin: 0; color: var(--bb-ink); }
.bbs-title i { font-style: italic; color: var(--bb-sky); }
.bbs-sub { margin: 14px auto 0; max-width: 560px; font-size: 16px; line-height: 1.6; color: var(--bb-muted); }
.bbs-gallery { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 16px; }
.bbs-photo { margin: 0; aspect-ratio: 3/4; border-radius: var(--r-m); overflow: hidden; box-shadow: 0 14px 34px -18px rgba(31,42,51,.28); }
.bbs-photo img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s cubic-bezier(.2,.8,.3,1); }
.bbs-photo:hover img { transform: scale(1.04); }
.bbs-wide { grid-column: span 2; aspect-ratio: 3/2; }
@media (max-width: 900px) {
    .bbs { padding: 56px 0; }
    .bbs-gallery { grid-template-columns: 1fr 1fr; gap: 12px; }
    .bbs-wide { grid-column: span 2; aspect-ratio: 16/10; }
    .bbs-head { margin-bottom: 28px; }
}
@media (max-width: 520px) {
    .bbs-gallery { grid-template-columns: 1fr; }
    .bbs-photo, .bbs-wide { grid-column: auto; aspect-ratio: 4/3; }
}

/* Липкая CTA — показываем на мобиле у всех городов (гейт по абонементам снят) */
@media (max-width: 768px){ .bb-sticky-cta{ display:block; } }
@media (min-width: 769px){ .bb-sticky-cta{ display:none !important; } }
.bb-sticky-cta-btn{ background:var(--bb-sky); }
.bb-sticky-cta-btn:hover,.bb-sticky-cta-btn:focus-visible{ box-shadow:0 8px 22px rgba(121,181,209,.35); }

/* Магнитные/hover-эффекты основных кнопок (десктоп) */
@media (hover:hover) and (pointer:fine){
  .is-magnetic{ transition: transform .18s cubic-bezier(.2,.8,.3,1), box-shadow .22s ease, filter .22s ease; will-change: transform; }
  .hero-cta-primary:hover, .hero-cta:hover, .btn-primary:hover, .bw-submit:hover,
  .netx-card-cta.primary:hover, .mc-cta-btn:hover, .quiz-cta:hover{
    box-shadow: 0 14px 30px -8px rgba(57,90,106,.4);
    filter: brightness(1.03);
  }
  .netx-card-cta.primary, .hero-cta-primary, .hero-cta, .btn-primary, .bw-submit, .mc-cta-btn, .quiz-cta{
    transition: transform .18s cubic-bezier(.2,.8,.3,1), box-shadow .22s ease, filter .22s ease, background-color .2s ease;
  }
}

/* ── Экран контактов (2026-07-21) ───────────────────────────────── */
.bbc { background: var(--bb-bg); padding: 120px 0; }
.bbc-inner { max-width: 1200px; margin: 0 auto; padding: 0 clamp(20px, 4vw, 52px); }
.bbc-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); gap: clamp(32px, 4vw, 64px); align-items: center; }
.bbc-eyebrow { margin: 0 0 14px; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--bb-muted-2); }
.bbc-h2 { text-align: left; font-family: 'Playfair Display', serif; font-size: clamp(32px, 3.4vw, 48px); line-height: 1.15; margin: 0 0 18px; color: var(--bb-ink); }
.bbc-h2 i { font-style: italic; color: var(--bb-sky); }
.bbc-hours { margin: 0 0 22px; font-size: 16px; line-height: 1.6; color: var(--bb-muted); }
.bbc-phone { display: inline-block; font-size: clamp(28px, 2.6vw, 36px); font-weight: 600; color: var(--bb-ink); text-decoration: none; letter-spacing: .01em; }
.bbc-phone:hover { color: var(--bb-sky); }
.bbc-address { margin: 10px 0 0; font-size: 16px; line-height: 1.6; color: var(--bb-muted); }
.bbc-route { list-style: none; margin: 12px 0 0; padding: 0; }
.bbc-route li { position: relative; padding-left: 16px; margin-bottom: 6px; font-size: 15px; line-height: 1.6; color: var(--bb-muted); }
.bbc-route li::before { content: ''; position: absolute; left: 0; top: 9px; width: 5px; height: 5px; border-radius: 50%; background: var(--bb-sky); }
.bbc-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 16px; margin-top: 26px; }
.bbc-socials { display: flex; gap: 12px; }
.bbc-socials a { display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 50%; border: 1px solid #d5e2ea; color: var(--bb-teal-deep); transition: .2s; }
.bbc-socials a:hover { background: var(--bb-sky); border-color: var(--bb-sky); color: #fff; }
.bbc-socials svg { width: 20px; height: 20px; }
.bbc-2gis { border: 0; width: 150px; height: 50px; }
.bbc-links { display: flex; flex-wrap: wrap; gap: 8px 22px; margin-top: 20px; }
.bbc-links a { font-size: 15px; color: var(--bb-teal-deep); text-decoration: none; border-bottom: 1px solid rgba(57,90,106,.3); }
.bbc-links a:hover { color: var(--bb-sky); border-color: var(--bb-sky); }
.bbc-taxi{ font-weight:600; }
.bbc-links a.bbc-taxi{ border-bottom-color: rgba(121,181,209,.6); }
.bbc-map { border-radius: var(--r-m); overflow: hidden; height: 440px; box-shadow: 0 18px 40px rgba(31,42,51,.10); }
.bbc-map iframe { width: 100%; height: 100%; border: 0; display: block; }
.bbc-map-stub { width: 100%; height: 100%; border: 0; cursor: pointer; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px;
    background: linear-gradient(140deg, #e8f0f4 0%, var(--bb-line) 100%); color: var(--bb-teal-deep); font-family: 'Manrope', sans-serif; }
.bbc-map-pin { font-size: 26px; color: var(--bb-sky); }
.bbc-map-addr { font-size: 16px; font-weight: 600; }
.bbc-map-go { font-size: 14px; color: var(--bb-muted); border-bottom: 1px solid rgba(90,100,112,.35); }
.bbc-map-stub:hover .bbc-map-go { color: var(--bb-sky); border-color: var(--bb-sky); }

@media (max-width: 900px) {
    .bbc { padding: 64px 0; }
    .bbc-grid { grid-template-columns: minmax(0, 1fr); gap: 28px; }
    .bbc-map { height: 300px; order: 2; }
}

/* ── Подвал: описание, реквизиты ─────────────────────────────────── */
.bbf-about { margin: 6px 0 16px; font-size: 14px; line-height: 1.65; color: rgba(255,255,255,.62); max-width: 320px; }
.bbf-phone-small { font-size: 18px; font-weight: 600; color: #fff; text-decoration: none; }
.bbf-phone-small:hover { color: var(--bb-sky); }
.bbf-req { margin: 22px 0 0; font-size: 13px; line-height: 1.7; color: rgba(255,255,255,.45); }
.bbf-legal { justify-content: flex-start; }

/* ── Подвал 2026-07-21: колоночная сетка ─────────────────────────── */
.bbf { background: var(--bb-ink); color: rgba(255,255,255,.82); padding: 64px 0 28px; }
.bbf-inner { max-width: 1200px; margin: 0 auto; padding: 0 clamp(20px, 4vw, 52px); }
.bbf-cols { display: grid; grid-template-columns: 1.4fr 1.2fr 1fr 1.2fr; gap: 40px; }
.bbf-col { min-width: 0; }
.bbf-brand { display: inline-block; font-family: 'Playfair Display', serif; font-size: 28px; color: #fff; text-decoration: none; margin-bottom: 8px; }
.bbf-brand i { font-style: italic; color: var(--bb-sky); }
.bbf-tag { margin: 0 0 18px; font-size: 13px; letter-spacing: .06em; text-transform: uppercase; color: rgba(255,255,255,.55); }
.bbf-phone { display: inline-block; font-size: 24px; font-weight: 600; color: #fff; text-decoration: none; letter-spacing: .01em; }
.bbf-phone:hover { color: var(--bb-sky); }
.bbf-hours { margin: 8px 0 20px; font-size: 14px; line-height: 1.6; color: rgba(255,255,255,.65); }
.bbf-h { font-size: 13px; letter-spacing: .08em; text-transform: uppercase; color: rgba(255,255,255,.5); margin: 0 0 16px; font-weight: 600; }
.bbf-h-second { margin-top: 26px; }
.bbf-address { margin: 0 0 12px; font-size: 15px; line-height: 1.65; color: rgba(255,255,255,.9); }
.bbf-route { list-style: none; margin: 0 0 14px; padding: 0; }
.bbf-route li { position: relative; padding-left: 14px; margin-bottom: 6px; font-size: 14px; line-height: 1.6; color: rgba(255,255,255,.65); }
.bbf-route li::before { content: ''; position: absolute; left: 0; top: 9px; width: 4px; height: 4px; border-radius: 50%; background: var(--bb-sky); }
.bbf-link-out { display: block; font-size: 14px; line-height: 1.7; color: var(--bb-sky); text-decoration: none; }
.bbf-link-out:hover { text-decoration: underline; }
.bbf-nav { list-style: none; margin: 0; padding: 0; }
.bbf-nav li { margin-bottom: 10px; }
.bbf-nav a { font-size: 15px; line-height: 1.55; color: rgba(255,255,255,.78); text-decoration: none; }
.bbf-nav a:hover { color: var(--bb-sky); }
.bbf-socials { display: flex; gap: 12px; }
.bbf-socials a { display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; border: 1px solid rgba(255,255,255,.22); color: rgba(255,255,255,.85); transition: .2s; }
.bbf-socials a:hover { background: var(--bb-sky); border-color: var(--bb-sky); color: #fff; }
.bbf-socials svg { width: 20px; height: 20px; }
.bbf-map { margin-top: 44px; border-radius: var(--r-m); overflow: hidden; height: 260px; }
.bbf-map iframe { width: 100%; height: 100%; border: 0; display: block; filter: grayscale(.15); }
.bbf-legal { margin-top: 36px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.12); display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px 24px; }
.bbf-legal-meta, .bbf-copy { margin: 0; font-size: 13px; line-height: 1.6; color: rgba(255,255,255,.45); }

@media (max-width: 1024px) {
    .bbf-cols { grid-template-columns: 1fr 1fr; gap: 36px 32px; }
}
@media (max-width: 640px) {
    .bbf { padding: 48px 0 24px; }
    .bbf-cols { grid-template-columns: 1fr; gap: 30px; }
    .bbf-map { height: 220px; margin-top: 32px; }
    .bbf-legal { flex-direction: column; gap: 8px; }
}
/* ── 2026-07-21: скролл и первый экран ───────────────────────────────── */

/* Горизонтальные рельсы перехватывали вертикальное листание:
   scroll-snap-type: x mandatory заставлял браузер «доводить» блок до слайда,
   из-за чего колесо/трекпад над блоком упирались. proximity не липнет,
   overscroll-behavior-x гасит уход жеста за пределы блока. */
.rh-track,
.loyalty-block .loyalty-track,
.procedures-grid {
    scroll-snap-type: x proximity !important;
    overscroll-behavior-x: contain;
}

/* На десктопе техникам горизонтальный скролл не нужен — все 4 помещаются. */
@media (min-width: 1025px) {
    .procedures-grid {
        display: grid !important;
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
        overflow-x: visible !important;
        overflow-y: visible !important;
        scroll-snap-type: none !important;
        padding-bottom: 0 !important;
    }
    .procedures-grid > .proc-card {
        flex: none !important;
        min-width: 0 !important;
        scroll-snap-align: none !important;
    }
}

/* Первый экран. Кап .hero-text-col: 650px снят — он резал колонку на любом мониторе,
   из-за чего заголовок ломался на три строки и десктоп читался «по-мобильному».
   Дальше — две независимые раскладки: ПК и мобильная. */
.hero-text-col { max-width: none; }

/* ── ПК: две колонки, текст слева, карточка студии справа ───────────── */
@media (min-width: 1025px) {
    .hero-layout:has(.bbx-hero-card) {
        display: grid;
        grid-template-columns: minmax(0, 1.5fr) minmax(300px, 0.85fr);
        gap: clamp(40px, 4vw, 72px);
        align-items: center;
    }
    .hero-layout:has(.bbx-hero-card) .hero-text-col { max-width: 780px; }
    .hero h1 { line-height: 1.12; }
    /* факты и цена живут в карточке — в левой колонке они не нужны */
    .hero-layout:has(.bbx-hero-card) .bbx-hero-meta,
    .hero-layout:has(.bbx-hero-card) .bbx-hero-offer,
    .hero-layout:has(.bbx-hero-card) .bbx-hero-soft { display: none; }
    .hero-layout:has(.bbx-hero-card) .hero-subtitle.is-plain { max-width: 560px; margin-bottom: 32px; }
    /* подарок уже назван в карточке — вторая кнопка была бы повтором */
    .hero-layout:has(.bbx-hero-card) .hero-cta-gift { display: none; }
    .bbx-card-offer .bbx-offer-gift { display: block; margin-top: 4px; font-size: 15px; font-weight: 400; color: rgba(255,255,255,.8); }

    .bbx-hero-card {
        background: rgba(18, 24, 30, .62);
        backdrop-filter: blur(10px);
        -webkit-backdrop-filter: blur(10px);
        border: 1px solid rgba(255, 255, 255, .16);
        border-radius: var(--r-m);
        padding: 30px 30px 28px;
        color: #fff;
    }
    .bbx-card-eyebrow { margin: 0 0 18px; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: rgba(255,255,255,.6); }
    .bbx-card-list { list-style: none; margin: 0 0 22px; padding: 0; }
    .bbx-card-list li { position: relative; padding-left: 18px; margin-bottom: 12px; font-size: 15px; line-height: 1.55; color: rgba(255,255,255,.9); }
    .bbx-card-list li::before { content: ''; position: absolute; left: 0; top: 9px; width: 5px; height: 5px; border-radius: 50%; background: var(--bb-sky); }
    .bbx-card-offer { margin: 0 0 20px; padding-top: 18px; border-top: 1px solid rgba(255,255,255,.16); font-size: 17px; font-weight: 600; line-height: 1.5; }
    .bbx-card-offer s { opacity: .5; font-weight: 400; margin-left: 6px; }
    .bbx-card-phone { display: block; font-size: 26px; font-weight: 600; color: #fff; text-decoration: none; letter-spacing: .01em; }
    .bbx-card-phone:hover { color: var(--bb-sky); }
    .bbx-card-note { margin: 10px 0 0; font-size: 13px; line-height: 1.55; color: rgba(255,255,255,.62); }
}

/* ── Мобильная и планшетная: карточки нет, факты списком под заголовком ── */
@media (max-width: 1024px) {
    .bbx-hero-card { display: none; }
}

/* Подзаголовок без курсива — для длинных пояснительных строк. */
/* Мобильный первый экран с расширенной шапкой (заголовок + пояснение + мета + оффер)
   не помещался до кнопки: ужимаем кегль, прячем третий пункт меты и дублирующую
   кнопку-подарок (её текст уже есть в строке оффера). Правила действуют только там,
   где включён прямой подзаголовок/строка оффера — остальные города не трогаем. */
@media (max-width: 600px) {
    .hero-content:has(.hero-subtitle.is-plain) h1 { font-size: clamp(2rem, 7.6vw, 2.7rem); line-height: 1.16; }
    .hero-content:has(.bbx-hero-offer) .bbx-hero-meta li:nth-child(n+3) { display: none; }
    .hero-content:has(.bbx-hero-offer) .hero-cta-gift { display: none; }
    .bbx-hero-offer { font-size: 16px; margin-top: 14px; }
    .bbx-hero-soft { font-size: 13px; }
    .hero-subtitle.is-plain { margin-bottom: 18px; }
    .bbx-hero-meta { gap: 8px 16px; margin: 16px 0 22px; }
}
.hero-subtitle.is-plain {
    font-family: 'Manrope', sans-serif;
    font-style: normal;
    font-weight: 400;
    font-size: clamp(1.05rem, 1.45vw, 1.35rem);
    line-height: 1.6;
    max-width: 620px;
    margin-bottom: 24px;
    opacity: .92;
}
/* Кнопки и поля не наследуют шрифт по умолчанию — браузер подставлял Arial. */
button, input, select, textarea { font-family: inherit; }
/* Нижняя граница кегля: ниже 11px подписи нечитаемы. */
.bw-date-mon { font-size: 11px !important; }
.bw-sum-label, .twogis-badge, .mc-stat-label, .hero-cta-gift-sub { font-size: 11px !important; }
/* Кнопка в две строки на 1.2 читается слипшейся. */
button, .btn, .hero-cta, .netx-card-cta, .modal-city-btn { line-height: 1.3 !important; }
/* Проза в карточках шла на 1.35–1.36 — ниже нижней границы читаемости для 12–14px. */
.proc-desc, .bw-service-desc, .netx-card-row span, .rh-txt { line-height: 1.55 !important; }
@media (max-width: 768px) {
    /* Заголовок не должен съедать экран: три строки крупным кеглем не оставляли места тексту. */
    .hero h1 { font-size: clamp(1.9rem, 7.2vw, 2.5rem) !important; line-height: 1.16 !important; }
    .hero-subtitle { font-size: clamp(1.05rem, 4.4vw, 1.35rem) !important; line-height: 1.45 !important; margin-bottom: 22px !important; }
    .hero-cta-row { flex-direction: column; align-items: stretch; gap: 12px; }
    /* Одна кнопка. Остальное — текстовые строки без рамок. */
    .hero-cta-prepay, .hero-cta-gift, .hero-cta-slot {
        background: none !important; border: 0 !important; box-shadow: none !important;
        padding: 0 !important; min-height: 0 !important; border-radius: 0 !important;
        justify-content: flex-start !important; text-align: left !important; width: auto !important;
        height: auto !important; /* базовые 52px оставляли лишний воздух между строками */
    }
    .hero-cta-gift { font-size: 14px !important; color: rgba(255,255,255,.9) !important; }
    .hero-cta-gift-title { font-size: 14px !important; }
    .hero-cta-gift-sub { font-size: 12px !important; opacity: .75; }
    .hero-cta-prepay { font-size: 14px !important; color: #fff !important; text-decoration: underline; text-underline-offset: 4px; }
    /* строка со свободным окном шла двумя колонками — переводим в обычную строку */
    .hero-cta-slot { display: block !important; font-size: 13px !important; line-height: 1.5 !important;
        color: rgba(255,255,255,.8) !important; margin-top: 4px !important; }
    .hero-cta-slot .hero-cta-slot-dot { display: inline-block; margin-right: 6px; vertical-align: middle; }
    .hero-cta-slot .hero-cta-slot-label, .hero-cta-slot .hero-cta-slot-time { display: inline; }
}
/* Техники — адаптивная сетка на всех ширинах, без горизонтального рельса и snap */
.procedures-grid { display: grid !important; grid-template-columns: repeat(4, minmax(0,1fr)) !important;
    overflow: visible !important; scroll-snap-type: none !important; gap: 16px !important; padding: 0 !important; }
.procedures-grid > .proc-card { flex: none !important; min-width: 0 !important; max-width: none !important;
    scroll-snap-align: none !important; }
@media (max-width: 1024px) { .procedures-grid { grid-template-columns: repeat(2, minmax(0,1fr)) !important; } }
@media (max-width: 560px)  { .procedures-grid { grid-template-columns: minmax(0,1fr) !important; } }
/* Карусели отзывов/абонементов остаются горизонтальными, но без snap — вертикальный скролл над ними не залипает */
.rh-track, .reviews .rh-track, .loyalty-block .loyalty-track { scroll-snap-type: none !important; overscroll-behavior-x: contain; }
.rh-track > .rh-card, .loyalty-block .loyalty-slide { scroll-snap-align: none !important; }
/* Зажатая шапка на узком десктопе (1024–1180): телефон в 2 строки, меню вплотную к логотипу. */
@media (min-width: 1024px) and (max-width: 1180px) {
    .nav-menu { gap: 16px !important; }
    .nav-menu a, .cp-nav a { font-size: 13px !important; letter-spacing: .04em !important; }
    .header-phone { font-size: 15px !important; white-space: nowrap !important; }
    .logo { font-size: 1.35rem !important; }
    .header-socials { display: none !important; } /* в подвале соцсети есть */
    .header-actions { gap: 14px !important; }
}
/* Карточки выбора услуги в блоке онлайн-записи были мелкими (padding 14, кегль 17/12,
   сетка 600px в контейнере 940) — укрупняем, чтобы не выглядело куцо. */
.booking-wizard .bw-services-grid { max-width: 780px !important; gap: 18px !important; }
.booking-wizard .bw-service-card { padding: 24px !important; border-radius: 18px !important; }
.booking-wizard .bw-service-icon { width: 36px !important; height: 36px !important; margin-bottom: 12px !important; }
.booking-wizard .bw-service-name { font-size: 21px !important; line-height: 1.25 !important; margin: 0 0 8px !important; }
.booking-wizard .bw-service-desc { font-size: 14px !important; line-height: 1.55 !important; margin: 0 0 10px !important; }
.booking-wizard .bw-service-price { font-size: 14px !important; }
.booking-wizard .bw-service-tags { gap: 6px !important; }
@media (max-width: 560px){ .booking-wizard .bw-service-card { padding: 18px !important; } .booking-wizard .bw-service-name { font-size: 19px !important; } }
/* Техники — 2 крупные карточки в ряд на десктопе (было 4, выглядело сжато) */
@media (min-width: 1025px){
  .procedures-grid{ grid-template-columns: repeat(2, minmax(0,1fr)) !important; gap: 24px !important; max-width: 1040px !important; margin-left: auto !important; margin-right: auto !important; }
  .procedures-grid > .proc-card{ aspect-ratio: 4/3 !important; }
  .proc-card .proc-name{ font-size: clamp(24px, 2vw, 30px) !important; }
  .proc-card .proc-desc{ font-size: 15px !important; }
}
@media (min-width: 700px) and (max-width: 1024px){
  .procedures-grid > .proc-card{ aspect-ratio: 4/3 !important; }
}
/* После сеанса — крупнее фото */
.av4-img{ height: 220px !important; }
.av4-img--circle{ width: 220px !important; height: 220px !important; }
@media (max-width: 700px){ .av4-img, .av4-img--circle{ height: 200px !important; } .av4-img--circle{ width: 200px !important; } }
/* Единообразные фото в «После сеанса» — равные прямоугольники */
.av4-img, .av4-img--circle, .av4-img--drop-top, .av4-img--square{
  width: 100% !important; height: 220px !important; border-radius: 20px !important;
  justify-self: stretch !important;
}
@media (max-width: 700px){ .av4-img, .av4-img--circle, .av4-img--drop-top, .av4-img--square{ height: 200px !important; } }
/* ═══ ЕДИНАЯ СИСТЕМА ПРОПОРЦИЙ (золотое сечение) ═══ */
/* Скругления: 20 карточки, 12 мелкие */
.proc-card, .bbx-sit, .bbx-step, .bbx-compare, .bbc-map, .bbs-photo,
.bbx-hero-card, .rh-card, .av4-txt, .av4-img, .av4-img--square, .av4-img--circle, .av4-img--drop-top{ border-radius: 20px !important; }
.proc-tag, .bbx-sit-tech, .bw-tag, .bbc-2gis, .hero-cta-gift{ border-radius: 12px !important; }
/* Гэпы карточек — единые 24 */
.bbx-sit-grid, .bbx-steps, .bbs-gallery{ gap: 24px !important; }
/* Типо-шкала: заполняем провал H2→H3, разводим слипшиеся кегли */
.bbx-sit-title, .bbx-step-title{ font-size: 23px !important; line-height: 1.22 !important; }
.bbx-sit-text, .bbx-step-text, .bbx-note{ font-size: 16px !important; line-height: 1.6 !important; }
.bbx-lead{ font-size: 19px !important; line-height: 1.55 !important; }
/* Колодец прозы ~820px */
.bbx-lead, .bbx-note{ max-width: 820px !important; }
/* Золотые медиа-карточки (десктоп) */
@media (min-width: 1025px){
  .procedures-grid > .proc-card{ aspect-ratio: 1.618 / 1 !important; }
  .bbs-photo{ aspect-ratio: 1 / 1.4 !important; }
}
.bbc-map{ position: relative; background: linear-gradient(135deg,#e8f0f4 0%,var(--bb-line) 100%); }
.bbc-map::before{ content:'Загрузка карты…'; position:absolute; inset:0; z-index:0;
  display:flex; align-items:center; justify-content:center; color:var(--bb-muted-2); font-size:14px; font-family:'Manrope',sans-serif; letter-spacing:.02em; }
.bbc-map iframe{ position:relative; z-index:1; }
/* Строка фото «После сеанса» = высоте фото (220px), чтобы фото не наезжали на плашки */
@media (min-width: 769px){
  .av4-strip{ grid-template-rows: 220px auto !important; }
}
@media (max-width:768px){
  .hero{ min-height:auto !important; padding-top:100px !important; padding-bottom:48px !important; }
}
@media (max-width:768px){
  .procedures-grid{ display:grid !important; grid-template-columns:minmax(0,1fr) !important; justify-items:stretch !important; justify-content:center !important; overflow:visible !important; }
  .procedures-grid > .proc-card{ width:auto !important; max-width:none !important; min-width:0 !important; flex:initial !important; }
}
@media (max-width:768px){
  .bbc-links{ flex-direction:column !important; align-items:flex-start !important; gap:12px !important; }
}
.booking-wizard > .container{ background:transparent !important; border:0 !important; box-shadow:none !important; border-radius: 0 !important; }
.loyalty-block:not(.loyalty-block-sparse) .loyalty-track{
  display:flex !important; grid-template-columns:none !important; overflow-x:auto !important; overflow-y:visible !important;
  scroll-snap-type:none !important; gap:24px !important; padding:4px 4px 14px !important; margin:0 !important;
  -webkit-overflow-scrolling:touch; scrollbar-width:thin; scroll-padding-left:0; }
.loyalty-block:not(.loyalty-block-sparse) .loyalty-slide{
  flex:0 0 calc((100% - 48px)/3) !important; width:auto !important; min-width:0 !important; max-width:none !important;
  scroll-snap-align:start !important; }
.loyalty-block:not(.loyalty-block-sparse) .results-nav{ display:flex !important; }
@media (max-width:1024px){ .loyalty-block:not(.loyalty-block-sparse) .loyalty-slide{ flex-basis:calc((100% - 24px)/2) !important; } }
@media (max-width:680px){
  .loyalty-block:not(.loyalty-block-sparse) .loyalty-slide{ flex-basis:82% !important; }
  .loyalty-block:not(.loyalty-block-sparse) .results-nav{ display:none !important; }
}
@media (max-width:768px){ section.hero{ min-height:auto !important; padding-bottom:40px !important; } }
/* Абонементы: однородное поле секции + без inset-тени (убираем шов под карточками) */
.pricing.loyalty-block{ background:var(--bb-white) !important; box-shadow:none !important; }
.bbc-taxi-ico{ margin-right:8px; }
.bbx-hero-offer{ font-size:17px !important; font-weight:600 !important; margin:0 0 10px !important; }
.hero-gift-line{ display:inline-flex; align-items:center; gap:9px; margin:0 0 18px; padding:8px 14px;
  background:rgba(121, 181, 209,.16); border:1px solid rgba(121, 181, 209,.55); border-radius: 999px; color:#fff; font-size:14px; line-height:1.25; }
.hero-gift-line-ico{ font-size:16px; }
.hero-gift-line-txt b{ font-weight:700; }
.hero-cta-row{ margin-bottom:14px !important; }
.hero-proof{ display:flex; align-items:center; gap:8px; margin:2px 0 14px; font-size:14px; color:rgba(255,255,255,.92); font-weight:600; }
.hero-cta-prepay--sec{ display:inline-flex; margin-top:8px !important; font-size:13px !important; padding:9px 15px !important;
  background:transparent !important; border:1px solid rgba(255,255,255,.30) !important; opacity:.9; }
.hero-cta-prepay--sec:hover{ opacity:1; background:rgba(255,255,255,.06) !important; }
@media (max-width:768px){ .hero-gift-line{ display:flex; } .bbx-hero-offer{ font-size:18px !important; } }
.hero-proof-ico{ font-size:15px; line-height:1; }
.bbx-hero-offer{ font-size:16px !important; font-weight:600 !important; }
.hero-offer-now{ font-size:23px; font-weight:800; letter-spacing:-.01em; }
.bbx-hero-offer s{ opacity:.55; font-weight:400; font-size:15px; margin-left:3px; }
.hero-offer-save{ display:inline-block; margin-left:8px; padding:3px 9px; border-radius: 999px;
  background:var(--bb-sky); color:#15181C; font-size:13px; font-weight:800; vertical-align:middle; letter-spacing:.01em; }
@media (max-width:768px){
  .hero-offer-now{ font-size:24px; }
  .hero::before{ background:
    linear-gradient(180deg, rgba(17,17,17,.48) 0%, rgba(17,17,17,.72) 100%),
    linear-gradient(90deg, rgba(17,17,17,.55) 0%, rgba(17,17,17,.4) 100%) !important; }
}
.bbx-sit--tap{ cursor:pointer; transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.bbx-sit--tap:hover{ transform:translateY(-4px); box-shadow:0 18px 40px -22px rgba(57,90,106,.4); border-color:rgba(121,181,209,.55) !important; }
.bbx-sit--tap::after{ content:'Подобрать уход →'; display:block; margin-top:14px; font-size:13px; font-weight:700; letter-spacing:.02em; color:var(--bb-sky); opacity:0; transform:translateX(-4px); transition:opacity .25s ease, transform .25s ease; }
.bbx-sit--tap:hover::after{ opacity:1; transform:translateX(0); }
@media (hover:none){ .bbx-sit--tap::after{ opacity:1; transform:none; } }
.bbx-sit--tap:focus-visible{ outline:2px solid var(--bb-sky); outline-offset:2px; }
.bbx-sit-cta{ text-align:center; margin-top:36px; }
.bbx-sit-cta .btn{ min-width:280px; }
.bbx-sit-cta-note{ display:block; margin-top:12px; font-size:14px; color:var(--bb-muted); }
.proc-card{ cursor:pointer; }
@media (hover:hover) and (prefers-reduced-motion: no-preference){
  .proc-card{ transition: transform .35s cubic-bezier(.2,.8,.2,1), box-shadow .35s cubic-bezier(.2,.8,.2,1) !important; }
  .proc-card:hover{ transform: translateY(-6px) !important; box-shadow: 0 26px 52px -20px rgba(57,90,106,.4) !important; }
  .proc-card:hover img{ transform: scale(1.045) !important; }
  .proc-card img{ transition: transform .5s cubic-bezier(.2,.8,.2,1) !important; }
}
h1, h2, h3, .hero-subtitle, .bbx-lead, .bbs-sub, .bbx-sit-title, .bbx-step-title, .av4-h, .proc-card h3{ text-wrap: balance; }
p, .proc-desc, .bbx-sit-text, .bbx-step-text, .bbx-note, .bbx-hero-soft, .loyalty-lead, .bbs-sub{ text-wrap: pretty; }
/* Онлайн-запись: карточки мастеров единого размера, услуги тянутся по высоте ряда */
@media (min-width:769px){
  .bw-master-card{ width:190px !important; flex:0 0 190px !important; min-width:0 !important; }
  .bw-service-card{ height:100% !important; display:flex !important; flex-direction:column !important; }
}
@media (min-width:769px){ .hero-gift-line{ display:none !important; } }
.bbx-card-gift{ margin:12px 0 0; font-size:14px; line-height:1.4; color:var(--bb-ink); }
.bbx-card-gift b{ font-weight:700; }
.bbx-card-gift-ic{ font-size:15px; }
.bbx-card-gift-sub{ color:var(--bb-muted); }
.bbx-card-offer{ font-size:15px !important; }
.bbx-card-offer .hero-offer-now{ font-size:21px; }
.bbx-card-offer .hero-offer-save{ margin-left:6px; }
@media (max-width:768px){ .bbx-hero-offer{ white-space:nowrap; } }
.rh-card{ padding:22px 22px !important; }
.rh-txt{ font-size:14px !important; line-height:1.62 !important; }
.rh-head{ margin-bottom:14px !important; }
/* Окошко записи выше и открытее */
.booking-wizard .bw-body{ height:580px !important; }
@media (max-width:768px){ .booking-wizard .bw-body{ height:480px !important; } }
/* Переключатель услуг закреплён под заголовком шага */
.booking-wizard .bw-services-tabs{ position:static !important;
  background:transparent !important; padding:8px 0 12px !important;
  margin:0 !important; box-shadow:none !important; }
.hero-gift-line{ background:var(--bb-sky) !important; border:0 !important; color:#15181C !important; font-weight:600 !important;
  box-shadow:0 6px 18px -8px rgba(0,0,0,.35) !important; }
.hero-gift-line .hero-gift-line-txt, .hero-gift-line b{ color:#15181C !important; }
.bbx-card-gift{ color:rgba(255,255,255,.9) !important; }
.bbx-card-gift b{ color:var(--bb-sky) !important; font-weight:700 !important; }
.bbx-card-gift-sub{ color:rgba(255,255,255,.62) !important; }
.bb-prepay{ padding:96px 0; background:#fff; }
.bb-prepay-inner{ max-width:1160px; margin:0 auto; padding:0 24px; display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center; }
.bb-prepay-media{ position:relative; margin:0; border-radius: var(--r-l); overflow:hidden; aspect-ratio:4/3; box-shadow:0 30px 60px -28px rgba(57,90,106,.42); }
.bb-prepay-media img{ width:100%; height:100%; object-fit:cover; display:block; }
.bb-prepay-badge{ position:absolute; left:16px; bottom:16px; background:var(--bb-sky); color:#15181C; font-family:'Manrope',sans-serif; font-weight:700; font-size:13px; padding:8px 14px; border-radius: 999px; box-shadow:0 8px 20px -8px rgba(0,0,0,.35); }
.bb-prepay-eyebrow{ font-family:'Manrope',sans-serif; font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:var(--bb-sky); font-weight:700; margin:0 0 14px; }
.bb-prepay-title{ font-family:'Playfair Display',serif; font-size:clamp(28px,3vw,42px); line-height:1.15; margin:0 0 18px; color:var(--bb-ink); text-wrap:balance; }
.bb-prepay-title i{ font-style:italic; color:var(--bb-sky); }
.bb-prepay-lead{ font-size:17px; line-height:1.6; color:var(--bb-muted); margin:0 0 22px; max-width:520px; }
.bb-prepay-list{ list-style:none; margin:0 0 26px; padding:0; display:grid; gap:12px; }
.bb-prepay-list li{ position:relative; padding-left:32px; font-size:15px; line-height:1.5; color:var(--bb-ink); }
.bb-prepay-list li::before{ content:'✓'; position:absolute; left:0; top:-1px; width:22px; height:22px; border-radius: 50%; background:var(--bb-sky); color:#15181C; font-size:13px; font-weight:800; display:flex; align-items:center; justify-content:center; }
.bb-prepay-cta{ display:inline-flex; align-items:center; justify-content:center; padding:16px 34px; border:0; border-radius: 999px; background:var(--bb-teal); color:#fff; font-family:'Manrope',sans-serif; font-size:16px; font-weight:700; letter-spacing:.01em; cursor:pointer; transition:background .2s, transform .2s; }
.bb-prepay-cta:hover{ background:var(--bb-teal-deep); transform:translateY(-2px); }
.bb-prepay-note{ margin:12px 0 0; font-size:13px; color:#8a94a0; }
@media (max-width:860px){ .bb-prepay{ padding:56px 0; } .bb-prepay-inner{ grid-template-columns:1fr; gap:26px; } .bb-prepay-media{ aspect-ratio:16/10; } .bb-prepay-lead{ font-size:16px; } }
.bw-cal{ max-width:360px; margin:0 auto; }
.bw-cal-head{ display:flex; align-items:center; justify-content:space-between; margin:0 0 14px; }
.bw-cal-title{ font-family:'Manrope',sans-serif; font-size:16px; font-weight:700; color:var(--bb-ink); }
.bw-cal-nav{ width:38px; height:38px; border-radius: 50%; border:1.5px solid #e0e8ec; background:#fff; color:var(--bb-teal-deep); font-size:20px; line-height:1; cursor:pointer; transition:border-color .2s,background .2s; display:flex; align-items:center; justify-content:center; padding:0; }
.bw-cal-nav:hover:not(:disabled){ border-color:var(--bb-sky); background:#F0F8FC; }
.bw-cal-nav:disabled{ opacity:.3; cursor:default; }
.bw-cal-dow{ display:grid; grid-template-columns:repeat(7,1fr); gap:4px; margin:0 0 8px; }
.bw-cal-dow span{ text-align:center; font-family:'Manrope',sans-serif; font-size:11px; font-weight:600; letter-spacing:.04em; text-transform:uppercase; color:#9aa7b0; padding:4px 0; }
.bw-cal-grid{ display:grid; grid-template-columns:repeat(7,1fr); gap:4px; }
.bw-cal-cell{ aspect-ratio:1; display:flex; align-items:center; justify-content:center; border:0; background:transparent; border-radius: var(--r-s); font-family:'Manrope',sans-serif; font-size:15px; color:var(--bb-ink); cursor:pointer; transition:background .15s,color .15s,box-shadow .15s; padding:0; }
button.bw-cal-cell:hover:not(.bw-cal-disabled):not(.selected){ background:#F0F8FC; }
.bw-cal-empty{ visibility:hidden; cursor:default; }
.bw-cal-disabled{ color:#c9d2d8; cursor:default; }
.bw-cal-weekend:not(.bw-cal-disabled):not(.selected){ color:#c0708a; }
.bw-cal-today{ box-shadow:inset 0 0 0 1.5px #b9ccd6; font-weight:700; }
.bw-cal-cell.selected{ background:var(--bb-sky) !important; color:#fff !important; font-weight:700; }
@media (max-width:768px){ .bw-cal{ max-width:320px; } .bw-cal-cell{ font-size:14px; } }
/* === Дизайн-система кнопок === */
.hero-cta, .hero-cta-primary, .btn.btn-primary, .bb-prepay-cta, .bw-service-pick,
.netx-card-cta.primary, .cert-btn, .quiz-cta, .city-modal-cta, .lead-submit{
  background:var(--bb-teal) !important; color:#fff !important; border:0 !important;
  border-radius: 999px !important; font-family:'Manrope',sans-serif !important;
  font-weight:700 !important; letter-spacing:.01em !important; box-shadow:none !important; }
.hero-cta:hover, .hero-cta-primary:hover, .btn.btn-primary:hover, .bb-prepay-cta:hover,
.bw-service-pick:hover, .netx-card-cta.primary:hover, .cert-btn:hover, .quiz-cta:hover,
.city-modal-cta:hover, .lead-submit:hover{ background:#3B7189 !important; }
/* secondary = контур */
.netx-card-cta.secondary{ background:transparent !important; color:var(--bb-teal) !important;
  border:1.5px solid var(--bb-teal) !important; border-radius: 999px !important; font-weight:600 !important; }
.netx-card-cta.secondary:hover{ background:rgba(78,143,170,.08) !important; }
.bw-task-head{ text-align:center; font-family:'Manrope',sans-serif; font-size:14px; font-weight:700; color:var(--bb-ink); margin:0 0 12px; }
.bw-tasks{ display:flex; flex-wrap:wrap; justify-content:center; gap:8px; max-width:820px; margin:0 auto 16px; }
.bw-task-chip{ padding:9px 16px; border-radius: 999px; border:1.5px solid #d4e2ea; background:#fff; color:var(--bb-teal-deep); font-family:'Manrope',sans-serif; font-size:13px; font-weight:600; cursor:pointer; transition:all .2s; }
.bw-task-chip:hover{ border-color:var(--bb-sky); }
.bw-task-chip.active{ background:var(--bb-teal); border-color:var(--bb-teal); color:#fff; }
@media(max-width:768px){ .bw-tasks{ gap:6px; } .bw-task-chip{ padding:10px 14px; font-size:13px; } }
/* «Любой мастер» — акцентный дефолт, первым */
.bw-master-card[data-master-id="0"]{ order:-1; border-color:var(--bb-teal) !important; background:#EEF6FA !important; position:relative; }
.bw-master-card[data-master-id="0"] .bw-master-avatar{ background:var(--bb-teal) !important; color:#fff !important; }
.bw-master-card[data-master-id="0"]::after{ content:'быстрее всего'; position:absolute; top:-9px; left:50%; transform:translateX(-50%); background:var(--bb-teal); color:#fff; font-family:'Manrope',sans-serif; font-size:10px; font-weight:700; letter-spacing:.03em; text-transform:uppercase; padding:3px 9px; border-radius: 999px; white-space:nowrap; }
.bw-masters-grid{ align-items:flex-start; }
.bw-slots-note{ grid-column:1 / -1; text-align:center; font-family:'Manrope',sans-serif; font-size:14px; font-weight:600; color:var(--bb-teal-deep); margin:0 0 8px; }
.bw-slots-scarce{ color:#c0562f; }
@media (max-width:768px){ .bw-summary-card{ position:sticky !important; top:66px !important; z-index:20 !important; box-shadow:0 6px 16px -10px rgba(57,90,106,.4); } }
/* Обе подписи под кнопкой — плоские строки, иконки фикс-ширины, текст выровнен */
.hero-next-slot-badge{ background:transparent !important; border:0 !important; padding:0 !important; box-shadow:none !important; margin:16px 0 0 !important; animation:none !important; }
.hero-next-slot-badge, .hero-proof{ display:flex !important; align-items:center; gap:8px !important; padding-left:0 !important; margin-left:0 !important; }
.hero-next-slot-dot, .hero-proof-ico{ width:18px !important; height:18px !important; flex:0 0 18px !important; display:inline-flex !important; align-items:center; justify-content:center; margin:0 !important; }
.hero-proof{ margin-top:8px !important; }
/* Обе подписи: текст с общим отступом 26px, иконка абсолютно у левого края — идеальное выравнивание */
.hero-cta-slot, .hero-proof{ position:relative !important; display:block !important; padding:0 0 0 26px !important; margin:14px 0 0 !important; background:transparent !important; border:0 !important; box-shadow:none !important; animation:none !important; line-height:1.4; }
.hero-proof{ margin-top:8px !important; }
.hero-cta-slot-dot, .hero-proof-ico{ position:absolute !important; left:2px !important; top:5px !important; margin:0 !important; }
.hero-cta-slot-dot{ width:9px !important; height:9px !important; top:7px !important; }
.bw-pay-service{ margin-top:20px; padding-top:18px; border-top:1px solid rgba(0,0,0,.08); }
.bw-pay-note{ font-size:15px; color:var(--bb-teal-deep); margin:0 0 12px; }
.bw-pay-service .btn{ min-width:240px; }
.bw-pay-sub{ font-size:12px; color:#8a94a0; margin:10px 0 0; }
.bb-leadform-prepay{ margin-top:20px; padding-top:18px; border-top:1px solid rgba(0,0,0,.08); }
.bb-leadform-prepay-note{ font-size:14px; line-height:1.5; color:var(--bb-teal-deep); margin:0 0 12px; }
.bb-leadform-prepay .btn{ min-width:240px; }




/* cc-buttons-unified-3 2026-08-02: у CTA было четыре высоты (45/53/54/58), три кегля
   и два разных синих. В файле 50+ слоёв стилей, часть кнопок описана трижды —
   поэтому здесь !important: это единственная точка, задающая вид кнопок. */
body .btn-primary,
body .btn.btn-primary,
body .bw-submit,
body .bb-prepay-cta,
body .bb-blogger-cta,
body .pf-submit,
body .loyalty-cta{
  background: var(--bb-teal) !important;
  color: #fff !important;
  font-family: 'Manrope', sans-serif !important;
  font-weight: 700 !important;
  font-size: 15px !important;
  line-height: 1.2 !important;
  letter-spacing: .01em !important;
  text-transform: none !important;
  min-height: 52px !important;
  border-radius: 999px !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
}
body .bw-submit{ width: 100% !important; }

body .btn-primary:hover,
body .bw-submit:hover,
body .bb-prepay-cta:hover,
body .bb-blogger-cta:hover,
body .pf-submit:hover,
body .loyalty-cta:hover{ background: var(--bb-teal-deep) !important; }

/* Кнопка поверх фото мастера остаётся прозрачной с рамкой — но той же посадки */
body .mc-cta-btn{ font-family:'Manrope',sans-serif !important; font-size:15px !important;
  font-weight:700 !important; min-height:52px !important; border-radius: 999px !important; }

@media (max-width:640px){
  body .btn-primary,body .btn.btn-primary,body .bw-submit,body .bb-prepay-cta,
  body .bb-blogger-cta,body .pf-submit,body .loyalty-cta,body .mc-cta-btn{ min-height:50px !important; }
}


/* ── «Под вашу задачу»: экран на услугу (07.08.2026, ред. 2) ─────────────────
   С одной стороны схема действия процедуры, с другой — описание. Большое фото
   процедуры убрано: клиенту важнее, что происходит с телом, чем кадр аппарата.
   Плитки .proc-card остались для городов без флага proc_detail. */
.pd-section{ padding:120px 0 0; }
.pd-screen{ padding:56px 0; }
.pd-screen--flip{ background:var(--bb-bg); }
.pd-grid{ display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); gap:64px; align-items:center; }
.pd-screen--flip .pd-scheme{ order:2; }

.pd-scheme{ margin:0; }
.pd-scheme img{ width:100%; height:auto; display:block; object-fit:contain;
  border-radius:var(--r-l); background:#EAF3FA;
  box-shadow:0 30px 60px -34px rgba(57,90,106,.4); }
.pd-scheme figcaption{ font-family:'Manrope',sans-serif; font-size:13px; line-height:1.5;
  color:var(--bb-muted-2); margin-top:14px; max-width:560px; }

.pd-body{ max-width:560px; }
.pd-num{ font-family:'Manrope',sans-serif; font-size:13px; font-weight:800;
  letter-spacing:.2em; color:var(--bb-sky); margin:0 0 12px; }
.pd-tag{ display:inline-block; font-family:'Manrope',sans-serif; font-size:12px;
  font-weight:700; letter-spacing:.08em; text-transform:uppercase;
  color:var(--bb-teal-deep); background:#fff; border:1.5px solid var(--bb-line-2);
  padding:7px 15px; border-radius:999px; margin:0 0 16px; }
.pd-title{ font-family:'Playfair Display',serif; font-size:clamp(30px,3.4vw,46px);
  line-height:1.12; color:var(--bb-ink); margin:0 0 14px; text-align:left; }
.pd-lead{ font-size:17px; line-height:1.6; color:var(--bb-muted); margin:0 0 26px; }

.pd-steps{ list-style:none; margin:0 0 24px; padding:0; display:grid; gap:13px; }
.pd-steps li{ display:flex; align-items:flex-start; gap:12px; }
.pd-step-n{ flex:0 0 26px; width:26px; height:26px; border-radius:50%; background:var(--bb-sky);
  color:#15181C; font-family:'Manrope',sans-serif; font-size:13px; font-weight:800;
  display:flex; align-items:center; justify-content:center; margin-top:1px; }
.pd-step-t{ font-size:15px; line-height:1.5; color:var(--bb-ink); }

.pd-eff{ list-style:none; display:flex; flex-wrap:wrap; gap:8px; margin:0 0 28px; padding:0; }
.pd-eff li{ padding:8px 15px; border-radius:999px; border:1.5px solid var(--bb-line-2);
  background:#fff; font-family:'Manrope',sans-serif; font-size:13px; font-weight:600;
  color:var(--bb-teal-deep); }
.pd-screen--flip .pd-eff li, .pd-screen--flip .pd-tag{ background:transparent; }

.pd-cta{ display:inline-flex; align-items:center; justify-content:center; min-height:52px;
  padding:0 34px; border:0; border-radius:999px; background:var(--bb-teal); color:#fff;
  font-family:'Manrope',sans-serif; font-size:15px; font-weight:700; cursor:pointer;
  transition:background .2s, transform .2s; }
.pd-cta:hover{ background:var(--bb-teal-deep); transform:translateY(-2px); }

@media (min-width:1024px){
  .pd-screen{ min-height:82vh; display:flex; align-items:center; }
  .pd-grid{ width:100%; }
}
@media (max-width:900px){
  .pd-section{ padding:64px 0 0; }
  .pd-screen{ padding:40px 0; }
  .pd-grid{ grid-template-columns:1fr; gap:26px; }
  .pd-screen--flip .pd-scheme{ order:0; }
  .pd-body{ max-width:none; }
  .pd-lead{ font-size:16px; }
  .pd-cta{ width:100%; }
}