/* ================================================
   EUFONIE — custom-header.css  v1.0
   Responsive : Mobile / Tablette / Laptop / Desktop 1920px
   ================================================ */

/* ── Variables ────────────────────────────────── */

:root {
  --euf-purple:     #9E00A5;
  --euf-purple-rgb: 158, 0, 165;
  --euf-grad:       linear-gradient(120deg, #9E00A5 0%, #9E00A5 100%);
  --euf-blue:       #3163d8;
  --euf-white:      #FFFFFF;
  --euf-text:       #2727279e;
  --euf-shadow:     0 8px 32px rgba(0, 0, 0, 0.13);
  --euf-radius:     14px;
  --euf-h-desk:     78px;
  --euf-h-mob:      64px;
  --euf-tr:         0.27s cubic-bezier(0.4, 0, 0.2, 1);
  --euf-font:       'open sans', sans-serif;
}

*{
    box-sizing:border-box;
}
.container-wide {
  width: 100%;
  padding-right: var(--bs-gutter-x, 0.75rem);
  padding-left: var(--bs-gutter-x, 0.75rem);
  margin-right: auto;
  margin-left: auto;
}

/* Breakpoints pour container-wide */
@media (min-width: 576px) {
  .container-wide {
    max-width: 620px;
  }
}

@media (min-width: 768px) {
  .container-wide {
    max-width: 800px;
  }
}

@media (min-width: 992px) {
  .container-wide {
    max-width: 1100px;
  }
}

@media (min-width: 1200px) {
  .container-wide {
    max-width: 1320px;
  }
}

@media (min-width: 1400px) {
  .container-wide {
    max-width: 1520px;
  }
}

/* ── Scoped Reset ─────────────────────────────── */
#euf-header,
#euf-header * { box-sizing: border-box; }
#euf-header ul  { list-style: none; padding: 0; margin: 0; }
#euf-header a   { text-decoration: none; }
#euf-header button { cursor: pointer; }

/* ── Coquille principale ──────────────────────── */
#euf-header {
  /* position: sticky;
  top: 10px; */

position: sticky;
    /* position: fixed; */
    top: 10px;
    /* left: 50%;
    transform: translateX(-50%); */

    /* width: 100%; */



  z-index: 9000;
  width: 100%;
  background: transparent;
  font-family: var(--euf-font);
  padding: 0 25px;
}



/* ── Wrapper interne (max 1920px) ─────────────── */
.euf-wrap {
  max-width: 1920px;
  margin: 0 auto;
     padding: 0px 20px;
  height: var(--euf-h-desk);
  display: flex;
  align-items: center;
  gap: 8px;

  
  background: var(--euf-white);
  border-radius: 25px;
 border-radius: 25px;
 -webkit-box-shadow: 0px 1px 5px -1px rgba(0, 0, 0, 0.5);
 box-shadow: 0px 1px 5px -1px rgba(0, 0, 0, 0.5);
}




/* ── Logo ─────────────────────────────────────── */
.euf-logo { flex-shrink: 0; }
.euf-logo a { display: flex; align-items: center; }
.euf-logo img,
.euf-logo .custom-logo { height: 42px; width: auto; display: block; }
.euf-logo-text {
  font-size: 22px;
  font-weight: 800;
  color: var(--euf-text);
  font-style: normal;
  letter-spacing: -0.3px;
}
.euf-logo-text em {
  font-style: normal;
  color: var(--euf-purple);
}

/* ── Navigation desktop ───────────────────────── */
.euf-nav {
  flex: 1;
  margin-left: 20px;
}
.euf-navlist {
  display: flex;
  align-items: center;
  gap: 2px;
}
.euf-item { position: relative; }

.euf-link {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 8px 14px;
  color: var(--euf-text);
  font-size: 13px;
  font-weight: 500;
  border-radius: 8px;
  white-space: nowrap;
  background: none;
  border: none;
  font-family: var(--euf-font);
  line-height: 1.4;
  transition: color var(--euf-tr), background var(--euf-tr);
}
.euf-link:hover { color: var(--euf-purple); background: rgba(var(--euf-purple-rgb), 0.06); }

.euf-item.is-open > .euf-link { color: var(--euf-purple); }

.euf-active {
  text-decoration: underline;
  text-underline-offset: 5px;
  text-decoration-thickness: 2px;
  font-weight: 600;
}

/* Chevron desktop */
.euf-chev {
  font-size: 11px;
  pointer-events: none;
  color: inherit;
  transition: transform var(--euf-tr);
}
/* ↓ fermé → ↑ ouvert */
.euf-item.is-open > .euf-link .euf-chev { transform: rotate(180deg); }

