/* * FICHIER CSS RÉORGANISÉ
 * Fichier : css/header-menu.css
 * Rôle : En-tête du site, navigation principale et adaptations responsives.
 *
 * Organisation :
 * 1. Styles de base du module
 * 2. États et interactions
 * 3. Adaptations responsives, dans l’ordre du fichier d’origine
 *
 * Maintenance : l’ordre des règles est conservé afin de respecter la cascade CSS.
 * Les doublons strictement identiques dans un même bloc ont été supprimés. */

/* *
 * header-menu.css
 * Rôle : En-tête et navigation.
 *
 * Organisation du fichier :
 * 1. Variables et fondations éventuelles
 * 2. Structure principale du composant
 * 3. États, variantes et interactions
 * 4. Adaptations responsives
 *
 * Les doublons strictement identiques ont été supprimés. Les surcharges
 * volontaires et les fallbacks compatibles ont été conservés pour ne pas
 * modifier le rendu ou le comportement existant. */

/* Agrandissement global du logo (+20% desktop, +10% mobile) */

/* ==========================================================================
   Adaptation responsive : (min-width:1025px)
   ========================================================================== */

@media (min-width:1025px) {
    .ast-site-identity .custom-logo-link img, .ast-site-identity .custom-logo, .ast-site-identity .site-logo-img img {
      max-height: 84px !important;
      width: auto !important;
  }
}

/* ==========================================================
   HEADER / MENU
   Personnalisation du logo, du menu ordinateur Astra/Max Mega Menu
   et du menu mobile Astra.
   ========================================================== */

/* Réduit l'interligne de certains menus déroulants Astra */

/* ==========================================================================
   En-tête et navigation
   ========================================================================== */

.ast-site-header .ast-menu-text .ast-hf-menu-1 .ast-dropdown-menu li {
    line-height: 1;
}

/* ==========================================================
   ORDINATEUR
   ========================================================== */

/* ==========================================================================
   Adaptation responsive : (min-width: 1025px)
   ========================================================================== */

@media (min-width: 1025px) {
    /* Décalage du logo dans le header desktop */
    .ast-site-identity .site-logo-img {
      position: relative;
      left: 90px;
      top: -6px;
  }
    .ast-site-identity .site-logo-img img, .ast-site-identity .custom-logo {
      max-height: 155px !important;
      width: auto !important;
  }
    /* ==========================================================
       LOGO PRINCIPAL — TAILLE FORCÉE
       ========================================================== */
    .site-header .site-logo-img img, .site-header .custom-logo-link img, .site-header img.custom-logo, .ast-primary-header-bar .site-logo-img img, .ast-primary-header-bar .custom-logo-link img {
      width: auto !important;
      height: 120px !important;
      max-width: none !important;
      max-height: none !important;
      object-fit: contain;
  }
    /* Position et taille du slogan "Révélateur de talents" */
    .site-description {
      text-align: center;
      margin-top: 15px;
      margin-left: 90px;
      font-size: 14px !important;
      line-height: 1.2 !important;
  }
    .ast-site-identity p.site-description {
      transform: translate(0, -20px);
  }
    /* Position verticale du menu principal */
    .ast-builder-menu-1 {
      position: relative !important;
      top: 10px !important;
  }
    /* Décalage du menu vers la gauche pour le rapprocher du logo */
    #mega-menu-wrap-primary {
      position: relative !important;
      left: -300px !important;
      transform: none !important;
      width: auto !important;
      max-width: max-content !important;
      margin: 0 !important;
      padding: 0 !important;
      box-sizing: border-box !important;
  }
    /* Menu principal : largeur limitée au contenu réel */
    #mega-menu-primary {
      display: flex !important;
      justify-content: flex-start !important;
      align-items: center !important;
      width: auto !important;
      max-width: max-content !important;
      margin: 0 !important;
      padding: 0 !important;
  }
    /* Liens du menu principal */
    #mega-menu-primary > li > a, #mega-menu-primary > li > .mega-menu-link {
      font-size: 11px !important;
      padding-left: 8px !important;
      padding-right: 8px !important;
      white-space: nowrap !important;
  }
    /* Liens des sous-menus : meilleure lisibilité verticale */
    #mega-menu-primary .mega-sub-menu a, #mega-menu-primary .mega-sub-menu .mega-menu-link, #mega-menu-primary .sub-menu a {
      font-size: 13px !important;
      line-height: 1.7 !important;
      padding-top: 10px !important;
      padding-bottom: 10px !important;
  }
}

/* ==========================================================
   MOBILE ET TABLETTE
   ========================================================== */

