/* G6M_BUNDLE_34 — 6 feuilles, ordre du document preserve */
/* ==== g6m-mobile-header-v600.css ==== */
/* ==========================================================================
   g6m-mobile-header-v600.css — Bloc 3, source unique de vérité du header mobile
   --------------------------------------------------------------------------
   POURQUOI UNE COUCHE @layer — À LIRE AVANT DE MODIFIER

   PAGE_CONTAINER injecte ~515 ressources CSS. Sur le header, ~386 règles se
   disputent .p-nav, 335 .p-nav-inner, 113 .p-staffBar, presque toutes en
   « html#XF body … !important ». Ajouter une règle de plus ne réglait rien :
   le résultat était décidé par l'ordre d'injection, ce qui produisait des
   contradictions tranchées au pire par le navigateur — par exemple
   min-width:180px (g6m-forum-logo-home-v370) contre max-width:150px
   (g6m-mobile-chrome-fix-v439) sur le logo, min-width l'emportant.

   Pour les déclarations !important, la cascade CSS INVERSE l'ordre des
   couches et place les styles hors couche en dernier. Une règle !important
   dans une couche nommée bat donc TOUTES les règles !important hors couche,
   quelles que soient leur spécificité et leur position. Vérifié en
   production : un sélecteur à une seule classe ici bat « html#XF body … ».

   CONSÉQUENCE : toute règle de header doit être ÉCRITE ICI, DANS LA COUCHE.
   Une règle ajoutée hors de cette couche, où que ce soit, restera sans effet.
   Ne créez pas de g6m-mobile-header-v601.css : modifiez ce fichier.

   Propriétés physiques uniquement (width/height/left/…), jamais logiques :
   l'héritage utilise le physique, on garantit ainsi l'écrasement.

   Portée : ≤ 1100 px. C'est la bascule réelle du thème (mesuré : à 1024 px
   .p-header est display:none et le burger est affiché), pas 768 px.
   Le desktop (≥ 1101 px) n'est pas touché.
   ========================================================================== */

@layer g6m-header {

@media (max-width: 1100px) {

  :root {
    --g6m-mh-bar:    56px;   /* hauteur barre de navigation */
    --g6m-mh-staff:  48px;   /* hauteur barre staff */
    --g6m-mh-touch:  44px;   /* cible tactile (WCAG 2.5.5 AAA) */
    --g6m-mh-gap:     8px;
    --g6m-mh-logo-h: 34px;
    --g6m-mh-padl: max(10px, env(safe-area-inset-left,  0px));
    --g6m-mh-padr: max(10px, env(safe-area-inset-right, 0px));
  }

  /* ---- 0. HTML mort ---------------------------------------------------
     Bloc « V279 » de PAGE_CONTAINER : display:none à toutes les largeurs
     depuis g6m-mobile-chrome-fix-v439. Le markup est retiré du template ;
     cette règle couvre les caches de page éventuels.                     */
  .g6m-mobile-brand { display: none !important; }

  /* ---- 1. Grille de la barre -----------------------------------------
     minmax(0,1fr) sur la colonne du logo : la barre ne PEUT PAS déborder,
     c'est le logo qui cède en premier. Remplace le flex qui réclamait
     537 px de contenu quelle que soit la largeur de l'écran.             */
  .p-nav-inner {
    display: grid !important;
    grid-template-columns: var(--g6m-mh-touch) minmax(0, 1fr) auto !important;
    grid-template-rows: var(--g6m-mh-bar) !important;
    align-items: center !important;
    column-gap: var(--g6m-mh-gap) !important;
    height: var(--g6m-mh-bar) !important;
    min-height: var(--g6m-mh-bar) !important;
    max-height: var(--g6m-mh-bar) !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    padding: 0 var(--g6m-mh-padr) 0 var(--g6m-mh-padl) !important;
    margin: 0 !important;
    flex-wrap: nowrap !important;
  }
  /* .p-nav était figé à 50 px alors que .p-nav-inner en fait 56 : l'enfant
     débordait de son parent de 6 px. */
  .p-nav, .p-navSticky {
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: var(--g6m-mh-bar) !important;
    max-height: none !important;
  }

  /* placement explicite : indépendant de l'ordre du DOM et des `order` hérités */
  .p-nav-inner > .p-nav-menuTrigger { grid-column: 1 !important; justify-self: start !important; }
  .p-nav-inner > .p-header-logo     { grid-column: 2 !important; justify-self: start !important; }
  .p-nav-inner > .p-nav-opposite    { grid-column: 3 !important; justify-self: end   !important; }
  .p-nav-inner > .p-nav-menuTrigger,
  .p-nav-inner > .p-header-logo,
  .p-nav-inner > .p-nav-opposite {
    grid-row: 1 !important;
    order: 0 !important;
    margin: 0 !important;
    align-self: center !important;   /* corrige les 3 lignes de base y=140/144/145 */
  }
  .p-nav-inner > .p-nav-scroller,
  .p-nav-inner > .uix_activeNavTitle { display: none !important; }

  /* ---- 2. Burger : 44×44 exact, collé au bord. Apparence inchangée. --- */
  .p-nav-inner > .p-nav-menuTrigger {
    width:      var(--g6m-mh-touch) !important;
    min-width:  var(--g6m-mh-touch) !important;
    max-width:  var(--g6m-mh-touch) !important;
    height:     var(--g6m-mh-touch) !important;
    min-height: var(--g6m-mh-touch) !important;
    max-height: var(--g6m-mh-touch) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 !important;
    flex: 0 0 auto !important;
    position: relative !important;
    box-sizing: border-box !important;
  }

  /* ---- 3. Logo --------------------------------------------------------
     Ni width ni height fixes : la boîte épouse l'image. Supprime les
     52,5 px de vide dus à min-width:180px sur une image peinte 127,5 px.
     aspect-ratio:auto neutralise le ratio 280/62 issu des attributs HTML,
     qui ne correspond pas au fichier réel (300×80).                      */
  .p-nav-inner > .p-header-logo,
  .p-nav-inner > .p-header-logo .uix_logo {
    display: flex !important;
    align-items: center !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: 100% !important;
    height: auto !important;
    max-height: var(--g6m-mh-bar) !important;
    padding: 0 !important;
    overflow: hidden !important;
  }
  .p-nav-inner > .p-header-logo img {
    display: block !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: var(--g6m-mh-logo-h) !important;
    aspect-ratio: auto !important;
    object-fit: contain !important;
    object-position: left center !important;
    margin: 0 !important;
    flex: 0 1 auto !important;
  }
  .p-nav-inner > .p-header-logo .uix_logoSmall { display: none !important; }

  /* ---- 4. Grappe d'actions -------------------------------------------- */
  .p-nav-inner > .p-nav-opposite {
    display: flex !important;
    align-items: center !important;
    gap: 2px !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    padding: 0 !important;
    flex: 0 0 auto !important;
  }
  /* NE JAMAIS forcer `display` sur .p-navgroup / .p-navgroup-link en général :
     le thème masque plusieurs liens (recherche, quoi de neuf) avec
     display:none !important, et un !important en couche les ressusciterait.
     On ne force le display que sur les trois liens réellement voulus. */
  /* Uniquement .p-account. NE PAS viser `.p-navgroup` tout court : le thème
     bride .p-discovery à ~15 px (max-width + overflow:hidden) pour neutraliser
     la recherche et « Quoi de neuf ». Lever ce plafond le fait passer à 130 px
     et écrase le logo à 38 px — mesuré.                                    */
  .p-nav-inner .p-navgroup.p-account {
    align-items: center !important;
    gap: 2px !important;
    height: auto !important;
    min-height: 0 !important;
    min-width: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
  }
  /* On ne cible QUE les trois actions voulues. Ne jamais élargir ce sélecteur
     à `.p-navgroup-link` : le thème réduit à zéro / masque « Quoi de neuf »,
     la recherche et uix_searchBar, et toute reprise en main les rouvrirait
     (mesuré : +88 px sur la grappe, logo écrasé à 65 px).                 */
  /* uix_searchBar : masqué sous 1100 px.
     Justification mesurée — les deux déclencheurs de recherche du header
     (.p-navgroup-link--search et .uix_searchIconTrigger) sont display:none
     sur mobile, et les 4 liens a[href*="/search"] du document sont tous
     invisibles : la recherche n'est PAS atteignable depuis le header mobile,
     avant comme après. Le conteneur réservait pourtant 72 px de largeur, et
     son panneau .uix_searchBarInner (244 px, position:absolute) dépassait de
     234 px à droite — non rogné, car overflow:hidden sur .p-discovery ne
     clippe pas un descendant absolu dont l'ancêtre est position:static.
     Le desktop (≥1101 px) n'est pas concerné.                             */
  .p-nav-inner .uix_searchBar { display: none !important; }

  .p-nav-inner .p-navgroup-link--conversations,
  .p-nav-inner .p-navgroup-link--alerts,
  .p-nav-inner .p-navgroup-link--user,
  .p-nav-inner .p-navgroup-link--whatsnew {
    display: inline-flex !important;
    width:      var(--g6m-mh-touch) !important;
    min-width:  var(--g6m-mh-touch) !important;
    max-width:  var(--g6m-mh-touch) !important;
    height:     var(--g6m-mh-touch) !important;
    min-height: var(--g6m-mh-touch) !important;
    max-height: var(--g6m-mh-touch) !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 !important;
    margin: 0 !important;
    position: relative !important;
    flex: 0 0 auto !important;
    box-sizing: border-box !important;
  }

  /* utilisateur : avatar seul sous 480 px, avatar + pseudo au-delà.
     Le pseudo arc-en-ciel reste accessible dans le menu off-canvas.      */
  .p-nav-inner .p-navgroup-link--user > .avatar {
    display: inline-block !important;
    width: 28px !important;
    min-width: 28px !important;
    max-width: 28px !important;
    height: 28px !important;
    min-height: 28px !important;
    max-height: 28px !important;
    border-radius: 50% !important;
    overflow: hidden !important;
    flex: 0 0 auto !important;
    font-size: 0 !important;
  }
  .p-nav-inner .p-navgroup-link--user > .avatar img {
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    max-height: 100% !important;
    min-width: 0 !important;
    object-fit: cover !important;
    display: block !important;
  }
  .p-nav-inner .p-navgroup-link--user > .p-navgroup-linkText { display: none !important; }

  /* ---- 5. Badges -------------------------------------------------------
     Cause du décentrage : `left` ET `right` posés ensemble sans min-width,
     donnant une boîte de 4,09 px pour un glyphe de 11 px, placée hors de
     son hôte (left:-5px). On force left:auto et une pastille dimensionnée. */
  .p-nav-inner .badgeContainer[data-badge]::after,
  .p-staffBar  .badgeContainer[data-badge]::after {
    left: auto !important;
    right: 1px !important;
    top: 1px !important;
    bottom: auto !important;
    min-width: 18px !important;
    width: auto !important;
    height: 18px !important;
    min-height: 18px !important;
    max-height: 18px !important;
    padding: 0 5px !important;
    border-radius: 9px !important;
    display: grid !important;
    place-items: center !important;
    font-size: 11px !important;
    line-height: 1 !important;
    box-sizing: border-box !important;
    transform: none !important;
    pointer-events: none !important;
  }

  /* ---- 6. Barre staff --------------------------------------------------
     88,8 px → 48 px. Police 9,92 px → 12 px. Apparence des pilules
     (dégradés, bordures, ombres) strictement inchangée.                  */
  /* Pas de `display` forcé : si le thème masque la barre pour les non-staff,
     elle doit le rester. 4 + 40 + 4 = 48 px exactement, sans centrage à gérer. */
  .p-staffBar {
    height: auto !important;
    min-height: var(--g6m-mh-staff) !important;
    max-height: none !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    padding: 4px var(--g6m-mh-padr) 4px var(--g6m-mh-padl) !important;
    margin: 0 !important;
  }
  .p-staffBar > .pageContent,
  .p-staffBar .p-staffBar-inner {
    width: 100% !important;
    max-width: 100% !important;
    min-height: 0 !important;
    height: auto !important;
    align-items: center !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
  }
  .p-staffBar .hScroller-scroll {
    display: flex !important;
    align-items: center !important;
    gap: var(--g6m-mh-gap) !important;
    width: 100% !important;
    min-height: 0 !important;
    height: auto !important;
    padding: 0 !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    scrollbar-width: none !important;
    -webkit-overflow-scrolling: touch;
    scroll-padding-inline: 4px;
  }
  .p-staffBar .hScroller-scroll::-webkit-scrollbar { display: none !important; }
  /* pas de `display` ici non plus : le thème masque certains liens
     (Rapports, ADMIN simple) et un !important en couche les rouvrirait.
     Les pilules visibles sont déjà en flex, align-items suffit.          */
  .p-staffBar .p-staffBar-link {
    height: 40px !important;
    min-height: 40px !important;
    max-height: 40px !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 14px !important;
    margin: 0 !important;
    font-size: 12px !important;
    line-height: 1 !important;
    white-space: nowrap !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    flex: 0 0 auto !important;
    position: relative !important;
    box-sizing: border-box !important;
  }
  /* les flèches du hScroller n'ont pas de sens sur tactile */
  .p-staffBar .hScroller-action { display: none !important; }

  /* ---- 7. Safe-area iPhone --------------------------------------------
     Aucune règle env(safe-area-inset-*) n'existait sur le header.        */
  .offCanvasMenu-content {
    padding-top: env(safe-area-inset-top, 0px) !important;
    padding-bottom: env(safe-area-inset-bottom, 0px) !important;
    padding-left: env(safe-area-inset-left, 0px) !important;
  }

  /* ---- 8. Accessibilité ------------------------------------------------ */
  .p-nav-inner a:focus-visible,
  .p-nav-inner button:focus-visible,
  .p-staffBar .p-staffBar-link:focus-visible {
    outline: 2px solid #00d7ff !important;
    outline-offset: 2px !important;
  }

  @media (prefers-reduced-motion: reduce) {
    .p-nav-inner *, .p-staffBar * {
      animation-duration: 0.01ms !important;
      transition-duration: 0.01ms !important;
    }
  }
}

/* ---- 9. Très petits écrans : conversations dans le menu burger --------
   Budget à 320 px : 10 + 44 + 8 + logo + 8 + (44+2+44) + 10 = 170 + logo.
   Avec trois actions le logo tombait à 104 px ; il en garde 150.        */
/* Sous 412 px, « Quoi de neuf » repasse dans le menu burger : à quatre
   actions le logo tombait à 87,6 × 23,4 px (mesuré à 360 px). À trois, il
   garde sa taille pleine de 127,5 × 34.                                   */
@media (max-width: 411.98px) {
  .p-nav-inner .p-navgroup.p-discovery { display: none !important; }
}

/* Sous 360 px, les conversations aussi : il ne reste que Alertes + Compte. */
@media (max-width: 359.98px) {
  :root { --g6m-mh-logo-h: 30px; }
  .p-nav-inner .p-navgroup-link--conversations { display: none !important; }
}

/* ---- 10. À partir de 480 px : le pseudo revient dans la barre -------- */
@media (min-width: 480px) and (max-width: 1100px) {
  :root { --g6m-mh-logo-h: 36px; }
  .p-nav-inner .p-navgroup-link--user {
    width: auto !important;
    min-width: var(--g6m-mh-touch) !important;
    max-width: 168px !important;
    gap: 8px !important;
    padding: 0 10px 0 8px !important;
  }
  .p-nav-inner .p-navgroup-link--user > .p-navgroup-linkText {
    display: block !important;
    max-width: 110px !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    font-size: 15px !important;
    line-height: 1.2 !important;
  }
}


/* ===========================================================================
   CORRECTIFS BUREAU — hors media query, mais dans la MEME couche g6m-header,
   qui reste l'arbitre unique du header.

   1. Eclair parasite « Quoi de neuf »
   ------------------------------------
   XenForo masque ce lien : `.p-navgroup-link--whatsnew { display: none }`
   dans css.php. Mais g6m-forum-ui-critical.css le ressuscite avec une regle
   en aveugle :

       .p-nav-opposite .p-navgroup-link,
       .p-nav .p-navgroup-link { display: inline-flex !important }

   Le lien reapparait alors dans `.p-navgroup.p-discovery`, groupe que le theme
   reduit a ~10px avec `overflow: hidden` : on ne voyait qu'une tranche de 10px
   de son icone `bolt.svg`, a droite des alertes. Mesure : lien de 34px a
   x=1593, groupe de 10px a x=1606.

   On re-masque le SEUL lien concerne. Ne jamais masquer `.p-navgroup-link` en
   general : cela tuerait aussi le compte, les messages et les alertes.
   Le groupe, devenu sans enfant visible, se replie de lui-meme a 0px.
   =========================================================================== */
.p-nav .p-navgroup-link--whatsnew,
.p-nav-opposite .p-navgroup-link--whatsnew {
	display: none !important;
}


/* 2. La pastille vide laissee derriere
   ------------------------------------
   `.p-navgroup` est stylee par le theme comme une pastille : bordure rose,
   fond en degrade, ombre interne. Le groupe `.p-discovery` qui ne contenait
   que « Quoi de neuf » se retrouve donc, une fois le lien masque, affiche
   comme une pastille VIDE de 10px collee a droite du bloc compte.

   On le replie — uniquement au-dessus de 1100px, ou l'on a verifie qu'il n'a
   aucun enfant visible (la vraie barre de recherche vit dans l'AUTRE groupe
   `.p-discovery`, celui de 261px). Sous 1100px on ne touche a rien : ce groupe
   peut y accueillir le declencheur de recherche.
   `:has()` ne matche que ce groupe-la — l'autre ne contient pas ce lien. */
@media (min-width: 1101px) {
	.p-nav .p-navgroup.p-discovery:has(> .p-navgroup-link--whatsnew) {
		display: none !important;
	}
}


/* 3. Le compteur de notifications affiche en TROIS exemplaires
   -----------------------------------------------------------
   UI.X pose un badge « total non lus » sur plusieurs porteurs a la fois :
     - le declencheur de menu (burger),      .uix_sidebarCanvasTrigger
     - le lien compte,                        .p-navgroup-link--user
     - la cloche,                             .p-navgroup-link--alerts
   Les trois recevaient donc « 8 » simultanement.

   Le badge est un pseudo-element sur `.badgeContainer[data-badge]`, et les
   classes `js-badge--*` / `js-uix_badge--totalUnread` sont ajoutees par
   JavaScript a l'execution — inutile de les chercher dans le template. On vise
   donc les porteurs par leurs classes stables.

   On garde le badge sur la CLOCHE (alertes) et sur l'ENVELOPPE (messages),
   qui comptent chacun leur propre file. On retire les deux doublons.
   Ne pas neutraliser `.badgeContainer` en general : cela effacerait aussi les
   compteurs du chat, de la barre staff et du menu deroulant. */
/* On raisonne par EXCLUSION plutot qu'en nommant les porteurs a retirer : la
   classe du declencheur de menu depend du reglage `uix_sidebarTriggerPosition`
   et n'est donc pas fiable. On neutralise tout badge de la barre de navigation
   SAUF les trois qui comptent chacun leur propre file — alertes, messages,
   chat — et sauf les lignes de menu deroulant, qui ont leurs propres compteurs. */
.p-nav-inner .badgeContainer:not(.p-navgroup-link--alerts):not(.p-navgroup-link--conversations):not(.p-navgroup-link--chat):not(.menu-linkRow):not(.p-staffBar-link)::before,
.p-nav-inner .badgeContainer:not(.p-navgroup-link--alerts):not(.p-navgroup-link--conversations):not(.p-navgroup-link--chat):not(.menu-linkRow):not(.p-staffBar-link)::after {
	content: none !important;
	display: none !important;
}


/* 4. Habillage neon des compteurs
   ------------------------------
   Les badges etaient au rouge XenForo par defaut (#e74c3c) avec la police
   systeme : etranger a la charte rose/cyan du theme.

   On ne touche QUE la peinture. La geometrie reste celle du theme — position
   absolue, `min-width: 16.8px`, `padding: 1px 5px`, rayon 999px — car elle est
   deja elastique : mesure a 16,8 px pour « 1 », 21,5 px pour « 12 », 28,6 px
   pour « 99+ ». Pas de `border` ajoutee non plus : elle agrandirait la boite de
   2 px. L'anneau clair passe par un `inset` de box-shadow, qui ne prend aucune
   place, et l'anneau sombre d'origine est conserve pour detacher le badge de
   l'icone.

   Deux teintes, pour distinguer les files d'un coup d'oeil :
   alertes en rose -> violet, messages en cyan -> violet. */
.p-nav-inner .badgeContainer[data-badge]::after {
	font-family: Rajdhani, Inter, system-ui, sans-serif !important;
	font-weight: 700 !important;
	font-size: 10.5px !important;
	letter-spacing: .02em !important;
	color: #fff !important;
	background-color: #ff0b8b !important;
	background-image: linear-gradient(135deg, #ff4fa8 0%, #ff0b8b 48%, #a35cff 100%) !important;
	box-shadow:
		inset 0 0 0 1px rgba(255, 255, 255, .30),
		0 0 0 2px rgba(8, 6, 14, .85),
		0 0 10px rgba(255, 11, 139, .70),
		0 2px 6px rgba(0, 0, 0, .45) !important;
	text-shadow: 0 1px 1px rgba(0, 0, 0, .40) !important;
}

.p-nav-inner .p-navgroup-link--conversations.badgeContainer[data-badge]::after {
	background-color: #00c2ff !important;
	background-image: linear-gradient(135deg, #5ad9ff 0%, #00c2ff 48%, #8d38ff 100%) !important;
	box-shadow:
		inset 0 0 0 1px rgba(255, 255, 255, .30),
		0 0 0 2px rgba(8, 6, 14, .85),
		0 0 10px rgba(0, 194, 255, .65),
		0 2px 6px rgba(0, 0, 0, .45) !important;
}

} /* fin @layer g6m-header */

/* ==== g6m-login-cmp-fix-v601.css ==== */
/* ==========================================================================
   g6m-login-cmp-fix-v601.css — Bannière cookies + largeur de la page de connexion
   --------------------------------------------------------------------------
   POURQUOI UNE COUCHE @layer — À LIRE AVANT DE MODIFIER

   PAGE_CONTAINER injecte 220 feuilles de style et ~100 blocs <style> inline.
   Sur la page de connexion, une quarantaine de fichiers g6m-login-*.css
   coexistent (v175 … v436), presque tous en « html#XF body … !important ».
   Ajouter une règle de plus hors couche ne réglerait rien : le vainqueur
   serait décidé par l'ordre d'injection.

   Pour les déclarations !important, la cascade CSS INVERSE l'ordre des
   couches et place les styles hors couche en dernier. Une règle !important
   dans une couche nommée bat donc TOUTES les règles !important hors couche,
   quelles que soient leur spécificité et leur position.

   CONSÉQUENCE : toute règle de ce correctif doit être ÉCRITE ICI, DANS LA
   COUCHE. Une règle posée hors du bloc @layer serait inerte.

   DEUX PROBLÈMES TRAITÉS
   1. Bannière cookies (#g6m-cmp) : elle s'affichait en haut, sans style,
      en poussant le header. Son CSS d'origine
      (/site/public/assets/css/g6m-cmp.css) est valide mais n'était pas
      appliqué. On redéclare ici l'essentiel dans la couche.
   2. Page de connexion : g6m-login-aaa-v361.css:884 impose
      width:740px !important à .p-body-pageContent, alors que
      g6m-login-aaa-v397.css:228 y place une grille 3 colonnes. Le panneau
      droit débordait et était rogné par les ~15 « overflow-x:hidden ».

   RETRAIT : supprimer la ligne <link ... v601 ...> de la modification #56,
   puis recompiler PAGE_CONTAINER.
   ========================================================================== */

@layer g6m-login-cmp-fix-v601 {

/* ==========================================================================
   1. BANNIÈRE COOKIES
   ========================================================================== */

#g6m-cmp {
	position: fixed !important;
	inset: auto 0 0 0 !important;
	z-index: 100500 !important;
	display: flex !important;
	justify-content: center !important;
	padding: 0 0 max(12px, env(safe-area-inset-bottom, 0px)) !important;
	margin: 0 !important;
	width: 100% !important;
	max-width: 100vw !important;
	pointer-events: none !important;
	background: none !important;
	border: 0 !important;
}

#g6m-cmp[hidden] {
	display: none !important;
}

#g6m-cmp .g6m-cmp__card {
	pointer-events: auto !important;
	box-sizing: border-box !important;
	width: min(760px, calc(100vw - 24px)) !important;
	max-width: min(760px, calc(100vw - 24px)) !important;
	margin: 0 12px !important;
	padding: 1rem 1.15rem 1.1rem !important;
	border-radius: 18px !important;
	border: 1px solid rgba(255, 93, 189, 0.32) !important;
	background:
		linear-gradient(135deg, rgba(23, 19, 31, 0.97) 0%,
		                        rgba(36, 21, 56, 0.97) 50%,
		                        rgba(27, 19, 39, 0.97) 100%) !important;
	-webkit-backdrop-filter: blur(14px) saturate(130%) !important;
	backdrop-filter: blur(14px) saturate(130%) !important;
	box-shadow:
		0 -6px 34px rgba(0, 0, 0, 0.45),
		0 0 0 1px rgba(255, 255, 255, 0.05) inset,
		0 0 38px rgba(255, 93, 189, 0.1) !important;
	color: #f4f1fb !important;
	text-align: left !important;
}

