
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }
        
        body { 
            font-family: 'Golos Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; 
            background-color: #F5F7FA;
            color: #2E2E2E;
            line-height: 1.6;
        }

        .container {
            max-width: 1200px;
            margin: 0 auto;
            padding: 0 20px;
        }
        
        /* Шапка */
        .header {
            background: white;
            padding: 20px 0;
            border-bottom: 1px solid #E0E0E0;
        }
        
        .header-content {
            display: flex;
            align-items: center;
            justify-content: space-between;
        }
        
        .logo {
            display: flex;
            align-items: center;
        }
        
        .logo img {
            height: 50px;
            width: auto;
            display: block;
        }

        /* Герой секция с эффектом "Аврора" */
        .hero {
            background-color: #0b2510;
            padding: 100px 0;
            margin-bottom: 40px;
            position: relative;
            overflow: hidden;
        }

        .aurora-bg {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            z-index: 0;
            pointer-events: none;
        }

        .aurora-blob {
            position: absolute;
            filter: blur(120px);
            border-radius: 50%;
            animation: aurora-float 20s infinite alternate ease-in-out;
            opacity: 0.8;
            will-change: transform;
        }

        .aurora-1 { background: #4CAF50; width: 60vw; height: 60vw; max-width: 600px; max-height: 600px; top: -20%; left: -10%; }
        .aurora-2 { background: #10B981; width: 50vw; height: 50vw; max-width: 500px; max-height: 500px; top: 10%; right: -10%; animation-duration: 25s; animation-delay: -5s; }
        .aurora-3 { background: #64DD17; width: 45vw; height: 45vw; max-width: 450px; max-height: 450px; bottom: -20%; left: 20%; animation-duration: 22s; animation-delay: -10s; }
        .aurora-4 { background: #1B5E20; width: 70vw; height: 70vw; max-width: 700px; max-height: 700px; bottom: -10%; right: 10%; animation-duration: 28s; animation-delay: -15s; opacity: 0.9; }

        @keyframes aurora-float {
            0% { transform: translate(0, 0) scale(1); }
            33% { transform: translate(8vw, -8vh) scale(1.1); }
            66% { transform: translate(-6vw, 10vh) scale(0.9); }
            100% { transform: translate(-10vw, -4vh) scale(1.05); }
        }

        #neural-canvas {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            z-index: 1;
            pointer-events: auto;
        }

        .hero-content {
            position: relative;
            z-index: 2;
            max-width: 700px;
        }
        
        .hero h2 {
            font-size: 42px;
            font-weight: 700;
            color: white;
            margin-bottom: 16px;
            line-height: 1.2;
        }
        
        .hero p {
            font-size: 18px;
            color: rgba(255, 255, 255, 0.9);
            margin-bottom: 24px;
            line-height: 1.6;
        }
        
        .badge {
            display: inline-flex;
            align-items: center;
            gap: 8px;
            background: rgba(255, 255, 255, 0.2);
            padding: 10px 20px;
            border-radius: 20px;
            font-size: 14px;
            font-weight: 500;
            color: white;
            backdrop-filter: blur(10px);
        }

        /* Секция с формой */
        .form-section {
            margin-bottom: 60px;
            position: relative;
        }
        
        .form-bg-shape {
            position: absolute;
            border-radius: 50%;
            filter: blur(80px);
            z-index: 0;
            opacity: 0.6;
        }
        .form-bg-1 { width: 300px; height: 300px; background: #4CAF50; top: -50px; left: 10%; }
        .form-bg-2 { width: 400px; height: 400px; background: #81C784; bottom: -100px; right: 10%; }
        
        .section-title {
            font-size: 28px;
            font-weight: 700;
            color: #2E2E2E;
            margin-bottom: 32px;
            text-align: center;
            position: relative;
            z-index: 1;
        }
        
        .form-container {
            background: rgba(255, 255, 255, 0.7);
            backdrop-filter: blur(20px);
            -webkit-backdrop-filter: blur(20px);
            border: 1px solid rgba(255, 255, 255, 0.6);
            padding: 40px;
            border-radius: 16px;
            box-shadow: 0 16px 48px rgba(76, 175, 80, 0.15);
            max-width: 600px;
            margin: 0 auto;
            position: relative;
            z-index: 1;
            overflow: hidden;
        }
        
        .form-subtitle {
            text-align: center;
            color: #757575;
            margin-bottom: 32px;
            font-size: 15px;
            line-height: 1.5;
        }
        
        .form-group {
            margin-bottom: 24px;
            position: relative;
        }
        
        .form-group label {
            position: absolute;
            left: 16px;
            top: 50%;
            transform: translateY(-50%);
            color: #757575;
            font-size: 16px;
            pointer-events: none;
            transition: 0.2s ease all;
            margin: 0;
        }
        
        .floating-input {
            width: 100%;
            padding: 24px 44px 8px 16px;
            height: 60px;
            border: 2px solid #E0E0E0;
            border-radius: 10px;
            font-size: 16px;
            transition: all 0.3s;
            background: #FAFAFA;
            font-family: 'Golos Text', sans-serif;
        }
        
        .floating-input:focus {
            outline: none;
            border-color: #4CAF50;
            background: white;
            box-shadow: 0 0 0 4px rgba(76, 175, 80, 0.1);
        }

        .floating-input:focus ~ label,
        .floating-input:not(:placeholder-shown) ~ label {
            top: 16px;
            font-size: 12px;
            color: #4CAF50;
            font-weight: 500;
        }

        .validation-icon {
            position: absolute;
            right: 16px;
            top: 50%;
            transform: translateY(-50%) scale(0.5);
            opacity: 0;
            transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
            pointer-events: none;
            color: #4CAF50;
        }

        .validation-icon.valid {
            opacity: 1;
            transform: translateY(-50%) scale(1);
        }
        
        .checkbox-group {
            display: flex;
            align-items: flex-start;
            gap: 12px;
            margin-bottom: 16px;
            font-size: 13px;
            color: #757575;
            line-height: 1.5;
        }
        
        .checkbox-group input {
            margin-top: 2px;
            width: 18px;
            height: 18px;
            cursor: pointer;
            accent-color: #4CAF50;
        }
        
        .btn-primary {
            display: block;
            width: 100%;
            padding: 16px;
            background: linear-gradient(135deg, #4CAF50 0%, #388E3C 100%);
            color: white;
            border: none;
            border-radius: 10px;
            font-size: 16px;
            font-weight: 600;
            cursor: pointer;
            transition: all 0.3s;
            margin-top: 8px;
            text-align: center;
            text-decoration: none;
            box-sizing: border-box;
        }
        
        .btn-primary:hover {
            background: linear-gradient(135deg, #43A047 0%, #2E7D32 100%);
            transform: translateY(-2px);
            box-shadow: 0 8px 20px rgba(76, 175, 80, 0.3);
        }

        .btn-reset {
            display: inline-block;
            margin-top: 16px;
            background: none;
            border: none;
            color: #757575;
            font-size: 15px;
            cursor: pointer;
            text-decoration: underline;
            font-family: inherit;
            transition: color 0.3s;
        }

        .btn-reset:hover {
            color: #2E2E2E;
        }

        @keyframes shakeError {
            0%, 100% { transform: translateX(0); }
            20%, 60% { transform: translateX(-5px); }
            40%, 80% { transform: translateX(5px); }
        }

        .error-shake { animation: shakeError 0.4s ease-in-out; }
        .error-shake.checkbox-group { color: #d32f2f; }
        .error-shake.checkbox-group input[type="checkbox"] { outline: 2px solid #d32f2f; outline-offset: 2px; border-radius: 2px; }
        .error-shake .floating-input { border-color: #d32f2f !important; box-shadow: 0 0 0 4px rgba(211, 47, 47, 0.1) !important; }
        .error-shake label { color: #d32f2f !important; }

        .otp-container {
            display: flex;
            justify-content: center;
            gap: 12px;
            margin-bottom: 24px;
        }
        
        .otp-input {
            width: 56px !important;
            height: 64px;
            text-align: center !important;
            font-size: 28px !important;
            font-weight: 700;
            border: 2px solid #E0E0E0 !important;
            border-radius: 12px !important;
            background: #FAFAFA !important;
            padding: 0 !important;
            transition: all 0.3s;
            color: #2E2E2E;
        }
        
        .otp-input:focus {
            border-color: #4CAF50 !important;
            background: white !important;
            box-shadow: 0 0 0 4px rgba(76, 175, 80, 0.1) !important;
            outline: none;
        }

/* --- Компоновка Финального экрана (Шаг 3) --- */
        .success-layout {
            display: flex;
            align-items: center; /* Центрируем элементы по вертикали */
            gap: 40px; /* Расстояние между папкой и текстом */
            text-align: left;
        }

        .success-visual {
            flex-shrink: 0; /* Запрещаем папке сжиматься, если текст длинный */
        }

        .success-actions {
            flex-grow: 1; /* Разрешаем правой части занять оставшееся место */
            display: flex;
            flex-direction: column;
            gap: 16px; /* Одинаковое расстояние между плашкой текста и кнопками */
        }

        .success-message-box {
            background: #F5F7FA;
            border: 1px solid #E0E0E0;
            border-radius: 12px;
            padding: 20px;
        }

        .success-message-box p {
            color: #424242;
            font-size: 15px;
            line-height: 1.5;
            margin: 0;
        }

        /* Новая вторичная кнопка (ссылка на канал) */
        .btn-secondary {
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 8px;
            width: 100%;
            padding: 16px;
            background: #E8F5E9; /* Нежно-зеленый фон */
            color: #2E7D32; /* Темно-зеленый текст */
            border: none;
            border-radius: 10px;
            font-size: 16px;
            font-weight: 600;
            cursor: pointer;
            transition: all 0.3s;
            font-family: inherit;
        }

        .btn-secondary:hover {
            background: #C8E6C9; /* Чуть темнее при наведении */
            transform: translateY(-2px);
        }

        #step-1, #step-2, #step-3 {
            transition: all 0.3s ease-in-out;
            width: 100%;
        }

        .services-section { margin-bottom: 60px; }
        .services-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(350px, 1fr)); gap: 24px; }
        .service-card { background: white; border-radius: 16px; padding: 0; position: relative; overflow: hidden; min-height: 320px; display: flex; flex-direction: column; justify-content: space-between; transition: transform 0.3s, box-shadow 0.3s; text-decoration: none; color: inherit; }
        .service-card:hover { transform: translateY(-8px); }
        .card-content { padding: 32px; position: relative; z-index: 2; }
        .card-icon { margin-bottom: 16px; display: block; }
        .card-icon svg { width: 48px; height: 48px; }
        .service-card h3 { font-size: 24px; font-weight: 700; margin-bottom: 12px; }
        .service-card p { font-size: 15px; line-height: 1.6; margin-bottom: 20px; }
        .service-link { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; font-size: 15px; transition: gap 0.3s; }
        .service-card:hover .service-link { gap: 10px; }
        .card-background { position: absolute; top: 0; right: 0; width: 100%; height: 100%; pointer-events: none; z-index: 1; }
        .bg-shape { position: absolute; border-radius: 50%; background: currentColor; opacity: 0.04; transition: transform 0.6s ease, opacity 0.3s; }
        .service-card:hover .bg-shape { opacity: 0.08; transform: scale(1.4); }
        .shape-1 { width: 160px; height: 160px; top: -30px; right: -30px; }
        .shape-2 { width: 100px; height: 100px; bottom: 30px; right: 50px; }
        .reveal { opacity: 0; transform: translateY(40px); transition: all 0.8s cubic-bezier(0.5, 0, 0, 1); }
        .reveal.active { opacity: 1; transform: translateY(0); }
        .service-card.business { background: linear-gradient(135deg, #E3F2FD 0%, #BBDEFB 50%, #90CAF9 100%); }
        .service-card.business:hover { box-shadow: 0 16px 48px rgba(21, 101, 192, 0.25); }
        .service-card.business h3, .service-card.business p, .service-card.business .service-link { color: #1565C0; }
        .service-card.knowledge { background: linear-gradient(135deg, #FFF3E0 0%, #FFE0B2 50%, #FFCC80 100%); }
        .service-card.knowledge:hover { box-shadow: 0 16px 48px rgba(230, 81, 0, 0.25); }
        .service-card.knowledge h3, .service-card.knowledge p, .service-card.knowledge .service-link { color: #E65100; }
        .service-card.students { background: linear-gradient(135deg, #F1F8E9 0%, #DCEDC8 50%, #C5E1A5 100%); }
        .service-card.students:hover { box-shadow: 0 16px 48px rgba(85, 139, 47, 0.25); }
        .service-card.students h3, .service-card.students p, .service-card.students .service-link { color: #558B2F; }
        .footer { background: #2E2E2E; color: white; padding: 40px 0; text-align: center; font-size: 14px; }
        .footer p { opacity: 0.7; margin: 8px 0; }

        /* Модальное окно — Оптимизировано */
        .modal { display: none; position: fixed; z-index: 9999; left: 0; top: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.5); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); opacity: 0; transition: opacity 0.3s ease; pointer-events: none; align-items: center; justify-content: center; }
        .modal.show { opacity: 1; pointer-events: auto; }
        .modal-content { background: white; padding: 40px; border-radius: 16px; max-width: 700px; width: 90%; position: relative; box-shadow: 0 24px 64px rgba(0,0,0,0.3); transform: translateY(20px) scale(0.98); transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.1); }
        .modal.show .modal-content { transform: translateY(0) scale(1); }
        .close-modal { position: absolute; top: 24px; right: 24px; font-size: 32px; line-height: 1; font-weight: 400; color: #9E9E9E; cursor: pointer; transition: color 0.2s; }
        .close-modal:hover { color: #2E2E2E; }
        .modal h3 { font-size: 22px; margin-bottom: 24px; color: #2E2E2E; padding-right: 30px; }
        .modal-body { max-height: 50vh; overflow-y: auto; font-size: 15px; line-height: 1.6; color: #616161; padding-right: 16px; text-align: left; }
        .modal-body p { margin-bottom: 16px; }
        .modal-body::-webkit-scrollbar { width: 6px; }
        .modal-body::-webkit-scrollbar-track { background: #FAFAFA; border-radius: 4px; }
        .modal-body::-webkit-scrollbar-thumb { background: #E0E0E0; border-radius: 4px; }
        .modal-body::-webkit-scrollbar-thumb:hover { background: #BDBDBD; }

       @media (max-width: 768px) {
            .header { padding: 12px 0; }
            .hero { padding: 40px 0 30px; }
            .hero h2 { font-size: 22px; margin-bottom: 12px; }
            .hero p { font-size: 14px; margin-bottom: 20px; }
            .section-title { font-size: 24px; margin-bottom: 24px; }
            .form-container { padding: 20px 16px; border-radius: 12px; }
            /* ВАЖНО: font-size: 16px предотвращает автоматический зум в Safari на iOS */
            .floating-input { height: 56px; padding: 20px 40px 6px 14px; font-size: 16px; }
            .otp-container { gap: 8px; }
            .otp-input { width: 48px !important; height: 56px; font-size: 24px !important; }
            .services-grid { grid-template-columns: 1fr; gap: 16px; }
            
            /* Перестроение финального экрана для телефонов */
            .success-layout {
                flex-direction: column;
                text-align: center;
                gap: 24px; /* Уменьшаем расстояние между блоками */
            }
            .success-actions {
                width: 100%;
            }
            .success-message-box {
                text-align: left; /* Оставляем текст по левому краю для удобства чтения */
            }
        }
        /* Анимация загрузки для кнопки */
.btn-loading {
    position: relative;
    pointer-events: none; /* Блокируем повторные нажатия */
    
}
.btn-loading::after {
    content: '';
    position: absolute;
    width: 20px;
    height: 20px;
    top: 50%;
    left: 20px; /* Сдвигаем лоадер влево */
    margin-top: -10px;
    /* Убрали margin-left, чтобы привязка была только к левому краю */
    border: 3px solid rgba(255, 255, 255, 0.3);
    border-radius: 50%;
    border-top-color: white;
    animation: spin 1s ease-in-out infinite;
}
/* --- Анимации --- */

/* Описание анимации: вылет снизу + появление */
@keyframes slideUpFade {
    from {
        opacity: 0;
        transform: translateY(40px); /* Стартуем на 40px ниже */
    }
    to {
        opacity: 1;
        transform: translateY(0); /* Финишируем в нормальной позиции */
    }
}

/* Класс, который запускает анимацию. Его мы будем добавлять через JS */
.animate-mockup {
    animation: slideUpFade 0.7s ease-out forwards; /* Длится 0.7 сек, плавно замедляется в конце */
    will-change: transform, opacity; /* Подсказка браузеру для оптимизации производительности */
}

@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}
/* --- Стили для мокапов обложек PDF --- */

/* Контейнер для центрирования */
.mockup-wrapper {
    display: flex;
    justify-content: center;
    margin-bottom: 32px;
}

/* Базовая обложка (стиль премиальной папки/карты) */
.pdf-cover-mockup {
    width: 180px;
    height: 250px;
    background: white;
    border-radius: 12px;
    box-shadow: 0 15px 45px rgba(0,0,0,0.1); /* Глубокая тень для объема */
    position: relative;
    overflow: hidden;
    transition: transform 0.3s ease; /* Легкая анимация при наведении */
    border: 1px solid #E0E0E0;
    font-family: 'Golos Text', sans-serif;
}

.pdf-cover-mockup:hover {
    transform: translateY(-5px); /* Папка немного всплывает */
}

/* Эффект корешка папки (слева) */
.pdf-cover-mockup::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    width: 12px;
    height: 100%;
    background: rgba(0,0,0,0.03);
    border-right: 1px solid rgba(0,0,0,0.05);
    z-index: 2;
}

/* Внутренние элементы обложки */
.cover-content {
    padding: 24px 16px 20px 28px; /* Большой отступ слева из-за корешка */
    display: flex;
    flex-direction: column;
    height: 100%;
    text-align: left;
}

/* Иконка вверху обложки */
.cover-icon {
    font-size: 32px;
    margin-bottom: 16px;
    opacity: 0.8;
}

/* Заголовок на обложке */
.cover-title {
    font-weight: 600;
    font-size: 16px;
    line-height: 1.3;
    color: #212121;
    margin-bottom: 8px;
}

/* Подзаголовок (для кого) */
.cover-subtitle {
    font-size: 12px;
    color: #757575;
    margin-bottom: auto; /* Прижимает нижний блок вниз */
}

/* Нижний блок (логотип и дата) */
.cover-footer {
    border-top: 1px solid #EEEEEE;
    padding-top: 12px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.cover-bank-logo {
    font-weight: 700;
    font-size: 12px;
    color: #4CAF50; /* Фирменный зеленый */
    letter-spacing: -0.5px;
}

.cover-date {
    font-size: 10px;
    color: #BDBDBD;
}


/* --- Цветовые вариации обложек --- */

/* 1. Кредит (💰) - Акцент на деньги */
.cover-credit {
    border-top: 6px solid #FFC107; /* Желтый */
}
.cover-credit .cover-icon { color: #FFC107; }

/* 2. Карта (💳) - Синий цвет бизнеса */
.cover-card {
    border-top: 6px solid #1976D2; /* Синий */
}
.cover-card .cover-icon { color: #1976D2; }

/* 3. Вклад (📈) - Зеленый рост */
.cover-deposit {
    border-top: 6px solid #4CAF50; /* Зеленый */
}
.cover-deposit .cover-icon { color: #4CAF50; }

/* 4. Общее предложение (📄) - Строгий серый */
.cover-general {
    border-top: 6px solid #9E9E9E; /* Серый */
}
.cover-general .cover-icon { color: #9E9E9E; }

@media (max-width: 480px) {
    .modal {
        align-items: flex-end; /* Прижимаем к низу экрана */
    }

    .modal-content {
        width: 100%;
        max-width: none;
        border-radius: 20px 20px 0 0; /* Скругляем только верхние углы */
        margin: 0;
        transform: translateY(100%); /* Начальная позиция для анимации */
        padding: 30px 20px;
    }

    .modal.show .modal-content {
        transform: translateY(0); /* Плавно выезжает снизу */
    }

    .modal-body {
        max-height: 75vh; /* Максимально используем экран */
    }
    
    /* Увеличим зону клика для закрытия (Touch Target) */
    .close-modal {
        top: 15px;
        right: 15px;
        padding: 10px; 
    }
}

@media (max-width: 768px) {
    /* 1. Позволяем модалке скроллиться целиком, если она не влезает */
    .modal.show {
        align-items: flex-start; /* Прижимаем к верху, а не к центру */
        padding: 20px 10px;      /* Даем небольшой отступ от краев экрана */
        overflow-y: auto;        /* Включаем прокрутку самого фона */
    }

    .modal-content {
        padding: 24px 16px;      /* Уменьшаем внутренние поля */
        width: 100%;             /* Занимаем всю ширину */
        margin: 0 auto;
        transform: none !important; /* Отключаем лишние трансформации */
    }

    /* 2. Увеличиваем лимит высоты для текста */
    .modal-body {
        max-height: none;        /* Убираем ограничение на мобилках */
        overflow-y: visible;     /* Прокрутка будет идти по всему окну */
        padding-right: 0;
    }
    
    .modal h3 {
        font-size: 18px;         /* Чуть уменьшаем заголовок */
        margin-bottom: 16px;
    }
}