        /* Services carousel (shared) */
        /* clip вместо hidden: контейнер не прокручивается по горизонтали,
           иначе клик по кнопке nav внутри контейнера сам сдвигает его («съезжает») */
        .services-carousel-wrap { position: relative; overflow: hidden; overflow-x: clip; padding: 0 0 10px; }
        .service-slide { flex: 0 0 33.3333%; max-width: 33.3333%; padding: 0 15px; scroll-snap-align: start; }
        .service-slide .service-card { height: 100%; }
        @media (max-width: 991.98px) { .service-slide { flex: 0 0 50%; max-width: 50%; } }
        @media (max-width: 575.98px) { .service-slide { flex: 0 0 100%; max-width: 100%; } }

        /* Чипсы фильтра направлений (новогодний лендинг) */
        .ny-direction-chips .ny-dir-chip { display: inline-flex; align-items: center; padding: 8px 18px; border-radius: 50px;
            border: 1px solid #d9cfc2; background: #fff; color: #5a5750; font-size: 0.92rem; font-weight: 500;
            text-decoration: none; transition: all .2s ease; }
        .ny-direction-chips .ny-dir-chip:hover { border-color: #5e6d55; color: #41403e; background: #faf7f2; }
        .ny-direction-chips .ny-dir-chip.active { background: #5e6d55; border-color: #5e6d55; color: #fff; }

        /* Герой страницы «Всё новогоднее портфолио» */
        .ny-portfolio-hero { background: linear-gradient(135deg, #2f4a2c 0%, #5e6d55 100%); color: #fff; padding: 150px 0 55px; }
        .ny-portfolio-hero-title { font-family: 'Playfair Display', serif; font-size: 2.5rem; font-weight: 600; margin-bottom: 1rem; }
        .ny-portfolio-hero-sub { font-size: 1.1rem; max-width: 780px; margin: 0 auto; opacity: .95; }
        @media (max-width: 767px) { .ny-portfolio-hero { padding: 110px 0 40px; } .ny-portfolio-hero-title { font-size: 2rem; } }

        /* Инфо-блок выбранного направления (текст и цены из модалок услуг) */
        .ny-dir-info { background: #fff; border: 1px solid #efe8dd; border-radius: 16px; padding: 28px 30px;
            box-shadow: 0 4px 18px rgba(0,0,0,.05); }
        .ny-dir-info-title { font-family: 'Playfair Display', serif; font-size: 1.5rem; color: #41403e; margin-bottom: 10px; }
        .ny-dir-info-desc { color: #5a5855; font-size: .98rem; line-height: 1.6; }
        .ny-dir-info-features { list-style: none; padding: 0; margin: 14px 0 0; columns: 2; column-gap: 24px; }
        .ny-dir-info-features li { padding: 4px 0; color: #5a5855; font-size: .92rem; break-inside: avoid; }
        .ny-dir-info-features li i { color: #7ab5d8; }
        .ny-dir-info-prices { background: rgba(100,170,216,.06); border: 1px solid rgba(100,170,216,.25); border-radius: 12px; padding: 20px; }
        .ny-dir-info-prices h4 { color: #1e4d2b; font-size: 1rem; margin-bottom: 14px; }
        .ny-dir-price-card { background: #fff; border: 1px solid #e6e0d5; border-radius: 10px; padding: 12px 10px; text-align: center; height: 100%; }
        .ny-dir-price-card .ny-dir-price { display: block; font-weight: 700; font-size: 1.05rem; color: #41403e; }
        .ny-dir-price-card small { color: rgba(80,70,52,.7); font-size: .78rem; }
        .ny-dir-info-note { margin: 12px 0 0; font-size: .8rem; color: #8a857c; }

        .city-sep { margin: 0 4px; font-weight: 300; color: #d4b896; }
        .city-name { font-weight: 600; }
        .navbar .container { flex-wrap: nowrap; }
        .navbar-nav { flex-shrink: 1; min-width: 0; }
        .navbar-nav .nav-link { white-space: nowrap; }
        .navbar-brand { flex-shrink: 0; overflow: hidden; white-space: nowrap; }
        .navbar-brand .city-name,
        .navbar-brand .city-sep { display: inline; }
        @media (max-width: 1399.98px) {
            .navbar-brand .city-name,
            .navbar-brand .city-sep { display: none; }
            .navbar-nav .nav-link { font-size: 0.9rem; margin: 0 0.35rem; }
        }
        @media (max-width: 991.98px) {
            .navbar .container { flex-wrap: wrap; }
            .navbar-collapse { width: 100%; flex-basis: 100%; }
            .navbar-nav { width: 100%; flex-wrap: wrap; }
            .navbar-nav .nav-link { white-space: normal; }
        }

        body { touch-action: manipulation; -webkit-overflow-scrolling: touch; }
        .hero-content-overlay { pointer-events: none; }
        .hero-content { pointer-events: auto; }

        .nav-tip-wrap { position: relative; }
        a[data-nav-tip] { position: relative; }
        .nav-tip { display: none; position: absolute; top: calc(100% + 10px); left: 50%; transform: translateX(-50%);
            background: #fff; color: #4a403a; font-size: 0.82rem; line-height: 1.35; padding: 8px 12px;
            border: 1px solid #d4b896; border-radius: 8px; box-shadow: 0 6px 18px rgba(0,0,0,.10);
            white-space: nowrap; z-index: 1100; }
        .nav-tip::before { content: ''; position: absolute; top: -6px; left: 50%; transform: translateX(-50%);
            border-left: 6px solid transparent; border-right: 6px solid transparent; border-bottom: 6px solid #d4b896; }
        .nav-tip::after { content: ''; position: absolute; top: -4px; left: 50%; transform: translateX(-50%);
            border-left: 5px solid transparent; border-right: 5px solid transparent; border-bottom: 5px solid #fff; }
        .nav-tip.show { display: block; }
        @media (max-width: 991.98px) { .nav-tip { display: none !important; } }
        .hero-film-strip,
        .hero-film-strip .strip-track { will-change: auto; }
        .mosaic-card { touch-action: pan-y pinch-zoom; }

        @media (prefers-reduced-motion: reduce) {
            .hero-film-strip .strip-track { animation: none !important; }
            .mosaic-card:hover { transform: none !important; }
            *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; }
        }

        @supports (-webkit-touch-callout: none) {
            .hero-section { height: -webkit-fill-available; background-attachment: scroll; }
            .hero-content-overlay { -webkit-backdrop-filter: none; backdrop-filter: none; background: rgba(249, 246, 242, 0.92); }
            .hero-film-strip .strip-track { animation-duration: 200s !important; }
        }

        /* Reviews carousel */
        .reviews-carousel-wrap { position: relative; overflow: hidden; overflow-x: clip; }
        .reviews-track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; -ms-overflow-style: none; overscroll-behavior-x: contain; }
        .reviews-track::-webkit-scrollbar { display: none; }
        .review-slide {
            flex: 0 0 33.3333%;
            max-width: 33.3333%;
            padding: 0 15px;
            scroll-snap-align: start;
        }
        .review-slide .service-card { height: 100%; }
        .reviews-nav {
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 18px;
            margin-top: 35px;
        }
        .reviews-counter {
            font-family: 'Playfair Display', serif;
            font-size: 1.15rem;
            color: #41403E;
            min-width: 60px;
            text-align: center;
            letter-spacing: .04em;
        }
        /* Стрелки каруселей (услуги/отзывы) — переопределяем модальные стили .carousel-btn */
        .reviews-nav .carousel-btn,
        .reviews-nav .reviews-nav-btn {
            position: static;
            top: auto;
            transform: none;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            width: 44px;
            height: 44px;
            border-radius: 50%;
            border: 1px solid #d4b896;
            background: #fff;
            color: #41403E;
            font-size: 1rem;
            line-height: 1;
            cursor: pointer;
            padding: 0;
            box-shadow: 0 2px 10px rgba(0,0,0,.08);
            transition: background .2s, border-color .2s, color .2s, opacity .2s;
            z-index: 1;
        }
        .reviews-nav .carousel-btn:hover,
        .reviews-nav .reviews-nav-btn:hover {
            background: #f8f3ea;
            border-color: #c9a227;
        }
        .reviews-nav .carousel-btn:disabled,
        .reviews-nav .reviews-nav-btn:disabled {
            opacity: .35;
            cursor: default;
        }
        @media (max-width: 991.98px) {
            .review-slide { flex: 0 0 50%; max-width: 50%; }
        }
        @media (max-width: 575.98px) {
            .review-slide { flex: 0 0 100%; max-width: 100%; }
        }
        .review-slide--cta .service-card { background:#fff; border:1px dashed #D9A99A; }
    

        /* Прелоадер для изображений */
        .image-placeholder {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
            display: flex;
            align-items: center;
            justify-content: center;
            z-index: 1;
            transition: opacity 0.3s ease;
        }
        
        .spinner {
            width: 30px;
            height: 30px;
            border: 3px solid rgba(255, 255, 255, 0.3);
            border-radius: 50%;
            border-top-color: #fff;
            animation: spin 1s linear infinite;
        }
        
        @keyframes spin {
            to { transform: rotate(360deg); }
        }
        
        /* Lazy loading изображения */
        .lazy-image {
            transition: opacity 0.5s ease-in-out;
            object-fit: cover;
            width: 100%;
            height: 100%;
        }
        
        .lazy-image.loaded {
            opacity: 1 !important;
        }
        
        /* Скрываем placeholder после загрузки */
        .mosaic-card.image-loaded .image-placeholder {
            opacity: 0;
            pointer-events: none;
        }
        
        /* Оптимизация для мобильных */
        @media (max-width: 768px) {
            .hero-film-strip.strip-2,
            .hero-film-strip.strip-3 {
                display: none;
            }
            .hero-film-strip.strip-1 {
                left: 0;
                width: 100%;
                transform: none;
            }
            .hero-film-strip {
                transform: translateY(0) !important;
                animation-duration: 60s !important;
            }
        }
        
        /* Разные скорости для разных лент для создания динамичности */
        .hero-film-strip.strip-1 .strip-track {
            animation-duration: 100s !important; /* Самая быстрая лента */
        }
        
        .hero-film-strip.strip-2 .strip-track {
            animation-duration: 130s !important; /* Средняя скорость */
        }
        
        .hero-film-strip.strip-3 .strip-track {
            animation-duration: 160s !important; /* Самая медленная */
        }
        
        /* Улучшенная анимация появления */
        .mosaic-card {
            transition: transform 0.5s ease, box-shadow 0.5s ease, opacity 0.3s ease;
        }
        
        .mosaic-card:hover {
            transform: translateY(-5px);
            box-shadow: 0 10px 25px rgba(0,0,0,0.2);
        }
        
        /* Очень плавные переходы для изображений */
        .lazy-image {
            transition: opacity 0.8s ease-in-out, transform 0.3s ease;
        }
        
        /* Плавное замедление анимации */
        .hero-film-strip .strip-track {
            animation-timing-function: linear !important;
        }
        
        /* Дополнительная оптимизация производительности */
        .hero-film-strip {
            will-change: transform;
            transform: translateZ(0); /* Включаем аппаратное ускорение */
        }
    

/* Все кнопки сайта (безусловно, обе версии): иконка+текст — единый симметричный блок
   строго по центру, иконка вертикально выровнена по тексту */
.btn{display:inline-flex !important;align-items:center;justify-content:center;text-align:center;}
.btn i{position:relative;top:0;transform:none;}
/* Правая hero-кнопка свадебной версии: видимая на светлом фоне (белая на белом была нечитаема) */
body:not(.ny-xmas) #hero .btn-outline-light{background:rgba(255,255,255,.96);border:2px solid #5E6D55;color:#41403E;}
body:not(.ny-xmas) #hero .btn-outline-light i{color:#5E6D55;}
body:not(.ny-xmas) #hero .btn-outline-light:hover{background:#5E6D55;border-color:#5E6D55;color:#fff;}
body:not(.ny-xmas) #hero .btn-outline-light:hover i{color:#fff;}

/* Оформление сайта — безусловно (раньше ошибочно лежало внутри CONVERSION_TEST_MODE) */
.mobile-sticky-bar{position:fixed;bottom:0;left:0;right:0;z-index:1050;display:flex;background:#fff;border-top:1px solid #eee;box-shadow:0 -2px 10px rgba(0,0,0,.08);}
.mobile-sticky-bar .msb-btn{flex:1;padding:14px 8px;text-align:center;font-weight:600;font-size:15px;text-decoration:none;color:#fff;}
.msb-call{background:#D9A99A;}.msb-tg{background:#2AABEE;}
.navbar-phone{color:#41403E;font-weight:600;text-decoration:none;margin-right:1rem;white-space:nowrap;}
.navbar-phone i{color:#D9A99A;}
@media (max-width:575.98px){.mobile-sticky-bar{padding-bottom:env(safe-area-inset-bottom);}}
/* === DESIGN POLISH (безусловно) === */
/* 1. Портфолио: живой ховер — зум + подъём */
.portfolio-item{border-radius:14px;overflow:hidden;transition:transform .45s cubic-bezier(.2,.8,.2,1),box-shadow .45s;}
.portfolio-item img{transition:transform .6s cubic-bezier(.2,.8,.2,1);}
.portfolio-item:hover{transform:translateY(-6px);box-shadow:0 18px 40px rgba(65,64,62,.16);}
.portfolio-item:hover img{transform:scale(1.05);}

/* 2. Кнопки: мягкий подъём вместо статичности */
.btn{transition:transform .25s,box-shadow .25s !important;}
.btn:hover{transform:translateY(-2px);}
.btn-primary{box-shadow:0 4px 14px rgba(217,169,154,.35);}
.btn-primary:hover{box-shadow:0 8px 22px rgba(217,169,154,.5);}

/* 3. Карточки услуг: тонкая рамка + ховер-лифт (вместо тяжёлой тени) */
.service-card{border:1px solid rgba(65,64,62,.07);box-shadow:0 2px 12px rgba(65,64,62,.05) !important;transition:transform .35s,box-shadow .35s,border-color .35s;}
.service-card:hover{transform:translateY(-5px);box-shadow:0 16px 38px rgba(65,64,62,.13) !important;border-color:rgba(217,169,154,.4);}

/* 4. Секция контактов — тёмный контрастный блок для ритма страницы */
#contact{background:linear-gradient(180deg,#3d3a37 0%,#332f2c 55%,#2b2926 88%,#2b2926 100%) !important;}
/* NY-тема полностью управляется отдельным файлом /css/ny-xmas.css — старых тёмных переопределений здесь нет */
#contact .section-title{color:#F9F6F2 !important;}
#contact .section-subtitle{color:rgba(249,246,242,.65) !important;}
#contact h4{color:#D9A99A !important;}
#contact .contact-item p, #contact .contact-item a, #contact a{color:rgba(249,246,242,.85) !important;}
#contact .form-control{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.15);color:#F9F6F2;}
#contact .form-control::placeholder{color:rgba(249,246,242,.45);}
#contact .form-label{color:rgba(249,246,242,.75);}

/* 5. Hero-заголовок: editorial-типографика */
.hero-title{letter-spacing:-0.02em !important;line-height:1.08 !important;}

/* 6. Заголовки секций: воздух и акцент */
.section-title{letter-spacing:-0.01em;}
.section-title::after{content:"";display:block;width:56px;height:3px;background:#D9A99A;border-radius:2px;margin:18px auto 0;opacity:.85;}

/* 7. Плавный скролл-ритм: чуть больше воздуха между секциями */
.section-padding{padding:110px 0;}

/* 8. Навинг: активная ссылка с розовым подчёркиванием */
.navbar-nav .nav-link{position:relative;}
.navbar-nav .nav-link::after{content:"";position:absolute;left:50%;bottom:2px;width:0;height:2px;background:#D9A99A;transition:all .3s;border-radius:2px;transform:none;}
.navbar-nav .nav-link:hover::after{left:0;width:100%;}
/* 9. Плавный низ: тёмные контакты перетекают в тёмный футер без кремового шва.
   Сам цвет подвала — в styles.min.css, здесь только стык секций. */
.footer{margin-top:0 !important;border-top:none;box-shadow:none;}
#contact{padding-bottom:110px;}