#g6m-cmp .g6m-cmp__title {
	margin: 0 0 0.4rem !important;
	font-family: Rajdhani, Orbitron, system-ui, sans-serif !important;
	font-size: clamp(0.95rem, 2.6vw, 1.1rem) !important;
	font-weight: 700 !important;
	line-height: 1.25 !important;
	letter-spacing: 0.02em !important;
	color: #fff !important;
}

#g6m-cmp .g6m-cmp__text {
	margin: 0 0 0.85rem !important;
	font-size: clamp(0.8rem, 2.2vw, 0.88rem) !important;
	line-height: 1.55 !important;
	color: rgba(220, 215, 235, 0.86) !important;
}

#g6m-cmp .g6m-cmp__text a {
	color: #ff5dbd !important;
	text-decoration: underline !important;
	text-underline-offset: 2px !important;
}

#g6m-cmp .g6m-cmp__actions {
	display: flex !important;
	flex-wrap: wrap !important;
	align-items: stretch !important;
	gap: 0.5rem !important;
	margin: 0 !important;
	padding: 0 !important;
}

#g6m-cmp .g6m-cmp__btn {
	flex: 1 1 auto !important;
	min-width: 8.5rem !important;
	min-height: 2.6rem !important;
	padding: 0.55rem 1rem !important;
	border-radius: 999px !important;
	border: 1px solid rgba(255, 255, 255, 0.16) !important;
	font-family: Rajdhani, Inter, system-ui, sans-serif !important;
	font-size: 0.86rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.03em !important;
	line-height: 1.2 !important;
	cursor: pointer !important;
	transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease !important;
	background: rgba(255, 255, 255, 0.07) !important;
	color: #f4f1fb !important;
	text-align: center !important;
}

#g6m-cmp .g6m-cmp__btn:hover {
	transform: translateY(-1px) !important;
}

#g6m-cmp .g6m-cmp__btn:focus-visible {
	outline: 2px solid #7cff5b !important;
	outline-offset: 2px !important;
}

#g6m-cmp .g6m-cmp__btn--primary {
	background: linear-gradient(135deg, #ff2d8d 0%, #b84dff 100%) !important;
	border-color: rgba(255, 255, 255, 0.24) !important;
	color: #fff !important;
	box-shadow: 0 0 18px rgba(255, 45, 141, 0.4) !important;
}

#g6m-cmp .g6m-cmp__btn--secondary {
	background: rgba(124, 255, 91, 0.14) !important;
	border-color: rgba(124, 255, 91, 0.4) !important;
	color: #b6ff9e !important;
}

#g6m-cmp .g6m-cmp__btn--ghost {
	background: rgba(255, 255, 255, 0.05) !important;
	color: rgba(226, 222, 240, 0.9) !important;
}

#g6m-cmp-panel {
	margin-top: 0.75rem !important;
	padding-top: 0.75rem !important;
	border-top: 1px solid rgba(255, 255, 255, 0.1) !important;
}

#g6m-cmp-panel[hidden] {
	display: none !important;
}

/* Téléphone : la carte prend toute la largeur, les boutons s'empilent */
@media (max-width: 560px) {
	#g6m-cmp .g6m-cmp__card {
		width: calc(100vw - 16px) !important;
		max-width: calc(100vw - 16px) !important;
		margin: 0 8px !important;
		padding: 0.9rem 0.95rem 1rem !important;
		border-radius: 16px !important;
	}

	#g6m-cmp .g6m-cmp__actions {
		gap: 0.42rem !important;
	}

	#g6m-cmp .g6m-cmp__btn {
		flex: 1 1 100% !important;
		min-width: 0 !important;
	}
}

/* ==========================================================================
   2. LARGEUR DE LA PAGE DE CONNEXION
   Le verrou est width:740px sur .p-body-pageContent (g6m-login-aaa-v361:884).
   On l'élargit pour que la grille 3 colonnes tienne sans être rognée.
   ========================================================================== */

html#XF body[data-template="login"] .p-body-pageContent,
html#XF body[data-template="login_password"] .p-body-pageContent,
html#XF body[data-template="login_two_step"] .p-body-pageContent,
html#XF body[data-template="register_form"] .p-body-pageContent,
html#XF body.template-login .p-body-pageContent,
html#XF body.template-register_form .p-body-pageContent {
	width: min(1180px, calc(100vw - 32px)) !important;
	max-width: min(1180px, calc(100vw - 32px)) !important;
	margin-left: auto !important;
	margin-right: auto !important;
	overflow: visible !important;
}

/* Le conteneur de page ne doit plus rogner ses enfants */
html#XF body[data-template="login"] .p-body,
html#XF body[data-template="login"] .p-body-inner,
html#XF body[data-template="login"] .p-body-main,
html#XF body[data-template="register_form"] .p-body,
html#XF body[data-template="register_form"] .p-body-inner,
html#XF body[data-template="register_form"] .p-body-main {
	overflow: visible !important;
	max-width: 100% !important;
}

/* Aucun enfant de la grille ne doit imposer sa largeur intrinsèque :
   minmax(0,…) ne suffit pas si un enfant a min-width auto. */
html#XF body[data-template="login"] .p-body-pageContent > *,
html#XF body[data-template="register_form"] .p-body-pageContent > * {
	min-width: 0 !important;
}

/* Sous 1024 px la grille 3 colonnes ne tient plus : on empile. */
@media (max-width: 1023px) {
	html#XF body[data-template="login"] .p-body-pageContent,
	html#XF body[data-template="login_password"] .p-body-pageContent,
	html#XF body[data-template="register_form"] .p-body-pageContent {
		width: min(620px, calc(100vw - 24px)) !important;
		max-width: min(620px, calc(100vw - 24px)) !important;
		grid-template-columns: minmax(0, 1fr) !important;
		display: block !important;
	}
}

@media (max-width: 560px) {
	html#XF body[data-template="login"] .p-body-pageContent,
	html#XF body[data-template="login_password"] .p-body-pageContent,
	html#XF body[data-template="register_form"] .p-body-pageContent {
		width: calc(100vw - 16px) !important;
		max-width: calc(100vw - 16px) !important;
	}
}

/* Accessibilité : respect du réglage « mouvement réduit » */
@media (prefers-reduced-motion: reduce) {
	#g6m-cmp .g6m-cmp__btn {
		transition: none !important;
	}

	#g6m-cmp .g6m-cmp__btn:hover {
		transform: none !important;
	}
}


/* ==========================================================================
   3. ICONES DE LA ZONE COMPTE / DECOUVERTE DE LA BARRE DE NAVIGATION
   --------------------------------------------------------------------------
   PROBLEME CONSTATE

   Les templates UI.X emettent, pour ces liens, l'ancien balisage FontAwesome
   « icone par police CSS » :

       <a class="p-navgroup-link--alerts"><i aria-hidden="true"></i>...</a>

   c'est-a-dire un <i> VIDE et SANS CLASSE. XenForo 2.3 est passe au SVG
   inline (<i class="fa--xf far fa-bell"><svg><use .../></svg></i>) et ne
   fournit plus la regle ::before qui dessinait l'icone. Resultat : trois
   boites cliquables de 30x30 entierement vides dans la barre de navigation.

   CORRECTIF

   On redonne une icone a ces <i> via mask-image, en pointant les SVG
   FontAwesome deja presents sur le disque (styles/fa/regular/*.svg, servis
   en HTTP 200). L'icone prend currentColor : elle suit donc exactement la
   couleur et les effets du theme, y compris au survol.

   Aucun template n'est modifie : correction purement CSS, reversible.
   ========================================================================== */

