/* ==========================================================
   BEN'S LINE DANCE
   SOUMETTRE UNE ÉCOLE
   CSS COMPLET + RESPONSIVE
   ========================================================== */


/* ==========================================================
   1. VARIABLES
   ========================================================== */

:root {

    --soumettre-green: #6e8353;
    --soumettre-green-dark: #55673f;
    --soumettre-green-light: #e8ede2;

    --soumettre-cream: #f8f4ea;
    --soumettre-cream-dark: #eee7d7;

    --soumettre-brown: #76583f;
    --soumettre-brown-dark: #57412f;

    --soumettre-text: #30352d;
    --soumettre-text-light: #70766d;

    --soumettre-border: #dedbd0;

    --soumettre-white: #ffffff;

    --soumettre-success: #4f7543;
    --soumettre-success-bg: #edf5e9;

    --soumettre-error: #a3483d;
    --soumettre-error-bg: #fbefed;

    --soumettre-shadow:
        0 10px 30px rgba(55, 63, 47, 0.08);

    --soumettre-radius: 18px;

}


/* ==========================================================
   2. RESET LOCAL
   ========================================================== */

.soumettre-ecole-page *,
.soumettre-ecole-page *::before,
.soumettre-ecole-page *::after {

    box-sizing: border-box;

}


/* ==========================================================
   3. HERO
   IMPORTANT :
   Le background / dégradé reste celui de style.css
   ========================================================== */

.hero-inner {

    width: min(calc(100% - 48px), 1400px);

    height: 190px;
    min-height: 190px;

    margin: 0 auto;

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 50px;

    padding: 0;

}


.hero-content {

    flex: 1 1 auto;

    min-width: 0;

    display: flex;

    flex-direction: column;

    justify-content: center;

    align-items: flex-start;

    margin: 0;

    padding: 0;

}


.hero-content > p:first-child {

    position: relative;

    top: 20px;

    margin: 0 0 14px;

    font-size: 14px;

    line-height: 1.45;

}


.hero-content h1 {

    margin: 0 0 8px;

    font-size: clamp(2rem, 3.2vw, 3rem);

    line-height: 1.05;

}


.hero-content p {

    max-width: 600px;

    margin: 0 0 14px;

    font-size: 14px;

    line-height: 1.45;

}


.hero-free {

    flex: 0 0 300px;

    display: flex;

    align-items: center;

    justify-content: center;

    margin: 0;

    padding: 0;

}


.hero-free img {

    width: 300px;

    max-width: 100%;

    height: auto;

    display: block;

}


/* ==========================================================
   4. PAGE PRINCIPALE
   ========================================================== */

.soumettre-ecole-page {

    width: 100%;

    background:
        var(--soumettre-cream);

    padding: 0 0 110px;

}


.soumettre-ecole-main {

    width: min(calc(100% - 40px), 1180px);

    margin: 0 auto;

}


/* ==========================================================
   5. INTRO
   ========================================================== */

.soumettre-intro {

    text-align: center;

    padding: 65px 0 35px;

}


.soumettre-eyebrow {

    display: inline-flex;

    align-items: center;

    justify-content: center;

    gap: 8px;

    margin-bottom: 12px;

    color: var(--soumettre-green);

    font-size: 13px;

    font-weight: 800;

    letter-spacing: 0.12em;

    text-transform: uppercase;

}


.soumettre-title {

    margin: 0 auto 12px;

    color: var(--soumettre-text);

    font-size: clamp(2rem, 4vw, 3rem);

    line-height: 1.08;

    font-weight: 800;

}


.soumettre-subtitle {

    max-width: 720px;

    margin: 0 auto;

    color: var(--soumettre-text-light);

    font-size: 16px;

    line-height: 1.65;

}


/* ==========================================================
   6. NOTE INFORMATION
   ========================================================== */

.soumettre-note {

    max-width: 760px;

    margin: 30px auto 0;

    padding: 18px 22px;

    display: flex;

    align-items: flex-start;

    gap: 14px;

    text-align: left;

    background: var(--soumettre-green-light);

    border: 1px solid rgba(110, 131, 83, 0.18);

    border-radius: 14px;

}


.soumettre-note > i {

    flex: 0 0 auto;

    margin-top: 3px;

    color: var(--soumettre-green);

    font-size: 19px;

}


.soumettre-note strong {

    display: block;

    margin-bottom: 4px;

    color: var(--soumettre-text);

    font-size: 14px;

}


.soumettre-note p {

    margin: 0;

    color: var(--soumettre-text-light);

    font-size: 13px;

    line-height: 1.5;

}