/* ==========================================================================
   Adaptation responsive : (max-width: 1024px)
   ========================================================================== */

@media (max-width: 1024px) {
    /* Empêche les débordements horizontaux */
    html, body {
      width: 100% !important;
      max-width: 100% !important;
      overflow-x: hidden !important;
  }
    /* Réinitialise les conteneurs principaux du header mobile */
    #ast-mobile-header, #ast-mobile-header .ast-main-header-wrap, #ast-mobile-header .ast-primary-header-bar, #ast-mobile-header .ast-builder-grid-row, #ast-mobile-header .ast-mobile-header-content {
      width: 100% !important;
      max-width: 100% !important;
      margin: 0 !important;
      padding-left: 0 !important;
      padding-right: 0 !important;
      transform: none !important;
      box-sizing: border-box !important;
  }
    /* Espace supérieur du header mobile */
    #ast-mobile-header .ast-primary-header-bar {
      padding-top: 35px !important;
  }
    /* Organisation : logo à gauche, bouton hamburger à droite */
    #ast-mobile-header .ast-builder-grid-row {
      display: grid !important;
      grid-template-columns: 1fr auto !important;
      align-items: center !important;
      column-gap: 12px !important;
  }
    /* Décalage du bloc logo/slogan sur mobile */
    #ast-mobile-header .site-header-primary-section-left {
      min-width: 0 !important;
      width: 100% !important;
      padding-left: 105px !important;
      box-sizing: border-box !important;
  }
    /* Position du bouton hamburger */
    #ast-mobile-header .site-header-primary-section-right {
      padding-right: 18px !important;
      box-sizing: border-box !important;
  }
    /* Annule les décalages desktop sur le logo mobile */
    #ast-mobile-header .site-logo-img, #ast-mobile-header .ast-site-identity .site-logo-img {
      position: static !important;
      left: auto !important;
      top: auto !important;
      transform: none !important;
      margin: 0 !important;
      padding: 0 !important;
  }
    /* Taille du logo mobile */
    #ast-mobile-header .custom-logo, #ast-mobile-header .custom-logo-link img, #ast-mobile-header .site-logo-img img {
      /* max-width: 150px !important; */
      height: auto !important;
  }
    .site-header .site-logo-img img, .site-header .custom-logo-link img, .site-header img.custom-logo, .ast-primary-header-bar .site-logo-img img, .ast-primary-header-bar .custom-logo-link img {
      height: 95px !important;
  }
    /* Slogan mobile */
    #ast-mobile-header .site-description, #ast-mobile-header .ast-site-identity p.site-description {
      max-width: 160px !important;
      margin: 4px 0 0 0 !important;
      transform: none !important;
      text-align: left !important;
      font-size: 9px !important;
      line-height: 1.2 !important;
      white-space: normal !important;
  }
    /* Réinitialisation complète du panneau de menu mobile */
    #ast-mobile-header .ast-mobile-header-content, #ast-mobile-header .ast-builder-menu-mobile, #ast-mobile-header .ast-main-header-bar-alignment, #ast-mobile-header .main-header-bar-navigation, #ast-mobile-header #ast-mobile-site-navigation, #ast-mobile-header .main-navigation, #ast-mobile-header #ast-hf-mobile-menu {
      position: static !important;
      left: auto !important;
      right: auto !important;
      transform: none !important;
      margin: 0 !important;
      padding: 0 !important;
      width: 100% !important;
      max-width: 100% !important;
      min-width: 0 !important;
      box-sizing: border-box !important;
      overflow-x: hidden !important;
  }
    /* Fond du menu mobile */
    #ast-mobile-header #ast-hf-mobile-menu {
      display: block !important;
      background: #fff !important;
  }
    /* Chaque ligne de menu occupe toute la largeur */
    #ast-mobile-header #ast-hf-mobile-menu li, #ast-mobile-header #ast-hf-mobile-menu .menu-item {
      width: 100% !important;
      max-width: 100% !important;
      margin: 0 !important;
      padding: 0 !important;
      box-sizing: border-box !important;
  }
    /* Position du texte dans le menu mobile */
    #ast-mobile-header #ast-hf-mobile-menu .menu-link {
      display: flex !important;
      align-items: center !important;
      justify-content: space-between !important;
      width: 100% !important;
      max-width: 100% !important;
      margin: 0 !important;
      padding-left: 120px !important;
      padding-right: 42px !important;
      box-sizing: border-box !important;
      text-align: left !important;
      white-space: normal !important;
      overflow: visible !important;
  }
    /* Texte du menu */
    #ast-mobile-header #ast-hf-mobile-menu .menu-text {
      display: block !important;
      flex: 1 1 auto !important;
      min-width: 0 !important;
      margin: 0 !important;
      padding: 0 !important;
      transform: none !important;
  }
    /* Chevron / bouton d'ouverture des sous-menus */
    #ast-mobile-header #ast-hf-mobile-menu .ast-menu-toggle, #ast-mobile-header #ast-hf-mobile-menu .dropdown-menu-toggle {
      flex: 0 0 auto !important;
      margin-left: 12px !important;
  }
    /* Sous-menus */
    #ast-mobile-header #ast-hf-mobile-menu .sub-menu {
      margin: 0 !important;
      padding: 0 !important;
      width: 100% !important;
      max-width: 100% !important;
      box-sizing: border-box !important;
  }
    /* Décalage des sous-menus de niveau 1 */
    #ast-mobile-header #ast-hf-mobile-menu .sub-menu .menu-link {
      padding-left: 140px !important;
  }
    /* Décalage des sous-menus de niveau 2 */
    #ast-mobile-header #ast-hf-mobile-menu .sub-menu .sub-menu .menu-link {
      padding-left: 160px !important;
  }
    /* Fil d'Ariane mobile */
    #ast-mobile-header .ast-breadcrumbs-wrapper {
      padding-left: 105px !important;
      padding-right: 18px !important;
      box-sizing: border-box !important;
  }
}