.p-navgroup-link--conversations > i[aria-hidden]:not([class]),
.p-navgroup-link--alerts > i[aria-hidden]:not([class]),
.p-navgroup-link--whatsnew > i[aria-hidden]:not([class]),
.uix_searchIconTrigger > i[aria-hidden]:not([class]) {
	display: inline-block !important;
	width: 1.15em !important;
	height: 1.15em !important;
	flex: 0 0 auto !important;
	background-color: currentColor !important;
	-webkit-mask-repeat: no-repeat !important;
	        mask-repeat: no-repeat !important;
	-webkit-mask-position: center center !important;
	        mask-position: center center !important;
	-webkit-mask-size: contain !important;
	        mask-size: contain !important;
	/* le <i> etait vide : on neutralise tout residu de police iconique */
	font-style: normal !important;
	line-height: 1 !important;
}

.p-navgroup-link--conversations > i[aria-hidden]:not([class]) {
	-webkit-mask-image: url('/forum/styles/fa/regular/envelope.svg') !important;
	        mask-image: url('/forum/styles/fa/regular/envelope.svg') !important;
}

.p-navgroup-link--alerts > i[aria-hidden]:not([class]) {
	-webkit-mask-image: url('/forum/styles/fa/regular/bell.svg') !important;
	        mask-image: url('/forum/styles/fa/regular/bell.svg') !important;
}

.p-navgroup-link--whatsnew > i[aria-hidden]:not([class]) {
	-webkit-mask-image: url('/forum/styles/fa/regular/bolt.svg') !important;
	        mask-image: url('/forum/styles/fa/regular/bolt.svg') !important;
}

.uix_searchIconTrigger > i[aria-hidden]:not([class]) {
	-webkit-mask-image: url('/forum/styles/fa/regular/search.svg') !important;
	        mask-image: url('/forum/styles/fa/regular/search.svg') !important;
}

/* Le libelle textuel reste masque visuellement mais lisible par les
   lecteurs d'ecran : ces liens n'ont pas d'autre intitule accessible. */
.p-navgroup-link--conversations > .p-navgroup-linkText,
.p-navgroup-link--alerts > .p-navgroup-linkText,
.p-navgroup-link--whatsnew > .p-navgroup-linkText {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

/* Cible tactile confortable, sans changer la geometrie de la barre */
.p-navgroup.p-account > .p-navgroup-link--iconic,
.p-nav .p-navgroup.p-discovery > .p-navgroup-link--iconic {
	min-width: 34px !important;
	align-items: center !important;
	justify-content: center !important;
}

/* Les pastilles de compteur doivent rester au-dessus de l'icone */
.p-navgroup-link--conversations .badgeContainer-badge,
.p-navgroup-link--alerts .badgeContainer-badge,
.badgeContainer > .js-badge {
	z-index: 2 !important;
}


/* ==========================================================================
   4. BANDE DE FOND A DROITE SUR MOBILE (bord a bord)
   --------------------------------------------------------------------------
   XenForo core (core_setup.less) impose body{overflow-y:scroll !important}.
   Sur mobile la fenetre defile deja ; un body scrollable EN PLUS reserve une
   seconde gouttiere de barre de defilement (~11 px) A L'INTERIEUR du body.
   .p-pageWrapper en width:100% perd donc ces 11 px et le fond du body
   apparait a droite. Ce n'est pas un debordement : scrollWidth == clientWidth.

   Un correctif existait dans extra.less (G6M_MOBILE_GAP_FIX, 31/07) et il est
   bien servi — mais il perd la cascade : d'autres feuilles redeclarent
   body{overflow-y:scroll !important} plus loin dans l'ordre du document.

   La couche @layer tranche definitivement : pour les declarations !important,
   la cascade INVERSE l'ordre des couches et place les styles hors couche en
   dernier. Cette regle bat donc toutes les autres, quel que soit leur ordre.

   PORTEE VOLONTAIREMENT LIMITEE A body : on ne touche pas a html, dont
   l'overflow sert de verrou de defilement aux modales (popup de recrutement).
   ========================================================================== */

@media (max-width: 1100px) {
	body {
		overflow-y: visible !important;
	}

	/* le wrapper reprend toute la largeur reelle de la zone client */
	html body .p-pageWrapper,
	html body .uix_contentWrapper {
		width: 100% !important;
		max-width: 100% !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
	}
}

}

/* ==== g6m-nav-user-premium-v611.css ==== */
/* ==========================================================================
   G6M_NAV_USER_PREMIUM_V611
   Zone utilisateur du header : messages, notifications, profil, éclair.

   POURQUOI UNE COUCHE @layer — À LIRE AVANT DE MODIFIER
   Cette zone est déjà ciblée par 24 fichiers CSS chargés APRÈS extra.less,
   dont g6m-nav-hide-avatar-v410/v414 et g6m-nav-avatar-cap-v214 qui
   masquent l'avatar avec « display:none !important » sur des sélecteurs
   « html#XF body … » (spécificité 1,6,4).
   Pour les déclarations !important, la cascade INVERSE l'ordre des couches :
   une règle !important posée dans une @layer l'emporte sur toute règle
   !important hors couche, quelle que soit sa spécificité.
   => Une règle écrite hors du bloc @layer ci-dessous serait inerte.

   PORTÉE : uniquement .p-navgroup--member et ses enfants.
   Le logo, la hauteur du header et les autres composants ne sont pas touchés.
   ========================================================================== */

@layer g6m-nav-user-premium-v611 {

    /* --- Réglages, à ajuster ici et nulle part ailleurs ------------------ */
    :root {
        --g6m-nav-avatar: 44px;      /* diamètre de l'avatar */
        --g6m-nav-btn: 42px;         /* côté des boutons carrés */
        --g6m-nav-rose: 255, 0, 153;
        --g6m-nav-violet: 140, 82, 255;
        --g6m-nav-bleu: 0, 210, 255;
    }

    /* ====================================================================
       1. LA CARTE FLOTTANTE
       ==================================================================== */
    html body .p-navgroup.p-account.p-navgroup--member {
        display: flex !important;
        align-items: center !important;
        gap: 6px !important;
        padding: 4px 10px !important;
        background: rgba(12, 8, 24, 0.92) !important;
        border: 1px solid rgba(var(--g6m-nav-rose), 0.45) !important;
        border-radius: 20px !important;
        box-shadow:
            0 0 18px rgba(var(--g6m-nav-rose), 0.35),
            0 0 40px rgba(var(--g6m-nav-violet), 0.18) !important;
        backdrop-filter: blur(10px) !important;
        -webkit-backdrop-filter: blur(10px) !important;
        transition: box-shadow 0.25s ease, border-color 0.25s ease !important;
    }

    html body .p-navgroup.p-account.p-navgroup--member:hover {
        border-color: rgba(var(--g6m-nav-rose), 0.7) !important;
        box-shadow:
            0 0 26px rgba(var(--g6m-nav-rose), 0.5),
            0 0 58px rgba(var(--g6m-nav-violet), 0.3) !important;
    }

    /* ====================================================================
       2. BOUTONS CARRÉS 42x42 — messages, notifications, éclair
       ==================================================================== */
    html body .p-navgroup.p-account.p-navgroup--member > .p-navgroup-link:not(.p-navgroup-link--user) {
        position: relative !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        width: var(--g6m-nav-btn) !important;
        height: var(--g6m-nav-btn) !important;
        min-width: var(--g6m-nav-btn) !important;
        padding: 0 !important;
        margin: 0 !important;
        border-radius: 12px !important;
        background: rgba(255, 255, 255, 0.04) !important;
        border: 1px solid rgba(255, 255, 255, 0.07) !important;
        color: rgba(255, 255, 255, 0.88) !important;
        transition:
            background-color 0.2s ease,
            border-color 0.2s ease,
            box-shadow 0.2s ease,
            transform 0.2s ease !important;
    }

    html body .p-navgroup.p-account.p-navgroup--member > .p-navgroup-link:not(.p-navgroup-link--user):hover,
    html body .p-navgroup.p-account.p-navgroup--member > .p-navgroup-link:not(.p-navgroup-link--user):focus-visible {
        background: rgba(255, 255, 255, 0.09) !important;
        border-color: rgba(var(--g6m-nav-rose), 0.45) !important;
        box-shadow:
            0 0 14px rgba(var(--g6m-nav-rose), 0.4),
            0 0 26px rgba(var(--g6m-nav-violet), 0.22) !important;
        transform: translateY(-1px) !important;
        color: #fff !important;
    }

    /* Les pastilles de compteur restent au-dessus de l'icône. */
    html body .p-navgroup.p-account.p-navgroup--member > .p-navgroup-link .badgeContainer > .badge,
    html body .p-navgroup.p-account.p-navgroup--member > .p-navgroup-link .js-badge {
        z-index: 2 !important;
    }

    /* ====================================================================
       3. SÉPARATEUR VERTICAL LUMINEUX entre les icônes et le profil
       ==================================================================== */
    html body .p-navgroup.p-account.p-navgroup--member > .p-navgroup-link--user::before {
        content: "" !important;
        position: absolute !important;
        left: -4px !important;
        top: 50% !important;
        transform: translateY(-50%) !important;
        width: 1px !important;
        height: 26px !important;
        border-radius: 1px !important;
        background: linear-gradient(
            180deg,
            rgba(var(--g6m-nav-rose), 0) 0%,
            rgba(var(--g6m-nav-rose), 0.85) 50%,
            rgba(var(--g6m-nav-violet), 0) 100%
        ) !important;
        box-shadow: 0 0 8px rgba(var(--g6m-nav-rose), 0.55) !important;
        display: block !important;
        pointer-events: none !important;
        opacity: 1 !important;
    }

    /* ====================================================================
       4. LE PROFIL
       ==================================================================== */
    html body .p-navgroup.p-account.p-navgroup--member > .p-navgroup-link--user {
        position: relative !important;
        display: inline-flex !important;
        align-items: center !important;
        gap: 10px !important;
        margin-left: 8px !important;
        padding: 3px 10px 3px 4px !important;
        border-radius: 16px !important;
        background: transparent !important;
        border: 1px solid transparent !important;
        transition:
            background-color 0.2s ease,
            border-color 0.2s ease,
            box-shadow 0.2s ease,
            transform 0.2s ease !important;
    }

    html body .p-navgroup.p-account.p-navgroup--member > .p-navgroup-link--user:hover,
    html body .p-navgroup.p-account.p-navgroup--member > .p-navgroup-link--user:focus-visible {
        background: rgba(255, 255, 255, 0.06) !important;
        border-color: rgba(var(--g6m-nav-violet), 0.4) !important;
        box-shadow:
            0 0 14px rgba(var(--g6m-nav-rose), 0.32),
            0 0 26px rgba(var(--g6m-nav-violet), 0.2) !important;
        transform: translateY(-1px) !important;
    }

    /* 4a. Avatar rond 44px — on ANNULE le masquage hérité de v410/v414/v214.
           C'est la raison d'être de la couche : ces fichiers utilisent
           display:none !important et left:-9999px !important. */
    html body .p-navgroup.p-account.p-navgroup--member > .p-navgroup-link--user > .avatar,
    html body .p-navgroup.p-account.p-navgroup--member > .p-navgroup-link--user .avatar,
    html body .p-navgroup.p-account.p-navgroup--member > .p-navgroup-link--user .avatar.avatar--xxs {
        display: inline-block !important;
        visibility: visible !important;
        position: static !important;
        left: auto !important;
        opacity: 1 !important;
        width: var(--g6m-nav-avatar) !important;
        height: var(--g6m-nav-avatar) !important;
        min-width: var(--g6m-nav-avatar) !important;
        min-height: var(--g6m-nav-avatar) !important;
        max-width: var(--g6m-nav-avatar) !important;
        max-height: var(--g6m-nav-avatar) !important;
        flex: 0 0 var(--g6m-nav-avatar) !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow: hidden !important;
        border-radius: 50% !important;
        border: 2px solid rgba(var(--g6m-nav-rose), 0.55) !important;
        box-shadow:
            0 0 12px rgba(var(--g6m-nav-rose), 0.4),
            inset 0 0 0 1px rgba(0, 0, 0, 0.6) !important;
        font-size: 0 !important;
        line-height: 0 !important;
        pointer-events: auto !important;
        transition: box-shadow 0.2s ease, border-color 0.2s ease !important;
    }

    html body .p-navgroup.p-account.p-navgroup--member > .p-navgroup-link--user .avatar img {
        display: block !important;
        visibility: visible !important;
        position: static !important;
        left: auto !important;
        opacity: 1 !important;
        width: 100% !important;
        height: 100% !important;
        min-width: 0 !important;
        min-height: 0 !important;
        max-width: 100% !important;
        max-height: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        border: 0 !important;
        border-radius: 50% !important;
        object-fit: cover !important;
        pointer-events: auto !important;
    }

    html body .p-navgroup.p-account.p-navgroup--member > .p-navgroup-link--user:hover .avatar {
        border-color: rgba(var(--g6m-nav-rose), 0.9) !important;
        box-shadow:
            0 0 18px rgba(var(--g6m-nav-rose), 0.6),
            0 0 32px rgba(var(--g6m-nav-violet), 0.28),
            inset 0 0 0 1px rgba(0, 0, 0, 0.6) !important;
    }

    /* 4b. Le bloc texte : nom au-dessus, rôle en dessous. */
    html body .p-navgroup.p-account.p-navgroup--member > .p-navgroup-link--user .p-navgroup-linkText {
        display: flex !important;
        flex-direction: column !important;
        align-items: flex-start !important;
        justify-content: center !important;
        gap: 1px !important;
        line-height: 1.15 !important;
        text-align: left !important;
        max-width: 11rem !important;
        overflow: hidden !important;
    }

    /* Nom en dégradé rose -> violet. */
    html body .p-navgroup.p-account.p-navgroup--member > .p-navgroup-link--user .p-navgroup-linkText > .g6m-nav-userName,
    html body .p-navgroup.p-account.p-navgroup--member > .p-navgroup-link--user .p-navgroup-linkText > .username,
    html body .p-navgroup.p-account.p-navgroup--member > .p-navgroup-link--user .p-navgroup-linkText > span:first-child {
        display: block !important;
        font-weight: 800 !important;
        font-size: 0.95rem !important;
        letter-spacing: 0.02em !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        max-width: 100% !important;
        background: linear-gradient(
            92deg,
            rgb(var(--g6m-nav-rose)) 0%,
            rgb(255, 94, 200) 42%,
            rgb(var(--g6m-nav-violet)) 100%
        ) !important;
        -webkit-background-clip: text !important;
        background-clip: text !important;
        -webkit-text-fill-color: transparent !important;
        color: transparent !important;
    }

    /* Rôle : gris clair, plus petit. */
    html body .p-navgroup.p-account.p-navgroup--member > .p-navgroup-link--user .p-navgroup-linkText > .g6m-nav-userRole,
    html body .p-navgroup.p-account.p-navgroup--member > .p-navgroup-link--user .p-navgroup-linkText > .userTitle,
    html body .p-navgroup.p-account.p-navgroup--member > .p-navgroup-link--user .p-navgroup-linkText > span:nth-child(2) {
        display: block !important;
        font-weight: 600 !important;
        font-size: 0.72rem !important;
        letter-spacing: 0.04em !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        max-width: 100% !important;
        color: rgba(255, 255, 255, 0.55) !important;
        background: none !important;
        -webkit-text-fill-color: rgba(255, 255, 255, 0.55) !important;
    }

    /* Le chevron du menu reste discret et aligné. */
    html body .p-navgroup.p-account.p-navgroup--member > .p-navgroup-link--user .p-navgroup-linkText::after,
    html body .p-navgroup.p-account.p-navgroup--member > .p-navgroup-link--user > i:last-child {
        color: rgba(255, 255, 255, 0.45) !important;
    }

    /* ====================================================================
       5. L'ÉCLAIR — dernier bouton de la carte, néon bleu/violet
       ==================================================================== */
    html body .p-navgroup.p-account.p-navgroup--member > .p-navgroup-link:last-child:not(.p-navgroup-link--user),
    html body .p-navgroup.p-account.p-navgroup--member > .p-navgroup-link--dbtechCredits,
    html body .p-navgroup.p-account.p-navgroup--member > .p-navgroup-link--chat {
        color: rgb(var(--g6m-nav-bleu)) !important;
        border-color: rgba(var(--g6m-nav-bleu), 0.4) !important;
        background: rgba(var(--g6m-nav-bleu), 0.07) !important;
        box-shadow:
            0 0 12px rgba(var(--g6m-nav-bleu), 0.28),
            inset 0 0 10px rgba(var(--g6m-nav-violet), 0.12) !important;
    }

    html body .p-navgroup.p-account.p-navgroup--member > .p-navgroup-link:last-child:not(.p-navgroup-link--user):hover,
    html body .p-navgroup.p-account.p-navgroup--member > .p-navgroup-link--dbtechCredits:hover,
    html body .p-navgroup.p-account.p-navgroup--member > .p-navgroup-link--chat:hover {
        color: #fff !important;
        border-color: rgba(var(--g6m-nav-bleu), 0.75) !important;
        background: rgba(var(--g6m-nav-bleu), 0.14) !important;
        box-shadow:
            0 0 18px rgba(var(--g6m-nav-bleu), 0.55),
            0 0 34px rgba(var(--g6m-nav-violet), 0.3) !important;
        transform: translateY(-1px) !important;
    }

    /* ====================================================================
       6. RESPONSIVE — sous 768px
       ==================================================================== */
    @media (max-width: 767px) {
        html body .p-navgroup.p-account.p-navgroup--member {
            gap: 4px !important;
            padding: 3px 6px !important;
            border-radius: 16px !important;
        }

        html body .p-navgroup.p-account.p-navgroup--member > .p-navgroup-link:not(.p-navgroup-link--user) {
            width: 36px !important;
            height: 36px !important;
            min-width: 36px !important;
            border-radius: 10px !important;
        }

        html body .p-navgroup.p-account.p-navgroup--member > .p-navgroup-link--user {
            gap: 7px !important;
            margin-left: 6px !important;
            padding: 2px 6px 2px 3px !important;
        }

        /* L'avatar et le nom restent, le rôle disparaît. */
        html body .p-navgroup.p-account.p-navgroup--member > .p-navgroup-link--user .avatar,
        html body .p-navgroup.p-account.p-navgroup--member > .p-navgroup-link--user > .avatar {
            --g6m-nav-avatar: 34px;
        }

        html body .p-navgroup.p-account.p-navgroup--member > .p-navgroup-link--user .p-navgroup-linkText > .g6m-nav-userRole,
        html body .p-navgroup.p-account.p-navgroup--member > .p-navgroup-link--user .p-navgroup-linkText > .userTitle,
        html body .p-navgroup.p-account.p-navgroup--member > .p-navgroup-link--user .p-navgroup-linkText > span:nth-child(2) {
            display: none !important;
        }

        html body .p-navgroup.p-account.p-navgroup--member > .p-navgroup-link--user .p-navgroup-linkText {
            max-width: 7.5rem !important;
        }

        html body .p-navgroup.p-account.p-navgroup--member > .p-navgroup-link--user .p-navgroup-linkText > .g6m-nav-userName,
        html body .p-navgroup.p-account.p-navgroup--member > .p-navgroup-link--user .p-navgroup-linkText > .username,
        html body .p-navgroup.p-account.p-navgroup--member > .p-navgroup-link--user .p-navgroup-linkText > span:first-child {
            font-size: 0.85rem !important;
        }

        html body .p-navgroup.p-account.p-navgroup--member > .p-navgroup-link--user::before {
            height: 20px !important;
            left: -3px !important;
        }
    }

    @media (max-width: 420px) {
        html body .p-navgroup.p-account.p-navgroup--member {
            padding: 3px 5px !important;
            gap: 3px !important;
        }

        html body .p-navgroup.p-account.p-navgroup--member > .p-navgroup-link:not(.p-navgroup-link--user) {
            width: 33px !important;
            height: 33px !important;
            min-width: 33px !important;
        }

        html body .p-navgroup.p-account.p-navgroup--member > .p-navgroup-link--user .p-navgroup-linkText {
            max-width: 5.5rem !important;
        }
    }

    /* ====================================================================
       7. Accessibilité — respect du réglage « mouvement réduit »
       ==================================================================== */
    @media (prefers-reduced-motion: reduce) {
        html body .p-navgroup.p-account.p-navgroup--member,
        html body .p-navgroup.p-account.p-navgroup--member > .p-navgroup-link {
            transition: none !important;
        }

        html body .p-navgroup.p-account.p-navgroup--member > .p-navgroup-link:hover {
            transform: none !important;
        }
    }
}

