/*
Theme Name: Betafluides Theme
Theme URI: https://www.betafluides.com
Author: Tiago Labro
Author URI: https://tiago-labro-cv.netlify.app
Description: Thème pour Betafluides
Version: 1.0
*/

/* ============================= */
/* IMPORTS DE POLICES */
/* ============================= */
@import url('https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300..700;1,300..700&display=swap');

/* ============================= */
/* STYLES GLOBAUX */
/* ============================= */

/* Réinitialisation des styles par défaut */
*,
::before,
::after {
    margin: 0;
    padding: 0;
    text-decoration: none;
    border: none;
    outline: none;
}

/* Couleur de fond générale */
body {
    background-color: #f5f6f8;
}

/* Polices par défaut pour le corps et les boutons */
body,
button,
.button-form,
.button-contact {
    font-family: 'Poppins', sans-serif;
}

/* Images responsive */
img {
    width: 100%;
}

/* Titres avec police Montserrat */
h1,
h2,
h3,
h4 {
    font-family: 'Montserrat', sans-serif;
}

/* Tailles de polices des titres */
h1 {
    font-size: 40px;
}

h2 {
    font-weight: normal;
    font-size: 26px;
}

h3 {
    font-weight: normal;
    font-size: 22px;
}

/* Paragraphes et petits textes */
p {
    font-size: 16px;
}

a {
	color: #FF8121;
}

.small {
    font-size: 14px;
}

/* Couleurs utilitaires */
.orange {
    color: #FF8121;
}

.gray {
    color: #666666;
}

/* Animation de fondu avec déplacement vertical */
@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(6px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.page-content {
    padding: 5rem;
    display: flex;
    flex-direction: column;

}

.button-404 {
    margin-top: 1rem;
    font-size: 14px;
    padding: 12px 30px;
    border-radius: 10px;
    background-color: #FF8121;
    color: #ffffff;
    cursor: pointer;
    transition: all 0.2s ease;
    font-weight: 500;
}

.button-404:hover {
    background-color: #c7651a;
}

/* ============================= */
/* BARRE DE NAVIGATION */
/* ============================= */

/* Conteneur de navigation sticky en haut de la page */
.navigation-principale {
    position: sticky;
    top: 0;
    left: 0;
    z-index: 1000;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 2rem 4rem;
    width: 100%;
    box-sizing: border-box;
    border-bottom: 1px solid rgb(218, 218, 218);
    background: rgb(255, 255, 255);
}

/* Logo dimensionné à 50% de la zone de navigation */
.navigation-principale a.logo img {
    width: 50%;
    height: auto;
}

/* Menu horizontal avec espacement */
.menu {
    display: flex;
    gap: 2.5rem;
    align-items: center;
    list-style: none;
}

/* Liens du menu avec transition au survol */
.menu a {
    color: black;
    transition: 0.2s ease;
    white-space: nowrap;
}

.menu a:hover {
    color: #FF8121;
    transition: 0.2s ease;
}

/* Bouton hamburger pour le responsive */
#btn-burger {
    font-size: 1.5rem;
    color: black;
    transition: 0.2s ease-in-out;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    display: none;
}

/* ============================= */
/* SECTION ACCUEIL */
/* ============================= */

/* Section héro avec image de fond et overlay */
.hero-section {
    position: relative;
    background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url(./images/hero-image.jpg);
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    padding: 5rem;
    color: #ffffff;
}

/* Contenu centré de la section héro */
.hero-content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    gap: 1.5rem;
}

.hero-content h1 {
    text-transform: uppercase;
}

.hero-content h2 {
    font-weight: normal;
}

/* Bouton principal avec hover */
.hero-content button {
    font-size: 16px;
    padding: 10px;
    border-radius: 10px;
    background-color: #FF8121;
    color: #ffffff;
    cursor: pointer;
    width: 20rem;
    transition: .2s ease;
}

.hero-content button:hover {
    background-color: #c7651a;
}

/* Conteneur d'introduction avec contenu et image */
.introduction {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1.5rem;
    padding: 5rem;
}

