/* --- Variables et Reset --- */
:root {
    --primary-pink: #d92d84;
    --dark-grey: #01682B;
    --medium-grey: #555;
    --light-grey: #f5f5f5;
    --font-primary: 'Inter', sans-serif;
}

* { margin: 0; padding: 0; box-sizing: border-box; }
body { font-family: var(--font-primary); }

/* --- Header --- */
.site-header {
    background: #fff;
    padding: 1rem 5%;
    border-bottom: 1px solid #eee;
}
.header-container {
    max-width: 1400px;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.logo img { 
    height: 70px; /* Augmentez la hauteur à 60px ou ajustez selon vos besoins */
}
.main-nav ul { list-style: none; display: flex; gap: 2rem; }
.main-nav a { text-decoration: none; color: var(--dark-grey); font-weight: 600; }
.header-actions { display: flex; gap: 0.8rem; }
.btn {
    padding: 0.7rem 1.5rem;
    text-decoration: none;
    border-radius: 50px;
    font-weight: 600;
    transition: opacity 0.3s ease;
}
.btn:hover { opacity: 0.8; }
.btn-dark { background: var(--dark-grey); color: #fff; }
.btn-primary { background: var(--primary-pink); color: #fff; }

/* --- Hero Section --- */
.hero-section {
    display: flex;
    align-items: center;
    padding: 4rem 4%;
    min-height: 70vh;
    max-width: 1400px;
    margin: 0 auto;
    background-image: url('assets/IMG_0848.JPG');
    background-size: cover;
    background-position: center;
    
}
.hero-text { flex: 1; padding-right: 1rem; }
.hero-text h1 {
    font-size: 5rem;
    font-weight: 800;
    line-height: 1.1;
    color: var(--dark-grey);
}
.hero-image { flex: 1.2; }
.hero-image img { width: 70%; height: 70%; border-radius: 8px; }

/* --- Barre d'actions flottante --- */
.action-bar {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    background: #fff;
    border-top: 1px solid #eee;
    padding: 0.8rem 5%;
    z-index: 1000;
}
.action-bar-container {
    max-width: 1400px;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.floating-icons { position: relative; display: flex; }
.icon-bubble {
    width: 60px; height: 60px;
    background: var(--primary-pink);
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    color: #fff;
    font-size: 1.5rem;
    box-shadow: 0 5px 15px rgba(0,0,0,0.1);
    transform: translateY(-40%);
    transition: transform 0.3s ease;
}
.icon-bubble:hover { transform: translateY(-50%) scale(1.05); }
.icon-check {
    width: 40px; height: 40px;
    font-size: 1.2rem;
    margin-left: -15px;
    align-self: flex-end; /* Aligne en bas du flex container */
}

.action-buttons { display: flex; gap: 0.8rem; }
.btn-action {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.7rem 1.2rem;
    text-decoration: none;
    border-radius: 50px;
    font-weight: 600;
    background: var(--dark-grey);
    color: #fff;
    transition: opacity 0.3s ease;
}
.btn-action:hover { opacity: 0.8; }
.btn-action i { font-size: 1rem; }

/* --- RESPONSIVITÉ --- */
.hamburger-menu { display: none; }

@media (max-width: 1200px) {
    .main-nav { display: none; }
    .header-actions { display: none; }
    .hamburger-menu {
        display: block;
        background: none; border: none; font-size: 1.8rem; cursor: pointer;
    }
    .main-nav.active, .header-actions.active {
        display: flex;
        flex-direction: column;
        position: absolute;
        top: 80px; /* Hauteur de l'en-tête */
        left: 0;
        width: 100%;
        background: #fff;
        padding: 1rem;
        box-shadow: 0 5px 10px rgba(0,0,0,0.1);
    }
    .main-nav.active ul { flex-direction: column; width: 100%; }
    .main-nav.active li { padding: 1rem; border-bottom: 1px solid #f0f0f0; text-align: center; }
    .header-actions.active { top: calc(80px + 6 * 57px); } /* Positionner sous le menu */
}

@media (max-width: 992px) {
    .hero-section { flex-direction: column; text-align: center; }
    .hero-text { padding: 0 0 3rem 0; }
    .hero-text h1 { font-size: 3.5rem; }
    .action-buttons .btn-action:not(:first-child):not(:last-child) { display: none; } /* Cache les boutons du milieu */
}

@media (max-width: 768px) {
    .hero-text h1 { font-size: 2.5rem; }
    .action-bar-container { justify-content: center; }
    .action-buttons .btn-action span { display: none; /* Ne montre que les icônes */ }
    .btn-action { padding: 0.7rem; width: 45px; height: 45px; justify-content: center; }
    .floating-icons { display: none; /* Cache les icônes flottantes pour plus de place */ }
}

/* --- Section Modalités Financières (Condé) --- */
.fees-section-conde {
    padding: 80px 5%;
    background-color: var(--light-grey); /* Fond gris clair pour contraster avec le blanc */
}

.fees-container {
    max-width: 900px;
    margin: 0 auto;
}

.fees-grid {
    display: grid;
    /* Deux colonnes de largeur égale */
    grid-template-columns: 1fr 1fr;
    gap: 2rem; /* Espace entre les cartes */
}

.fee-card {
    background-color: #fff;
    padding: 2.5rem;
    border-radius: 12px;
    border: 1px solid #eee;
    text-align: center;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.fee-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 15px 30px rgba(0, 0, 0, 0.08);
}

.fee-icon-conde {
    font-size: 2.5rem;
    color: var(--dark-grey); /* Utilisation du rose de la marque */
    margin-bottom: 1.5rem;
}

.fee-card h4 {
    font-size: 1.2rem;
    font-weight: 700;
    color: var(--dark-grey);
    margin-bottom: 1rem;
}

.fee-price-conde {
    font-size: 2.8rem;
    font-weight: 800; /* Poids très gras pour l'impact */
    color: var(--dark-grey);
    line-height: 1.1;
}



.fee-prefix-conde {
    display: block;
    font-size: 1rem;
    font-weight: 400;
    color: var(--medium-grey);
    margin-bottom: 0.5rem;
}

.fee-price-conde small {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--medium-grey);
}

.whatsapp-button {
    position: fixed;
    bottom: 20px;
    right: 20px;
    z-index: 1000;
  }
  
  .whatsapp-button a {
    display: inline-block;
    padding: 0.3rem 0.3rem;
    background-color: #25D366;
    color: var(--white);
    text-decoration: none;
    border-radius: 50px;
    box-shadow: 0 4px 6px rgba(0,0,0,0.1);
    transition: all 0.3s;
  }
  
  .whatsapp-button a:hover {
    transform: translateY(-3px);
    box-shadow: 0 6px 8px rgba(0,0,0,0.2);
  }




/* --- RESPONSIVITÉ pour cette section --- */
@media (max-width: 768px) {
    .fees-grid {
        /* Passe en une seule colonne sur mobile */
        grid-template-columns: 1fr;
    }
    .fees-section-conde {
        padding: 60px 5%;
    }
}

/* --- Section Showcase des Formations (Condé) --- */
.formations-showcase {
    padding: 100px 5%;
    background-color: #fff; /* Fond blanc pour alterner avec le gris */
    background-image: url('assets/hero-shape-2.png');
}

.section-header-conde {
    text-align: center;
    max-width: 800px;
    margin: 0 auto 4rem auto;
}
.section-header-conde h2 {
    font-size: 2.8rem;
    font-weight: 800;
    color: var(--dark-grey);
    margin-bottom: 1rem;
}
.section-header-conde p {
    font-size: 1.1rem;
    color: var(--medium-grey);
    line-height: 1.6;
}

.formations-grid {
    display: grid;
    /* Grille responsive : autant de colonnes de 300px que possible */
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 2rem;
}

.formation-card {
    background-color: var(--light-grey);
    padding: 2rem;
    border-radius: 8px;
    border-left: 5px solid var(--primary-pink); /* Liseré rose pour la touche de marque */
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.formation-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.08);
}

.formation-card i {
    font-size: 2.2rem;
    color: var(--primary-pink);
    margin-bottom: 1.5rem;
}

.formation-card h4 {
    font-size: 1.3rem;
    font-weight: 700;
    color: var(--dark-grey);
    margin-bottom: 0.8rem;
}

.formation-card p {
    font-size: 0.95rem;
    color: var(--medium-grey);
    line-height: 1.7;
}


/* --- RESPONSIVITÉ --- */
@media (max-width: 768px) {
    .formations-showcase {
        padding: 60px 5%;
    }
    .section-header-conde h2 {
        font-size: 2.2rem;
    }
}

/* --- Section Tableau des Diplômes --- */
.diplomes-table-section {
    padding: 100px 5%;
    background-color: var(--light-grey);
    background-image: url('assets/about-shape-3.png');
}

.table-container {
    max-width: 1200px;
    margin: 0 auto;
    background-color: #fff;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    overflow: hidden;
}

.table-title-bar {
    background-color: var(--dark-grey);
    padding: 0.8rem 2rem;
}
.table-title-bar h4 {
    color: #fff;
    font-weight: 700;
    font-size: 1.1rem;
}

.diplomes-grid {
    display: grid;
    grid-template-columns: 1fr 1.5fr 1fr 1fr 1fr;
    gap: 1rem; /* Ajout d'un espace entre les cellules */
}

.grid-header, .grid-cell {
    padding: 1.2rem;
    border-bottom: 1px solid #e0e0e0;
    border-right: 1px solid #e0e0e0;
    display: flex;
    align-items: center;
    justify-content: center; /* Centrer le contenu */
}
.grid-header:last-child, .grid-cell:last-child {
    border-right: none;
}
/* Supprime la bordure du bas pour la dernière ligne */
.diplomes-grid .grid-cell:nth-last-child(-n+5) {
    border-bottom: none;
}

.grid-header {
    background-color: #f9f9f9;
    font-weight: 700;
    color: var(--dark-grey);
}

.grid-cell {
    color: var(--medium-grey);
    font-size: 0.95rem;
    line-height: 1.5;
}
.grid-cell.price {
    font-weight: 700;
    color: var(--dark-grey);
}

/* --- RESPONSIVITÉ pour le tableau --- */
@media (max-width: 992px) {
    .diplomes-grid {
        grid-template-columns: 1fr; /* Passe en une seule colonne sur tablette */
        gap: 1.5rem; /* Ajoute de l'espace entre les cartes */
    }
    .grid-header {
        display: none; /* Cache les en-têtes de colonnes */
    }
    .grid-cell {
        display: block; /* Transforme les cellules en blocs */
        padding: 1rem;
        border: 1px solid #e0e0e0;
        border-radius: 8px;
        text-align: center; /* Centre le texte */
    }
    .grid-cell:nth-child(5n+1) {
        border-top: 5px solid var(--primary-pink);
        margin-top: 1.5rem;
    }
}

@media (max-width: 768px) {
    .diplomes-table-section {
        padding: 60px 5%; /* Réduit le padding sur mobile */
    }
    .grid-cell {
        font-size: 0.85rem; /* Réduit la taille du texte sur mobile */
    }
}

/* --- Rappel du CSS qui stylise VOS DEUX tableaux --- */
.diplomes-table-section {
    padding: 100px 5%;
    background-color: var(--light-grey);
}

.table-container {
    max-width: 1200px;
    margin: 0 auto;
    background-color: #fff;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    overflow: hidden;
}

.table-title-bar {
    background-color: var(--dark-grey);
    padding: 0.8rem 2rem;
}
.table-title-bar h4 {
    color: #fff;
    font-weight: 700;
    font-size: 1.1rem;
}

.diplomes-grid {
    display: grid;
    grid-template-columns: 1fr 1.5fr 1fr 1fr 1fr;
}

.grid-header, .grid-cell {
    padding: 1.2rem;
    border-bottom: 1px solid #e0e0e0;
    border-right: 1px solid #e0e0e0;
    display: flex;
    align-items: center;
}
.grid-header:last-child, .grid-cell:last-child {
    border-right: none;
}
/* Supprime la bordure du bas pour la dernière ligne de chaque tableau */
.diplomes-grid .grid-cell:nth-last-child(-n+5) {
    border-bottom: none;
}

.grid-header {
    background-color: #f9f9f9;
    font-weight: 700;
    color: var(--dark-grey);
}

.grid-cell {
    color: var(--medium-grey);
    font-size: 0.95rem;
    line-height: 1.5;
}
.grid-cell.price {
    font-weight: 700;
    color: var(--dark-grey);
}

/* --- RESPONSIVITÉ (s'applique aux deux tableaux) --- */
@media (max-width: 992px) {
    .diplomes-grid { display: block; }
    .grid-header { display: none; }
    .grid-cell {
        display: grid;
        grid-template-columns: 120px 1fr;
        gap: 1rem;
        border-right: none;
        padding-left: 1rem;
        padding-right: 1rem;
        text-align: right;
    }
    .grid-cell::before {
        content: attr(data-label);
        font-weight: 700;
        color: var(--dark-grey);
        text-align: left;
    }
    .grid-cell:nth-child(5n+1) { border-top: 5px solid var(--primary-pink); margin-top: 1.5rem; }
    .grid-cell:nth-child(5n+2),
    .grid-cell:nth-child(5n+3),
    .grid-cell:nth-child(5n+4),
    .grid-cell:nth-child(5n+5) { border-bottom: 1px solid #f0f0f0; }
}

/* --- Section Où nous trouver (ESM) --- */
.location-section-esm {
    padding: 100px 5%;
    background-color: #fff;
    background-image: url('assets/about-shape-3.png');
}

.section-header-esm {
    text-align: center;
    max-width: 700px;
    margin: 0 auto 4rem;
}
.section-header-esm h2 {
    font-size: 2.8rem;
    font-weight: 700;
    color: var(--dark-blue);
    margin-bottom: 1rem;
}
.section-header-esm p {
    font-size: 1.1rem;
    color: var(--medium-grey);
    line-height: 1.6;
}

.location-grid-esm {
    max-width: 1200px;
    margin: 0 auto;
    display: grid;
    /* La carte prend un peu plus de place que le texte */
    grid-template-columns: 1fr 1.5fr;
    gap: 4rem;
    align-items: center;
}

.contact-info-block-esm h4 {
    font-size: 1.8rem;
    font-weight: 600;
    color: var(--dark-blue);
    margin-bottom: 2rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid #eee;
}

.info-item-esm {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    margin-bottom: 2rem;
}

.info-icon {
    flex-shrink: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 45px;
    height: 45px;
    background-color: var(--primary-blue);
    color: #fff;
    border-radius: 50%;
    font-size: 1.2rem;
}

.info-item-esm strong {
    display: block;
    font-weight: 700;
    color: var(--dark-blue);
    margin-bottom: 0.25rem;
}

.info-item-esm p {
    color: var(--text-grey);
    font-size: 1rem;
    margin: 0;
}

.map-block-esm {
    height: 500px;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 15px 40px rgba(0, 51, 160, 0.15);
}

.map-block-esm iframe {
    width: 100%;
    height: 100%;
    border: 0;
}


/* --- RESPONSIVITÉ pour la section localisation --- */
@media (max-width: 992px) {
    .location-grid-esm {
        /* Passe en une seule colonne sur tablette/mobile */
        grid-template-columns: 1fr;
    }
    .contact-info-block-esm {
        /* Ajoute une marge en bas pour espacer de la carte */
        margin-bottom: 2rem;
    }
}

@media (max-width: 768px) {
    .location-section-esm {
        padding: 60px 5%;
    }
    .section-header-esm h2 {
        font-size: 2.2rem;
    }
    .map-block-esm {
        height: 400px; /* Réduit la hauteur de la carte sur mobile */
    }
}

/* --- Footer Final (Green) --- */
.main-footer-green {
    background-color: #01682B; /* Votre couleur verte personnalisée */
    color: #fff;
    padding: 80px 5% 0;
    font-size: 0.9rem;
}

.footer-container {
    max-width: 1200px;
    margin: 0 auto;
    display: grid;
    /* Crée 3 colonnes de largeur égale */
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
    padding-bottom: 4rem;
}

.footer-column h4 {
    font-size: 1rem;
    font-weight: 700;
    text-transform: uppercase;
    margin-bottom: 1.5rem;
    color: #fff;
}

.footer-column p {
    color: #d0e0d8; /* Un gris-vert très clair pour le texte */
    margin-bottom: 1.5rem;
}

.footer-social-icons {
    display: flex;
    gap: 1rem;
}

.footer-social-icons a {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 40px;
    height: 40px;
    background-color: rgba(0, 0, 0, 0.4); /* Noir semi-transparent */
    color: #fff;
    border-radius: 50%;
    text-decoration: none;
    transition: background-color 0.3s ease;
}

.footer-social-icons a:hover {
    background-color: rgba(0, 0, 0, 0.6);
}

.footer-links {
    list-style: none;
    padding: 0;
}

.footer-links li {
    margin-bottom: 1rem;
}

.footer-links a {
    text-decoration: none;
    color: #d0e0d8; /* Gris-vert clair pour les liens */
    transition: color 0.3s ease;
}

.footer-links a:hover {
    color: #fff; /* Blanc pur au survol */
}

.footer-bottom {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1.5rem 0;
    border-top: 1px solid rgba(255, 255, 255, 0.1); /* Ligne blanche très subtile */
    font-size: 0.8rem;
    color: #d0e0d8;
}


/* --- RESPONSIVITÉ pour le Footer --- */
@media (max-width: 992px) {
    .footer-container {
        /* Passe en 1 colonne sur tablette et mobile pour plus de clarté */
        grid-template-columns: 1fr;
        text-align: center;
    }
    .footer-social-icons {
        justify-content: center;
    }
}

@media (max-width: 768px) {
    .main-footer-green {
        padding-top: 60px;
    }
    .footer-bottom {
        flex-direction: column;
        gap: 1rem;
    }
}