/*
Theme Name:   CECB36
Description:  Thème enfant Kadence pour le site du Club d'Éducation Canine Blancois
Template:     kadence
Version:      2.0.0
Text Domain:  cecb36
*/

/* SOMMAIRE
   1. COULEURS DE LA MAQUETTE
   2. TYPOGRAPHIE : les mots en italique élégant des titres
   3. LE BOUTON CONTACT DU MENU (classe menu-contact)
   4. SECTIONS (fonds de couleur d'un bord à l'autre)
   5. PASTILLES ("Club canin · Le Blanc · depuis 1990")
   6. BOUTONS (bloc "Boutons" de WordPress)
   7. CARTES
   8. CHIFFRES CLÉS (4.8★, ~40, +35 ans, 5)
   9. CARTES D'AVIS
   10. ANIMATIONS
   11. MOBILE
   12. PAGES CONSTRUITES AVEC LES BLOCS WORDPRESS
   13. CORRECTIF : conteneur interne des groupes
   14. FINITIONS : marges forcées et taille des boutons
   15. FINITIONS (2)
   16. PIED DE PAGE
   17. PAGES INTÉRIEURES
   18. TITRES : hauteur de ligne resserrée partout
   19. LARGEUR DU CONTENU DANS LES SECTIONS
   20. CORRECTIF : centrage des bandeaux de titre
   21. PAS DE MARGE ENTRE LES SECTIONS NI AVANT LE PIED DE PAGE
   22. FAQ : survol, ouverture et apparition de la réponse
   23. CHIFFRES CLÉS EN GRILLE (bandeau de la FAQ)
   CECB : échelle unique des tailles et espacements
   CECB : accessibilité et robustesse
   24. AGRANDISSEMENT : textes plus grands, contenu plus large
   25. CORRECTIFS D'AFFICHAGE ET RESPONSIVE
   26. CHIFFRES CLÉS (accueil) : deux versions au choix
   27. TÉMOIGNAGES
   28. CHIFFRES CLÉS EN GRILLE (page FAQ) : alignement et style
   29. ALIGNEMENTS
   30. COTISATION : bloc plus visible
   31. ÉTAPES "COMMENT S'INSCRIRE"
   32. TÉMOIGNAGES : finitions
   33. MENU : texte plus grand
   34. PHOTOS
   35. EMPLACEMENTS PHOTO "À VENIR" : version moderne
   36. REPRIS DU "CSS ADDITIONNEL" DU PERSONNALISEUR
   37. MOBILE : marges sur les côtés toujours présentes
   38. CARTES DE COURS : horaire toujours en bas et centré
   39. TABLEAU DU SAMEDI : colonnes identiques sur chaque ligne
   40. PAGE PHOTOS : titres des thèmes, même taille en H2 ou H3
*/

/* =========================================================
   1. COULEURS DE LA MAQUETTE
   Toutes les couleurs sont regroupées ici : pour en changer
   une, il suffit de modifier sa valeur sur cette ligne.
   ========================================================= */

:root {
  --cecb-vert: #2d6a3f;
  --cecb-vert-fonce: #1f5530;
  --cecb-vert-clair: #b4d9bf;
  --cecb-vert-pale: #eaf4ed;
  --cecb-vert-fond: #f4faf6;
  --cecb-cuivre: #b07434;
  --cecb-cuivre-pale: #fef3e4;
  --cecb-orange-fond: #fff8f0;
  --cecb-titre: #0d1a10;
  --cecb-texte: #4a6450;
  --cecb-bordure: #e3ebe4;
  --cecb-creme: #fdfcf9;
  --cecb-blanc: #ffffff;
  --cecb-etoile: #f59e0b;
}

html {
  scroll-behavior: smooth;
}

/* =========================================================
   2. TYPOGRAPHIE : les mots en italique élégant des titres
   Exemple : "dans la bonne humeur"
   Classe à ajouter : sib (gras) ou si (normal)
   ========================================================= */

.si,
.sib {
  font-family: 'Playfair Display', Georgia, serif;
  font-style: italic;
  letter-spacing: -0.01em;
}

.sib {
  font-weight: 700;
}

.sib-vert {
  color: var(--cecb-vert);
}

/* Petit titre au-dessus des grilles ("Cours d'éducation") */

.cecb-label {
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--cecb-texte);
  margin-bottom: 0.7rem;
}

/* =========================================================
   3. LE BOUTON CONTACT DU MENU (classe menu-contact)
   ========================================================= */

.main-navigation .primary-menu-container > ul > li.menu-contact > a,
.header-navigation ul li.menu-contact > a {
  background: var(--cecb-vert) !important;
  color: var(--cecb-blanc) !important;
  font-weight: 700 !important;
  margin-left: 6px;
  border-radius: 50px;
  line-height: 1.4;
  transition: background 0.2s, box-shadow 0.2s, transform 0.2s;
}

.main-navigation .primary-menu-container > ul > li.menu-contact > a:hover,
.header-navigation ul li.menu-contact > a:hover {
  background: var(--cecb-vert-fonce) !important;
  color: var(--cecb-blanc) !important;
  box-shadow: 0 5px 18px rgba(45, 106, 63, 0.28);
  transform: translateY(-1px);
}

/* =========================================================
   4. SECTIONS (fonds de couleur d'un bord à l'autre)
   Classe à ajouter sur le bloc de la section :
   section-w (blanc), section-g (vert clair), section-c (crème),
   section-hero (dégradé de la page d'accueil)
   ========================================================= */

.section-w,
.section-g,
.section-c,
.section-hero {
  padding: 5.5rem 3rem;
}

.section-w {
  background: var(--cecb-blanc);
}

.section-g {
  background: var(--cecb-vert-fond);
}

.section-c {
  background: var(--cecb-creme);
}

.section-hero {
  padding: 6rem 3rem 4.5rem;
  background: linear-gradient(160deg, var(--cecb-vert-fond) 0%, var(--cecb-creme) 65%);
}

/* =========================================================
   5. PASTILLES ("Club canin · Le Blanc · depuis 1990")
   Classes : pill + pill-g (verte) ou pill-c (cuivre)
   ========================================================= */

.pill {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-weight: 600;
  padding: 4px 12px;
  border-radius: 50px;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  line-height: 1.6;
}

.pill-g {
  background: var(--cecb-vert-pale);
  color: var(--cecb-vert);
}

.pill-c {
  background: var(--cecb-cuivre-pale);
  color: var(--cecb-cuivre);
}

/* =========================================================
   6. BOUTONS (bloc "Boutons" de WordPress)
   Le bouton vert plein et le bouton contour sont réglés dans
   le Customizer. Ici : fond blanc du bouton contour, et deux
   variantes pour les bandeaux verts.
   Classes : btn-w (blanc) ou btn-dim (transparent)
   ========================================================= */

.wp-block-button.is-style-outline .wp-block-button__link {
  background: var(--cecb-blanc);
}

.wp-block-button.is-style-outline .wp-block-button__link:hover {
  background: var(--cecb-vert-fond);
  transform: translateY(-1px);
}

.wp-block-button__link {
  transition: all 0.2s;
}

.wp-block-button:not(.is-style-outline) .wp-block-button__link:hover {
  box-shadow: 0 5px 18px rgba(45, 106, 63, 0.28);
  transform: translateY(-1px);
}

.btn-w .wp-block-button__link {
  background: var(--cecb-blanc) !important;
  color: var(--cecb-vert) !important;
  font-weight: 700;
}

.btn-w .wp-block-button__link:hover {
  background: var(--cecb-vert-fond) !important;
}

.btn-dim .wp-block-button__link {
  background: rgba(255, 255, 255, 0.15) !important;
  color: var(--cecb-blanc) !important;
  border: 1.5px solid rgba(255, 255, 255, 0.3) !important;
}

.btn-dim .wp-block-button__link:hover {
  background: rgba(255, 255, 255, 0.25) !important;
}

/* =========================================================
   7. CARTES
   ========================================================= */

/* Effet au survol, à combiner avec une carte : hov */

.hov {
  transition: box-shadow 0.2s, border-color 0.2s, transform 0.2s;
}

.hov:hover {
  box-shadow: 0 6px 28px rgba(45, 106, 63, 0.11);
  border-color: #3d8a52 !important;
  transform: translateY(-2px);
}

/* Carte de cours ("École du chiot", "Agility"...) : disc-card */

.disc-card {
  background: var(--cecb-blanc);
  border: 1.5px solid var(--cecb-bordure);
  border-radius: 18px;
  padding: 1.5rem;
  gap: 9px;
  height: 100%;
}

.disc-card p {
  line-height: 1.68;
  margin: 0;
}

/* Ligne d'horaire en bas d'une carte : cecb-horaire */

.cecb-horaire {
  display: flex;
  align-items: center;
  gap: 5px;
  font-weight: 600;
  color: var(--cecb-vert);
  padding-top: 9px;
  margin-top: auto;
  border-top: 1px solid var(--cecb-bordure);
}

.cecb-horaire::before {
  content: "";
  width: 5px;
  height: 5px;
  background: var(--cecb-vert);
  border-radius: 50%;
  flex-shrink: 0;
}

/* Carte "philosophie" (fond vert ou orangé, icône à gauche) :
   cecb-atout, ou cecb-atout cecb-atout-orange */

.cecb-atout {
  background: var(--cecb-vert-fond);
  border: 1.5px solid var(--cecb-vert-pale);
  border-radius: 16px;
  padding: 1.3rem;
  display: flex;
  gap: 12px;
  align-items: flex-start;
}

.cecb-atout-orange {
  background: var(--cecb-orange-fond);
  border-color: var(--cecb-cuivre-pale);
}

/* Carré d'icône (emoji) : cecb-icone, ou cecb-icone cecb-icone-orange */

.cecb-icone {
  width: 42px;
  height: 42px;
  background: var(--cecb-vert-pale);
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.25rem;
  flex-shrink: 0;
}

