:root{
  --favo-blue:#154F9E;
  --favo-blue-light:#5B8ED5;
  --favo-blue-dark:#072D61;
  --favo-red:#8A2332;
  --favo-red-light:#DC808D;
  --favo-red-dark:#640916;
  --favo-white:#fff;
  --favo-text:#fff;
  --favo-shadow:rgba(3,19,44,.18);
}
/* Scope-safe variables so Elementor can't override inside our menu */
:where(.favo-ll-badge, nav.favo-menu, .favo-mobile){
  --favo-blue:#154F9E;
  --favo-blue-light:#5B8ED5;
  --favo-blue-dark:#072D61;
  --favo-red:#8A2332;
  --favo-red-light:#DC808D;
  --favo-red-dark:#640916;
  --favo-white:#fff;
  --favo-text:#fff;
  --favo-shadow:rgba(3,19,44,.18);
}

/* ==========================================================================
   MENU FAVO — Personnalisation visuelle (demande 2025-08-13)
   Objectifs :
   1) Utiliser **Cera Pro** pour les titres de menu (niveau 2 desktop, titres mobile, badge titre)
      et **Tahoma** pour tous les textes secondaires (niveau 3, phrase du badge, mobile secondaire).
   2) Centrer le **menu desktop** horizontalement.
   3) Ne rien modifier de la logique : uniquement du **CSS**.
   --------------------------------------------------------------------------
   NOTE : Cera Pro est déjà installée côté site. On la déclare simplement en
   priorité dans les stacks de fontes ci-dessous, avec des fallbacks sûrs.
   ========================================================================== */

/* ---------- 1) Pile de polices globale (fallback Tahoma) ---------- */
.favo-menu{
  /* Tahoma en texte courant (fallbacks sûrs) */
  font-family: "Tahoma", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
}

/* ---------- 2) Titres en Cera Pro ----------
   On force Cera Pro sur :
   - Liens de niveau 2 (desktop)
   - Titres mobile (liens de niveau 2 mobile)
   - Titre du badge (à gauche du logo)
-------------------------------------------------------------------- */
.favo-level2 > .favo-item > a,
.favo-level2-mobile a,
.favo-l1-badge .favo-l1-title{
  font-family: "Cera Pro", "Tahoma", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  font-weight: 700;           /* gras pour un rendu net */
  letter-spacing: .2px;       /* léger interlettrage pour l'élégance */
}

/* ---------- 3) Textes secondaires en Tahoma ----------
   - Contenu des sous-menus de niveau 3 (desktop et mobile)
   - Phrase sous le titre dans le badge
-------------------------------------------------------------------- */
.favo-level3 a,
.favo-level3-mobile a,
.favo-l1-badge .favo-l1-phrase{
  font-family: "Tahoma", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
}

/* ---------- 4) Centrage du menu desktop ----------
   On centre la liste de niveau 2 (barre sticky).
   - justify-content: center pour positionner les items au centre
   - on garde le gap existant pour l'espacement entre items
-------------------------------------------------------------------- */
.favo-level2{
  justify-content: center !important; /* centrage horizontal */
}

/* ---------- 5) Ajustements de lisibilité (optionnels, doux) ----------
   - Taille de base légèrement renforcée sur desktop pour les titres
   - Soulignement animé plus visible (épaisseur 3px)
-------------------------------------------------------------------- */
.favo-level2 > .favo-item > a{
  font-size: 1.5rem;         /* léger boost, sans casser la grille */
  line-height: 1.2;
  position: relative;
}
.favo-level2 > .favo-item > a::after{
  height: 3px;                /* soulignement plus visible */
}

/* ---------- 6) Compatibilité : aucun changement structurel ----------
   Tout le positionnement dropdown (niveau 3) reste inchangé ;
   le centrage ne modifie pas les positions absolues des sous-menus.
   ------------------------------------------------------------------ */


/* Menu Favo — v1.5.7 visual polish */


.favo-menu{position:relative;font-family:inherit;}
.favo-menu .favo-desktop{position:sticky;top:0;z-index:50;background:var(--favo-blue);box-shadow:0 4px 12px var(--favo-shadow);}
.favo-menu.favo-variant-campus .favo-desktop{background:var(--favo-red);}