/* ==========================================================
   PAGES JP INTERNES — ALIGNEMENT VERTICAL DU MENU DESKTOP
   ==========================================================
   La page d'accueil utilise un header superposé au hero. Sur les fiches
   Formation et les pages Contenu, le header est dans le flux normal : le
   décalage historique de 10 px du menu devenait alors visible sous la forme
   d'une bande blanche/translucide sous la navigation. */

/* ==========================================================================
   Adaptation responsive : (min-width: 1025px)
   ========================================================================== */

@media (min-width: 1025px) {
    body.single-formation .ast-builder-menu-1, body.single-contenu .ast-builder-menu-1 {
      top: 0 !important;
  }
    /* Le sous-menu suit immédiatement la ligne de navigation. */
    body.single-formation #mega-menu-wrap-primary, body.single-contenu #mega-menu-wrap-primary {
      margin-bottom: 0 !important;
  }
    body.single-formation #mega-menu-primary > li > .mega-sub-menu, body.single-contenu #mega-menu-primary > li > .mega-sub-menu, body.single-formation #mega-menu-primary > li > ul.sub-menu, body.single-contenu #mega-menu-primary > li > ul.sub-menu {
      margin-top: 0 !important;
  }
}

/* ==========================================================
   PAGES JP INTERNES — POSITION DE LA PHRASE MANUSCRITE
   ==========================================================
   Sur les pages Formation et Contenu, la phrase manuscrite est descendue
   afin de rester dégagée lorsque le menu principal est ouvert.
   La page d'accueil n'est pas concernée. */

/* ==========================================================================
   Adaptation responsive : (min-width: 1025px)
   ========================================================================== */

@media (min-width: 1025px) {
    body.single-formation .jp-hero[class*="jp-hero-script-"], body.single-contenu .jp-hero[class*="jp-hero-script-"] {
      --jp-script-top: 72px !important;
  }
}

/* ==========================================================
   FRAMEWORK JP V8.2.3 — MENU DES PAGES INTERNES
   Même géométrie que sur la page d'accueil : suppression de la
   bande translucide excessive au-dessus et sous les sous-menus.
   ========================================================== */

/* ==========================================================================
   Adaptation responsive : (min-width: 1025px)
   ========================================================================== */

@media (min-width: 1025px) {
    body.single-formation .ast-builder-menu-1, body.single-contenu .ast-builder-menu-1 {
      top: 10px !important;
  }
    body.single-formation #mega-menu-wrap-primary, body.single-contenu #mega-menu-wrap-primary, body.single-formation #mega-menu-primary, body.single-contenu #mega-menu-primary {
      padding-top: 0 !important;
      padding-bottom: 0 !important;
      margin-top: 0 !important;
      margin-bottom: 0 !important;
  }
    body.single-formation #mega-menu-primary > li > .mega-sub-menu, body.single-contenu #mega-menu-primary > li > .mega-sub-menu, body.single-formation #mega-menu-primary > li > ul.sub-menu, body.single-contenu #mega-menu-primary > li > ul.sub-menu {
      margin-top: 0 !important;
      padding-top: 4px !important;
      padding-bottom: 4px !important;
      background: rgba(255,255,255,.92) !important;
      backdrop-filter: blur(10px);
      -webkit-backdrop-filter: blur(10px);
  }
    body.single-formation #mega-menu-primary .mega-sub-menu a, body.single-contenu #mega-menu-primary .mega-sub-menu a, body.single-formation #mega-menu-primary .mega-sub-menu .mega-menu-link, body.single-contenu #mega-menu-primary .mega-sub-menu .mega-menu-link, body.single-formation #mega-menu-primary .sub-menu a, body.single-contenu #mega-menu-primary .sub-menu a {
      line-height: 1.35 !important;
      padding-top: 7px !important;
      padding-bottom: 7px !important;
  }
}