/* Contenu texte de l'introduction */
.introduction-content {
    display: flex;
    flex-direction: column;
    gap: 2rem;
    text-align: center;
}

/* Zone d'image de l'introduction avec bordures arrondies */
.introduction-image {
    display: flex;
    align-items: center;
    justify-content: center;
}

.introduction-image img {
    border-radius: 10px;
    width: 85%;
}

/* Conteneur des domaines en colonne */
.domains {
    display: flex;
    align-items: stretch;
    justify-content: center;
    flex-direction: column;
    padding: 1rem;
}

/* Titre et description des domaines */
.domains-title {
    display: flex;
    flex-direction: column;
    text-align: center;
    gap: 1rem;
}

.domains-title h2 {
    font-weight: normal;
}

/* Conteneur des icônes de domaines */
.domains-icons {
    padding: 4rem 2rem;
    display: flex;
    flex-direction: column;
    gap: 2.5rem;
}

/* Ligne de domaines avec wrap */
.domains-row {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: 2rem;
}

/* Carte de domaine unique */
.domains-icon {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
    width: 150px;
}

/* Boîte contenant l'icône avec hover dynamique */
.icon-wrapper {
    width: 80px;
    height: 80px;
    border-radius: 20px;
    background-color: #fdeace;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.25s ease, background-color 0.25s ease, box-shadow 0.25s ease;
    box-shadow: 0 2px 8px rgba(255, 149, 0, 0.1);
}

/* Effet au survol de la boîte icône */
.icon-wrapper:hover {
    transform: translateY(-5px);
    background-color: #ff9500;
    box-shadow: 0 8px 20px rgba(255, 149, 0, 0.3);
}

.icon-wrapper:hover .fa-solid {
    color: #fff;
}

/* Style de l'icône FontAwesome */
.fa-solid {
    font-size: 32px;
    color: #ff9500;
    transition: color 0.25s ease;
}

/* Texte descriptif du domaine */
.domains-icon p {
    text-align: center;
    font-size: 0.85rem;
    font-weight: 500;
    color: #444;
    line-height: 1.3;
}

/* ============================= */
/* SECTION COMPTEUR */
/* ============================= */

/* Conteneur du compteur avec espacement horizontal */
.counter {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10rem;
    padding: 3rem;
}

/* Partie individuelle du compteur */
.counter-part {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
}

/* Grands chiffres du compteur */
.counter-part h2 {
    font-size: 64px;
}

.counter-part p {
    font-size: 26px;
}

/* ============================= */
/* SECTION PROJETS À VENIR */
/* ============================= */

/* Titre des projets centré et en majuscules */
.title-project {
    text-align: center;
    text-transform: uppercase;
    font-weight: 600;
    padding: 2rem;
}

/* Conteneur des projets à venir */
.projects-upcoming {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5%;
    padding: 3rem;
}

/* ============================= */
/* SECTION ÉQUIPE */
/* ============================= */

/* Conteneur d'introduction à l'équipe */
.team-intro {
    padding: 1.5rem;
}

/* Contenu avec titre et description de l'équipe */
.team-intro-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    max-width: 800px;
    gap: 2.5rem;
    padding: 2rem;
    margin: 0 auto;
    text-align: center;
}

.team-intro-content h2 {
    text-transform: uppercase;
    font-weight: 600;
    position: relative;
    padding-bottom: 1rem;
}

/* Zone des membres de l'équipe */
.team-staff {
    padding: 2.5rem;
}

/* Rangée de cartes d'équipe */
.team-row {
    display: flex;
    align-items: stretch;
    justify-content: center;
    flex-wrap: wrap;
    padding: 2rem;
    gap: 2.5rem;
}

/* Carte individuelle de membre d'équipe */
.team-card {
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
    flex: 0 0 400px;
    transition: .2s ease;
}

.team-card:hover {
    transform: translateY(-6px);
}

.team-card img {
    width: 300px;
    height: 450px;
    border-radius: 10px;
}