.cecb-icone-orange {
  background: var(--cecb-cuivre-pale);
}

/* Carte d'accueil flottante ("Bienvenue au CECB") : cecb-carte-accueil */

.cecb-carte-accueil {
  background: var(--cecb-blanc);
  border-radius: 24px;
  padding: 1.9rem;
  border: 1px solid var(--cecb-bordure);
  box-shadow: 0 18px 55px rgba(45, 106, 63, 0.09);
}

/* Ligne d'information dans la carte d'accueil : cecb-info */

.cecb-info {
  display: flex;
  justify-content: space-between;
  padding: 0.65rem 0.85rem;
  background: var(--cecb-creme);
  border-radius: 10px;
  border: 1px solid var(--cecb-bordure);
}

/* Élément de contact (téléphone, e-mail...) : ci-item */

.ci-item {
  display: flex;
  gap: 10px;
  padding: 0.8rem 0.9rem;
  border-radius: 12px;
  background: var(--cecb-blanc);
  border: 1px solid var(--cecb-bordure);
  transition: box-shadow 0.2s;
}

.ci-item:hover {
  box-shadow: 0 4px 14px rgba(45, 106, 63, 0.1);
}

/* Bandeau vert d'appel à l'action : profils-cta */

.profils-cta {
  background: var(--cecb-vert);
  border-radius: 15px;
  padding: 1.6rem 2rem;
  color: var(--cecb-blanc);
}

.profils-cta h2,
.profils-cta h3,
.profils-cta p {
  color: var(--cecb-blanc);
}

/* =========================================================
   8. CHIFFRES CLÉS (4.8★, ~40, +35 ans, 5)
   Conteneur : stats-row / chaque chiffre : stat-item
   ========================================================= */

.stats-row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  margin-top: 2rem;
  padding-top: 2rem;
  border-top: 1px solid var(--cecb-bordure);
}

.stat-item {
  text-align: center;
  border-right: 1px solid var(--cecb-bordure);
}

.stat-item:first-child {
  padding-left: 0;
}

.stat-item:last-child {
  border-right: none;
}

.stat-val {
  font-weight: 800;
  color: var(--cecb-cuivre);
  letter-spacing: -0.04em;
  line-height: 1;
  white-space: nowrap;
}

.stat-lbl {
  color: var(--cecb-texte);
  font-weight: 500;
}

/* =========================================================
   9. CARTES D'AVIS
   ========================================================= */

.c-card {
  background: var(--cecb-blanc);
  border: 1.5px solid var(--cecb-bordure);
  border-radius: 18px;
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 9px;
  height: 100%;
}

.c-stars {
  color: var(--cecb-etoile);
  font-size: 0.8rem;
  letter-spacing: 2px;
}

.c-txt {
  color: var(--cecb-texte);
  line-height: 1.8;
  font-style: italic;
  flex: 1;
}

.c-author {
  align-items: center;
  gap: 8px;
  padding-top: 9px;
  border-top: 1px solid var(--cecb-bordure);
}

/* =========================================================
   10. ANIMATIONS
   Les éléments ne sont masqués que si le script est chargé
   (classe cecb-js), pour ne jamais cacher de contenu.
   Classes : cecb-reveal (monte), cecb-reveal-gauche,
   cecb-reveal-droite, cecb-reveal-zoom, flt (flotte)
   ========================================================= */

.cecb-js .cecb-reveal,
.cecb-js .cecb-reveal-gauche,
.cecb-js .cecb-reveal-droite,
.cecb-js .cecb-reveal-zoom {
  opacity: 0;
  transition: opacity 0.85s cubic-bezier(0.16, 1, 0.3, 1), transform 0.85s cubic-bezier(0.16, 1, 0.3, 1);
}

.cecb-js .cecb-reveal {
  transform: translateY(38px);
}

.cecb-js .cecb-reveal-gauche {
  transform: translateX(-38px);
}

.cecb-js .cecb-reveal-droite {
  transform: translateX(38px);
}

.cecb-js .cecb-reveal-zoom {
  transform: scale(0.95);
}

.cecb-js .vis {
  opacity: 1;
  transform: none;
}

@keyframes cecb-flotte {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-9px); }
}

.flt {
  animation: cecb-flotte 5s ease-in-out infinite;
}

/* Respecte les personnes qui ont désactivé les animations */

@media (prefers-reduced-motion: reduce) {
  .flt {
    animation: none;
  }

  .cecb-js .cecb-reveal,
  .cecb-js .cecb-reveal-gauche,
  .cecb-js .cecb-reveal-droite,
  .cecb-js .cecb-reveal-zoom {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

/* =========================================================
   11. MOBILE
   ========================================================= */

@media (max-width: 768px) {
  .section-w,
  .section-g,
  .section-c,
  .section-hero {
    padding: 3rem 1.2rem;
  }

  .stats-row {
    grid-template-columns: 1fr 1fr;
  }

  .stat-item {
    border-right: none;
    border-bottom: 1px solid var(--cecb-bordure);
    padding: 0.6rem !important;
  }

  .stat-item:nth-child(odd) {
    border-right: 1px solid var(--cecb-bordure);
  }

  .stat-item:last-child,
  .stat-item:nth-last-child(2):nth-child(odd) {
    border-bottom: none;
  }

  .flt {
    animation: none;
  }
}

/* =========================================================
   12. PAGES CONSTRUITES AVEC LES BLOCS WORDPRESS
   ========================================================= */

/* Mots en italique élégant : bouton Italique de l'éditeur dans un titre */

h1 em,
h2 em,
h3 em {
  font-family: 'Playfair Display', Georgia, serif;
  font-style: italic;
  font-weight: 700;
  letter-spacing: -0.01em;
}

.em-vert em {
  color: var(--cecb-vert);
}

/* Titres de section */

.section-w h2,
.section-g h2,
.section-c h2 {
  font-size: clamp(2rem, 3.5vw, 2.8rem);
}

/* Pastille posée seule sur une ligne */

p.pill {
  display: inline-flex;
  margin-bottom: 1.1rem;
}

/* Espacements des blocs à l'intérieur de nos composants */

.stats-row > *,
.stat-item > *,
.disc-card > *,
.cecb-atout > *,
.cecb-atout-texte > *,
.cecb-info > *,
.cecb-bienvenue > *,
.cecb-tarifs > *,
.ci-item > *,
.ci-item > * > *,
.c-card > *,
.profils-cta > *,
.profils-cta > * > *,
.cecb-avis-entete > * {
  margin-top: 0;
  margin-bottom: 0;
}

/* Colonnes */

.wp-block-columns.cecb-2col {
  gap: 5rem;
  margin-bottom: 0;
}

.wp-block-columns.cecb-grille {
  margin-bottom: 1.2rem;
}

.cecb-grille > .wp-block-column {
  display: flex;
}

.cecb-grille > .wp-block-column > * {
  width: 100%;
}

/* En-tête de section centré */

.cecb-entete {
  text-align: center;
  margin-bottom: 3rem;
}

.cecb-entete p:not(.pill) {
  margin: 0 auto;
  line-height: 1.8;
}

/* Page d'accueil : texte d'introduction */

.cecb-intro {
  font-size: 1.06rem;
  line-height: 1.85;
}

/* Cartes de cours */

.cecb-emoji {
  font-size: 1.9rem;
  line-height: 1.2;
}

.disc-card .pill {
  align-self: flex-start;
  margin-bottom: 0;
}

.disc-card h3 {
  font-weight: 700;
  letter-spacing: -0.01em;
}

/* Cartes atouts et profils */

.cecb-atout h3 {
  font-weight: 700;
  letter-spacing: -0.01em;
}

.cecb-atout p:not(.cecb-icone) {
  line-height: 1.65;
}

.cecb-atout + .cecb-atout {
  margin-top: 9px;
}

.cecb-atout-blanc {
  background: var(--cecb-blanc);
  border-color: var(--cecb-bordure);
}

/* Carte d'accueil */

.cecb-bienvenue {
  background: var(--cecb-vert-fond);
  border-radius: 14px;
  padding: 1.6rem;
  text-align: center;
  margin-bottom: 1.1rem;
}

.cecb-grand-emoji {
  font-size: 3.4rem;
  line-height: 1.2;
}

.cecb-bienvenue-titre {
  color: var(--cecb-titre);
}

.cecb-info {
  font-weight: 500;
  color: var(--cecb-titre);
  gap: 8px;
}

.cecb-info + .cecb-info {
  margin-top: 6px;
}

.cecb-info .pill {
  margin: 0;
  white-space: nowrap;
}

.cecb-info .pill a {
  color: inherit;
  text-decoration: none;
}

/* Tarifs */

.cecb-tarifs {
  margin: 1.8rem 0 0.9rem;
}

.cecb-tarif {
  display: flex;
  justify-content: space-between;
  border-bottom: 1px solid var(--cecb-bordure);
}

.cecb-tarif + .cecb-astuce,
.cecb-tarifs .cecb-tarif:nth-last-child(2) {
  border-bottom: none;
}

.cecb-tarif strong {
  font-weight: 800;
  color: var(--cecb-cuivre);
}

.cecb-astuce {
  background: var(--cecb-vert-pale);
  border-radius: 8px;
  padding: 0.7rem 0.85rem;
  margin-top: 0.75rem !important;
  color: var(--cecb-vert);
  font-weight: 500;
}

/* Carte verte "L'équipe vous accueille" */

.cecb-accueil-vert {
  background: var(--cecb-vert);
  border-radius: 20px;
  padding: 2rem;
  text-align: center;
  color: var(--cecb-blanc);
  margin-bottom: 9px;
}

.cecb-accueil-vert h3 {
  color: var(--cecb-blanc);
  font-weight: 800;
  line-height: 1.2;
}

.cecb-accueil-vert p {
  color: rgba(255, 255, 255, 0.72);
  line-height: 1.7;
  margin: 0 auto 1.4rem;
}

.cecb-accueil-vert .cecb-grand-emoji {
  font-size: 2.4rem;
  color: var(--cecb-blanc);
  margin: 0;
}

/* Bloc des coordonnées */

.cecb-contacts {
  background: var(--cecb-blanc);
  border: 1.5px solid var(--cecb-bordure);
  border-radius: 16px;
  padding: 1.2rem;
}

.ci-item + .ci-item {
  margin-top: 7px;
}

.ci-icon {
  width: 32px;
  height: 32px;
  background: var(--cecb-vert-fond);
  border: 1px solid var(--cecb-bordure);
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.9rem;
  flex-shrink: 0;
}

.ci-lbl {
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--cecb-texte);
}

.ci-item a {
  font-weight: 500;
  color: var(--cecb-vert);
  text-decoration: none;
}

/* Bandeau vert "Une question sur votre situation ?" */

.profils-cta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 1.2rem;
  margin-top: 2rem;
}

