/* =========================================================
   Groupement scolaire de l'Espérance - Saint Carlo Acutis
   Feuille de style principale
   ========================================================= */

:root{
  /* --- Palette officielle --- */
  --bleu: #1F3A5F;        /* titres, bandeaux, structure */
  --gris-texte: #2B2B2B;  /* texte courant */
  --ivoire: #F7F5F0;      /* fonds principaux */
  --noir: #000000;        /* fonds sobres, contrastes */
  --rouge-acutis: #B0241E;/* accent Collège uniquement */
  --vert-esperance: #2E8B57; /* accent École uniquement */

  /* nuances dérivées (mêmes teintes, juste plus claires/foncées pour hover, fonds, bordures) */
  --bleu-clair: #2c4f7c;
  --bleu-fonce: #142840;
  --ivoire-fonce: #efebe2;
  --bordure: #e1ddd2;
  --vert-clair: #3aa56c;
  --rouge-clair: #c7372f;

  /* accent "courant" : redéfini en haut de page sur ecole.html / college.html */
  --accent: var(--bleu);
  --accent-clair: var(--bleu-clair);

  /* --- Typographie --- */
  --police-titre: 'Playfair Display', Georgia, serif;
  --police-soustitre: 'Montserrat', Arial, sans-serif;
  --police-texte: 'Lato', Arial, sans-serif;

  /* --- Mesures --- */
  --conteneur: 1180px;
  --rayon: 6px;
  --ombre: 0 10px 30px rgba(31,58,95,0.10);
  --ombre-forte: 0 16px 40px rgba(0,0,0,0.18);
}

.page-ecole{ --accent: var(--vert-esperance); --accent-clair: var(--vert-clair); }
.page-college{ --accent: var(--rouge-acutis); --accent-clair: var(--rouge-clair); }

/* ---------- Reset ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  font-family:var(--police-texte);
  color:var(--gris-texte);
  background:var(--ivoire);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
ul{ margin:0; padding:0; list-style:none; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; cursor:pointer; }
h1,h2,h3,h4{
  font-family:var(--police-titre);
  color:var(--bleu);
  margin:0 0 .5em 0;
  line-height:1.2;
  font-weight:700;
}
p{ margin:0 0 1em 0; }

/* Focus visible accessible partout */
a:focus-visible, button:focus-visible, input:focus-visible,
textarea:focus-visible, select:focus-visible{
  outline:3px solid var(--accent);
  outline-offset:3px;
}

@media (prefers-reduced-motion: reduce){
  *{ animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; scroll-behavior:auto !important; }
}

.conteneur{
  max-width:var(--conteneur);
  margin:0 auto;
  padding:0 24px;
}

.eyebrow{
  display:inline-block;
  font-family:var(--police-soustitre);
  font-weight:600;
  letter-spacing:.12em;
  text-transform:uppercase;
  font-size:.78rem;
  color:var(--accent);
  margin-bottom:.6em;
}

.sous-titre{
  font-family:var(--police-soustitre);
  font-weight:600;
  color:var(--accent);
}

.texte-intro{
  max-width:640px;
  font-size:1.05rem;
  color:var(--gris-texte);
}

section{ padding:88px 0; }
section.compact{ padding:64px 0; }

.section-tete{
  max-width:680px;
  margin:0 0 48px 0;
}
.section-tete.centre{ margin:0 auto 48px auto; text-align:center; }

