/* =========================================================
   🎨 directory.css — Styles globaux pour SubjectList
   ========================================================= */

/* =========================================================
   🎨 VARIABLES GLOBALES (Design Tokens)
   ========================================================= */
:root {
    /* Couleurs principales */
    --color-primary: #278FE2;          /* Bleu principal utilisé pour titres/links */
    --color-primary-dark: #1e3d7b;     /* Bleu foncé au survol */
    --color-dark-blue: #092851;        /* Bleu foncé pour boutons non-actifs */
    --color-orange: #f28c00;           /* Orange accent / département */
    --color-accent: #f57c00;           /* autre orange (breadcrumbs) */

    /* Textes et fonds */
    --color-text-dark: #333;
    --color-text-medium: #444;
    --color-text-light: #999;
    --color-background-light: #e0e0e0;
    --color-background-off-white: #f1f1f1;
    --color-row-even: #ffffff;
    --color-row-odd: #eeeeee;
    --color-row-hover: #d7dff2;

    /* Espacement */
    --spacing-xs: 4px;
    --spacing-sm: 8px;
    --spacing-md: 15px;
    --spacing-lg: 20px;
    --spacing-xl: 30px;

    /* Rayons */
    --radius-sm: 5px;
    --radius-lg: 25px;

    /* Typographie */
    --font-family: 'Raleway', sans-serif;
    --font-size-sm: 12px;
    --font-size-md: 14px;
    --font-size-lg: 1.8rem;
}

/* =========================================================
   🧱 STRUCTURE GLOBALE
   ========================================================= */
* { box-sizing: border-box; }

body {
    margin: 0;
    padding-top: 0 !important;
    font-family: var(--font-family);
    color: var(--color-text-dark);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.contact-layout {
    display: flex;
    flex-direction: row;
    gap: var(--spacing-xl);
    width: min(90%, 1600px);
    box-sizing: border-box;
    margin: var(--spacing-md) auto;
    padding: 0 var(--spacing-lg);
    /*box-sizing: border-box;*/
    padding: 0 var(--spacing-lg);
    background-color: #fff;
}

.content-align-logo {
    margin-top: var(--spacing-xl);
}

h2 { color: rgba(40, 143, 226, 1); }

.form-container {
    /* 🔥 Le conteneur prend une partie définie de l'espace (ex: 65%) */
    flex: 0 1 65%;

    /* 🔥 Le conteneur lui-même est un Flexbox */
    display: flex;
    flex-direction: column;

    /* 🔥 Centrage vertical et horizontal du contenu du formulaire à l'intérieur de cette colonne */
    align-items: center; /* Centrage horizontal de la colonne */
    justify-content: center; /* Centrage vertical de la colonne */

    padding: 20px;
    color: #333;
    margin: 0; /* Suppression du centrage auto extérieur */
}
/* Le formulaire lui-même doit avoir une largeur maximale pour ne pas être trop large */
.form-container form {
    max-width: 80%; /* Limite la largeur du formulaire interne */
    width: 100%;
    display: flex;
    flex-direction: column;
}
.form-row {
    display: flex;
    gap: 5%;
}
.form-group {
    flex: 1;
    display: flex;
    flex-direction: column;
}
.form-container input
 {
    max-width: 100%;
    padding: 10px;
    margin: 5px 0 10px 0;
    border: 1px solid #ccc;
    border-bottom-right-radius: 25px;
}

.form-container textarea {
    max-width: 100%;
    min-height: 150px; /* 💥 Définit la hauteur minimale du champ à 150 pixels */
    resize: vertical;
    padding: 10px;
    margin: 5px 0 10px 0;
    border: 1px solid #ccc;
    border-bottom-right-radius: 25px;
}
.image-container {
    flex: 1 0 40%;

    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 20px;
    margin: 0;
    color: #333; /* Retirer si inutile */
}
.contact-illustration {
    max-width: 100%;
    height: auto;
    border-bottom-right-radius: 30px;
}

input.invalid {
    border: 2px solid red;
}
#email-error {
    color: red;
    font-size: 0.9em;
    margin-bottom: 15px;
    display: none;
}
#email-error.visible {
    display: block;
}
.form-container button {
    background-color: rgba(40, 143, 226, 1);
    transition: background-color 0.3s, transform 0.3s;
    color: white;
    padding: 10px 20px;
    border: none;
    cursor: pointer;
    width: 100%;
    max-width: 200px;
    /*margin: 20px auto 0 auto;*/
    text-transform: uppercase;
}