/* ── Dropdown panel ───────────────────────────── */


/* .euf-item.is-open > .euf-drop {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  pointer-events: all;
} */


/* 3. Ouverture : CSS hover ET classe JS .is-open
   (les deux peuvent déclencher l'affichage)     */
/* .euf-item.euf-has-drop:hover > .euf-drop, */
/* .euf-item.euf-has-drop.is-open > .euf-drop {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  pointer-events: all;
} */


/* 4. Lien actif : hover OU is-open ─────────────── */
/* .euf-item.euf-has-drop:hover > .euf-link,
.euf-item.euf-has-drop.is-open > .euf-link {
  color: var(--euf-purple);
  background: rgba(var(--euf-purple-rgb), 0.06);
} */

/* 5. Chevron ↑ : hover OU is-open ──────────────── */
/* .euf-item.euf-has-drop:hover > .euf-link .euf-chev,
.euf-item.euf-has-drop.is-open > .euf-link .euf-chev {
  transform: rotate(180deg);
} */

/* 6. Délai de fermeture CSS (backup) ───────────── */
/* .euf-item.euf-has-drop:not(:hover):not(.is-open) > .euf-drop {
  transition-delay: 80ms;
} */



/* ══════════════════════════════════════════════════
   DROPDOWN — Contrôlé UNIQUEMENT par JS (.is-open)
   Zéro CSS :hover → zéro conflit → zéro clignotement
═══════════════════════════════════════════════════ */

/* Dropdown fermé par défaut */
.euf-drop {
  position: absolute;
  top: calc(100% + 15px);
  left: 0;
  min-width: 250px;
  background: var(--euf-white);
  border-radius: var(--euf-radius);
  box-shadow: var(--euf-shadow);
  padding: 8px 0;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-8px);
  pointer-events: none;
  z-index: 9100;
  transition: opacity var(--euf-tr), transform var(--euf-tr), visibility var(--euf-tr);
  /* PAS de transition-delay : le JS gère les délais */
}

/* Pont invisible : couvre le gap entre trigger et panel */
.euf-drop::before {
  content: '';
  position: absolute;
  top: -14px;
  left: -8px;
  right: -8px;
  height: 14px;
  background: transparent;
  pointer-events: auto;
}

/* Dropdown ouvert — déclenché UNIQUEMENT par .is-open (JS) */
.euf-item.euf-has-drop.is-open > .euf-drop {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  pointer-events: all;
}

/* Lien actif quand ouvert */
.euf-item.euf-has-drop.is-open > .euf-link {
  color: var(--euf-purple);
  background: rgba(var(--euf-purple-rgb), 0.06);
}

/* Chevron ↑ quand ouvert */
.euf-item.euf-has-drop.is-open > .euf-link .euf-chev {
  transform: rotate(180deg);
}




/* Items dans le dropdown */
.euf-droplist li { position: relative; }
.euf-droplist li > a,
.euf-droplist li > .euf-sub-trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 20px;
  color: var(--euf-text);
  font-size: 13px;
  font-weight: 400;
  white-space: nowrap;
  gap: 8px;
  background: none;
  border: none;
  width: 100%;
  text-align: left;
  font-family: var(--euf-font);
  line-height: 1.4;
  transition: color var(--euf-tr), background var(--euf-tr);
}
.euf-droplist li > a:hover,
.euf-droplist li > .euf-sub-trigger:hover {
  color: var(--euf-purple);
  background: rgba(var(--euf-purple-rgb), 0.05);
}

/* Flèche du sous-sous-menu */
.euf-sub-arrow {
  font-size: 11px;
  color: #4a8fd9;
  flex-shrink: 0;
  transition: transform var(--euf-tr);
}

/* ── Sous-sous-menu (flyout) ──────────────────── */
.euf-has-sub { position: relative; }
.euf-subdrop {
  position: absolute;
  left: 100%;
  top: -8px;
  min-width: 230px;
  background: var(--euf-white);
  border-radius: var(--euf-radius);
  box-shadow: var(--euf-shadow);
  padding: 8px 0;
  opacity: 0;
  visibility: hidden;
  transform: translateX(-8px);
  pointer-events: none;
  z-index: 9200;
  transition: opacity var(--euf-tr), transform var(--euf-tr), visibility var(--euf-tr);
}
/* Ouverture au survol ET au clic (JS) */
.euf-has-sub:hover > .euf-subdrop,
.euf-has-sub.is-sub-open > .euf-subdrop {
  opacity: 1;
  visibility: visible;
  transform: translateX(0);
  pointer-events: all;
}
.euf-subdrop ul li a {
  display: block;
  padding: 10px 20px;

  color: var(--euf-text);
  font-size: 13px;
  font-weight: 400;
  font-family: var(--euf-font);
  transition: color var(--euf-tr), background var(--euf-tr);
  white-space: nowrap;
}
.euf-subdrop ul li a:hover {
  color: var(--euf-purple);
  background: rgba(var(--euf-purple-rgb), 0.05);
}

