/* ==========================================================================
   overrides.css — corrections TachyCab appliquées APRÈS la feuille du thème.
   Chargé par les thèmes magazine ET classic (même fichier : les règles ne
   ciblent que du markup partagé — pied de page, bandeaux pub, en-tête,
   bloc auteur). Voir _head.php de chaque thème.

   Règle du dépôt : style-3.1.min.css / style-3.1.css restent le thème
   d'origine, livré tel quel. Toute correction se fait ICI, sinon elle est
   perdue à la release suivante (les feuilles du thème sont réécrites depuis
   le dépôt). Le lien est versionné par empreinte sha256 dans _head.php :
   une modification ici atteint les visiteurs sans purge de cache.
   ========================================================================== */

/* Réseaux sociaux du pied de page : 8 pastilles carrées sur une seule ligne
   (le thème les pose en flex 3rem, ce qui déborde de la colonne du widget). */
.footer-social-links{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:6px;margin-top:30px}
.footer-social-links a{height:auto;width:100%;aspect-ratio:1}


/* Bandeaux publicitaires : comme sur la majorite des sites d'actualite —
   visuel centre dans la colonne, marges gauche/droite identiques, jamais
   etire. Cible uniquement les blocs servis depuis /uploads/blocks/. */
a > img[src*="/uploads/blocks/"],
img[src*="/uploads/blocks/"]{display:block;max-width:100%;height:auto;margin:14px auto}
:has(> a > img[src*="/uploads/blocks/"]),
:has(> img[src*="/uploads/blocks/"]){width:100%;text-align:center}

/* === FIX PAGINATION DES LIENS LEGAUX DU FOOTER =============================================
   Cause : les 5 liens vivaient dans une colonne Bootstrap 50% (col-md-6). Il faut ~715px
   (640px de texte + 5 x 15px de margin) alors que la colonne n'en offre que 636px a 1440px :
   "Plan du site" basculait seul sur une 2e ligne et desequilibrait la rangee copyright/liens.
   Correctif : vraie rangee flex, gouttieres uniformes, aucun lien coupe, et a partir de 1200px
   la colonne des liens prend sa largeur naturelle pour tenir sur UNE ligne face au copyright.
   CSS uniquement : aucun changement de markup, de base de donnees ni de vue.
   Repartitions verifiees : 1 ligne (>=1200) / 3+2 (992-1199) / 1 ligne centree (768-991)
   / liste verticale centree (<768) : jamais de lien orphelin seul sur une ligne. */
.footer-copyright .nav-footer ul{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:flex-end;
  column-gap:16px;
  row-gap:6px;
}
.footer-copyright .nav-footer ul li{
  display:inline-block;
  margin:0; /* remplace margin-right:15px (qui decalait aussi le bord droit de 15px) */
  list-style:none;
}
.footer-copyright .nav-footer ul li a{
  display:inline-block;
  white-space:nowrap; /* "Politique de confidentialite" ne se coupe jamais en deux */
}
/* >=1200px : la colonne des liens prend sa largeur naturelle, le copyright prend le reste */
@media (min-width:1200px){
  .footer-copyright .row > .col-md-6:first-child{flex:1 1 auto;width:auto;max-width:none}
  .footer-copyright .row > .col-md-6:last-child{flex:0 0 auto;width:auto;max-width:100%}
  .footer-copyright .nav-footer ul{flex-wrap:nowrap}
}
/* 992-1199px : pas la place pour une seule ligne -> 3 + 2 equilibre, gouttieres resserrees */
@media (min-width:992px) and (max-width:1199.98px){
  .footer-copyright .nav-footer ul{column-gap:12px}
}
/* 768-991px : colonnes cote a cote trop etroites (2+1+2) -> empilement, 5 liens sur une ligne */
@media (min-width:768px) and (max-width:991.98px){
  .footer-copyright .row > .col-md-6{flex:0 0 100%;width:100%;max-width:100%}
  .footer-copyright .copyright{text-align:center!important}
  .footer-copyright .nav-footer{text-align:center}
  .footer-copyright .nav-footer ul{justify-content:center;flex-wrap:nowrap;column-gap:12px}
}
/* <768px : place insuffisante pour un retour a la ligne equilibre -> liste verticale centree */
@media (max-width:767.98px){
  .footer-copyright .copyright{text-align:center!important}
  .footer-copyright .nav-footer{text-align:center}
  .footer-copyright .nav-footer ul{
    flex-direction:column;
    align-items:center;
    justify-content:center;
    column-gap:0;
    row-gap:6px;
  }
}
/* === FIN FIX PAGINATION DES LIENS LEGAUX DU FOOTER ======================================== */

