/* ---------------- Polices de caractères (selon la charte graphique d'agence) ----------------- */

@font-face {
    font-family: 'Montserrat';
    src: url('fonts/Montserrat-Regular.ttf') format('truetype');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Montserrat';
    src: url('fonts/Montserrat-Italic.ttf') format('truetype');
    font-weight: 400;
    font-style: italic;
    font-display: swap;
}
@font-face {
    font-family: 'Montserrat';
    src: url('fonts/Montserrat-Bold.ttf') format('truetype');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Montserrat';
    src: url('fonts/Montserrat-BoldItalic.ttf') format('truetype');
    font-weight: 700;
    font-style: italic;
    font-display: swap;
}
@font-face {
    font-family: 'Montserrat';
    src: url('fonts/Montserrat-Black.ttf') format('truetype');
    font-weight: 900;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Montserrat';
    src: url('fonts/Montserrat-BlackItalic.ttf') format('truetype');
    font-weight: 900;
    font-style: italic;
    font-display: swap;
}
@font-face {
    font-family: 'Fatcat';
    src: url('fonts/Fatcat.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

/* ---------------------------------------------------------------------- */


/* --------------------------- BALISES GENERALES ------------------------ */
body {
    font-family: 'Montserrat', Arial, sans-serif;
    font-weight: 400;
    color: #1B1B3A;
    background: #ffffff;
    line-height: 1.6;
    overflow-x: hidden;
    margin: 0 0;
}
h1, h2, h3, h4 {
    margin-top: 1.5em;
    margin-bottom: 0.5em;
    color: #C62B4E;
    line-height: 1.2;
}
h1 {
    font-family: 'Fatcat', 'Montserrat', Arial, sans-serif;
    font-weight: normal;
    font-size: 3.5em;
    text-transform: uppercase;
    color: #C62B4E;
}
h2 {
    font-weight: 900;
    font-size: 2.6em;
    text-transform: uppercase;
    text-align: left;
    color: #CB4649;
    margin-bottom: 2em;
}
h3 {
    font-weight: 700;
    font-size: 1.8em;
    color: #D67D3E;
}
h4 {
    font-weight: 700;
    font-size: 1.5em;
    color: #CB4649;
}
p {
    font-size: 1.2em;
    margin-bottom: 1em;
}
strong {
    font-weight: 400;
}
/* -------------------------------------------------------- */



/* ----------------------- MENU DE NAVIGATION------------------------ */
.menu-nav {
    position: fixed;
    top:0;
    display: flex;
    align-items: center;
    background: #C62B4E;
    height: 5em;
    width: 100%;
    justify-content: space-between;
    padding: 0 3.75em;
    box-sizing: border-box;
    z-index: 100; /* Toujours au-dessus du contenu principal */
}
.menu-nav img {
    height: 2.5em;
    width: auto;
}
.menu-nav a, .menu-nav span {
    font-family: 'Fatcat', 'Montserrat', Arial, sans-serif;
    color: #ffffff;
    font-size: 1.2em;
    text-decoration: none;
    padding: 0 1.25em;
    display: flex;
    align-items: center;
    transition: color 0.2s;
}
.menu-nav a:hover,
.menu-nav a:focus, .menu-nav span {
    color: #1B1B3A;
}
/* -------------------------------------------------------- */


/* --------------------------- FOOTER --------------------- */
.footer-carrousel {
    background: #1B1B3A;
    color: #fff;
    padding: 40px 0 24px 0;
    margin-top: 5em;
}
.footer-content {
    display: flex; /* Répartir le logo, les infos et les liens */
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 100px;
    gap: 60px;
}
.footer-logo img {
    height: 100px;
    width: auto;
    display: block;
    margin-right: 60px;
    margin-top: 35px;
}
.footer-info {
    flex: 1 1 320px;
    font-size: 0.8em;
} 
.footer-info a {
    color: #fff;
    text-decoration: none;
    transition: color 0.2s;
}
.footer-info a:hover {
    color: #D67D3E;
}
.footer-links {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
}
.footer-links a {
    color: #ffffff;
    transition: color 0.2s;
    text-decoration: none;
    margin-top: 50%;
}
.footer-links a:hover {
    color: #D67D3E;
}

/* -------------------------------------------------------------------------- */


/* ----------------- PAGE D'ACCUEIL : Section principale --------------------- */
.hero-section {
    width: 100%;
    min-height: 100vh;
    background: url('img/bg1.png') center center/cover no-repeat;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 3em;  /* Espace entre le texte et l'image */
    text-align: left;
}
.hero-left {
    flex: 1;
}
.hero-section h1, .hero-section p {
    color: #ffffff;
    text-shadow: 0 2px 8px rgba(0,0,0,0.13);  /* Ombre légère pour améliorer la lisibilité sur le fond coloré */
    padding-left: 100px;
}
.hero-section h1 b {
    color: #1B1B3A;
    text-shadow: none;
}
.hero-section p b {
    font-size: 120%;
    text-shadow: none;
    font-weight: 900;
    text-transform: uppercase;
}
.hero-img-right {
    width: 400px;
    opacity: 0.8;
    padding-right: 50px;
}
/* ---------------------------------------------------------------------------- */


/* ----------------- PAGE D'ACCUEIL : Section ADN et Vidéo --------------------- */
.adn-section {
    display: flex; /* Pour mettre texte et vidéo côte à côte */
    align-items: stretch;
    padding-left: 100px;
}
.adn-text {
    padding: 4em 3em 4em 0;
    min-width: 22em;
    max-width: 35%;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.adn-text h2{
    margin-bottom: 0.5em;
}
.adn-video {
    background: url('img/bg2.png');
    flex: 1 1 0;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 0 0 0 50px; /* Arrondis à gauche seulement */
    padding: 8em 2em;
}
.adn-video iframe {
    border-radius: 18px;
    box-shadow: 0 2px 18px rgba(0,0,0,0.14);
}
/* --------------------------------------------------------------------------- */


/* ----------------- PAGE D'ACCUEIL : Section Nos Missions --------------------- */
.services {
    padding: 5.6em 100px;
}
.services h2 {
    color: #1B1B3A;
}
.services-row {
    display: flex;
    align-items: center;
    gap: 72px;
    box-sizing: border-box;
}
.services-image {
    max-width: 380px;
    min-width: 220px;
}
.services-row ul { /* Affichage des missions sous forme de grille sur 2 colonnes */
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.75em 2.75em;
    list-style: none;
    padding: 0;
    margin: 0;
    width: 100%;
    min-width: 25em;
}
.services-row li {
    background: #C62B4E ;
    padding: 1em;
    border-radius: 18px;
    font-size: 1.2em;
    color: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0.5em 1em;
    text-transform: uppercase;
    transition: background 0.2s;
    text-shadow: 0 2px 8px rgba(0,0,0,0.5);
    position: relative;
}
.services-row strong {
    font-weight: 900;
}
/* Les fonds personnalisés pour chaque mission + changement de couleur au hover */
/* Prévu pour éventuellement mettre des liens vers explication detaillée de chaque service */
#strat { background: url('img/echec.png') center center/cover no-repeat; }
#strat:hover { background: url('img/echec2.png') center center/cover no-repeat; }

#graphisme { background: url('img/couleurs.png') center center/cover no-repeat; }
#graphisme:hover { background: url('img/couleurs2.png') center center/cover no-repeat; }

#web { background: url('img/clavier.png') center center/cover no-repeat; }
#web:hover { background: url('img/clavier2.png') center center/cover no-repeat; }

#event { background: url('img/bar.png') center center/cover no-repeat; }
#event:hover { background: url('img/bar2.png') center center/cover no-repeat; }

#community { background: url('img/media.png') center center/cover no-repeat; }
#community:hover { background: url('img/media2.png') center center/cover no-repeat; }

#pub { background: url('img/billboard.png') center center/cover no-repeat; }
#pub:hover { background: url('img/billboard2.png') center center/cover no-repeat; }

/* ---------------------------------------------------------------------------- */


/* ----------------- PAGE D'ACCUEIL : Section Statistiques --------------------- */
.stats {
    padding: 0 100px 60px;
}
.stats-grid { /* Grille pour répartir les statistiques sur 4 colonnes */
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 2em;
}
.stat {
    color: #ffffff;
    font-size: 1.15em;
    font-weight: 400;
    border-radius: 18px;
    padding: 28px 20px 18px 20px;
    box-sizing: border-box;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-shadow: 0 2px 8px rgba(0,0,0,0.5)
}
.big {
    font-size: 5em;
    font-weight: 900;
    margin-bottom: -20px;
    display: block;
}

.orange { background: url('img/bg2.png') center center/cover no-repeat; }
.bleu   { background: url('img/bg3.png') center center/cover no-repeat; }
.rose   { background: url('img/bg1.png') center center/cover no-repeat; }
.rouge  { background: url('img/bg4.png') center center/cover no-repeat; }

.wide { /* Permet à la statistique la plus large d'occuper toute la ligne */
    grid-column: 1 / -1; /* S'étend de la 1ère à la dernière colonne */
}

/* ------------------------------------------------------------------------------ */


/* ------------------------ PAGE EQUIPE : Section La Team ----------------------- */
.equipe-section {
    margin: 4em auto 0 auto;
    padding: 0 6.5em;
}
.equipe-section h1 {
    margin: 3em 0 2em;
    color: #ffffff;
    text-shadow: 0 2px 8px rgba(0,0,0,0.5);
}
.membre-equipe {
    display: flex; /* Afficher photo et texte sur la même ligne */
    align-items: center;
    gap: 3em;
    padding: 2em;
    border-radius: 18px;
    box-sizing: border-box;
    margin-bottom: 3em;
    background-color: #ffffff;
    box-shadow: 0 2px 25px rgba(47, 35, 69, 0.75);
}
.membre-equipe img {
    width: 300px;
    object-fit: cover;
    justify-self: center;
}
.info-membre {
    flex: 1 1 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.info-membre h2 {
    margin-bottom: 0.2em;
    margin-top: 0.5em;
}
.info-membre h3 {
    color: #D67D3E;
    margin-bottom: 0.2em;
    margin-top: 0.2em;
}
.info-membre ul {
    margin: 0 0 0.5em 1em;
    padding: 0;
    color: #C62B4E;
    font-size: 1.2em;
}
.info-membre ul li {
    margin-bottom: 0.3em;
    color: #1B1B3A;
}
/* ---------------------------------------------------------------------------------- */


/* ------------------------ PAGE EQUIPE : Section Méthodologie ----------------------- */
.methodologie {
    margin-top: 4em;
    background: #ffffff;
    padding: 3em 100px 8em;
}
.methodologie h2 {
    color: #C62B4E;
    text-align: center;
}
.methodologie p {
    text-align: center;
    margin: 0 10em 5em 10em;
}

/* Ombre colorée selon étape */
.ombre-orange {box-shadow: 0 2px 25px rgba(214, 125, 62, 0.75);}
.ombre-bleu {box-shadow: 0 2px 25px rgba(47, 35, 69, 0.75);}
.ombre-rouge {box-shadow: 0 2px 25px rgba(205, 87, 81, 0.75);}
.ombre-rose {box-shadow: 0 2px 25px rgba(149, 34, 65, 0.75);}

.steps-wrap {
    box-sizing: border-box;
}
.steps { /* Grille sur 2 colonnes pour les étapes */
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2.5em;
    margin-bottom: 2.5em;
}
.step {
    border-radius: 14px;
    padding: 2em 2.5em 1.5em;
}
.step h3 {
    color: #ffffff;
    text-shadow: 0 2px 8px rgba(0,0,0,0.5);
    margin-bottom: 0.5em;
    font-weight: 900;
    text-transform: uppercase;
    text-align: center;
    margin-top: auto;
}
.step p {
    color: #ffffff;
    text-align: justify;
    margin: 0;
}
/* ----------------------------------------------------------------------------- */


/* ------------------------ PAGE TARIFS : Section Tarifs ----------------------- */
.tarifs-section {
    background: url(img/bg1.png);
    padding: 5em 100px 4em;
}
.tarifs-section h1 {
    margin-bottom: 2em;
    color: #fff;
    text-shadow: 0 2px 8px rgba(0,0,0,0.5);
}
.tarifs-grid { /* Grille sur 3 colonnes pour aligner les forfaits sur une même ligne */
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2.5em;
    max-width: 1350px;
    margin: 0 auto;
}
.tarifs-grid a, .tarifs-grid a:hover {
    text-decoration: none;
}
.tarif-carte {
    background: #fff;
    border: 2px solid #CB4649;
    border-radius: 24px;
    box-shadow: 0 2px 20px rgba(214, 125, 62, 0.10);
    padding: 2.5em 2em 2em;
    display: flex;
    flex-direction: column;
    align-items: start;
    transition: all 0.2s, background 0.5s;
}
.tarif-carte h2 {
    font-size: 1.45em;
    margin: 0.4em 0 0.8em;
}
.tarif-prix {
    font-size: 0.8em;
    color: #1B1B3A;
    margin-bottom: 1.2em;
}
.tarif-prix span {
    font-size: 1.5em;
    font-weight: 700;
    color: #C62B4E;
    background: #fff6f7;
    padding: 0.18em 0.7em;
    border-radius: 1em;
    margin-left: 0.2em;
}

#start-prix { background-color: #fff7f1; }
#premium-prix {color: #CB4649; background-color: #fff7f7;}
#privilege-prix {background-color: #f4f4ff;}

#start-plus {
    background: #fff7f2;
    color: #D67D3E;
    border-color: #D67D3E;
}

#premium-plus {
    background: #fff0f0;
    color: #CB4649;
    border-color: #CB4649;
}

.tarif-carte ul {
    margin: 0.5em 0 0 0;
    padding: 0 0 0 1em;
    color: #1B1B3A;
    font-size: 1em;
    list-style: disc inside;
}
.tarif-carte ul li {
    margin-bottom: 0.5em;
}

.tarif-carte:hover {box-shadow: 0 2px 20px rgba(255, 255, 255, 0.9);}

.tarif-carte.orange { border-color: #D67D3E; }
.tarif-carte.rose   { border-color: #C62B4E;}
.tarif-carte.bleu   { border-color: #1B1B3A;}


.tarif-carte.orange h2, .tarif-carte.orange .tarif-prix span { color: #D67D3E; }
.tarif-carte.rose   h2, .tarif-carte.rose .tarif-prix span   { color: #C62B4E; }
.tarif-carte.bleu   h2, .tarif-carte.bleu .tarif-prix span   { color: #1B1B3A; }

.tarif-personnalise {
    text-align: center;
    color: #ffffff;
    padding: 1.5em 2em;
    background: #fff6f7;
    border-radius: 1.2em;
    border: 1.5px solid #CB4649;
    line-height: 1.5em;
    background: url(img/bg3.png);    
}
.tarif-personnalise b {
    color: #CB4649;
    font-weight: 600;
    font-size: 1.5em;
}
.tarif-personnalise p {
    margin-top: 3.5em;
    font-size: 1em;
}
.pack-plus {
    display: inline-block;
    background: #fff6f7;
    color: #CB4649;
    font-weight: 900;
    padding: 0.15em 0.8em;
    border-radius: 1.3em;
    font-size: 1.05em;
    margin-bottom: 0.5em;
    border: 1.2px solid #CB4649;
}
.tarif-carte.wide { /* Social Pack s'étend sur deux colonnes */
    grid-column: 1 / 3;
}
/* ---------------------------------------------------------------------------------- */


/* ------------------------ PAGE TARIFS : Section Témoignages ----------------------- */
.temoignages-section {
    background: #ffffff;
    padding: 5em 100px 4em;
}
.temoignages-list {
    display: flex;
    flex-direction: column;
    gap: 2.5em;
}
.temoignages-list blockquote {
    background: #fff6f7;
    border-left: 8px solid #CB4649;
    border-radius: 18px;
    box-shadow: 0 2px 18px rgba(214, 125, 62, 0.10);
    padding: 2.2em 2.3em 2em 2.8em;
    position: relative;
    font-size: 1em;
    color: #1B1B3A;
}

#atelier { border-color:#1B1B3A ; background-color: #f4f4ff; }
#georges { border-color: #D67D3E; background-color: #fff7f2; }
#groupe-s { border-color: #C62B4E; background-color: #fff6f7; }

.temoignages-list blockquote:before { /* Insertion du symbole de guillemet décoratif */
    content: "❝";
    font-size: 2.5em;
    color: #CB4649;
    position: absolute;
    left: 0.25em;
    top: 0.6em;
    opacity: 0.13;
    font-weight: 900;
    pointer-events: none;
}
.temoignages-list blockquote p {
    margin-bottom: 0.3em;
    line-height: 1.6;
}
.temoignage-client {
    display: block;
    font-weight: 900;
    color: #CB4649;
    font-size: 1.2em;
    margin-bottom: 0.8em;
    text-transform: uppercase;
}
.temoignages-list b {
    color: #1B1B3A;
    font-weight: 600;
}

.text-blue { color: #1B1B3A; }
.text-rouge { color: #CB4649; }
.text-orange { color: #D67D3E; }
.text-rose { color: #C62B4E; }

/* ---------------------------------------------------------------------------------- */


/* ----------------------------------- PAGE CONTACT --------------------------------- */

.fond-rose {
    background: url('img/bg1.png') center center/cover no-repeat;
}
.contact-img {
    opacity: 0.8;
    max-height: 270px;
}
.contact-section {
    margin-top: 10em;
    padding: 0 100px;
}
.contact-titre {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 3em;  /* Espace entre le texte et l'image */
    text-align: left;
}
.contact-section h1 {
    margin-bottom: 2em;
    color: #ffffff;
    text-shadow: 0 2px 8px rgba(0,0,0,0.5);
    flex: 1;
}
.contact-form {
    background: #1B1B3A;
    border-radius: 0.8em;
    border: 1px solid #CB4649;
    padding: 2em 2.5em 1.5em;
    display: flex;
    flex-direction: column;
    gap: 0.9em;
    box-shadow: 0 2px 18px rgba(0,0,0,0.14);
}
.champs-contact {
    display: flex;
    gap: 1.2em;
    width: 100%;
}
.groupe-champ {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-width: 0;
    margin-bottom: 0.4em;
}
label {
    color: #ffffff;
    margin-bottom: 0.25em;
}
input, textarea, select {
    background: #2f2f4c;
    border: none;
    border-radius: 0.5em;
    padding: 0.75em 1em;
    color: #ffffff;
    font-family: inherit;
    font-size: 1em;
    margin-bottom: 0.4em;
    outline: none;
    transition: background 0.2s;
}
input[type="file"] {
    background: #2f2f4c;
    color: #ffffff;
    border: none;
    padding: 0.5em 0.8em;
    font-size: 1em;
}
input:focus, textarea:focus, select:focus {
    background: #C62B4E;
}
textarea {
    min-height: 8em;
    resize: vertical;
}
.groupe-rgpd {
    display: flex;
    flex-direction: row;
    gap: 1em;
}
.groupe-rgpd input[type="checkbox"] {
    accent-color: #C62B4E;
    width: 1.15em;
    height: auto;
} 
.btn-contact {
    background: #CB4649;
    color: #1B1B3A;
    font-weight: 700;
    font-size: 1.25em;
    border: none;
    border-radius: 1.8em;
    padding: 0.7em 2.2em;
    cursor: pointer;
    float: right;
    transition: background 0.18s;
}
.btn-contact:hover {
    background: #C62B4E;
    color: #fff;
}
/* Adaptation petits écrans */
@media (max-width: 1200px) {
    .menu-nav {
        font-size: 0.8em;
        line-height: 1.1em;
    }
    .hero-section h1 {
        margin-top: 3em;
    }
    .adn-text {
        max-width: 80%;
    }
    .adn-video {
        border-radius: 50px 0 0 50px;
    }
    .stats-grid, .tarifs-grid, .steps {
        grid-template-columns: 1fr;
    }
    .membre-equipe, .hero-section, .adn-section, .services-row, .stat, .tarifs-grid, .champs-contact, .contact-titre {
        flex-direction: column;
    }    
    .services-row, .hero-left, .tarifs-grid {
        margin-right: 100px;
    }
    .methodologie p {
        text-align: center;
        margin: 0 1em 5em 1em;
    }
    .tarif-carte.bleu, .tarif-personnalise, .tarif-carte.orange, .tarif-carte.rose, .tarif-carte {
        grid-column: 1 / 3;
        min-width: 20em;
    }
    .temoignages-list blockquote {
        min-width: 22em;
        font-size: small;
        margin-left: 0px;
    }
    .contact-img {
        margin: -7em auto 2em auto;
    }
    .contact-form {
        margin: auto -2em auto -2em;
    }
}