/* ---------- Boutons ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  gap:.5em;
  font-family:var(--police-soustitre);
  font-weight:600;
  font-size:.95rem;
  letter-spacing:.02em;
  padding:14px 30px;
  border-radius:var(--rayon);
  border:2px solid transparent;
  transition:transform .2s ease, box-shadow .2s ease, background .2s ease, color .2s ease;
}
.btn:hover{ transform:translateY(-2px); }

.btn-primaire{
  background:var(--accent);
  color:#fff;
  box-shadow:var(--ombre);
}
.btn-primaire:hover{ background:var(--accent-clair); }
.ha-widget-modal{ display:none;position:fixed;inset:0;z-index:2147483647;backdrop-filter:blur(15px) brightness(.5);background:rgba(20,30,45,.25);align-items:center;justify-content:center;padding:16px; }
.ha-widget-modal.open{ display:flex; }
.ha-widget-panel{ position:relative;width:min(950px,100%);height:100%;background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.25); }
.ha-widget-panel iframe{ display:block;width:100%;height:100%;border:0; }
.ha-widget-close{ position:absolute;right:14px;top:14px;z-index:1;width:40px;height:40px;border:0;border-radius:50%;background:#EFEFF4;cursor:pointer;display:grid;place-items:center; }

.btn-outline{
  background:transparent;
  border-color:#fff;
  color:#fff;
}
.btn-outline:hover{ background:#fff; color:var(--bleu); }

.btn-outline-sombre{
  background:transparent;
  border-color:var(--bleu);
  color:var(--bleu);
}
.btn-outline-sombre:hover{ background:var(--bleu); color:#fff; }

.btn-bloc{ width:100%; justify-content:center; }
.btn-petit{ padding:9px 18px; font-size:.82rem; }

/* ---------- En-tête / navigation ---------- */
.entete{
  position:sticky;
  top:0;
  z-index:1000;
  background:rgba(247,245,240,0.96);
  backdrop-filter:blur(6px);
  border-bottom:1px solid var(--bordure);
}
.entete .conteneur{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding-top:12px;
  padding-bottom:12px;
  gap:0;
}
.bloc-logos{
  display:flex;
  align-items:center;
  gap:10px;
  /* Pousse le menu à droite avec un grand espace automatique */
  flex:0 0 auto;
  margin-right:auto;
  padding-right:32px;
}
.bloc-logos a{ display:flex; align-items:center; gap:10px; }
.logo-img{ height:48px; width:auto; }
.separateur-logo{ width:1px; height:34px; background:var(--bordure); flex-shrink:0; }
.marque-texte{
  font-family:'Sacramento', cursive;
  font-size:1.15rem;
  line-height:1.05;
  color:var(--bleu);
  white-space:nowrap;
}
@media (max-width:560px){
  .marque-texte{ display:none; }
}

.nav-principale{
  display:flex;
  align-items:center;
  gap:8px;
}
.nav-principale a{
  font-family:var(--police-soustitre);
  font-weight:600;
  font-size:.85rem;
  padding:10px 10px;
  border-radius:4px;
  color:var(--bleu);
  position:relative;
  transition:color .2s ease;
  white-space:nowrap;
}
.nav-principale a.lien-ecole:hover, .nav-principale a.lien-ecole.actif{ color:var(--vert-esperance); }
.nav-principale a.lien-college:hover, .nav-principale a.lien-college.actif{ color:var(--rouge-acutis); }
.nav-principale a:not(.lien-ecole):not(.lien-college):hover,
.nav-principale a:not(.lien-ecole):not(.lien-college).actif{ color:var(--accent-clair); }