/* Shortcode : espace minimum pour layout 2 colonnes */
.euf-drop--shortcode {
  min-width: 320px;
  padding: 0;
}
/* Si le shortcode rend son propre titre/bouton, on le masque */
.euf-drop--shortcode > h3,
.euf-drop--shortcode > .dropdown-title,
.euf-drop--shortcode > .custom-dropdown-header { display: none; }

/* ── Boutons CTA ──────────────────────────────── */
.euf-cta {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
  margin-left: auto;
}
.euf-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 9px 22px;
  border-radius: 50px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.5px;
  white-space: nowrap;
  font-family: var(--euf-font);
  transition: all var(--euf-tr);
}
.euf-btn--outline {
  border: 2px solid var(--euf-purple);
  color: var(--euf-purple);
  background: transparent;
}
.euf-btn--outline:hover {
  background: var(--euf-purple);
  color: var(--euf-white);
}
.euf-btn--fill {
  background: var(--euf-blue);
  color: var(--euf-white);
  border: 2px solid var(--euf-blue);
}
.euf-btn--fill:hover {
  background: #124BB0;
  border-color: #124BB0;
}

/* ── Hamburger ────────────────────────────────── */
.euf-burger {
  display: none;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  gap: 5px;
  background: none;
  border: none;
  padding: 6px;
  width: 40px;
  height: 40px;
  flex-shrink: 0;
  /* Positionné à gauche en mobile via CSS responsive */
}
.euf-burger span {
  display: block;
  width: 24px;
  height: 2px;
  background: #fff;
  border-radius: 2px;
  transition: transform var(--euf-tr), opacity var(--euf-tr), width var(--euf-tr);
}
/* Animation X à l'ouverture */
.euf-burger.is-open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.euf-burger.is-open span:nth-child(2) { opacity: 0; width: 0; }
.euf-burger.is-open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* ================================================
   NAVIGATION MOBILE (tiroir accordion)
   ================================================ */
.euf-mobile-nav {
  display: none;
  background: var(--euf-grad);
  border-top: 1px solid rgba(255, 255, 255, 0.15);
  overflow-y: auto;
  max-height: calc(100svh - var(--euf-h-mob));
  -webkit-overflow-scrolling: touch;
}
.euf-mobile-nav.is-open { display: block; }

.euf-ml-list > li {
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

/* Lien / bouton mobile */
.euf-ml {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 15px 24px;
  color: #fff;
  font-size: 15px;
  font-weight: 500;
  text-decoration: none;
  font-family: var(--euf-font);
}
.euf-ml-btn {
  background: none;
  border: none;
  text-align: left;
  font-size: 15px;
}
.euf-ml:hover,
.euf-ml-btn:hover { background: rgba(255, 255, 255, 0.08); }

/* Chevron mobile */
.euf-ml-chev {
  font-size: 12px;
  flex-shrink: 0;
  transition: transform var(--euf-tr);
}
.euf-ml-has-drop.is-open > .euf-ml-btn > .euf-ml-chev { transform: rotate(180deg); }

/* Tiroir accordion */
.euf-ml-drop { display: none; background: rgba(0, 0, 0, 0.18); }
.euf-ml-has-drop.is-open > .euf-ml-drop { display: block; }

.euf-ml-drop ul li a,
.euf-ml-drop ul li .euf-ml-btn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 24px 12px 40px;
  color: rgba(255, 255, 255, 0.85);
  font-size: 14px;
  font-weight: 400;
  text-decoration: none;
  background: none;
  border: none;
  border-bottom: 1px solid rgba(255, 255, 255, 0.07);
  width: 100%;
  text-align: left;
  font-family: var(--euf-font);
  transition: color var(--euf-tr), background var(--euf-tr);
}
.euf-ml-drop ul li:last-child > a { border-bottom: none; }
.euf-ml-drop ul li a:hover,
.euf-ml-drop ul li .euf-ml-btn:hover {
  color: #fff;
  background: rgba(255, 255, 255, 0.08);
}

