/* =========================================================================
css/pages/project/main.css
Auto-split from css/pages/project.css.
========================================================================= */

/* Centrage du logo */
.site-branding-wrap {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
}

.site-branding-center {
  text-align: center;
  display: flex;
  justify-content: center;
  align-items: center;
  flex: 1;
}

.site-title {
  text-align: center;
  margin: 0;
  padding: 0;
}

.site-title a {
  display: flex;
  justify-content: center;
  align-items: center;
  text-decoration: none;
}

.logo-image {
  max-height: 30px;
  width: auto;
  display: block;
  margin: 0 auto;
}

/* Header noir en permanence (normal et scroll) */
.site-header .header-wrap:before,
.site-header.clone .header-wrap:before {
  background: #000000 !important;
  opacity: 1 !important;
}

.site-header .header-wrap,
.site-header.clone .header-wrap {
  background: #000000 !important;
}

.site-header .header-wrap-inner,
.site-header.clone .header-wrap-inner {
  background: #000000 !important;
}

/* Texte blanc en permanence pour tous les liens de navigation */
.site-header .nav-menu a,
.site-header .menu-toggle .lines,
.site-header .menu-toggle .lines:before,
.site-header .menu-toggle .lines:after,
.site-header.clone .nav-menu a,
.site-header.clone .menu-toggle .lines,
.site-header.clone .menu-toggle .lines:before,
.site-header.clone .menu-toggle .lines:after {
  color: #ffffff !important;
}

.site-header .nav-menu a:hover,
.site-header.clone .nav-menu a:hover {
  color: #000000 !important;
}

/* Actif: garder la même couleur que les autres liens (lisible sur fond noir) */
.site-header .nav-menu .current-menu-item a,
.site-header.clone .nav-menu .current-menu-item a,
.site-header .nav-menu .current-menu-item a:hover,
.site-header.clone .nav-menu .current-menu-item a:hover {
  color: #ffffff !important;
}

/* Bouton de langue blanc en permanence */
.aboutus-language-btn {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  border: none !important;
  border-width: 0 !important;
  border-style: none !important;
  border-color: transparent !important;
  outline: none !important;
  outline-width: 0 !important;
  color: #ffffff !important;
  font-weight: bold !important;
  font-size: 14px !important;
  padding: 8px 16px !important;
  cursor: pointer !important;
  transition: none !important;
  text-transform: uppercase !important;
  letter-spacing: 1px !important;
  min-width: 40px !important;
  text-align: center !important;
  white-space: nowrap !important;
  box-shadow: none !important;
  text-decoration: none !important;
  text-shadow: none !important;
  display: inline-block !important;
  vertical-align: middle !important;
  line-height: 1 !important;
  -webkit-box-shadow: none !important;
  -moz-box-shadow: none !important;
  -webkit-border-radius: 0 !important;
  -moz-border-radius: 0 !important;
  border-radius: 0 !important;
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  appearance: none !important;
}

/* S'assurer que le logo reste blanc (car c'est logoblanc.png) */

.aboutus-language-btn:hover {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  color: #ffffff !important;
  transform: none !important;
  border: none !important;
  border-width: 0 !important;
  border-style: none !important;
  border-color: transparent !important;
  outline: none !important;
  outline-width: 0 !important;
  box-shadow: none !important;
  text-decoration: none !important;
  text-shadow: none !important;
  -webkit-box-shadow: none !important;
  -moz-box-shadow: none !important;
  -webkit-border-radius: 0 !important;
  -moz-border-radius: 0 !important;
  border-radius: 0 !important;
}

.aboutus-language-btn.active {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  color: #ffffff !important;
  border: none !important;
  border-width: 0 !important;
  border-style: none !important;
  border-color: transparent !important;
  outline: none !important;
  outline-width: 0 !important;
  box-shadow: none !important;
  text-decoration: none !important;
  text-shadow: none !important;
  -webkit-box-shadow: none !important;
  -moz-box-shadow: none !important;
  -webkit-border-radius: 0 !important;
  -moz-border-radius: 0 !important;
  border-radius: 0 !important;
}