/* ==== g6m-recruit-popup-responsive-v612.css ==== */
/* ==========================================================================
   G6M_RECRUIT_POPUP_RESPONSIVE_V612
   Popup « Recrute son équipe ! » — rendu 100 % responsive.

   POURQUOI UNE COUCHE @layer
   g6m-recruit-popup-premium-v251.css est chargé bien avant ce fichier et
   pose des règles de structure sans !important. La couche garantit que
   ces règles-ci l'emportent, y compris face aux !important hors couche.
   Une règle écrite hors du bloc @layer ci-dessous serait inerte.

   CE QUI ÉTAIT CASSÉ
   .g6m-rp__dialog portait « max-height: min(92vh,900px); overflow:auto »
   et, sous 720px, .g6m-rp__roles passait à UNE colonne pour 5 rôles.
   Le dialogue devenait donc plus haut que l'écran et c'est LUI qui
   défilait : l'en-tête disparaissait au défilement et les deux boutons
   d'action (« Contacter Kratelos » / « Plus tard ») restaient sous la
   ligne de flottaison, invisibles à l'ouverture.

   PRINCIPE
   Le dialogue devient une colonne flex : en-tête figé en haut, liste des
   rôles seule zone défilante, message et actions toujours visibles en bas.
   Le CTA est donc atteignable quelle que soit la hauteur d'écran.
   ========================================================================== */

@layer g6m-recruit-popup-responsive-v612 {

    /* ====================================================================
       1. LE CONTENEUR — plein écran, marges sûres, encoches gérées
       ==================================================================== */
    html body #g6m-recruit-root {
        position: fixed !important;
        inset: 0 !important;
        display: grid !important;
        place-items: center !important;
        overflow: hidden !important;
        padding:
            max(12px, env(safe-area-inset-top))
            max(12px, env(safe-area-inset-right))
            max(12px, env(safe-area-inset-bottom))
            max(12px, env(safe-area-inset-left)) !important;
        box-sizing: border-box !important;
    }

    /* ====================================================================
       2. LE DIALOGUE — colonne flex, plus jamais de défilement global
       ==================================================================== */
    html body #g6m-recruit-root .g6m-rp__dialog {
        display: flex !important;
        flex-direction: column !important;
        width: min(980px, 100%) !important;
        max-width: 100% !important;
        max-height: min(92vh, 900px) !important;
        overflow: hidden !important;   /* le défilement passe à l'intérieur */
        box-sizing: border-box !important;
    }

    /* dvh : évite que la barre d'adresse mobile rogne le dialogue. */
    @supports (height: 100dvh) {
        html body #g6m-recruit-root .g6m-rp__dialog {
            max-height: min(92dvh, 900px) !important;
        }
    }

    /* En-tête, message, actions et note : figés, ils ne se compriment pas. */
    html body #g6m-recruit-root .g6m-rp__header,
    html body #g6m-recruit-root .g6m-rp__message,
    html body #g6m-recruit-root .g6m-rp__actions,
    html body #g6m-recruit-root .g6m-rp__note {
        flex: 0 0 auto !important;
    }

    /* La liste des rôles est la seule zone qui défile. */
    html body #g6m-recruit-root .g6m-rp__roles {
        flex: 1 1 auto !important;
        min-height: 0 !important;
        overflow-y: auto !important;
        overscroll-behavior: contain !important;
        -webkit-overflow-scrolling: touch !important;
    }

    /* ====================================================================
       3. LE BOUTON DE FERMETURE ne doit jamais chevaucher le logo
       ==================================================================== */
    html body #g6m-recruit-root .g6m-rp__header {
        padding-left: 3rem !important;
        padding-right: 3rem !important;
    }

    /* ====================================================================
       4. PALIERS DE GRILLE — 5 / 3 / 2 / 1 colonnes
       ==================================================================== */
    @media (max-width: 980px) {
        html body #g6m-recruit-root .g6m-rp__roles {
            grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        }
    }

    /* Deux colonnes entre 481 et 720px : la version d'origine passait
       directement à une seule colonne, d'où un dialogue inutilement haut. */
    @media (max-width: 720px) and (min-width: 481px) {
        html body #g6m-recruit-root .g6m-rp__roles {
            grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
            gap: 0.6rem !important;
        }
    }

    @media (max-width: 480px) {
        html body #g6m-recruit-root .g6m-rp__roles {
            grid-template-columns: 1fr !important;
            gap: 0.5rem !important;
        }
    }

    /* ====================================================================
       5. TÉLÉPHONE — compacité et cibles tactiles
       ==================================================================== */
    @media (max-width: 720px) {
        html body #g6m-recruit-root {
            padding:
                max(8px, env(safe-area-inset-top))
                max(8px, env(safe-area-inset-right))
                max(8px, env(safe-area-inset-bottom))
                max(8px, env(safe-area-inset-left)) !important;
        }

        html body #g6m-recruit-root .g6m-rp__dialog {
            width: 100% !important;
            max-height: min(94vh, 900px) !important;
            padding: 1.1rem 0.9rem 0.95rem !important;
            border-radius: 18px !important;
        }

        @supports (height: 100dvh) {
            html body #g6m-recruit-root .g6m-rp__dialog {
                max-height: min(94dvh, 900px) !important;
            }
        }

        html body #g6m-recruit-root .g6m-rp__header {
            padding: 0.2rem 2.6rem 0.1rem !important;
        }

        html body #g6m-recruit-root .g6m-rp__logo {
            width: min(190px, 62%) !important;
            margin-bottom: 0.6rem !important;
        }

        html body #g6m-recruit-root .g6m-rp__lead {
            font-size: 0.88rem !important;
            line-height: 1.45 !important;
        }

        html body #g6m-recruit-root .g6m-rp__role {
            padding: 0.7rem 0.75rem !important;
            gap: 0.65rem !important;
        }

        html body #g6m-recruit-root .g6m-rp__role-desc {
            font-size: 0.8rem !important;
            line-height: 1.4 !important;
        }

        /* Cible tactile confortable pour la fermeture. */
        html body #g6m-recruit-root .g6m-rp__close {
            width: 2.5rem !important;
            height: 2.5rem !important;
            top: 0.6rem !important;
            right: 0.6rem !important;
        }

        /* Les deux actions s'empilent et prennent toute la largeur. */
        html body #g6m-recruit-root .g6m-rp__actions {
            display: flex !important;
            flex-direction: column !important;
            align-items: stretch !important;
            gap: 0.55rem !important;
            width: 100% !important;
            margin-top: 0.85rem !important;
        }

        html body #g6m-recruit-root .g6m-rp__btn {
            width: 100% !important;
            min-height: 46px !important;
            box-sizing: border-box !important;
        }

        html body #g6m-recruit-root .g6m-rp__note {
            font-size: 0.72rem !important;
            margin-top: 0.7rem !important;
        }
    }

    /* ====================================================================
       6. ÉCRANS COURTS (téléphone en paysage) — on gagne de la hauteur
       ==================================================================== */
    @media (max-height: 560px) {
        html body #g6m-recruit-root .g6m-rp__logo {
            width: min(150px, 46%) !important;
            margin-bottom: 0.45rem !important;
        }

        html body #g6m-recruit-root .g6m-rp__lead {
            display: none !important;
        }

        html body #g6m-recruit-root .g6m-rp__message {
            margin-top: 0.6rem !important;
            padding-top: 0.6rem !important;
        }

        html body #g6m-recruit-root .g6m-rp__cta-line,
        html body #g6m-recruit-root .g6m-rp__note {
            display: none !important;
        }
    }

    /* ====================================================================
       7. TRÈS PETITS ÉCRANS
       ==================================================================== */
    @media (max-width: 360px) {
        html body #g6m-recruit-root .g6m-rp__dialog {
            padding: 0.95rem 0.7rem 0.85rem !important;
        }

        html body #g6m-recruit-root .g6m-rp__header {
            padding-left: 2.4rem !important;
            padding-right: 2.4rem !important;
        }

        html body #g6m-recruit-root .g6m-rp__role-title {
            font-size: 0.82rem !important;
        }

        html body #g6m-recruit-root .g6m-rp__role-desc {
            font-size: 0.76rem !important;
        }
    }

    /* ====================================================================
       8. Accessibilité
       ==================================================================== */
    @media (prefers-reduced-motion: reduce) {
        html body #g6m-recruit-root .g6m-rp__dialog {
            transition: none !important;
        }
    }
}

/* ==== g6m-account-menu-scroll-v613.css ==== */
/* ==========================================================================
   G6M_ACCOUNT_MENU_SCROLL_V613
   Menu du compte (clic sur le pseudo) : rendre le contenu défilable.

   PROBLÈME
   Le menu affiche l'avatar, cinq badges de rôle, la carte GTA$, les
   statistiques puis une vingtaine de liens. L'ensemble dépasse la hauteur
   de l'écran, mais aucun conteneur ne défile : le bas du menu — « Personnes
   suivies », « Comptes connectés », la déconnexion — est inatteignable.

   POURQUOI UNE COUCHE @layer
   g6m-forum-ui-critical.css (838 Ko, chargé en 2e position) et
   g6m-menu-stable-v483.css posent des règles !important sur .menu.
   Seule une règle en couche les bat de façon fiable.

   PORTÉE : uniquement .menu--account. Les autres menus du forum
   (notifications, messages, signets, modération) ne sont pas touchés.
   ========================================================================== */

@layer g6m-account-menu-scroll-v613 {

    /* Le cadre du menu ne doit plus rogner son contenu... */
    html body .menu.menu--account {
        overflow: visible !important;
        max-height: none !important;
    }

    /* ...c'est le contenu qui défile. */
    html body .menu.menu--account > .menu-content {
        display: block !important;
        max-height: min(78vh, 680px) !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
        overscroll-behavior: contain !important;
        -webkit-overflow-scrolling: touch !important;
    }

    @supports (height: 100dvh) {
        html body .menu.menu--account > .menu-content {
            max-height: min(78dvh, 680px) !important;
        }
    }

    /* Les panneaux internes ne doivent pas créer un second rognage. */
    html body .menu.menu--account .tabPanel,
    html body .menu.menu--account .menu-tabPanels {
        overflow: visible !important;
        max-height: none !important;
    }

    /* La barre d'onglets (profil, messages, alertes, signets) reste
       visible pendant le défilement. */
    html body .menu.menu--account .menu-tabHeader {
        position: sticky !important;
        top: 0 !important;
        z-index: 3 !important;
        background: rgba(12, 8, 24, 0.96) !important;
        backdrop-filter: blur(8px) !important;
        -webkit-backdrop-filter: blur(8px) !important;
    }

    /* Barre de défilement discrète, dans la teinte du thème. */
    html body .menu.menu--account > .menu-content {
        scrollbar-width: thin !important;
        scrollbar-color: rgba(255, 0, 153, 0.55) transparent !important;
    }

    html body .menu.menu--account > .menu-content::-webkit-scrollbar {
        width: 8px !important;
    }

    html body .menu.menu--account > .menu-content::-webkit-scrollbar-track {
        background: transparent !important;
    }

    html body .menu.menu--account > .menu-content::-webkit-scrollbar-thumb {
        border-radius: 999px !important;
        background: linear-gradient(
            180deg,
            rgba(255, 0, 153, 0.75),
            rgba(140, 82, 255, 0.75)
        ) !important;
    }

    /* Téléphone : on récupère de la hauteur utile. */
    @media (max-width: 767px) {
        html body .menu.menu--account > .menu-content {
            max-height: min(72vh, 560px) !important;
        }

        @supports (height: 100dvh) {
            html body .menu.menu--account > .menu-content {
                max-height: min(72dvh, 560px) !important;
            }
        }
    }

    /* Écran court (paysage) : le menu reste utilisable. */
    @media (max-height: 560px) {
        html body .menu.menu--account > .menu-content {
            max-height: 82vh !important;
        }
    }
}

/* ==== g6m-footer-vicecity-v700.css ==== */
/* ==========================================================================
   G6M — FOOTER VICE CITY v700
   Refonte premium du footer forum (GTA VI / neon / glassmorphism).

   TOUT est dans @layer g6m-footer. C'est volontaire et indispensable :
   les ~280 feuilles du forum declarent le footer en `html#XF body ... !important`
   hors couche. Pour les declarations !important la cascade CSS INVERSE l'ordre
   des couches et place le hors-couche en dernier : une regle !important en
   couche nommee bat donc tout le hors-couche, sans surenchere de specificite.
   Voir g6m-mobile-header-v600.css et g6m-login-cmp-fix-v601.css (meme motif).

   Une regle ecrite hors de la couche dans ce fichier serait inerte.
   ========================================================================== */