/* 3ème niveau mobile (Nos pôles) */
.euf-ml-sublevel ul li a { padding-left: 56px !important; }

/* Boutons CTA mobile */
.euf-ml-ctas {
  display: flex;
  gap: 12px;
  padding: 16px 24px;
  border-bottom: none;
}
.euf-mob-btn {
  flex: 1;
  text-align: center;
  padding: 10px 16px;
  border-radius: 50px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.5px;
  text-decoration: none;
  font-family: var(--euf-font);
  transition: all var(--euf-tr);
}
.euf-mob-btn--outline {
  border: 2px solid rgba(255, 255, 255, 0.6);
  color: #fff;
  background: transparent;
}
.euf-mob-btn--outline:hover { background: rgba(255, 255, 255, 0.15); }
.euf-mob-btn--fill {
  background: var(--euf-blue);
  color: #fff;
  border: 2px solid var(--euf-blue);
}
.euf-mob-btn--fill:hover { background: #124BB0; }

/* ================================================
   RESPONSIVE BREAKPOINTS
   ================================================ */

/* ── Tablette + Laptop → menu hamburger (≤ 1024px) ── */
@media (max-width: 1024px) {

    
  #euf-header {
        background: transparent;
    box-shadow: none;

    position: fixed;
    top: 0px;
    left: 50%;
    transform: translateX(-50%);

    width: 100%;
    max-width: 1024px; /* optionnel */

    /* top: 40px; */
      /* top: 50px !important; */
  }
  .euf-wrap {
    margin-top: 50px;
    height: var(--euf-h-mob);
      background: transparent;
    justify-content: center;
    position: relative;
  }
  .euf-nav,
  .euf-cta { display: none; }

  .euf-burger {
    display: flex;
    position: absolute;
    left: 20px;
    top: 50%;
    transform: translateY(-50%);
  }



  .euf-logo img,
  .euf-logo .custom-logo { filter: brightness(0) invert(1); }
  .euf-logo-text { color: #fff; }
  .euf-logo-text em { color: rgba(255, 255, 255, 0.7); }

}

/* ── Desktop moyen : 1025px – 1280px ── */
@media (min-width: 1025px) and (max-width: 1280px) {
  /* .euf-wrap { padding: 0 32px; } */
  .euf-link { font-size: 13px; padding: 7px 10px; }
  .euf-btn  { font-size: 12px; padding: 8px 16px; }
}

/* ── Desktop large : 1281px – 1440px ── */
@media (min-width: 1281px) and (max-width: 1440px) {
  /* .euf-wrap { padding: 0 40px; } */
}

/* ── Desktop XL : 1441px+ ── */
@media (min-width: 1441px) {
  /* .euf-wrap { padding: 0 80px; } */
  .euf-link { font-size: 13px; }
  .euf-btn  { font-size: 14px; padding: 10px 26px; }
}

/* ── Ultra-wide : ≥ 1920px ── */
@media (min-width: 1920px) {
  /* .euf-wrap { padding: 0 120px; } */
}


/* ── Petit mobile : ≤ 480px ── */
@media (max-width: 480px) {
  /* .euf-wrap { padding: 0 16px; } */
  .euf-burger { left: 16px; }
  .euf-ml-ctas { flex-direction: column; gap: 8px; }
  .euf-mob-btn { flex: none; width: 100%; }
}




/* ================================================
   DROPDOWN VBNS — "Vos besoins, nos solutions"
   Desktop uniquement (mobile : inchangé)
   ================================================ */

/* Panel principal ─────────────────────────────── */
.euf-drop--vbns {
  min-width: 640px;
  padding: 20px 16px;
  left: 0;
}

/* Grille 2 colonnes ───────────────────────────── */
.euf-vbns-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
}

/* Ligne verticale entre les 2 colonnes */
.euf-vbns-col:first-child {
  border-right: 1px solid #ebebeb;
  padding-right: 12px;
}
.euf-vbns-col:last-child {
  padding-left: 12px;
}

/* Chaque item ─────────────────────────────────── */
.euf-vbns-item {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 9px 10px;
  border-radius: 10px;
  color: var(--euf-text);
  text-decoration: none;
  font-size: 13px;
  font-weight: 500;
  font-family: var(--euf-font);
  line-height: 1.35;
  border: 1.5px solid transparent;
  transition: border-color var(--euf-tr), box-shadow var(--euf-tr),
              background var(--euf-tr), color var(--euf-tr);
}
.euf-vbns-item:hover {
  border-color: #d0e4fb;
  box-shadow: 0 2px 10px rgba(26, 111, 240, 0.09);
  background: #f5f9ff;
  color: #1A6DF0;
}