.profils-cta h3 {
  font-weight: 800;
  margin-bottom: 0.25rem;
}

.profils-cta p {
  color: rgba(255, 255, 255, 0.7);
}

/* Avis */

.cecb-avis-entete {
  display: flex;
  align-items: baseline;
  gap: 1rem;
  flex-wrap: wrap;
  margin-bottom: 2.2rem;
}

.c-author {
  display: block;
  font-weight: 400;
  color: var(--cecb-texte);
}

.c-author strong {
  font-weight: 600;
  color: var(--cecb-titre);
}

/* FAQ (bloc Détails de WordPress) */

.cecb-faq {
  border-bottom: 1px solid var(--cecb-bordure);
  margin: 0;
}

.cecb-faq summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 0;
  cursor: pointer;
  list-style: none;
  font-weight: 500;
  color: var(--cecb-titre);
}

.cecb-faq summary::-webkit-details-marker {
  display: none;
}

.cecb-faq summary::after {
  content: "+";
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--cecb-vert-pale);
  color: var(--cecb-vert);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.88rem;
  font-weight: 600;
  flex-shrink: 0;
  transition: transform 0.28s, background 0.22s;
}

.cecb-faq[open] summary::after {
  transform: rotate(45deg);
  background: var(--cecb-vert);
  color: var(--cecb-blanc);
}

.cecb-faq p {
  line-height: 1.8;
  margin: 0;
  padding-bottom: 1rem;
}

@media (max-width: 768px) {
  .wp-block-columns.cecb-2col {
    gap: 2rem;
  }

  .cecb-entete {
    margin-bottom: 2rem;
  }
}

/* =========================================================
   13. CORRECTIF : conteneur interne des groupes
   Avec Kadence, WordPress ajoute une boîte invisible
   (wp-block-group__inner-container) dans chaque bloc Groupe.
   On la rend "transparente" pour que nos mises en page
   en ligne et en grille fonctionnent.
   ========================================================= */

.stats-row .wp-block-group__inner-container,
.stat-item .wp-block-group__inner-container,
.disc-card .wp-block-group__inner-container,
.cecb-atout .wp-block-group__inner-container,
.cecb-atout-texte .wp-block-group__inner-container,
.cecb-info .wp-block-group__inner-container,
.cecb-bienvenue .wp-block-group__inner-container,
.cecb-tarifs .wp-block-group__inner-container,
.ci-item .wp-block-group__inner-container,
.c-card .wp-block-group__inner-container,
.profils-cta .wp-block-group__inner-container,
.cecb-avis-entete .wp-block-group__inner-container,
.cecb-carte-accueil .wp-block-group__inner-container,
.cecb-contacts .wp-block-group__inner-container,
.cecb-accueil-vert .wp-block-group__inner-container,
.cecb-entete .wp-block-group__inner-container {
  display: contents;
}

.stats-row p,
.stat-item p,
.disc-card p,
.disc-card h3,
.cecb-atout p,
.cecb-atout h3,
.cecb-info p,
.cecb-bienvenue p,
.cecb-tarifs p,
.ci-item p,
.c-card p,
.profils-cta p,
.profils-cta h3,
.profils-cta .wp-block-buttons,
.cecb-avis-entete h2,
.cecb-avis-entete p,
.cecb-accueil-vert .wp-block-buttons {
  margin-top: 0;
  margin-bottom: 0;
}

.cecb-entete h2 {
  margin: 0 0 0.7rem;
}

.cecb-accueil-vert h3 {
  margin: 0.75rem 0 0.6rem;
}

.cecb-accueil-vert p:not(.cecb-grand-emoji) {
  margin: 0 auto 1.4rem;
}

/* Rythme vertical des textes dans les colonnes */

.section-hero .wp-block-column > *,
.section-w .wp-block-column > *,
.section-g .wp-block-column > *,
.section-c .wp-block-column > * {
  margin-top: 0;
  margin-bottom: 0.9rem;
}

.wp-block-column > .wp-block-buttons {
  margin-top: 1.8rem;
}

/* Titre principal de l'accueil */

.section-hero h1 {
  line-height: 1.03;
  letter-spacing: -0.04em;
  margin-bottom: 1.2rem !important;
}

.section-hero .cecb-intro {
  margin-bottom: 2rem !important;
}

.section-hero .wp-block-buttons {
  margin-top: 0 !important;
}

.section-w h2,
.section-g h2,
.section-c h2 {
  line-height: 1.08;
  letter-spacing: -0.04em;
}

/* =========================================================
   14. FINITIONS : marges forcées et taille des boutons
   ========================================================= */

