/* --- Глобальные стили и сброс --- */
        :root {
            --app-height: 100svh;
            --color-primary: #fdd835;
            --color-primary-hover: #fbc02d;
            --color-dark: #212529;
            --color-light: #f8f9fa;
            --color-white: #ffffff;
        }
        
        /* Исправлено: вынесено из :root */
        #fixed-background-slider {
            position: fixed;
            top: 0;
            left: 0;
            width: 100vw;
            height: var(--app-height);
            z-index: -1;
            overflow: hidden;
        }

        * { box-sizing: border-box; margin: 0; padding: 0; }
        html, body { 
            scroll-behavior: smooth;
            overflow-x: hidden;
        }
        body {
            font-family: 'Montserrat', sans-serif;
            font-size: 16px;
            line-height: 1.6;
            color: var(--color-dark);
            background-color: var(--color-white);
        }
        .container {
            width: 100%; max-width: 1280px; margin-left: auto; margin-right: auto;
            padding-left: 15px; padding-right: 15px;
        }
        .container-wide {
            width: 100%; max-width: 1400px; margin-left: auto; margin-right: auto;
            padding-left: 15px; padding-right: 15px;
        }
        section { padding: 60px 0; position: relative; }
        h1, h2, h3 { font-weight: 600; line-height: 1.3; }
        h1 { font-size: 40px; margin-bottom: 20px; }
        h2 { font-size: 32px; margin-bottom: 15px; text-align: center; }
        p { margin-bottom: 15px; }
        .section-subtitle { text-align: center; margin-bottom: 40px; font-size: 18px; color: #6c757d; }
        
        /* --- Стили для фонового слайдера --- */
        #fixed-background-slider { position: fixed; top: 0; left: 0; width: 100vw; height: 100svh; z-index: -1; overflow: hidden; }
        .background-slide { position: absolute; top: 0; left: 0; width: 100%; height: 100%; opacity: 0; transition: opacity 1.5s ease-in-out; object-fit: cover; }

        /* --- Шапка сайта (Header) --- */
        .header {
            position: fixed; top: 0; left: 0; width: 100%; z-index: 1000;
            padding: 10px 0;
            background-color: transparent;
            backdrop-filter: none;
            -webkit-backdrop-filter: none;
            transition: background-color 0.3s ease, backdrop-filter 0.3s ease;
        }
        .header.scrolled {
            background-color: rgba(0, 0, 0, 0.5);
            backdrop-filter: blur(5px);
            -webkit-backdrop-filter: blur(5px);
        }
        .header .container {
            display: flex;
            justify-content: space-between;
            align-items: center;
            height: 80px;
        }
        .header-logo {
            display: flex; align-items: center; padding: 5px 10px;
            border-radius: 8px; background-color: transparent; transition: background-color 0.3s ease;
        }
        .header.scrolled .header-logo {
            background-color: var(--color-primary);
        }
        .header-logo img { height: 100px; width: auto; transition: height 0.3s ease; }
        .header-right-panel {
            display: flex; align-items: center; gap: 25px;
            background-color: rgba(0, 0, 0, 0.3); padding: 10px 20px;
            border-radius: 12px; border: 1px solid rgba(255, 255, 255, 0.1);
            backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
            transition: background-color 0.3s ease;
        }
        .header.scrolled .header-right-panel { background-color: rgba(0, 0, 0, 0.5); }
        .header-contacts { text-align: right; text-shadow: none; }
        .header-phone { font-size: 18px; font-weight: 600; color: var(--color-white); text-decoration: none; }
        .header-email { font-size: 14px; color: var(--color-white); opacity: 0.9; }

        /* --- Кнопки --- */
        .btn { display: inline-block; padding: 10px 20px; font-size: 14px; font-weight: 600; text-align: center; text-decoration: none; cursor: pointer; border-radius: 8px; border: none; transition: background-color 0.3s ease, transform 0.2s ease; }
        .btn-primary { background-color: var(--color-primary); color: var(--color-dark) !important; border: 1px solid rgba(0,0,0,0.1); }
        .btn-primary:hover { background-color: var(--color-primary-hover); transform: translateY(-2px); }

        /* --- Секция "Hero" (Первый экран) --- */
        .hero { padding-top: 150px; padding-bottom: 100px; min-height: 100svh; display: flex; align-items: center; color: var(--color-white); }
        .hero-content-wrapper { width:min(100%, 1040px); background-color: rgba(0, 0, 0, 0.5); padding: 44px; border-radius: 12px; backdrop-filter: blur(5px); -webkit-backdrop-filter: blur(5px); }
        .hero h1 { font-size: 48px; text-shadow: 0 2px 4px rgba(0,0,0,0.5); }
        .hero p { font-size: 20px; margin-bottom: 30px; text-shadow: 0 1px 3px rgba(0,0,0,0.4); }
        .hero-features { display: flex; gap: 30px; margin-bottom: 30px; border-top: 1px solid rgba(255,255,255,0.2); padding-top: 20px; }
        .hero-feature { font-size: 15px; }
        .hero-cta-group, .hero-messengers { display:flex; gap:12px; flex-wrap:wrap; margin-bottom: 12px; }

        .trust-metrics { display:grid; grid-template-columns: repeat(4,1fr); gap:16px; margin-top:24px; }
        .trust-metric { background: rgba(255,255,255,0.1); border:1px solid rgba(255,255,255,0.2); border-radius:10px; padding:16px; color:#fff; text-align:center; }
        .sticky-mobile-cta{display:none;}

        /* --- Остальные секции --- */
        .service-section .content-wrapper { background-color: rgba(0, 0, 0, 0.3); border: 1px solid rgba(255, 255, 255, 0.15); padding: 40px; border-radius: 16px; box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.15); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); }
        .service-section h2, .service-section .section-subtitle { color: var(--color-white); text-shadow: 0 1px 3px rgba(0,0,0,0.4); }
        .service-cards-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
        .service-card { background-color: rgba(255, 255, 255, 0.1); border: 1px solid rgba(255, 255, 255, 0.2); padding: 25px; border-radius: 12px; text-align: center; transition: background-color 0.3s ease; }
        .service-card:hover { background-color: rgba(255, 255, 255, 0.2); }
        .service-card h3 { font-size: 18px; margin-bottom: 15px; color: var(--color-white); }
        .service-card p { font-size: 15px; color: rgba(255, 255, 255, 0.85); margin-bottom: 0; }
        .models-section .content-wrapper { background-color: rgba(0, 0, 0, 0.3); border: 1px solid rgba(255, 255, 255, 0.15); padding: 40px; border-radius: 16px; box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.15); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); }
        .models-section h2, .models-section .section-subtitle { color: var(--color-white); text-shadow: 0 1px 3px rgba(0,0,0,0.4); }
        .models-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; }
        .model-card { background-color: rgba(255, 255, 255, 0.1); border: 1px solid rgba(255, 255, 255, 0.2); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); border-radius: 12px; box-shadow: 0 4px 15px rgba(0,0,0,0.05); display: flex; overflow: hidden; transition: background-color 0.3s ease, transform 0.3s ease; }
        .model-card:hover { background-color: rgba(255, 255, 255, 0.2); transform: translateY(-5px); }
        .model-card-text { padding: 25px; width: 55%; display: flex; flex-direction: column; }
        .model-card-text h3 { font-size: 20px; margin-bottom: 15px; color: var(--color-white); }
        .model-card-text ul { list-style-type: none; margin-bottom: 20px; font-size: 15px; color: rgba(255, 255, 255, 0.85); padding-left: 0; }
        .model-card-text li { margin-bottom: 5px; }
        .model-card-text .model-type { margin-top: auto; font-size: 14px; font-style: italic; color: rgba(255, 255, 255, 0.85); margin-bottom: 15px; }
        .model-card-text .btn { align-self: flex-start; }
        .model-card-image { width: 45%; background-size: cover; background-position: center; min-height: 250px; }
        .reviews-section .content-wrapper { background-color: rgba(0, 0, 0, 0.3); border: 1px solid rgba(255, 255, 255, 0.15); padding: 40px; border-radius: 16px; box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.15); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); }
        .reviews-section h2, .reviews-section .section-subtitle { color: var(--color-white); text-shadow: 0 1px 3px rgba(0,0,0,0.4); }
        .reviews-section .section-subtitle a { color: var(--color-primary); text-decoration: none; border-bottom: 1px dashed var(--color-primary); transition: color 0.3s ease, border-bottom-color 0.3s ease; }
        .reviews-section .section-subtitle a:hover { color: var(--color-primary-hover); border-bottom-color: var(--color-primary-hover); }
        .reviews-swiper { padding: 0 40px; position: relative; }
        .reviews-swiper .swiper-slide { background: transparent !important; padding: 0; box-shadow: none; border-radius: 8px; overflow: hidden; cursor: pointer; user-select: none; }
        .reviews-swiper .swiper-slide img { width: 100%; height: auto; display: block; }
        .reviews-swiper .swiper-button-next, .reviews-swiper .swiper-button-prev { color: var(--color-primary); top: 50%; transform: translateY(-50%); }
        .reviews-swiper .swiper-button-prev { left: 0; }
        .reviews-swiper .swiper-button-next { right: 0; }
        .reviews-swiper .swiper-pagination { position: relative; bottom: auto; margin-top: 25px; }
        .reviews-swiper .swiper-pagination-bullet-active { background-color: var(--color-primary); }
        .partners-section .content-wrapper { background-color: rgba(255, 255, 255, 0.1); border: 1px solid rgba(255, 255, 255, 0.2); padding: 40px; border-radius: 16px; box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.15); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); }
        .partners-section h2, .partners-section .section-subtitle { color: var(--color-white); text-shadow: 0 1px 3px rgba(0,0,0,0.4); }
        .partners-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 20px; align-items: center; }
        .partner-logo { padding: 15px; background-color: rgba(255, 255, 255, 0.8); border-radius: 8px; display: flex; align-items: center; justify-content: center; min-height: 80px; }
        .partner-logo img { max-width: 100%; max-height: 50px; width: auto; height: auto; }
        .landing-links-section .content-wrapper { background-color: rgba(0, 0, 0, 0.35); border: 1px solid rgba(255, 255, 255, 0.2); padding: 40px; border-radius: 16px; box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.15); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); }
        .landing-links-section h2, .landing-links-section .section-subtitle { color: var(--color-white); text-shadow: 0 1px 3px rgba(0,0,0,0.4); }
        .landing-links-grid { display:grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
        .landing-link-card { display:block; text-decoration:none; padding:16px; border-radius:10px; color:var(--color-white); background:rgba(255,255,255,0.12); border:1px solid rgba(255,255,255,0.2); transition: background-color .2s ease, transform .2s ease; }
        .landing-link-card:hover { background:rgba(255,255,255,0.22); transform: translateY(-2px); }

        .faq-list { display:grid; grid-template-columns: 1fr 1fr; gap:14px; margin-top: 18px; }
        .faq-item { background: rgba(255,255,255,0.1); border:1px solid rgba(255,255,255,0.2); border-radius:12px; padding:16px; color:var(--color-white); }
        .faq-item h3 { font-size: 18px; margin-bottom: 8px; }
        .faq-item p { margin-bottom: 0; color: rgba(255,255,255,0.88); }
        .contacts-section { padding-bottom: 80px; }
        .contacts-wrapper { display: grid; grid-template-columns: 1fr 1.5fr; gap: 30px; align-items: stretch; }
        .contacts-info { background-color: rgba(0, 0, 0, 0.4); border: 1px solid rgba(255, 255, 255, 0.15); padding: 30px; border-radius: 16px; backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); color: var(--color-white); }
        .contacts-info h2 { text-align: left; margin-bottom: 25px; }
        .contact-item { margin-bottom: 15px; }
        .contact-item strong { display: block; margin-bottom: 5px; color: rgba(255, 255, 255, 0.7); font-size: 14px; }
        .contact-item p { margin-bottom: 0; font-size: 16px; }
        .contact-item a { color: var(--color-primary); text-decoration: none; transition: color 0.3s; }
        .contact-item a:hover { color: var(--color-primary-hover); }
        .contacts-map { border-radius: 16px; overflow: hidden; min-height: 450px; background-color: #e9e5e2; }
        .contacts-map img { width: 100%; height: 100%; object-fit: cover; display: block; }
        .header-burger { display: none; width: 30px; height: 20px; position: relative; cursor: pointer; background: transparent; border: none; z-index: 1010; }
        .header-burger span { display: block; position: absolute; left: 0; width: 100%; height: 2px; background-color: var(--color-white); transition: all 0.3s ease; }
        .header-burger span:nth-child(1) { top: 0; }
        .header-burger span:nth-child(2) { top: 9px; }
        .header-burger span:nth-child(3) { bottom: 0; }
        .mobile-menu {
            position: fixed; top: 0; left: 0; width: 100%; z-index: 999;
            background-color: rgba(0, 0, 0, 0.85); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
            overflow: hidden; max-height: 0; transition: max-height 0.4s ease-out; padding-top: 80px;
        }
        .mobile-menu.is-open { max-height: 300px; }
        .mobile-menu-content { padding: 20px 30px 30px 30px; display: flex; flex-direction: column; align-items: center; gap: 20px; }
        .mobile-menu .header-contacts { text-align: center; }

        /* --- Адаптация для ПЛАНШЕТОВ и МОБИЛЬНЫХ --- */
        @media (max-width: 992px) {
            .header-right-panel { display: none; }
            .header-burger { display: block; }
            .service-cards-grid { grid-template-columns: repeat(2, 1fr); }
            .models-grid { grid-template-columns: 1fr; }
            .partners-grid { grid-template-columns: repeat(3, 1fr); }
            .contacts-wrapper { grid-template-columns: 1fr; }
        }

        /* --- Адаптация только для МОБИЛЬНЫХ --- */
        @media (max-width: 768px) {
            section { padding: 40px 0; }
            h2 { font-size: 28px; }
            .section-subtitle { margin-bottom: 30px; font-size: 16px; }
            .content-wrapper { padding: 30px 20px !important; }
            .header .container { height: 70px; }
            .header-logo img { height: 80px; }
            .hero { padding-top: 120px; padding-bottom: 60px; text-align: center; }
            .hero-content-wrapper { padding: 30px 20px; }
            .hero h1 { font-size: 28px; }
            .hero p { font-size: 16px; margin-bottom: 25px; }
            .hero-features { flex-direction: column; align-items: center; gap: 15px; }
            .hero-cta-group, .hero-messengers { justify-content:center; }
            .trust-metrics{grid-template-columns:1fr 1fr;}
            .sticky-mobile-cta{display:flex; position:fixed; left:0; right:0; bottom:0; padding:10px; gap:8px; z-index:1200; background:rgba(0,0,0,0.75); backdrop-filter: blur(8px);}
            .sticky-mobile-cta .btn{flex:1; padding:10px 8px; font-size:13px;}
            .service-cards-grid { grid-template-columns: 1fr; }
            .model-card { flex-direction: column-reverse; }
            .model-card-text, .model-card-image { width: 100%; }
            .model-card-text { padding: 20px; }
            .model-card-text h3 { font-size: 18px; }
            .model-card-text ul { font-size: 14px; }
            .model-card-text .btn { align-self: center; }
            .model-card-image { min-height: 200px; }
            .reviews-swiper { padding: 0; }
            .reviews-swiper .swiper-button-next, .reviews-swiper .swiper-button-prev { display: none; }
            .partners-grid { grid-template-columns: repeat(2, 1fr); }
            .landing-links-grid { grid-template-columns: 1fr; }

            .faq-list { grid-template-columns: 1fr; }
        }
        /* --- Стили для модального окна --- */
        .modal-overlay {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background-color: rgba(0, 0, 0, 0.7);
            z-index: 2000;
            display: flex;
            align-items: center;
            justify-content: center;
            padding: 15px;
            opacity: 0;
            visibility: hidden;
            transition: opacity 0.3s ease, visibility 0.3s ease;
        }
        .modal-overlay.is-visible {
            opacity: 1;
            visibility: visible;
        }
        .modal-content {
            background-color: var(--color-white);
            color: var(--color-dark);
            padding: 30px;
            border-radius: 12px;
            max-width: 450px;
            width: 100%;
            position: relative;
            transform: translateY(-20px);
            transition: transform 0.3s ease;
            /* НОВОЕ: Ограничение высоты и скролл */
            max-height: 90vh; /* Не больше 90% высоты экрана */
            overflow-y: auto; /* Если не влезает - появится скролл */
            -webkit-overflow-scrolling: touch; /* Плавный скролл на iPhone */
        }
        
        .modal-close-btn {
            position: absolute;
            top: 10px;
            right: 10px;
            background: transparent;
            border: none;
            font-size: 28px;
            line-height: 1;
            cursor: pointer;
            color: #aaa;
            transition: color 0.2s;
            z-index: 10; /* Чтобы кнопка была поверх скролла */
        }
        .modal-close-btn:hover {
            color: var(--color-dark);
        }
        .modal-content h3 {
            text-align: center;
            margin-bottom: 10px;
            font-size: 22px;
        }
        .modal-content p {
            text-align: center;
            font-size: 15px;
            color: #6c757d;
            margin-bottom: 25px;
        }
        .modal-form .form-group {
            margin-bottom: 15px;
        }
        .modal-form input,
        .modal-form textarea {
            width: 100%;
            padding: 12px 15px;
            border: 1px solid #ced4da;
            border-radius: 8px;
            font-family: 'Montserrat', sans-serif;
            font-size: 16px;
            transition: border-color 0.2s, box-shadow 0.2s;
        }
        .modal-form input:focus,
        .modal-form textarea:focus {
            outline: none;
            border-color: var(--color-primary);
            box-shadow: 0 0 0 2px rgba(253, 216, 53, 0.5);
        }
        .modal-form textarea {
            min-height: 100px;
            resize: vertical;
        }
        .modal-form .btn {
            width: 100%;
            padding: 12px;
            font-size: 16px;
        }
        /* --- Стили для галереи в модельном ряду --- */
        .model-card {
            flex-direction: row;
        }
        .model-card-text {
            order: 1; 
        }
        .model-card-image-link {
            order: 2;
            width: 45%;
            cursor: zoom-in;
            display: block;
        }
        .model-card-image {
            width: 100%;
            height: 100%;
        }

        /* Адаптация для мобильных устройств */
        @media (max-width: 768px) {
            .model-card {
                flex-direction: column-reverse;
            }
            .model-card-text {
                order: 0;
            }
            .model-card-image-link {
                order: 0;
                width: 100%;
            }
            .model-card-image {
                min-height: 200px;
            }
        }

        /* --- Стили для интерактивной формы --- */
        .modal-form label {
            display: block;
            margin-bottom: 8px;
            font-weight: 500;
            font-size: 15px;
            color: #495057;
        }
        .form-image-preview {
            width: 100%;
            height: 150px; /* Фиксированная высота контейнера */
            background-color: #f0f0f0;
            border-radius: 8px;
            margin-bottom: 20px;
            display: flex;
            align-items: center;
            justify-content: center;
            overflow: hidden;
            transition: all 0.3s ease;
        }
        .form-image-preview img {
            width: 100%;
            height: 100%;
            object-fit: contain; /* Изображение будет видно целиком */
            display: none; /* Скрыто по умолчанию */
        }
        
        /* --- Стили для ловушки ботов (Honeypot) --- */
        .antispam-trap {
            opacity: 0;
            position: absolute;
            top: 0;
            left: 0;
            height: 0;
            width: 0;
            z-index: -1;
            overflow: hidden;
        }

        /* --- НОВЫЙ БЛОК: Строгая адаптация модального окна для iPhone --- */
        @media (max-width: 480px) {
            /* Центрируем затемнение */
            .modal-overlay {
                align-items: center; 
                padding: 0;
            }
            
            /* Настройки самого окна */
            .modal-content {
                padding: 15px; /* Маленькие отступы */
                width: 90%; /* Ширина 90% от экрана */
                max-height: 80vh; /* Высота не больше 80% экрана (чтобы влезть между панелями браузера) */
                margin: auto; 
                border-radius: 12px;
            }

            /* Уменьшаем шрифты */
            .modal-content h3 {
                font-size: 18px; 
                margin-top: 20px; /* Место для крестика */
                margin-bottom: 10px;
                line-height: 1.1;
            }
            .modal-content p {
                font-size: 12px;
                margin-bottom: 10px;
                line-height: 1.2;
            }
            
            /* Уменьшаем поля ввода */
            .modal-form input,
            .modal-form textarea,
            .modal-form select {
                padding: 8px 10px; /* Компактные поля */
                font-size: 14px;
                height: auto;
            }
            .modal-form .form-group {
                margin-bottom: 10px; /* Меньше отступ между полями */
            }

            /* Сильно уменьшаем картинку */
            .form-image-preview {
                height: 80px !important; /* Было 150, делаем 80 */
                margin-bottom: 10px;
            }

            /* Кнопка закрытия */
            .modal-close-btn {
                top: 5px;
                right: 5px;
                font-size: 36px;
                color: #000;
                opacity: 0.6;
                padding: 5px;
                z-index: 20;
            }
            
            /* Кнопка отправки */
            .modal-form .btn {
                padding: 10px;
                margin-top: 5px;
            }
        }