.nav-soutenir{
  margin-left:6px;
  background:var(--vert-esperance);
  color:#fff !important;
  padding:10px 20px !important;
  border-radius:var(--rayon);
  font-size:.88rem !important;
}
.nav-soutenir:hover{ background:#256e45; }

.toggle-menu{
  display:none;
  background:none;
  border:none;
  flex-direction:column;
  gap:5px;
  padding:6px;
}
.toggle-menu span{ width:26px; height:2px; background:var(--bleu); display:block; }

@media (max-width: 900px){
  .nav-principale{
    position:absolute;
    top:100%; left:0; right:0;
    background:var(--ivoire);
    flex-direction:column;
    align-items:stretch;
    border-bottom:1px solid var(--bordure);
    padding:10px 24px 18px;
    display:none;
  }
  .nav-principale.ouvert{ display:flex; }
  .nav-principale a{ padding:12px 4px; border-bottom:1px solid var(--bordure); }
  .nav-soutenir{ margin:10px 0 0 0; text-align:center; }
  .toggle-menu{ display:flex; }
  .logo-img{ height:40px; }
}

.etiquette-placeholder{
  position:absolute; top:14px; left:14px; z-index:2;
  background:rgba(0,0,0,.4);
  color:#fff;
  font-family:var(--police-soustitre);
  font-size:.66rem;
  letter-spacing:.03em;
  padding:5px 11px;
  border-radius:20px;
}

/* ---------- Hero (page d'accueil) ---------- */
.hero{
  position:relative;
  min-height:clamp(380px, 64vh, 560px);
  display:flex;
  align-items:flex-end;
  overflow:hidden;
  background:var(--bleu-fonce);
}
.hero-slides-wrap{ position:absolute; inset:0; }
.hero-slide{
  position:absolute; inset:0;
  background-size:cover;
  background-position:center;
  opacity:0;
  transition:opacity 1.1s ease;
}
.hero-slide.actif{ opacity:1; }
.hero-slide::after{
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(20,40,64,.15) 0%, rgba(20,40,64,.78) 100%);
}
.hero-contenu{
  position:relative;
  z-index:2;
  padding:0 24px 36px;
  max-width:var(--conteneur);
  margin:0 auto;
  width:100%;
  color:#fff;
}
.hero-contenu .eyebrow{ color:#cfe0d2; }
.hero-contenu h1{
  color:#fff;
  font-size:clamp(2.1rem, 5vw, 3.6rem);
  max-width:760px;
}
.hero-contenu p{
  color:#e9e7e0;
  max-width:540px;
  font-size:1.08rem;
}
.hero-fleches{
  position:absolute;
  z-index:3;
  top:50%;
  left:0; right:0;
  display:flex;
  justify-content:space-between;
  padding:0 20px;
  transform:translateY(-50%);
  pointer-events:none;
}
.hero-fleche{
  pointer-events:auto;
  width:44px; height:44px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.5);
  background:rgba(255,255,255,.08);
  color:#fff;
  font-size:1.2rem;
  display:flex; align-items:center; justify-content:center;
  transition:background .2s ease;
}
.hero-fleche:hover{ background:rgba(255,255,255,.25); }
.hero-points{
  position:absolute; z-index:3; bottom:24px; right:24px;
  display:flex; gap:8px;
}
.hero-point{
  width:9px; height:9px; border-radius:50%;
  background:rgba(255,255,255,.4);
  border:none;
  padding:0;
}
.hero-point.actif{ background:#fff; }

/* ---------- Bandeau 3 boutons ---------- */
.bandeau-actions{
  background:var(--bleu);
}
.grille-actions{
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  gap:1px;
  background:rgba(255,255,255,.15);
}
.action-item{
  background:var(--bleu);
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  padding:30px 20px;
  font-family:var(--police-soustitre);
  font-weight:600;
  font-size:1.05rem;
  letter-spacing:.02em;
  transition:background .2s ease;
}
.action-item:hover{ background:var(--bleu-fonce); }
.action-item .puce{
  width:34px; height:34px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.6);
  display:flex; align-items:center; justify-content:center;
  font-size:1rem;
  flex-shrink:0;
}
@media (max-width:760px){
  .grille-actions{ grid-template-columns:1fr; }
  .action-item{ padding:20px 20px; font-size:.98rem; }
}

/* ---------- Bloc image + texte ---------- */
.bloc-duo{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:64px;
  align-items:center;
}
.bloc-duo.inverse{ direction:rtl; }
.bloc-duo.inverse > *{ direction:ltr; }
.bloc-duo .visuel{
  border-radius:var(--rayon);
  overflow:hidden;
  box-shadow:var(--ombre);
  aspect-ratio:4/3;
  position:relative;
}
.charte-document .charte-telecharger{ margin-top:20px; }
.charte-document .charte-telecharger[hidden]{ display:none; }
@media (max-width:860px){
  .bloc-duo{ grid-template-columns:1fr; gap:32px; }
  .bloc-duo.inverse{ direction:ltr; }
}

.visuel-place{
  width:100%; height:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  background:linear-gradient(135deg, var(--accent) 0%, var(--bleu-fonce) 100%);
  color:rgba(255,255,255,.85);
  font-family:var(--police-soustitre);
  font-size:.85rem;
  letter-spacing:.05em;
  text-align:center;
  padding:20px;
}