/* ==========================================================
   FRAMEWORK JP V8.2.8 — PAGE OFFRES D'EMPLOI
   Menu desktop compact, aligné sur la géométrie de l'accueil.
   ========================================================== */

/* ==========================================================================
   Adaptation responsive : (min-width: 1025px)
   ========================================================================== */

@media (min-width: 1025px) {
    body.page:has(.jp-service-jobs) .ast-builder-menu-1 {
      top: 0 !important;
      margin-top: 0 !important;
      margin-bottom: 0 !important;
  }
    body.page:has(.jp-service-jobs) #mega-menu-wrap-primary, body.page:has(.jp-service-jobs) #mega-menu-primary {
      margin-top: 0 !important;
      margin-bottom: 0 !important;
      padding-top: 0 !important;
      padding-bottom: 0 !important;
  }
    body.page:has(.jp-service-jobs) #mega-menu-primary > li > .mega-sub-menu, body.page:has(.jp-service-jobs) #mega-menu-primary > li > ul.sub-menu {
      margin-top: 0 !important;
      padding-top: 2px !important;
      padding-bottom: 2px !important;
      background: rgba(255,255,255,.92) !important;
      backdrop-filter: blur(10px);
      -webkit-backdrop-filter: blur(10px);
  }
    body.page:has(.jp-service-jobs) #mega-menu-primary .mega-sub-menu a, body.page:has(.jp-service-jobs) #mega-menu-primary .mega-sub-menu .mega-menu-link, body.page:has(.jp-service-jobs) #mega-menu-primary .sub-menu a {
      line-height: 1.25 !important;
      padding-top: 5px !important;
      padding-bottom: 5px !important;
  }
}

/* ==========================================================
   FRAMEWORK JP V8.2.9 — IDENTITÉ ET MENU DES PAGES INTERNES
   - Un seul slogan sous le logo : celui d'Astra, affiché en blanc.
   - Masquage du slogan injecté en doublon par le Framework.
   - Barre de navigation et sous-menus plus compacts, comme à l'accueil.
   ========================================================== */

/* ==========================================================================
   Adaptation responsive : (min-width: 1025px)
   ========================================================================== */