.stat-item p,
.cecb-info p,
.cecb-bienvenue p,
.disc-card > .wp-block-group__inner-container > *,
.cecb-atout .wp-block-group__inner-container > *,
.ci-item .wp-block-group__inner-container > *,
.c-card .wp-block-group__inner-container > *,
.profils-cta .wp-block-group__inner-container > *,
.cecb-avis-entete .wp-block-group__inner-container > *,
.cecb-tarifs .wp-block-group__inner-container > * {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

.stat-lbl {
  margin-top: 0.4rem !important;
}

.cecb-bienvenue .cecb-grand-emoji {
  margin-bottom: 0.3rem !important;
}

.cecb-bienvenue p:last-child {
  margin-top: 0.2rem !important;
}

.cecb-atout h3 {
  margin-bottom: 0.35rem !important;
}

.cecb-tarifs .cecb-label {
  margin-bottom: 0.85rem !important;
}

.cecb-tarifs .cecb-astuce {
  margin-top: 0.75rem !important;
}

.cecb-info {
  align-items: center;
}

/* Boutons : mêmes proportions que la maquette */

.wp-block-button__link {
  padding: 12px 24px;
  font-size: 0.87rem;
  font-weight: 600;
  line-height: 1.3;
  border-radius: 50px;
  letter-spacing: -0.01em;
}

.section-hero .wp-block-button__link,
.section-g > .wp-block-group__inner-container > .wp-block-buttons .wp-block-button__link {
  padding: 14px 30px;
  font-size: 0.93rem;
}

.wp-block-buttons {
  gap: 9px;
}

@media (max-width: 480px) {
  .section-hero .wp-block-button__link {
    padding: 12px 20px;
    font-size: 0.86rem;
  }
}

/* =========================================================
   15. FINITIONS (2)
   ========================================================= */

/* Pas de bande blanche entre les sections */

.entry-content > .alignfull,
.entry-content > .wp-block-group.alignfull {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

/* En-têtes de section : pastille collée au titre */

.cecb-entete .wp-block-group__inner-container > * {
  margin-top: 0 !important;
}

.cecb-entete p.pill {
  margin-bottom: 0.9rem !important;
}

/* Espacement serré entre les lignes de la carte d'accueil et des coordonnées */

.cecb-carte-accueil .wp-block-group__inner-container > *,
.cecb-contacts .wp-block-group__inner-container > * {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

.cecb-carte-accueil .cecb-bienvenue {
  margin-bottom: 1.1rem !important;
}

.cecb-carte-accueil .cecb-info + .cecb-info {
  margin-top: 6px !important;
}

.cecb-contacts .ci-item + .ci-item {
  margin-top: 7px !important;
}

/* Taille des emojis */

.disc-card p.cecb-emoji {
  font-size: 1.9rem;
  line-height: 1.2;
}

.cecb-accueil-vert p.cecb-grand-emoji {
  font-size: 2.4rem;
  line-height: 1.2;
  max-width: none;
  margin: 0 !important;
}

.cecb-bienvenue p.cecb-grand-emoji {
  font-size: 3.4rem;
}

/* Boutons : hauteur forcée (Kadence impose ses propres marges) */

.wp-block-button .wp-block-button__link {
  line-height: 1.3 !important;
}

/* =========================================================
   16. PIED DE PAGE
   ========================================================= */

.site-footer .cecb-footer-logo {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 0.8rem;
}

.site-footer .cecb-footer-logo img {
  height: 30px;
  width: auto;
  opacity: 0.7;
}

.site-footer .cecb-footer-logo span {
  font-weight: 700;
  color: rgba(255, 255, 255, 0.75);
}

.site-footer .cecb-footer-texte {
  line-height: 1.75;
  color: rgba(255, 255, 255, 0.55);
  margin: 0;
}

.site-footer .cecb-footer-fb {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  margin-top: 0.9rem;
  padding: 5px 11px;
  border-radius: 50px;
  background: rgba(255, 255, 255, 0.07);
  color: rgba(255, 255, 255, 0.5);
  text-decoration: none;
  transition: background 0.2s, color 0.2s;
}

.site-footer .cecb-footer-fb:hover {
  background: rgba(255, 255, 255, 0.14);
  color: var(--cecb-blanc);
}

.site-footer .cecb-footer-titre {
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: rgba(255, 255, 255, 0.3);
  margin: 0 0 0.8rem;
}

.site-footer .cecb-footer-liens {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  color: rgba(255, 255, 255, 0.55);
}

.site-footer .cecb-footer-liens li {
  margin: 0;
}

.site-footer .cecb-footer-liens a {
  color: rgba(255, 255, 255, 0.6);
  text-decoration: none;
  transition: color 0.15s;
}

.site-footer .cecb-footer-liens a:hover {
  color: var(--cecb-blanc);
}

/* Ligne du bas (copyright) */

.site-footer .footer-html {
  color: rgba(255, 255, 255, 0.3);
}

.site-footer .footer-html p {
  margin: 0;
}

.site-footer .footer-html a {
  text-decoration: none;
}

.site-footer .footer-html a:hover {
  color: var(--cecb-blanc);
}

/* =========================================================
   17. PAGES INTÉRIEURES
   ========================================================= */

.cecb-pills .wp-block-group__inner-container,
.plan-table .wp-block-group__inner-container,
.plan-row .wp-block-group__inner-container,
.cecb-photo-vide .wp-block-group__inner-container,
.cecb-carte .wp-block-group__inner-container,
.cecb-faq-bloc .wp-block-group__inner-container,
.stats-grille .wp-block-group__inner-container {
  display: contents;
}

/* Bandeau de titre centré */

.cecb-hero-centre {
  margin-bottom: 0;
}

.cecb-hero-centre h1 {
  margin: 0 0 1rem !important;
}

.cecb-hero-centre .cecb-intro {
  margin: 0 auto !important;
}

.section-hero .cecb-entete p.pill {
  margin-bottom: 1.1rem !important;
}

.cecb-pills {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 1.6rem;
}

.cecb-pills p.pill {
  margin: 0 !important;
  padding: 6px 14px;
}

.cecb-entete-large p:not(.pill) {
  max-width: 680px !important;
  margin-bottom: 0.8rem !important;
}

.cecb-cta-final {
  margin-bottom: 0;
}

.cecb-cta-final .wp-block-buttons {
  margin-top: 1.6rem !important;
}

/* Emplacement photo */

.cecb-photo-vide {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: var(--cecb-vert-fond);
  color: var(--cecb-texte);
  text-align: center;
}

.cecb-photo-vide p {
  margin: 0 !important;
}

.cecb-photo-grande {
  aspect-ratio: 5 / 4;
  border-radius: 24px;
}

.cecb-galerie-titre {
  font-size: 1rem;
  font-weight: 700;
  margin: 2.2rem 0 0.9rem !important;
}

.cecb-galerie-titre:first-child {
  margin-top: 0 !important;
}

/* Carte blanche générique */

.cecb-carte {
  background: var(--cecb-blanc);
  border: 1.5px solid var(--cecb-bordure);
  border-radius: 18px;
  padding: 1.5rem;
  height: 100%;
}

.cecb-carte-centre {
  text-align: center;
  margin-top: 2.5rem;
  padding: 2.2rem;
}

.cecb-carte-centre h3 {
  margin: 0 0 0.5rem !important;
}

.cecb-carte-centre p {
  margin: 0 0 1.3rem !important;
}

.cecb-carte .cecb-label {
  margin-bottom: 0.85rem !important;
}

.cecb-label-espace {
  margin-top: 1.4rem !important;
}

.cecb-carte .wp-block-buttons {
  margin: 0 !important;
}

.cecb-check {
  margin: 0 0 0.4rem !important;
}

.cecb-form-emplacement {
  min-height: 320px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--cecb-texte);
  border-style: dashed;
}

/* Notes */

.cecb-note {
  background: var(--cecb-cuivre-pale);
  border-radius: 10px;
  padding: 0.8rem 1rem;
  color: var(--cecb-titre);
  margin: 0.4rem 0 1.2rem !important;
}

.cecb-note-centre {
  text-align: center;
  background: transparent;
  margin-top: 1rem !important;
}

/* Moniteurs */

.cecb-role {
  font-size: 0.72rem !important;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--cecb-cuivre);
}

/* Tableau du samedi matin */

.plan-table {
  background: var(--cecb-blanc);
  border: 1.5px solid var(--cecb-bordure);
  border-radius: 18px;
  overflow: hidden;
  margin-bottom: 2.5rem;
}

.plan-row {
  display: grid;
  grid-template-columns: 130px 2fr 1.2fr auto;
  align-items: center;
  gap: 1rem;
  padding: 1rem 1.4rem;
  border-bottom: 1px solid var(--cecb-bordure);
}

.plan-row:last-child {
  border-bottom: none;
}

.plan-row p {
  margin: 0 !important;
  line-height: 1.5;
}

.plan-row strong {
  color: var(--cecb-titre);
}

.plan-row .pill {
  justify-self: start;
}

.plan-head {
  background: var(--cecb-vert-fond);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  padding-top: 0.7rem;
  padding-bottom: 0.7rem;
}

.plan-heure {
  font-weight: 700;
  color: var(--cecb-vert);
}

/* Page FAQ : blocs par thème et chiffres en grille */

.cecb-faq-bloc {
  background: var(--cecb-blanc);
  border: 1.5px solid var(--cecb-bordure);
  border-radius: 18px;
  padding: 1.3rem 1.5rem 0.5rem;
  margin-bottom: 1rem !important;
}

.cecb-faq-bloc h2 {
  font-weight: 700;
  letter-spacing: -0.02em;
  margin: 0 0 0.3rem !important;
}

.cecb-faq-bloc .cecb-faq:last-child {
  border-bottom: none;
}

.stats-grille {
  display: grid;
  grid-template-columns: 1fr 1fr;
}

@media (max-width: 768px) {
  .plan-row {
    grid-template-columns: 1fr;
    gap: 0.3rem;
  }

  .plan-head {
    display: none;
  }

  .stats-grille .stat-item:nth-child(odd) {
    border-right: 1.5px solid var(--cecb-bordure) !important;
  }
}

/* =========================================================
   18. TITRES : hauteur de ligne resserrée partout
   ========================================================= */

.entry-content h1,
.editor-styles-wrapper h1 {
  line-height: 1.03;
  letter-spacing: -0.04em;
  margin-bottom: 1.2rem;
}

.entry-content h2,
.editor-styles-wrapper h2 {
  line-height: 1.08;
  letter-spacing: -0.04em;
}

.entry-content h3,
.editor-styles-wrapper h3 {
  line-height: 1.3;
}

/* =========================================================
   19. LARGEUR DU CONTENU DANS LES SECTIONS
   Le fond reste pleine largeur, le contenu reste centré.
   ========================================================= */

.section-w > *,
.section-g > *,
.section-c > *,
.section-hero > * {
  margin-left: auto;
  margin-right: auto;
}

/* =========================================================
   20. CORRECTIF : centrage des bandeaux de titre
   ========================================================= */

.cecb-hero-centre h1,
.cecb-hero-centre h2 {
  margin-left: auto !important;
  margin-right: auto !important;
}

.cecb-entete > *,
.cecb-hero-centre > * {
  margin-left: auto;
  margin-right: auto;
}

/* =========================================================
   21. PAS DE MARGE ENTRE LES SECTIONS NI AVANT LE PIED DE PAGE
   ========================================================= */

.entry-content > .wp-block-group,
.entry-content > .alignfull {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

.entry-content > *:last-child {
  margin-bottom: 0 !important;
}

.entry-content {
  padding-bottom: 0 !important;
}

/* =========================================================
   22. FAQ : survol, ouverture et apparition de la réponse
   ========================================================= */

.cecb-faq {
  border-radius: 12px;
  transition: background 0.25s;
  padding: 0 0.9rem;
  margin-left: -0.9rem !important;
  margin-right: -0.9rem !important;
}

.cecb-faq:hover {
  background: rgba(234, 244, 237, 0.55);
}

.cecb-faq[open] {
  background: var(--cecb-vert-fond);
  border-bottom-color: transparent;
}

.cecb-faq summary {
  transition: color 0.2s;
}

.cecb-faq summary:hover {
  color: var(--cecb-vert);
}

.cecb-faq summary:hover::after {
  background: var(--cecb-vert-clair);
  transform: scale(1.08);
}

.cecb-faq[open] summary:hover::after {
  transform: rotate(45deg) scale(1.08);
}

@keyframes cecb-ouvre-reponse {
  from {
  opacity: 0;
  transform: translateY(-6px);
  }
  to {
  opacity: 1;
  transform: none;
  }
}

.cecb-faq[open] p {
  animation: cecb-ouvre-reponse 0.3s ease;
}

@media (prefers-reduced-motion: reduce) {
  .cecb-faq[open] p {
    animation: none;
  }
}

/* =========================================================
   23. CHIFFRES CLÉS EN GRILLE (bandeau de la FAQ)
   ========================================================= */

.stats-grille {
  margin: 0;
  padding: 0;
  border-top: none;
}

.stats-grille .stat-item {
  border: 1.5px solid var(--cecb-bordure) !important;
  background: var(--cecb-blanc);
}

.stats-grille .stat-item-vert {
  background: var(--cecb-vert-fond);
  border-color: var(--cecb-vert-clair) !important;
}

.stats-grille .stat-item-vert .stat-val {
  color: var(--cecb-vert);
}

.stats-grille .stat-item-orange {
  background: var(--cecb-orange-fond);
}

/* Hauteurs égales dans la grille de chiffres */

.stats-grille {
  align-items: stretch;
}

.stats-grille .stat-item {
  gap: 0.25rem;
}

/* Hauteur identique, quelle que soit la carte */

.stats-grille > * {
  height: 100%;
  margin: 0 !important;
}

/* Rangées de hauteur égale dans la grille de chiffres */

.stats-grille > *,
.stats-grille .stat-item {
  align-self: stretch;
}

/* Hauteur fixe des 4 cartes de chiffres */

.stats-grille .stat-item {
  box-sizing: border-box;
}

/* ============================================
   CECB : échelle unique des tailles et espacements
   ============================================ */

:root {
  --cecb-section-y: clamp(4rem, 8vw, 6rem);
  --cecb-titre-section: clamp(2rem, 4vw, 3rem);
  --cecb-accroche: clamp(1.15rem, 1.8vw, 1.3rem);
  --cecb-taille-texte: 1.0625rem;
  --cecb-titre-carte: 1.15rem;
  --cecb-texte-carte: 1rem;
  --cecb-gris: #4a6450;
}

/* Espacements identiques pour toutes les sections */

body .section-w,
body .section-g,
body .section-c {
  padding-top: var(--cecb-section-y) !important;
  padding-bottom: var(--cecb-section-y) !important;
}

/* Titres de section */

body .section-w h2.wp-block-heading,
body .section-g h2.wp-block-heading {
  font-size: var(--cecb-titre-section);
  line-height: 1.15;
}

body .cecb-entete {
  margin-bottom: 2.5rem;
}

/* Textes d'introduction et texte courant */

body .cecb-intro,
body .cecb-cta-final p {
  font-size: var(--cecb-accroche);
  line-height: 1.7;
}

/* Uniquement les paragraphes posés directement dans une colonne :
   les cartes, chiffres et lignes d'info gardent leur propre taille */

body .cecb-2col > .wp-block-column > p:not(.pill):not(.cecb-intro) {
  font-size: var(--cecb-taille-texte);
  line-height: 1.8;
}

/* Blocs sur mesure (philosophie et frise) alignés sur la même échelle */

body .cecb-philo-lead {
  font-size: calc(var(--cecb-accroche) * 1.15);
}

body .cecb-philo-text {
  font-size: var(--cecb-taille-texte);
}

body .cecb-philo-card-title,
body .cecb-tl-title {
  font-size: var(--cecb-titre-carte);
}

body .cecb-philo-card p,
body .cecb-tl-card p {
  font-size: var(--cecb-texte-carte);
}

/* Cartes des moniteurs : seules les cartes qui contiennent un rôle (cecb-role)
   sont concernées, les cartes de cours gardent leur style d'origine */

body .cecb-grille {
  gap: 1.2rem;
}

body .cecb-grille + .cecb-grille {
  margin-top: 1.2rem;
}

body .cecb-grille > .wp-block-column {
  display: flex;
}

body .disc-card:has(.cecb-role) {
  flex: 1;
  text-align: center;
  background: var(--cecb-creme);
  border: 1.5px solid var(--cecb-bordure);
  border-radius: 20px;
  padding: 2rem 1.8rem;
  transition: transform .22s, box-shadow .22s, border-color .22s;
}

body .disc-card:has(.cecb-role):hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 28px rgba(45,106,63,.12);
  border-color: var(--cecb-vert-clair);
}

body .disc-card:has(.cecb-role) .cecb-emoji {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: var(--cecb-vert-pale);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.8rem;
  margin: 0 auto 1rem;
  transition: transform .25s;
}

body .disc-card:has(.cecb-role):hover .cecb-emoji {
  transform: scale(1.08) rotate(-4deg);
}

body .disc-card:has(.cecb-role) h3 {
  font-size: var(--cecb-titre-carte);
  margin: 0 0 .3rem;
}

body .disc-card .cecb-role {
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  margin: 0 0 .9rem;
}

body .disc-card:has(.cecb-role) p:not(.cecb-emoji):not(.cecb-role) {
  font-size: var(--cecb-texte-carte);
  line-height: 1.65;
  color: var(--cecb-gris);
  margin: 0;
}

/* ============================================
   CECB : accessibilité et robustesse
   ============================================ */

/* Contour visible au clavier (touche Tab) */

a:focus-visible,
button:focus-visible,
summary:focus-visible,
.wp-block-button__link:focus-visible {
  outline: 2px solid var(--cecb-cuivre);
  outline-offset: 3px;
  border-radius: 6px;
}

/* Pas de défilement animé si les animations sont désactivées */

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
}