/* ---------- Nos valeurs ---------- */
.grille-valeurs{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:28px;
}
.carte-valeur{
  background:#fff;
  border:1px solid var(--bordure);
  border-radius:var(--rayon);
  padding:34px 26px;
  text-align:left;
  opacity:0;
  transform:translateY(18px);
  transition:opacity .6s ease, transform .6s ease;
}
.carte-valeur.visible{ opacity:1; transform:translateY(0); }
.carte-valeur .icone{
  width:52px; height:52px;
  border-radius:50%;
  background:var(--ivoire-fonce);
  color:var(--accent);
  display:flex; align-items:center; justify-content:center;
  margin-bottom:18px;
  font-size:1.4rem;
}
.carte-valeur h3{ font-size:1.15rem; }
.carte-valeur .sous-titre{ display:block; font-size:.8rem; margin-bottom:.6em; }
.carte-valeur p{ font-size:.95rem; color:#4a4a4a; margin:0; }

@media (max-width:980px){ .grille-valeurs{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .grille-valeurs{ grid-template-columns:1fr; } }

/* ---------- Focus ateliers (carrousel) ---------- */
.fond-sombre{ background:var(--bleu-fonce); color:#f1efe9; }
.fond-sombre h2{ color:#fff; }
.fond-sombre .eyebrow{ color:#9fb4cc; }

.piste-ateliers{
  display:flex;
  gap:22px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  padding-bottom:12px;
  margin:0 -4px;
}
.piste-ateliers::-webkit-scrollbar{ height:6px; }
.piste-ateliers::-webkit-scrollbar-thumb{ background:rgba(255,255,255,.25); border-radius:3px; }
.carte-atelier{
  scroll-snap-align:start;
  flex:0 0 280px;
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.12);
  border-radius:var(--rayon);
  overflow:hidden;
}
.carte-atelier .visuel-place{ aspect-ratio:4/3; position:relative; }
.carte-atelier .contenu-carte{ padding:20px; }
.carte-atelier h3{ color:#fff; font-size:1.1rem; }
.carte-atelier p{ color:#cfd2d8; font-size:.92rem; margin:0; }

/* ---------- Chiffres clés ---------- */
.bandeau-chiffres{
  background:var(--accent);
  color:#fff;
}
.grille-chiffres{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  text-align:center;
  gap:24px;
}
.chiffre{ font-family:var(--police-titre); font-size:clamp(2.2rem,4vw,3.2rem); font-weight:700; line-height:1; }
.chiffre-label{
  font-family:var(--police-soustitre);
  font-size:.85rem;
  letter-spacing:.06em;
  text-transform:uppercase;
  margin-top:8px;
  color:rgba(255,255,255,.85);
}
@media (max-width:760px){ .grille-chiffres{ grid-template-columns:repeat(2,1fr); gap:36px 24px; } }

/* ---------- Témoignages ---------- */
.piste-temoignages{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:28px;
}
.carte-temoignage{
  background:#fff;
  border-radius:var(--rayon);
  border:1px solid var(--bordure);
  padding:32px;
  position:relative;
}
.carte-temoignage .guillemet{
  font-family:var(--police-titre);
  font-size:3rem;
  color:var(--accent);
  opacity:.25;
  line-height:.5;
  display:block;
  margin-bottom:10px;
}
.carte-temoignage p{ font-style:italic; color:#3a3a3a; }
.signature{
  display:flex; align-items:center; gap:10px;
  font-family:var(--police-soustitre);
  font-weight:600;
  color:var(--bleu);
  margin-top:18px;
  font-size:.92rem;
}
.signature .rond{
  width:36px; height:36px; border-radius:50%;
  background:var(--ivoire-fonce);
  color:var(--accent);
  display:flex; align-items:center; justify-content:center;
  font-family:var(--police-titre);
}
@media (max-width:900px){ .piste-temoignages{ grid-template-columns:1fr; } }

/* ---------- Pied de page ---------- */
.pied{
  background:var(--noir);
  color:#cfcfcf;
  padding:60px 0 26px;
}
.pied-haut{
  display:grid;
  grid-template-columns:1.2fr 1fr 1fr;
  gap:40px;
  padding-bottom:36px;
  border-bottom:1px solid rgba(255,255,255,.12);
}
.pied h4{ color:#fff; font-family:var(--police-soustitre); font-size:.95rem; letter-spacing:.04em; text-transform:uppercase; margin-bottom:16px;}
.pied-logos{ display:flex; gap:10px; margin-bottom:16px; }
.pied-logos img{ height:42px; filter:brightness(0) invert(1); opacity:.9; }
.pied address{ font-style:normal; font-size:.92rem; line-height:1.7; }
.pied-contact-cta{ display:flex; flex-direction:column; align-items:flex-start; gap:14px; }
.reseaux{ display:flex; gap:12px; }
.reseaux a{
  width:38px; height:38px; border-radius:50%;
  border:1px solid rgba(255,255,255,.3);
  display:flex; align-items:center; justify-content:center;
  font-size:.95rem;
  transition:background .2s ease;
}
.reseaux a:hover{ background:rgba(255,255,255,.15); }
.pied-bas{
  padding-top:22px;
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:14px;
  font-size:.82rem;
  color:#8a8a8a;
}
.pied-bas a{ color:#8a8a8a; }
.pied-bas a:hover{ color:#fff; }
.liens-bas{ display:flex; gap:18px; flex-wrap:wrap; }

.pied-centre{ display:flex; flex-direction:column; align-items:center; text-align:center; justify-content:center; }
.pied-droite{ display:flex; flex-direction:column; align-items:flex-end; text-align:right; }
.pied-droite .reseaux{ justify-content:flex-end; }

@media (max-width:860px){
  .pied-haut{ grid-template-columns:1fr; gap:30px; text-align:left; }
  .pied-centre, .pied-droite{ align-items:flex-start; text-align:left; }
  .pied-droite .reseaux{ justify-content:flex-start; }
  .pied-bas{ flex-direction:column; }
}

/* ---------- Pages intérieures : entête de page ---------- */
.entete-page{
  padding:56px 0 64px;
  background:var(--ivoire-fonce);
  border-bottom:1px solid var(--bordure);
}
.entete-page h1{ font-size:clamp(2rem,4vw,2.7rem); }
.fil-ariane{
  font-family:var(--police-soustitre);
  font-size:.82rem;
  color:#7a7a7a;
  margin-bottom:14px;
  letter-spacing:.02em;
}
.fil-ariane a{ color:var(--accent); }

/* ---------- Sections charte / projet pédagogique etc. ---------- */
.section-alt{ background:#fff; }

/* ---------- Aperçu des classes (galerie cycles) ---------- */
.grille-classes{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:22px;
}
.carte-classe{
  margin:0;
  border-radius:var(--rayon);
  overflow:hidden;
  box-shadow:var(--ombre);
  background:#fff;
}
.carte-classe img{
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  display:block;
}
.carte-classe figcaption{
  padding:12px 14px;
  font-family:var(--police-soustitre);
  font-weight:600;
  font-size:.85rem;
  color:var(--accent);
  text-align:center;
}
@media (max-width:900px){ .grille-classes{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .grille-classes{ grid-template-columns:1fr; } }

/* ---------- Équipe pédagogique ---------- */
.grille-equipe{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:30px;
}
.carte-membre{ text-align:center; min-width:0; }
.bulle-photo{
  width:clamp(96px, 32vw, 140px);
  height:clamp(96px, 32vw, 140px);
  border-radius:50%;
  margin:0 auto 16px;
  overflow:hidden;
  border:4px solid #fff;
  box-shadow:var(--ombre);
  position:relative;
}
.bulle-photo .visuel-place{ font-size:.7rem; }
.carte-membre h3{ font-size:1.05rem; margin-bottom:2px; }
.carte-membre .role{ font-size:.85rem; color:var(--accent); font-family:var(--police-soustitre); font-weight:600; }
@media (max-width:900px){ .grille-equipe{ grid-template-columns:repeat(2,1fr); } }

/* ---------- Recrutement : liste des postes ---------- */
.liste-postes{ display:flex; flex-direction:column; gap:16px; }
.poste{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  background:#fff;
  border:1px solid var(--bordure);
  border-radius:var(--rayon);
  padding:22px 26px;
  flex-wrap:wrap;
}
.poste h3{ font-size:1.05rem; margin:0 0 4px; }
.poste .meta{ font-size:.85rem; color:#666; font-family:var(--police-soustitre); }
.tag{
  display:inline-block;
  font-size:.72rem;
  font-family:var(--police-soustitre);
  font-weight:600;
  letter-spacing:.04em;
  text-transform:uppercase;
  padding:4px 10px;
  border-radius:20px;
  background:var(--ivoire-fonce);
  color:var(--accent);
  margin-right:6px;
}

/* ---------- Tableau des tarifs ---------- */
.table-wrap{ overflow-x:auto; border-radius:var(--rayon); box-shadow:var(--ombre); }
table.tarifs{
  width:100%;
  border-collapse:collapse;
  background:#fff;
  font-size:.95rem;
}
table.tarifs th, table.tarifs td{
  padding:16px 20px;
  text-align:left;
  border-bottom:1px solid var(--bordure);
}
table.tarifs th{
  background:var(--bleu);
  color:#fff;
  font-family:var(--police-soustitre);
  font-weight:600;
  font-size:.85rem;
  letter-spacing:.03em;
  text-transform:uppercase;
}
table.tarifs tr:last-child td{ border-bottom:none; }
table.tarifs tr:nth-child(even) td{ background:var(--ivoire); }

/* ---------- Accordéon (vie spirituelle) ---------- */
.accordeon{ border-top:1px solid var(--bordure); }
.accordeon-item{ border-bottom:1px solid var(--bordure); }
.accordeon-entete{
  width:100%;
  background:none;
  border:none;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:22px 4px;
  font-family:var(--police-soustitre);
  font-weight:600;
  font-size:1.05rem;
  color:var(--bleu);
  text-align:left;
}
.accordeon-entete .signe{ font-size:1.3rem; transition:transform .25s ease; flex-shrink:0; margin-left:14px; }
.accordeon-entete[aria-expanded="true"] .signe{ transform:rotate(45deg); }
.accordeon-contenu{
  max-height:0;
  overflow:hidden;
  transition:max-height .3s ease;
}
.accordeon-contenu-int{ padding:0 4px 24px; color:#444; font-size:.97rem; }

/* ---------- Événements / Actus ---------- */
.grille-evenements{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:28px;
}
.carte-evenement{
  background:#fff;
  border:1px solid var(--bordure);
  border-radius:var(--rayon);
  overflow:hidden;
}
.carte-evenement .visuel-place{ aspect-ratio:3/2; position:relative; }
.carte-evenement .contenu-carte{ padding:22px; }
.carte-evenement .date{
  font-family:var(--police-soustitre);
  font-size:.78rem;
  font-weight:600;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:var(--accent);
}
.carte-evenement h3{ font-size:1.1rem; margin:6px 0 10px; }
@media (max-width:980px){ .grille-evenements{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px){ .grille-evenements{ grid-template-columns:1fr; } }

.grille-actus{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:20px;
}
.carte-actu{ background:#fff; border:1px solid var(--bordure); border-radius:var(--rayon); overflow:hidden; }
.carte-actu .visuel-place{ aspect-ratio:1/1; font-size:.65rem; position:relative; }
.carte-actu .contenu-carte{ padding:14px; }
.carte-actu .date{ font-size:.7rem; color:#888; font-family:var(--police-soustitre); }
.carte-actu h3{ font-size:.92rem; margin:4px 0 0; }
@media (max-width:900px){ .grille-actus{ grid-template-columns:repeat(2,1fr); } }

/* ---------- Formulaires ---------- */
.cadre-formulaire{
  background:#fff;
  border:1px solid var(--bordure);
  border-radius:var(--rayon);
  padding:40px;
  box-shadow:var(--ombre);
}
.grille-formulaire{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
  min-width:0;
}
.champ{ display:flex; flex-direction:column; gap:6px; margin-bottom:18px; min-width:0; }
.champ.pleine-largeur{ grid-column:1 / -1; }
.champ label{
  font-family:var(--police-soustitre);
  font-weight:600;
  font-size:.85rem;
  color:var(--bleu);
}
.champ small{ color:#888; font-size:.78rem; }
.champ input, .champ select, .champ textarea{
  font-family:var(--police-texte);
  font-size:.97rem;
  padding:12px 14px;
  border:1px solid var(--bordure);
  border-radius:4px;
  background:var(--ivoire);
  color:var(--gris-texte);
  width:100%;
  min-width:0;
  box-sizing:border-box;
}
.champ input:focus, .champ select:focus, .champ textarea:focus{
  outline:none;
  border-color:var(--accent);
  background:#fff;
}
.champ-fichier{
  border:1px dashed var(--bordure);
  border-radius:4px;
  padding:18px;
  background:var(--ivoire);
}
.champ-rgpd{
  display:flex;
  align-items:flex-start;
  gap:10px;
  grid-column:1/-1;
  font-size:.85rem;
  color:#555;
}
.champ-rgpd input{ margin-top:4px; }
@media (max-width:700px){
  .grille-formulaire{ grid-template-columns:1fr; }
  .cadre-formulaire{ padding:26px; }
}

/* ---------- Bannière CTA générique (bas de page de contenu) ---------- */
.bandeau-cta{
  background:var(--accent);
  color:#fff;
  text-align:center;
}
.bandeau-cta h2{ color:#fff; }
.bandeau-cta p{ color:rgba(255,255,255,.85); max-width:560px; margin:0 auto 26px; }

/* ---------- Reveal au scroll ---------- */
.reveal{ opacity:0; transform:translateY(22px); transition:opacity .7s ease, transform .7s ease; }
.reveal.visible{ opacity:1; transform:translateY(0); }

/* ---------- En-tête : nom groupement (version fusionnée) ---------- */
.marque-texte{
  font-family:'Montserrat',Arial,sans-serif;
  font-weight:700;
  font-size:.88rem;
  line-height:1.25;
  color:var(--bleu);
  white-space:nowrap;
  letter-spacing:-.01em;
}
@media (max-width:860px){
  .marque-texte{ font-size:.75rem; white-space:normal; max-width:160px; }
}
@media (max-width:480px){
  .marque-texte{ display:none; }
}