/* ==========================================================
   7. MESSAGES
   ========================================================== */

.soumettre-message {

    width: 100%;

    margin: 0 0 28px;

    padding: 20px 22px;

    display: flex;

    align-items: flex-start;

    gap: 15px;

    border-radius: 16px;

}


.soumettre-message-icon {

    flex: 0 0 42px;

    width: 42px;

    height: 42px;

    display: flex;

    align-items: center;

    justify-content: center;

    border-radius: 50%;

    font-size: 18px;

}


.soumettre-message strong {

    display: block;

    margin-bottom: 5px;

    font-size: 15px;

}


.soumettre-message p {

    margin: 0;

    font-size: 14px;

    line-height: 1.55;

}


.soumettre-message ul {

    margin: 7px 0 0;

    padding-left: 18px;

}


.soumettre-message li {

    margin-bottom: 3px;

    font-size: 14px;

}


.soumettre-message-success {

    color: var(--soumettre-success);

    background: var(--soumettre-success-bg);

    border: 1px solid rgba(79, 117, 67, 0.18);

}


.soumettre-message-success
.soumettre-message-icon {

    background: rgba(79, 117, 67, 0.12);

}


.soumettre-message-error {

    color: var(--soumettre-error);

    background: var(--soumettre-error-bg);

    border: 1px solid rgba(163, 72, 61, 0.18);

}


.soumettre-message-error
.soumettre-message-icon {

    background: rgba(163, 72, 61, 0.10);

}


/* ==========================================================
   8. TITRE SECTION
   ========================================================== */

.soumettre-form-section {

    width: 100%;

}


.soumettre-section-heading {

    margin-bottom: 25px;

}


.soumettre-section-eyebrow {

    display: block;

    margin-bottom: 5px;

    color: var(--soumettre-green);

    font-size: 12px;

    font-weight: 800;

    letter-spacing: 0.13em;

    text-transform: uppercase;

}


.soumettre-section-heading h2 {

    margin: 0 0 7px;

    color: var(--soumettre-text);

    font-size: clamp(1.6rem, 3vw, 2.2rem);

    line-height: 1.15;

}


.soumettre-section-heading p {

    margin: 0;

    color: var(--soumettre-text-light);

    font-size: 13px;

}


.required {

    color: var(--soumettre-error);

    font-weight: 800;

}


/* ==========================================================
   9. FORMULAIRE
   ========================================================== */

.soumettre-form {

    width: 100%;

}


.soumettre-form-card {

    width: 100%;

    margin-bottom: 22px;

    padding: 28px;

    background: var(--soumettre-white);

    border: 1px solid var(--soumettre-border);

    border-radius: var(--soumettre-radius);

    box-shadow: var(--soumettre-shadow);

}


.soumettre-form-card-heading {

    display: flex;

    align-items: center;

    gap: 14px;

    margin-bottom: 25px;

}


.soumettre-form-card-icon {

    flex: 0 0 46px;

    width: 46px;

    height: 46px;

    display: flex;

    align-items: center;

    justify-content: center;

    color: var(--soumettre-green);

    background: var(--soumettre-green-light);

    border-radius: 13px;

    font-size: 18px;

}


.soumettre-form-card-heading h3 {

    margin: 0 0 3px;

    color: var(--soumettre-text);

    font-size: 18px;

    line-height: 1.2;

}


.soumettre-form-card-heading p {

    margin: 0;

    color: var(--soumettre-text-light);

    font-size: 12px;

    line-height: 1.4;

}


/* ==========================================================
   10. GRID
   ========================================================== */

.soumettre-form-grid {

    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 20px;

}


.soumettre-field {

    min-width: 0;

    display: flex;

    flex-direction: column;

}


.soumettre-field-full {

    grid-column: 1 / -1;

}


/* ==========================================================
   11. LABELS
   ========================================================== */

.soumettre-field label {

    margin-bottom: 8px;

    color: var(--soumettre-text);

    font-size: 13px;

    font-weight: 700;

}


.soumettre-field label .required {

    margin-left: 2px;

}


/* ==========================================================
   12. INPUTS
   ========================================================== */

.soumettre-field input,
.soumettre-field textarea,
.soumettre-field select {

    width: 100%;

    min-height: 50px;

    padding: 13px 15px;

    color: var(--soumettre-text);

    background: #fff;

    border: 1px solid var(--soumettre-border);

    border-radius: 11px;

    outline: none;

    font-family: inherit;

    font-size: 14px;

    transition:
        border-color 0.2s ease,
        box-shadow 0.2s ease,
        background 0.2s ease;

}