.team-card .card-info {
    padding: 1rem 0.8rem 1.2rem;
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}

.team-card .card-info .name {
    font-weight: 500;
}

.team-card .card-info .role {
    font-size: 0.85rem;
    color: #888;
}

/* ============================= */
/* SECTION MÉTHODOLOGIE */
/* ============================= */

/* Conteneur principal de la méthodologie */
.methodology {
    padding: 1.5rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

/* Titre des onglets de méthodologie */
.methodology-title {
    font-weight: 600;
    text-transform: uppercase;
    padding: 2rem;
}

/* Onglets de méthodologie */
.methodology-tabs {
    width: 100%;
}

/* Boîte contenant les boutons d'onglets */
.methodology-tabs-box {
    display: flex;
    align-items: center;
    border-bottom: 1.5px solid #d1d1d1;
    gap: 2px;
}

/* Boutons d'onglets individuels */
.methodology-btn {
    position: relative;
    font-size: 16px;
    background: transparent;
    color: #6b6b6b;
    border: 1px solid transparent;
    border-bottom: none;
    border-radius: 6px 6px 0 0;
    padding: 0.75rem 1.6rem;
    cursor: pointer;
    bottom: -1.5px;
    transition: color 0.2s ease, background 0.2s ease;
}

/* État actif du bouton d'onglet */
.methodology-btn.active {
    color: #1a1a1a;
    background-color: #ffffff;
    border-color: #d1d1d1;
    border-bottom: 1.5px solid #ffffff;
}

.methodology-btn:hover {
    background-color: #e6e6e6;
    color: #1a1a1a;
}

/* Boîte contenant le contenu des onglets */
.methodology-content-box {
    border: 1px solid #d1d1d1;
    border-top: none;
    border-radius: 0 0 10px 10px;
    background-color: #ffffff;
    padding: 4rem;
}

/* Contenu des onglets caché par défaut */
.content {
    display: none;
}

/* Contenu actif avec animation de fondu */
.content.active {
    display: block;
    animation: fadeIn 0.3s ease;
}

/* En-tête du contenu avec icône et badge */
.content-header {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 1rem;
}

/* Badge de phase (ex: "PHASE 1") */
.phase-badge {
    text-transform: uppercase;
    background-color: #1a1a1a;
    color: #ffffff;
    border-radius: 4px;
    padding: 3px 9px;
    letter-spacing: 0.08rem;
}

/* Listes numérotées dans le contenu */
.content ol li {
    padding: 0.3rem;
}

/* Images dans le contenu */
.content img {
    width: 20%;
}

/* Rangée de contenu avec image et texte */
.content-row {
    margin-top: 2rem;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 2rem;
}

.content-row img {
    width: 50%;
    padding-right: 2rem;
}

/* Listes imbriquées */
.first-list .second-list {
    list-style: inside;
}

/* iframe/vidéo responsive de méthodologie */
.iframe-methodology {
    margin-top: 2rem;
    border-radius: 5px;
    width: 50%;
}

/* Version mobile du iframe (affichée sur petit écran) */
.iframe-mobile {
    display: none;
}

/* ============================= */
/* SECTION MISSIONS */
/* ============================= */

/* Introduction aux missions */
.missions-intro {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2rem;
    padding: 3rem;
}

/* Titre des missions */
.missions-intro-title {
    font-weight: 600;
    text-transform: uppercase;
    margin-bottom: 2rem;
}

/* Conteneur des cartes de missions */
.mission-cards {
    display: flex;
    justify-content: center;
    align-items: stretch;
    gap: 3rem;
}

/* Carte de mission avec ombre et transition */
.mission-card {
    padding: 3rem 2rem;
    background-color: #ffffff;
    border-radius: 10px;
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.07);
    max-width: 400px;
    width: 100%;
    transition: .2s ease;
}

/* En-tête de carte avec icône */
.card-header {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1.8rem;
}

/* Boîte pour l'icône de la carte */
.icon-box {
    width: 44px;
    height: 44px;
    background: #fff5e6;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.icon-box i {
    font-size: 1.15rem;
    color: #ff9500;
}