@media (min-width: 1025px) {
    /* Pages de formation, pages de contenu, page Formations et Offres d'emploi. */
    body.single-formation .jp-site-slogan, body.single-contenu .jp-site-slogan, body.page-template-page-formations .jp-site-slogan, body.page:has(.jp-index-formations) .jp-site-slogan, body.page:has(.jp-service-jobs) .jp-site-slogan {
      display: none !important;
  }
    /* Le slogan natif placé sous le logo devient l'unique slogan visible. */
    body.single-formation .site-description, body.single-formation .ast-site-identity p.site-description, body.single-contenu .site-description, body.single-contenu .ast-site-identity p.site-description, body.page-template-page-formations .site-description, body.page-template-page-formations .ast-site-identity p.site-description, body.page:has(.jp-index-formations) .site-description, body.page:has(.jp-index-formations) .ast-site-identity p.site-description, body.page:has(.jp-service-jobs) .site-description, body.page:has(.jp-service-jobs) .ast-site-identity p.site-description {
      color: #fff !important;
      opacity: 1 !important;
      text-shadow: 0 1px 4px rgba(0, 20, 45, .42) !important;
  }
    /* Barre principale : hauteur resserrée sans modifier la page d'accueil. */
    body.single-formation #mega-menu-wrap-primary #mega-menu-primary > li.mega-menu-item > a.mega-menu-link, body.single-contenu #mega-menu-wrap-primary #mega-menu-primary > li.mega-menu-item > a.mega-menu-link, body.page-template-page-formations #mega-menu-wrap-primary #mega-menu-primary > li.mega-menu-item > a.mega-menu-link, body.page:has(.jp-index-formations) #mega-menu-wrap-primary #mega-menu-primary > li.mega-menu-item > a.mega-menu-link, body.page:has(.jp-service-jobs) #mega-menu-wrap-primary #mega-menu-primary > li.mega-menu-item > a.mega-menu-link {
      height: 34px !important;
      line-height: 34px !important;
      padding-top: 0 !important;
      padding-bottom: 0 !important;
  }
    /* Suppression de la réserve blanche au-dessus et sous le texte. */
    body.single-formation #mega-menu-primary > li > .mega-sub-menu, body.single-contenu #mega-menu-primary > li > .mega-sub-menu, body.page-template-page-formations #mega-menu-primary > li > .mega-sub-menu, body.page:has(.jp-index-formations) #mega-menu-primary > li > .mega-sub-menu, body.page:has(.jp-service-jobs) #mega-menu-primary > li > .mega-sub-menu, body.single-formation #mega-menu-primary > li > ul.sub-menu, body.single-contenu #mega-menu-primary > li > ul.sub-menu, body.page-template-page-formations #mega-menu-primary > li > ul.sub-menu, body.page:has(.jp-index-formations) #mega-menu-primary > li > ul.sub-menu, body.page:has(.jp-service-jobs) #mega-menu-primary > li > ul.sub-menu {
      margin-top: 0 !important;
      padding-top: 0 !important;
      padding-bottom: 0 !important;
      min-height: 0 !important;
      background: rgba(255, 255, 255, .88) !important;
      backdrop-filter: blur(9px) !important;
      -webkit-backdrop-filter: blur(9px) !important;
  }
    body.single-formation #mega-menu-primary .mega-sub-menu a, body.single-contenu #mega-menu-primary .mega-sub-menu a, body.page-template-page-formations #mega-menu-primary .mega-sub-menu a, body.page:has(.jp-index-formations) #mega-menu-primary .mega-sub-menu a, body.page:has(.jp-service-jobs) #mega-menu-primary .mega-sub-menu a, body.single-formation #mega-menu-primary .mega-sub-menu .mega-menu-link, body.single-contenu #mega-menu-primary .mega-sub-menu .mega-menu-link, body.page-template-page-formations #mega-menu-primary .mega-sub-menu .mega-menu-link, body.page:has(.jp-index-formations) #mega-menu-primary .mega-sub-menu .mega-menu-link, body.page:has(.jp-service-jobs) #mega-menu-primary .mega-sub-menu .mega-menu-link {
      min-height: 0 !important;
      height: auto !important;
      line-height: 1.18 !important;
      padding-top: 5px !important;
      padding-bottom: 5px !important;
      margin-top: 0 !important;
      margin-bottom: 0 !important;
  }
}

/* ==========================================================
   FRAMEWORK JP V8.3.0 — SLOGAN UNIQUE SUR LES PAGES INTERNES
   Correction robuste indépendante du modèle de page ou du shortcode.
   ========================================================== */

/* ==========================================================================
   Adaptation responsive : (min-width: 1025px)
   ========================================================================== */

@media (min-width: 1025px) {
    /* Le Framework injecte un second slogan dans le HTML du logo.
       Il est conservé uniquement sur la page d'accueil. */
    body:not(.home) .jp-site-branding-logo > .jp-site-slogan, body:not(.home) .jp-site-slogan {
      display: none !important;
      visibility: hidden !important;
      opacity: 0 !important;
      height: 0 !important;
      min-height: 0 !important;
      margin: 0 !important;
      padding: 0 !important;
      overflow: hidden !important;
  }
    /* L'unique slogan natif Astra sous le logo devient blanc. */
    body:not(.home) .ast-site-identity .site-description, body:not(.home) .ast-site-identity p.site-description, body:not(.home) .site-branding .site-description {
      color: #fff !important;
      opacity: 1 !important;
      text-shadow: 0 1px 4px rgba(0, 20, 45, .55) !important;
  }
}

/* ==========================================================
   FRAMEWORK JP 10.3.2 — HEADER / HERO UNIFIÉ
   Même géométrie sur :
   - page d'accueil ;
   - pages Formation ;
   - pages Contenu ;
   - pages Formations / Actualités / Offres d'emploi.
   ========================================================== */

/* ==========================================================================
   Adaptation responsive : (min-width: 1025px)
   ========================================================================== */