/* ==========================================================================
   BANDEAUX PUBLICITAIRES — cadrage 2026-11 (ajout en fin de feuille)
   Problème mesuré à 1440px : .container.container-bn était en pleine largeur
   (0 → 1441) avec max-width:100%!important, alors que le contenu du thème
   vit dans .container-xl (1320px max, gouttière 12px → colonne 65 → 1361).
   Le visuel 970x90 flottait donc au milieu de la fenêtre et le libellé
   « PUBLICITÉ », enfant direct de <body>, était collé au bord gauche (x=0).
   Correctif : le bloc pub + son libellé suivent la même grille que le
   contenu, le visuel est centré, jamais étiré (height:auto => ratio
   préservé), et les marges gauche/droite sont identiques.
   ========================================================================== */
/* Colonne publicitaire : 970px de visuel + 2 x 12px de gouttière = 994px,
   centrée sur l'axe du contenu. En dessous de 1200px, la grille du thème
   est en pleine largeur : le bloc suit alors la largeur disponible. */
/* Le libelle publicitaire au-dessus du bandeau a ete retire du gabarit
   (_ad_spaces.php) : aucune regle de libelle n est plus necessaire. */
.container.container-bn{
  box-sizing:border-box;
  width:100%;
  max-width:100%!important;
  margin-left:auto!important;
  margin-right:auto!important;
  padding-left:12px!important;
  padding-right:12px!important;
  overflow:visible!important;
}
.container-bn .bn-content{
  display:flex!important;
  justify-content:center!important;
  width:100%;
  padding:0!important;
}
.container-bn .bn-inner{
  display:block;
  max-width:100%;
  overflow:visible;
}
/* Visuel : taille naturelle, centré, jamais étiré ni déformé. */
.container-bn img[src*="/uploads/blocks/"]{
  display:block!important;
  height:auto!important;
  max-width:100%!important;
  margin:0 auto!important;
  object-fit:contain;
}
/* Largeur du bandeau = EXACTEMENT celle du conteneur de la navigation
   (.container-xl du theme, qui porte le menu juste au-dessus) :
   100% sous 1200px, 1240px de 1200 a 1399px, 1320px a partir de 1400px (valeurs du theme).
   Les bords gauche/droit du bandeau tombent ainsi pile sur ceux de la nav. */
@media (min-width:1200px){
  .container.container-bn{max-width:1240px!important}
}
@media (min-width:1400px){
  .container.container-bn{max-width:1320px!important}
}
/* >=992px : le bouton flottant "remonter" (42x42, right:16px, bottom:32px) recouvrait la fin
   du dernier lien legal (mesure : bouton a x>=951, lien jusqu'a 997 a 1024px). On rend au footer
   l'espace bas necessaire pour que les liens passent au-dessus du bouton. Le retrait vertical ne
   touche pas l'alignement horizontal (12px a gauche comme a droite). */
@media (min-width:992px){
  .footer-copyright{padding-bottom:84px}
}

/* Le visuel ne doit pas heriter de la hauteur etiree de la colonne pub :
   la colonne (flex) reste centree horizontalement mais cale son contenu
   en haut, sinon le bloc garde un vide sous le visuel (mesure : 20px en
   1440, 110px en 390 avant ce correctif). */
.container-bn .bn-content{align-items:flex-start!important}
.container-bn .bn-inner{height:auto!important;align-self:flex-start!important}

