/* Токены палитры — те же, что на странице города */
:root{
  --r-s: 14px;
  --r-m: 20px;
  --r-l: 24px;

  --bb-sky: #79B5D1;
  --bb-teal: #4E8FAA;
  --bb-teal-deep: #395A6A;
  --bb-ink: #1F2A33;
  --bb-muted: #5A6470;
  --bb-line: #DAF2FD;
  --bb-bg: #F4F9FB;
}
/* Собран из uslugi.tpl.html (5 блоков). Порядок сохранён: поздние правила перебивают ранние. */
:root {
            /* Строгая палитра по ТЗ */
            --blue-main: var(--bb-sky);
            --blue-dark: var(--bb-teal-deep);
            --blue-light: var(--bb-line);
            --bg-very-light: var(--bb-bg);
            --white: #FFFFFF;
            --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;
        }

        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);
        }

        .btn-blue {
            background-color: var(--blue-main);
            color: var(--white);
            box-shadow: 0 8px 24px rgba(121, 181, 209, 0.3);
        }

        .btn-blue:hover {
            background-color: #5fa1c0;
        }

        /* Анимация появления */
        .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 #f0f0f0;
            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 {
            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 #f0f0f0;
            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;
            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%;
        }

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

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

        .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(2.6rem, 5.2vw, 4.3rem);
            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.5rem, 2.8vw, 2.2rem);
            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: inline-flex;
            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);
        }

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

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

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

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

        /* ================= PROBLEMS / WHO IS IT FOR ================= */
        .problems {
            background: var(--white);
        }

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

        @media (min-width: 768px) {
            .problems-grid {
                grid-template-columns: repeat(3, 1fr);
            }
        }

        .problem-card {
            background: transparent;
            padding: 48px 32px;
            text-align: left;
            display: flex;
            flex-direction: column;
            transition: 0.4s;
            /* border/box-shadow removed 2026-05-20 — рамка убрана по брендбуку */
        }

        .problem-card:hover {
            transform: translateY(-8px);
            /* border-color/box-shadow removed 2026-05-20 */
        }

        .problem-icon {
            width: 56px;
            height: 56px;
            border-radius: var(--r-s);
            background: var(--bg-very-light);
            color: var(--blue-main);
            display: flex;
            align-items: center;
            justify-content: center;
            margin-bottom: 24px;
        }

        .problem-icon svg {
            width: 28px;
            height: 28px;
        }

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

        .problem-card p {
            color: var(--text-sec);
            font-size: 0.95rem;
            line-height: 1.6;
        }

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

        .programs-list {
            display: flex;
            flex-direction: column;
            gap: 80px;
            margin-top: 60px;
        }

        @media (min-width: 768px) {
            .programs-list {
                gap: 120px;
            }
        }

        .program-row {
            display: grid;
            grid-template-columns: 1fr;
            gap: 40px;
            align-items: center;
        }

        @media (min-width: 992px) {
            .program-row {
                grid-template-columns: 1fr 1fr;
                gap: 80px;
            }

            .program-row.reverse .program-image {
                order: 1;
            }

            .program-row.reverse .program-content {
                order: 2;
            }
        }

        .program-image {
            border-radius: var(--radius-lg);
            overflow: hidden;
            box-shadow: var(--shadow-md);
            aspect-ratio: 4/5;
            position: relative;
        }

        .program-image img {
            width: 100%;
            height: 100%;
            transition: 0.8s cubic-bezier(0.2, 0, 0.2, 1);
        }

        .program-row:hover .program-image img {
            transform: scale(1.04);
        }

        .program-badge {
            position: absolute;
            top: 24px;
            left: 24px;
            background: var(--blue-dark);
            color: var(--white);
            font-size: 0.7rem;
            font-weight: 700;
            text-transform: uppercase;
            letter-spacing: 0.1em;
            padding: 8px 18px;
            border-radius: 999px;
            z-index: 5;
        }

        .program-content h3 {
            font-size: clamp(1.8rem, 3vw, 2.4rem);
            margin-bottom: 16px;
            color: var(--text-main);
        }

        .program-content>p {
            color: var(--text-sec);
            font-size: 1.05rem;
            margin-bottom: 28px;
            line-height: 1.6;
        }

        .program-result {
            background: var(--bg-very-light);
            border-left: 3px solid var(--blue-main);
            padding: 20px 24px;
            border-radius: var(--r-s);
            margin-bottom: 28px;
        }

        .program-result strong {
            display: block;
            font-size: 0.75rem;
            text-transform: uppercase;
            letter-spacing: 0.12em;
            color: var(--blue-dark);
            font-weight: 700;
            margin-bottom: 6px;
        }

        .program-result p {
            color: var(--text-main);
            font-weight: 500;
            line-height: 1.5;
        }

        .program-features {
            display: flex;
            flex-direction: column;
            gap: 12px;
            margin-bottom: 32px;
        }

        .program-features li {
            display: flex;
            align-items: center;
            gap: 14px;
            font-size: 0.95rem;
            color: var(--text-main);
            font-weight: 500;
            padding: 12px 16px;
            background: var(--white);
            border: 1px solid #eee;
            border-radius: var(--r-s);
        }

        .check-icon {
            width: 28px;
            height: 28px;
            border-radius: 50%;
            background: var(--blue-light);
            color: var(--blue-dark);
            display: flex;
            align-items: center;
            justify-content: center;
            flex-shrink: 0;
        }

        .check-icon svg {
            width: 14px;
            height: 14px;
        }

        .programs-cta {
            text-align: center;
            margin-top: 80px;
            padding: 48px 32px;
            background: var(--white);
            border: 1px solid var(--blue-light);
            border-radius: var(--radius-lg);
            max-width: 720px;
            margin-left: auto;
            margin-right: auto;
        }

        .programs-cta p {
            font-family: 'Playfair Display', serif;
            font-style: italic;
            font-size: clamp(1.2rem, 2vw, 1.6rem);
            color: var(--blue-dark);
            margin-bottom: 24px;
        }

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

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

        @media (min-width: 768px) {
            .results-grid {
                grid-template-columns: repeat(3, 1fr);
            }
            /* 06.08.2026: карточек «до/после» стало произвольное число —
               ровно четыре кладём в 2×2, а одинокую в последнем ряду центрируем,
               чтобы сетка не выглядела обрубленной. */
            .results-grid:has(> .result-card:first-child:nth-last-child(4)) {
                grid-template-columns: repeat(2, 1fr);
            }
            .results-grid > .result-card:last-child:nth-child(3n + 1) {
                grid-column: 2;
            }
        }

        .result-card {
            display: flex;
            flex-direction: column;
            gap: 20px;
        }

        .ba-container {
            position: relative;
            width: 100%;
            aspect-ratio: 4/5;
            border-radius: var(--radius-md);
            overflow: hidden;
            box-shadow: var(--shadow-md);
            user-select: none;
            cursor: ew-resize;
            background: var(--bg-very-light);
        }

        /* Статичный композит "до/после" (исходник уже side-by-side) */
        .ba-static {
            position: relative;
            width: 100%;
            aspect-ratio: 16/10;
            border-radius: var(--radius-md);
            overflow: hidden;
            box-shadow: var(--shadow-md);
            background-size: cover;
            background-position: center;
            background-color: var(--bg-very-light);
        }

        .ba-static::after {
            content: '';
            position: absolute;
            top: 0;
            bottom: 0;
            left: 50%;
            width: 2px;
            background: rgba(255, 255, 255, 0.85);
            transform: translateX(-50%);
            box-shadow: 0 0 12px rgba(0, 0, 0, 0.3);
        }

        .ba-image {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background-size: cover;
            background-position: center;
        }

        .ba-after {
            width: 50%;
            border-right: 3px solid rgba(255, 255, 255, 0.85);
            z-index: 10;
        }

        .ba-handle {
            position: absolute;
            top: 0;
            bottom: 0;
            left: 50%;
            width: 3px;
            background: var(--white);
            z-index: 20;
            transform: translateX(-50%);
            pointer-events: none;
        }

        .ba-handle::after {
            content: '';
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            width: 44px;
            height: 44px;
            background: var(--white);
            border-radius: 50%;
            box-shadow: var(--shadow-md);
            background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2379B5D1' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m18 8 4 4-4 4'/%3E%3Cpath d='m6 8-4 4 4 4'/%3E%3C/svg%3E");
            background-repeat: no-repeat;
            background-position: center;
        }

        .ba-label {
            position: absolute;
            top: 20px;
            font-size: 0.7rem;
            font-weight: 800;
            text-transform: uppercase;
            letter-spacing: 0.1em;
            padding: 6px 14px;
            border-radius: 999px;
            z-index: 25;
        }

        .ba-label-before {
            left: 20px;
            background: rgba(17, 17, 17, 0.55);
            color: var(--white);
            backdrop-filter: blur(6px);
        }

        .ba-label-after {
            right: 20px;
            background: var(--blue-main);
            color: var(--white);
        }

        .result-caption {
            text-align: center;
            padding: 0 8px;
        }

        .result-caption h4 {
            font-family: 'Playfair Display', serif;
            font-size: 1.4rem;
            color: var(--text-main);
            margin-bottom: 4px;
        }

        .result-caption p {
            color: var(--text-sec);
            font-size: 0.9rem;
        }

        .results-cta {
            text-align: center;
            margin-top: 56px;
        }

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

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

        .reviews-head {
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 12px;
            margin-bottom: 48px;
        }

        .rating-line {
            display: inline-flex;
            align-items: center;
            gap: 10px;
            background: var(--white);
            padding: 8px 20px;
            border-radius: 999px;
            font-size: 0.9rem;
            color: var(--text-sec);
            box-shadow: var(--shadow-sm);
        }

        .rating-line strong {
            color: var(--text-main);
            font-weight: 800;
        }

        .reviews-grid {
            display: grid;
            grid-template-columns: 1fr;
            gap: 24px;
            padding: 0 24px;
            max-width: var(--container-w);
            margin: 0 auto;
        }

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

        .review-card {
            background: var(--white);
            padding: 32px 28px;
            border-radius: var(--radius-md);
            box-shadow: var(--shadow-sm);
            border: 1px solid transparent;
            display: flex;
            flex-direction: column;
            transition: 0.4s;
        }

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

        .review-head {
            display: flex;
            justify-content: space-between;
            align-items: flex-start;
            margin-bottom: 16px;
            gap: 12px;
        }

        .review-author {
            display: flex;
            gap: 12px;
            align-items: center;
        }

        .review-avatar {
            width: 44px;
            height: 44px;
            border-radius: 50%;
            border: 2px solid var(--white);
            box-shadow: var(--shadow-sm);
            object-fit: cover;
            flex-shrink: 0;
        }

        .review-author-info h4 {
            font-family: 'Manrope', sans-serif;
            font-size: 0.95rem;
            font-weight: 700;
            color: var(--text-main);
            margin-bottom: 2px;
            letter-spacing: 0;
        }

        .review-author-info span {
            font-size: 0.78rem;
            color: var(--text-sec);
        }

        .review-source {
            font-size: 0.7rem;
            font-weight: 700;
            letter-spacing: 0.08em;
            padding: 4px 10px;
            border-radius: 6px;
            text-transform: uppercase;
            white-space: nowrap;
        }

        .review-source.yandex {
            background: rgba(252, 63, 29, 0.1);
            color: #E02404;
        }

        .review-source.gis {
            background: rgba(164, 227, 138, 0.2);
            color: #4D8C33;
        }

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

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

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

        .review-text {
            font-size: 0.92rem;
            line-height: 1.6;
            color: var(--text-main);
            flex-grow: 1;
        }

        .reviews-foot {
            text-align: center;
            margin-top: 40px;
        }

        .reviews-foot a {
            display: inline-flex;
            align-items: center;
            gap: 8px;
            color: var(--blue-dark);
            font-weight: 700;
            font-size: 0.85rem;
            padding: 12px 24px;
            border-radius: 999px;
            background: var(--white);
            box-shadow: var(--shadow-sm);
            text-transform: uppercase;
            letter-spacing: 0.05em;
        }

        .reviews-foot a:hover {
            color: var(--blue-main);
            transform: translateY(-2px);
            box-shadow: var(--shadow-md);
        }

        /* ── Reviews carousel (как на /kazan): первый виден, остальные — скроллом ── */
        .rh-track {
            display: flex;
            gap: 14px;
            overflow-x: auto;
            padding: 8px 24px 16px;
            max-width: var(--container-w);
            margin: 0 auto;
            scroll-snap-type: x mandatory;
            -webkit-overflow-scrolling: touch;
        }
        .rh-track::-webkit-scrollbar { height: 4px; }
        .rh-track::-webkit-scrollbar-track {
            background: #f0f0f0; 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: #ffffff;
            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);
        }
        .rh-nm {
            font-size: 13px;
            font-weight: 600;
            color: #1a1a1a;
            line-height: 1.2;
        }
        .rh-cnt { font-size: 11px; color: #999; margin-top: 1px; }
        .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: 11px; color: #aaa; }
        .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; }
        .twogis-badge {
            display: inline-block;
            font-size: 0.65rem;
            font-weight: 700;
            padding: 2px 8px;
            border-radius: 4px;
            letter-spacing: 0.04em;
            background: #19B362;
            color: #FFF;
        }

        /* ================= FAQ ================= */
        .faq {
            background: var(--white);
        }

        .faq-list {
            max-width: 820px;
            margin: 48px auto 0;
            display: flex;
            flex-direction: column;
            gap: 12px;
        }

        .faq-item {
            background: var(--white);
            border: 1px solid #eee;
            border-radius: var(--radius-md);
            transition: 0.3s;
            overflow: hidden;
        }

        .faq-item.active {
            background: var(--bg-very-light);
            border-color: var(--blue-light);
        }

        .faq-toggle {
            width: 100%;
            padding: 24px 28px;
            display: flex;
            justify-content: space-between;
            align-items: center;
            gap: 16px;
            background: transparent;
            border: none;
            cursor: pointer;
            text-align: left;
            font-family: 'Manrope', sans-serif;
        }

        .faq-toggle h3 {
            font-family: 'Playfair Display', serif;
            font-size: clamp(1.05rem, 1.6vw, 1.25rem);
            color: var(--text-main);
            line-height: 1.3;
            font-weight: 500;
        }

        .faq-icon {
            width: 40px;
            height: 40px;
            border-radius: 50%;
            background: var(--white);
            border: 1px solid #eee;
            display: flex;
            align-items: center;
            justify-content: center;
            flex-shrink: 0;
            color: var(--blue-main);
            transition: 0.3s;
        }

        .faq-icon svg {
            width: 16px;
            height: 16px;
            transition: 0.3s;
        }

        .faq-item.active .faq-icon {
            background: var(--blue-main);
            color: var(--white);
            border-color: var(--blue-main);
        }

        .faq-item.active .faq-icon svg {
            transform: rotate(45deg);
        }

        .faq-answer {
            max-height: 0;
            overflow: hidden;
            transition: max-height 0.4s ease-out, padding 0.3s ease;
        }

        .faq-item.active .faq-answer {
            max-height: 500px;
            padding: 0 28px 24px;
        }

        .faq-answer p {
            color: var(--text-sec);
            font-size: 0.95rem;
            line-height: 1.7;
        }

        /* ================= BOOKING / FORM (modal) ================= */
        .modal-overlay {
            position: fixed;
            inset: 0;
            background: rgba(17, 17, 17, 0.55);
            backdrop-filter: blur(8px);
            display: flex;
            align-items: center;
            justify-content: center;
            z-index: 2000;
            opacity: 0;
            pointer-events: none;
            transition: 0.3s ease;
            padding: 24px;
        }

        .modal-overlay.active {
            opacity: 1;
            pointer-events: auto;
        }

        .modal-content {
            background: var(--white);
            max-width: 460px;
            width: 100%;
            padding: 48px 36px;
            border-radius: var(--radius-md);
            box-shadow: var(--shadow-lg);
            position: relative;
            transform: scale(0.96) translateY(12px);
            transition: 0.3s ease;
        }

        .modal-overlay.active .modal-content {
            transform: scale(1) translateY(0);
        }

        .modal-close {
            position: absolute;
            top: 16px;
            right: 16px;
            width: 36px;
            height: 36px;
            border-radius: 50%;
            background: var(--bg-very-light);
            border: none;
            display: flex;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            color: var(--text-sec);
            transition: 0.3s;
        }

        .modal-close:hover {
            background: var(--blue-light);
            color: var(--blue-dark);
        }

        .modal-content h3 {
            font-size: 1.6rem;
            margin-bottom: 8px;
            text-align: center;
            color: var(--text-main);
        }

        .modal-content>p {
            color: var(--text-sec);
            text-align: center;
            margin-bottom: 28px;
            font-size: 0.9rem;
        }

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

        .form-control {
            width: 100%;
            padding: 16px 24px;
            border: 1px solid #E0E0E0;
            border-radius: 999px;
            font-family: inherit;
            font-size: 0.95rem;
            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.15);
        }

        select.form-control {
            appearance: none;
            background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23395A6A' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
            background-repeat: no-repeat;
            background-position: right 22px center;
            padding-right: 50px;
            cursor: pointer;
            font-weight: 600;
        }

        /* ================= 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;
            text-align: left;
        }

        .contacts-info .section-tag,
        .contacts-info h2 {
            text-align: inherit;
        }

        .contacts-info h2 {
            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 iframe {
            width: 100%;
            height: 100%;
            border: 0;
        }

        /* ================= FOOTER ================= */
        footer {
            background: var(--white);
            color: var(--text-main);
            padding: 60px 0 40px;
            border-top: 1px solid #eee;
        }

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

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

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

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

        .footer-links {
            display: flex;
            flex-direction: column;
            align-items: flex-start;
            gap: 8px;
            padding-top: 10px;
            border-top: 1px solid #f0f0f0;
        }

        @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;
        }

        /* ── Мобильный адаптив: programs на большом экране ── */
        @media (min-width: 1024px) {
            .programs-grid {
                grid-template-columns: repeat(3, 1fr);
            }
        }

        /* ── Планшеты 768-991px: 2 колонки для отзывов ── */
        @media (min-width: 768px) and (max-width: 991px) {
            .reviews-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;
        }
    
    /* 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: block;
      margin: 14px 0 0;
      font-size: 12px;
      line-height: 1.5;
      color: #94A3B8;
      text-align: center;
    }
    .form-consent a {
      color: var(--bb-sky);
      text-decoration: none;
      border-bottom: 1px dotted rgba(121, 181, 209, 0.5);
    }

    
    /* 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;
    }

    /* 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 (header socials parity with kazan/index.html) ============ */
    .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: #FFFFFF;
    }
    .header-socials svg {
      width: 20px !important;
      height: 20px !important;
      display: block;
      fill: currentColor;
    }

    /* Footer copyright (introduced 2026-05-10) */
    .footer-copyright {
      margin-top: 16px;
      opacity: 0.55;
      font-size: 0.85em;
      text-align: center;
    }

    /* ============ UI HOTFIX (synced from kazan/index.html, 2026-05-10) ============ */

    /* Кнопки "ЗАПИСАТЬСЯ" и "КАЗАНЬ" — единый стиль (Cormorant + var(--bb-sky)) */
    .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: #FFFFFF !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: #FFFFFF !important;
      border-color: transparent !important;
    }
    header.scrolled .header-actions .btn-header {
      background: var(--bb-sky) !important;
      background-color: var(--bb-sky) !important;
      color: #FFFFFF !important;
      border-color: transparent !important;
    }
    header.scrolled .header-actions .btn-header:hover {
      background: var(--bb-sky) !important;
      background-color: var(--bb-sky) !important;
    }
    .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;
    }
    .btn.btn-hero .btn-price {
      font-family: 'Manrope', sans-serif !important;
      font-weight: 700;
      letter-spacing: 0.02em;
    }

    /* Телефон в шапке — 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: #FFFFFF !important;
    }
    .offer-text-badge span {
      font-size: 0.7rem !important;
      line-height: 1.15 !important;
      letter-spacing: 0.05em !important;
    }
    .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;
      }
    }

    /* Звёзды в 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;
      }
    }

    /* ============= ВЕКТОР 2 + AMBIENT — порт с /kazan/ — 2026-05-14 =============
       Адаптировано под секции uslugi: problems, programs, results, reviews,
       faq, contacts. + Вектор 2: луна, wave-warm-line, breathing, drift. */

    :root {
        --ritual-honey: #E8C9A4;
        --ritual-amber: #D9B689;
        --ritual-cream: #F5EBDC;
        --ritual-glow:  rgba(217, 182, 137, 0.5);
    }
    @keyframes ritual-breath {
        0%, 100% { transform: scale(1);    opacity: 0.85; }
        50%      { transform: scale(1.07); opacity: 1; }
    }
    @keyframes ritual-drift-a {
        0%, 100% { transform: translate(0, 0) scale(1); }
        50%      { transform: translate(22px, -16px) scale(1.05); }
    }
    @keyframes ritual-drift-b {
        0%, 100% { transform: translate(0, 0) scale(1); }
        50%      { transform: translate(-18px, 14px) scale(1.04); }
    }

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

    /* Hero responsive */
    @media (max-width: 768px) {
        .hero h1 {
            font-size: clamp(2.75rem, 11vw, 3.1rem);
            line-height: 1.06;
        }
        .hero-subtitle {
            font-size: clamp(1.3rem, 5vw, 1.8rem);
            margin-bottom: 28px;
        }
    }

    /* Мягкий «верхний слой» секций — намёк на разделитель */
    .programs { 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); }
    .faq      { box-shadow: inset 0 60px 60px -60px rgba(57,90,106,0.04); }
    .contacts { box-shadow: inset 0 60px 60px -60px rgba(57,90,106,0.05); }

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

    /* ВЕКТОР 2 — луна removed 2026-05-20 */

    .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.50) 50%,
            transparent 100%);
        pointer-events: none;
        z-index: 3;
    }

    /* Drift анимации removed 2026-05-20 (blob'ы удалены) */

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

    @media (min-width: 769px) {
        .hero-bg { background-attachment: fixed !important; }
    }

    .problem-card,
    .review-card {
        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;
    }
    .problem-card:hover {
        transform: translateY(-4px);
        /* box-shadow removed 2026-05-20 — рамка/тень убраны */
    }
    .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);
    }

    @media (prefers-reduced-motion: reduce) {
        body::before, body::after { animation: none !important; }
        .problem-card:hover, .review-card:hover {
            transform: translateY(-4px) !important;
        }
    }
        .st-section {
      padding: 120px 0;
      background: var(--bb-bg);
    }
    .st-ey {
      text-align: center;
      font-size: 11px;
      letter-spacing: 0.14em;
      text-transform: uppercase;
      color: var(--bb-sky);
      margin: 0 0 10px;
      font-family: 'Manrope', sans-serif;
    }
    .st-h {
      font-family: 'Playfair Display', serif;
      font-size: clamp(28px, 3.5vw, 40px);
      font-weight: 400;
      text-align: center;
      color: var(--bb-ink);
      margin: 0 0 36px;
    }
    .st-h i { color: var(--bb-sky); font-style: italic; }
    .st-tabs-wrap {
      border-bottom: 2px solid #e0eaf0;
      margin-bottom: 36px;
      overflow-x: auto;
    }
    .st-tabs {
      display: flex;
      gap: 0;
      white-space: nowrap;
      max-width: 960px;
      margin: 0 auto;
      padding: 0 16px;
    }
    .st-tab {
      padding: 14px 22px;
      background: none;
      border: none;
      border-bottom: 3px solid transparent;
      margin-bottom: -2px;
      font-size: 14px;
      color: #888;
      cursor: pointer;
      transition: all 0.2s;
      font-family: 'Manrope', sans-serif;
      white-space: nowrap;
      flex-shrink: 0;
    }
    .st-tab.active { color: var(--bb-ink); border-bottom-color: var(--bb-sky); font-weight: 500; }
    .st-tab:hover { color: var(--bb-ink); }
    .st-loading {
      text-align: center;
      padding: 60px;
      color: var(--bb-sky);
      font-size: 14px;
      font-family: 'Manrope', sans-serif;
    }
    .st-error {
      text-align: center;
      padding: 40px;
      color: #e74c3c;
      font-size: 14px;
    }
    .st-error a { color: var(--bb-sky); }
    .st-grid {
      display: flex;
      gap: 16px;
      max-width: 100%;
      margin: 0 auto;
      padding: 0 16px 14px;
      overflow-x: auto;
      overflow-y: hidden;
      scroll-snap-type: x proximity;
      -webkit-overflow-scrolling: touch;
      scrollbar-width: thin;
      scrollbar-color: #c8d8e2 transparent;
    }
    .st-grid::-webkit-scrollbar { height: 8px; }
    .st-grid::-webkit-scrollbar-thumb { background: #c8d8e2; border-radius: 4px; }
    .st-grid::-webkit-scrollbar-track { background: transparent; }
    .st-grid > .st-card {
      flex: 0 0 240px;
      scroll-snap-align: start;
    }
    .st-card {
      background: #ffffff;
      border-radius: var(--r-m);
      overflow: hidden;
      display: flex;
      flex-direction: column;
      transition: box-shadow 0.25s, transform 0.25s;
      border: 1px solid #eef2f5;
    }
    .st-card:hover {
      box-shadow: 0 10px 36px rgba(121,181,209,0.18);
      transform: translateY(-4px);
    }
    .st-card-wrap { position: relative; }
    .st-card-img {
      width: 100%;
      height: 200px;
      object-fit: cover;
      display: block;
      background: linear-gradient(135deg, #c8e0ec, #90bace);
    }
    .st-card-badge {
      position: absolute;
      top: 12px;
      left: 12px;
      background: var(--bb-sky);
      color: #fff;
      font-size: 12px;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      padding: 4px 10px;
      border-radius: 999px;
      font-family: 'Manrope', sans-serif;
    }
    .st-card-body {
      padding: 18px 18px 20px;
      flex: 1;
      display: flex;
      flex-direction: column;
      gap: 6px;
    }
    .st-card-name {
      font-family: 'Playfair Display', serif;
      font-size: 17px;
      color: var(--bb-ink);
      font-weight: 400;
      line-height: 1.3;
    }
    .st-card-desc {
      font-size: 13px;
      color: #888;
      line-height: 1.5;
      flex: 1;
    }
    .st-card-dur { font-size: 12px; color: #aaa; }
    .st-card-price-row {
      display: flex;
      align-items: baseline;
      gap: 8px;
      margin-top: 8px;
    }
    .st-card-price { font-size: 17px; font-weight: 600; color: var(--bb-ink); }
    .st-card-price-old {
      font-size: 13px;
      color: #bbb;
      text-decoration: line-through;
    }
    .st-card-btns {
      display: flex;
      flex-direction: column;
      gap: 8px;
      margin-top: 12px;
    }
    .st-btn-primary {
      padding: 11px;
      background: var(--bb-sky);
      color: #fff;
      border: none;
      border-radius: 999px;
      font-size: 13px;
      cursor: pointer;
      font-family: 'Manrope', sans-serif;
      transition: background 0.2s;
    }
    .st-btn-primary:hover { background: var(--bb-teal-deep); }
    .st-btn-outline {
      padding: 10px;
      background: none;
      color: var(--bb-ink);
      border: 1.5px solid #d0dce4;
      border-radius: 999px;
      font-size: 12px;
      letter-spacing: 0.06em;
      text-transform: uppercase;
      cursor: pointer;
      font-family: 'Manrope', sans-serif;
      transition: border-color 0.2s, color 0.2s;
    }
    .st-btn-outline:hover { border-color: var(--bb-sky); color: var(--bb-sky); }
    @media (max-width: 600px) {
      .st-section { padding: 64px 0; }
      .st-grid { gap: 12px; padding: 0 12px 12px; }
      .st-grid > .st-card { flex: 0 0 200px; }
      .st-card-img { height: 130px; }
      .st-card-body { padding: 14px 12px 16px; gap: 4px; }
      .st-card-name { font-size: 15px; }
      .st-card-desc { font-size: 12px; line-height: 1.4; }
      .st-card-price { font-size: 16px; }
      .st-btn-primary { font-size: 12px; padding: 9px; }
      .st-btn-outline { font-size: 11px; padding: 8px; }
      .st-card-btns { gap: 6px; margin-top: 10px; }
    }
    @media (max-width: 340px) {
      .st-grid > .st-card { flex: 0 0 180px; }
    }
        /* placeholder for services without images */
    .st-card-img--ph {
      display: flex;
      align-items: center;
      justify-content: center;
      color: #ffffff;
    }
    .st-card-img--ph svg {
      width: 64px;
      height: 64px;
      opacity: 0.95;
      filter: drop-shadow(0 1px 2px rgba(0,0,0,0.08));
    }
    /* name-card: when consecutive cards would repeat the same photo (2026-05-25) */
    .st-card-img--name { display: flex; align-items: center; justify-content: center; }
    .st-card-img--name svg { width: 100%; height: 100%; display: block; }
    .st-name-txt {
      box-sizing: border-box; width: 320px; height: 200px;
      display: flex; align-items: center; justify-content: center; text-align: center; padding: 16px;
      font-family: 'Playfair Display', serif; font-weight: 600;
      font-size: 26px; line-height: 1.15; color: #ffffff; text-shadow: 0 1px 3px rgba(0,0,0,0.18);
    }
        /* Modal popup for "Подробнее" */
    .st-modal {
      position: fixed;
      inset: 0;
      z-index: 9999;
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 20px;
      opacity: 0;
      transition: opacity 0.2s ease;
      pointer-events: none;
    }
    .st-modal.is-open {
      opacity: 1;
      pointer-events: auto;
    }
    .st-modal[hidden] { display: none; }
    .st-modal-backdrop {
      position: absolute;
      inset: 0;
      background: rgba(28, 46, 53, 0.55);
      backdrop-filter: blur(4px);
      -webkit-backdrop-filter: blur(4px);
    }
    .st-modal-dialog {
      position: relative;
      background: #fff;
      border-radius: var(--r-l);
      width: 100%;
      max-width: 560px;
      max-height: 92vh;
      overflow-y: auto;
      box-shadow: 0 24px 80px rgba(28, 46, 53, 0.28);
      transform: translateY(16px) scale(0.98);
      transition: transform 0.25s ease;
    }
    .st-modal.is-open .st-modal-dialog {
      transform: translateY(0) scale(1);
    }
    .st-modal-close {
      position: absolute;
      top: 14px;
      right: 14px;
      width: 36px;
      height: 36px;
      border: none;
      background: rgba(255, 255, 255, 0.92);
      border-radius: 50%;
      font-size: 22px;
      line-height: 1;
      color: var(--bb-ink);
      cursor: pointer;
      z-index: 2;
      box-shadow: 0 2px 8px rgba(0,0,0,0.12);
      transition: background 0.2s, transform 0.2s;
      font-family: 'Manrope', sans-serif;
    }
    .st-modal-close:hover {
      background: #fff;
      transform: scale(1.05);
    }
    .st-modal-image-wrap {
      width: 100%;
      height: 280px;
      overflow: hidden;
      background: linear-gradient(135deg, #c8e0ec, #90bace);
    }
    .st-modal-image {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
    }
    .st-modal-body {
      padding: 24px 28px 28px;
    }
    .st-modal-cat {
      font-family: 'Manrope', sans-serif;
      font-size: 11px;
      letter-spacing: 0.14em;
      text-transform: uppercase;
      color: var(--bb-sky);
      margin: 0 0 8px;
    }
    .st-modal-title {
      font-family: 'Playfair Display', serif;
      font-size: clamp(22px, 3vw, 28px);
      font-weight: 400;
      color: var(--bb-ink);
      margin: 0 0 12px;
      line-height: 1.2;
    }
    .st-modal-meta {
      font-family: 'Manrope', sans-serif;
      font-size: 14px;
      color: #6b7c84;
      margin-bottom: 18px;
    }
    .st-modal-text {
      font-family: 'Manrope', sans-serif;
      font-size: 15px;
      line-height: 1.6;
      color: #2a3f48;
      margin-bottom: 22px;
      white-space: pre-line;
    }
    .st-modal-cta {
      display: flex;
      gap: 12px;
    }
    .st-modal-book {
      flex: 1;
      padding: 14px;
      font-size: 14px;
    }
    @media (max-width: 480px) {
      .st-modal { padding: 0; align-items: flex-end; }
      .st-modal-dialog {
        max-height: 90vh;
        border-radius: 24px 24px 0 0;
      }
      .st-modal-image-wrap { height: 220px; }
      .st-modal-body { padding: 22px 20px 24px; }
    }
        .st-modal-image-wrap--ph {
      display: flex;
      align-items: center;
      justify-content: center;
      color: #ffffff;
    }
    .st-modal-image-wrap--ph svg {
      width: 120px;
      height: 120px;
      opacity: 0.95;
      filter: drop-shadow(0 1px 3px rgba(0,0,0,0.10));
    }

        /* ===== Unified footer (ported from main.tpl.html, 2026-05-21) ===== */
        .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: #E0EEF5;
        }
        .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: 11px;
            color: #AAAAAA;
            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; }
        }
    
        /* ===== 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,
        .btn.btn-blue,
        .bw-submit,
        .rh-cta-link,
        .st-btn-primary,
        .st-btn-primary.st-modal-book {
            display: inline-flex !important;
            align-items: center !important;
            justify-content: center !important;
            background: var(--bb-sky) !important;
            color: #FFFFFF !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,
        .btn.btn-blue:hover,
        .bw-submit:hover,
        .rh-cta-link:hover,
        .st-btn-primary:hover,
        .st-btn-primary.st-modal-book:hover {
            background: #A1CBDF !important;
            color: #FFFFFF !important;
            border: none !important;
            transform: none !important;
            box-shadow: none !important;
        }
        .btn.btn-outline,
        .st-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,
        .st-btn-outline:hover {
            background: var(--bb-sky) !important;
            color: #FFFFFF !important;
            border: 1px solid var(--bb-sky) !important;
            transform: none !important;
            box-shadow: none !important;
        }
    
        /* ==========================================================
           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;
        }
        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;
        }
        .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: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;
            }
        }
        /* ========================================================== */

    
        /* ==========================================================
           HERO → SECTION TRANSITION (2026-05-29)
           Матчим главную статику: никакого градиента — hero обрывается,
           следующий блок начинается с чистого края. Сам div .hero-fade
           оставляем (есть в собранных страницах), просто скрываем.
           ========================================================== */
        .hero-fade { display: none !important; }
        .wave-divider { display: none !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: 9px; letter-spacing: 0.1em;
        text-transform: uppercase;
        color: rgba(255,255,255,0.45); margin-top: 2px;
    }
    /* Строка слота — без рамок и фона */
    .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; }
    }

    
        /* FAQ → Blog link */
        .faq-blog-link {
            margin-top: 28px;
            text-align: center;
            font-size: 15px;
            color: var(--text-sec);
            letter-spacing: 0.01em;
        }
        .faq-blog-link a {
            color: var(--blue-dark);
            text-decoration: none;
            border-bottom: 1px solid var(--blue-main);
            padding-bottom: 1px;
            transition: color var(--transition);
        }
        .faq-blog-link a:hover { color: var(--blue-main); }