/* Carte animée à l'apparition ET au survol : le survol reste actif */

.cecb-js .hov.vis:hover {
  transform: translateY(-2px);
}

/* Pied de page : textes discrets mais lisibles */

.site-footer .cecb-footer-titre,
.site-footer .footer-html {
  color: rgba(255, 255, 255, 0.6);
}

.site-footer .footer-html a {
  color: rgba(255, 255, 255, 0.75);
}

/* Chiffres clés : hauteur minimale plutôt que fixe (le texte ne déborde jamais) */

@media (max-width: 600px) {
  .stats-grille .stat-item {
    height: auto !important;
  }
}

/* =========================================================
   24. AGRANDISSEMENT : textes plus grands, contenu plus large
   Ce bloc passe après tout le reste et remplace les anciennes
   valeurs. Pour régler la largeur, modifier --cecb-largeur ;
   pour les marges sur les côtés, --cecb-marge-cote.
   ========================================================= */

:root {
  --cecb-largeur: 1240px;
  --cecb-marge-cote: clamp(1.2rem, 4vw, 2.5rem);
}

/* Largeur du contenu dans les sections */

.section-w,
.section-g,
.section-c,
.section-hero {
  padding-left: var(--cecb-marge-cote);
  padding-right: var(--cecb-marge-cote);
}

.section-w > *,
.section-g > *,
.section-c > *,
.section-hero > * {
  max-width: var(--cecb-largeur);
}

.wp-block-columns.cecb-grille {
  gap: 1.2rem;
}

.cecb-intro {
  max-width: 540px;
}

.cecb-entete p:not(.pill) {
  max-width: 620px;
  font-size: 1.05rem;
}

.cecb-hero-centre h1,
.cecb-hero-centre h2 {
  max-width: 1000px;
}

.cecb-hero-centre .cecb-intro {
  max-width: 680px;
}

.cecb-accueil-vert p {
  max-width: 320px;
  font-size: 0.95rem;
}

.site-footer .cecb-footer-texte {
  max-width: 280px;
}

/* Petits titres et pastilles */

.cecb-label {
  font-size: 0.78rem;
}

.pill {
  font-size: 0.74rem;
}

.disc-card .pill {
  font-size: 0.7rem;
}

.cecb-pills p.pill {
  font-size: 0.8rem;
}

/* Cartes de cours */

.disc-card p {
  font-size: 0.95rem;
}

.disc-card h3 {
  font-size: 1.1rem;
}

.cecb-horaire {
  font-size: 0.88rem;
}

/* Cartes atouts, accueil, coordonnées */

.cecb-atout h3 {
  font-size: 1.05rem;
}

.cecb-atout p:not(.cecb-icone) {
  font-size: 0.95rem;
}

.cecb-bienvenue-titre {
  font-size: 1.05rem;
}

.cecb-bienvenue p:last-child {
  font-size: 0.9rem;
}

.cecb-info {
  font-size: 0.9rem;
}

.ci-lbl {
  font-size: 0.7rem;
}

.ci-item a {
  font-size: 0.98rem;
}

/* Chiffres clés */

.stats-grille .stat-val {
  font-size: 2.1rem;
}

/* Avis */

.c-txt {
  font-size: 0.97rem;
}

.c-author {
  font-size: 0.8rem;
}

.c-author strong {
  font-size: 0.92rem;
}

.cecb-avis-entete p {
  font-size: 0.95rem;
}

/* Tarifs, notes, listes */

.cecb-tarif {
  font-size: 0.98rem;
}

.cecb-astuce {
  font-size: 0.9rem;
}

.cecb-note {
  font-size: 0.95rem;
}

.cecb-check {
  font-size: 0.98rem;
}

.cecb-photo-vide {
  font-size: 0.9rem;
}

/* Bandeaux verts */

.profils-cta h3 {
  font-size: 1.15rem;
}

.profils-cta p {
  font-size: 0.95rem;
}

.cecb-accueil-vert h3 {
  font-size: 1.5rem;
}

/* FAQ */

.cecb-faq summary {
  font-size: 1rem;
}

.cecb-faq p {
  font-size: 0.95rem;
}

.cecb-faq-bloc h2 {
  font-size: 1.2rem !important;
}

/* Tableau du samedi matin */

.plan-row {
  font-size: 0.95rem;
}

.plan-head {
  font-size: 0.74rem;
}

/* Boutons */

.wp-block-button .wp-block-button__link {
  padding: 13px 26px !important;
  font-size: 0.95rem !important;
}

.section-hero .wp-block-button .wp-block-button__link {
  padding: 15px 32px !important;
  font-size: 1rem !important;
}

.main-navigation .primary-menu-container > ul > li.menu-contact > a,
.header-navigation ul li.menu-contact > a {
  font-size: 0.86rem !important;
  padding: 8px 18px !important;
}

/* Pied de page */

.site-footer .cecb-footer-logo span {
  font-size: 0.95rem;
}

.site-footer .cecb-footer-texte {
  font-size: 0.86rem;
}

.site-footer .cecb-footer-fb {
  font-size: 0.8rem;
}

.site-footer .cecb-footer-titre {
  font-size: 0.7rem;
}

.site-footer .cecb-footer-liens {
  font-size: 0.88rem;
}

.site-footer .footer-html {
  font-size: 0.78rem;
}

@media (max-width: 480px) {
  .section-hero .wp-block-button .wp-block-button__link {
    padding: 13px 22px !important;
    font-size: 0.95rem !important;
  }
}

/* =========================================================
   25. CORRECTIFS D'AFFICHAGE ET RESPONSIVE
   ========================================================= */

/* Ligne d'info (📅, 💰...) : le texte ne se coupe jamais,
   c'est la pastille qui passe à la ligne si la place manque */

.cecb-info {
  flex-wrap: wrap;
  row-gap: 6px;
}

.cecb-info p:first-child {
  white-space: nowrap;
  flex-shrink: 0;
}

.cecb-info .pill {
  margin-left: auto !important;
}

/* Chiffres clés : jamais de mot coupé en deux */

.stat-val,
.stat-lbl,
.stat-item p {
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}

.stat-val {
  font-size: clamp(1.6rem, 2.4vw, 2rem);
}

.stat-lbl {
  font-size: clamp(0.78rem, 1vw, 0.85rem);
  line-height: 1.35;
}