.aboutus-language-btn:focus {
  border: none !important;
  border-width: 0 !important;
  border-style: none !important;
  border-color: transparent !important;
  outline: none !important;
  outline-width: 0 !important;
  box-shadow: none !important;
  text-decoration: none !important;
  text-shadow: none !important;
  -webkit-box-shadow: none !important;
  -moz-box-shadow: none !important;
  -webkit-border-radius: 0 !important;
  -moz-border-radius: 0 !important;
  border-radius: 0 !important;
}

.aboutus-language-btn:active {
  border: none !important;
  border-width: 0 !important;
  border-style: none !important;
  border-color: transparent !important;
  outline: none !important;
  outline-width: 0 !important;
  box-shadow: none !important;
  text-decoration: none !important;
  text-shadow: none !important;
  -webkit-box-shadow: none !important;
  -moz-box-shadow: none !important;
  -webkit-border-radius: 0 !important;
  -moz-border-radius: 0 !important;
  border-radius: 0 !important;
}

/* Supprimer tous les pseudo-éléments qui pourraient causer des icônes */
.aboutus-language-btn::before,
.aboutus-language-btn::after {
  content: none !important;
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  width: 0 !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  background: none !important;
  background-image: none !important;
}

/* Forcer l'override de tous les styles possibles */
.aboutus-language-btn,
.aboutus-language-btn:hover,
.aboutus-language-btn:focus,
.aboutus-language-btn:active,
.aboutus-language-btn.active,
.aboutus-language-btn::before,
.aboutus-language-btn::after {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  border: none !important;
  border-width: 0 !important;
  border-style: none !important;
  border-color: transparent !important;
  outline: none !important;
  outline-width: 0 !important;
  box-shadow: none !important;
  text-decoration: none !important;
  text-shadow: none !important;
  -webkit-box-shadow: none !important;
  -moz-box-shadow: none !important;
  -webkit-border-radius: 0 !important;
  -moz-border-radius: 0 !important;
  border-radius: 0 !important;
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  appearance: none !important;
}

/* Styles ultra-spécifiques pour éliminer tout élément perturbateur */
#language-btn.aboutus-language-btn {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  border: none !important;
  border-width: 0 !important;
  border-style: none !important;
  border-color: transparent !important;
  outline: none !important;
  outline-width: 0 !important;
  box-shadow: none !important;
  text-decoration: none !important;
  text-shadow: none !important;
  -webkit-box-shadow: none !important;
  -moz-box-shadow: none !important;
  -webkit-border-radius: 0 !important;
  -moz-border-radius: 0 !important;
  border-radius: 0 !important;
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  appearance: none !important;
  position: relative !important;
  z-index: 1 !important;
}

/* Supprimer tous les éléments enfants qui pourraient causer des icônes */
#language-btn.aboutus-language-btn *:not(.lang-part):not(.lang-sep),
#language-btn.aboutus-language-btn *:not(.lang-part):not(.lang-sep)::before,
#language-btn.aboutus-language-btn *:not(.lang-part):not(.lang-sep)::after {
  content: none !important;
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  width: 0 !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  background: none !important;
  background-image: none !important;
}

#language-btn.aboutus-language-btn .lang-part,
#language-btn.aboutus-language-btn .lang-sep {
  display: inline !important;
  visibility: visible !important;
  opacity: 1 !important;
  width: auto !important;
  height: auto !important;
}

/* Forcer le texte uniquement */
#language-btn.aboutus-language-btn {
  color: #ffffff !important;
  font-weight: bold !important;
  font-size: 14px !important;
  padding: 8px 16px !important;
  cursor: pointer !important;
}

/* ====== HEADER & MENU MOBILE FIX ====== */
/* Consolidé plus bas (bloc mobile principal) */
/* Header toujours noir (déjà géré plus haut) */
/* Supprimé: bloc mobile contradictoire (fond blanc) */
/* EN-FR toggle parts + active highlight */
.aboutus-language-btn .lang-part,
.menu-item-language .lang-part {
  opacity: 0.6;
  transition: color 0.2s ease, opacity 0.2s ease;
}

.aboutus-language-btn .lang-part.active,
.menu-item-language .lang-part.active {
  opacity: 1;
  color: #d4af37;
  /* highlight active language */
  font-weight: 700;
}