@media (min-width: 1025px) {
    /* * Le header est superposé au hero et ne participe jamais
     * à la hauteur de la page. Le hero commence donc toujours
     * au bord supérieur de l'écran. */
    #masthead, .site-header {
      position: absolute !important;
      top: 0 !important;
      left: 0 !important;
      right: 0 !important;
      width: 100% !important;
      height: 0 !important;
      min-height: 0 !important;
      margin: 0 !important;
      padding: 0 !important;
      background: transparent !important;
      border: 0 !important;
      box-shadow: none !important;
      overflow: visible !important;
      z-index: 9999 !important;
  }
    #masthead .ast-main-header-wrap, #masthead .ast-primary-header-bar, #masthead .ast-builder-grid-row, #masthead .ast-container, .site-header .ast-main-header-wrap, .site-header .ast-primary-header-bar, .site-header .ast-builder-grid-row, .site-header .ast-container {
      position: static !important;
      width: 100% !important;
      max-width: none !important;
      height: 0 !important;
      min-height: 0 !important;
      margin: 0 !important;
      padding: 0 !important;
      background: transparent !important;
      border: 0 !important;
      box-shadow: none !important;
      overflow: visible !important;
  }
    /* * Bloc identité : mêmes coordonnées par rapport au viewport
     * sur toutes les pages. */
    #masthead .site-header-primary-section-left, .site-header .site-header-primary-section-left {
      position: absolute !important;
      left: 30px !important;
      top: 12px !important;
      z-index: 10002 !important;
      width: auto !important;
      min-width: 0 !important;
      height: auto !important;
      margin: 0 !important;
      padding: 0 !important;
      transform: none !important;
      overflow: visible !important;
  }
    #masthead .ast-site-identity, #masthead .site-branding, #masthead .site-logo-img, .site-header .ast-site-identity, .site-header .site-branding, .site-header .site-logo-img {
      position: static !important;
      left: auto !important;
      right: auto !important;
      top: auto !important;
      bottom: auto !important;
      display: block !important;
      width: auto !important;
      max-width: none !important;
      height: auto !important;
      min-height: 0 !important;
      margin: 0 !important;
      padding: 0 !important;
      transform: none !important;
      overflow: visible !important;
  }
    /* * Composant unique logo + slogan. */
    #masthead .jp-site-branding-logo, .site-header .jp-site-branding-logo {
      position: static !important;
      display: inline-flex !important;
      visibility: visible !important;
      opacity: 1 !important;
      flex-direction: column !important;
      align-items: flex-start !important;
      justify-content: flex-start !important;
      width: auto !important;
      max-width: none !important;
      height: auto !important;
      min-height: 0 !important;
      margin: 0 !important;
      padding: 0 !important;
      transform: none !important;
      overflow: visible !important;
      line-height: 1 !important;
  }
    #masthead .jp-site-branding-logo > a, .site-header .jp-site-branding-logo > a {
      display: block !important;
      margin: 0 !important;
      padding: 0 !important;
      line-height: 0 !important;
  }
    #masthead .jp-site-branding-logo img, #masthead img.custom-logo, .site-header .jp-site-branding-logo img, .site-header img.custom-logo {
      position: static !important;
      display: block !important;
      width: auto !important;
      height: 112px !important;
      max-width: none !important;
      max-height: none !important;
      margin: 0 !important;
      padding: 0 !important;
      transform: none !important;
      object-fit: contain !important;
  }
    #masthead .jp-site-branding-logo > .jp-site-slogan, .site-header .jp-site-branding-logo > .jp-site-slogan, body.home #masthead .jp-site-slogan, body.single-formation #masthead .jp-site-slogan, body.single-contenu #masthead .jp-site-slogan {
      position: static !important;
      display: block !important;
      visibility: visible !important;
      opacity: 1 !important;
      width: auto !important;
      height: auto !important;
      min-height: 0 !important;
      margin: -3px 0 0 2px !important;
      padding: 0 !important;
      transform: none !important;
      overflow: visible !important;
      font-family: "Caveat", cursive !important;
      font-size: 18px !important;
      font-weight: 600 !important;
      line-height: 1 !important;
      color: #fff !important;
      text-align: left !important;
      white-space: nowrap !important;
      text-shadow: 0 1px 4px rgba(0, 20, 45, .55) !important;
  }
    /* Le slogan natif Astra reste masqué : aucun doublon possible. */
    #masthead .site-description, #masthead p.site-description, .site-header .site-description, .site-header p.site-description {
      display: none !important;
      visibility: hidden !important;
      opacity: 0 !important;
      height: 0 !important;
      min-height: 0 !important;
      margin: 0 !important;
      padding: 0 !important;
      overflow: hidden !important;
  }
    /* * Menu principal : même position sur les trois types de pages,
     * sans déplacer le conteneur du logo. */
    #masthead .ast-builder-menu-1, .site-header .ast-builder-menu-1 {
      position: absolute !important;
      top: 8px !important;
      left: 50% !important;
      width: auto !important;
      max-width: max-content !important;
      margin: 0 !important;
      padding: 0 !important;
      transform: translateX(-50%) !important;
      z-index: 10001 !important;
  }
    #mega-menu-wrap-primary {
      position: static !important;
      left: auto !important;
      top: auto !important;
      width: auto !important;
      max-width: max-content !important;
      margin: 0 !important;
      padding: 0 !important;
      transform: none !important;
  }
    #mega-menu-primary {
      width: auto !important;
      max-width: max-content !important;
      margin: 0 !important;
      padding: 0 !important;
  }
    /* * Les héros des formations et contenus ne reçoivent aucune
     * marge destinée à compenser le header. */
    body.single-formation .jp-hero, body.single-contenu .jp-hero, body.home .jp-home {
      margin-top: 0 !important;
  }
}

