/*
Theme Name: ANAQ-Sup
Theme URI: https://anaq-sup.ne/
Template: kadence
Description: Thème institutionnel sur-mesure pour l'ANAQ-Sup — Agence Nationale d'Assurance Qualité de l'Enseignement Supérieur et de la Recherche du Niger. Thème enfant de Kadence.
Author: ANAQ-Sup
Version: 1.0.77
Text Domain: anaq-sup
*/

/* =========================================================
   ANAQ-Sup — Design institutionnel
   Palette :
   - Bleu nuit institutionnel : #0B3558
   - Bleu ANAQ (primaire)     : #145DA0
   - Bleu ciel (accent clair) : #4FA8DA
   - Or / excellence          : #C89B3C
   - Vert Niger (touche)      : #1E7145
   - Neutres                  : #0F1A24 / #4A5A68 / #F4F7FA / #FFFFFF
   ========================================================= */

:root{
  /* Palette reprise du drapeau du Niger : orange #E05206, blanc, vert #0DB02B.
     Le vert et l'orange purs du drapeau sont utilisés comme accents (boutons, icônes,
     liseré tricolore) ; des nuances plus profondes assurent la lisibilité sur grandes
     surfaces (en-tête, héros). */
  --anaq-navy: #0B3D24;
  --anaq-blue: #0DB02B;
  --anaq-blue-light: #4CC468;
  --anaq-gold: #E05206;
  --anaq-gold-dark: #B03F04;
  --anaq-green: #0DB02B;
  --anaq-ink: #0F1A24;
  --anaq-slate: #4A5A68;
  --anaq-mist: #F4F7FA;
  --anaq-line: #E2E8EF;
  --anaq-white: #FFFFFF;
  --anaq-radius: 14px;
  --anaq-shadow: 0 10px 30px -12px rgba(11,53,88,.18);
  --anaq-shadow-lg: 0 24px 60px -20px rgba(11,53,88,.28);
  --anaq-font-head: "Sora", "Segoe UI", sans-serif;
  --anaq-font-body: "Public Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

  /* Échelle d'espacement cohérente (rythme vertical) */
  --anaq-space-xs: 8px;
  --anaq-space-sm: 16px;
  --anaq-space-md: 24px;
  --anaq-space-lg: 40px;
  --anaq-space-xl: 64px;
  --anaq-space-2xl: 96px;

  /* Timing des transitions — un seul vocabulaire réutilisé partout */
  --anaq-ease: cubic-bezier(.22,.61,.36,1);
  --anaq-t-fast: .18s;
  --anaq-t-med: .32s;
  --anaq-t-slow: .6s;
}

html{ scroll-behavior:smooth; }

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *, *::before, *::after{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }
}

body{
  font-family: var(--anaq-font-body);
  color: var(--anaq-ink);
  background: var(--anaq-white);
  line-height: 1.6;
}

/* Liseré tricolore discret (clin d'œil au drapeau du Niger) tout en haut de page */
body::before{
  content:""; display:block; height:4px; width:100%;
  background: linear-gradient(to right,
    var(--anaq-gold) 0%, var(--anaq-gold) 33.33%,
    #ffffff 33.33%, #ffffff 66.66%,
    var(--anaq-blue) 66.66%, var(--anaq-blue) 100%);
}

/* ---------- Révélation douce au défilement ---------- */
.anaq-reveal{
  opacity: 0;
  transform: translateY(18px);
  transition: opacity var(--anaq-t-slow) var(--anaq-ease), transform var(--anaq-t-slow) var(--anaq-ease);
}
.anaq-reveal.is-visible{ opacity:1; transform:none; }
/* petit décalage en cascade pour les grilles de cartes */
.anaq-grid-3 .anaq-reveal:nth-child(2), .anaq-team-grid .anaq-reveal:nth-child(2), .anaq-news-grid .anaq-reveal:nth-child(2){ transition-delay:.06s; }
.anaq-grid-3 .anaq-reveal:nth-child(3), .anaq-team-grid .anaq-reveal:nth-child(3), .anaq-news-grid .anaq-reveal:nth-child(3){ transition-delay:.12s; }
.anaq-grid-3 .anaq-reveal:nth-child(4), .anaq-team-grid .anaq-reveal:nth-child(4), .anaq-news-grid .anaq-reveal:nth-child(4){ transition-delay:.18s; }

h1,h2,h3,h4,.site-title,.entry-title{
  font-family: var(--anaq-font-head);
  color: var(--anaq-navy);
  letter-spacing: -0.01em;
}

a{ color: var(--anaq-blue); transition: color var(--anaq-t-fast) var(--anaq-ease); }
a:hover{ color: var(--anaq-navy); }

img{ max-width:100%; height:auto; display:block; border-radius: 8px; }

::selection{ background: var(--anaq-gold); color: var(--anaq-navy); }

/* Accessibilité : anneau de focus visible et cohérent, sans casser le design */
:focus-visible{
  outline: 2.5px solid var(--anaq-gold-dark);
  outline-offset: 3px;
  border-radius: 4px;
}

/* ---------- Skip link / accessibilité ---------- */
.skip-link{
  background: var(--anaq-navy); color:#fff; padding: 10px 18px; border-radius: 0 0 8px 0;
}