/* 2026-07-21: рельс отзывов со scroll-snap: x mandatory перехватывал вертикальное листание. */
.rh-track, .loyalty-block .loyalty-track, .procedures-grid {
    scroll-snap-type: x proximity !important;
    overscroll-behavior-x: contain;
}
/* Кнопки и поля не наследуют шрифт по умолчанию — браузер подставлял 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; }
/* ── Экран контактов (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: #7b8794; }
.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-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%, #dbe7ee 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; }
}


/* cc-buttons-unified 2026-08-02: тот же вид кнопок, что на странице города */
body .btn-primary,
body .btn.btn-primary,
body .bw-submit,
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 .btn-primary:hover,body .bw-submit:hover,body .pf-submit:hover,body .loyalty-cta:hover{
  background: var(--bb-teal-deep) !important;
}
@media (max-width:640px){
  body .btn-primary,body .btn.btn-primary,body .bw-submit,body .pf-submit,body .loyalty-cta{ min-height:50px !important; }
}

/* ── Соцсети: заметный вход вместо блёклых кружков (2026-08-09) ─────────────
   Было: в «Ждём вас в гости» кружки 44px с иконкой 20px, цвет #395A6A на
   прозрачном фоне и рамка #d5e2ea. Рядом стоит цветной бейдж 2ГИС — кружки
   читались как его декор, подписей не было вовсе. Стало: именованные кнопки
   в цветах сети. Цвета ВК и Telegram фирменные; у Max берём тёмно-бирюзовый
   сети — свой брендовый оттенок не выдумываем. */