.favo-level2{display:flex;gap:2rem;list-style:none;margin:0;padding:.75rem 1.25rem;align-items:center;justify-content:flex-start;}
.favo-item>a{color:var(--favo-white);text-decoration:none;font-weight:600;letter-spacing:.2px;position:relative;padding:.25rem 0;display:inline-block;line-height:1.2;}
.favo-item>a::after{content:"";position:absolute;left:0;bottom:-3px;width:100%;height:2px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .25s ease;}
.favo-item>a:hover::after{transform:scaleX(1);}
.favo-item.is-active>a::after{transform:scaleX(1);}

.favo-item.has-children{position:relative;padding-right:.9rem;}
.favo-item.has-children>a{padding-right:.35rem;}
.favo-item.has-children::after{content:"▼";font-size:.7rem;opacity:.9;position:absolute;right:-.2rem;top:50%;transform:translateY(-50%);}

/* Level3 dropdown */
.favo-level3{position:absolute;left:0;top:calc(100% + 8px);min-width:260px;background:#fff;border-radius:.6rem;padding:.4rem 0;list-style:none;box-shadow:0 14px 40px rgba(3,19,44,.18);display:none;}
.favo-item:hover>.favo-level3{display:block;}
.favo-level3::before{content:"";position:absolute;top:-8px;left:18px;border:8px solid transparent;border-bottom-color:#fff;}
.favo-level3 a{display:block;padding:.65rem 1rem;color:#123;text-decoration:none;transition:background .15s ease;}
.favo-level3 a:hover{background:#f3f6fb;}

/* Mobile */
.favo-mobile{display:none;}
.favo-burger{background:transparent;border:0;padding:.6rem 1rem;color:#fff;font-size:1.1rem;}
.favo-burger-icon{display:inline-block;width:22px;height:2px;background:#fff;box-shadow:0 6px 0 #fff,0 -6px 0 #fff;vertical-align:middle;}
.favo-panel{position:fixed;inset:0 0 0 0;background:#0b2a5a;z-index:9999;color:#fff;overflow:auto;opacity:0;transform:translateY(-6px);transition:opacity .15s ease, transform .15s ease;}
.favo-panel.is-open{opacity:1;transform:none;}
.favo-panel-header{display:flex;align-items:center;gap:.75rem;padding:1rem;border-bottom:1px solid rgba(255,255,255,.15);}
.favo-back,.favo-close{background:#0a234b;border:1px solid rgba(255,255,255,.2);padding:.45rem .75rem;border-radius:.6rem;color:#fff;}
.favo-l1-title{color:#fff;text-decoration:none;font-weight:800;margin-left:auto;margin-right:auto;}
.favo-level2-mobile,.favo-level1-mobile{list-style:none;margin:0;padding:1rem;}
.favo-level2-mobile>li,.favo-level1-mobile>li{padding:.35rem 0;}
.favo-level2-mobile a,.favo-level1-mobile a{color:#fff;text-decoration:none;font-size:1.1rem;}
.favo-expand{margin-left:.5rem;background:transparent;border:1px solid rgba(255,255,255,.35);border-radius:.4rem;color:#fff;padding:.1rem .4rem;line-height:1;}
.favo-level3-mobile{list-style:none;margin:.35rem 0 .6rem 1rem;padding:0;}
.favo-level3-mobile a{font-size:.98rem;opacity:.92}

/* Badge à gauche du logo */
.favo-l1-badge{display:flex;align-items:center;height:100%;}
.favo-l1-badge-link{display:flex;flex-direction:column;gap:.15rem;padding:.5rem .9rem;background:var(--favo-blue);color:#fff;border-radius:.6rem;text-decoration:none;box-shadow:0 4px 12px var(--favo-shadow);}
.favo-variant-campus .favo-l1-badge-link{background:var(--favo-red);}
.favo-l1-title{font-weight:800;letter-spacing:.2px;}
.favo-l1-phrase{font-size:.9rem;opacity:.92}

/* Body lock when panel is open */
.favo-lock-scroll{overflow:hidden;}

/* Responsive */
@media (max-width: 1024px){
  .favo-menu .favo-desktop{display:none;}
  .favo-mobile{display:block;background:var(--favo-blue);position:sticky;top:0;z-index:60;box-shadow:0 4px 12px var(--favo-shadow);}
  .favo-menu.favo-variant-campus .favo-mobile{background:var(--favo-red);}
}
@media (min-width: 1025px){
  .favo-mobile{display:none;}
}


/* ===================== Patch v1.5.16 =====================
   - Supprimer la fine ligne résiduelle au-dessus
   - Ajouter une bordure basse pour renforcer l'effet d'underline
   - Corriger la "pilule" sur les items avec niveau 3
   - Aucun arrondi
   ======================================================== */

/* Reset des marges/bordures parasites du conteneur */
nav.favo-menu .favo-desktop{
  margin:0 !important;
  border-top:0 !important;
  padding-top:0;
  padding-bottom:0;
  box-shadow: none; /* si ton thème en ajoute une, on repart propre */
}
/* Bordure basse (même épaisseur que l'underline) */
nav.favo-menu .favo-desktop{
  border-bottom:3px solid rgba(255,255,255,.5);
}

/* Le UL ne crée pas de "traits" par marges verticales */
nav.favo-menu .favo-level2{
  margin:0 !important;
  padding-top:0.35rem;
  padding-bottom:0.35rem;
}

/* Pilule pleine-hauteur sans arrondi, y compris sur items avec niveau 3 */
nav.favo-menu .favo-level2 > .favo-item{
  position:relative;
  border-radius:0 !important;
  overflow:visible;
}
nav.favo-menu .favo-level2 > .favo-item::before{
  content:""; position:absolute; inset:0; border-radius:0;
  background:transparent; transition:background .18s ease; z-index:0; pointer-events:none;
}
nav.favo-menu .favo-level2 > .favo-item:hover::before,
nav.favo-menu .favo-level2 > .favo-item:focus-within::before{
  background:#5B8ED5;
}
/* Lien occupe toute la brique, texte blanc, underline conservé */
nav.favo-menu .favo-level2 > .favo-item > a{
  display:block;
  color:#fff;
  position:relative; z-index:1;
  padding:.55rem 1rem;
  background:transparent !important;
  text-decoration:none;
}

/* Inclure le chevron dans le lien (et sous l'underline) */
nav.favo-menu .favo-level2 > .favo-item.has-children::after{ display:none; }
nav.favo-menu .favo-level2 > .favo-item.has-children > a{
  padding-right:1.4rem;
}
nav.favo-menu .favo-level2 > .favo-item.has-children > a::before{
  content:"\25BC";
  position:absolute; right:.35rem; top:50%; transform:translateY(-50%);
  font-size:.75rem; color:#fff; opacity:.95;
}

/* Dropdown : pas d'écart vertical pour éviter les "trous" lors du passage */
nav.favo-menu .favo-level3{
  top:100%; margin-top:0; z-index:10;
}

/* Bridge invisible pour traverser la jonction item → dropdown sans perdre le hover */
nav.favo-menu .favo-item.has-children::after{
  content:""; position:absolute; left:0; right:0; bottom:-8px; height:8px;
  background:transparent; display:block;
}

/* Actifs en gras (N2 et N3) */
nav.favo-menu .favo-item.is-active > a{ font-weight:700; }
nav.favo-menu .favo-level3 a.is-active,
nav.favo-menu .favo-level3 li.is-active > a{ font-weight:700; }

/* Var. campus : même règles (hérite du blanc/bleu) */
nav.favo-menu.favo-variant-campus .favo-desktop{ border-bottom-color: rgba(255,255,255,.5); }


/* === v1.5.19 overrides — desktop bar cleanup ===
   - Suppression complète des bordures haute/basse sur la barre du menu
   - Gras uniquement sur l'item actif de niveau 2
   - Aucun changement de logique ni de structure
*/
nav.favo-menu .favo-desktop,
nav.favo-menu .favo-desktop > ul.favo-level2{
  border: 0 !important;
  border-top: 0 !important;
  border-bottom: 0 !important;
  box-shadow: none !important;
}
/* Poids normal par défaut pour les liens de niveau 2 */
nav.favo-menu .favo-level2 > .favo-item > a{
  font-weight: 400 !important;
}
/* Gras uniquement sur l'actif de niveau 2 */
nav.favo-menu .favo-item.is-active > a{
  font-weight: 700 !important;
}



/* === v1.5.22 (safe overrides) ===========================================
   - Supprime l'espace/ligne en haut de la barre de menu
   - Passe le niveau 3 en Cera Pro avec fallback Tahoma
   - AUCUNE autre modification
=========================================================================== */
nav.favo-menu .favo-desktop > ul.favo-level2{
  padding-top: 0 !important;
  margin-top: 0 !important;
  border-top: none !important;
}

/* Niveau 3 (desktop + mobile) en Cera Pro */
nav.favo-menu .favo-level3 a,
nav.favo-menu .favo-level3-mobile a{
  font-family: "Cera Pro","Tahoma",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif !important;
}



/* === v1.5.25 campus palette tweaks === */
/* Hover pill on level2 for campus */
nav.favo-menu.favo-variant-campus .favo-level2 > .favo-item:hover::before,
nav.favo-menu.favo-variant-campus .favo-level2 > .favo-item:focus-within::before{
  background: #DC808D !important;
}

/* Level3 (dropdown) tones in campus variant */
nav.favo-menu.favo-variant-campus .favo-level3{
  /* keep white card but align accents to red family */
  border-color: rgba(138,35,50,.25);
}
nav.favo-menu.favo-variant-campus .favo-level3 a{
  /* text stays dark; font already Cera Pro set earlier */
}
nav.favo-menu.favo-variant-campus .favo-level3 a:hover{
  background: #F7E3E6 !important; /* soft red tint */
}



/* === CSS fix campus (only) — v1.5.25 cssfix ===============================
   Objectif : supprimer tout résidu bleu dans les sous-menus (niveau 3) et
   basculer le texte/hover sur la palette campus (rouge).
   Aucune autre modification.
============================================================================ */
nav.favo-menu.favo-variant-campus .favo-level3 a {
  color: #8A2332 !important; /* rouge campus */
  font-family: "Cera Pro","Tahoma",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif !important;
}
nav.favo-menu.favo-variant-campus .favo-level3 a:hover {
  background: #F7E3E6 !important; /* léger fond rosé pour le hover */
  color: #8A2332 !important;
}
/* Optionnel: harmonise la bordure de la carte sous-menu */
nav.favo-menu.favo-variant-campus .favo-level3 {
  border-color: rgba(138,35,50,.25) !important;
}



/* ======================================================================
   v1.5.27c — Patch MOBILE/TABLETTE UNIQUEMENT (fond + chevrons actifs)
   ====================================================================== */
@media (max-width: 1024px) {
  /* ===== FOND panneau mobile (renforcé) ===== */
  nav.favo-menu [class*="mobile"],
  nav.favo-menu [class*="offcanvas"],
  nav.favo-menu [class*="drawer"],
  nav.favo-menu [class*="panel"],
  nav.favo-menu [class*="overlay"],
  nav.favo-menu .favo-mobile,
  nav.favo-menu .favo-mobile *,
  nav.favo-menu .favo-mobile-panel,
  nav.favo-menu .favo-offcanvas,
  nav.favo-menu .favo-offcanvas .favo-mobile,
  nav.favo-menu .favo-mobile-menu {
    color: #FFFFFF !important;
  }
  nav.favo-menu [class*="mobile"],
  nav.favo-menu [class*="offcanvas"],
  nav.favo-menu [class*="drawer"],
  nav.favo-menu [class*="panel"],
  nav.favo-menu [class*="overlay"],
  nav.favo-menu .favo-mobile,
  nav.favo-menu .favo-mobile-panel,
  nav.favo-menu .favo-offcanvas,
  nav.favo-menu .favo-offcanvas .favo-mobile,
  nav.favo-menu .favo-mobile-menu {
    background: #154F9E !important;
  }
  /* Variante Campus */
  nav.favo-menu.favo-variant-campus [class*="mobile"],
  nav.favo-menu.favo-variant-campus [class*="offcanvas"],
  nav.favo-menu.favo-variant-campus [class*="drawer"],
  nav.favo-menu.favo-variant-campus [class*="panel"],
  nav.favo-menu.favo-variant-campus [class*="overlay"],
  nav.favo-menu.favo-variant-campus .favo-mobile,
  nav.favo-menu.favo-variant-campus .favo-mobile-panel,
  nav.favo-menu.favo-variant-campus .favo-offcanvas,
  nav.favo-menu.favo-variant-campus .favo-offcanvas .favo-mobile,
  nav.favo-menu.favo-variant-campus .favo-mobile-menu {
    background: #8A2332 !important;
    color: #FFFFFF !important;
  }

  /* ===== Chevrons (boutons d'expansion) ===== */
  /* Etats par défaut : style "pill" harmonisé au thème sans rose */
  nav.favo-menu .favo-mobile .favo-toggle,
  nav.favo-menu .favo-mobile .favo-caret,
  nav.favo-menu .favo-mobile .chevron,
  nav.favo-menu .favo-mobile [class*="chevron"],
  nav.favo-menu .favo-mobile [class*="caret"],
  nav.favo-menu .favo-mobile [aria-haspopup="true"][role="button"],
  nav.favo-menu .favo-mobile button[aria-haspopup="true"] {
    border: 1px solid #FFFFFF !important;
    color: #FFFFFF !important;
    background: transparent !important;
  }

  /* Etat ACTIF/OUVERT : inversion (fond blanc, icône colorée) */
  nav.favo-menu .favo-mobile .favo-toggle.is-open,
  nav.favo-menu .favo-mobile .favo-caret.is-open,
  nav.favo-menu .favo-mobile .chevron.is-open,
  nav.favo-menu .favo-mobile [class*="chevron"].is-open,
  nav.favo-menu .favo-mobile [class*="caret"].is-open,
  nav.favo-menu .favo-mobile [aria-expanded="true"],
  nav.favo-menu .favo-mobile .is-open > .favo-toggle,
  nav.favo-menu .favo-mobile .is-open > .favo-caret {
    background: #FFFFFF !important;
    color: #154F9E !important;  /* bleu par défaut */
    border-color: #FFFFFF !important;
  }
  /* Actif Campus */
  nav.favo-menu.favo-variant-campus .favo-mobile .favo-toggle.is-open,
  nav.favo-menu.favo-variant-campus .favo-mobile .favo-caret.is-open,
  nav.favo-menu.favo-variant-campus .favo-mobile .chevron.is-open,
  nav.favo-menu.favo-variant-campus .favo-mobile [class*="chevron"].is-open,
  nav.favo-menu.favo-variant-campus .favo-mobile [class*="caret"].is-open,
  nav.favo-menu.favo-variant-campus .favo-mobile [aria-expanded="true"],
  nav.favo-menu.favo-variant-campus .favo-mobile .is-open > .favo-toggle,
  nav.favo-menu.favo-variant-campus .favo-mobile .is-open > .favo-caret {
    background: #FFFFFF !important;
    color: #8A2332 !important;  /* rouge campus */
    border-color: #FFFFFF !important;
  }
}


/* v1.5.29 — Mobile only: Hide "Back" button on root (no submenu open) */
@media (max-width: 1024px){
  nav.favo-menu .favo-mobile .favo-back-btn{display:inline-flex}
  nav.favo-menu .favo-mobile:not(:has(li.is-open)) .favo-back-btn,
  nav.favo-menu .favo-mobile:not(:has(li[aria-expanded="true"])) .favo-back-btn,
  nav.favo-menu .favo-mobile:not(:has(.submenu-open)) .favo-back-btn,
  nav.favo-menu .favo-mobile:not(:has(.is-subview)) .favo-back-btn{
    display:none !important;
  }
}


/* === v1.5.34 — Badge L1: Cera Pro mobile+desktop, retours à la ligne === */
.favo-l1-badge .favo-l1-title,
.favo-mobile .favo-l1-title{
  font-family:'Cera Pro','CeraPro',system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;
  font-size:1.9rem;
  font-weight:800;
  letter-spacing:.3px;
  line-height:1.2;
  color:#fff;
  text-transform:none;
  text-align:left;
  white-space:pre-line;
  margin:0;
}
.favo-l1-badge .favo-l1-phrase,
.favo-mobile .favo-l1-phrase{
  font-family:'Cera Pro','CeraPro',system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;
  font-size:.95rem;
  line-height:1.3;
  color:#fff;
  opacity:.95;
  white-space:pre-line;
}


/* === v1.5.36 — réduire interligne du titre badge L1 === */
.favo-l1-badge .favo-l1-title{
  line-height: 0.55; /* interligne resserré entre lignes du titre */
}
