/* ==========================================
   ALESIM CONSULTING GROUP - STYLES RESPONSIVE
   ========================================== */

/* Tablettes (768px - 1024px) */
@media screen and (max-width: 1024px) {
    .container {
        padding: 0 var(--spacing-md);
    }
    
    h1 { font-size: 2rem; }
    h2 { font-size: 1.75rem; }
    h3 { font-size: 1.375rem; }
    
    /* Navigation */
    .nav-menu {
        position: fixed;
        top: 0;
        right: -100%;
        width: 80%;
        max-width: 400px;
        height: 100vh;
        background: var(--white);
        flex-direction: column;
        justify-content: flex-start;
        padding: var(--spacing-xxl) var(--spacing-lg);
        transition: var(--transition-normal);
        box-shadow: -5px 0 15px rgba(0,0,0,0.1);
        gap: var(--spacing-lg);
    }
    
    .nav-menu.active {
        right: 0;
    }
    
    .nav-list {
        flex-direction: column;
        width: 100%;
        gap: var(--spacing-md);
    }
    
    .nav-item {
        width: 100%;
    }
    
    .nav-link {
        display: block;
        width: 100%;
        padding: var(--spacing-md);
        border-radius: var(--border-radius);
    }
    
    .nav-toggle {
        display: flex;
    }
    
    /* Hero */
    .hero-title {
        font-size: 2.5rem;
    }
    
    .hero-subtitle {
        font-size: 1.125rem;
    }
    
    .hero-buttons {
        flex-direction: column;
        align-items: center;
        gap: var(--spacing-md);
    }
    
    /* Stats */
    .stats-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: var(--spacing-lg);
    }
    
    .stat-number {
        font-size: 2.5rem;
    }
    
    /* Formations */
    .formations-grid {
        grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
        gap: var(--spacing-lg);
    }
    
    /* Testimonials */
    .testimonials-grid {
        grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
        gap: var(--spacing-lg);
    }
    
    /* Contact */
    .contact-grid {
        grid-template-columns: 1fr;
        gap: var(--spacing-xl);
    }
    
    /* Footer */
    .footer-grid {
        grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
        gap: var(--spacing-lg);
    }
    
    .footer-bottom {
        flex-direction: column;
        text-align: center;
        gap: var(--spacing-md);
    }
    
    /* Formations détaillées */
    .module-content {
        grid-template-columns: 1fr;
        gap: var(--spacing-lg);
    }
    
    .module-header {
        flex-direction: column;
        gap: var(--spacing-md);
        text-align: center;
    }
    
    .module-meta {
        flex-direction: column;
        gap: var(--spacing-sm);
    }
    
    .module-actions {
        flex-direction: column;
    }
    
    .categories-nav {
        overflow-x: auto;
        white-space: nowrap;
        padding: var(--spacing-lg);
    }
    
    .category-btn {
        display: inline-block;
        margin: var(--spacing-xs);
    }
}