.stat-item {
  padding: 0 0.8rem;
}

/* Écrans moyens (tablette, petit portable) : chiffres en 2 x 2 */

@media (max-width: 1100px) {
  .stats-row {
    grid-template-columns: 1fr 1fr;
  }

  .stat-item {
    border-right: none;
    border-bottom: 1px solid var(--cecb-bordure);
    padding: 0.9rem 0.6rem !important;
  }

  .stat-item:nth-child(odd) {
    border-right: 1px solid var(--cecb-bordure);
  }

  .stat-item:last-child,
  .stat-item:nth-last-child(2):nth-child(odd) {
    border-bottom: none;
  }
}

/* Cartes "philosophie" et profils : blanches sur fond vert
   pour bien se détacher de la section */

.section-g .cecb-atout:not(.cecb-atout-orange) {
  background: var(--cecb-blanc);
  border-color: var(--cecb-bordure);
  box-shadow: 0 2px 14px rgba(45, 106, 63, 0.06);
}

.section-g .cecb-atout-orange {
  border-color: #f5dfc2;
  box-shadow: 0 2px 14px rgba(176, 116, 52, 0.07);
}

.section-g .cecb-atout:not(.cecb-atout-orange) .cecb-icone {
  background: var(--cecb-vert-pale);
}

.cecb-atout {
  transition: box-shadow 0.2s, border-color 0.2s, transform 0.2s;
}

.section-g .cecb-atout:hover {
  border-color: var(--cecb-vert-clair);
  box-shadow: 0 8px 24px rgba(45, 106, 63, 0.1);
}

/* Mobile */

@media (max-width: 600px) {
  .cecb-atout {
    padding: 1.1rem;
  }

  .cecb-info {
    padding: 0.6rem 0.75rem;
  }

  .cecb-carte-accueil {
    padding: 1.3rem;
  }

  .profils-cta {
    padding: 1.4rem;
  }

  .profils-cta .wp-block-buttons {
    width: 100%;
  }
}

/* =========================================================
   26. CHIFFRES CLÉS (accueil) : deux versions au choix
   Version A (par défaut) : un panneau blanc, séparateurs fins
   Version B : ajouter la classe stats-cartes sur le groupe
   stats-row pour avoir 4 petites cartes séparées
   ========================================================= */

/* Base commune : chaque chiffre parfaitement centré */

.stats-row {
  height: auto !important;
  align-self: flex-start;
  grid-auto-rows: auto;
  align-items: stretch;
  align-content: center;
}

.stats-row > :empty,
.stats-row > .wp-block-group__inner-container > :empty {
  display: none;
}

.stats-row .stat-item {
  margin: 0 !important;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  position: relative;
  border-radius: 0;
}

.stats-row .stat-item > .wp-block-group__inner-container {
  display: contents;
}

.stats-row .stat-val {
  display: inline-block;
  transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.stats-row .stat-lbl {
  margin-top: 0.35rem !important;
  font-weight: 600;
}

/* Petite barre d'accent au-dessus du chiffre, qui s'allonge au survol */

.stats-row .stat-item::before {
  content: "";
  display: block;
  width: 22px;
  height: 3px;
  margin: 0 auto 0.7rem;
  border-radius: 3px;
  background: var(--cecb-cuivre);
  opacity: 0.55;
  transition: width 0.3s, opacity 0.3s;
}

.stats-row .stat-item:nth-child(even)::before {
  background: var(--cecb-vert);
}

.stats-row .stat-item:hover::before {
  width: 42px;
  opacity: 1;
}

.stats-row .stat-item:hover .stat-val {
  transform: scale(1.07);
}

/* ----- Version A : panneau ----- */

.stats-row:not(.stats-cartes) {
  background: var(--cecb-blanc);
  border: 1px solid var(--cecb-bordure);
  border-radius: 22px;
  padding: 1.5rem 0.4rem;
  box-shadow: 0 10px 34px rgba(45, 106, 63, 0.07);
}

.stats-row:not(.stats-cartes) .stat-item {
  padding: 0.3rem 0.8rem !important;
  border: none !important;
}

/* Séparateurs verticaux qui s'estompent aux extrémités */

.stats-row:not(.stats-cartes) .stat-item:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 12%;
  bottom: 12%;
  right: 0;
  width: 1px;
  background: linear-gradient(to bottom, transparent, var(--cecb-bordure) 25%, var(--cecb-bordure) 75%, transparent);
}