.soumettre-field textarea {

    min-height: 130px;

    resize: vertical;

    line-height: 1.55;

}


.soumettre-field select {

    cursor: pointer;

}


.soumettre-field input::placeholder,
.soumettre-field textarea::placeholder {

    color: #a2a59d;

}


.soumettre-field input:hover,
.soumettre-field textarea:hover,
.soumettre-field select:hover {

    border-color: #c5c9bc;

}


.soumettre-field input:focus,
.soumettre-field textarea:focus,
.soumettre-field select:focus {

    border-color: var(--soumettre-green);

    box-shadow:
        0 0 0 3px rgba(110, 131, 83, 0.13);

}


.soumettre-field .field-error {

    border-color: var(--soumettre-error) !important;

    box-shadow:
        0 0 0 3px rgba(163, 72, 61, 0.10) !important;

}


/* ==========================================================
   13. COORDONNÉES
   ========================================================== */

.soumettre-coordinates-info {

    margin-bottom: 20px;

    padding: 13px 15px;

    display: flex;

    align-items: flex-start;

    gap: 10px;

    color: var(--soumettre-text-light);

    background: var(--soumettre-cream);

    border-radius: 10px;

    font-size: 12px;

    line-height: 1.5;

}


.soumettre-coordinates-info i {

    flex: 0 0 auto;

    margin-top: 2px;

    color: var(--soumettre-green);

}


/* ==========================================================
   14. ACTIONS
   ========================================================== */

.soumettre-form-actions {

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 15px;

    padding-top: 5px;

}


.soumettre-cancel-button,
.soumettre-submit-button {

    min-height: 52px;

    display: inline-flex;

    align-items: center;

    justify-content: center;

    gap: 9px;

    padding: 13px 24px;

    border-radius: 50px;

    font-family: inherit;

    font-size: 14px;

    font-weight: 700;

    text-decoration: none;

    cursor: pointer;

    transition:
        transform 0.2s ease,
        box-shadow 0.2s ease,
        background 0.2s ease,
        border-color 0.2s ease;

}


.soumettre-cancel-button {

    color: var(--soumettre-brown);

    background: transparent;

    border: 1px solid var(--soumettre-border);

}


.soumettre-cancel-button:hover {

    background: var(--soumettre-white);

    border-color: #c9c5b9;

    transform: translateY(-1px);

}


.soumettre-submit-button {

    color: #fff;

    background: var(--soumettre-green);

    border: 1px solid var(--soumettre-green);

    box-shadow:
        0 7px 18px rgba(110, 131, 83, 0.22);

}


.soumettre-submit-button:hover {

    background: var(--soumettre-green-dark);

    border-color: var(--soumettre-green-dark);

    transform: translateY(-1px);

    box-shadow:
        0 10px 24px rgba(85, 103, 63, 0.25);

}


.soumettre-cancel-button:focus-visible,
.soumettre-submit-button:focus-visible {

    outline: 3px solid rgba(110, 131, 83, 0.25);

    outline-offset: 3px;

}


/* ==========================================================
   15. HONEYPOT
   ========================================================== */

.soumettre-honeypot {

    position: absolute;

    left: -9999px;

    width: 1px;

    height: 1px;

    overflow: hidden;

}


/* ==========================================================
   16. TABLETTE
   ========================================================== */

@media (min-width: 769px) and (max-width: 991px) {

    .hero-inner {

        width: calc(100% - 40px);

        gap: 25px;

    }


    .hero-free {

        flex: 0 0 220px;

    }


    .hero-free img {

        width: 220px;

    }


    .soumettre-ecole-main {

        width: calc(100% - 40px);

    }


    .soumettre-intro {

        padding-top: 55px;

    }


    .soumettre-form-card {

        padding: 24px;

    }

}


/* ==========================================================
   17. MOBILE
   ========================================================== */