.aboutus-language-btn .lang-sep,
.menu-item-language .lang-sep {
  display: inline-block;
  margin: 0 8px;
  /* spacing around dash */
  opacity: 0.6;
}

/* Styles pour aligner le bouton de langue à droite comme dans le blog */
.layout-medium {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  width: 100% !important;
}

.nav-menu {
  flex: 1 !important;
  display: flex !important;
  justify-content: center !important;
}

.language-switcher {
  flex-shrink: 0 !important;
  margin-left: auto !important;
}

/* Toujours visible sur desktop par défaut */
@media screen and (min-width: 992px) {
  .site-header .language-switcher {
    display: flex !important;
    align-items: center;
  }
}

/* Forcer le positionnement à droite dans le header */
/* (doublons supprimés; voir bloc ci-dessus) */
/* Décalage de 90px vers la droite pour les titres du menu (desktop uniquement) */
@media screen and (min-width: 992px) {
  .site-header .nav-menu>ul#menu-mymenu {
    transform: translateX(90px);
  }

  /* Afficher le switcher de langue à droite et masquer l'item du menu */
  .language-switcher {
    display: flex !important;
  }

  .menu-item-language {
    display: none !important;
  }

  /* Ordre des éléments dans le header (burger, menu, switcher) */
  .menu-toggle {
    order: 1 !important;
    margin-left: auto !important;
  }

  .nav-menu {
    order: 2 !important;
  }

  .language-switcher {
    order: 3 !important;
  }
}

/* Desktop: forcer "Projects" (élément actif) en noir, y compris au hover */
@media screen and (min-width: 992px) {

  .site-header .nav-menu>ul>li.current-menu-item>a,
  .site-header.clone .nav-menu>ul>li.current-menu-item>a,
  .site-header .nav-menu>ul>li.current-menu-item>a:hover,
  .site-header.clone .nav-menu>ul>li.current-menu-item>a:hover,
  .site-header .nav-menu #menu-item-15520>a,
  .site-header.clone .nav-menu #menu-item-15520>a,
  .site-header .nav-menu #menu-item-15520>a:hover,
  .site-header.clone .nav-menu #menu-item-15520>a:hover {
    color: #000000 !important;
  }
}

.aboutus-language-btn {
  font-size: 12px !important;
  padding: 6px 12px !important;
  min-width: 35px !important;
}

/* Mobile: masquer le bouton de langue à droite; afficher l'item du menu */
@media screen and (max-width: 991px) {
  .language-switcher {
    display: none !important;
    visibility: hidden !important;
  }

  .menu-item-language {
    display: block !important;
    visibility: visible !important;
  }
}

/* === HEADER MOBILE – aligné sur Services === */
/* Force hide mobile drawer on desktop */
@media screen and (min-width: 992px) {
  #mobile-drawer {
    display: none !important;
    visibility: hidden !important;
    transform: translateX(100%) !important;
  }

  #menu-backdrop {
    display: none !important;
    visibility: hidden !important;
  }

  body.is-menu-toggled-on {
    overflow: auto !important;
  }
}