@layer g6m-footer {

/* --------------------------------------------------------------------------
   1. Jetons
   -------------------------------------------------------------------------- */
.g6m-site-footer.g6m-vc {
	--vc-pink: #ff0b8b;
	--vc-pink-soft: #ff6eb8;
	--vc-violet: #8d38ff;
	--vc-cyan: #00d7ff;
	--vc-cyan-soft: #5cefff;
	--vc-ink: #05030c;

	/* Hauteur de scene. L'asset est une BANDE recadree dans l'artwork d'origine
	   (y 15 % -> 66,9 %), ratio 3.4286 : elle garde le soleil, la skyline,
	   l'enseigne XERO et les personnages de la tete a la taille.
	   29.17vw reproduit ce ratio exactement — entre 1440 et 1920 px de large la
	   bande se pose au pixel, sans le moindre recadrage supplementaire.
	   Pour raccourcir encore, baisser le plafond : 480px reste coherent. */
	--vc-scene-h: clamp(420px, 29.17vw, 560px);

	/* Coque pleine largeur : les personnages occupent 46 -> 79 % de la LARGEUR
	   DU VIEWPORT (l'image est en `cover`), pas de la coque. Une coque centree a
	   1680px gaspillait 120px de chaque cote et ecrasait les colonnes contre
	   Lucia. Ici le texte demarre au bord et dispose de toute la zone libre. */
	--vc-shell: 1920px;
	--vc-pad-x: 64px;
	/* Padding vertical serre : dans une bande de 560px, le bloc de texte doit
	   s'arreter au-dessus de l'enseigne XERO, sinon « Cookies » tombe dessus. */
	--vc-pad-y: 38px;
	--vc-ease: 220ms cubic-bezier(.22, .61, .36, 1);
}

/* --------------------------------------------------------------------------
   2. Chassis pleine largeur
   -------------------------------------------------------------------------- */
.g6m-site-footer.g6m-vc {
	position: relative !important;
	display: block !important;
	width: 100% !important;
	background-color: var(--vc-ink) !important;
	isolation: isolate !important;
}

/* Filet neon superieur */
.g6m-site-footer.g6m-vc .g6m-site-footer__border {
	position: relative !important;
	z-index: 4 !important;
	height: 2px !important;
	background: linear-gradient(90deg,
		rgba(255, 11, 139, 0) 0%,
		var(--vc-pink) 18%,
		var(--vc-violet) 50%,
		var(--vc-cyan) 82%,
		rgba(0, 215, 255, 0) 100%) !important;
	box-shadow:
		0 0 18px rgba(255, 11, 139, .55),
		0 0 34px rgba(0, 215, 255, .28) !important;
}

.g6m-site-footer.g6m-vc .g6m-site-footer__body {
	position: relative !important;
	overflow: hidden !important;
	min-height: var(--vc-scene-h) !important;
	height: auto !important;
	max-height: none !important;
	display: flex !important;
	/* Contenu cale en HAUT, pas centre : dans la moitie basse de l'artwork se
	   trouvent la station XERO et ses neons. Centre verticalement, « Cookies »
	   tombait pile sur l'enseigne et devenait illisible. En haut, le texte se
	   detache sur le ciel, qui est un degrade uniforme. */
	align-items: flex-start !important;
}

/* --------------------------------------------------------------------------
   3. Scene : artwork + voile de lisibilite + reflets
   -------------------------------------------------------------------------- */
.g6m-site-footer.g6m-vc .g6m-site-footer__scene {
	position: absolute !important;
	inset: 0 !important;
	top: 0 !important;
	bottom: 0 !important;
	height: auto !important;
	min-height: 0 !important;
	max-height: none !important;
	overflow: hidden !important;
	pointer-events: none !important;
	z-index: 0 !important;
}

.g6m-site-footer.g6m-vc .g6m-site-footer__scene-img {
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	max-height: none !important;
	object-fit: cover !important;
	/* `center top` : l'artwork est plus haut que la bande, le recadrage enleve
	   donc du BAS (asphalte au premier plan) et jamais les tetes.
	   PAS de transform: scale() ici — un zoom, meme de 4%, rogne le haut du
	   cadre et decapite les personnages. */
	object-position: center top !important;
	transform: none !important;
	filter: saturate(1.06) contrast(1.03) !important;
}

/* Voile : degrade horizontal de lisibilite (specification client) */
.g6m-site-footer.g6m-vc .g6m-site-footer__scene-veil {
	position: absolute !important;
	inset: 0 !important;
	z-index: 2 !important;
	pointer-events: none !important;
	background:
		/* Voile volontairement leger. La version precedente montait a .94 a
		   gauche : le coucher de soleil, les palmiers et la station devenaient
		   noirs, et l'artwork n'etait plus reconnaissable. La lisibilite est
		   assuree ici par l'ombre portee des textes, pas par l'ecrasement de
		   l'image. */
		linear-gradient(90deg,
			rgba(5, 3, 12, .56) 0%,
			rgba(8, 5, 18, .42) 26%,
			rgba(10, 6, 22, .24) 46%,
			rgba(10, 6, 22, .14) 64%,
			rgba(5, 3, 12, .36) 100%),
		linear-gradient(180deg,
			rgba(5, 3, 12, .26) 0%,
			rgba(5, 3, 12, .02) 22%,
			rgba(5, 3, 12, .02) 70%,
			rgba(5, 3, 12, .50) 100%) !important;
}

/* Reflets neon : deux halos larges, tres diffus. Donne la profondeur
   « source lumineuse dans la scene » plutot qu'un filtre pose dessus. */
.g6m-site-footer.g6m-vc .g6m-vc-scene__glow {
	position: absolute !important;
	inset: 0 !important;
	z-index: 3 !important;
	pointer-events: none !important;
	background:
		radial-gradient(58% 82% at 8% 106%, rgba(255, 11, 139, .30) 0%, rgba(255, 11, 139, 0) 62%),
		radial-gradient(46% 70% at 52% -8%, rgba(141, 56, 255, .26) 0%, rgba(141, 56, 255, 0) 66%),
		radial-gradient(40% 66% at 88% 104%, rgba(0, 215, 255, .22) 0%, rgba(0, 215, 255, 0) 64%) !important;
	mix-blend-mode: screen !important;
}

/* Vignette : referme les quatre bords, evite l'effet « image collee » */
.g6m-site-footer.g6m-vc .g6m-vc-scene__vignette {
	position: absolute !important;
	inset: 0 !important;
	z-index: 3 !important;
	pointer-events: none !important;
	background: radial-gradient(120% 140% at 50% 45%,
		rgba(0, 0, 0, 0) 46%,
		rgba(3, 2, 8, .42) 78%,
		rgba(3, 2, 8, .78) 100%) !important;
}

/* --------------------------------------------------------------------------
   4. Conteneur interne
   -------------------------------------------------------------------------- */
.g6m-site-footer.g6m-vc .g6m-vc-inner {
	position: relative !important;
	z-index: 5 !important;
	box-sizing: border-box !important;
	width: 100% !important;
	max-width: var(--vc-shell) !important;
	margin: 0 auto !important;
	padding: var(--vc-pad-y) var(--vc-pad-x) !important;
}

/* 4 pistes : marque | navigation | support | zone artwork (reservee).
   La 4e piste ne porte pas de texte : elle garde les personnages degages
   et empeche toute colonne de venir se poser sur eux. */
.g6m-site-footer.g6m-vc .g6m-vc-cols {
	display: grid !important;
	/* Coordonnees relevees sur l'artwork : Jason & Lucia occupent 51 -> 79 % de
	   la largeur, la voiture de droite 78 -> 100 %. La 4e piste vaut donc
	   2.49fr sur 4.98 = 50 % : le texte s'arrete avant eux, toujours. */
	grid-template-columns:
		minmax(240px, .96fr)
		minmax(205px, .86fr)
		minmax(205px, .86fr)
		minmax(0, 2.42fr) !important;
	/* Gouttiere ramenee de 56 a 44px. A 233px de colonne, 56px d'ecart faisaient
	   lire Navigation et Support comme deux blocs isoles au lieu d'un ensemble. */
	column-gap: 44px !important;
	row-gap: 26px !important;
	align-items: start !important;
}

/* Placement explicite sur deux lignes.
   Sans cela, la carte occupant les pistes 1 a 3 de la ligne 1 laisse la piste 4
   libre sur cette meme ligne, et le placement automatique y envoie la colonne
   marque — le logo se retrouve a droite, sur les personnages. */
.g6m-site-footer.g6m-vc .g6m-vc-brand,
.g6m-site-footer.g6m-vc .g6m-vc-col {
	grid-row: 2 !important;
}

.g6m-site-footer.g6m-vc .g6m-vc-artzone {
	grid-column: 4 !important;
	grid-row: 1 / span 2 !important;
}

/* --------------------------------------------------------------------------
   4 bis. Regime de remplissage des SVG

   Le coeur XenForo declare `svg { fill: currentcolor }` dans css.php. Un
   attribut de presentation (`fill="none"` dans le balisage) a une priorite
   INFERIEURE a n'importe quelle regle CSS, meme sans !important : sans ce bloc,
   toutes les icones de trait se remplissent et deviennent des aplats pleins.
   Defaut invisible en local (le banc ne charge pas css.php), visible en prod.

   `<use>` clone le symbole : il faut viser aussi les descendants, sinon le
   contenu clone reprend le fill herite.
   -------------------------------------------------------------------------- */
.g6m-site-footer.g6m-vc .g6m-vc-link__icon,
.g6m-site-footer.g6m-vc .g6m-vc-link__icon *,
.g6m-site-footer.g6m-vc .g6m-vc-link__arrow,
.g6m-site-footer.g6m-vc .g6m-vc-link__arrow *,
.g6m-site-footer.g6m-vc .g6m-vc-user__btn svg,
.g6m-site-footer.g6m-vc .g6m-vc-user__btn svg *,
.g6m-site-footer.g6m-vc .g6m-vc-user__bolt svg,
.g6m-site-footer.g6m-vc .g6m-vc-user__bolt svg *,
.g6m-site-footer.g6m-vc .g6m-vc-user__role svg,
.g6m-site-footer.g6m-vc .g6m-vc-user__role svg * {
	fill: none !important;
	stroke: currentColor !important;
}

/* Le sprite ne doit occuper aucune place. Volontairement ni `display: none`
   ni `visibility: hidden` : selon les moteurs, cacher la source d'un <use>
   peut faire disparaitre les clones. Taille nulle + overflow suffisent. */
.g6m-site-footer.g6m-vc .g6m-vc-sprite {
	position: absolute !important;
	width: 0 !important;
	height: 0 !important;
	overflow: hidden !important;
	pointer-events: none !important;
}

/* --------------------------------------------------------------------------
   5. Colonne marque
   -------------------------------------------------------------------------- */
.g6m-site-footer.g6m-vc .g6m-vc-brand__logo {
	display: block !important;
	width: 208px !important;
	max-width: 208px !important;
	height: auto !important;
	margin: 0 0 22px !important;
	filter: drop-shadow(0 6px 18px rgba(0, 0, 0, .65)) !important;
}

.g6m-site-footer.g6m-vc .g6m-vc-brand__text {
	max-width: 21rem !important;
	margin: 0 !important;
	font-family: Inter, system-ui, sans-serif !important;
	font-size: 14.5px !important;
	font-weight: 400 !important;
	line-height: 1.72 !important;
	color: rgba(244, 246, 255, .94) !important;
	text-shadow:
		0 1px 2px rgba(0, 0, 0, .95),
		0 2px 12px rgba(0, 0, 0, .8) !important;
}

/* --------------------------------------------------------------------------
   6. Colonnes de liens
   -------------------------------------------------------------------------- */
.g6m-site-footer.g6m-vc .g6m-vc-col {
	position: relative !important;
	min-width: 0 !important;
}

/* Separateur vertical entre Navigation et Support */
.g6m-site-footer.g6m-vc .g6m-vc-col--support::before {
	content: "" !important;
	position: absolute !important;
	left: -20px !important;
	top: 4px !important;
	bottom: 4px !important;
	width: 1px !important;
	background: linear-gradient(180deg,
		rgba(255, 255, 255, 0) 0%,
		rgba(255, 255, 255, .16) 22%,
		rgba(255, 255, 255, .16) 78%,
		rgba(255, 255, 255, 0) 100%) !important;
	pointer-events: none !important;
}

.g6m-site-footer.g6m-vc .g6m-vc-col__title {
	position: relative !important;
	margin: 0 0 22px !important;
	padding: 0 !important;
	font-family: Rajdhani, Orbitron, system-ui, sans-serif !important;
	font-size: 15px !important;
	font-weight: 700 !important;
	letter-spacing: .22em !important;
	text-transform: uppercase !important;
	line-height: 1 !important;
}

.g6m-site-footer.g6m-vc .g6m-vc-col__title::after {
	content: "" !important;
	position: absolute !important;
	left: 0 !important;
	bottom: -12px !important;
	width: 100% !important;
	max-width: 190px !important;
	height: 2px !important;
	border-radius: 2px !important;
}

.g6m-site-footer.g6m-vc .g6m-vc-col--nav .g6m-vc-col__title {
	color: var(--vc-pink) !important;
	text-shadow: 0 0 18px rgba(255, 11, 139, .55) !important;
}

.g6m-site-footer.g6m-vc .g6m-vc-col--nav .g6m-vc-col__title::after {
	background: linear-gradient(90deg, var(--vc-pink) 0%, rgba(255, 11, 139, 0) 100%) !important;
	box-shadow: 0 0 12px rgba(255, 11, 139, .55) !important;
}

.g6m-site-footer.g6m-vc .g6m-vc-col--support .g6m-vc-col__title {
	color: var(--vc-cyan) !important;
	text-shadow: 0 0 18px rgba(0, 215, 255, .5) !important;
}

.g6m-site-footer.g6m-vc .g6m-vc-col--support .g6m-vc-col__title::after {
	background: linear-gradient(90deg, var(--vc-cyan) 0%, rgba(0, 215, 255, 0) 100%) !important;
	box-shadow: 0 0 12px rgba(0, 215, 255, .5) !important;
}

.g6m-site-footer.g6m-vc .g6m-vc-list {
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
	display: flex !important;
	flex-direction: column !important;
	gap: 2px !important;
}

.g6m-site-footer.g6m-vc .g6m-vc-list > li {
	margin: 0 !important;
	padding: 0 !important;
}

.g6m-site-footer.g6m-vc .g6m-vc-link {
	display: flex !important;
	align-items: center !important;
	gap: 12px !important;
	width: 100% !important;
	/* 250px laissait ~190px de vide entre « Accueil » et son chevron. 208px
	   suffisent au libelle le plus long (« Telechargements ») : les chevrons
	   restent alignes en colonne, sans la trainee de vide. */
	max-width: 208px !important;
	min-height: 33px !important;
	padding: 3px 10px 3px 8px !important;
	margin-left: -8px !important;
	border-radius: 10px !important;
	font-family: Inter, system-ui, sans-serif !important;
	font-size: 15px !important;
	font-weight: 600 !important;
	line-height: 1.3 !important;
	letter-spacing: .012em !important;
	color: #fff !important;
	text-decoration: none !important;
	/* Halo sombre dense : c'est LUI qui porte la lisibilite au-dessus de
	   l'artwork, pour que le voile puisse rester leger. */
	text-shadow:
		0 1px 2px rgba(0, 0, 0, .95),
		0 2px 10px rgba(0, 0, 0, .85),
		0 0 22px rgba(0, 0, 0, .6) !important;
	background: transparent !important;
	transition: transform var(--vc-ease), color var(--vc-ease),
		background-color var(--vc-ease) !important;
}

/* Icone de tete */
.g6m-site-footer.g6m-vc .g6m-vc-link__icon {
	flex: 0 0 auto !important;
	width: 19px !important;
	height: 19px !important;
	display: block !important;
	transition: filter var(--vc-ease), transform var(--vc-ease) !important;
}

.g6m-site-footer.g6m-vc .g6m-vc-link__label {
	flex: 1 1 auto !important;
	min-width: 0 !important;
	overflow: hidden !important;
	text-overflow: ellipsis !important;
	white-space: nowrap !important;
}

/* Chevron pousse a droite */
.g6m-site-footer.g6m-vc .g6m-vc-link__arrow {
	flex: 0 0 auto !important;
	width: 14px !important;
	height: 14px !important;
	display: block !important;
	opacity: .85 !important;
	transition: transform var(--vc-ease), opacity var(--vc-ease) !important;
}

/* Neutralise le chevron typographique ::after de l'ancienne feuille */
.g6m-site-footer.g6m-vc .g6m-vc-link::after {
	content: none !important;
	display: none !important;
}

.g6m-site-footer.g6m-vc .g6m-vc-col--nav .g6m-vc-link__icon,
.g6m-site-footer.g6m-vc .g6m-vc-col--nav .g6m-vc-link__arrow {
	color: var(--vc-pink-soft) !important;
	filter: drop-shadow(0 0 6px rgba(255, 11, 139, .55)) !important;
}

.g6m-site-footer.g6m-vc .g6m-vc-col--support .g6m-vc-link__icon,
.g6m-site-footer.g6m-vc .g6m-vc-col--support .g6m-vc-link__arrow {
	color: var(--vc-cyan-soft) !important;
	filter: drop-shadow(0 0 6px rgba(0, 215, 255, .5)) !important;
}

.g6m-site-footer.g6m-vc .g6m-vc-link:hover,
.g6m-site-footer.g6m-vc .g6m-vc-link:focus-visible {
	transform: translateX(4px) !important;
	color: #fff !important;
	background: rgba(255, 255, 255, .055) !important;
}

.g6m-site-footer.g6m-vc .g6m-vc-col--nav .g6m-vc-link:hover,
.g6m-site-footer.g6m-vc .g6m-vc-col--nav .g6m-vc-link:focus-visible {
	color: #ffd0e8 !important;
}

.g6m-site-footer.g6m-vc .g6m-vc-col--support .g6m-vc-link:hover,
.g6m-site-footer.g6m-vc .g6m-vc-col--support .g6m-vc-link:focus-visible {
	color: #d2f6ff !important;
}

.g6m-site-footer.g6m-vc .g6m-vc-link:hover .g6m-vc-link__arrow,
.g6m-site-footer.g6m-vc .g6m-vc-link:focus-visible .g6m-vc-link__arrow {
	transform: translateX(3px) !important;
	opacity: 1 !important;
}

.g6m-site-footer.g6m-vc .g6m-vc-link:hover .g6m-vc-link__icon,
.g6m-site-footer.g6m-vc .g6m-vc-link:focus-visible .g6m-vc-link__icon {
	transform: scale(1.08) !important;
}

.g6m-site-footer.g6m-vc .g6m-vc-link:focus-visible {
	outline: 2px solid rgba(0, 215, 255, .85) !important;
	outline-offset: 2px !important;
}

/* --------------------------------------------------------------------------
   7. Carte utilisateur flottante (glassmorphism)
   -------------------------------------------------------------------------- */
/* La carte est un ELEMENT DE LA GRILLE : premiere ligne, pistes 1 a 3, calee a
   droite du bloc de colonnes. Deux raisons :
   - en position absolue dans le coin, elle passait sur le torse de Jason &
     Lucia, qui occupent tout le tiers droit sur toute la hauteur de la bande ;
   - calee sur le bord de l'ecran plutot que sur les colonnes, elle mordait
     encore la 4e piste, celle reservee a l'artwork.
   En s'arretant a la fin de la piste « Support », elle reste toujours dans la
   zone de texte, a toutes les largeurs, sans calcul de marge fragile. */
.g6m-site-footer.g6m-vc .g6m-vc-user {
	/* Centree sur les DEUX colonnes de liens plutot que calee a droite du bloc
	   entier : elle les coiffe au lieu de flotter au-dessus de la gouttiere. */
	grid-column: 2 / 4 !important;
	grid-row: 1 !important;
	justify-self: center !important;
	position: relative !important;
	top: auto !important;
	right: auto !important;
	z-index: 6 !important;
	margin: 0 0 6px 0 !important;
	width: fit-content !important;
	max-width: 100% !important;
	box-sizing: border-box !important;
	display: flex !important;
	align-items: center !important;
	gap: 16px !important;
	box-sizing: border-box !important;
	padding: 12px 18px !important;
	border: 1.5px solid transparent !important;
	border-radius: 20px !important;
	background:
		linear-gradient(150deg, rgba(16, 10, 32, .72), rgba(9, 6, 20, .60)) padding-box,
		linear-gradient(135deg, var(--vc-pink) 0%, var(--vc-violet) 52%, var(--vc-cyan) 100%) border-box !important;
	backdrop-filter: blur(12px) saturate(150%) !important;
	-webkit-backdrop-filter: blur(12px) saturate(150%) !important;
	box-shadow:
		0 18px 46px rgba(0, 0, 0, .55),
		0 0 26px rgba(255, 11, 139, .26),
		inset 0 1px 0 rgba(255, 255, 255, .10) !important;
	transition: box-shadow var(--vc-ease), transform var(--vc-ease) !important;
}

.g6m-site-footer.g6m-vc .g6m-vc-user:hover {
	transform: translateY(-2px) !important;
	box-shadow:
		0 22px 54px rgba(0, 0, 0, .6),
		0 0 40px rgba(255, 11, 139, .45),
		0 0 64px rgba(141, 56, 255, .26),
		inset 0 1px 0 rgba(255, 255, 255, .14) !important;
}

.g6m-site-footer.g6m-vc .g6m-vc-user__actions {
	display: flex !important;
	align-items: center !important;
	gap: 6px !important;
}

.g6m-site-footer.g6m-vc .g6m-vc-user__btn {
	position: relative !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 40px !important;
	height: 40px !important;
	border: 0 !important;
	border-radius: 12px !important;
	background: transparent !important;
	color: var(--vc-pink-soft) !important;
	filter: drop-shadow(0 0 8px rgba(255, 11, 139, .55)) !important;
	transition: background-color var(--vc-ease), transform var(--vc-ease),
		filter var(--vc-ease) !important;
}

.g6m-site-footer.g6m-vc .g6m-vc-user__btn svg {
	width: 21px !important;
	height: 21px !important;
	display: block !important;
}

.g6m-site-footer.g6m-vc .g6m-vc-user__btn:hover {
	background: rgba(255, 255, 255, .09) !important;
	transform: translateY(-1px) !important;
	filter: drop-shadow(0 0 14px rgba(255, 11, 139, .85)) !important;
}

.g6m-site-footer.g6m-vc .g6m-vc-user__badge {
	position: absolute !important;
	top: 5px !important;
	right: 5px !important;
	min-width: 16px !important;
	height: 16px !important;
	padding: 0 4px !important;
	border-radius: 999px !important;
	font-family: Rajdhani, system-ui, sans-serif !important;
	font-size: 10.5px !important;
	font-weight: 700 !important;
	line-height: 16px !important;
	text-align: center !important;
	color: #fff !important;
	background: linear-gradient(135deg, var(--vc-pink), var(--vc-violet)) !important;
	box-shadow: 0 0 10px rgba(255, 11, 139, .8) !important;
}

.g6m-site-footer.g6m-vc .g6m-vc-user__sep {
	width: 1px !important;
	height: 34px !important;
	background: linear-gradient(180deg,
		rgba(255, 255, 255, 0),
		rgba(255, 255, 255, .28),
		rgba(255, 255, 255, 0)) !important;
}

.g6m-site-footer.g6m-vc .g6m-vc-user__id {
	display: flex !important;
	align-items: center !important;
	gap: 12px !important;
	text-decoration: none !important;
}

.g6m-site-footer.g6m-vc .g6m-vc-user__avatar {
	position: relative !important;
	flex: 0 0 auto !important;
	width: 48px !important;
	height: 48px !important;
	border-radius: 50% !important;
	overflow: hidden !important;
	background: #120a22 !important;
	box-shadow:
		0 0 0 2px rgba(255, 11, 139, .85),
		0 0 18px rgba(255, 11, 139, .5) !important;
}

/* Couvre les deux sorties de <xf:avatar> : une image, ou un avatar par defaut
   (pastille coloree + initiale). Sans cela l'initiale reste minuscule et
   collee en haut a gauche du cercle. */
.g6m-site-footer.g6m-vc .g6m-vc-user__avatar img,
.g6m-site-footer.g6m-vc .g6m-vc-user__avatar .avatar,
.g6m-site-footer.g6m-vc .g6m-vc-user__avatar > span {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 100% !important;
	height: 100% !important;
	margin: 0 !important;
	object-fit: cover !important;
	border-radius: 50% !important;
	font-family: Rajdhani, system-ui, sans-serif !important;
	font-size: 22px !important;
	font-weight: 700 !important;
	line-height: 1 !important;
	color: #fff !important;
	text-decoration: none !important;
}

.g6m-site-footer.g6m-vc .g6m-vc-user__avatar img {
	display: block !important;
}

.g6m-site-footer.g6m-vc .g6m-vc-user__meta {
	display: flex !important;
	flex-direction: column !important;
	gap: 2px !important;
	min-width: 0 !important;
}

.g6m-site-footer.g6m-vc .g6m-vc-user__name {
	font-family: Rajdhani, Orbitron, system-ui, sans-serif !important;
	font-size: 19px !important;
	font-weight: 700 !important;
	line-height: 1.1 !important;
	letter-spacing: .02em !important;
	/* Le degrade doit se lire sur un mot court : « Kratelos » ne fait que
	   8 caracteres. Un arret rose a 42 % laissait 3/4 du pseudo dans la meme
	   teinte et le degrade paraissait ne pas s'appliquer. Le violet arrive
	   maintenant des 45 %, et le cyan ferme la course. */
	background: linear-gradient(100deg,
		#ff5cb0 0%,
		#ff0b8b 22%,
		#a35cff 62%,
		#5ad9ff 100%) !important;
	-webkit-background-clip: text !important;
	background-clip: text !important;
	color: transparent !important;
	/* Certaines feuilles du forum forcent -webkit-text-fill-color sur les
	   pseudos (role-usernames) : sans cette ligne, le remplissage opaque
	   recouvre le degrade. */
	-webkit-text-fill-color: transparent !important;
	white-space: nowrap !important;
}

.g6m-site-footer.g6m-vc .g6m-vc-user__role {
	display: inline-flex !important;
	align-items: center !important;
	gap: 5px !important;
	font-family: Inter, system-ui, sans-serif !important;
	font-size: 12.5px !important;
	font-weight: 400 !important;
	line-height: 1.2 !important;
	color: rgba(212, 216, 234, .88) !important;
	white-space: nowrap !important;
}

.g6m-site-footer.g6m-vc .g6m-vc-user__role svg {
	width: 11px !important;
	height: 11px !important;
	opacity: .8 !important;
}

.g6m-site-footer.g6m-vc .g6m-vc-user__bolt {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 40px !important;
	height: 40px !important;
	border-radius: 12px !important;
	color: var(--vc-cyan) !important;
	filter: drop-shadow(0 0 10px rgba(0, 215, 255, .7)) !important;
	transition: transform var(--vc-ease), filter var(--vc-ease),
		background-color var(--vc-ease) !important;
}

.g6m-site-footer.g6m-vc .g6m-vc-user__bolt svg {
	width: 22px !important;
	height: 22px !important;
	display: block !important;
}

.g6m-site-footer.g6m-vc .g6m-vc-user__bolt:hover {
	background: rgba(255, 255, 255, .09) !important;
	transform: translateY(-1px) scale(1.04) !important;
	filter: drop-shadow(0 0 18px rgba(0, 215, 255, 1)) !important;
}

/* --------------------------------------------------------------------------
   8. Raccord bande -> bandeau de credits

   Avant : l'artwork etait tranche net, puis un aplat noir demarrait sous un
   filet blanc a 7 %. Deux plans juxtaposes, aucune continuite.

   Maintenant, trois couches qui se recouvrent :
   1. un fondu de 90-150px en bas de la bande, qui va jusqu'a la couleur EXACTE
      du bandeau (#05040b) — la couture disparait ;
   2. un filet neon centre, qui fait de la jonction une separation voulue ;
   3. des halos froids en haut du bandeau, qui prolongent l'ambiance de la
      scene au lieu de la couper.

   Les deux pseudo-elements sont portes par `__body` et non par `__bottom` :
   d'autres feuilles du forum posent deja des pseudo-elements sur `__bottom`.
   -------------------------------------------------------------------------- */

/* 1. Fondu vers le bandeau */
.g6m-site-footer.g6m-vc .g6m-site-footer__body::after {
	content: "" !important;
	position: absolute !important;
	left: 0 !important;
	right: 0 !important;
	bottom: 0 !important;
	height: clamp(90px, 12vw, 150px) !important;
	z-index: 4 !important;
	pointer-events: none !important;
	background: linear-gradient(180deg,
		rgba(5, 4, 11, 0) 0%,
		rgba(5, 4, 11, .30) 36%,
		rgba(5, 4, 11, .68) 64%,
		rgba(5, 4, 11, .92) 85%,
		#05040b 100%) !important;
}

/* 2. Filet neon a la jonction */
.g6m-site-footer.g6m-vc .g6m-site-footer__body::before {
	content: "" !important;
	position: absolute !important;
	left: 50% !important;
	bottom: 0 !important;
	transform: translateX(-50%) !important;
	width: min(1180px, 86%) !important;
	height: 1px !important;
	z-index: 5 !important;
	pointer-events: none !important;
	background: linear-gradient(90deg,
		rgba(255, 11, 139, 0) 0%,
		rgba(255, 11, 139, .55) 20%,
		rgba(141, 56, 255, .65) 50%,
		rgba(0, 215, 255, .50) 80%,
		rgba(0, 215, 255, 0) 100%) !important;
	box-shadow: 0 0 18px rgba(141, 56, 255, .40) !important;
}

/* 3. Bandeau de credits : plus de trait sec, halos qui prolongent la scene */
.g6m-site-footer.g6m-vc .g6m-site-footer__bottom {
	position: relative !important;
	z-index: 4 !important;
	border-top: 0 !important;
	background-color: #05040b !important;
	background-image:
		/* Masque sombre sur les 90 premiers pixels : le bord HAUT du bandeau vaut
		   ainsi exactement #05040b, la couleur ou s'acheve le fondu de la bande.
		   Sans lui, les halos demarraient a pleine intensite des le premier pixel
		   et creaient une marche de ton juste sous le filet neon. */
		linear-gradient(180deg, #05040b 0%, rgba(5, 4, 11, 0) 90px),
		radial-gradient(120% 210% at 50% -45%, rgba(141, 56, 255, .26) 0%, rgba(141, 56, 255, 0) 55%),
		radial-gradient(66% 150% at 12% -12%, rgba(255, 11, 139, .17) 0%, rgba(255, 11, 139, 0) 62%),
		radial-gradient(66% 150% at 88% -12%, rgba(0, 215, 255, .13) 0%, rgba(0, 215, 255, 0) 62%) !important;
}

/* --------------------------------------------------------------------------
   9. Responsive
   -------------------------------------------------------------------------- */

/* Ecrans larges : on ouvre la gouttiere, la scene respire */
@media (min-width: 1600px) {
	.g6m-site-footer.g6m-vc .g6m-vc-cols {
		gap: 56px !important;
	}
}

/* Entre 1500 et 1699 : on resserre les gouttieres, les 45 % de gauche
   deviennent justes pour trois colonnes. */
@media (max-width: 1699px) {
	.g6m-site-footer.g6m-vc {
		--vc-pad-x: 48px;
		--vc-pad-y: 48px;
	}

	.g6m-site-footer.g6m-vc .g6m-vc-cols {
		gap: 24px !important;
	}

	.g6m-site-footer.g6m-vc .g6m-vc-link {
		font-size: 14px !important;
	}
}

/* Tablette : 2 colonnes, la carte utilisateur repasse dans le flux.

   Seuil a 1500px et non 1280 : sous 1500, les 45 % de gauche ne suffisent plus
   aux trois colonnes (250 + 175 + 175 px de largeurs minimales), la grille
   deborderait sur les personnages.

   Ici la 4e piste (zone artwork) disparait, donc plus rien ne garde Jason &
   Lucia degages du texte. On ne peut plus compter sur la mise en page pour la
   lisibilite : c'est l'artwork qui recule (opacite 0.42). La hauteur passe
   aussi en `auto`, sinon un `clamp(...vw)` etire l'image dans un cadre presque
   carre et l'agrandit demesurement. */
@media (max-width: 1499px) {
	.g6m-site-footer.g6m-vc {
		--vc-scene-h: auto;
		--vc-pad-x: 36px;
		--vc-pad-y: 48px;
	}

	.g6m-site-footer.g6m-vc .g6m-site-footer__body {
		min-height: 0 !important;
		display: block !important;
	}

	/* Cadrage sur la skyline et la baie plutot que sur les personnages : dans un
	   cadre presque carre, `cover` ne peut montrer qu'une tranche etroite de la
	   bande, et cette tranche coupe Jason & Lucia en deux. La skyline, elle,
	   supporte n'importe quelle coupe. */
	.g6m-site-footer.g6m-vc .g6m-site-footer__scene-img {
		/* Cadrage sur le soleil couchant, la skyline et la station plutot que sur
		   les personnages : dans un cadre presque carre, `cover` ne montre qu'une
		   tranche etroite, et centrer sur eux les coupe en plein milieu du texte. */
		object-position: 18% top !important;
		opacity: .38 !important;
	}

	.g6m-site-footer.g6m-vc .g6m-site-footer__scene-veil {
		background:
			linear-gradient(180deg,
				rgba(5, 3, 12, .80) 0%,
				rgba(5, 3, 12, .62) 34%,
				rgba(5, 3, 12, .70) 68%,
				rgba(5, 3, 12, .92) 100%) !important;
	}

	.g6m-site-footer.g6m-vc .g6m-vc-cols {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 40px 32px !important;
	}

	/* La piste artwork n'existe plus : on retire le placeholder */
	.g6m-site-footer.g6m-vc .g6m-vc-artzone {
		display: none !important;
	}

	/* Plus de 4e piste : la carte reprend toute la largeur, et les colonnes
	   retrouvent le placement automatique. */
	.g6m-site-footer.g6m-vc .g6m-vc-user {
		grid-column: 1 / -1 !important;
		grid-row: 1 !important;
		margin: 0 0 8px 0 !important;
	}

	.g6m-site-footer.g6m-vc .g6m-vc-brand,
	.g6m-site-footer.g6m-vc .g6m-vc-col {
		grid-row: auto !important;
	}
}

/* Mobile : une colonne, texte centre, personnages en fond discret */
@media (max-width: 767px) {
	.g6m-site-footer.g6m-vc {
		--vc-scene-h: auto;
		--vc-pad-x: 22px;
		--vc-pad-y: 38px;
	}

	.g6m-site-footer.g6m-vc .g6m-site-footer__body {
		min-height: 0 !important;
		display: block !important;
	}

	.g6m-site-footer.g6m-vc .g6m-site-footer__scene-img {
		opacity: .22 !important;
		object-position: 72% 30% !important;
		transform: none !important;
	}

	.g6m-site-footer.g6m-vc .g6m-site-footer__scene-veil {
		background:
			linear-gradient(180deg,
				rgba(5, 3, 12, .82) 0%,
				rgba(5, 3, 12, .70) 40%,
				rgba(5, 3, 12, .90) 100%) !important;
	}

	.g6m-site-footer.g6m-vc .g6m-vc-scene__glow {
		opacity: .55 !important;
	}

	/* `justify-items: center` fait passer les items de `stretch` a
	   `shrink-to-fit` : leurs `max-width` en rem cessent d'etre bornees par la
	   colonne et debordent la page. On centre donc via `text-align` + marges
	   auto, en gardant les items en pleine largeur. */
	.g6m-site-footer.g6m-vc .g6m-vc-cols {
		grid-template-columns: minmax(0, 1fr) !important;
		gap: 34px !important;
		justify-items: stretch !important;
		text-align: center !important;
	}

	.g6m-site-footer.g6m-vc .g6m-vc-brand {
		width: 100% !important;
		min-width: 0 !important;
	}

	.g6m-site-footer.g6m-vc .g6m-vc-brand__logo {
		margin: 0 auto 18px !important;
	}

	.g6m-site-footer.g6m-vc .g6m-vc-brand__text {
		max-width: min(30rem, 100%) !important;
		margin: 0 auto !important;
	}

	.g6m-site-footer.g6m-vc .g6m-vc-col {
		width: 100% !important;
		max-width: min(340px, 100%) !important;
		margin-inline: auto !important;
		min-width: 0 !important;
	}

	.g6m-site-footer.g6m-vc .g6m-vc-col--support::before {
		display: none !important;
	}

	.g6m-site-footer.g6m-vc .g6m-vc-col__title {
		margin-bottom: 24px !important;
	}

	.g6m-site-footer.g6m-vc .g6m-vc-col__title::after {
		left: 50% !important;
		transform: translateX(-50%) !important;
		max-width: 140px !important;
		background: linear-gradient(90deg,
			rgba(255, 11, 139, 0) 0%, currentColor 50%, rgba(255, 11, 139, 0) 100%) !important;
	}

	.g6m-site-footer.g6m-vc .g6m-vc-link {
		max-width: none !important;
		margin-left: 0 !important;
		padding: 6px 12px !important;
		min-height: 40px !important;
		background: rgba(255, 255, 255, .035) !important;
		border: 1px solid rgba(255, 255, 255, .07) !important;
	}

	.g6m-site-footer.g6m-vc .g6m-vc-user {
		grid-column: 1 / -1 !important;
		justify-self: center !important;
		margin: 0 auto 4px !important;
		width: 100% !important;
		max-width: min(340px, 100%) !important;
		justify-content: center !important;
		gap: 10px !important;
		padding: 10px 12px !important;
		box-sizing: border-box !important;
	}

	.g6m-site-footer.g6m-vc .g6m-vc-user__name {
		font-size: 17px !important;
	}
}

@media (max-width: 400px) {
	.g6m-site-footer.g6m-vc .g6m-vc-user__actions {
		gap: 2px !important;
	}

	.g6m-site-footer.g6m-vc .g6m-vc-user__btn,
	.g6m-site-footer.g6m-vc .g6m-vc-user__bolt {
		width: 34px !important;
		height: 34px !important;
	}
}

/* Accessibilite : respecte la preference systeme */
@media (prefers-reduced-motion: reduce) {
	.g6m-site-footer.g6m-vc *,
	.g6m-site-footer.g6m-vc *::before,
	.g6m-site-footer.g6m-vc *::after {
		transition-duration: 1ms !important;
		animation-duration: 1ms !important;
	}
}

} /* fin @layer g6m-footer */

/* ==========================================================================
   G6M_FOOTER_POLISH_V701 — ajustements de mise en page.
   L'artwork, son cadrage et la piste 4 qui le protege restent inchanges.
   ========================================================================== */
@layer g6m-footer {

	/* 1. La carte utilisateur etait centree sur les pistes 1-3 : elle flottait.
	      On l'ancre a gauche, dans l'aplomb du logo place juste dessous. */
	.g6m-site-footer.g6m-vc .g6m-vc-user {
		justify-self: start !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
	}

	/* 2. Colonnes de liens moins a l'etroit. La piste 4 (artwork) est
	      strictement conservee a 2.42fr : les personnages restent degages. */
	.g6m-site-footer.g6m-vc .g6m-vc-cols {
		grid-template-columns:
			minmax(230px, .90fr)
			minmax(210px, .92fr)
			minmax(210px, .92fr)
			minmax(0, 2.42fr) !important;
		column-gap: 40px !important;
		row-gap: 20px !important;
	}

	/* 3. Barre basse : un vrai pied qui referme le bloc. */
	.g6m-site-footer.g6m-vc .g6m-site-footer__bottom {
		position: relative !important;
		margin-top: 26px !important;
		padding-top: 18px !important;
		font-size: 12px !important;
		line-height: 1.7 !important;
		letter-spacing: .02em !important;
	}
	.g6m-site-footer.g6m-vc .g6m-site-footer__bottom::before {
		content: "" !important;
		position: absolute !important;
		left: 0 !important;
		right: 0 !important;
		top: 0 !important;
		height: 1px !important;
		background: linear-gradient(90deg,
			rgba(255, 11, 139, .55) 0%,
			rgba(141, 56, 255, .35) 42%,
			rgba(255, 255, 255, .06) 72%,
			rgba(255, 255, 255, 0) 100%) !important;
		pointer-events: none !important;
	}
	.g6m-site-footer.g6m-vc .g6m-site-footer__bottom a {
		font-size: 11px !important;
		letter-spacing: .08em !important;
		text-transform: uppercase !important;
		font-weight: 600 !important;
	}

	/* 4. Rythme : la baseline de marque respirait trop peu sous le logo. */
	.g6m-site-footer.g6m-vc .g6m-vc-brand__text {
		margin-top: 14px !important;
		max-width: 34ch !important;
	}
}
/* G6M_FOOTER_CARD_ANCHOR — la carte occupait les pistes 2-4 : elle surplombait
   Navigation/Support et paraissait detachee. Sur les pistes 1-2 elle demarre
   dans l'aplomb exact du logo, sans compression (375px pour 625 disponibles). */
@layer g6m-footer {
	.g6m-site-footer.g6m-vc .g6m-vc-user {
		grid-column: 1 / 3 !important;
		justify-self: start !important;
	}
}
/* ==========================================================================
   G6M_FOOTER_V702 — palmier devant les titres, carte utilisateur retiree.
   Pas de bloc reseaux sociaux : retire a la demande.
   ========================================================================== */
@layer g6m-footer {

	/* La carte utilisateur n'apportait rien au pied de page. */
	.g6m-site-footer.g6m-vc .g6m-vc-user {
		display: none !important;
	}

	/* Le titre devient une ligne : palmier + libelle. */
	.g6m-site-footer.g6m-vc .g6m-vc-col__title {
		display: flex !important;
		align-items: center !important;
		gap: 10px !important;
	}

	.g6m-site-footer.g6m-vc .g6m-vc-col__title::before {
		content: "" !important;
		flex: 0 0 auto !important;
		width: 26px !important;
		height: 26px !important;
		-webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2048%2048%22%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%223.4%22%20stroke-linecap%3D%22round%22%3E%3Cpath%20d%3D%22M24%2020%20C24%2030%2022%2036%2018%2043%22%2F%3E%3Cpath%20d%3D%22M24%2020%20C17%2015%2010%2017%207%2023%22%2F%3E%3Cpath%20d%3D%22M24%2020%20C31%2015%2038%2017%2041%2023%22%2F%3E%3Cpath%20d%3D%22M24%2020%20C19%2012%2012%2010%208%2012%22%2F%3E%3Cpath%20d%3D%22M24%2020%20C29%2012%2036%2010%2040%2012%22%2F%3E%3C%2Fg%3E%3Ccircle%20cx%3D%2224%22%20cy%3D%2219%22%20r%3D%223%22%20fill%3D%22black%22%2F%3E%3C%2Fsvg%3E") !important;
		mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2048%2048%22%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%223.4%22%20stroke-linecap%3D%22round%22%3E%3Cpath%20d%3D%22M24%2020%20C24%2030%2022%2036%2018%2043%22%2F%3E%3Cpath%20d%3D%22M24%2020%20C17%2015%2010%2017%207%2023%22%2F%3E%3Cpath%20d%3D%22M24%2020%20C31%2015%2038%2017%2041%2023%22%2F%3E%3Cpath%20d%3D%22M24%2020%20C19%2012%2012%2010%208%2012%22%2F%3E%3Cpath%20d%3D%22M24%2020%20C29%2012%2036%2010%2040%2012%22%2F%3E%3C%2Fg%3E%3Ccircle%20cx%3D%2224%22%20cy%3D%2219%22%20r%3D%223%22%20fill%3D%22black%22%2F%3E%3C%2Fsvg%3E") !important;
		-webkit-mask-size: contain !important;
		mask-size: contain !important;
		-webkit-mask-repeat: no-repeat !important;
		mask-repeat: no-repeat !important;
		-webkit-mask-position: center !important;
		mask-position: center !important;
		background-color: currentColor !important;
	}

	/* Le filet reprend sous l'ensemble palmier + libelle. */
	.g6m-site-footer.g6m-vc .g6m-vc-col__title::after {
		max-width: 230px !important;
	}
}

/* ==========================================================================
   G6M_FOOTER_V703 — bande raccourcie, contenu centre.
   560px -> 470px : le bas de l'artwork sort du cadre, l'enseigne XERO avec.
   object-position reste a 50% 0% : c'est bien le bas qui est rogne.
   ========================================================================== */
@layer g6m-footer {

	.g6m-site-footer.g6m-vc {
		--vc-scene-h: clamp(360px, 24.5vw, 470px) !important;
	}

	.g6m-site-footer.g6m-vc .g6m-site-footer__body {
		min-height: var(--vc-scene-h) !important;
		/* Contenu centre : le logo et la baseline descendent, les colonnes se
		   posent au milieu de l'image. Possible seulement depuis que la bande
		   est recadree au-dessus de l'enseigne XERO. */
		align-items: center !important;
	}
}
/* ==========================================================================
   G6M_FOOTER_V704 — bande raccourcie + cadre sombre autour des deux colonnes.
   ========================================================================== */
@layer g6m-footer {

	/* Bande : 470 -> 420px. La tranche de ciel du haut disparait. */
	.g6m-site-footer.g6m-vc {
		--vc-scene-h: clamp(340px, 22vw, 420px) !important;
	}

	/* Le cadre est ancre sur Navigation et couvre aussi Support :
	   200% de sa propre largeur (les deux pistes sont egales) + la gouttiere
	   + les marges interieures gauche et droite. */
	.g6m-site-footer.g6m-vc .g6m-vc-col--nav {
		position: relative !important;
	}

	.g6m-site-footer.g6m-vc .g6m-vc-col--nav::before {
		content: "" !important;
		position: absolute !important;
		top: -28px !important;
		bottom: -28px !important;
		left: -30px !important;
		width: calc(200% + 40px + 60px) !important;
		border-radius: 20px !important;
		background:
			linear-gradient(155deg,
				rgba(8, 8, 12, .90) 0%,
				rgba(10, 10, 16, .78) 42%,
				rgba(12, 10, 20, .58) 100%) !important;
		border: 1px solid rgba(255, 255, 255, .10) !important;
		box-shadow:
			0 20px 48px rgba(0, 0, 0, .48),
			inset 0 1px 0 rgba(255, 255, 255, .07) !important;
		-webkit-backdrop-filter: blur(7px) !important;
		backdrop-filter: blur(7px) !important;
		z-index: -1 !important;
		pointer-events: none !important;
	}

	/* Un liseré neon discret en haut du cadre, dans l'esprit du site. */
	.g6m-site-footer.g6m-vc .g6m-vc-col--nav::after {
		content: "" !important;
		position: absolute !important;
		top: -28px !important;
		left: -30px !important;
		width: calc(200% + 40px + 60px) !important;
		height: 1px !important;
		border-radius: 20px 20px 0 0 !important;
		background: linear-gradient(90deg,
			rgba(255, 11, 139, .70) 0%,
			rgba(141, 56, 255, .45) 50%,
			rgba(0, 215, 255, .55) 100%) !important;
		z-index: -1 !important;
		pointer-events: none !important;
	}
}
/* ==========================================================================
   G6M_FOOTER_V705 — pistes resserrees : le cadre epouse les liens.
   ========================================================================== */
@layer g6m-footer {

	.g6m-site-footer.g6m-vc .g6m-vc-cols {
		grid-template-columns:
			minmax(230px, .90fr)
			minmax(215px, .66fr)
			minmax(215px, .66fr)
			minmax(0, 2.42fr) !important;
	}
}
/* ==========================================================================
   G6M_FOOTER_V706 — cadre elargi, marges interieures plus genereuses.
   ========================================================================== */
@layer g6m-footer {

	.g6m-site-footer.g6m-vc .g6m-vc-cols {
		grid-template-columns:
			minmax(230px, .90fr)
			minmax(230px, .74fr)
			minmax(230px, .74fr)
			minmax(0, 2.42fr) !important;
	}

	.g6m-site-footer.g6m-vc .g6m-vc-col--nav::before,
	.g6m-site-footer.g6m-vc .g6m-vc-col--nav::after {
		left: -44px !important;
		width: calc(200% + 40px + 88px) !important;
	}

	.g6m-site-footer.g6m-vc .g6m-vc-col--nav::before {
		top: -34px !important;
		bottom: -34px !important;
	}

	.g6m-site-footer.g6m-vc .g6m-vc-col--nav::after {
		top: -34px !important;
	}
}
/* ==========================================================================
   G6M_FOOTER_V707 — cadre centre sur la largeur totale.
   Pistes 1 et 4 egales => les pistes 2-3 sont centrees, le cadre aussi.
   Le recouvrement des personnages est assume (demande explicite).
   ========================================================================== */
@layer g6m-footer {

	.g6m-site-footer.g6m-vc .g6m-vc-cols {
		grid-template-columns:
			minmax(230px, 1.58fr)
			minmax(230px, .74fr)
			minmax(230px, .74fr)
			minmax(0, 1.58fr) !important;
	}
}
/* ==========================================================================
   G6M_FOOTER_V708 — liseré du haut retiré, cadre elargi.
   Pistes 1 et 4 restent egales entre elles : le centrage exact tient.
   ========================================================================== */
@layer g6m-footer {

	/* Le liseré neon en haut du cadre est retire. */
	.g6m-site-footer.g6m-vc .g6m-vc-col--nav::after {
		content: none !important;
		display: none !important;
	}

	.g6m-site-footer.g6m-vc .g6m-vc-cols {
		grid-template-columns:
			minmax(200px, 1.40fr)
			minmax(240px, .92fr)
			minmax(240px, .92fr)
			minmax(0, 1.40fr) !important;
	}

	/* Baseline : elle se lisait mal sur le ciel et cassait au mauvais endroit
	   (« dediee a Grand / Theft Auto VI »). Interlignage plus aere, largeur
	   bornee en ch pour une coupe naturelle, et ombre portee renforcee — la
	   lisibilite est portee par l'ombre, pas par un voile sur l'image. */
	.g6m-site-footer.g6m-vc .g6m-vc-brand__text {
		font-size: 14.5px !important;
		line-height: 1.8 !important;
		letter-spacing: .012em !important;
		color: rgba(242, 242, 250, .96) !important;
		max-width: 29ch !important;
		text-wrap: pretty !important;
		text-shadow:
			0 1px 2px rgba(0, 0, 0, .85),
			0 2px 10px rgba(0, 0, 0, .60),
			0 0 22px rgba(0, 0, 0, .45) !important;
	}
}
/* ==========================================================================
   G6M_FOOTER_V709 — retrait du filet rose en bas de bande.
   (1px x 1180px, centre, ancre en bas de .g6m-site-footer__body)
   ========================================================================== */
@layer g6m-footer {

	.g6m-site-footer.g6m-vc .g6m-site-footer__body::before {
		content: none !important;
		display: none !important;
	}
}
/* ==========================================================================
   G6M_FOOTER_V710 — retablissement du responsive.
   Les blocs v704-v708 etaient non bornes : ils ecrasaient le mobile.
   Ici tout est explicitement borne, et le mobile recoit son propre traitement.
   ========================================================================== */
@layer g6m-footer {

	/* ---------- DESKTOP : on re-borne ce qui debordait de son domaine ------ */
	@media (min-width: 901px) {
		.g6m-site-footer.g6m-vc {
			--vc-scene-h: clamp(340px, 22vw, 420px) !important;
		}
		.g6m-site-footer.g6m-vc .g6m-site-footer__body {
			min-height: var(--vc-scene-h) !important;
			align-items: center !important;
		}
		.g6m-site-footer.g6m-vc .g6m-vc-cols {
			grid-template-columns:
				minmax(200px, 1.40fr)
				minmax(240px, .92fr)
				minmax(240px, .92fr)
				minmax(0, 1.40fr) !important;
		}
	}

	/* ---------- MOBILE / TABLETTE : plus aucun calcul de largeur ---------- */
	@media (max-width: 900px) {

		/* La bande reprend sa hauteur libre : le contenu empile ne doit pas
		   etre enferme dans une hauteur d'artwork. */
		.g6m-site-footer.g6m-vc .g6m-site-footer__body {
			min-height: 0 !important;
			height: auto !important;
			align-items: stretch !important;
		}

		/* La grille reprend deux colonnes fluides, sans plancher en px qui
		   forcerait un debordement. */
		.g6m-site-footer.g6m-vc .g6m-vc-cols {
			grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
			column-gap: 18px !important;
			row-gap: 26px !important;
		}
		.g6m-site-footer.g6m-vc .g6m-vc-brand {
			grid-column: 1 / -1 !important;
		}
		.g6m-site-footer.g6m-vc .g6m-vc-artzone {
			display: none !important;
		}

		/* Le cadre partage disparait : il reposait sur calc(200% + gouttiere),
		   hypothese fausse des que la grille change. Chaque colonne recoit sa
		   propre carte — aucun calcul, donc aucun debordement possible. */
		.g6m-site-footer.g6m-vc .g6m-vc-col--nav::before,
		.g6m-site-footer.g6m-vc .g6m-vc-col--nav::after {
			content: none !important;
			display: none !important;
		}
		.g6m-site-footer.g6m-vc .g6m-vc-col--nav,
		.g6m-site-footer.g6m-vc .g6m-vc-col--support {
			box-sizing: border-box !important;
			min-width: 0 !important;
			max-width: 100% !important;
			padding: 18px 14px !important;
			border-radius: 16px !important;
			background: linear-gradient(155deg,
				rgba(8, 8, 12, .90) 0%,
				rgba(10, 10, 16, .78) 45%,
				rgba(12, 10, 20, .60) 100%) !important;
			border: 1px solid rgba(255, 255, 255, .10) !important;
			box-shadow: 0 12px 30px rgba(0, 0, 0, .42) !important;
		}

		/* Rien ne doit pouvoir pousser la ligne au-dela du conteneur. */
		.g6m-site-footer.g6m-vc .g6m-vc-list,
		.g6m-site-footer.g6m-vc .g6m-vc-link {
			min-width: 0 !important;
			max-width: 100% !important;
		}
		.g6m-site-footer.g6m-vc .g6m-vc-link__label {
			overflow-wrap: anywhere !important;
		}
		.g6m-site-footer.g6m-vc .g6m-vc-brand__text {
			max-width: min(34ch, 100%) !important;
		}
	}

	/* ---------- TRES PETITS ECRANS : une seule colonne -------------------- */
	@media (max-width: 560px) {
		.g6m-site-footer.g6m-vc .g6m-vc-cols {
			grid-template-columns: minmax(0, 1fr) !important;
		}
	}
}
/* ==========================================================================
   G6M_FOOTER_V711 — baseline en Dancing Script dore.
   Valeurs reprises telles quelles de .g6m-hero-welcome (page d'accueil) :
   "Dancing Script" 700, rgb(255,213,0). Corps remonte a 19px : une script a
   14.5px devient illisible.
   ========================================================================== */
@layer g6m-footer {

	.g6m-site-footer.g6m-vc .g6m-vc-brand__text {
		font-family: "Dancing Script", "Segoe Script", cursive !important;
		font-weight: 700 !important;
		font-style: normal !important;
		font-size: 19px !important;
		line-height: 1.55 !important;
		letter-spacing: normal !important;
		color: rgb(255, 213, 0) !important;
		-webkit-text-fill-color: rgb(255, 213, 0) !important;
		max-width: min(33ch, 100%) !important;
		text-shadow:
			0 2px 20px rgba(0, 0, 0, .85),
			0 0 14px rgba(0, 0, 0, .45) !important;
	}

	@media (max-width: 900px) {
		.g6m-site-footer.g6m-vc .g6m-vc-brand__text {
			font-size: 18px !important;
			max-width: min(36ch, 100%) !important;
		}
	}
}
/* ==========================================================================
   G6M_FOOTER_V712 — logo agrandi, baseline descendue et agrandie.
   ========================================================================== */
@layer g6m-footer {

	.g6m-site-footer.g6m-vc .g6m-vc-brand__logo {
		width: 264px !important;
		max-width: min(264px, 100%) !important;
		height: auto !important;
	}

	.g6m-site-footer.g6m-vc .g6m-vc-brand__text {
		margin-top: 28px !important;
		font-size: 23px !important;
		line-height: 1.5 !important;
		max-width: min(30ch, 100%) !important;
	}

	@media (max-width: 900px) {
		.g6m-site-footer.g6m-vc .g6m-vc-brand__logo {
			width: 232px !important;
			max-width: min(232px, 100%) !important;
		}
		.g6m-site-footer.g6m-vc .g6m-vc-brand__text {
			margin-top: 22px !important;
			font-size: 21px !important;
			max-width: min(34ch, 100%) !important;
		}
	}
}
/* ==========================================================================
   G6M_FOOTER_V713 — baseline en bas a droite, logo agrandi.
   ========================================================================== */
@layer g6m-footer {

	.g6m-site-footer.g6m-vc .g6m-vc-brand__logo {
		width: 320px !important;
		max-width: min(320px, 100%) !important;
		height: auto !important;
	}

	/* Desktop : la baseline quitte la colonne de marque et vient se poser en
	   bas a droite de la bande. .g6m-vc-inner est deja position:relative. */
	@media (min-width: 901px) {
		.g6m-site-footer.g6m-vc .g6m-vc-inner {
			position: relative !important;
		}
		.g6m-site-footer.g6m-vc .g6m-vc-brand__text {
			position: absolute !important;
			right: 0 !important;
			bottom: 0 !important;
			margin: 0 !important;
			text-align: right !important;
			max-width: min(32ch, 36%) !important;
			z-index: 6 !important;
		}
	}

	/* Mobile : elle reste dans le flux, sous le logo. */
	@media (max-width: 900px) {
		.g6m-site-footer.g6m-vc .g6m-vc-brand__logo {
			width: 260px !important;
			max-width: min(260px, 100%) !important;
		}
		.g6m-site-footer.g6m-vc .g6m-vc-brand__text {
			position: static !important;
			text-align: left !important;
			margin-top: 22px !important;
			max-width: min(34ch, 100%) !important;
		}
	}
}
/* ==========================================================================
   G6M_FOOTER_V714 — logo descendu, baseline decalee du bord et remontee.
   ========================================================================== */
@layer g6m-footer {

	.g6m-site-footer.g6m-vc .g6m-vc-brand__logo {
		margin-top: 26px !important;
	}

	@media (min-width: 901px) {
		.g6m-site-footer.g6m-vc .g6m-vc-brand__text {
			right: 56px !important;
			bottom: 48px !important;
		}
	}

	@media (max-width: 900px) {
		.g6m-site-footer.g6m-vc .g6m-vc-brand__logo {
			margin-top: 14px !important;
		}
	}
}
/* ==========================================================================
   G6M_FOOTER_V715 — logo agrandi.
   ========================================================================== */
@layer g6m-footer {

	.g6m-site-footer.g6m-vc .g6m-vc-brand__logo {
		width: 380px !important;
		max-width: min(380px, 100%) !important;
		height: auto !important;
	}

	@media (max-width: 900px) {
		.g6m-site-footer.g6m-vc .g6m-vc-brand__logo {
			width: 300px !important;
			max-width: min(300px, 100%) !important;
		}
	}
}

/* ==========================================================================
   G6M_FOOTER_V770 — logo et baseline responsives.
   ========================================================================== */
@layer g6m-footer {

	/* --- 1. le logo suit la largeur, sans etre ecrase au milieu de la plage - */
	.g6m-site-footer.g6m-vc .g6m-vc-brand__logo {
		width: min(380px, 100%) !important;
		height: auto !important;
	}

	@media (min-width: 901px) {
		/* Plancher sur la colonne de la marque : sans lui, la piste tombe a
		   204px entre 900 et 1280 et le logo avec elle. */
		.g6m-site-footer.g6m-vc .g6m-vc-brand {
			min-width: min(320px, 100%) !important;
		}
	}

	@media (max-width: 900px) {
		.g6m-site-footer.g6m-vc .g6m-vc-brand__logo {
			width: min(300px, 100%) !important;
		}
	}

	/* --- 2. la baseline revient dans le flux quand le coin disparait ------- */
	@media (max-width: 1100px) {
		.g6m-site-footer.g6m-vc .g6m-vc-brand__text {
			position: static !important;
			left: auto !important;
			right: auto !important;
			bottom: auto !important;
			top: auto !important;
			width: auto !important;
			max-width: min(34rem, 100%) !important;
			margin: 16px 0 0 !important;
			text-align: left !important;
		}
	}

	@media (max-width: 900px) {
		.g6m-site-footer.g6m-vc .g6m-vc-brand__text {
			margin-left: auto !important;
			margin-right: auto !important;
			text-align: center !important;
		}
	}
}

/* ==========================================================================
   G6M_FOOTER_V771 — la marque s'etale sur deux pistes dans la plage ou la
   grille garde 4 colonnes mais n'a plus la largeur pour les nourrir.
   ========================================================================== */
@layer g6m-footer {

	@media (min-width: 901px) and (max-width: 1280px) {
		.g6m-site-footer.g6m-vc .g6m-vc-brand {
			grid-column: span 2 !important;
		}
	}
}

/* ==========================================================================
   G6M_FOOTER_V772 — seuil de la baseline releve a 1400px + largeur bornee.
   ========================================================================== */
@layer g6m-footer {

	/* Dans le flux partout sauf tres large : sous 1400px il n'y a pas d'espace
	   libre a droite de la colonne Support, la baseline y mordrait. */
	@media (max-width: 1400px) {
		.g6m-site-footer.g6m-vc .g6m-vc-brand__text {
			position: static !important;
			left: auto !important;
			right: auto !important;
			bottom: auto !important;
			top: auto !important;
			width: auto !important;
			max-width: min(34rem, 100%) !important;
			margin: 16px 0 0 !important;
			text-align: left !important;
		}
	}

	@media (max-width: 900px) {
		.g6m-site-footer.g6m-vc .g6m-vc-brand__text {
			margin-left: auto !important;
			margin-right: auto !important;
			text-align: center !important;
		}
	}

	/* Tres large : on garde le coin bas-droite demande, mais borne pour rester
	   au clair de la colonne Support. */
	@media (min-width: 1401px) {
		.g6m-site-footer.g6m-vc .g6m-vc-brand__text {
			max-width: min(24rem, 100%) !important;
			right: 48px !important;
			left: auto !important;
		}
	}
}

/* ==========================================================================
   G6M_STICKY_OPAQUE_V780 — la barre collante laissait voir la page defiler
   au travers (fond rgba(0,0,0,0), aucun flou). D'ou des fragments colores
   flottant sous la banniere. Exclusion de la page de connexion, qui rend
   cette barre transparente a dessein.
   ========================================================================== */
@layer g6m-header {

	@media (max-width: 900px) {

		html body:not(.template-login) .p-navSticky,
		html body:not(.template-login) .p-navSticky--all {
			background: linear-gradient(180deg, rgba(8, 8, 12, .985) 0%, rgba(11, 8, 20, .965) 100%) !important;
			-webkit-backdrop-filter: blur(14px) saturate(1.08) !important;
			backdrop-filter: blur(14px) saturate(1.08) !important;
			border-bottom: 1px solid rgba(255, 255, 255, .07) !important;
		}
	}
}

/* ==========================================================================
   G6M_FOOTER_V790 — en colonnes empilees, le logo se centre comme la baseline.
   ========================================================================== */
@layer g6m-footer {

	@media (max-width: 900px) {

		.g6m-site-footer.g6m-vc .g6m-vc-brand {
			text-align: center !important;
			align-items: center !important;
		}

		.g6m-site-footer.g6m-vc .g6m-vc-brand__logo {
			display: block !important;
			margin-left: auto !important;
			margin-right: auto !important;
		}
	}
}

/* ==========================================================================
   G6M_DISCOVERY_V791 — le groupe « Quoi de neuf » etait ecrase a 12px de large
   en overflow:hidden : une echarde collee a la pastille des alertes. On le
   retire sous 1100px ; le lien reste dans le menu.
   ========================================================================== */
@layer g6m-header {

	@media (max-width: 1100px) {
		html body .p-navgroup.p-discovery {
			display: none !important;
		}
	}
}

/* ==========================================================================
   G6M_STAFFBAR_V800 — les pastilles « Modérateur » / « Admin » etaient
   tranchees par l'astuce anti-barre-de-defilement de XenForo
   (`.hScroller-scroll { margin-bottom: -11px }` + parent overflow:hidden).
   On annule la marge negative et on masque la barre de defilement autrement.
   ========================================================================== */
@layer g6m-header {

	html body .p-staffBar-inner .hScroller-scroll {
		margin-bottom: 0 !important;
		scrollbar-width: none !important;
		-ms-overflow-style: none !important;
	}

	html body .p-staffBar-inner .hScroller-scroll::-webkit-scrollbar {
		display: none !important;
		width: 0 !important;
		height: 0 !important;
	}
}

/* ==========================================================================
   G6M_FOOTER_V810 — seuil du placement bas-droite porte a 1550px, pour laisser
   une marge franche entre la baseline et la carte Navigation/Support.
   ========================================================================== */
@layer g6m-footer {

	@media (max-width: 1550px) {
		.g6m-site-footer.g6m-vc .g6m-vc-brand__text {
			position: static !important;
			left: auto !important;
			right: auto !important;
			bottom: auto !important;
			top: auto !important;
			width: auto !important;
			max-width: min(34rem, 100%) !important;
			margin: 16px 0 0 !important;
			text-align: left !important;
		}
	}

	@media (max-width: 900px) {
		.g6m-site-footer.g6m-vc .g6m-vc-brand__text {
			margin-left: auto !important;
			margin-right: auto !important;
			text-align: center !important;
		}
	}

	@media (min-width: 1551px) {
		.g6m-site-footer.g6m-vc .g6m-vc-brand__text {
			position: absolute !important;
			max-width: min(24rem, 100%) !important;
			right: 48px !important;
			left: auto !important;
			text-align: right !important;
		}
	}
}