/* ==========================================================
   FRAMEWORK JP 10.3.3 — AJUSTEMENT VERTICAL LOGO / SLOGAN
   ========================================================== */

/* ==========================================================================
   Adaptation responsive : (min-width: 1025px)
   ========================================================================== */

@media (min-width: 1025px) {
    /* * La page d'accueil conserve sa position actuelle.
     * Les pages Formation et Contenu descendent leur bloc
     * logo + slogan sans modifier la hauteur du hero. */
    body.single-formation #masthead .site-header-primary-section-left, body.single-formation .site-header .site-header-primary-section-left, body.single-contenu #masthead .site-header-primary-section-left, body.single-contenu .site-header .site-header-primary-section-left {
      top: 32px !important;
  }
    /* * Le slogan est rapproché verticalement du logo sur
     * l'accueil, les formations et les contenus. */
    body.home #masthead .jp-site-branding-logo > .jp-site-slogan, body.home .site-header .jp-site-branding-logo > .jp-site-slogan, body.single-formation #masthead .jp-site-branding-logo > .jp-site-slogan, body.single-formation .site-header .jp-site-branding-logo > .jp-site-slogan, body.single-contenu #masthead .jp-site-branding-logo > .jp-site-slogan, body.single-contenu .site-header .jp-site-branding-logo > .jp-site-slogan {
      margin-top: -19px !important;
  }
}

/* ==========================================================
   FRAMEWORK JP 10.3.4 — LOGO PLUS BAS SUR LES PAGES INTERNES
   ========================================================== */

/* ==========================================================================
   Adaptation responsive : (min-width: 1025px)
   ========================================================================== */

@media (min-width: 1025px) {
    /* * La page d'accueil reste inchangée.
     * Seules les pages Formation et Contenu descendent davantage
     * leur bloc logo + slogan. */
    body.single-formation #masthead .site-header-primary-section-left, body.single-formation .site-header .site-header-primary-section-left, body.single-contenu #masthead .site-header-primary-section-left, body.single-contenu .site-header .site-header-primary-section-left {
      top: 52px !important;
  }
}

/* ==========================================================
   FRAMEWORK JP 10.3.5 — DÉPLACEMENT DIRECT DU BLOC IDENTITÉ
   ========================================================== */

/* ==========================================================================
   Adaptation responsive : (min-width: 1025px)
   ========================================================================== */

@media (min-width: 1025px) {
    /* * Les essais précédents déplaçaient un conteneur Astra qui
     * n'est pas celui qui porte réellement le logo affiché.
     *
     * Cette règle agit directement sur le composant visible
     * logo + slogan du Framework.
     *
     * La page d'accueil n'est volontairement pas concernée. */
    body.single-formation #masthead .jp-site-branding-logo, body.single-formation .site-header .jp-site-branding-logo, body.single-contenu #masthead .jp-site-branding-logo, body.single-contenu .site-header .jp-site-branding-logo {
      position: relative !important;
      top: 56px !important;
      transform: none !important;
  }
}

/* ==========================================================
   FRAMEWORK JP 10.3.7 — CONTENU DU HERO DÉCALÉ À DROITE
   Pages Formation et Contenu — ordinateur
   ========================================================== */

/* ==========================================================================
   Adaptation responsive : (min-width: 1025px)
   ========================================================================== */

@media (min-width: 1025px) {
    /* * Décale d'environ 1 cm vers la droite l'ensemble du bloc
     * de contenu du hero :
     * - badges / titre court ;
     * - nom complet ;
     * - statuts ;
     * - description ;
     * - boutons.
     *
     * Le logo, le slogan, le menu et l'image du hero ne bougent pas. */
    body.single-formation .jp-hero-main, body.single-contenu .jp-hero-main {
      transform: translateX(38px) !important;
  }
}

/* ==========================================================
   SLOGAN — ANIMATION FAÇON MACHINE À ÉCRIRE
   ========================================================== */

.jp-site-slogan.jp-slogan-is-typing {
    display: block !important;
    overflow: visible !important;
    white-space: nowrap !important;
}