/* ---------- Header ---------- */
.site-header, .kadence-header{
  background: var(--anaq-white);
  border-bottom: 1px solid var(--anaq-line);
  transition: box-shadow var(--anaq-t-med) var(--anaq-ease), padding var(--anaq-t-med) var(--anaq-ease);
}
/* En-tête collant, discret, qui se resserre légèrement au défilement (classes ajoutées en JS) */
.anaq-header{
  position: sticky; top:0; z-index:100;
}
.anaq-header.is-scrolled{
  box-shadow: 0 6px 24px -14px rgba(11,53,88,.28);
}
.anaq-top-bar{
  background: var(--anaq-navy);
  color: #DCE7F2;
  font-size: 13px;
}
.anaq-top-bar a{ color:#fff; }
.anaq-top-bar .anaq-top-bar-inner{
  max-width: 1240px; margin:0 auto; padding: 8px 24px;
  display:flex; justify-content: space-between; align-items:center; flex-wrap: wrap; gap:8px;
}

/* ---------- Logo compact (voir anaq-sup.js: initCompactLogo) ----------
   Le nom légal complet de l'agence est très long ; affiché tel quel comme
   site title WordPress, il occupe 3 lignes énormes dans l'en-tête. Le script
   le scinde en "ANAQ-Sup" (repère visuel fort) + sous-titre discret. */
.site-title.anaq-logo-split{
  display:flex; flex-direction:column; gap:2px; line-height:1.15;
}
.anaq-logo-primary{
  font-family: var(--anaq-font-head); font-weight:700; font-size:26px; color: var(--anaq-navy);
}
.anaq-logo-secondary{
  font-family: var(--anaq-font-body); font-weight:600; font-size:10.5px; letter-spacing:.03em;
  text-transform:uppercase; color: var(--anaq-slate); max-width:400px; line-height:1.35;
}
@media (max-width: 780px){
  .anaq-logo-secondary{ display:none; }
  .anaq-logo-primary{ font-size:21px; }
}

.main-navigation a{
  font-weight: 600; color: var(--anaq-navy);
  transition: color var(--anaq-t-fast) var(--anaq-ease);
  position: relative;
}
.main-navigation a:hover,
.main-navigation .current-menu-item > a,
.main-navigation .current_page_item > a,
.main-navigation .current-menu-ancestor > a,
.main-navigation .current-menu-parent > a,
.main-navigation .current_page_parent > a,
.main-navigation .current_page_ancestor > a{
  /* !important nécessaire : le sélecteur Kadence natif
     ".main-navigation .primary-menu-container > ul > li.menu-item > a" (3 classes) est plus
     spécifique que celui-ci et l'emporterait sinon, gardant les liens en gris par défaut. */
  color: var(--anaq-blue) !important;
}
/* soulignement animé discret sur les liens de premier niveau — actif aussi quand on
   navigue sur une sous-page (ex. "Personnel" sous "ANAQ") : WordPress marque alors le
   parent avec "current-menu-ancestor"/"current-menu-parent" plutôt que "current-menu-item". */
.main-navigation > ul > li > a::after{
  content:""; position:absolute; left:0; right:0; bottom:-4px; height:2px;
  background: var(--anaq-gold); transform: scaleX(0); transform-origin:left;
  transition: transform var(--anaq-t-fast) var(--anaq-ease);
}
.main-navigation > ul > li:hover > a::after,
.main-navigation > ul > li.current-menu-item > a::after,
.main-navigation > ul > li.current_page_item > a::after,
.main-navigation > ul > li.current-menu-ancestor > a::after,
.main-navigation > ul > li.current-menu-parent > a::after,
.main-navigation > ul > li.current_page_parent > a::after,
.main-navigation > ul > li.current_page_ancestor > a::after{ transform: scaleX(1); }

.main-navigation .sub-menu{
  border-top: 3px solid var(--anaq-gold);
  box-shadow: var(--anaq-shadow-lg);
  border-radius: 10px;
  overflow:hidden;
}
.main-navigation .sub-menu a{
  transition: background var(--anaq-t-fast) var(--anaq-ease), padding-left var(--anaq-t-fast) var(--anaq-ease);
}
.main-navigation .sub-menu a:hover{
  background: var(--anaq-mist); padding-left: 22px;
}

/* ---------- Slider d'accueil (2-3 diapositives) ---------- */
.anaq-slider{
  position: relative; height: clamp(440px, 72vh, 660px); overflow:hidden; background: var(--anaq-navy);
}
.anaq-slide{
  position:absolute; inset:0; background-size:cover; background-position:center;
  opacity:0; visibility:hidden; transition: opacity 1s var(--anaq-ease), visibility 1s var(--anaq-ease);
  display:flex; align-items:center;
}
.anaq-slide.is-active{ opacity:1; visibility:visible; z-index:2; }
.anaq-slide-overlay{
  position:absolute; inset:0;
  /* Fond assombri sur toute la largeur (au lieu de s'éclaircir presque jusqu'à la photo nue
     à droite) : meilleure lisibilité du texte quelle que soit la photo utilisée. */
  background: linear-gradient(100deg, rgba(9,32,20,.90) 0%, rgba(9,32,20,.80) 42%, rgba(9,32,20,.62) 100%);
}
.anaq-slide-content{
  position:relative; z-index:2; max-width:1240px; margin:0 auto; padding:0 24px; width:100%;
}
.anaq-slide-content-inner{ max-width:640px; }
.anaq-slide .anaq-hero-eyebrow{ color: var(--anaq-gold); }
.anaq-slide h2{
  color:#fff; font-weight:800; font-size: clamp(34px,4.8vw,58px); line-height:1.12; margin:0 0 18px;
  text-shadow: 0 4px 20px rgba(0,0,0,.4);
}
.anaq-slide p{ color:#E4F2E7; font-size:17px; line-height:1.65; max-width:560px; margin:0 0 28px; }

.anaq-slider-dots{
  position:absolute; z-index:3; left:0; right:0; bottom:26px; display:flex; justify-content:center; gap:10px;
}
.anaq-slider-dots button{
  width:10px; height:10px; border-radius:50%; border:1.5px solid rgba(255,255,255,.7); background:transparent;
  padding:0; cursor:pointer; transition: background var(--anaq-t-fast) var(--anaq-ease), transform var(--anaq-t-fast) var(--anaq-ease);
}
.anaq-slider-dots button.is-active{ background: var(--anaq-gold); border-color: var(--anaq-gold); transform: scale(1.2); }

.anaq-slider-arrow{
  position:absolute; z-index:3; top:50%; transform: translateY(-50%);
  width:44px; height:44px; border-radius:50%; border:1px solid rgba(255,255,255,.4);
  background: rgba(11,61,36,.35); color:#fff; font-size:20px; line-height:1; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  transition: background var(--anaq-t-fast) var(--anaq-ease), border-color var(--anaq-t-fast) var(--anaq-ease);
}
.anaq-slider-arrow:hover{ background: var(--anaq-gold); border-color: var(--anaq-gold); }
.anaq-slider-arrow.prev{ left:20px; }
.anaq-slider-arrow.next{ right:20px; }
@media (max-width: 640px){
  .anaq-slider-arrow{ display:none; }
  .anaq-slide h2{ font-size:30px; }
}

/* ---------- Hero ---------- */
.anaq-hero{
  position:relative;
  background: linear-gradient(135deg, var(--anaq-navy) 0%, var(--anaq-blue) 100%);
  color:#fff;
  padding: clamp(56px, 10vw, 96px) 24px clamp(64px, 12vw, 120px);
  overflow:hidden;
}
.anaq-hero::after{
  content:"";
  position:absolute; inset:auto -10% -60% auto; width:60%; padding-top:60%;
  background: radial-gradient(circle, rgba(200,155,60,.25) 0%, rgba(200,155,60,0) 70%);
  border-radius:50%;
}
.anaq-hero-inner{ max-width:1240px; margin:0 auto; position:relative; z-index:2; width:100%; }

/* ---------- Hero "photo fixe" : une seule image d'arrière-plan, les textes
   (titre/description/bouton) défilent en fondu par-dessus, sans changer l'image. ---------- */
.anaq-hero-photo{
  /* Bande en pleine largeur d'écran (comme les bandes "Services"/"Partenaires"), même si le
     bloc est inséré dans un conteneur de contenu plus étroit : on le fait déborder via la
     technique "100vw", puis ".anaq-hero-inner" recentre le texte à la largeur standard. */
  position:relative; left:50%; width:100vw; margin-left:-50vw;
  background-size:cover; background-position:center 32%; background-repeat:no-repeat;
  min-height: clamp(460px, 68vh, 620px);
  display:flex; align-items:flex-start;
  padding-top: clamp(48px, 7vw, 80px); padding-bottom: clamp(64px, 10vw, 100px);
}
.anaq-hero-photo::after{ display:none; } /* on masque le halo doré décoratif, pensé pour le fond dégradé */
.anaq-hero-photo::before{
  content:""; position:absolute; inset:0; z-index:1;
  background: linear-gradient(100deg, rgba(9,32,20,.90) 0%, rgba(9,32,20,.80) 42%, rgba(9,32,20,.58) 100%);
}
.anaq-hero-rotator{ position:relative; }
.anaq-hero-rotator-slide{
  position:absolute; inset:0; opacity:0; visibility:hidden; transform:translateY(16px); z-index:1;
  transition: opacity .7s ease, visibility .7s ease, transform .7s ease;
}
/* Le slide entrant passe toujours au-dessus (z-index) du slide sortant encore en train de
   s'estomper : sans ça, selon l'ordre des slides dans le DOM, l'ancien texte pouvait
   s'afficher par-dessus le nouveau pendant le fondu, donnant l'impression que les deux
   textes se mélangent. On reste en "position:absolute" en permanence (plus de bascule vers
   "relative") : la hauteur du bloc est de toute façon gérée en JS (sizeRotator/minHeight),
   donc aucun des slides n'a besoin de participer au flux normal. */
.anaq-hero-rotator-slide.is-active{ opacity:1; visibility:visible; transform:translateY(0); z-index:2; }
/* Pendant la mesure de hauteur (au chargement et au redimensionnement), on coupe la
   transition : sinon le changement d'opacité temporaire (rien qu'un instant, pour lire
   la hauteur du texte) est quand même animé par le navigateur, ce qui provoquait un
   flash visible de plusieurs textes superposés à chaque chargement de page. */
.anaq-hero-rotator-slide.is-measuring{ transition:none !important; }
.anaq-hero-dots{ display:flex; gap:10px; margin-top:34px; }
.anaq-hero-dots button{
  width:10px; height:10px; border-radius:50%; border:1.5px solid rgba(255,255,255,.55); background:transparent;
  padding:0; cursor:pointer; transition: background var(--anaq-t-fast) var(--anaq-ease), transform var(--anaq-t-fast) var(--anaq-ease), border-color var(--anaq-t-fast) var(--anaq-ease);
}
.anaq-hero-dots button.is-active{ background: var(--anaq-gold); border-color: var(--anaq-gold); transform: scale(1.2); }
.anaq-hero-eyebrow{
  display:inline-flex; align-items:center; gap:8px;
  text-transform: uppercase; letter-spacing:.14em; font-size:12px; font-weight:700;
  color: var(--anaq-gold); margin-bottom:18px;
}
.anaq-hero-eyebrow::before{ content:""; width:28px; height:2px; background:var(--anaq-gold); display:inline-block; }
.anaq-hero h1{
  color:#fff; font-size: clamp(32px, 4.2vw, 54px); line-height:1.12; max-width: 820px; margin:0 0 20px;
}
.anaq-hero p{ font-size:18px; color:#D7E3EE; max-width:640px; line-height:1.6; }
/* Ciblé uniquement sur "a.anaq-btn" (lien brut, ex. hero) : la classe "anaq-btn" est aussi
   utilisée sur les blocs Bouton Gutenberg (div ".wp-block-button.anaq-btn"), qui reçoivent
   déjà leur propre habillage doré via la règle ".wp-block-button.anaq-btn .wp-block-button__link"
   plus bas. Sans ce ciblage précis, un bloc Bouton Gutenberg recevait CE style ET celui plus
   bas, empilant deux pastilles dorées (padding/fond/radius en double) -> bouton visiblement
   plus gros/désaligné par rapport aux autres boutons du site. */
a.anaq-btn{
  display:inline-flex; align-items:center; gap:10px;
  background: var(--anaq-gold); color: #fff !important;
  font-weight:700; padding: 14px 28px; border-radius: 999px; text-decoration:none;
  transition: transform var(--anaq-t-fast) var(--anaq-ease), box-shadow var(--anaq-t-fast) var(--anaq-ease), background var(--anaq-t-fast) var(--anaq-ease);
  box-shadow: 0 10px 24px -8px rgba(200,155,60,.55);
}
a.anaq-btn:hover{ transform: translateY(-2px); box-shadow: 0 14px 30px -8px rgba(200,155,60,.65); }
a.anaq-btn:active{ transform: translateY(0); }
/* Flèche systématique en fin de bouton, qui glisse légèrement au survol. Ciblée uniquement
   sur les boutons "a.anaq-btn" (lien brut, ex. hero) : pour les boutons blocs Gutenberg
   (".wp-block-button.anaq-btn"), la flèche est déjà ajoutée par la règle générale
   ".wp-block-button__link::after" plus bas — sans ce ciblage plus précis, ces boutons-là
   affichaient deux flèches empilées (une par règle). */
a.anaq-btn::after{
  content:"\2192"; display:inline-block; line-height:1;
  transition: transform var(--anaq-t-fast) var(--anaq-ease);
}
a.anaq-btn:hover::after{ transform: translateX(4px); }
.anaq-btn-outline{
  background: transparent; color:#fff !important; border:1.5px solid rgba(255,255,255,.55); box-shadow:none;
}

/* ---------- Hero statique : variante à deux colonnes (texte | photo institutionnelle) ---------- */
.anaq-hero-split{
  display:grid; grid-template-columns: minmax(320px,1.15fr) minmax(280px,0.85fr);
  gap:56px; align-items:center;
}
@media (max-width:960px){
  .anaq-hero-split{ grid-template-columns:1fr; gap:32px; }
}
.anaq-hero-media img{
  width:100%; height:100%; object-fit:cover; border-radius: var(--anaq-radius);
  box-shadow: var(--anaq-shadow-lg); aspect-ratio:4/3; display:block;
}
@media (max-width:960px){ .anaq-hero-media img{ aspect-ratio:16/10; } }
.anaq-hero-actions{ display:flex; gap:16px; flex-wrap:wrap; margin-top:28px; }
/* Le slider reste dans le contenu de la page (juste masqué) pour pouvoir le réactiver
   facilement plus tard : il suffit de retirer cette règle ou la classe du bloc. */
.anaq-slider-archived{ display:none; }

/* ---------- Pillars / mission chips on hero ---------- */
.anaq-pillars{
  margin-top: 36px; display:grid; grid-template-columns: repeat(3,1fr); gap:16px;
}
@media (max-width: 700px){ .anaq-pillars{ grid-template-columns:1fr; } }
.anaq-pillar{
  background: rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.18);
  border-radius: var(--anaq-radius); padding: 20px 22px; backdrop-filter: blur(4px);
}
.anaq-pillar strong{ color:#fff; display:block; font-family:var(--anaq-font-head); font-size:17px; margin-bottom:6px; }
.anaq-pillar span{ color:#C7D6E4; font-size:14px; }
/* Les pillars du nouveau hero statique sont des liens cliquables vers les actions
   principales (accréditation, habilitation, textes) : on annule le style de lien
   par défaut et on ajoute un effet de survol cohérent avec les boutons du hero. */
a.anaq-pillar{
  text-decoration:none; cursor:pointer;
  transition: background var(--anaq-t-fast) var(--anaq-ease), transform var(--anaq-t-fast) var(--anaq-ease), border-color var(--anaq-t-fast) var(--anaq-ease);
}
a.anaq-pillar:hover{ background: rgba(255,255,255,.16); border-color: var(--anaq-gold); transform: translateY(-3px); }

/* ---------- Section shell ---------- */
.anaq-section{ padding: clamp(48px, 8vw, 88px) 24px; }
.anaq-section-alt{ background: var(--anaq-mist); }
.anaq-container{ max-width:1240px; margin:0 auto; }
.anaq-kicker{
  text-transform:uppercase; letter-spacing:.14em; font-size:12px; font-weight:700; color: var(--anaq-gold-dark);
  display:flex; align-items:center; gap:10px; margin-bottom:14px;
}
.anaq-kicker::before{
  content:""; width:30px; height:3px; border-radius:2px; flex-shrink:0;
  background: linear-gradient(to right,
    var(--anaq-gold) 0%, var(--anaq-gold) 38%,
    #ffffff 38%, #ffffff 62%,
    var(--anaq-blue) 62%, var(--anaq-blue) 100%);
  box-shadow: 0 0 0 1px rgba(11,53,40,.16);
}
.anaq-section h2{ font-size: clamp(26px,3vw,38px); margin:0 0 18px; }
.anaq-lead{ color: var(--anaq-slate); font-size:17px; max-width:780px; line-height:1.7; }

/* ---------- Portrait flottant (ex. "Mot du DG") ----------
   Flotte à gauche du premier paragraphe ; le texte qui suit s'enroule autour. Sur mobile,
   repasse en pleine largeur au-dessus du texte pour éviter un habillage trop serré. */
.anaq-dg-photo{
  float:left; width:230px; height:auto; border-radius:14px; margin:4px 28px 18px 0;
  box-shadow: var(--anaq-shadow-lg);
}
@media (max-width:640px){
  .anaq-dg-photo{ float:none; display:block; width:200px; margin:0 auto 24px; }
}

/* ---------- Stats ---------- */
.anaq-stats{ display:grid; grid-template-columns: repeat(4,1fr); gap:24px; margin-top:48px; }
@media (max-width: 900px){ .anaq-stats{ grid-template-columns: repeat(2,1fr); } }
.anaq-stat{
  background:#fff; border:1px solid var(--anaq-line); border-radius: var(--anaq-radius);
  padding:28px 22px; text-align:center; box-shadow: var(--anaq-shadow);
  transition: box-shadow var(--anaq-t-med) var(--anaq-ease), transform var(--anaq-t-med) var(--anaq-ease);
}
.anaq-stat:hover{ box-shadow: var(--anaq-shadow-lg); transform: translateY(-2px); }
.anaq-stat .num{
  font-family: var(--anaq-font-head); font-size:40px; color: var(--anaq-navy); display:block; line-height:1;
}
.anaq-stat .label{ color: var(--anaq-slate); font-size:14px; margin-top:8px; display:block; }

/* ---------- Cards (missions / services / actions) ---------- */
.anaq-grid-3{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; margin-top:44px; }
@media (max-width: 900px){ .anaq-grid-3{ grid-template-columns:1fr; } }
.anaq-card{
  position:relative; overflow:hidden;
  background:#fff; border:1px solid var(--anaq-line); border-radius: var(--anaq-radius);
  padding:36px 28px 32px; box-shadow: var(--anaq-shadow);
  transition: box-shadow var(--anaq-t-med) var(--anaq-ease), transform var(--anaq-t-med) var(--anaq-ease), border-color var(--anaq-t-med) var(--anaq-ease);
}
/* Liseré d'accent qui se révèle au survol — rappel discret du drapeau, en alternance sur la grille */
.anaq-card::before{
  content:""; position:absolute; top:0; left:0; right:0; height:4px;
  background: var(--anaq-gold);
  transform: scaleX(0); transform-origin:left;
  transition: transform var(--anaq-t-med) var(--anaq-ease);
}
.anaq-card:nth-child(3n+2)::before{ background: var(--anaq-blue); }
.anaq-card:nth-child(3n)::before{ background: var(--anaq-navy); }
.anaq-card:hover{ box-shadow: var(--anaq-shadow-lg); transform: translateY(-5px); border-color: transparent; }
.anaq-card:hover::before{ transform: scaleX(1); }
.anaq-card .icon{
  width:56px; height:56px; border-radius:50%; background: var(--anaq-mist);
  display:flex; align-items:center; justify-content:center; margin-bottom:20px; color: var(--anaq-blue);
  box-shadow: inset 0 0 0 1px rgba(11,53,88,.07);
  transition: background var(--anaq-t-med) var(--anaq-ease), color var(--anaq-t-med) var(--anaq-ease), transform var(--anaq-t-med) var(--anaq-ease);
}
.anaq-card:hover .icon{ background: var(--anaq-navy); color:#fff; transform: scale(1.08); }
.anaq-card h3{ font-size:19px; margin:0 0 10px; }
.anaq-card p{ color: var(--anaq-slate); font-size:15px; line-height:1.65; margin:0; }

/* ---------- Timeline / process steps (accreditation & habilitation) ---------- */
.anaq-steps{ counter-reset: anaq-step; display:grid; grid-template-columns:repeat(3,1fr); gap:26px; margin-top:40px; }
@media (max-width: 900px){ .anaq-steps{ grid-template-columns:1fr; } }
.anaq-step{
  position:relative; background:#fff; border:1px solid var(--anaq-line); border-radius:var(--anaq-radius);
  padding:30px 24px 24px;
}
.anaq-step::before{
  counter-increment: anaq-step; content: counter(anaq-step, decimal-leading-zero);
  font-family: var(--anaq-font-head); font-size:14px; font-weight:700; color:#fff;
  background: var(--anaq-navy); width:34px; height:34px; border-radius:50%;
  display:flex; align-items:center; justify-content:center; margin-bottom:14px;
}
.anaq-step h4{ margin:0 0 8px; font-size:17px; color:var(--anaq-navy); }
.anaq-step p{ color:var(--anaq-slate); font-size:14.5px; margin:0; }

/* ---------- FAQ accordion ---------- */
.anaq-faq details{
  background:#fff; border:1px solid var(--anaq-line); border-radius:12px; padding:18px 22px; margin-bottom:14px;
  transition: border-color var(--anaq-t-fast) var(--anaq-ease), box-shadow var(--anaq-t-fast) var(--anaq-ease);
}
.anaq-faq details[open]{ border-color: var(--anaq-gold); box-shadow: var(--anaq-shadow); }
.anaq-faq summary{
  font-family: var(--anaq-font-head); color: var(--anaq-navy); font-size:17px; cursor:pointer; list-style:none;
  display:flex; justify-content:space-between; align-items:center; gap:16px;
}
.anaq-faq summary::-webkit-details-marker{ display:none; }
.anaq-faq summary::after{
  content:"+"; font-size:22px; color:var(--anaq-gold-dark); flex-shrink:0;
  transition: transform var(--anaq-t-med) var(--anaq-ease);
}
.anaq-faq details[open] summary::after{ content:"+"; transform: rotate(135deg); }
/* Le corps est animé en JS (max-height) ; ce CSS assure la transition douce et évite tout saut visuel. */
.anaq-faq .anaq-faq-body{
  margin-top:12px; color:var(--anaq-slate); line-height:1.7; overflow:hidden;
  transition: max-height var(--anaq-t-med) var(--anaq-ease);
}
.anaq-faq .anaq-faq-body ul{ padding-left:20px; }

/* ---------- Team ---------- */
.anaq-team-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:26px; margin-top:44px; }
@media (max-width: 1000px){ .anaq-team-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width: 560px){ .anaq-team-grid{ grid-template-columns:1fr; } }
.anaq-team-card{
  background:#fff; border:1px solid var(--anaq-line); border-radius:var(--anaq-radius); padding:26px 22px; text-align:center;
  box-shadow: var(--anaq-shadow);
  transition: box-shadow var(--anaq-t-med) var(--anaq-ease), transform var(--anaq-t-med) var(--anaq-ease);
}
.anaq-team-card:hover{ box-shadow: var(--anaq-shadow-lg); transform: translateY(-3px); }
.anaq-avatar{
  width:84px; height:84px; border-radius:50%; margin:0 auto 16px;
  background: linear-gradient(135deg, var(--anaq-navy), var(--anaq-blue));
  color:#fff; display:flex; align-items:center; justify-content:center;
  font-family: var(--anaq-font-head); font-size:26px; font-weight:600;
}
.anaq-team-card h3{ font-size:16.5px; margin:0 0 6px; }
.anaq-team-card p{ color: var(--anaq-slate); font-size:13.5px; margin:0; line-height:1.5; }

/* ---------- Org chart ---------- */
.anaq-orgchart{ margin-top:48px; display:flex; flex-direction:column; align-items:center; gap:0; }
.anaq-org-node{
  background:#fff; border:1px solid var(--anaq-line); border-radius:12px; padding:18px 26px; box-shadow: var(--anaq-shadow);
  text-align:center; max-width:420px;
  transition: box-shadow var(--anaq-t-med) var(--anaq-ease), transform var(--anaq-t-med) var(--anaq-ease);
}
.anaq-org-node:hover{ box-shadow: var(--anaq-shadow-lg); transform: translateY(-2px); }
.anaq-org-node.top{ background: var(--anaq-navy); color:#fff; border:none; }
.anaq-org-node.top h4{ color:#fff; }
.anaq-org-node h4{ margin:0 0 6px; color:var(--anaq-navy); font-size:16px; }
.anaq-org-node p{ margin:0; font-size:13.5px; color:var(--anaq-slate); }
.anaq-org-connector{ width:2px; height:32px; background: var(--anaq-line); }
.anaq-org-row{ display:grid; grid-template-columns:repeat(2,1fr); gap:24px; margin-top:0; }
@media (max-width:760px){ .anaq-org-row{ grid-template-columns:1fr; } }
.anaq-org-tier{ display:flex; flex-direction:column; align-items:center; margin-top:16px; }
.anaq-org-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:32px; width:100%; }
@media (max-width:900px){ .anaq-org-grid{ grid-template-columns:1fr; } }

/* ---------- Photo DG (page "Mot du DG") ----------
   Photo flottée à gauche du texte, largeur fixe. Le nom et le titre du DG sont regroupés avec
   la photo dans un même bloc flottant ("anaq-dg-photo-wrap") pour rester juste en-dessous
   d'elle, au lieu d'être rejetés tout en bas de l'article après tout le texte. */
.anaq-dg-photo-wrap{ float:left; width:580px; max-width:100%; margin:4px 32px 24px 0; }
.anaq-dg-photo{
  display:block; width:100%; height:auto; border-radius:14px; box-shadow: var(--anaq-shadow-lg);
  border-top:6px solid var(--anaq-gold); border-right:6px solid var(--anaq-gold);
  border-bottom:6px solid var(--anaq-blue); border-left:6px solid var(--anaq-blue);
}
/* !important nécessaire : Kadence applique ".single-content p{ margin-top:0 }" qui, à
   spécificité égale en nombre de classes, l'emporte à cause du sélecteur d'élément "p" en plus. */
.anaq-dg-name{ font-family:var(--anaq-font-head); font-weight:700; font-size:24px; color:var(--anaq-navy); margin:16px 0 0 !important; }
.anaq-dg-title{ color:var(--anaq-slate); margin:2px 0 0 !important; }
@media (max-width:760px){
  .anaq-dg-photo-wrap{ float:none; width:100%; max-width:360px; margin:0 auto 24px; }
}

/* ---------- News / actualités cards ---------- */
.anaq-news-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:26px; margin-top:44px; }
@media (max-width:1000px){ .anaq-news-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px){ .anaq-news-grid{ grid-template-columns:1fr; } }
.anaq-news-card{
  background:#fff; border:1px solid var(--anaq-line); border-radius:var(--anaq-radius); overflow:hidden;
  box-shadow: var(--anaq-shadow); display:flex; flex-direction:column;
  transition: box-shadow var(--anaq-t-med) var(--anaq-ease), transform var(--anaq-t-med) var(--anaq-ease);
}
.anaq-news-card:hover{ box-shadow: var(--anaq-shadow-lg); transform: translateY(-3px); }
.anaq-news-thumb{
  height:150px; background: linear-gradient(135deg, var(--anaq-blue-light), var(--anaq-navy));
  display:flex; align-items:center; justify-content:center; color:#fff; font-family:var(--anaq-font-head); font-size:13px;
  background-size:cover; background-position:center;
}
.anaq-news-thumb-photo{ position:relative; }
.anaq-news-thumb-photo::after{
  content:""; position:absolute; inset:0; background: linear-gradient(180deg, rgba(11,61,36,0) 40%, rgba(11,61,36,.35) 100%);
}
a.anaq-news-thumb-link{ display:block; }
.anaq-news-body{ padding:20px 20px 24px; display:flex; flex-direction:column; flex:1; }
.anaq-news-date{ font-size:12px; color: var(--anaq-gold-dark); font-weight:700; text-transform:uppercase; letter-spacing:.06em; margin-bottom:8px; }
.anaq-news-body h3{ font-size:16px; margin:0 0 10px; line-height:1.4; }
.anaq-news-body p{ font-size:13.5px; color:var(--anaq-slate); flex:1; }
.anaq-news-body a.read-more{ font-size:13px; font-weight:700; }

/* ---------- Testimonials ---------- */
.anaq-testimonial{
  background:#fff; border:1px solid var(--anaq-line); border-left:4px solid var(--anaq-blue);
  border-radius:var(--anaq-radius); padding:32px 30px 28px 32px;
  box-shadow: var(--anaq-shadow);
  transition: box-shadow var(--anaq-t-med) var(--anaq-ease), transform var(--anaq-t-med) var(--anaq-ease), border-left-color var(--anaq-t-med) var(--anaq-ease);
}
.anaq-testimonial:hover{ box-shadow: var(--anaq-shadow-lg); transform: translateY(-3px); border-left-color: var(--anaq-gold); }
.anaq-testimonial p.quote{ font-family: var(--anaq-font-head); font-size:18.5px; color:var(--anaq-navy); line-height:1.62; margin:0; }
.anaq-testimonial .who strong{ color:var(--anaq-navy); display:block; font-size:14.5px; margin-bottom:2px; }

/* ---------- Témoignages (bloc Gutenberg) : grille de cartes ----------
   Repense la mise en page d'origine (titre à gauche | colonne de témoignages empilés à
   droite), qui détonnait avec le reste de la page. Nouveau schéma : kicker + titre en haut,
   puis une grille de cartes en dessous — même rythme que "Nos services" et "Actualités".
   Classe dédiée ".wp-block-group.anaq-testimonial" (specificité plus élevée que le
   composant brut ".anaq-testimonial" ci-dessus, qu'elle redéfinit entièrement). */
.wp-block-group.anaq-testimonial-grid > .wp-block-group__inner-container{
  display:grid; grid-template-columns:repeat(3,1fr); gap:28px; margin-top:44px;
}
@media (max-width:900px){
  .wp-block-group.anaq-testimonial-grid > .wp-block-group__inner-container{ grid-template-columns:1fr; }
}
/* Neutralise la marge basse fantôme que Gutenberg ajoute à tous les blocs sauf le dernier
   (même bug que la carte "Bonne gouvernance" plus haut), pour que les 3 cartes gardent
   rigoureusement la même hauteur dans la grille. */
.wp-block-group.anaq-testimonial-grid .wp-block-group.anaq-testimonial{ margin-bottom:0; }

.wp-block-group.anaq-testimonial{
  position:relative; overflow:hidden; height:100%;
  background:#fff; border:1px solid var(--anaq-line); border-left:0; border-radius:var(--anaq-radius);
  padding:0;
  /* Ombre plus marquée qu'ailleurs sur le site : effet "carte posée" bien détachée du fond,
     demandé spécifiquement pour ces cartes (au lieu de la légère ombre par défaut). */
  box-shadow: 0 22px 40px -14px rgba(11,53,88,.38), 0 6px 14px -6px rgba(11,53,88,.22);
  transition: box-shadow var(--anaq-t-med) var(--anaq-ease), transform var(--anaq-t-med) var(--anaq-ease);
}
.wp-block-group.anaq-testimonial:hover{
  box-shadow: 0 30px 55px -16px rgba(11,53,88,.46), 0 10px 20px -8px rgba(11,53,88,.28);
  transform: translateY(-6px);
}
.wp-block-group.anaq-testimonial > .wp-block-group__inner-container{
  display:flex; flex-direction:column; height:100%; padding:34px 28px 28px;
}
/* Guillemet décoratif : généré sur le conteneur interne (pas le wrapper) pour hériter
   naturellement du padding de la carte, sans balisage manuel. */
.wp-block-group.anaq-testimonial > .wp-block-group__inner-container::before{
  content:"\201C"; font-family: var(--anaq-font-head); font-size:46px; color: var(--anaq-gold);
  line-height:1; display:block; margin:0 0 2px; opacity:.95;
}
/* Liseré d'accent en haut de carte, révélé au survol, en alternance — cohérent avec
   ".anaq-card" (section Services) et ".anaq-news-card". */
.wp-block-group.anaq-testimonial::after{
  content:""; position:absolute; top:0; left:0; right:0; height:4px;
  background: var(--anaq-gold); transform:scaleX(0); transform-origin:left;
  transition: transform var(--anaq-t-med) var(--anaq-ease);
}
.wp-block-group.anaq-testimonial:nth-child(3n+2)::after{ background: var(--anaq-blue); }
.wp-block-group.anaq-testimonial:nth-child(3n)::after{ background: var(--anaq-navy); }
.wp-block-group.anaq-testimonial:hover::after{ transform:scaleX(1); }

.wp-block-group.anaq-testimonial p.quote{
  font-family: var(--anaq-font-head); font-size:16.5px; color:var(--anaq-navy);
  line-height:1.6; margin:0 0 24px; flex:1;
}
.wp-block-group.anaq-testimonial .who{
  display:flex; align-items:center; gap:14px;
  margin-top:auto; padding-top:18px; border-top:1px solid var(--anaq-line);
}
.wp-block-group.anaq-testimonial .avatar{
  width:44px; height:44px; border-radius:50%; flex-shrink:0;
  background: linear-gradient(135deg, var(--anaq-navy), var(--anaq-blue));
  color:#fff; display:flex; align-items:center; justify-content:center;
  font-family: var(--anaq-font-head); font-weight:600; font-size:15px;
}
.wp-block-group.anaq-testimonial .who-text{ display:flex; flex-direction:column; min-width:0; }
.wp-block-group.anaq-testimonial .who-text strong{ color:var(--anaq-navy); font-size:14px; }
.wp-block-group.anaq-testimonial .who-text span{ color:var(--anaq-slate); font-size:12.5px; margin-top:2px; }

/* Fonds alternés sur les 3 cartes (1: orange, 2: blanc, 3: vert) — mêmes couleurs
   institutionnelles que les bandeaux "Services" (vert) et "Actualités" (orange), pour une
   petite touche tricolore cohérente avec le reste de la page. Les 4 coins gardent
   explicitement le même arrondi (--anaq-radius), quel que soit le fond. */
.wp-block-group.anaq-testimonial-grid .wp-block-group.anaq-testimonial{
  border-radius: var(--anaq-radius);
  border-top-left-radius: var(--anaq-radius);
  border-top-right-radius: var(--anaq-radius);
  border-bottom-left-radius: var(--anaq-radius);
  border-bottom-right-radius: var(--anaq-radius);
}
.wp-block-group.anaq-testimonial-grid .wp-block-group.anaq-testimonial:nth-child(1){
  background: linear-gradient(135deg, var(--anaq-gold) 0%, var(--anaq-gold-dark) 100%);
  border-color: transparent;
}
.wp-block-group.anaq-testimonial-grid .wp-block-group.anaq-testimonial:nth-child(3){
  background: linear-gradient(135deg, var(--anaq-navy) 0%, #0F5230 100%);
  border-color: transparent;
}
/* Ajustements de contraste sur les cartes colorées (1 et 3) : texte, guillemet, avatar et
   séparateur passent en clair pour rester lisibles sur fond orange/vert. */
.wp-block-group.anaq-testimonial-grid .wp-block-group.anaq-testimonial:nth-child(1) > .wp-block-group__inner-container::before,
.wp-block-group.anaq-testimonial-grid .wp-block-group.anaq-testimonial:nth-child(3) > .wp-block-group__inner-container::before{
  color:#fff; opacity:.85;
}
.wp-block-group.anaq-testimonial-grid .wp-block-group.anaq-testimonial:nth-child(1) p.quote,
.wp-block-group.anaq-testimonial-grid .wp-block-group.anaq-testimonial:nth-child(3) p.quote{
  color:#fff;
}
.wp-block-group.anaq-testimonial-grid .wp-block-group.anaq-testimonial:nth-child(1) .who,
.wp-block-group.anaq-testimonial-grid .wp-block-group.anaq-testimonial:nth-child(3) .who{
  border-top-color: rgba(255,255,255,.3);
}
.wp-block-group.anaq-testimonial-grid .wp-block-group.anaq-testimonial:nth-child(1) .who-text strong,
.wp-block-group.anaq-testimonial-grid .wp-block-group.anaq-testimonial:nth-child(3) .who-text strong{
  color:#fff;
}
.wp-block-group.anaq-testimonial-grid .wp-block-group.anaq-testimonial:nth-child(1) .who-text span,
.wp-block-group.anaq-testimonial-grid .wp-block-group.anaq-testimonial:nth-child(3) .who-text span{
  color: rgba(255,255,255,.78);
}
.wp-block-group.anaq-testimonial-grid .wp-block-group.anaq-testimonial:nth-child(1) .avatar,
.wp-block-group.anaq-testimonial-grid .wp-block-group.anaq-testimonial:nth-child(3) .avatar{
  background:#fff; color: var(--anaq-navy);
}
.wp-block-group.anaq-testimonial-grid .wp-block-group.anaq-testimonial:nth-child(1)::after,
.wp-block-group.anaq-testimonial-grid .wp-block-group.anaq-testimonial:nth-child(3)::after{
  background: rgba(255,255,255,.65);
}

/* ---------- Documents / resource list ---------- */
.anaq-doc-list{ list-style:none; margin:28px 0 0; padding:0; display:grid; gap:14px; }
.anaq-doc-item{
  display:flex; align-items:center; gap:16px; background:#fff; border:1px solid var(--anaq-line);
  border-radius:12px; padding:16px 20px; box-shadow: var(--anaq-shadow);
  transition: transform var(--anaq-t-fast) var(--anaq-ease), box-shadow var(--anaq-t-fast) var(--anaq-ease);
}
.anaq-doc-item:hover{ transform: translateX(4px); box-shadow: var(--anaq-shadow-lg); }
.anaq-doc-icon{
  width:40px; height:40px; border-radius:9px; background:var(--anaq-mist); color:var(--anaq-blue);
  display:flex; align-items:center; justify-content:center; flex-shrink:0; font-weight:700; font-size:12px;
}
.anaq-doc-item .meta{ flex:1; }
.anaq-doc-item .meta strong{ display:block; color:var(--anaq-navy); font-size:15px; }
.anaq-doc-item .meta span{ font-size:12.5px; color:var(--anaq-slate); }

.anaq-placeholder-note{
  border-left:3px solid var(--anaq-gold); background: var(--anaq-mist); padding:14px 18px; border-radius:0 10px 10px 0;
  font-size:13.5px; color:var(--anaq-slate); margin: 18px 0;
}

/* ---------- CTA band ---------- */
.anaq-cta{
  position:relative; overflow:hidden;
  background: linear-gradient(135deg, var(--anaq-navy) 0%, #0F5230 100%);
  color:#fff; border-radius:24px; padding:56px 48px;
  box-shadow: var(--anaq-shadow-lg);
}
/* Le bloc Groupe Gutenberg enveloppe son contenu réel dans un ".wp-block-group__inner-container"
   intermédiaire : le flex posé directement sur ".anaq-cta" n'a donc qu'un seul enfant (ce
   conteneur) et ne peut pas répartir texte/bouton côte à côte. On cible ce vrai conteneur. */
.anaq-cta > .wp-block-group__inner-container{
  display:flex; align-items:center; justify-content:space-between; gap:32px; flex-wrap:wrap;
}
.anaq-cta::before{
  content:""; position:absolute; top:-45%; right:-8%; width:55%; padding-top:55%;
  background: radial-gradient(circle, rgba(224,82,6,.28) 0%, rgba(224,82,6,0) 70%);
  border-radius:50%; pointer-events:none;
}
.anaq-cta::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:4px;
  background: linear-gradient(to right,
    var(--anaq-gold) 0%, var(--anaq-gold) 33.33%,
    #ffffff 33.33%, #ffffff 66.66%,
    var(--anaq-blue) 66.66%, var(--anaq-blue) 100%);
}
.anaq-cta h3{ color:#fff; font-size:26px; margin:0 0 8px; position:relative; z-index:1; }
.anaq-cta p{ color:#C7D6E4; margin:0; max-width:480px; position:relative; z-index:1; }
.anaq-cta .wp-block-buttons{ position:relative; z-index:1; }

/* ---------- Contact ---------- */
/* Réduit l'espace bannière/contenu de la page Contact, comme les autres pages (batch 2026-08-14). */
.wp-block-group.anaq-contact-section{ padding-top:24px; }
/* Colonne unique regroupant les infos de contact puis le formulaire juste en dessous,
   à la demande du client (2026-08-14) — la carte plan est désormais une bande pleine largeur
   séparée (".anaq-map-full") plus bas dans la page, donc plus besoin de la grille 2 colonnes. */
/* Disposition 2 colonnes demandée par le client (2026-08-14) : infos de contact à gauche,
   formulaire à droite, alignés sur la même ligne. Repliement en une seule colonne sur mobile. */
/* Gutenberg insère un ".wp-block-group__inner-container" entre le bloc Group et ses enfants :
   la grille doit donc être posée sur ce wrapper, sinon les 2 colonnes restent empilées
   (même problème que sur la bande CTA de l'accueil). */
.anaq-contact-cols{ margin-top:36px; }
.anaq-contact-cols > .wp-block-group__inner-container{
  display:grid;
  grid-template-columns: minmax(0,1fr) minmax(0,1.15fr);
  gap:44px;
  align-items:start;
}
@media (max-width:900px){
  .anaq-contact-cols > .wp-block-group__inner-container{ grid-template-columns:1fr; gap:36px; }
}
/* min-width:0 : sans cela, une piste de grille prend la largeur minimale de son contenu
   (min-content) et le formulaire déborderait de sa colonne. */
.anaq-contact-col-info,
.anaq-contact-col-form{ min-width:0; }
/* Les deux colonnes démarrent par un h2 : on annule la marge haute pour qu'ils soient
   parfaitement alignés sur la même ligne de base. */
.anaq-contact-col-info h2,
.anaq-contact-col-form h2{ margin-top:0; }
.anaq-contact-col-form .anaq-lead{ max-width:none; }
/* Le formulaire Kadence applique une marge négative de -5px de chaque côté à <form class="kb-form">
   (technique de gouttière interne entre champs) : sans correction, le formulaire déborde de 5px
   à gauche et à droite de sa colonne, cassant l'alignement avec la carte infos de contact. */
.anaq-contact-col-form .wp-block-kadence-form,
.anaq-contact-col-form form.kb-form{ margin-left:0 !important; margin-right:0 !important; }
.anaq-contact-card{ background:#fff; border:1px solid var(--anaq-line); border-radius:var(--anaq-radius); padding:26px; box-shadow: var(--anaq-shadow); }
.anaq-contact-card h4{ margin:0 0 6px; font-size:15px; color:var(--anaq-navy); }
.anaq-contact-card p{ margin:0 0 0; color:var(--anaq-slate); font-size:14.5px; }
/* Lignes Téléphone/Email/Adresse avec icône ronde, à la demande du client (icônes ajoutées 2026-08-14) */
.anaq-contact-item{ display:flex; align-items:flex-start; gap:16px; }
.anaq-contact-item + .anaq-contact-item{ margin-top:20px; padding-top:20px; border-top:1px solid var(--anaq-line); }
.anaq-contact-icon{ flex:0 0 auto; width:40px; height:40px; border-radius:50%; background:var(--anaq-blue); color:#fff; display:flex; align-items:center; justify-content:center; }
.anaq-contact-icon svg{ width:20px; height:20px; }
.anaq-map{ border-radius:var(--anaq-radius); overflow:hidden; box-shadow: var(--anaq-shadow); border:1px solid var(--anaq-line); }
.anaq-map iframe{ width:100%; height:340px; border:0; display:block; }
/* Bande plan de localisation pleine largeur en bas de page Contact (2026-08-14) :
   bloc Group "align:full" (classe Gutenberg .alignfull) pour sortir du conteneur 1240px
   et occuper toute la largeur de l'écran, avec une hauteur généreuse. */
.anaq-map-full{ margin-top:56px; }
.anaq-map-full .anaq-map{ border-radius:0; border:0; box-shadow:none; }
.anaq-map-full .anaq-map iframe{ height:70vh; min-height:440px; }

/* ---------- Footer ---------- */
.site-footer, footer.site-footer{
  background: var(--anaq-ink); color:#B9C6D3;
}
.site-footer a{ color:#DCE7F2; }
.site-footer h2, .site-footer h3{ color:#fff; }
.anaq-footer-top{ border-bottom:1px solid rgba(255,255,255,.08); }
.anaq-footer-bottom{ font-size:13px; padding:18px 24px; text-align:center; color:#8496A5; }

/* ---------- Buttons generic (Kadence override refinements) ----------
   S'applique à TOUS les boutons du site (blocs "Bouton" Gutenberg, quelle que soit leur
   variante de couleur : anaq-btn, anaq-btn-navy, ou aucune classe particulière) : texte en
   gras, et une flèche "→" ajoutée systématiquement en fin de libellé, qui glisse légèrement
   au survol. Un seul point de réglage grâce à la classe commune ".wp-block-button__link". */
.wp-block-button__link, .kt-button{
  border-radius: 999px !important;
  font-weight: 700 !important;
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
}
.wp-block-button__link::after, .kt-button::after{
  content:"\2192"; display:inline-block; line-height:1; font-weight:400;
  transition: transform var(--anaq-t-fast) var(--anaq-ease);
}
.wp-block-button__link:hover::after, .kt-button:hover::after{ transform: translateX(4px); }

/* ---------- Compatibilité blocs natifs WordPress (Group, Buttons, Query Loop) -----------
   Permet de construire les pages avec les blocs Gutenberg standards (Groupe, Colonnes,
   Boutons, Boucle de requête) tout en gardant le design ANAQ-Sup — sans coller de HTML,
   et donc éditable au clic par n'importe qui dans l'équipe. */

/* Bouton doré (CTA principal) : ajouter la classe supplémentaire "anaq-btn" au bloc Bouton */
.wp-block-button.anaq-btn .wp-block-button__link{
  background: var(--anaq-gold); color: #fff !important; font-weight:700; border-radius:999px !important;
  padding:14px 28px; box-shadow: 0 10px 24px -8px rgba(224,82,6,.45);
  transition: transform var(--anaq-t-fast) var(--anaq-ease), box-shadow var(--anaq-t-fast) var(--anaq-ease);
}
.wp-block-button.anaq-btn .wp-block-button__link:hover{ transform: translateY(-2px); color: #fff !important; }

/* Bouton vert clair (CTA secondaire) : classe supplémentaire "anaq-btn-navy" — fond éclairci
   (auparavant vert foncé var(--anaq-navy)) à la demande du client. */
.wp-block-button.anaq-btn-navy .wp-block-button__link{
  background: var(--anaq-blue-light); color:#fff; border-radius:999px !important; padding:14px 28px;
}
.wp-block-button.anaq-btn-navy .wp-block-button__link:hover{ color:#fff; opacity:.9; }

/* Groupe de section : classe supplémentaire "anaq-section" (+ "anaq-section-alt" pour le fond gris) */
.wp-block-group.anaq-section{ padding: clamp(48px, 8vw, 88px) 24px; }
.wp-block-group.anaq-section.anaq-container{ max-width:1240px; margin:0 auto; }
.wp-block-group.anaq-section-alt{ background: var(--anaq-mist); }
/* quand la section-alt est aussi le conteneur centré, le fond doit couvrir toute la largeur :
   on ajoute alors le fond sur un wrapper englobant si besoin (voir guide). */

/* Cartes / grille 3 colonnes réutilisables dans des blocs Groupe imbriqués */
.wp-block-group.anaq-grid-3{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; margin-top:44px; }
@media (max-width: 900px){ .wp-block-group.anaq-grid-3{ grid-template-columns:1fr; } }
.wp-block-group.anaq-card{
  background:#fff; border:1px solid var(--anaq-line); border-radius: var(--anaq-radius);
  padding:32px 28px; box-shadow: var(--anaq-shadow);
  transition: box-shadow var(--anaq-t-med) var(--anaq-ease), transform var(--anaq-t-med) var(--anaq-ease);
}
.wp-block-group.anaq-card:hover{ box-shadow: var(--anaq-shadow-lg); transform: translateY(-3px); }

/* Bloc Boucle de requête (Query Loop) utilisé pour les actualités : réutilise le style de grille */
.wp-block-query.anaq-news-query .wp-block-post-template{
  display:grid; grid-template-columns:repeat(4,1fr); gap:26px; margin-top:44px; list-style:none; padding:0;
}
@media (max-width:1000px){ .wp-block-query.anaq-news-query .wp-block-post-template{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px){ .wp-block-query.anaq-news-query .wp-block-post-template{ grid-template-columns:1fr; } }
.wp-block-query.anaq-news-query li.wp-block-post{
  position:relative;
  background:#fff; border:1px solid var(--anaq-line); border-radius:var(--anaq-radius); overflow:hidden;
  box-shadow: var(--anaq-shadow); padding:0 0 22px; transition: box-shadow var(--anaq-t-med) var(--anaq-ease), transform var(--anaq-t-med) var(--anaq-ease);
}
.wp-block-query.anaq-news-query li.wp-block-post:hover{ box-shadow: var(--anaq-shadow-lg); transform: translateY(-3px); }
.wp-block-query.anaq-news-query .wp-block-post-featured-image{ margin:0 0 16px; }
.wp-block-query.anaq-news-query .wp-block-post-featured-image img{ border-radius:0; aspect-ratio:16/10; object-fit:cover; }
/* Badge "Actualité" superposé sur le coin supérieur gauche de l'image : positionné en absolu
   par rapport à la carte (li, position:relative ci-dessus), pas besoin d'imbrication spéciale
   puisque l'image touche déjà le bord supérieur de la carte. */
.wp-block-query.anaq-news-query .anaq-news-badge{
  position:absolute; z-index:2; top:14px; left:14px;
  background: var(--anaq-green); color:#fff; font-size:11px; font-weight:700;
  text-transform:uppercase; letter-spacing:.05em; padding:5px 14px; border-radius:999px;
  box-shadow: 0 4px 10px -4px rgba(0,0,0,.35);
}
/* Date et titre partagent désormais le même espacement intérieur horizontal (22px) pour être
   alignés au même niveau — la date n'avait auparavant aucun padding, d'où le décalage. */
.wp-block-query.anaq-news-query .wp-block-post-date{
  padding:0 22px; margin:0 0 6px;
  font-size:12px; font-weight:700; color: var(--anaq-gold-dark);
  text-transform:uppercase; letter-spacing:.05em;
}
.wp-block-query.anaq-news-query .wp-block-post-title{ font-size:16px; padding:0 22px; margin:0 0 8px; }
.wp-block-query.anaq-news-query .wp-block-post-title a{ color: var(--anaq-navy); }
.wp-block-query.anaq-news-query .wp-block-post-excerpt{ padding:0 22px; color: var(--anaq-slate); font-size:13.5px; }
.wp-block-query.anaq-news-query .wp-block-query-pagination{ margin-top:32px; justify-content:center; }
/* Espace entre la grille de cartes et le bouton "Voir toutes les actualités" qui suit
   (aucune marge n'existait entre le bloc Requête et le bloc Boutons). */
.wp-block-group.anaq-section-news .wp-block-query.anaq-news-query + .wp-block-buttons{
  margin-top:40px; justify-content:center;
}

/* ---------- Mise en page en colonnes (texte à gauche | contenu à droite) ---------- */
/* Gutenberg enveloppe le contenu des blocs Groupe dans un ".wp-block-group__inner-container"
   (layout flow) qui est le seul enfant direct du wrapper .wp-block-group.* ; c'est donc CE
   conteneur interne qu'il faut transformer en grid/flex, sinon le wrapper n'a qu'un seul
   "item" de grille et tout s'empile verticalement. */
.wp-block-group.anaq-split > .wp-block-group__inner-container{
  display:grid;
  grid-template-columns: minmax(260px, 0.9fr) minmax(320px, 1.3fr);
  gap: 56px;
  align-items:start;
}
@media (max-width: 900px){
  .wp-block-group.anaq-split > .wp-block-group__inner-container{ grid-template-columns: 1fr; gap:32px; }
}

/* Grille de services à 2 colonnes, utilisée dans la colonne de droite de la section Présentation */
.wp-block-group.anaq-grid-2 > .wp-block-group__inner-container{
  display:grid; grid-template-columns:repeat(2,1fr); gap:22px;
}
@media (max-width: 600px){ .wp-block-group.anaq-grid-2 > .wp-block-group__inner-container{ grid-template-columns:1fr; } }

/* Rangée image | texte, utilisée en haut de la section Présentation de l'accueil.
   Classe dédiée "anaq-split-media" (distincte de ".anaq-split" utilisée par la section
   Témoignages) pour ne pas propager ce changement à d'autres blocs qui partagent déjà
   la classe ".anaq-split". */
.wp-block-group.anaq-split-media > .wp-block-group__inner-container{
  display:grid;
  grid-template-columns: minmax(280px, 0.85fr) minmax(320px, 1.15fr);
  gap: 48px;
  align-items:center;
}
@media (max-width: 900px){
  .wp-block-group.anaq-split-media > .wp-block-group__inner-container{ grid-template-columns: 1fr; gap:28px; }
}
.anaq-split-image img{
  width:100%; height:100%; object-fit:cover; border-radius: var(--anaq-radius);
  box-shadow: var(--anaq-shadow-lg);
  aspect-ratio: 4/3;
}
@media (max-width: 900px){ .anaq-split-image img{ aspect-ratio:16/10; } }

/* Grille de cartes de services pleine largeur, placée sous la rangée image | texte.
   Classe dédiée "anaq-services-grid" (distincte de ".anaq-grid-2", pensée à l'origine
   pour une colonne étroite) : elle dispose maintenant de toute la largeur du conteneur. */
.wp-block-group.anaq-services-grid > .wp-block-group__inner-container{
  display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:52px;
}
@media (max-width: 900px){
  .wp-block-group.anaq-services-grid > .wp-block-group__inner-container{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width: 560px){
  .wp-block-group.anaq-services-grid > .wp-block-group__inner-container{ grid-template-columns:1fr; }
}
/* Correctif : Gutenberg/Kadence ajoutent une marge basse (margin-bottom) aux blocs "flow"
   sauf au tout dernier de la liste (":not(:last-child)"). Dans une grille CSS, cette marge
   fait partie du calcul de hauteur de la ligne (stretch = hauteur de ligne − marge propre),
   ce qui gonflait visiblement la dernière carte ("Bonne gouvernance", seule sans cette
   marge) de 32px par rapport aux autres. On neutralise cette marge sur les cartes pour que
   toutes les cartes d'une même ligne aient exactement la même hauteur. */
.wp-block-group.anaq-services-grid .wp-block-group.anaq-card{ margin-bottom:0; }

/* Icônes en alternance orange / vert sur les cartes de la section "Nos services" : le fond
   de la section étant désormais vert, l'icône verte/grise d'origine s'y fondait presque
   entièrement. Le badge circulaire passe donc en couleur pleine (orange ou vert, en
   alternance), avec un trait d'icône blanc pour un contraste net sur le fond vert. */
.wp-block-group.anaq-services-grid .wp-block-group.anaq-card:nth-child(odd) .icon{
  background: var(--anaq-gold); color:#fff; box-shadow:none;
}
.wp-block-group.anaq-services-grid .wp-block-group.anaq-card:nth-child(even) .icon{
  background: var(--anaq-green); color:#fff; box-shadow:none;
}
.wp-block-group.anaq-services-grid .wp-block-group.anaq-card:hover .icon{
  background: var(--anaq-navy); color:#fff;
}

/* Colonne de témoignages empilés, utilisée dans la colonne de droite de la section Témoignages */
.wp-block-group.anaq-testimonial-col > .wp-block-group__inner-container{
  display:flex; flex-direction:column; gap:24px;
}

/* Bandeau chiffres-clés (4 colonnes), construit avec des blocs Groupe imbriqués.
   Nom de classe dédié "anaq-stats-grid" (distinct du composant brut ".anaq-stats" plus haut
   dans ce fichier) pour éviter toute collision : un sélecteur de classe simple s'appliquerait
   aussi bien au wrapper Gutenberg qu'au composant HTML manuel, ce qui provoquerait ici une
   grille imbriquée dans une grille (même bug que .anaq-split au départ). */
.wp-block-group.anaq-stats-grid > .wp-block-group__inner-container{
  display:grid; grid-template-columns:repeat(4,1fr); gap:22px;
}
@media (max-width: 900px){
  .wp-block-group.anaq-stats-grid > .wp-block-group__inner-container{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width: 480px){
  .wp-block-group.anaq-stats-grid > .wp-block-group__inner-container{ grid-template-columns:1fr; }
}
.wp-block-group.anaq-stat{
  background:#fff; border:1px solid var(--anaq-line); border-radius: var(--anaq-radius);
  padding:26px 20px; text-align:center; box-shadow: var(--anaq-shadow);
  transition: box-shadow var(--anaq-t-med) var(--anaq-ease), transform var(--anaq-t-med) var(--anaq-ease);
}
.wp-block-group.anaq-stat:hover{ box-shadow: var(--anaq-shadow-lg); transform: translateY(-3px); }
.wp-block-group.anaq-stat .num{
  font-family: var(--anaq-font-head); font-weight:600; font-size:38px; color: var(--anaq-navy);
  display:block; line-height:1; margin:0;
}
.wp-block-group.anaq-stat .label{ color: var(--anaq-slate); font-size:13.5px; margin:8px 0 0; display:block; }

/* ---------- Archive "Actualités" (liste native Kadence, pas un bloc Requête) -----------
   Kadence génère déjà une grille responsive (classes "grid-cols grid-sm-col-2 grid-lg-col-3")
   sur le <ul class="kadence-posts-list">, donc pas besoin de redéfinir grid-template-columns
   ici (voir le bug .anaq-stats plus haut) — on habille seulement chaque carte. */
.kadence-posts-list.post-archive{ gap: 28px; }
.kadence-posts-list .entry-list-item{ list-style:none; }
.kadence-posts-list article.loop-entry{
  background:#fff; border:1px solid var(--anaq-line); border-radius: var(--anaq-radius);
  box-shadow: var(--anaq-shadow); height:100%; display:flex; flex-direction:column; overflow:hidden;
  transition: box-shadow var(--anaq-t-med) var(--anaq-ease), transform var(--anaq-t-med) var(--anaq-ease);
}
.kadence-posts-list article.loop-entry:hover{ box-shadow: var(--anaq-shadow-lg); transform: translateY(-3px); }
.kadence-posts-list .entry-content-wrap{ padding:26px 24px 24px; display:flex; flex-direction:column; flex:1; }
.kadence-posts-list .entry-taxonomies{ margin-bottom:10px; }
.kadence-posts-list .category-links a{
  font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.05em;
  color: var(--anaq-blue); text-decoration:none;
}
.kadence-posts-list .entry-title{ font-size:18px; line-height:1.4; margin:0 0 10px; }
.kadence-posts-list .entry-title a{ color: var(--anaq-navy); }
.kadence-posts-list .entry-meta{ font-size:12.5px; color: var(--anaq-slate); margin-bottom:14px; }
.kadence-posts-list .entry-meta .meta-label{ display:none; }
.kadence-posts-list .entry-summary{ color: var(--anaq-slate); font-size:14px; line-height:1.6; flex:1; margin-bottom:16px; }
.kadence-posts-list .entry-summary p{ margin:0; }
.kadence-posts-list .entry-footer{ margin-top:auto; }
.kadence-posts-list a.post-more-link{
  font-size:13px; font-weight:700; color: var(--anaq-navy); text-decoration:none;
  display:inline-flex; align-items:center; gap:6px; transition: color var(--anaq-t-fast) var(--anaq-ease), gap var(--anaq-t-fast) var(--anaq-ease);
}
.kadence-posts-list a.post-more-link:hover{ color: var(--anaq-blue); gap:10px; }
.pagination, .navigation.pagination{ margin-top:16px; }
.pagination .page-numbers{
  display:inline-flex; align-items:center; justify-content:center; min-width:38px; height:38px; padding:0 10px;
  border-radius:8px; border:1px solid var(--anaq-line); color:var(--anaq-navy); font-weight:600; font-size:14px;
  text-decoration:none; margin-right:6px; transition: background var(--anaq-t-fast) var(--anaq-ease), color var(--anaq-t-fast) var(--anaq-ease);
}
.pagination .page-numbers.current, .pagination .page-numbers:hover{ background: var(--anaq-navy); color:#fff; border-color: var(--anaq-navy); }

/* ---------- Article single (actualité) ---------- */
.single-post article.single-entry{
  background:#fff; border:1px solid var(--anaq-line); border-radius: var(--anaq-radius);
  box-shadow: var(--anaq-shadow); padding: clamp(28px,5vw,48px); max-width:820px; margin:0 auto;
}
.single-post .entry-title{ font-size: clamp(26px,3.4vw,38px); line-height:1.2; margin:14px 0 18px; }
.single-post .entry-taxonomies{ margin-bottom:6px; }
.single-post .entry-taxonomies .category-links a{
  font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color: var(--anaq-blue);
  text-decoration:none; background: var(--anaq-mist); padding:5px 12px; border-radius:999px;
}
.single-post .entry-meta{ font-size:13.5px; color: var(--anaq-slate); margin-bottom:8px; padding-bottom:24px; border-bottom:1px solid var(--anaq-line); }
.single-post .entry-content{ font-size:16.5px; line-height:1.75; color: var(--anaq-ink); margin-top:24px; }
.single-post .entry-content p{ margin:0 0 20px; }
.single-post .navigation.post-navigation, .single-post nav.post-navigation{
  max-width:820px; margin:28px auto 0; padding:20px 4px 0; border-top:1px solid var(--anaq-line);
}
.single-post .post-navigation a{ font-weight:700; color: var(--anaq-navy); }

/* ---------- Footer widgets (Footer 1/2/3) : bloc À propos / Liens rapides / Contact ---------- */
.footer-widget-area{ padding: clamp(40px,6vw,64px) 24px 32px; }
.footer-widget-area .widget-title, .footer-widget-area h2, .footer-widget-area h3{
  color:#fff; font-family: var(--anaq-font-head); font-size:17px; margin:0 0 16px;
  text-transform:uppercase; font-weight:700;
}
.footer-widget-area p, .footer-widget-area li, .footer-widget-area a{ color:#B9C6D3; font-size:14px; line-height:1.7; }
.footer-widget-area a:hover{ color:#fff; }
.footer-widget-area ul{ list-style:none; margin:0; padding:0; }
.footer-widget-area li{ margin-bottom:10px; }
/* Quand un titre et sa liste sont enregistrés comme deux widgets distincts (ex. colonne
   "Liens utiles"), on annule la marge basse par défaut du widget-titre pour que la liste
   démarre au même niveau que dans les colonnes à widget unique (ex. "Liens rapides"). */
.footer-widget-area .widget:first-child:not(:last-child){ margin-bottom:0; }

/* Séparation entre les colonnes du footer et la bande copyright : fine ligne blanche,
   limitée à la même largeur que le texte des autres sections du site (1240px centré),
   au lieu de traverser tout l'écran. */
.site-bottom-footer-wrap{ position:relative; }
.site-bottom-footer-inner-wrap{ max-width:1168px; margin:0 auto; box-sizing:border-box; border-top:1px solid rgba(243,243,243,.25); }

/* Bande copyright : hauteur réduite (elle n'a pas besoin du même padding que les
   colonnes de liens au-dessus) + couleur distincte pour le lien vers BEIT. */
.site-info.footer-widget-area{ padding:8px 24px; }
.site-info.footer-widget-area .footer-html{ margin:0; }
.footer-html-inner a{ color: var(--anaq-blue-light); font-weight:600; }
.footer-html-inner a:hover{ color:#fff; }

/* ---------- Section "Services" : bandeau vert institutionnel (couleur du logo) ----------
   Le CONTENU (texte, cartes) reste une boîte de flux normale, avec exactement le même
   padding + max-width + centrage que les autres bandes (".anaq-section.anaq-container"),
   à l'intérieur du même conteneur de thème — c'est ce qui garantit un alignement au pixel
   près avec les autres sections, plutôt que de recalculer une largeur "à la main".
   Seul le FOND vert déborde en pleine largeur d'écran, via un pseudo-élément ".::before"
   positionné en absolu (astuce 100vw), placé derrière le contenu (z-index négatif). */
.wp-block-group.anaq-section-services{
  position:relative; z-index:0; /* crée un contexte d'empilement local pour que les
     pseudo-éléments en z-index négatif restent DERRIÈRE ce bloc sans "s'échapper" vers un
     ancêtre (bug classique : sans ce z-index, un enfant en z-index négatif peut se retrouver
     caché sous le fond opaque d'un ancêtre, ex. le fond blanc de la page). */
  padding: clamp(48px, 8vw, 88px) 24px;
  max-width:1240px; margin:0 auto;
}
.wp-block-group.anaq-section-services::before{
  content:""; position:absolute; z-index:-2; top:0; bottom:0;
  left:50%; width:100vw; margin-left:-50vw;
  background: linear-gradient(135deg, #1C6E40 0%, #2DA65E 100%); /* encore plus clair qu'avant,
     pour aérer davantage la bande tout en gardant assez de contraste pour le texte blanc. */
}
.wp-block-group.anaq-section-services::after{
  content:""; position:absolute; z-index:-1; top:-40%; right:-6%; width:46%; padding-top:46%;
  background: radial-gradient(circle, rgba(224,82,6,.20) 0%, rgba(224,82,6,0) 70%);
  border-radius:50%; pointer-events:none;
}
.wp-block-group.anaq-section-services .anaq-kicker{ color: var(--anaq-gold); }
.wp-block-group.anaq-section-services h2{ color:#fff; }
.wp-block-group.anaq-section-services .anaq-lead{ color:#D7E3EE; }
/* Les cartes de service gardent leur fond blanc habituel : le contraste avec le bandeau vert
   suffit, inutile de les recolorer (cohérent avec ".anaq-stat" / ".anaq-pillar" ailleurs). */

/* ---------- Section "Actualités" : bandeau orange institutionnel (couleur du drapeau/logo) ----------
   Même technique que ".anaq-section-services" ci-dessus : le contenu reste une boîte de
   flux normale avec le padding + max-width + centrage standard (déjà fournis par les classes
   ".anaq-section.anaq-container" présentes sur ce même bloc), pour un alignement au pixel
   près avec les autres bandes de la page. Seul le fond déborde en pleine largeur d'écran via
   un pseudo-élément "::before" (astuce 100vw). ".anaq-section-alt" (fond gris clair par
   défaut) est neutralisé : le dégradé orange le remplace entièrement. */
.wp-block-group.anaq-section-news{
  position:relative; z-index:0;
  background: none;
}
.wp-block-group.anaq-section-news::before{
  content:""; position:absolute; z-index:-2; top:0; bottom:0;
  left:50%; width:100vw; margin-left:-50vw;
  background: linear-gradient(135deg, var(--anaq-gold) 0%, var(--anaq-gold-dark) 100%);
}
.wp-block-group.anaq-section-news::after{
  content:""; position:absolute; z-index:-1; top:-35%; left:-6%; width:40%; padding-top:40%;
  background: radial-gradient(circle, rgba(13,176,43,.22) 0%, rgba(13,176,43,0) 70%);
  border-radius:50%; pointer-events:none;
}
.wp-block-group.anaq-section-news .anaq-kicker{ color: var(--anaq-navy); }
.wp-block-group.anaq-section-news h2{ color:#fff; }
/* Les cartes d'actualités et le bouton (fond blanc / vert foncé) gardent leurs couleurs
   habituelles : elles contrastent déjà bien sur le fond orange, comme pour ".anaq-stat"
   sur le bandeau vert. */

/* ---------- Partenaires : galerie défilante (marquee) ----------
   Bandeau de logos partenaires en défilement horizontal infini, en CSS pur
   (aucun JS requis). La piste ".anaq-partners-track" contient la liste des
   logos DUPLIQUÉE une fois ; l'animation translate de 0 à -50% donne
   l'illusion d'un défilement continu sans à-coup à la jonction.
   Provisoire : les vignettes affichent des espaces réservés (nom du
   partenaire) en attendant les logos définitifs — remplacer chaque
   ".anaq-partner-logo" par une balise <img> quand les fichiers seront fournis. */
.anaq-partners-viewport{
  overflow:hidden; margin-top:44px;
  -webkit-mask-image: linear-gradient(to right, transparent 0, #000 6%, #000 94%, transparent 100%);
  mask-image: linear-gradient(to right, transparent 0, #000 6%, #000 94%, transparent 100%);
}
.anaq-partners-track{
  display:flex; align-items:center; gap:28px; width:max-content;
  animation: anaq-partners-scroll 32s linear infinite;
}
.anaq-partners-viewport:hover .anaq-partners-track{ animation-play-state: paused; }
@keyframes anaq-partners-scroll{
  from{ transform: translateX(0); }
  to{ transform: translateX(-50%); }
}
.anaq-partner-logo{
  flex: 0 0 auto; width:190px; height:104px; border-radius: var(--anaq-radius);
  background:#fff; border:1px solid var(--anaq-line); box-shadow: var(--anaq-shadow);
  display:flex; align-items:center; justify-content:center; text-align:center; padding:12px 16px;
  filter:none; opacity:1;
  transition: box-shadow var(--anaq-t-med) var(--anaq-ease), transform var(--anaq-t-med) var(--anaq-ease);
}
.anaq-partner-logo:hover{ box-shadow: var(--anaq-shadow-lg); transform: translateY(-3px); }
.anaq-partner-logo img{ max-width:100%; max-height:100%; border-radius:0; }
.anaq-partner-logo span{
  font-family: var(--anaq-font-head); font-weight:600; font-size:14px; color: var(--anaq-slate); line-height:1.3;
}
@media (max-width:600px){
  .anaq-partner-logo{ width:150px; height:86px; }
}

/* ---------- Section "Partenaires" : bandeau gris clair pleine largeur d'écran ----------
   Même technique 100vw que ".anaq-section-services" / ".anaq-section-news" plus haut : le
   contenu garde le padding + max-width + centrage standard (".anaq-section.anaq-container"),
   seul le fond déborde en pleine largeur via un pseudo-élément "::before" positionné en
   absolu. ".anaq-section-alt" (fond gris clair) est neutralisé sur ce bloc précis pour être
   remplacé par le même fond en pleine largeur. */
.wp-block-group.anaq-section-partners{
  position:relative; z-index:0;
  background:none;
}
.wp-block-group.anaq-section-partners::before{
  content:""; position:absolute; z-index:-1; top:0; bottom:0;
  left:50%; width:100vw; margin-left:-50vw;
  background: var(--anaq-mist);
}

/* ---------- Utility ---------- */
.anaq-center{ text-align:center; }
.anaq-mt-0{ margin-top:0; padding-top: 0 !important }

.entry-content-wrap{ margin-top:0 !important; padding-top: 0 !important }

/* ---------- Slider d'accueil (SmartSlider3) ----------
   Le slider réel du site est rendu par le plugin SmartSlider3 (shortcode
   [smartslider3 slider="2"]), PAS par les classes ".anaq-slider/.anaq-slide"
   du thème (celles-ci restent inutilisées, gardées pour référence). Les
   règles ci-dessous ciblent la structure DOM réelle générée par le plugin :
   .n2-ss-slide > .n2-ss-slide-background > .n2-ss-slide-background-image
   (contient l'<img> de fond) et les calques de texte en z-index supérieur. */

/* Fond assombri uniformément sur les 3 slides, pour une meilleure lisibilité
   du texte (indépendant du réglage individuel d'overlay de chaque slide, qui
   n'était présent que sur 1 des 3 slides). Appliqué directement sur la photo
   via un filtre CSS (les tentatives via pseudo-élément ::after ne s'affichaient
   pas : SmartSlider3 rend le fond dans un calque séparé du calque de texte,
   et le filtre sur l'<img> lui-même est la méthode fiable ici). */
.n2-ss-slide-background-image img{
  filter: brightness(0.4) saturate(1.08) !important;
}

/* Titres de slide plus grands, en gras, et responsives (clamp selon la largeur
   d'écran) pour ressortir sur le fond assombri. IMPORTANT : on cible le titre
   via un sélecteur STRUCTUREL (".n2-ss-item-content.n2-ss-text.n2-ow" qui
   n'est PAS la description ".n2-ow-all") plutôt que la classe de hash
   "n2-font-xxxxx" générée par SmartSlider — ce hash change dès qu'on modifie
   le style du texte dans l'éditeur SmartSlider (constaté : 577e3e94... puis
   d80aa5ef... après un simple réglage de taille/graisse dans le plugin), donc
   un sélecteur basé sur le hash se désynchronise silencieusement. Le
   sélecteur structurel, lui, reste valide quel que soit le preset de style
   utilisé côté SmartSlider — c'est ce qui manquait pour que le clamp()
   s'applique réellement (le réglage fixe "76px" fait dans l'éditeur
   SmartSlider prenait le dessus faute de correspondance de sélecteur). */
.n2-ss-slide .n2-ss-layer h1,
.n2-ss-slide .n2-ss-layer h2,
.n2-ss-slide .n2-ss-item-content.n2-ss-text.n2-ow:not(.n2-ow-all){
  font-weight: 800 !important;
  font-size: clamp(30px, 4.6vw, 76px) !important;
  line-height: 1.15 !important;
  text-shadow: 0 4px 20px rgba(0,0,0,.45) !important;
}

/* Texte de description (sous le titre) plus grand, taille identique sur les
   3 slides (déjà 16px partout, mais on l'agrandit pour plus de lisibilité
   sur le fond assombri). */
.n2-ss-slide .n2-ss-item-content.n2-ss-text.n2-ow-all{
  font-size: 19px !important;
  line-height: 1.55 !important;
  text-shadow: 0 2px 10px rgba(0,0,0,.4) !important;
  min-height: 66px !important;
}

/* Titre : hauteur réservée fixe (= 2 lignes) pour que la position verticale
   du texte de description et du bouton soit identique sur les 3 slides,
   que le titre tienne sur 1 ou 2 lignes (sélecteur structurel plutôt que la
   classe de hash générée par SmartSlider, qui peut changer). */
.n2-ss-slide .n2-ss-item-content.n2-ss-text.n2-ow:not(.n2-ow-all){
  min-height: 182px !important;
}

/* Bouton du slider : espacement uniforme et un peu plus bas sous le texte,
   sur les 3 slides (l'écart variait selon le nombre de lignes du titre). */
.n2-ss-slide .n2-ss-button-container{
  margin-top: 28px !important;
}

/* Boutons du slider : même style que les autres boutons du site (pilule,
   gras, flèche au survol) — par défaut SmartSlider3 les rend carrés, fins
   et sans flèche, ce qui détonnait avec ".wp-block-button__link/.kt-button". */
.n2-ss-button-container a,
.n2-ss-button-container .n2-ss-button{
  border-radius: 999px !important;
  font-weight: 700 !important;
  font-size: 17px !important;
  padding: 14px 30px !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 8px;
  box-shadow: 0 10px 24px -8px rgba(0,0,0,.4) !important;
  transition: transform .25s ease, box-shadow .25s ease;
}
.n2-ss-button-container a::after,
.n2-ss-button-container .n2-ss-button::after{
  content: "\2192" !important;
  display: inline-block !important;
  line-height: 1;
  font-weight: 400;
  transition: transform .25s ease;
}
.n2-ss-button-container a:hover::after,
.n2-ss-button-container .n2-ss-button:hover::after{
  transform: translateX(4px);
}
.n2-ss-button-container a:hover,
.n2-ss-button-container .n2-ss-button:hover{
  transform: translateY(-2px);
  box-shadow: 0 14px 28px -8px rgba(0,0,0,.48) !important;
}

/* Slider en mobile : la description est masquée (texte secondaire superflu sur
   petit écran, l'espace vertical du slider est limité) et le titre passe à une
   taille adaptée à l'écran plutôt qu'au clamp() pensé pour desktop/tablette. */
@media (max-width: 600px){
  .n2-ss-slide .n2-ss-item-content.n2-ss-text.n2-ow-all{
    display: none !important;
  }
  .n2-ss-slide .n2-ss-item-content.n2-ss-text.n2-ow:not(.n2-ow-all){
    min-height: 0 !important;
  }
  .n2-ss-slide .n2-ss-layer h1,
  .n2-ss-slide .n2-ss-layer h2,
  .n2-ss-slide .n2-ss-item-content.n2-ss-text.n2-ow:not(.n2-ow-all){
    font-size: clamp(20px, 7vw, 28px) !important;
    line-height: 1.2 !important;
  }
  .n2-ss-slide .n2-ss-button-container{
    margin-top: 14px !important;
  }
}
@media (min-width: 601px) and (max-width: 900px){
  .n2-ss-slide .n2-ss-layer h1,
  .n2-ss-slide .n2-ss-layer h2,
  .n2-ss-slide .n2-ss-item-content.n2-ss-text.n2-ow:not(.n2-ow-all){
    font-size: clamp(26px, 5vw, 40px) !important;
  }
}
/* Titres de slide en desktop (>900px) : taille fixe à 76px. */
@media (min-width: 901px){
  .n2-ss-slide .n2-ss-layer h1,
  .n2-ss-slide .n2-ss-layer h2,
  .n2-ss-slide .n2-ss-item-content.n2-ss-text.n2-ow:not(.n2-ow-all){
    font-size: 76px !important;
  }
  .n2-ss-slide .n2-ss-item-content.n2-ss-text.n2-ow:not(.n2-ow-all){
    min-height: 210px !important;
  }
}

/* ---------- Paddings horizontaux resserrés en mobile ----------
   Les paddings pensés pour desktop (24px de section + 20-48px par carte)
   s'additionnent sur petit écran : une carte dans une section perd alors
   40-70px de largeur utile de chaque côté rien qu'en padding, sur un écran
   qui n'en a que 360-390 au total. On resserre uniformément sous 600px,
   section comme cartes, pour rendre au contenu la place qui lui revient. */
@media (max-width:600px){
  .anaq-section,
  .wp-block-group.anaq-section{ padding-left:16px !important; padding-right:16px !important; }
  /* La bande "Nos services" a sa propre classe de fond pleine largeur
     (".anaq-section-services", distincte de ".anaq-section") : elle n'était
     donc pas couverte par la règle ci-dessus et gardait 24px de chaque côté. */
  .wp-block-group.anaq-section-services{ padding-left:14px !important; padding-right:14px !important; }

  .anaq-card,
  .wp-block-group.anaq-card{ padding-left:20px !important; padding-right:20px !important; }
  .anaq-stat{ padding-left:16px !important; padding-right:16px !important; }
  .anaq-step{ padding-left:18px !important; padding-right:18px !important; }
  .anaq-pillar{ padding-left:16px !important; padding-right:16px !important; }
  .anaq-faq details{ padding-left:16px !important; padding-right:16px !important; }
  .anaq-team-card{ padding-left:16px !important; padding-right:16px !important; }
  .anaq-org-node{ padding-left:18px !important; padding-right:18px !important; }
  .anaq-doc-item{ padding-left:14px !important; padding-right:14px !important; }
  .anaq-contact-card{ padding:20px !important; }

  .anaq-news-body{ padding-left:16px !important; padding-right:16px !important; }
  .wp-block-query.anaq-news-query .wp-block-post-date,
  .wp-block-query.anaq-news-query .wp-block-post-title,
  .wp-block-query.anaq-news-query .wp-block-post-excerpt{ padding-left:16px !important; padding-right:16px !important; }

  .wp-block-group.anaq-testimonial > .wp-block-group__inner-container{ padding:26px 20px 22px !important; }

  .anaq-cta{ padding:32px 20px !important; }

  .single-post article.single-entry{ padding:20px !important; }

  .footer-widget-area{ padding-left:16px !important; padding-right:16px !important; }
}