/* Cercle icône bleu ──────────────────────────── */
.euf-vbns-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  min-width: 48px;
  border-radius: 50%;
  background: #1A6DF0;
  overflow: hidden;
  flex-shrink: 0;
  transition: background var(--euf-tr);
}
.euf-vbns-item:hover .euf-vbns-icon {
  background: #124BB0;
}
.euf-vbns-icon img {
  width: 28px;
  height: 28px;
  object-fit: contain;
  display: block;
}

/* Label texte ────────────────────────────────── */
.euf-vbns-label {
  flex: 1;
  color: inherit;
}

/* Ligne séparatrice horizontale (colonne gauche) */
.euf-vbns-divider {
  height: 1px;
  background: #ebebeb;
  margin: 10px 10px;
  list-style: none;
}

/* Sécurité : le dropdown VBNS ne s'affiche
   JAMAIS sur mobile (la nav desktop est déjà
   cachée, double protection) */
@media (max-width: 1024px) {
  .euf-drop--vbns { display: none !important; }
}


  .header-carriere-container {
  position: relative;
  overflow: hidden;
  padding: 0.55rem 1.3rem;
  border-radius: 999px;

  color: #9E00A5 !important;
  transform: translateY(-1px);
  border: 1px solid #9E00A5;

  font-size: 14px;

  font-weight: 700;

  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  text-decoration: none;
  text-transform: uppercase;
  cursor: pointer;
  white-space: nowrap;
  transition: all 0.4s cubic-bezier(0.68, -0.55, 0.265, 1.55);
    box-shadow: 0 1px 7px rgba(0, 0, 0, 0.08);
    z-index: 1;
    margin: 10px;
}

  a.header-carriere-container > span{
    color: #9E00A5 !important;
  }

.header-carriere-container span {
  position: relative;
  z-index: 1;
}

.header-carriere-container:hover  {
  border: 1px solid #9E00A5;
  background: #9E00A5 !important;
}


 .header-carriere-container:hover span {
  color: #ffffff !important;  
}
.header-carriere-container:hover .header-carriere-container-icon {
  transform: translateX(4px);
}

.header-carriere-container:hover>.before, .header-carriere-container:hover>.after {
   height: 50%;
   background: #9E00A5 !important;
}


.header-carriere-container span.after {
    bottom: 0;
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    height: 0;
    background: #9E00A5;
    -webkit-transition: background .4s, height .4s;
    transition: background .4s, height .4s;
    z-index: -1;
}

.header-carriere-container span.before {
    top: 0;
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    height: 0;
    background: #9E00A5;
    -webkit-transition: background .4s, height .4s;
    transition: background .4s, height .4s;
    z-index: -1;
}




  .header-contact-container {
  position: relative;
  overflow: hidden;
  padding: 0.55rem 1.3rem;
  border-radius: 999px;
  border: 1px solid #3163d8;

  background: #3163d8;
  font-size: 14px;

  font-weight: 700;

  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  text-decoration: none;
  text-transform: uppercase;
  cursor: pointer;
  white-space: nowrap;
  transition: all 0.4s cubic-bezier(0.68, -0.55, 0.265, 1.55);
    box-shadow: 0 1px 7px rgba(0, 0, 0, 0.08);
    z-index: 1;
    margin: 10px;
}

  a.header-contact-container > span{
  color: #ffffff !important;
  }

.header-contact-container span {
  position: relative;
  z-index: 1;
}

.header-contact-container:hover  {
  color: #3163d8;
  transform: translateY(-1px);
  border: 1px solid #3163d8;

}

 .header-contact-container:hover span {
  color: #3163d8 !important;  
}
.header-contact-container:hover .header-contact-container-icon {
  transform: translateX(4px);
}
.header-contact-container:hover>.before, .header-contact-container:hover>.after {
    height: 50%;
    background: #fff !important;
}

.header-contact-container span.after {
    bottom: 0;
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    height: 0;
    background: #3163d8;
    -webkit-transition: background .4s, height .4s;
    transition: background .4s, height .4s;
    z-index: -1;
}

.header-contact-container span.before {
    top: 0;
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    height: 0;
    background: #3163d8;
    -webkit-transition: background .4s, height .4s;
    transition: background .4s, height .4s;
    z-index: -1;
}