@media (max-width: 768px) {

    /* ------------------------------------------
       HERO
       ------------------------------------------ */

    .hero-inner {

        width: calc(100% - 28px);

        height: 190px;

        min-height: 190px;

        gap: 12px;

        padding: 0;

    }


    .hero-content {

        min-width: 0;

    }


    .hero-content > p:first-child {

        top: 10px;

        margin-bottom: 10px;

        font-size: 11px;

        line-height: 1.35;

    }


    .hero-content h1 {

        margin-bottom: 6px;

        font-size: clamp(
            1.65rem,
            7vw,
            2.2rem
        );

        line-height: 1.05;

    }


    .hero-content p {

        margin-bottom: 8px;

        font-size: 11px;

        line-height: 1.35;

    }


    .hero-free {

        flex: 0 0 125px;

    }


    .hero-free img {

        width: 125px;

    }


    /* ------------------------------------------
       PAGE
       ------------------------------------------ */

    .soumettre-ecole-page {

        padding-bottom: 125px;

    }


    .soumettre-ecole-main {

        width: calc(100% - 28px);

    }


    /* ------------------------------------------
       INTRO
       ------------------------------------------ */

    .soumettre-intro {

        padding: 45px 0 28px;

    }


    .soumettre-eyebrow {

        font-size: 11px;

        letter-spacing: 0.10em;

    }


    .soumettre-title {

        font-size: clamp(
            1.75rem,
            8vw,
            2.3rem
        );

    }


    .soumettre-subtitle {

        font-size: 14px;

        line-height: 1.55;

    }


    .soumettre-note {

        padding: 15px;

        gap: 11px;

    }


    .soumettre-note p {

        font-size: 12px;

    }


    /* ------------------------------------------
       MESSAGES
       ------------------------------------------ */

    .soumettre-message {

        padding: 16px;

        gap: 11px;

    }


    .soumettre-message-icon {

        flex-basis: 36px;

        width: 36px;

        height: 36px;

        font-size: 15px;

    }


    .soumettre-message strong {

        font-size: 14px;

    }


    .soumettre-message p,
    .soumettre-message li {

        font-size: 12px;

    }


    /* ------------------------------------------
       SECTION
       ------------------------------------------ */

    .soumettre-section-heading {

        margin-bottom: 20px;

    }


    .soumettre-section-heading h2 {

        font-size: 1.55rem;

    }


    /* ------------------------------------------
       CARDS
       ------------------------------------------ */

    .soumettre-form-card {

        margin-bottom: 16px;

        padding: 19px;

        border-radius: 15px;

    }


    .soumettre-form-card-heading {

        gap: 11px;

        margin-bottom: 20px;

    }


    .soumettre-form-card-icon {

        flex-basis: 40px;

        width: 40px;

        height: 40px;

        font-size: 16px;

        border-radius: 11px;

    }


    .soumettre-form-card-heading h3 {

        font-size: 16px;

    }


    .soumettre-form-card-heading p {

        font-size: 11px;

    }


    /* ------------------------------------------
       FORM
       ------------------------------------------ */

    .soumettre-form-grid {

        grid-template-columns: 1fr;

        gap: 16px;

    }


    .soumettre-field-full {

        grid-column: auto;

    }


    .soumettre-field input,
    .soumettre-field textarea,
    .soumettre-field select {

        min-height: 48px;

        padding: 12px 13px;

        font-size: 14px;

    }


    .soumettre-field textarea {

        min-height: 115px;

    }


    /* ------------------------------------------
       ACTIONS
       ------------------------------------------ */

    .soumettre-form-actions {

        flex-direction: column-reverse;

        align-items: stretch;

        gap: 10px;

        padding-top: 3px;

    }


    .soumettre-cancel-button,
    .soumettre-submit-button {

        width: 100%;

        min-height: 50px;

    }

}


/* ==========================================================
   18. PETITS TÉLÉPHONES
   ========================================================== */

@media (max-width: 380px) {

    .hero-inner {

        width: calc(100% - 20px);

        gap: 8px;

    }


    .hero-content > p:first-child {

        top: 10px;

        font-size: 10px;

    }


    .hero-content h1 {

        font-size: 1.5rem;

    }


    .hero-content p {

        font-size: 10px;

    }


    .hero-free {

        flex: 0 0 105px;

    }


    .hero-free img {

        width: 105px;

    }


    .soumettre-ecole-main {

        width: calc(100% - 20px);

    }


    .soumettre-intro {

        padding-top: 38px;

    }


    .soumettre-form-card {

        padding: 16px;

    }


    .soumettre-note {

        padding: 13px;

    }


}


/* ==========================================================
   19. ACCESSIBILITÉ
   ========================================================== */

@media (prefers-reduced-motion: reduce) {

    .soumettre-field input,
    .soumettre-field textarea,
    .soumettre-field select,
    .soumettre-cancel-button,
    .soumettre-submit-button {

        transition: none;

    }

}


/* ==========================================================
   20. ÉVITER LE DÉBORDEMENT HORIZONTAL
   ========================================================== */

.soumettre-ecole-page,
.soumettre-ecole-main,
.soumettre-form,
.soumettre-form-card {

    max-width: 100%;

}


.soumettre-field input,
.soumettre-field textarea,
.soumettre-field select {

    max-width: 100%;

}