/* === FOOTER — rangee copyright / liens legaux : equilibrage 2026-11-10 ===================
   Symptome : dans la colonne Bootstrap 50 % (col-md-6), les 5 liens (~704 px avec les
   gouttieres) ne tenaient pas entre 992 et 1199 px : « Plan du site » basculait seul sur
   une 2e ligne et desequilibrait la rangee copyright / liens.
   Correctif : les deux colonnes prennent leur largeur naturelle et la rangee se replie en
   DEUX LIGNES PLEINES (copyright a gauche, les 5 liens alignes a droite sur une seule
   ligne) des que la place manque, au lieu de casser la liste dans une colonne de 50 %.
   Le prefixe #footer reprend la main sur les correctifs precedents, sans !important.
   Verifie : 1 ligne >=1029 px | 2 lignes pleines 768-1028 px | liste verticale <768 px. */
@media (min-width:768px){
  #footer .footer-copyright .row{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    justify-content:space-between;
    gap:6px 24px;
  }
  #footer .footer-copyright .row > [class*="col-"]{
    flex:0 1 auto;
    width:auto;
    max-width:none;
  }
  #footer .footer-copyright .copyright{
    margin:0!important;
    text-align:left!important;
  }
  #footer .footer-copyright .nav-footer{
    margin-left:auto;
    text-align:right;
  }
  #footer .footer-copyright .nav-footer ul{
    display:flex;
    flex-wrap:wrap;
    justify-content:flex-end;
    align-items:center;
    column-gap:16px;
    row-gap:6px;
    margin:0;
    padding:0;
  }
  #footer .footer-copyright .nav-footer ul li{
    display:inline-block;
    margin:0;
    list-style:none;
  }
  #footer .footer-copyright .nav-footer ul li a{
    display:inline-block;
    white-space:nowrap;
  }
}
/* === FIN FOOTER ========================================================================= */

/* FOOTER — quand la ligne des liens se replie seule sous le copyright (768-1028 px),
   c est la COLONNE qui doit etre poussee a droite : margin-left:auto sur .nav-footer
   (element interne) restait sans effet, la colonne etant l item flex. */
@media (min-width:768px){
  #footer .footer-copyright .row > [class*="col-"]:last-child{margin-left:auto}
}

/* === FIX EN-TETE - DEBORDEMENT HORIZONTAL ENTRE 992 ET 1199 px ==============================
   Cause : la barre desktop (navbar-expand-lg, donc depliee des 992 px) aligne ses entrees sur
   une seule ligne non cassable (white-space:nowrap + flex-shrink:0) large d'environ 960 px.
   Placee apres le logo de 180 px, elle atteint x = 1168 px alors que le conteneur n'en offre
   que 757 a 1175 px selon la largeur de la fenetre : de 992 a ~1167 px la page debordait
   (176 px a 992, 144 px a 1024, 68 px a 1100) -> barre de defilement horizontale et dernieres
   entrees hors ecran ("Equipements & Accessoires" invisible a 1024).
   Le repli "Plus" (script js-dynamic-more) masque le probleme tant que son calcul est juste,
   mais il deduit l'espace disponible de la position courante du bloc d'icones de droite : des
   que la barre deborde (fenetre elargie puis retrecie, ou script pas encore execute) il ne
   replie plus rien et le debordement revient.
   Correctif CSS seul (aucun changement de markup, de script, de base, ni de release) :
   - le conteneur repliable peut descendre sous la largeur de son contenu ;
   - entre 992 et 1200 px les entrees passent a la ligne au lieu de pousser la page.
   Le script "Plus" continue de faire tenir la barre sur une ligne quand il fonctionne ; ce
   repli n'est donc visible qu'en secours. Verifie : scrollWidth - clientWidth = 0 a
   992 / 1024 / 1100 / 1200 px, y compris apres redimensionnement depuis 1440 px. */
@media (min-width:992px) and (max-width:1199.98px){
  #mega-menu-wrapper .navbar-collapse{min-width:0}
  #mega-menu-wrapper .navbar-nav{flex-wrap:wrap!important}
}
/* === FIN FIX EN-TETE ======================================================================= */