/* Éléments de liste dans les cartes */
.mission-card ul li {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    line-height: 1.5;
}

/* Puces personnalisées pour les listes */
.mission-card ul li::before {
    content: "";
    width: 5px;
    height: 5px;
    background-color: #ff9500;
    border-radius: 50%;
    margin-top: 0.55rem;
    flex-shrink: 0;
}

/* Effet au survol de la carte de mission */
.mission-card:hover {
    transform: scale(1.05);
}

/* Conteneur des domaines de missions */
.missions-domains {
    padding: 3rem;
}

/* Section contenant les cartes de domaines */
.missions-domains-section {
    padding: 4rem;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    gap: 3rem;
}

/* Rangée de cartes de domaines */
.domains-section-row {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 3rem;
}

/* Carte de domaine avec image de fond */
.domains-card {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    padding: 5rem;
    color: #ffffff;
    text-align: center;
    border-radius: 10px;
    width: 200px;
    height: 200px;
    background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), var(--bg-image);
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.07);
    transition: transform 0.3s ease;
}

.domains-card:hover {
    transform: scale(1.05);
}

/* Images de fond uniquement avec variable CSS */
[data-domain="university"] {
    --bg-image: url(./images/college.jpg);
}

[data-domain="communities"] {
    --bg-image: url(./images/collectivites.jpg);
}

[data-domain="housing"] {
    --bg-image: url(./images/logement.jpg);
}

[data-domain="tertiary"] {
    --bg-image: url(./images/tertiaire.jpg);
}

[data-domain="heritage"] {
    --bg-image: url(./images/patrimoine-ancien.jpg);
}

[data-domain="hospital"] {
    --bg-image: url(./images/hopital.jpg);
}

[data-domain="industry"] {
    --bg-image: url(./images/industrie.jpg);
}

[data-domain="hotelIndustry"] {
    --bg-image: url(./images/hotellerie.jpg);
}

/* ============================= */
/* SECTION CONTACT */
/* ============================= */

/* Titre de la section contact */
.contact-title {
    font-weight: 600;
    text-transform: uppercase;
    text-align: center;
    padding: 3rem;
}

/* Conteneur principal contact */
.contact {
    padding: 3rem 8rem 3rem;
    display: flex;
    flex-direction: column;
    gap: 5rem;
}

/* Formulaire de contact */
.contact-form, .password-form {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1.5rem;
}

/* Groupe de champ du formulaire de contact */
.form-group-contact, .password-form-group {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    align-items: flex-start;
}

/* Champs de saisie du contact */
.input-contact, .password-form input {
    font-family: 'Inter', sans-serif;
    border-radius: 5px;
    width: 700px;
    padding: 10px;
    box-sizing: border-box;
    border: 1px solid #e4e4e4;
    resize: none;
    transition: border .2s ease-in-out;
}

.input-contact:focus {
    border: 1px solid #000000;
}

/* Hauteur spécifique pour les champs textarea */
.textarea {
    height: 200px;
}

/* Bouton d'envoi du formulaire contact */
.button-contact, .password-form button {
    font-size: 14px;
    padding: 12px 30px;
    border-radius: 10px;
    background-color: #FF8121;
    color: #ffffff;
    cursor: pointer;
    transition: all 0.2s ease;
    font-weight: 500;
}

.button-contact:hover, .password-form button:hover {
    background-color: #c7651a;
}

/* Zone d'informations de contact */
.contact-infos {
    display: flex;
    align-items: center;
    justify-content: space-around;
}

/* Conteneur pour chaque information de contact */
.contact-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2rem;
    text-align: center;
}

/* Carte Google Maps responsive */
.contact-map iframe {
    width: 600px;
}

/* ============================= */
/* SECTION PROJETS */
/* ============================= */

/* Titre de la page projets */
.projects-title {
    font-weight: 600;
    text-transform: uppercase;
    text-align: center;
    padding-top: 3rem;
}

