@media (max-width: 768px) {
    .soutien-hero {
        padding: 60px 20px 50px;
    }

    .soutien-hero-title {
        font-size: 2.5rem;
        line-height: 1.1;
        white-space: nowrap;
    }

    .soutien-hero-subtitle {
        font-size: 1.2rem;
        white-space: normal;
        padding: 0 10px;
        overflow-wrap: normal;
    }

    .soutien-cards-section {
        padding: 60px 20px;
    }

    .soutien-cards-container {
        grid-template-columns: 1fr;
        gap: 30px;
    }

    .soutien-card {
        padding: 30px 20px;
    }

    .soutien-card-title {
        font-size: clamp(1.3rem, 4vw, 1.6rem);
    }

    .soutien-card-description {
        font-size: clamp(0.95rem, 2.5vw, 1.1rem);
        line-height: 1.5;
    }

    .soutien-content {
        margin-top: 0 !important;
        padding-top: 20px;
    }

    .soutien-hero {
        margin-top: -60px !important;
        padding-top: calc(60px + 50px) !important;
    }

    .modal-content {
        width: 95%;
        margin: 10% auto;
        max-height: 95vh;
        border-radius: 12px;
    }

    .modal-body {
        flex-direction: column;
        min-height: auto;
    }

    .modal-image {
        height: 200px;
        border-radius: 15px 15px 0 0;
    }

    .modal-form {
        padding: 30px 20px;
    }

    .modal-form-full {
        padding: 30px 20px;
    }
    
    .modal-form h2,
    .modal-form-full h2 {
        font-size: clamp(1.3rem, 4vw, 1.6rem);
        margin-bottom: 20px;
    }

    .form-row {
        grid-template-columns: 1fr;
        gap: 15px;
    }
    
    .soutien-image-section {
        margin-top: 20px;
        padding: 0 20px 40px;
    }

    .soutien-bottom-image {
        border-radius: 10px;
        margin: 0;
    }
}

@media (max-width: 480px) {
    .modal-content {
        width: 98%;
        margin: 2% auto;
    }

    .modal-form,
    .modal-form-full {
        padding: 20px 15px;
    }
    
    .soutien-hero {
        padding: 50px 15px 40px;
    }
    
    .soutien-cards-section {
        padding: 40px 15px;
    }

    .soutien-card {
        padding: 20px 16px;
    }
}

@media (max-width: 400px) {
    .soutien-cards-container {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .soutien-hero {
        padding: 60px 20px 50px;
        height: auto;
        min-height: auto;
    }

    .soutien-card {
        padding: 20px 16px;
        margin-bottom: 15px;
    }
}

@media (max-width: 360px) {
    .modal-content {
        width: 99%;
        margin: 1% auto;
    }
}


/* Landscape Mobile Optimization */
@media (max-height: 500px) and (orientation: landscape) {

    .soutien-hero {
        padding: 30px 20px 25px;
        min-height: auto;
    }
}