/* static/css/style.css */

/* --- FONTS IMPORT --- */

@font-face {
    font-family: 'Lora';
    src: url('../fonts/Lora-VariableFont_wght.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
}

@font-face {
    font-family: 'Montserrat';
    src: url('../fonts/Montserrat-VariableFont_wght.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
}

@font-face {
    font-family: 'Playfair Display';
    src: url('../fonts/Playfair-VariableFont_opsz,wdth,wght.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
}

@font-face {
    font-family: 'Roboto';
    src: url('../fonts/Roboto-VariableFont_wght,wght.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
}

/* --- RESPONSIVE --- */
@media (max-width: 768px) {
    .custom-navbar {
        background-color: #ffffff;
        padding: 1rem;
    }
    .nav--link {
        margin: 10px 0;
    }
}

/* --- STYLES GÉNÉRAUX --- */

body {
    font-family: 'Lora', serif; /* Police par défaut pour tout le site */
    color: #2c3e50;
    line-height: 1.6;
}

/* --- CONFIGURATION DU HEADER --- */

/* État initial (Accueil) */
.custom-navbar {
    background-color: transparent;
    padding: 1.5rem 0;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

/* État au Scroll (JS) OU Page secondaire (CSS) */
.custom-navbar.scrolled,
body.sub-page .custom-navbar {
    background-color: rgba(255, 255, 255, 0.98) !important; /* Blanc forcé */
    padding: 0.8rem 0 !important; /* Hauteur réduite */
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08) !important;
    border-bottom: 1px solid #eee !important;
}

/* On s'assure que les liens sont toujours sombres sur les pages secondaires */
body.sub-page .nav--link {
    color: #2c3e50 !important;
}

/* --- LE FIXE MAGIQUE POUR LE CONTENU --- */
body.sub-page {
    padding-top: 80px; /* Pousse tout le contenu vers le bas pour laisser la place au header */
}

/* Ajustement des liens selon l'état */
.custom-navbar.scrolled .nav--link {
    color: #2c3e50 !important;
}

/* Si le texte d'accueil est sombre, gardons les liens sombres au début aussi */
.nav--link {
    color: #2c3e50 !important; 
}

/* --- BRAND (Logo) --- */
.navbar--brand {
    font-family: 'Montserrat', sans-serif;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 2px;
    font-size: 1.1rem;
    color: #2c3e50;
    text-decoration: none;
}

.navbar--brand span {
    font-weight: 300; /* Contraste d'épaisseur pour un look moderne */
    color: #3498db;
}

/* --- NAVIGATION --- */
.nav--link {
    font-family: 'Montserrat', sans-serif;
    color: #2c3e50 !important; /* Forçage de la couleur avec style */
    font-size: 13px;
    font-weight: 600;
    text-transform: uppercase;
    text-decoration: none;
    letter-spacing: 1px;
    margin: 0 15px;
    padding: 5px 0;
    position: relative;
    transition: color 0.3s ease;
}

/* Barre animée au survol */
.nav--link::after {
    content: '';
    position: absolute;
    width: 0;
    height: 2px;
    bottom: 0;
    left: 0;
    background-color: #3498db;
    transition: width 0.3s ease;
}

.nav--link:hover::after, 
.nav--link.active::after {
    width: 100%;
}

.nav--link:hover {
    color: #3498db !important;
}

.btn-contact {
    background-color: #3498db;
    color: white !important;
    padding: 8px 20px !important;
    border-radius: 50px; /* Bord arrondi style pilule */
    margin-left: 15px;
    transition: transform 0.2s, background-color 0.3s !important;
}

.btn-contact:hover {
    background-color: #2980b9;
    transform: translateY(-2px); /* Petit saut au survol */
}

/* Empêcher le trait de soulignement sous le bouton bleu de contact */
.nav--link.btn-contact::after {
    display: none !important;
}

/* Style spécifique quand on est sur la page contact (état actif) */
.sub-page .nav--link.active.btn-contact {
    background-color: #2c3e50; /* Couleur plus foncée pour montrer qu'on y est */
    color: #ffffff !important;
}

/* On retire la barre animée sous le bouton contact */
.btn-contact::after {
    display: none;
}

/* --- CONTENU --- */

/* Texte des articles et descriptions */
p, .article-content {
    font-family: 'Lora', serif;
    font-weight: 400;
    font-size: 1.1rem;
}

/* Petites infos (ex: Date de publication, Auteur) */
.text-muted, .meta-info {
    font-family: 'Montserrat', sans-serif;
    font-size: 0.85rem;
    font-weight: 400;
}


/* --- SECTION HISTOIRE --- */

.section-histoire {
    background-color: #ffffff;
    overflow: hidden;
}

/* Typographie spécifique */
.letter-spacing-2 {
    font-family: 'Montserrat', sans-serif;
    letter-spacing: 3px;
    font-size: 0.8rem;
    color: #3498db !important;
}

.section-title {
    font-family: 'Playfair Display', serif;
    font-weight: 900;
    color: #2c3e50;
}

.section-title span {
    font-style: italic;
    font-weight: 400;
    color: #3498db;
}

.lead-text {
    font-family: 'Lora', serif;
    font-size: 1.2rem;
    color: #2c3e50;
    font-style: italic;
    border-left: 3px solid #3498db;
    padding-left: 20px;
}

.body-text {
    font-family: 'Lora', serif;
    color: #7f8c8d;
    line-height: 1.8;
}

/* --- EFFETS D'IMAGE PREMIUM --- */

.image-stack {
    position: relative;
    padding: 20px;
}

.main-img {
    border-radius: 4px;
    transition: transform 0.5s ease;
}

.image-stack:hover .main-img {
    transform: scale(1.02);
}

/* Le petit badge flottant qui fait la différence */
.experience-badge {
    position: absolute;
    bottom: -20px;
    right: 0;
    background-color: #2c3e50;
    color: white;
    padding: 30px;
    display: flex;
    flex-direction: column;
    align-items: center;
    box-shadow: 10px 10px 30px rgba(0,0,0,0.1);
    z-index: 2;
}

.experience-badge .number {
    font-family: 'Playfair Display', serif;
    font-size: 2.5rem;
    font-weight: 900;
    line-height: 1;
}

.experience-badge .text {
    font-family: 'Montserrat', sans-serif;
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 1px;
}

/* --- BOUTON OUTLINE --- */

.btn-outline-premium {
    font-family: 'Montserrat', sans-serif;
    font-weight: 600;
    text-transform: uppercase;
    font-size: 0.8rem;
    letter-spacing: 2px;
    color: #2c3e50;
    text-decoration: none;
    border: 2px solid #2c3e50;
    padding: 12px 30px;
    transition: all 0.3s ease;
    display: inline-block;
}

.btn-outline-premium:hover {
    background-color: #2c3e50;
    color: #ffffff;
}

/* --- SECTION PAIEMENT --- */

.section-paiement {
    background-color: #f8f9fa; /* Gris très clair pour détacher la section */
}

.payment-wrapper {
    border-radius: 12px;
    overflow: hidden; /* Pour que les bords arrondis s'appliquent aux colonnes */
    background: white;
}

.bg-dark-blue {
    background-color: #2c3e50;
    position: relative;
}

.title-light {
    font-family: 'Playfair Display', serif;
    font-weight: 700;
}

.title-light span {
    font-weight: 400;
    font-style: italic;
    color: #3498db;
}

.lora-italic {
    font-family: 'Lora', serif;
    font-style: italic;
}

/* --- BOUTON DE PAIEMENT --- */

.btn-pay-now {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background-color: #3498db;
    color: white;
    text-decoration: none;
    font-family: 'Montserrat', sans-serif;
    font-weight: 600;
    padding: 18px 30px;
    border-radius: 4px;
    transition: all 0.3s ease;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.btn-pay-now:hover {
    background-color: #2c3e50;
    color: white;
    transform: translateY(-3px);
    box-shadow: 0 10px 20px rgba(52, 152, 219, 0.3);
}

/* --- MÉTHODES DE PAIEMENT --- */

.payment-methods img {
    filter: grayscale(100%);
    opacity: 0.6;
    transition: all 0.3s ease;
}

.payment-methods img:hover {
    filter: grayscale(0%);
    opacity: 1;
    transform: scale(1.1);
}

.security-icons {
    font-family: 'Montserrat', sans-serif;
    font-size: 0.8rem;
    font-weight: 500;
    color: #3498db;
}

/* --- SECTION CONTACT --- */

.contact-info-box {
    border-radius: 8px;
}

.contact-list li {
    display: flex;
    align-items: center;
    margin-bottom: 20px;
    font-family: 'Montserrat', sans-serif;
    color: #2c3e50;
}

/* Rendre la carte Google Maps en nuances de gris pour un look pro */
.map-container iframe {
    filter: grayscale(100%) contrast(1.2) brightness(0.9);
    transition: filter 0.3s ease;
}

.map-container:hover iframe {
    filter: grayscale(0%); /* La couleur revient au survol */
}

/* Style des formulaires flottants */
.form-floating > .form-control {
    border: 1px solid #e9ecef;
    border-radius: 4px;
    font-family: 'Lora', serif;
}

.form-floating > .form-control:focus {
    border-color: #3498db;
    box-shadow: 0 0 0 0.25rem rgba(52, 152, 219, 0.1);
}

.form-floating > label {
    font-family: 'Montserrat', sans-serif;
    font-size: 0.9rem;
    color: #7f8c8d;
}

/* --- FOOTER PREMIUM --- */

.footer-premium {
    background-color: #2c3e50; /* Bleu nuit très foncé */
    color: #bdc3c7; /* Gris clair pour le texte */
}

.footer-title {
    font-family: 'Montserrat', sans-serif;
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
    font-size: 1rem;
}

.footer-links li {
    margin-bottom: 12px;
}

.footer-links a {
    text-decoration: none;
    color: #bdc3c7;
    font-family: 'Montserrat', sans-serif;
    font-size: 0.9rem;
    transition: color 0.3s ease, padding-left 0.3s ease;
}

.footer-links a:hover {
    color: #3498db;
    padding-left: 5px; /* Petit décalage au survol */
}

/* Style pour les inputs sombres du footer */
.form-control-dark {
    background-color: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.1);
    color: white;
}

.form-control-dark:focus {
    background-color: rgba(255, 255, 255, 0.2);
    border-color: #3498db;
    color: white;
    box-shadow: none;
}

.form-control-dark::placeholder {
    color: rgba(255, 255, 255, 0.5);
}

/* Hover sur les icônes sociales */
.hover-primary:hover {
    color: #3498db !important;
}

.border-top.border-secondary {
    border-color: rgba(255, 255, 255, 0.1) !important;
}

/* Style pour la page histoire.html et who_pay.html  */
/* --- STYLES HERO PAGES --- */
.hero-page {
    height: 60vh;
    background-size: cover;
    background-position: center;
}

.hero-page-sm {
    height: 30vh;
    margin-top: 0; /* CHANGEMENT ICI : On remet à 0 */
}
/* --- DIRIGEANTS CTA --- */
.dirigeants-cta {
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.dirigeants-cta:hover {
    transform: translateY(-5px);
    box-shadow: 0 15px 35px rgba(0,0,0,0.1);
}

/* --- CONTACT UI ELEMENTS --- */
.icon-circle {
    width: 50px;
    height: 50px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.2rem;
}
.premium-input {
    border: none !important;
    border-bottom: 1px solid #dee2e6 !important;
    border-radius: 0 !important;
    padding: 15px 5px !important;
    background-color: transparent !important;
    font-family: 'Lora', serif;
}

.premium-input:focus {
    border-bottom-color: #3498db !important;
    box-shadow: none !important;
}

/* --- ANIMATIONS IMAGES --- */
.img-fluid.rounded {
    transition: all 0.4s ease;
}

.img-fluid.rounded:hover {
    filter: brightness(1.1);
    transform: scale(1.02);
}

/* CSS pour les cartes des dirigeants */

/* --- LEADER CARDS --- */

.leader-card {
    background: #fff;
    border-radius: 0; /* Garder un look strict et pro */
    overflow: hidden;
    transition: all 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
    border-bottom: 3px solid transparent;
}

.leader-card:hover {
    transform: translateY(-10px);
    border-bottom: 3px solid #3498db;
}

.leader-card.current {
    border: 1px solid rgba(52, 152, 219, 0.2);
}

/* Image Wrapper & Service Date */
.leader-img-wrapper {
    position: relative;
    height: 350px;
    background-color: #f8f9fa;
    overflow: hidden;
}

.leader-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: grayscale(20%);
    transition: all 0.5s ease;
}

.leader-card:hover .leader-img {
    filter: grayscale(0%);
    transform: scale(1.05);
}

.service-date {
    position: absolute;
    bottom: 0;
    left: 0;
    background: #2c3e50;
    color: white;
    padding: 8px 15px;
    font-family: 'Montserrat', sans-serif;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 1px;
}

/* Placeholder quand il n'y a pas de photo */
.leader-img-wrapper.no-photo {
    background: linear-gradient(45deg, #f1f2f6, #dfe4ea);
    color: #ced4da;
    font-size: 4rem;
}

/* Texte sous la carte */
.leader-content {
    padding: 25px 15px;
}

.leader-name {
    font-family: 'Playfair Display', serif;
    font-weight: 700;
    color: #2c3e50;
    margin-bottom: 5px;
}

.leader-role {
    font-family: 'Montserrat', sans-serif;
    font-size: 0.8rem;
    text-transform: uppercase;
    color: #3498db;
    letter-spacing: 1px;
    margin-bottom: 0;
}

/* Ajustements Responsive */
@media (max-width: 768px) {
    .leader-img-wrapper {
        height: 400px;
    }
}

/* les paiements cards */

/* Style des champs de formulaire pour un look Premium (minimaliste) */
.form-control-lg, .form-select-lg {
    font-size: 1rem;
    padding: 1rem;
    transition: all 0.3s ease;
}

.form-control-lg:focus {
    background-color: #fff !important;
    border: 1px solid #3498db !important;
    box-shadow: 0 0 0 0.25rem rgba(52, 152, 219, 0.1);
}

/* Style des éléments de liste (méthodes de paiement) */
.list-group-item {
    cursor: pointer;
    transition: transform 0.2s ease, background-color 0.2s ease;
}

.list-group-item:hover {
    background-color: #f1f1f1 !important;
    transform: translateX(5px);
}

.form-check-input:checked + img + span {
    color: #3498db;
}