.bbc-soc-cta { margin-top: 26px; }
.bbc-soc-eyebrow { font-family: 'Manrope', sans-serif; font-size: 12px; letter-spacing: .16em; text-transform: uppercase; color: var(--bb-sky); font-weight: 700; margin: 0 0 6px; }
.bbc-soc-sub { margin: 0 0 14px; max-width: 430px; font-size: 15px; line-height: 1.5; color: var(--bb-muted); }
.bbc-soc-row { display: flex; flex-wrap: wrap; gap: 10px; }
.bbc-soc { display: inline-flex; align-items: center; gap: 10px; min-height: 48px; padding: 0 18px; border-radius: 999px; color: #fff; text-decoration: none;
    font-family: 'Manrope', sans-serif; font-weight: 700; font-size: 15px; line-height: 1;
    transition: transform .18s ease, box-shadow .18s ease; }
.bbc-soc svg { width: 22px; height: 22px; flex: none; }
.bbc-soc-name { white-space: nowrap; }
.bbc-soc-go { font-size: 16px; opacity: .8; }
.bbc-soc:hover, .bbc-soc:focus-visible { color: #fff; transform: translateY(-2px); }
.bbc-soc:focus-visible { outline: 3px solid rgba(31, 42, 51, .35); outline-offset: 2px; }
.bbc-soc--vk  { background: #0077FF; box-shadow: 0 10px 22px -10px rgba(0, 119, 255, .8); }
.bbc-soc--vk:hover  { box-shadow: 0 14px 26px -10px rgba(0, 119, 255, .9); }
.bbc-soc--tg  { background: #229ED9; box-shadow: 0 10px 22px -10px rgba(34, 158, 217, .8); }
.bbc-soc--tg:hover  { box-shadow: 0 14px 26px -10px rgba(34, 158, 217, .9); }
/* Max: фирменный градиент из брендбука go.max.ru/brandbook —
   «Синий гигант» #471AFF → «Пурпурная туманность» #9500FF.
   Раньше стоял бирюзовый сети, потому что цвет был неизвестен; заодно
   фиолетовый разводит Max с синим ВКонтакте. Белый текст: 7.34 и 5.64 к 1. */
.bbc-soc--max { background: linear-gradient(135deg, #471AFF 0%, #9500FF 100%); box-shadow: 0 10px 22px -10px rgba(110, 26, 255, .85); }
.bbc-soc--max:hover { box-shadow: 0 14px 26px -10px rgba(110, 26, 255, .95); }
/* Бейдж 2ГИС остался один в своей строке — отбиваем его от кнопок. */
.bbc-soc-cta + .bbc-actions { margin-top: 18px; }
@media (max-width: 520px) {
    .bbc-soc { flex: 1 1 100%; justify-content: center; }
    .bbc-soc-sub { font-size: 14px; }
}

/* Шапка: те же иконки, но при наведении заливаются цветом своей сети —
   раньше все три давали одинаковый голубой и не читались как разные ссылки. */
.header-socials a[data-soc="vk"]:hover,  header.scrolled .header-socials a[data-soc="vk"]:hover  { background: #0077FF; color: #fff; }
.header-socials a[data-soc="tg"]:hover,  header.scrolled .header-socials a[data-soc="tg"]:hover  { background: #229ED9; color: #fff; }
.header-socials a[data-soc="max"]:hover, header.scrolled .header-socials a[data-soc="max"]:hover { background: linear-gradient(135deg, #471AFF 0%, #9500FF 100%); color: #fff; }
/* ─── cc-ownerfix-20260814 ─────────────────────────────────────────────
   Подвал с телефона был вытянут в башню: тап-таргет 44px + margin 10px
   давали шаг 54px на пункт, при 8 пунктах меню и 14 городах подвал занимал
   1424px = 1.7 экрана. Ставим двухколоночную сетку (бренд и города — во всю
   ширину), шаг пункта 34px, отбивки секций 24px. Тап-таргет остаётся ≥34px.
*/
@media (max-width: 640px) {
    .bbf { padding: 40px 0 20px; }
    .bbf-cols, .bbf-cols-home { grid-template-columns: 1fr 1fr; gap: 24px 18px; align-items: start; }
    .bbf-col { order: 2; }
    .bbf-col-brand { order: 1; grid-column: 1 / -1; }
    /* города — в конец и во всю ширину, иначе они разрывают ряд
       «меню | документы» и подвал снова вытягивается в столбик */
    .bbf-col-cities { order: 3; grid-column: 1 / -1; }
    .bbf-cities-grid { grid-template-columns: 1fr 1fr; column-gap: 14px; }
    .bbf-h { margin: 0 0 8px; }
    .bbf-nav li { margin-bottom: 0; }
    /* пункт может переноситься на 2 строки — держим ритм паддингом,
       иначе перенос слипается со следующей ссылкой */
    .bbf-nav a, .bbf-cities-grid a { display: flex; align-items: center;
        min-height: 34px; padding: 5px 0; line-height: 1.3; }
    .bbf li > a { min-height: 34px !important; }
    .bbf-legal { margin-top: 22px; padding-top: 16px; }
}

/* Плашка подарка на первом экране выглядит кнопкой во всю ширину, но текст в
   ней был прижат влево (flex + justify-content:normal) — центрируем. */
@media (max-width: 768px) {
    .hero-gift-line { justify-content: center; text-align: center; }
}

/* Окно онлайн-записи: шаги — position:absolute внутри .bw-body, поэтому
   height:auto схлопывает виджет в 0 (проверено 24.07). Высоту задаём явно и
   тянем от вьюпорта — с телефона было жёстких 480px и всё скроллилось внутри. */
@media (max-width: 768px) {
    .booking-wizard .bw-body { height: clamp(520px, 78vh, 700px) !important; }
    body.city-kazan_pushkina .booking-wizard .bw-body { height: clamp(520px, 78vh, 700px) !important; }
}

/* Соцкнопки в ряду были разной ширины (173/161/124px — по длине названия).
   Тянем поровну; на узком экране остаётся один столбец, как было. */
.bbc-soc-row { max-width: 560px; }
.bbc-soc { flex: 1 1 0; min-width: 132px; justify-content: center; }
@media (max-width: 520px) { .bbc-soc { flex: 1 1 100%; } }

/* Бейдж-виджет 2ГИС из блока «Мы в соцсетях» убран по просьбе владельца.
   Скрытие продублировано в CSS на случай страниц, собранных до правки шаблона. */
.bbc-2gis { display: none !important; }