/* === BLOC SOCIAL AUTEUR : UNE SEULE LIGNE ==================================================
   .profile-social-links (partial themes/common/partials/_profile_social_links.php, rendu
   dans le bloc auteur des articles et sur la fiche profil) est un flex-wrap:wrap avec des
   icones de 46 px et un gap de 8 px : 8 icones demandent 424 px. Le conteneur du bloc auteur
   n en offre que 266 px dans un article a 390 px (avatar 100 px + gouttiere), donc 4+4 sur
   deux lignes des qu un reseau est publie.
   Le bloc ne se replie plus : chaque icone prend sa part de la largeur disponible, reste
   carree (28 a 46 px) et l icone SVG garde 16 px. width:100% est indispensable sur la fiche
   profil, ou le bloc est un item flex (sans lui il se reduit a la largeur mini de ses icones).
   Aucun changement de markup ni de script.
   Verifie a 390 / 1024 / 1440 px, article et fiche profil : 8 icones, un seul top. */
.profile-social-links{display:flex;flex-wrap:nowrap;width:100%;gap:clamp(3px,1.5vw,8px)}
.profile-social-links .link-social{flex:1 1 0;width:auto;height:auto;min-width:0;max-width:46px;aspect-ratio:1}
.profile-social-links .link-social svg{width:100%;height:100%;max-width:16px;max-height:16px}
/* === FIN BLOC SOCIAL AUTEUR ================================================================ */

/* === FIX CADRAGE PUB + BANDEAU >= 1200 px — 2026-11-10 ====================================
   Trois defauts mesures en production (CDP, 10/11 12:49) et leurs causes racines :

   1) Bandeau in_article_1 a hauteur 0 (article, 1024 px) : un <img> dont le fichier
      n'est pas encore charge n'a ni largeur ni hauteur des lors que sa largeur est
      laissee en `auto` (le cas de `.container-bn img[src*="/uploads/blocks/"]`). Le
      porte-visuel (.bn-inner) puis .bn-content et .container-bn tombent a 0 px et le
      texte suivant remonte dessus.
      -> plancher de hauteur sur le porte-visuel : 90 px = plus petit format desktop
         servi (970x90 et 728x90). Le bloc reserve sa place des le premier rendu, avant
         meme le chargement du visuel ; il grandit normalement au-dela (sidebar 300x250,
         mobile 320x100).

   2) Visuel header etire (970x90 rendu 1296x120 a 1440 px, naturalWidth 970) : une
      feuille chargee apres celle-ci impose `width:100%!important` au visuel
      (ads-frame.css). Le visuel doit garder sa taille naturelle, bornee par la colonne.
      -> width:auto + max-width:100% + margin:0 auto, avec un selecteur plus specifique
         (.container.container-bn .bn-inner img) pour gagner quel que soit l'ordre de
         chargement des feuilles. Le visuel reste centre.

   3) Debordement horizontal de la navigation : la barre desktop ne tenait sur une ligne
      que grace au repli "Plus" (js-dynamic-more). Tant que le script n'a pas tourne
      (premier rendu, cache, erreur JS) la liste des entrees (1385 px) pousse la page :
      scrollWidth 1719 a 1440 px, 1666 a 1024 px, 481 px de debordement a 1200 px.
      Le correctif 992-1199 px ne couvrait pas >=1200 px ; on l'etend a ce palier.
      Le repli "Plus" continue de faire tenir la barre sur une ligne quand il fonctionne,
      cette regle n'est visible qu'en secours.

   Aucun changement de markup ni de script. Verifie : scrollWidth - clientWidth = 0 a
   992 / 1024 / 1100 / 1150 / 1199 / 1200 / 1280 / 1440 / 1920 px en etat CSS seul, et la
   suppression de tous les noeuds [data-ad-space] ne modifie pas ce chiffre (la pub n'est
   pas en cause dans le debordement).
   ====================================================================================== */
@media (min-width:1200px){
  #mega-menu-wrapper .navbar-collapse{min-width:0}
  #mega-menu-wrapper .navbar-nav{flex-wrap:wrap!important}
}
/* Hauteur minimale du bandeau : reserve la place avant chargement du visuel. */
.container-bn .bn-inner{min-height:90px}
/* Visuel a sa taille naturelle, jamais etire, centre dans la colonne. */
.container.container-bn .bn-inner img[src*="/uploads/blocks/"]{
  width:auto!important;
  max-width:100%!important;
  height:auto!important;
  margin:0 auto!important;
}
/* === FIN FIX CADRAGE PUB =============================================================== */