/* * Respect du réglage d'accessibilité du visiteur.
 * Le JavaScript affichera immédiatement le texte. */

/* ==========================================================================
   Adaptation responsive : (prefers-reduced-motion: reduce)
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
    .jp-site-slogan {
      animation: none !important;
      transition: none !important;
  }
}

/* ==========================================================
   SLOGAN — MASQUÉ AVANT L'ANIMATION
   ========================================================== */

.jp-site-slogan {
    display: block;
    min-height: 19px;
    visibility: hidden !important;
    white-space: nowrap;
}

.jp-site-slogan.jp-slogan-ready {
    visibility: visible !important;
}

/* ==========================================================
   PAGE SECTION EURO — LOGO DESCENDU D’ENVIRON 2 CM
   Cette ancienne page ne repose pas sur le modèle single-contenu.
   ========================================================== */

/* ==========================================================================
   Adaptation responsive : (min-width: 1025px)
   ========================================================================== */

@media (min-width: 1025px) {
    body.jp-page-section-euro #masthead .jp-site-branding-logo, body.jp-page-section-euro .site-header .jp-site-branding-logo {
      position: relative !important;
      top: 76px !important;
      transform: none !important;
  }
}
/* ==========================================================
   SLOGAN « RÉVÉLATEUR DE TALENTS »
   Remonté de 20 px sur toutes les pages et tous les appareils
   ========================================================== */

html body #masthead .jp-site-branding-logo > .jp-site-slogan,
html body .site-header .jp-site-branding-logo > .jp-site-slogan,
html body .jp-modern-header .jp-site-branding-logo > .jp-site-slogan {
    transform: translateY(-20px) !important;
}

/* ==========================================================
   ACCUEIL MOBILE — BANDEAU VIDÉO ET CHIFFRES CLÉS
   Bloc final prioritaire
   ========================================================== */

@media (max-width: 767px) {

    /* Remonte le bandeau vidéo et les événements. */
    body.page-id-14864
    .elementor-element.elementor-element-f8f6054 {
        transform: translateY(-90px) !important;
        margin-bottom: -90px !important;
        overflow: hidden !important;
    }

    /* La remontée des chiffres clés est désormais gérée dans jp-homepage.css. */
    body.page-id-14864
    .elementor-element.elementor-element-ce58207 {
        position: relative !important;
        z-index: 30 !important;
        margin-top: 0 !important;
    }
}

/* ==========================================================
   CORRECTIF FINAL — SLOGAN ASTRA SUR TÉLÉPHONE
   ========================================================== */
@media (max-width: 767px) {
    html body #ast-mobile-header .site-description,
    html body #ast-mobile-header .ast-site-identity p.site-description {
        font-size: 6px !important;
    }
}

/* ==========================================================
   MENU PRINCIPAL V53 — SOUS-MENUS PLUS COMPACTS
   ========================================================== */

/*
 * Uniquement lorsque le menu principal horizontal est utilisé.
 *
 * Objectifs :
 * - réduire d'environ 10 px la hauteur de chaque entrée de sous-menu ;
 * - resserrer légèrement l'espace vertical entre les éléments ;
 * - conserver la taille de police et permettre aux intitulés longs
 *   de continuer à revenir sur deux lignes si nécessaire ;
 * - ne pas modifier le menu mobile.
 */
@media (min-width: 768px) {

    /*
     * Max Mega Menu — entrées des sous-menus.
     *
     * Ancien réglage principal :
     *   padding-top: 10px;
     *   padding-bottom: 10px;
     *
     * Nouveau réglage :
     *   5px + 5px, soit environ 10px de hauteur en moins.
     */
    #mega-menu-wrap-primary
    #mega-menu-primary
    .mega-sub-menu
    a,
    #mega-menu-wrap-primary
    #mega-menu-primary
    .mega-sub-menu
    .mega-menu-link,
    #mega-menu-wrap-primary
    #mega-menu-primary
    .sub-menu
    a {
        min-height: 0 !important;
        height: auto !important;

        margin-top: 0 !important;
        margin-bottom: 0 !important;

        padding-top: 5px !important;
        padding-bottom: 5px !important;

        line-height: 1.30 !important;
    }

    /*
     * Évite qu'une marge propre aux <li> recrée artificiellement
     * de l'espace entre deux entrées du menu déroulant.
     */
    #mega-menu-wrap-primary
    #mega-menu-primary
    .mega-sub-menu
    > li,
    #mega-menu-wrap-primary
    #mega-menu-primary
    .sub-menu
    > li {
        margin-top: 0 !important;
        margin-bottom: 0 !important;
    }
}