/* Barre de filtrage des projets */
.projects-filter {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: 2rem;
    padding: 2rem 2rem 0 2rem;
}

/* Bouton de filtrage individuel */
.filter-item {
    font-size: .95rem;
    cursor: pointer;
    padding: 4px 10px;
    border-radius: 10px;
    transition: .3s ease;
}

.filter-item:hover {
    background-color: #ffdba8;
}

/* Filtre actuellement actif */
.filter-active {
    background-color: #ff9500;
    color: #ffffff;
}

.filter-active:hover {
    background-color: #ff7b00;
}

/* Grille de projets */
.projects {
    display: flex;
    align-items: stretch;
    justify-content: center;
    flex-wrap: wrap;
    gap: 3rem;
    padding: 4rem 3rem;
}

/* Carte de projet individuelle */
.project {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    background-color: #ffffff;
    border-radius: 15px;
    padding: 1.5rem;
    width: 320px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
    transition: 0.3s ease;
    animation: fadeIn .4s ease;
}

.project:hover {
    transform: translateY(-6px);
}

/* Image de projet avec zoom au survol */
.project img {
    width: 100%;
    height: 200px;
    object-fit: cover;
    border-radius: 10px;
    transition: transform 0.3s ease;
}

.project:hover img {
    transform: scale(1.05);
}

/* Titre du projet */
.project h3 {
    font-size: 20px;
    font-weight: 600;
    margin: 0.5rem 0;
}

/* Bouton "En Savoir Plus" du projet */
.project a {
    font-size: 14px;
    padding: 12px 24px;
    border-radius: 10px;
    background-color: #FF8121;
    color: #ffffff;
    cursor: pointer;
    transition: all 0.2s ease;
    font-weight: 500;
    align-self: flex-start;
}

.project a:hover {
    background-color: #c7651a;
}

/* Aperçu du projet */
.project-preview {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    font-size: 13px;
    color: #666666;
    margin-bottom: auto;
}

/* Icône dans l'aperçu du projet */
.project-icon {
    font-size: 15px;
    color: #979797;
    margin-right: 5px;
}

/* Tags/étiquettes du projet */
.project-tags {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
    margin-top: 0.5rem;
}

/* Étiquette individuelle */
.tag {
    display: inline-block;
    background-color: #fff5e6;
    color: #FF8121;
    padding: 6px 12px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 500;
    transition: 0.2s ease;
}

.tag:hover {
    background-color: #FF8121;
    color: #ffffff;
}

/* ============================= */
/* PAGE PROJET DÉTAILLÉ */
/* ============================= */

/* Section héro de projet détaillé */
.single-hero-section {
    position: relative;
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    padding: 5rem;
    color: #ffffff;
}

.single-hero-content {
    display: flex;
    align-items: center;
    justify-content: center;
}

.single-hero-content h1 {
    text-transform: uppercase;
}

/* Contenu principal de la page projet détaillé */
.single-content {
    padding: 5rem;
}

/* Grille avec informations du projet */
.single-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    border-top: 1px solid #A6A6A6;
    max-width: 1200px;
    margin: 0 auto;
}

/* Cellule de grille pour les infos du projet */
.single-cell {
    padding: 3rem 0;
    border-bottom: 1px solid #A6A6A6;
}

/* Bordure gauche pour colonnes paires */
.single-cell:nth-child(even) {
    padding-left: 30px;
    border-left: 1px solid #A6A6A6;
}

/* Étiquette d'information */
.single-cell-label {
    font-size: .75rem;
    text-transform: uppercase;
    margin-bottom: 5px;
}

/* Valeur d'information */
.single-cell-value {
    font-size: .95rem;
}

/* Description longue du projet */
.single-description {
    line-height: 1.85;
    text-align: center;
    max-width: 1300px;
    margin: 2rem auto 0;
}