@media screen and (max-width: 991px) {
  :root {
    --projectHeaderH: 64px;
  }

  /* Header fixé */
  .site-header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 10100;
  }

  /* Eviter tout recouvrement par un fond blanc du header */
  .site-header .header-wrap:before {
    z-index: 0 !important;
  }

  /* Eviter tout clipping du panneau off-canvas par des wrappers transform/overflow */
  .site-header,
  .site-header .header-wrap,
  .site-header .header-wrap-inner,
  .site-header .menu-wrap {
    overflow: visible !important;
    transform: none !important;
  }

  .site-header .menu-wrap,
  .site-header .layout-medium {
    background: transparent !important;
  }

  html,
  body {
    overflow-x: hidden;
  }

  /* Espace contenu */
  #main {
    padding-top: var(--projectHeaderH);
  }

  /* Ordre: burger à droite, menu centré, pas de switcher (utiliser item dans le menu) */
  .layout-medium {
    display: flex;
    align-items: center;
  }

  .menu-toggle {
    order: 1 !important;
    margin-left: auto !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    cursor: pointer;
    position: fixed;
    top: 2px;
    right: 12px;
    z-index: 10110;
    -webkit-tap-highlight-color: transparent;
    visibility: visible !important;
    opacity: 1 !important;
  }

  .nav-menu {
    order: 2 !important;
  }

  .language-switcher {
    order: 3 !important;
    display: none !important;
  }

  /* Masquer le conteneur nav original en mobile; on utilise un drawer dédié #mobile-drawer */
  .site-header .nav-menu {
    display: none !important;
  }

  /* Burger base */
  .menu-toggle .lines {
    display: block;
    width: 28px;
    height: 2px;
    background: #ffffff !important;
    position: relative;
    transition: transform .25s ease, background-color .2s ease;
    will-change: transform;
    pointer-events: none;
  }

  .menu-toggle .lines:before,
  .menu-toggle .lines:after {
    content: '';
    position: absolute;
    left: 0;
    width: 28px;
    height: 2px;
    background: #ffffff !important;
    transition: transform .25s ease, top .25s ease, bottom .25s ease, background-color .2s ease;
    will-change: transform;
  }

  .menu-toggle .lines:before {
    top: -8px;
  }

  .menu-toggle .lines:after {
    bottom: -8px;
  }

  /* Panneau latéral (off-canvas) */
  /* Drawer mobile dédié (au niveau du
<body>) */
  #mobile-drawer {
    position: fixed;
    top: 0;
    right: 0;
    width: 100%;
    max-width: none;
    height: 100vh;
    background: #000000 !important;
    padding: 140px 0 16px;
    overflow-y: auto;
    z-index: 10100 !important;
    transform: translateX(100%);
    transition: transform 0.3s ease;
    will-change: transform;
    font-family: 'Jost', sans-serif;
  }

  #mobile-drawer .drawer-close {
    position: absolute;
    top: 16px;
    right: 16px;
    width: 36px;
    height: 36px;
    background: transparent;
    color: #ffffff;
    border: 0;
    outline: 0;
    cursor: pointer;
    z-index: 10050;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 28px;
    line-height: 1;
  }

  #mobile-drawer ul {
    list-style: none;
    margin: 0;
    padding: 0 40px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    width: 100%;
    gap: 0;
  }

  #mobile-drawer li {
    width: 100%;
    border-bottom: 1px solid #ffffff;
    opacity: 0;
    transform: translateX(20px);
    animation: slideInMenu 0.3s ease forwards;
  }

  #mobile-drawer li.menu-item-language {
    border-bottom: none !important;
  }

  #mobile-drawer a {
    display: block;
    width: 100%;
    padding: 22px 0;
    color: #ffffff !important;
    text-decoration: none;
    font-size: 20px;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 2px;
  }

  #mobile-drawer a:hover {
    color: #ffffff !important;
    opacity: 0.9;
    padding-left: 10px;
  }

  #mobile-drawer .menu-item-language a {
    border-bottom: none;
    font-weight: 600;
    color: #cccccc !important;
  }

  #mobile-drawer li:nth-child(1) {
    animation-delay: 0.1s;
  }

  #mobile-drawer li:nth-child(2) {
    animation-delay: 0.2s;
  }

  #mobile-drawer li:nth-child(3) {
    animation-delay: 0.3s;
  }

  #mobile-drawer li:nth-child(4) {
    animation-delay: 0.4s;
  }

  #mobile-drawer li:nth-child(5) {
    animation-delay: 0.5s;
  }

  #mobile-drawer li:nth-child(6) {
    animation-delay: 0.6s;
  }

  #mobile-drawer li:nth-child(7) {
    animation-delay: 0.7s;
  }

  #mobile-drawer li:nth-child(8) {
    animation-delay: 0.8s;
  }

  @keyframes slideInMenu {
    to {
      opacity: 1;
      transform: translateX(0);
    }
  }

  .is-menu-toggled-on #mobile-drawer,
  body.is-menu-toggled-on #mobile-drawer {
    transform: translateX(0);
  }

  /* Style spécial pour l'élément language dans le menu (comme Services) */
  .menu-item-language {
    width: 100%;
  }

  .menu-item-language a {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    padding: 16px 20px;
    border-bottom: none !important;
    font-weight: 600;
    color: #cccccc !important;
    background: transparent !important;
  }

  .menu-item-language a:hover {
    color: #ffffff !important;
    opacity: 0.9;
    padding-left: 10px;
  }

  .menu-item-language .lang-part {
    opacity: 0.8;
    font-weight: 600;
  }

  .menu-item-language .lang-part.active {
    opacity: 1;
    color: #d4af37;
  }

  .menu-item-language .lang-sep {
    margin: 0 6px;
    opacity: 0.6;
  }

  /* Etat ouvert comme About Us (utilise la classe globale) */
  /* legacy selectors kept for safety but drawer is primary */
  body.is-menu-toggled-on .nav-menu {
    transform: translateX(0) !important;
  }

  .is-menu-toggled-on .nav-menu {
    transform: translateX(0) !important;
  }

  /* Backdrop géré par un élément dédié (#menu-backdrop) ajouté dynamiquement en JS */
  body.is-menu-toggled-on .site-header .header-wrap:before {
    background: #000000 !important;
    opacity: 1 !important;
  }

  /* ==========================================================================
     FIX CONFLICTS MOBILE MENU - Raising Header Above Drawer
     ========================================================================== */
  body.is-menu-toggled-on .site-header {
    z-index: 10500 !important;
  }

  body.is-menu-toggled-on .site-header .site-branding {
    position: fixed !important;
    top: 20px !important;
    left: 20px !important;
    z-index: 10510 !important;
    pointer-events: none !important;
    display: flex !important;
    justify-content: flex-start !important;
    width: auto !important;
    opacity: 1 !important;
    visibility: visible !important;
  }

  body.is-menu-toggled-on .site-header .site-branding a {
    pointer-events: auto !important;
    display: block !important;
  }

  body.is-menu-toggled-on .menu-toggle {
    z-index: 10520 !important;
    position: fixed !important;
    top: 10px !important;
    right: 15px !important;
  }

  /* Burger Animation to X - Unified */
  body.is-menu-toggled-on .menu-toggle .lines {
    background-color: transparent !important;
  }

  body.is-menu-toggled-on .menu-toggle .lines:before {
    top: 0 !important;
    transform: rotate(45deg) !important;
    background-color: #ffffff !important;
  }

  body.is-menu-toggled-on .menu-toggle .lines:after {
    bottom: 0 !important;
    transform: rotate(-45deg) !important;
    background-color: #ffffff !important;
  }

  /* Hide redundant drawer internal close button */
  #mobile-drawer .drawer-close {
    display: none !important;
  }

  /* Colors and visibility in mobile */
  .site-header:not(.clone) .menu-toggle .lines,
  .site-header:not(.clone) .menu-toggle .lines:before,
  .site-header:not(.clone) .menu-toggle .lines:after {
    background-color: #ffffff !important;
  }

  /* Couleurs en mobile */
  .site-header:not(.clone) .nav-menu a,
  .site-header:not(.clone) .menu-toggle .lines,
  .site-header:not(.clone) .menu-toggle .lines:before,
  .site-header:not(.clone) .menu-toggle .lines:after {
    color: #ffffff !important;
    background-color: #ffffff !important;
  }

  body.is-menu-toggled-on .site-header:not(.clone) .nav-menu a,
  body.is-menu-toggled-on .site-header:not(.clone) .menu-toggle .lines,
  body.is-menu-toggled-on .site-header:not(.clone) .menu-toggle .lines:before,
  body.is-menu-toggled-on .site-header:not(.clone) .menu-toggle .lines:after {
    color: #ffffff !important;
    background-color: #ffffff !important;
  }

  /* Empêcher le scroll du fond quand le menu est ouvert */
  body.is-menu-toggled-on {
    overflow: hidden;
    touch-action: none;
  }

  html.is-menu-toggled-on,
  html.is-menu-toggled-on body {
    overflow: hidden;
  }

  /* Lisibilité de l'item actif en mobile */
  .nav-menu>ul>li.current-menu-item>a,
  .nav-menu>ul>li.current-menu-item>a:hover {
    color: #ffffff !important;
  }

  /* Backdrop cliquable */
  #menu-backdrop {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background: rgba(0, 0, 0, 0.5);
    z-index: 10020;
    backdrop-filter: blur(0px);
  }
}