.stats-row:not(.stats-cartes) .stat-val {
  background: linear-gradient(135deg, #c98a45 0%, var(--cecb-cuivre) 45%, #8a5520 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

/* ----- Version B : cartes séparées ----- */

.stats-row.stats-cartes {
  background: none;
  border: none !important;
  box-shadow: none;
  padding: 0 !important;
  gap: 12px;
}

.stats-row.stats-cartes .stat-item {
  background: var(--cecb-blanc);
  border: 1.5px solid var(--cecb-bordure) !important;
  border-radius: 18px;
  padding: 1.2rem 0.6rem !important;
  overflow: hidden;
  transition: transform 0.25s, box-shadow 0.25s, border-color 0.25s;
}

.stats-row.stats-cartes .stat-item:hover {
  transform: translateY(-4px);
  border-color: var(--cecb-vert-clair) !important;
  box-shadow: 0 12px 28px rgba(45, 106, 63, 0.1);
}

.stats-row.stats-cartes .stat-item:nth-child(even) .stat-val {
  color: var(--cecb-vert);
}

/* Tablette et mobile : grille 2 x 2 */

@media (max-width: 1100px) {
  .stats-row:not(.stats-cartes) {
    padding: 0.4rem;
  }

  .stats-row:not(.stats-cartes) .stat-item {
    padding: 1rem 0.6rem !important;
  }

  .stats-row:not(.stats-cartes) .stat-item:not(:last-child)::after {
    display: none;
  }

  .stats-row:not(.stats-cartes) .stat-item:nth-child(odd)::after {
    display: block;
  }

  .stats-row:not(.stats-cartes) .stat-item:nth-child(-n+2) {
    border-bottom: 1px solid var(--cecb-bordure) !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .stats-row .stat-item:hover,
  .stats-row .stat-item:hover .stat-val {
    transform: none;
  }
}

/* =========================================================
   27. TÉMOIGNAGES
   Grille : groupe cecb-temoignages
   Carte : groupe c-card cecb-temoignage
   Texte : groupe cecb-temoignage-texte (un ou plusieurs paragraphes)
   Auteur : paragraphe c-author
   Les textes longs sont repliés, avec un bouton "Lire la suite".
   ========================================================= */

.cecb-temoignages {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr));
  gap: 1.2rem;
  align-items: stretch;
}

.cecb-temoignages > .wp-block-group__inner-container {
  display: contents;
}

.cecb-temoignages > * {
  margin: 0 !important;
}

.c-card.cecb-temoignage {
  position: relative;
  padding: 2.2rem 1.6rem 1.4rem;
  gap: 1rem;
  transition: box-shadow 0.25s, border-color 0.25s, transform 0.25s;
}

.c-card.cecb-temoignage:hover {
  border-color: var(--cecb-vert-clair);
  box-shadow: 0 10px 30px rgba(45, 106, 63, 0.1);
  transform: translateY(-3px);
}

/* Grand guillemet décoratif */

.c-card.cecb-temoignage::before {
  content: "\201C";
  position: absolute;
  top: 0.3rem;
  left: 1.3rem;
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 4.2rem;
  line-height: 1;
  color: var(--cecb-vert-clair);
  pointer-events: none;
}

/* Texte du témoignage */

.cecb-temoignage-texte {
  flex: 1;
  font-size: 0.97rem;
  line-height: 1.75;
  color: var(--cecb-texte);
  font-style: italic;
  position: relative;
}

.c-card .cecb-temoignage-texte p {
  font-size: inherit;
  line-height: inherit;
}

.c-card .cecb-temoignage-texte p + p {
  margin-top: 0.75em !important;
}

/* Texte replié (uniquement si le script est actif) */

.cecb-js .cecb-temoignage-texte:not(.ouvert) {
  overflow: hidden;
}

.cecb-js .cecb-temoignage-texte.est-long:not(.ouvert) {
  -webkit-mask-image: linear-gradient(to bottom, #000 60%, transparent 100%);
  mask-image: linear-gradient(to bottom, #000 60%, transparent 100%);
}

.cecb-js .cecb-temoignage-texte.ouvert {
  max-height: none;
}

/* Bouton Lire la suite */

.cecb-lire-suite {
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: -0.3rem;
  padding: 6px 14px;
  border: 1.5px solid var(--cecb-vert-clair);
  border-radius: 50px;
  background: var(--cecb-vert-fond);
  color: var(--cecb-vert);
  font-family: inherit;
  font-size: 0.82rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.2s, color 0.2s, border-color 0.2s;
}

.cecb-lire-suite::after {
  content: "\2193";
  transition: transform 0.25s;
}

.cecb-lire-suite[aria-expanded="true"]::after {
  transform: rotate(180deg);
}

.cecb-lire-suite:hover {
  background: var(--cecb-vert);
  border-color: var(--cecb-vert);
  color: var(--cecb-blanc);
}

/* Auteur : pastille ronde + prénom + chien */

.c-card.cecb-temoignage .c-author {
  display: flex;
  align-items: center;
  gap: 10px;
  padding-top: 0.9rem;
  border-top: 1px solid var(--cecb-bordure);
  font-size: 0.82rem;
  line-height: 1.4;
  font-style: normal;
}

.c-card.cecb-temoignage .c-author::before {
  content: "\1F43E";
  flex-shrink: 0;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: var(--cecb-vert-pale);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
}

.c-card.cecb-temoignage .c-author strong {
  display: block;
  font-size: 0.95rem;
}

@media (max-width: 600px) {
  .c-card.cecb-temoignage {
    padding: 2rem 1.2rem 1.2rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .c-card.cecb-temoignage:hover {
    transform: none;
  }
}

/* =========================================================
   28. CHIFFRES CLÉS EN GRILLE (page FAQ) : alignement et style
   ========================================================= */

.stats-grille {
  height: auto !important;
  align-self: flex-start;
  align-content: start;
  grid-auto-rows: 1fr;
  gap: 12px;
}

.stats-grille .stat-item {
  margin: 0 !important;
  height: auto !important;
  min-height: 130px;
  align-self: stretch;
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 1.3rem 0.8rem !important;
  border-radius: 18px;
  transition: transform 0.25s, box-shadow 0.25s;
}

.stats-grille .stat-item > .wp-block-group__inner-container {
  display: contents;
}

.stats-grille .stat-item p {
  margin: 0 !important;
}

.stats-grille .stat-lbl {
  margin-top: 0.3rem !important;
  font-weight: 600;
}

/* Barre d'accent en haut de chaque carte */

.stats-grille .stat-item::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  width: 36px;
  height: 4px;
  border-radius: 0 0 4px 4px;
  transform: translateX(-50%);
  background: var(--cecb-cuivre);
  transition: width 0.3s;
}

.stats-grille .stat-item-vert::before {
  background: var(--cecb-vert);
}

.stats-grille .stat-item-orange {
  border-color: #f0d6b4 !important;
}

.stats-grille .stat-item:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 28px rgba(45, 106, 63, 0.1);
}

.stats-grille .stat-item:hover::before {
  width: 64px;
}

.stats-grille .stat-val {
  transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.stats-grille .stat-item:hover .stat-val {
  transform: scale(1.07);
}

@media (max-width: 600px) {
  .stats-grille .stat-item {
    min-height: 110px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .stats-grille .stat-item:hover,
  .stats-grille .stat-item:hover .stat-val {
    transform: none;
  }
}

/* =========================================================
   29. ALIGNEMENTS
   WordPress centre automatiquement le contenu des groupes
   ("mise en page contrainte") et ajoute des marges entre
   blocs : on neutralise cela dans nos composants.
   ========================================================= */

.plan-row *,
.cecb-info *,
.ci-item *,
.cecb-atout *,
.cecb-tarifs *,
.c-card * {
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.plan-row > *,
.plan-row > .wp-block-group__inner-container > * {
  margin: 0 !important;
  max-width: none !important;
}

.plan-row .wp-block-group {
  max-width: none !important;
  text-align: left;
}

.plan-row .wp-block-group p + p {
  margin-top: 0.15rem !important;
}

.plan-head > *,
.plan-head > .wp-block-group__inner-container > * {
  text-align: left;
}

/* =========================================================
   30. COTISATION : bloc plus visible
   ========================================================= */

.cecb-tarifs {
  background: var(--cecb-blanc);
  border: 2px solid var(--cecb-vert-clair);
  border-radius: 20px;
  padding: 1.5rem 1.6rem;
  box-shadow: 0 14px 40px rgba(45, 106, 63, 0.12);
  position: relative;
  overflow: hidden;
}

.cecb-tarifs::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 5px;
  background: linear-gradient(90deg, var(--cecb-vert), #6fb584);
}

.cecb-tarifs .cecb-label {
  color: var(--cecb-vert);
  font-size: 0.8rem;
}

.cecb-tarif {
  padding: 0.8rem 0 !important;
  align-items: baseline;
  gap: 1rem;
}

.cecb-tarif strong {
  font-size: 1.25rem;
  white-space: nowrap;
}

.cecb-tarifs .cecb-label + .cecb-tarif strong {
  font-size: 1.45rem;
}

.cecb-tarifs .cecb-astuce {
  display: flex;
  align-items: center;
  gap: 8px;
  background: var(--cecb-vert-pale);
  border: 1px dashed var(--cecb-vert-clair);
  font-size: 0.92rem;
  font-weight: 600;
}

/* =========================================================
   31. ÉTAPES "COMMENT S'INSCRIRE"
   Ajouter la classe cecb-etapes sur la colonne qui contient
   les 4 étapes (Colonne > Avancé > Classes CSS).
   ========================================================= */

.cecb-etapes .cecb-atout {
  position: relative;
  align-items: center;
  gap: 16px;
  margin: 0 0 14px !important;
  padding: 1.1rem 1.3rem;
  background: var(--cecb-blanc);
  border: 1.5px solid var(--cecb-bordure);
  transition: transform 0.25s, box-shadow 0.25s, border-color 0.25s;
}

.cecb-etapes .cecb-atout-orange {
  background: var(--cecb-orange-fond);
  border-color: #f0d6b4;
}

.cecb-etapes .cecb-atout:hover {
  transform: translateX(4px);
  border-color: var(--cecb-vert-clair);
  box-shadow: 0 8px 22px rgba(45, 106, 63, 0.08);
}

/* Numéro dans une pastille ronde verte */

.cecb-etapes .cecb-icone {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--cecb-vert);
  color: var(--cecb-blanc);
  font-size: 1.1rem;
  font-weight: 800;
  line-height: 1;
  box-shadow: 0 4px 12px rgba(45, 106, 63, 0.25);
}

.cecb-etapes .cecb-atout-orange .cecb-icone {
  background: var(--cecb-cuivre);
  box-shadow: 0 4px 12px rgba(176, 116, 52, 0.28);
}

/* Petit trait pointillé qui relie les étapes */

.cecb-etapes .cecb-atout:not(.cecb-atout-orange)::after {
  content: "";
  position: absolute;
  left: calc(1.3rem + 21px);
  bottom: -16px;
  height: 18px;
  border-left: 2px dashed var(--cecb-vert-clair);
}

.cecb-etapes .cecb-atout h3 {
  margin-bottom: 0.15rem !important;
}

/* Colonne des coordonnées : bouton aligné sur la carte */

.cecb-contacts ~ .wp-block-buttons {
  margin-top: 1.2rem !important;
}

.cecb-contacts ~ .wp-block-buttons .wp-block-button {
  width: 100%;
}

.cecb-contacts ~ .wp-block-buttons .wp-block-button__link {
  display: flex;
  justify-content: center;
  width: 100%;
}

.ci-item {
  align-items: center;
}

.ci-item .ci-icon {
  width: 38px;
  height: 38px;
  font-size: 1rem;
}

@media (max-width: 600px) {
  .cecb-etapes .cecb-atout {
    padding: 1rem;
    gap: 12px;
  }

  .cecb-etapes .cecb-atout:not(.cecb-atout-orange)::after {
    left: calc(1rem + 21px);
  }

  .cecb-tarifs {
    padding: 1.3rem 1.1rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cecb-etapes .cecb-atout:hover {
    transform: none;
  }
}

/* =========================================================
   32. TÉMOIGNAGES : finitions
   ========================================================= */

/* Pas d'espace vide en bas des cartes, auteurs alignés en bas */

.cecb-temoignages .c-card.cecb-temoignage {
  height: auto !important;
  margin: 0 !important;
  display: flex;
  flex-direction: column;
}

.cecb-temoignages .c-card.cecb-temoignage > .wp-block-group__inner-container {
  display: contents;
}

.cecb-temoignages .c-card.cecb-temoignage .c-author {
  margin-top: auto !important;
  margin-bottom: 0 !important;
}

.cecb-temoignages .cecb-temoignage-texte {
  flex: 0 1 auto;
  margin: 0 !important;
}

/* Hauteur visible plus généreuse : seul le très long texte est replié */

.cecb-js .cecb-temoignage-texte:not(.ouvert) {
  max-height: 16em;
}

/* Bouton Lire la suite : taille fixe, quel que soit le style du thème */

.c-card .cecb-lire-suite {
  margin: 0 0 0.2rem !important;
  padding: 8px 16px !important;
  min-height: 36px;
  height: auto;
  line-height: 1.2 !important;
  font-size: 0.85rem !important;
  text-transform: none;
  letter-spacing: 0;
  box-shadow: none;
}

.cecb-lire-suite[hidden] {
  display: none !important;
}

/* =========================================================
   33. MENU : texte plus grand
   Pour ajuster, modifier --cecb-menu-taille
   ========================================================= */

:root {
  --cecb-menu-taille: 1.02rem;
}

.main-navigation .primary-menu-container > ul > li.menu-item > a,
.header-navigation .header-menu-container > ul > li.menu-item > a {
  font-size: var(--cecb-menu-taille);
  font-weight: 500;
}

.main-navigation .primary-menu-container > ul > li.menu-item.menu-contact > a,
.header-navigation ul li.menu-contact > a {
  font-size: calc(var(--cecb-menu-taille) - 0.08rem) !important;
  padding: 9px 20px !important;
}

/* Menu mobile */

.mobile-navigation ul li > a,
.mobile-navigation ul li .drawer-nav-drop-wrap > a {
  font-size: 1.12rem;
  padding-top: 0.9rem;
  padding-bottom: 0.9rem;
}

/* =========================================================
   34. PHOTOS
   Image seule : classe cecb-photo sur le bloc Image
   Galerie : classe cecb-galerie sur le bloc Galerie
   ========================================================= */

.wp-block-image.cecb-photo {
  margin: 0;
}

.wp-block-image.cecb-photo img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 20px;
  box-shadow: 0 14px 40px rgba(45, 106, 63, 0.12);
}

.wp-block-image.cecb-photo.cecb-photo-large img {
  aspect-ratio: 16 / 9;
}

.wp-block-image.cecb-photo figcaption {
  margin-top: 0.6rem;
  font-size: 0.85rem;
  color: var(--cecb-texte);
  text-align: center;
}

.wp-block-gallery.cecb-galerie {
  gap: 12px !important;
}

.wp-block-gallery.cecb-galerie .wp-block-image {
  overflow: hidden;
  border-radius: 16px;
}

.wp-block-gallery.cecb-galerie .wp-block-image img {
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 16px;
  transition: transform 0.4s ease;
}

.wp-block-gallery.cecb-galerie .wp-block-image:hover img {
  transform: scale(1.04);
}

@media (prefers-reduced-motion: reduce) {
  .wp-block-gallery.cecb-galerie .wp-block-image:hover img {
    transform: none;
  }
}

/* Galerie : 3 photos par ligne sur ordinateur, 2 sur tablette, 1 sur mobile */

.wp-block-gallery.cecb-galerie.has-nested-images figure.wp-block-image:not(#individual-image) {
  width: calc((100% - 24px) / 3) !important;
  flex-grow: 0 !important;
}

@media (max-width: 900px) {
  .wp-block-gallery.cecb-galerie.has-nested-images figure.wp-block-image:not(#individual-image) {
    width: calc((100% - 12px) / 2) !important;
  }
}

@media (max-width: 520px) {
  .wp-block-gallery.cecb-galerie.has-nested-images figure.wp-block-image:not(#individual-image) {
    width: 100% !important;
  }
}

.wp-block-gallery.cecb-galerie .wp-block-image img {
  width: 100%;
  height: auto;
  cursor: zoom-in;
}

/* =========================================================
   35. EMPLACEMENTS PHOTO "À VENIR" : version moderne
   Fond doux avec motif de pattes, reflet animé, icône dans
   une pastille et étiquette "Bientôt en photo".
   Sur le site, une seule ligne d'emplacements par thème est
   affichée (les suivantes sont masquées tant qu'elles sont vides).
   ========================================================= */

.cecb-photo-vide {
  position: relative;
  overflow: hidden;
  gap: 0.9rem;
  aspect-ratio: 4 / 3;
  border: none;
  border-radius: 20px;
  background-color: var(--cecb-vert-fond);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='72' height='72' viewBox='0 0 72 72'%3E%3Cg fill='%232d6a3f' fill-opacity='0.06' transform='rotate(-18 36 36)'%3E%3Cellipse cx='36' cy='44' rx='9' ry='7.5'/%3E%3Ccircle cx='25' cy='33' r='3.8'/%3E%3Ccircle cx='31.5' cy='27' r='3.8'/%3E%3Ccircle cx='40.5' cy='27' r='3.8'/%3E%3Ccircle cx='47' cy='33' r='3.8'/%3E%3C/g%3E%3C/svg%3E"),
    linear-gradient(145deg, #eef7f1 0%, #f7fbf8 55%, #fdf6ec 100%);
  background-size: 72px 72px, 100% 100%;
  box-shadow: inset 0 0 0 1px rgba(45, 106, 63, 0.08);
  transition: transform 0.3s, box-shadow 0.3s;
}

/* Teintes différentes selon la colonne */

.wp-block-column:nth-child(2) .cecb-photo-vide {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='72' height='72' viewBox='0 0 72 72'%3E%3Cg fill='%232d6a3f' fill-opacity='0.06' transform='rotate(-18 36 36)'%3E%3Cellipse cx='36' cy='44' rx='9' ry='7.5'/%3E%3Ccircle cx='25' cy='33' r='3.8'/%3E%3Ccircle cx='31.5' cy='27' r='3.8'/%3E%3Ccircle cx='40.5' cy='27' r='3.8'/%3E%3Ccircle cx='47' cy='33' r='3.8'/%3E%3C/g%3E%3C/svg%3E"),
    linear-gradient(145deg, #fdf3e6 0%, #fffaf3 55%, #eef7f1 100%);
}

.wp-block-column:nth-child(3) .cecb-photo-vide {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='72' height='72' viewBox='0 0 72 72'%3E%3Cg fill='%232d6a3f' fill-opacity='0.06' transform='rotate(-18 36 36)'%3E%3Cellipse cx='36' cy='44' rx='9' ry='7.5'/%3E%3Ccircle cx='25' cy='33' r='3.8'/%3E%3Ccircle cx='31.5' cy='27' r='3.8'/%3E%3Ccircle cx='40.5' cy='27' r='3.8'/%3E%3Ccircle cx='47' cy='33' r='3.8'/%3E%3C/g%3E%3C/svg%3E"),
    linear-gradient(145deg, #e9f3ec 0%, #f4faf6 50%, #eaf1f7 100%);
}

/* Reflet qui traverse lentement la carte */

.cecb-photo-vide::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(105deg, transparent 35%, rgba(255, 255, 255, 0.65) 50%, transparent 65%);
  transform: translateX(-100%);
  animation: cecb-reflet 3.2s ease-in-out infinite;
  pointer-events: none;
}

.wp-block-column:nth-child(2) .cecb-photo-vide::before {
  animation-delay: 0.4s;
}

.wp-block-column:nth-child(3) .cecb-photo-vide::before {
  animation-delay: 0.8s;
}

@keyframes cecb-reflet {
  0% { transform: translateX(-100%); }
  60%, 100% { transform: translateX(100%); }
}

/* Icône dans une pastille blanche qui flotte doucement */

.cecb-photo-vide p:first-child {
  width: 68px;
  height: 68px;
  border-radius: 50%;
  background: var(--cecb-blanc);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.7rem !important;
  box-shadow: 0 8px 22px rgba(45, 106, 63, 0.12);
  animation: cecb-flotte 4s ease-in-out infinite;
  position: relative;
  z-index: 1;
}

/* Le texte "Photo 1 à venir" est remplacé par une étiquette */

.cecb-photo-vide p:not(:first-child) {
  display: none;
}

.cecb-photo-vide::after {
  content: "Bientôt en photo";
  position: relative;
  z-index: 1;
  padding: 5px 14px;
  border-radius: 50px;
  background: rgba(255, 255, 255, 0.8);
  color: var(--cecb-vert);
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.cecb-photo-vide:hover {
  transform: translateY(-3px);
  box-shadow: inset 0 0 0 1px rgba(45, 106, 63, 0.14), 0 12px 28px rgba(45, 106, 63, 0.1);
}

/* Sur le site : une seule ligne d'emplacements vides par thème */

.cecb-js .wp-block-columns:has(.cecb-photo-vide) + .wp-block-columns:has(.cecb-photo-vide) {
  display: none;
}

@media (prefers-reduced-motion: reduce) {
  .cecb-photo-vide::before,
  .cecb-photo-vide p:first-child {
    animation: none;
  }

  .cecb-photo-vide:hover {
    transform: none;
  }
}

/* =========================================================
   36. REPRIS DU "CSS ADDITIONNEL" DU PERSONNALISEUR
   (ce champ doit désormais rester vide : tout est ici)
   ========================================================= */

/* Taille de base du texte légèrement agrandie (17 px) */

html {
  font-size: 106.25%;
}

/* FAQ Kadence : contour visible uniquement au clavier */

.kt-blocks-accordion-header:focus {
  outline: none;
}

.kt-blocks-accordion-header:focus-visible {
  outline: 2px solid var(--cecb-vert);
  outline-offset: 3px;
  border-radius: 10px;
}

/* Pages légales : Mentions légales et Politique de confidentialité */

.cecb-legal {
  box-sizing: border-box;
  max-width: 860px;
  margin: 0 auto;
  padding: 64px 20px 96px;
  display: grid;
  gap: 20px;
}

.cecb-legal-card {
  background: var(--cecb-blanc);
  border: 1px solid var(--cecb-bordure);
  border-radius: 20px;
  padding: 28px 32px;
}

.cecb-legal-card h2 {
  font-size: 1.5rem;
  line-height: 1.3;
  margin: 0 0 12px;
}

.cecb-legal-card p {
  margin: 0 0 12px;
  line-height: 1.7;
}

.cecb-legal-card p:last-child {
  margin-bottom: 0;
}

.cecb-legal a {
  color: var(--cecb-vert);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.cecb-legal-updated {
  font-size: 0.9rem;
  opacity: 0.7;
  margin: 8px 0 0;
  text-align: center;
}

@media (max-width: 600px) {
  .cecb-legal {
    padding: 40px 16px 64px;
  }

  .cecb-legal-card {
    padding: 22px 20px;
  }
}

/* =========================================================
   37. MOBILE : marges sur les côtés toujours présentes
   (même si un réglage de bloc les met à zéro)
   ========================================================= */

@media (max-width: 781px) {
  .section-w,
  .section-g,
  .section-c,
  .section-hero {
    padding-left: 1.2rem !important;
    padding-right: 1.2rem !important;
  }

  .section-hero {
    padding-top: 2.5rem !important;
  }
}

/* =========================================================
   38. CARTES DE COURS : horaire toujours en bas et centré
   ========================================================= */

.disc-card {
  display: flex !important;
  flex-direction: column;
}

.disc-card > .wp-block-group__inner-container {
  display: contents;
}

.disc-card .cecb-horaire,
html body .disc-card p.cecb-horaire {
  margin-top: auto !important;
  width: 100%;
  justify-content: center;
  text-align: center;
  padding-top: 0.9rem;
}

/* =========================================================
   39. TABLEAU DU SAMEDI : colonnes identiques sur chaque ligne
   Chaque ligne est une grille indépendante : la dernière colonne
   avait une largeur "auto" différente d'une ligne à l'autre,
   ce qui décalait les autres colonnes.
   ========================================================= */

@media (min-width: 769px) {
  .plan-row {
    grid-template-columns: 120px minmax(0, 2fr) minmax(0, 1.3fr) 170px;
  }
}

.plan-row > *,
.plan-row > .wp-block-group__inner-container > * {
  justify-self: stretch !important;
  text-align: left !important;
}

/* =========================================================
   40. PAGE PHOTOS : titres des thèmes, même taille en H2 ou H3
   ========================================================= */

html body h2.cecb-galerie-titre,
html body h3.cecb-galerie-titre {
  font-size: 1.2rem !important;
  line-height: 1.3 !important;
  letter-spacing: -0.01em !important;
  font-weight: 700 !important;
  margin-top: 2.6rem !important;
  margin-bottom: 1rem !important;
}

html body .cecb-galerie-titre:first-child {
  margin-top: 0 !important;
}