/* Section des projets similaires */
.similar-projects {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.similar-projects h2 {
    font-weight: 600;
    text-transform: uppercase;
    text-align: center;
}

/* ============================= */
/* ESPACE CLIENT */
/* ============================= */

/* Titre de l'espace client */
.client-title {
    text-align: center;
    text-transform: uppercase;
    font-weight: 600;
    padding: 2rem;
}

/* Conteneur principal de l'espace client */
.client {
    padding: 3rem 8rem 3rem;
    display: flex;
    flex-direction: column;
    gap: 5rem;
}

.client-intro {
    text-align: center;
}

#wpmem_login {
    font-family: 'Poppins', sans-serif !important;
    width: 100% !important;
}

/* Formulaire du client */
#wpmem_login_form {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 1.3rem;
}

#wpmem_login legend {
    font-weight: 400 !important;
	margin-bottom: 1rem;
}

/* Groupe de champ du formulaire de contact */
.form-group-client {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    align-items: flex-start;
}

.div_text {
	width: 100%;
}

/* Champs de saisie du client */
.div_text input {
    border-radius: 5px;
    padding: 10px;
	width: 100%;
    box-sizing: border-box;
    border: 1px solid #e4e4e4;
    resize: none;
    transition: border .2s ease-in-out;
}

.div_text input:focus {
    border: 1px solid #000000;
}

fieldset {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 100%;
	gap: 1rem;
}

/* Groupe avec case à cocher "Se souvenir de moi" */
.button_div {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
}

/* Case à cocher personnalisée */
.button_div input[type="checkbox"] {
    appearance: none;
    border: 1px solid #d1d1d1;
    background-color: #ffffff;
    width: 20px;
    height: 20px;
    cursor: pointer;
    border-radius: 4px;
    transition: .2s ease;
}

.button_div input[type="checkbox"]:hover {
    border-color: #FF8121;
}

.button_div input[type="checkbox"]:checked {
    background-color: #FF8121;
    border-color: #FF8121;
}

/* Bouton du formulaire client */
.button_div input[type="submit"] {
    font-size: 14px;
    padding: 12px 30px;
    border-radius: 10px;
    background-color: #FF8121;
    color: #ffffff;
    cursor: pointer;
    transition: all 0.2s ease;
    font-weight: 500;
}

.button_div input[type="submit"]:hover {
    background-color: #c7651a;
}

.cuar-sc-list-container ul li {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    gap: 0.75rem;
    line-height: 1.5;
}

.cuar-sc-list-container ul li::before {
    content: "";
    width: 5px;
    height: 5px;
    background-color: #ff9500;
    border-radius: 50%;
    margin-top: 0.55rem;
    flex-shrink: 0;
}

/* ============================= */
/* PIED DE PAGE */
/* ============================= */

/* Conteneur du footer */
footer {
    background: #303030;
    color: #e4e4e4;
    position: relative;
}

/* Barre orange au-dessus du footer */
footer::before {
    content: '';
    display: block;
    height: 2px;
    background-color: #E87722;
}

/* Grille interne du footer */
.footer-inner {
    position: relative;
    max-width: 1200px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1.4fr 1fr 1.2fr;
}

/* Section du footer individuelle */
.footer-part {
    padding: 3rem;
    display: flex;
    flex-direction: column;
    gap: 2rem;
}

/* Bordure entre les sections du footer */
.footer-part:not(:last-child) {
    border-right: 1px solid #ff730015;
}