.form-container button:hover {
    background-color: rgba(22, 81, 156, 1);
}
.rouge { color: red; }

.rgpd-consent {
    width: 100%;
    max-width: 550px; /* Aligné sur la largeur de ton formulaire */
    margin: 20px 0;
}

.rgpd-consent label {
    display: flex;
    flex-direction: row; /* Checkbox à gauche, texte à droite */
    align-items: flex-start; /* Aligne la coche sur la première ligne de texte */
    gap: 12px;
    cursor: pointer;
}

.rgpd-text-wrapper {
    display: flex;
    flex-direction: column; /* Empile le texte et le lien "En savoir plus" */
    text-align: left;
}

.rgpd-main-text {
    font-size: 14px;
    color: #333;
    line-height: 1.4;
}

/* Style du lien "En savoir plus" par défaut (version PC et mobile) */
.rgpd-more-link {
    font-size: 11px;
    color: #278FE2; /* Couleur bleue par défaut */
    text-decoration: underline;
    font-style: italic;
    transition: color 0.3s ease; /* Ajoute une transition douce pour le changement de couleur */
}

/* Effet au survol du lien sur PC */
.rgpd-more-link:hover {
    color: #f28c00; /* La couleur orange au survol ! */
    text-decoration: underline; /* Assure que le soulignement reste visible */
}
/* Taille de la checkbox */
.rgpd-consent input[type="checkbox"] {
    width: 18px;
    height: 18px;
    flex-shrink: 0; /* Empêche la checkbox de s'écraser */
    margin: 0;
    cursor: pointer;
}


@media (max-width: 768px) {
    .scroll-down {
        display: none;
    }

    .form-row {
        flex-direction: column;
        gap: 0; /* L'espacement sera géré par les marges des inputs */
    }

    .contact-layout {
        flex-direction: column; /* Sécurité si l'image était restée */
        padding: 0 15px;
    }

    .breadcrumb-wrapper {
        margin: 70px auto 0 auto;
    }

    .image-container {
        display: none;
    }

    .form-container {
        padding: 10px;
        width: 100%;
        margin-left: 0; /* On retire le décalage de 5px */
    }

    /* 2. On s'assure que les inputs prennent toute la largeur sans déborder */
    .form-container input,
    .form-container textarea {
        width: 100%;
        font-size: 16px; /* Évite le zoom automatique sur iOS au clic */
    }

    /* 3. Ajustement du reCAPTCHA pour mobile */
    .g-recaptcha {
        transform: scale(0.85); /* On réduit un peu la taille */
        transform-origin: 0 0;
        margin-bottom: 15px;
    }

    /* 4. Texte RGPD plus lisible */
    .rgpd-consent {
        font-size: 13px;
        line-height: 1.4;
    }

    .page-title {
        font-size: 1.8em;
        text-align: center; /* Plus joli sur mobile */
        margin-top: 20px;
    }

    .breadcrumb-wrapper {
        margin-top: 85px; /* Ajusté pour ton nouveau header mobile */
    }

    .rgpd-consent {
        width: 100%; /* Prend toute la largeur du formulaire */
        text-align: left; /* Force l'alignement à gauche */
        margin: 15px 0;
        display: flex;
        align-items: flex-start; /* Aligne la checkbox en haut si le texte fait 2 lignes */
    }

    .rgpd-consent label {
        display: flex;
        align-items: flex-start;
        gap: 10px; /* Espace entre la case et le texte */
        cursor: pointer;
        font-size: 14px;
        color: #444;
        text-align: left; /* Sécurité supplémentaire */
    }

    .rgpd-text-container {
        display: flex;
        flex-direction: column; /* Force le texte et le lien à s'empiler */
        gap: 4px; /* Petit espace entre le texte et le lien */
    }

    .rgpd-main-text {
        font-size: 14px;
        line-height: 1.4;
        color: #333;
    }

    .rgpd-more-link {
        font-size: 11px; /* Plus petit caractère */
        color: #278FE2;
        text-decoration: underline;
        font-style: italic; /* Optionnel : pour bien le différencier */
    }

    .rgpd-more-link:hover {
        color: #1e3d7b;
    }

    /* On s'assure que la checkbox ne bouge pas */
    .rgpd-consent input[type="checkbox"] {
        width: 18px;
        height: 18px;
        margin-top: 2px; /* Ajustement vertical pour l'aligner à la 1ère ligne */
        flex-shrink: 0;
    }
}