/* Mobiles (max 768px) */
@media screen and (max-width: 768px) {
    :root {
        --font-size-base: 14px;
    }
    
    .container {
        padding: 0 var(--spacing-md);
    }
    
    /* Typographie mobile */
    h1 { font-size: 1.75rem; }
    h2 { font-size: 1.5rem; }
    h3 { font-size: 1.25rem; }
    h4 { font-size: 1.125rem; }
    
    /* Header mobile */
    .navbar {
        padding: var(--spacing-sm) 0;
    }
    
    .logo {
        height: 30px;
    }
    
    .brand-text {
        font-size: 1rem;
        display: none;
    }
    
    /* Promo banner */
    .promo-banner {
        padding: var(--spacing-sm) 0;
        margin-top: 60px;
    }
    
    .promo-content {
        flex-direction: column;
        text-align: center;
        gap: var(--spacing-sm);
    }
    
    .promo-close {
        position: static;
    }
    
    /* Hero mobile */
    .hero {
        height: 80vh;
        padding: var(--spacing-xl) 0;
    }
    
    .hero-title {
        font-size: 2rem;
        margin-bottom: var(--spacing-md);
    }
    
    .hero-subtitle {
        font-size: 1rem;
        margin-bottom: var(--spacing-lg);
    }
    
    .hero-buttons .btn {
        width: 100%;
        max-width: 280px;
    }
    
    /* Stats mobile */
    .stats-section {
        padding: var(--spacing-xl) 0;
    }
    
    .stats-grid {
        grid-template-columns: 1fr;
        gap: var(--spacing-lg);
    }
    
    .stat-item {
        padding: var(--spacing-md);
    }
    
    .stat-number {
        font-size: 2rem;
    }
    
    /* Formations mobile */
    .formations-preview {
        padding: var(--spacing-xl) 0;
    }
    
    .formations-grid {
        grid-template-columns: 1fr;
        gap: var(--spacing-lg);
    }
    
    .formation-card {
        margin: 0 auto;
        max-width: 400px;
    }
    
    .formation-actions {
        flex-direction: column;
    }
    
    .formation-actions .btn {
        width: 100%;
    }
    
    /* Testimonials mobile */
    .testimonials {
        padding: var(--spacing-xl) 0;
    }
    
    .testimonials-grid {
        grid-template-columns: 1fr;
        gap: var(--spacing-lg);
    }
    
    .testimonial-card {
        padding: var(--spacing-lg);
    }
    
    /* Contact mobile */
    .contact-section {
        padding: var(--spacing-xl) 0;
    }
    
    .contact-form {
        order: -1;
    }
    
    /* Footer mobile */
    .footer {
        padding: var(--spacing-xl) 0;
    }
    
    .footer-grid {
        grid-template-columns: 1fr;
        gap: var(--spacing-lg);
        text-align: center;
    }
    
    .footer-bottom {
        padding-top: var(--spacing-lg);
    }
    
    .footer-links {
        flex-wrap: wrap;
        justify-content: center;
        gap: var(--spacing-md);
    }
    
    /* Floating button mobile */
    .floating-btn {
        bottom: 20px;
        right: 20px;
        padding: var(--spacing-sm) var(--spacing-md);
        font-size: 0.875rem;
    }
    
    .floating-btn i {
        font-size: 1rem;
    }
    
    /* Modal mobile */
    .modal-overlay {
        padding: var(--spacing-md);
    }
    
    .modal-content {
        max-height: 95vh;
    }
    
    .modal-header {
        padding: var(--spacing-md) var(--spacing-lg);
    }
    
    .inscription-form {
        padding: var(--spacing-lg);
    }
    
    .modal-header h3 {
        font-size: 1.25rem;
    }
    
    /* Page formations mobile */
    .page-header {
        padding: 100px 0 40px;
    }
    
    .page-header h1 {
        font-size: 2rem;
    }
    
    .page-header p {
        font-size: 1rem;
    }
    
    .formations-detail {
        padding: var(--spacing-lg) 0;
    }
    
    .category-title {
        font-size: 1.5rem;
        margin-bottom: var(--spacing-lg);
    }
    
    .formation-module {
        margin-bottom: var(--spacing-lg);
    }
    
    .module-header h3 {
        font-size: 1.125rem;
    }
    
    .module-header .price {
        font-size: 0.875rem;
    }
    
    .module-header .new-price {
        font-size: 1.25rem;
    }
    
    /* Boutons */
    .btn {
        padding: var(--spacing-sm) var(--spacing-md);
        font-size: 0.875rem;
    }
    
    .btn-large {
        padding: var(--spacing-md) var(--spacing-lg);
        font-size: 1rem;
    }
    
    /* Section header */
    .section-header {
        margin-bottom: var(--spacing-xl);
    }
    
    .section-title {
        font-size: 2rem;
    }
    
    .section-subtitle {
        font-size: 1rem;
    }
    
    /* Utilities mobile */
    .text-center-mobile {
        text-align: center;
    }
    
    .hide-mobile {
        display: none;
    }
    
    .full-width-mobile {
        width: 100%;
    }
}

/* Très petits mobiles (max 480px) */
@media screen and (max-width: 480px) {
    /* Hero très petit mobile */
    .hero-title {
        font-size: 1.5rem;
    }
    
    .hero-subtitle {
        font-size: 0.9rem;
    }
    
    /* Navigation très petit mobile */
    .nav-menu {
        width: 95%;
        padding: var(--spacing-lg);
    }
    
    /* Formations très petit mobile */
    .formation-meta {
        flex-direction: column;
        align-items: flex-start;
        gap: var(--spacing-sm);
    }
    
    .price {
        text-align: left;
    }
    
    /* Module header très petit mobile */
    .module-header {
        padding: var(--spacing-md);
    }
    
    .module-header h3 {
        font-size: 1rem;
    }
    
    .module-content {
        padding: var(--spacing-md);
    }
    
    /* Boutons très petit mobile */
    .module-actions {
        flex-direction: column;
        gap: var(--spacing-sm);
    }
    
    .module-actions .btn {
        width: 100%;
    }
    
    /* Footer très petit mobile */
    .footer-links {
        flex-direction: column;
        gap: var(--spacing-sm);
    }
    
    /* Floating button très petit mobile */
    .floating-btn {
        bottom: 15px;
        right: 15px;
        padding: var(--spacing-xs) var(--spacing-sm);
        font-size: 0.8rem;
    }
}

/* Très grands écrans (min 1600px) */
@media screen and (min-width: 1600px) {
    .container {
        max-width: 1400px;
    }
    
    h1 { font-size: 3rem; }
    h2 { font-size: 2.5rem; }
    h3 { font-size: 2rem; }
    
    .hero-title {
        font-size: 3.5rem;
    }
    
    .hero-subtitle {
        font-size: 1.5rem;
    }
    
    .stat-number {
        font-size: 3.5rem;
    }
    
    .formations-grid {
        grid-template-columns: repeat(3, 1fr);
    }
    
    .testimonials-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

/* Impression */
@media print {
    .header,
    .floating-btn,
    .promo-banner,
    .footer {
        display: none;
    }
    
    body {
        font-size: 12pt;
        line-height: 1.5;
    }
    
    .container {
        max-width: 100%;
        padding: 0;
    }
    
    .hero {
        height: auto;
        padding: 2rem 0;
    }
    
    .hero-title {
        font-size: 18pt;
    }
    
    .hero-subtitle {
        font-size: 14pt;
    }
    
    .btn {
        background: none !important;
        color: black !important;
        border: 1px solid black !important;
    }
}