/* Bloc de marque/logo du footer */
.brand-block {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

/* Nom "Beta" avec serif font */
.brand-beta {
    font-family: 'Cormorant Garamond', serif;
    font-size: 3rem;
    line-height: 1;
    color: #7a7a7a;
}

.brand-beta span {
    color: #E87722;
}

.brand-beta i {
    font-weight: 700;
}

/* Sous-titre de marque */
.brand-sub {
    font-size: .85rem;
    text-transform: uppercase;
    color: #5a5a5a;
    font-weight: 400;
    padding-left: 2px;
}

/* Texte dans les sections du footer */
.footer-part p {
    font-size: .95rem;
    line-height: 1.9;
    font-weight: 300;
    color: #a5a5a5;
}

/* Titre des sections footer */
.footer-part h3 {
    font-size: 1rem;
    color: #f2f2f2;
    font-weight: 500;
    text-transform: uppercase;
    position: relative;
    padding-bottom: 1rem;
}

/* Groupe d'adresses avec labels */
.location-group {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

/* Labels d'adresse (ex: "SIÈGE") */
.location-label {
    text-transform: uppercase;
    font-weight: 500;
    font-size: .90rem;
    display: block;
    margin-bottom: 0.2rem;
}

.location-group p {
    font-size: .85rem;
    line-height: 1.7;
}

/* Formulaire dans le footer */
.footer-part form {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

/* Groupe de champ du formulaire */
.form-group {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

/* Label du formulaire footer */
.form-group label {
    font-size: .90rem;
    text-transform: uppercase;
    color: #E87722;
    font-weight: 500;
}

/* Champs de saisie du footer */
.input-footer {
    background: transparent;
    border: none;
    border-bottom: 1px solid #e878225e;
    color: #f2f2f2;
    padding: 0.5rem 0;
    font-family: 'Inter', sans-serif;
    font-size: .85rem;
    transition: border-color .3s ease;
    outline: none;
    width: 100%;
    resize: none;
}

.input-footer::placeholder {
    color: #818181;
}

.input-footer:focus {
    border-bottom-color: #E87722;
}

/* Hauteur minimale pour textarea du footer */
textarea.input-footer {
    min-height: 70px;
}

/* Bouton du formulaire footer */
.button-form {
    font-size: .85rem;
    font-weight: 500;
    align-self: flex-start;
    background: transparent;
    padding: 0.85rem 2rem;
    border-radius: 5px;
    border: 1px solid #E87722;
    color: #E87722;
    cursor: pointer;
    text-transform: uppercase;
    transition: .2s ease;
}

.button-form:hover {
    background-color: #E87722;
    color: #111111;
}

/* Wrapper du bas du footer */
.footer-bottom-wrapper {
    border-top: 1px solid #ffffff3a;
}

/* Bas du footer avec infos légales */
.footer-bottom {
    max-width: 1200px;
    margin: 0 auto;
    padding: 1rem 3rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.footer-bottom p {
    font-size: .70rem;
    color: #cccccc;
}

/* Séparateur (point) entre les infos footer */
.footer-bottom .dot {
    color: #E87722;
    margin: 0 0.5rem;
}

/* ============================= */
/* POINTS D'ARRÊT RESPONSIVE */
/* ============================= */

/* Tablettes grandes (1200px) */
@media screen and (max-width: 1200px) {
    .navigation-principale a.logo img {
        width: 90%;
    }

    .menu a {
        white-space: normal;
    }
}

/* Tablettes/iPad (1024px) */
@media screen and (max-width: 1024px) {
    .navigation-principale {
        padding: 1rem;
    }

    /* Affichage du bouton hamburger */
    #btn-burger {
        display: block;
    }

    /* Menu transformé en drawer mobile */
    .menu {
        opacity: 0;
        pointer-events: none;
        top: 0;
        right: 0;
        width: 230px;
        height: 100vh;
        position: fixed;
        flex-direction: column;
        align-items: start;
        justify-content: center;
        border-left: 1px solid rgb(201, 201, 201);
        border-top: 1px solid rgb(201, 201, 201);
        row-gap: 1.5rem;
        padding: 1rem;
        transition: .2s ease-in-out;
        background: rgb(255, 255, 255);
        transform: translateX(100%);
        box-sizing: border-box;
    }

    /* Menu actif avec animation */
    .menu.active {
        opacity: 1;
        pointer-events: auto;
        transform: translateX(0);
    }

    .menu li {
        width: 100%;
        border-bottom: 1px solid #f0f0f0;
    }

    .menu li:last-child {
        border-bottom: none;
        margin-top: 1rem;
    }

    .menu a {
        display: block;
        padding: 1.2rem 0;
        text-decoration: none;
        color: #111111;
        font-size: 1.05rem;
        font-weight: 500;
    }

    .menu li:last-child a {
        background-color: #ff9500;
        color: #ffffff;
        padding: 1rem;
        text-align: center;
        border-radius: 6px;
        font-weight: 600;
    }

    /* Ajustements pour le contenu */
    .introduction {
        flex-direction: column;
    }

    .fa-solid {
        font-size: 40px;
    }

    .domains-icons-1,
    .domains-icons-2 {
        gap: 3rem;
    }

    .counter {
        flex-direction: column;
        gap: 3rem;
    }

    /* Onglets de méthodologie */
    .methodology-btn.active:hover {
        background-color: #ffffff;
    }

    .methodology-btn:hover {
        background-color: #D9D9D9;
    }

    .content img {
        margin-top: 1rem;
        width: 50%;
    }

    .content-row {
        flex-direction: column;
    }

    .content-row img {
        width: 80%;
    }

    .iframe-methodology {
        display: none;
    }

    .iframe-mobile {
        display: block;
    }

    /* Cartes de missions en colonne */
    .mission-cards {
        flex-direction: column;
    }

    .mission-card {
        width: 90%;
    }

    .domains-section-row {
        flex-direction: column;
    }

    .domains-card {
        width: 120px;
        height: 120px;
    }

    /* Projets en colonne */
    .projects-upcoming,
    .projects {
        flex-direction: column;
        gap: 3rem;
    }

    .projects {
        align-items: center;
    }

    .project-icon {
        font-size: .9rem;
    }

    /* Footer en une colonne */
    .footer-inner {
        grid-template-columns: 1fr;
    }

    .footer-part:not(:last-child) {
        border-right: none;
        border-bottom: 1px solid #ff730015;
    }

    .footer-part {
        padding: 2.5rem 1.5rem;
    }

    .footer-bottom {
        flex-direction: column;
        gap: 0.5rem;
        text-align: center;
        padding: 1rem 2rem;
    }

    /* Équipe */
    .team-staff {
        padding: 1rem;
    }

    .team-row {
        flex-direction: column;
    }

    /* Contact */
    .contact {
        padding: 3rem 3rem 3rem;
    }

    .contact-infos {
        flex-direction: column;
        gap: 3rem;
    }

    .contact-map iframe {
        width: 500px;
    }
}

/* Mobile (780px) */
@media screen and (max-width: 780px) {
    .introduction {
        padding: 3rem;
    }

    .fa-solid {
        font-size: 35px;
    }

    .domains-icons {
        gap: 2rem;
    }

    .domains-icons-1,
    .domains-icons-2 {
        flex-direction: column;
        gap: 2rem;
    }

    /* Onglets méthodologie en wrap */
    .methodology-tabs-box {
        flex-wrap: wrap;
        justify-content: center;
        gap: 5px;
        padding: 1rem;
    }

    .methodology-btn {
        border: 1px solid #d1d1d1;
        border-radius: 999px;
    }

    .methodology-btn.active {
        border: 1px solid #000000;
    }

    /* En-tête de contenu en colonne */
    .content-header {
        flex-direction: column;
        text-align: center;
    }

    .link-mobile {
        font-size: 16px;
    }

    .content {
        padding: 0.5rem;
    }

    .content img {
        width: 60%;
    }

    .content-row img {
        width: 100%;
    }

    .project {
        width: 280px;
    }

    .project-icon {
        font-size: .9rem;
    }

    .client {
        padding: 3rem 4rem 3rem;
    }

    .input-client,
    .remember-checkbox,
    .input-contact {
        width: 300px;
    }
	
	.div_text {
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		width: 300px;
	}

    /* Grille projet détaillé sur une colonne */
    .single-grid {
        grid-template-columns: 1fr;
    }

    .single-cell:nth-child(even) {
        padding-left: 0;
        border-left: none;
    }
	
	.single-cell:nth-child(5) {
        border-bottom: 1px solid #A6A6A6 !important;
    }

    .contact-map iframe {
        width: 100%;
    }
}