/* Styles responsifs globaux */
:root {
    --radius: 18px;
    --sustainable: #059669;
    --data: #0284c7;
    --fablab: #c026d3;
}

body {
    font-family: 'Inter', 'Montserrat', system-ui, -apple-system, sans-serif;
    color: #0F172A;
    overflow-x: hidden;
}

.container-px {
    padding-left: clamp(1rem, 4vw, 3rem);
    padding-right: clamp(1rem, 4vw, 3rem);
}

/* Header responsive */
@media (max-width: 768px) {
    #header .container-px {
        padding-left: 1rem;
        padding-right: 1rem;
    }
    
    #nav {
        padding: 1rem;
        margin-top: 0.5rem;
    }
}

/* Hero section responsive */
.hero-video {
    height: 100vh;
    min-height: 600px;
    max-height: 1000px;
}

@media (max-width: 768px) {
    .hero-video {
        min-height: 700px;
        height: auto;
        padding-top: 120px;
        padding-bottom: 80px;
    }
    
    .hero-video video {
        height: 100%;
        object-fit: cover;
    }
}

@media (max-width: 640px) {
    .hero-video {
        min-height: 800px;
    }
    
    .hero-badges {
        flex-wrap: wrap;
        gap: 0.5rem;
        padding: 0 1rem;
    }
    
    .hero-badges span {
        font-size: 0.75rem;
        padding: 0.375rem 0.75rem;
    }
}

@media (max-width: 480px) {
    .hero-buttons {
        flex-direction: column;
        width: 100%;
        gap: 0.75rem;
    }
    
    .hero-buttons a {
        width: 100%;
        justify-content: center;
        text-align: center;
    }
}

/* Navigation responsive */
@media (max-width: 1024px) {
    .nav-dropdown-content {
        width: 600px;
        flex-direction: column;
        gap: 1rem;
    }
}

@media (max-width: 768px) {
    #menu {
        display: none !important;
    }
    
    .nav-dropdown-content {
        display: none !important;
    }
}

/* Sections responsive */
section {
    padding-left: clamp(1rem, 4vw, 2rem);
    padding-right: clamp(1rem, 4vw, 2rem);
}

@media (max-width: 768px) {
    section {
        padding: 3rem 1rem;
    }
    
    section h2 {
        font-size: 1.75rem !important;
    }
    
    section p {
        font-size: 0.95rem !important;
    }
}

/* Grid responsive */
@media (max-width: 640px) {
    .grid-cols-2,
    .grid-cols-3,
    .grid-cols-4 {
        grid-template-columns: 1fr !important;
        gap: 1.5rem;
    }
    
    .lg\:grid-cols-2 {
        grid-template-columns: 1fr;
    }
}

/* Cards responsive */
@media (max-width: 768px) {
    article {
        padding: 1.5rem !important;
    }
    
    .card-image {
        height: 200px !important;
    }
}

/* Swiper responsive */
@media (max-width: 768px) {
    .swiper.mySwiper {
        height: 300px !important;
    }
    
    .swiper-button-next,
    .swiper-button-prev {
        display: none !important;
    }
}

/* Footer responsive */
@media (max-width: 768px) {
    footer .grid {
        grid-template-columns: 1fr;
        gap: 2rem;
        text-align: center;
    }
    
    footer .flex {
        justify-content: center;
    }
}

/* Mobile drawer améliorations */
#mobileDrawer aside {
    width: 100%;
    max-width: 320px;
}

@media (max-width: 480px) {
    #mobileDrawer aside {
        max-width: 100%;
    }
}

/* Animation reveal améliorée */
.reveal {
    opacity: 0;
    transform: translateY(20px);
    transition: all 0.6s ease-out;
}

.reveal.active {
    opacity: 1;
    transform: translateY(0);
}

/* Container utilities */
.container-responsive {
    width: 100%;
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 clamp(1rem, 5vw, 2rem);
}

/* Typography responsive */
h1 {
    font-size: clamp(2rem, 5vw, 3.5rem);
}

h2 {
    font-size: clamp(1.5rem, 4vw, 2.5rem);
}

h3 {
    font-size: clamp(1.25rem, 3vw, 1.75rem);
}

p, .text-base {
    font-size: clamp(0.875rem, 2vw, 1rem);
}

/* Button responsive */
.btn-responsive {
    padding: clamp(0.75rem, 2vw, 1rem) clamp(1.5rem, 3vw, 2rem);
    font-size: clamp(0.875rem, 2vw, 1rem);
}