/* Palais des Pionniers : pages « À l'École de la Citoyenneté » (ecole-citoyennete.php, eci-cohorte.php) */
.eci-drapeau { display:flex; height:4px; } .eci-drapeau span { flex:1; } .eci-v { background:#14B53A; } .eci-j { background:#FCD116; } .eci-r { background:#CE1126; }
.eci-hero { position:relative; display:flex; align-items:center; overflow:hidden; background:#0A2558; color:#fff; }
.eci-slide { position:absolute; inset:0; opacity:0; transition:opacity 1.6s ease; }
.eci-slide.actif { opacity:1; }
.eci-slide img { width:100%; height:100%; object-fit:cover; object-position:50% 30%; }
.eci-slide.actif img { animation: kenburns 9s ease-out forwards; }
.eci-voile { position:absolute; inset:0; background:linear-gradient(180deg, rgba(10,37,88,.55) 0%, rgba(10,37,88,.35) 35%, rgba(10,37,88,.92) 100%); }
.eci-voile-g { position:absolute; inset:0; background:linear-gradient(90deg, rgba(10,37,88,.85) 0%, rgba(10,37,88,.2) 70%); }
.eci-motif { background-color:#0A2558; background-image: radial-gradient(rgba(255,255,255,.07) 1px, transparent 1px); background-size: 22px 22px; }
.eci-titre { font-weight:900; font-style:italic; text-transform:uppercase; letter-spacing:-.04em; line-height:.92; }
.eci-badge { display:inline-flex; align-items:center; gap:.6rem; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.22); backdrop-filter:blur(6px); border-radius:999px; padding:.45rem .9rem .45rem .5rem; font-size:.68rem; font-weight:900; letter-spacing:.18em; text-transform:uppercase; }
.eci-badge i { display:inline-flex; width:1.6rem; height:1.6rem; border-radius:999px; align-items:center; justify-content:center; background:#CE1126; font-size:.7rem; }
.eci-chiffres { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.5rem; }
.eci-chiffre { background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.18); backdrop-filter:blur(8px); border-radius:1.25rem; padding:.85rem .5rem; text-align:center; }
.eci-chiffre b { display:block; font-size:1.6rem; font-weight:900; line-height:1; letter-spacing:-.03em; }
a.eci-chiffre { color:#fff; transition:background .25s, transform .25s; }
a.eci-chiffre:hover { background:rgba(255,255,255,.2); transform:translateY(-2px); }
.eci-chiffre span i { font-size:.55rem; opacity:.7; margin-left:.2rem; }
.eci-chiffre span { display:block; margin-top:.35rem; font-size:.6rem; font-weight:800; letter-spacing:.14em; text-transform:uppercase; opacity:.8; }
@media (min-width:640px) { .eci-chiffres { gap:1rem; } .eci-chiffre { padding:1.25rem 1rem; } .eci-chiffre b { font-size:2.5rem; } .eci-chiffre span { font-size:.68rem; } }
.eci-kicker { font-size:.7rem; font-weight:900; letter-spacing:.25em; text-transform:uppercase; color:#CE1126; }
.eci-h2 { font-weight:900; font-style:italic; text-transform:uppercase; letter-spacing:-.03em; line-height:1; color:#0A2558; }
.eci-mosaique { display:grid; grid-template-columns:1.25fr 1fr; grid-template-rows:1fr 1fr; gap:.75rem; height:22rem; }
.eci-mosaique > div { border-radius:1.5rem; overflow:hidden; background:#e2e8f0; }
.eci-mosaique > div:first-child { grid-row: span 2; }
.eci-mosaique img { width:100%; height:100%; object-fit:cover; transition:transform .8s; }
.eci-mosaique > div:hover img { transform:scale(1.05); }
@media (min-width:1024px) { .eci-mosaique { height:21rem; } }
.eci-valeur { position:relative; border-radius:1.25rem; padding:1.1rem; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12); overflow:hidden; }
.eci-valeur::after { content:""; position:absolute; right:-2.5rem; top:-2.5rem; width:7rem; height:7rem; border-radius:999px; background:rgba(206,17,38,.18); }
.eci-valeur h3 { font-size:1.05rem; line-height:1.15; font-weight:900; font-style:italic; text-transform:uppercase; letter-spacing:-.03em; }
@media (min-width:640px) { .eci-valeur { border-radius:1.75rem; padding:1.75rem; } .eci-valeur h3 { font-size:1.6rem; } }
.eci-module { display:flex; align-items:center; gap:1rem; background:#fff; border:1px solid #e2e8f0; border-radius:1.25rem; padding:1rem 1.25rem; box-shadow:0 1px 2px rgba(15,23,42,.04); }
.eci-module b { flex-shrink:0; font-size:1.5rem; font-weight:900; font-style:italic; color:#CE1126; letter-spacing:-.04em; }
.eci-carte { background:#fff; border:1px solid #eef2f7; border-radius:1.75rem; padding:1.75rem; box-shadow:0 10px 30px -18px rgba(10,37,88,.35); transition:transform .3s, box-shadow .3s; }
.eci-carte:hover { transform:translateY(-4px); box-shadow:0 22px 40px -20px rgba(10,37,88,.45); }
.eci-carte i { width:3rem; height:3rem; border-radius:1rem; display:inline-flex; align-items:center; justify-content:center; background:#0A2558; color:#fff; font-size:1.1rem; }
.eci-vedette { display:grid; border-radius:2rem; overflow:hidden; background:#0A2558; color:#fff; box-shadow:0 30px 60px -30px rgba(10,37,88,.6); }
@media (min-width:1024px) { .eci-vedette { grid-template-columns:1.15fr 1fr; } }
.eci-vedette-photo { position:relative; min-height:16rem; background:#0f2f6b; }
.eci-vedette-photo { min-height:18rem; }
@media (min-width:1024px) { .eci-vedette-photo { min-height:24rem; } }
.eci-numero { display:inline-flex; align-items:flex-start; font-size:5rem; font-weight:900; font-style:italic; line-height:1; letter-spacing:-.06em; }
.eci-cohortes { display:grid; grid-auto-flow:column; grid-auto-columns:78%; gap:1rem; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:.5rem; scrollbar-width:none; }
.eci-cohortes::-webkit-scrollbar { display:none; }
.eci-cohortes > * { scroll-snap-align:start; }
.eci-cohortes { grid-auto-columns:88%; }
@media (min-width:640px) { .eci-cohortes { grid-auto-columns:60%; } }
@media (min-width:1024px) { .eci-cohortes { grid-auto-flow:row; grid-template-columns:repeat(3,minmax(0,1fr)); overflow:visible; gap:1.25rem; } }
.eci-cohorte { position:relative; display:block; border-radius:1.5rem; overflow:hidden; aspect-ratio:16/10; background:#0A2558; color:#fff; text-align:left; width:100%; }
/* Diaporama dans une carte : les photos se succèdent en fondu */
.eci-diapo { position:absolute; inset:0; display:block; }
.eci-diapo img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 35%; opacity:0; transition:opacity 1.2s ease, transform 6s ease; transform:scale(1.02); }
.eci-diapo img.actif { opacity:1; transform:scale(1.08); }
.eci-cohorte::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(10,37,88,0) 35%, rgba(10,37,88,.95) 100%); }
.eci-cohorte .eci-cohorte-txt { position:absolute; left:1.1rem; right:1.1rem; bottom:1.1rem; z-index:1; }
.eci-cohorte .eci-gros { position:absolute; right:.75rem; top:.1rem; font-size:4.5rem; font-weight:900; font-style:italic; opacity:.18; letter-spacing:-.06em; z-index:1; }
.eci-galerie { columns:2; column-gap:.75rem; }
@media (min-width:768px) { .eci-galerie { columns:3; column-gap:1rem; } }
@media (min-width:1280px) { .eci-galerie { columns:4; } }
.eci-galerie button { display:block; width:100%; margin:0 0 .75rem; border-radius:1.25rem; overflow:hidden; break-inside:avoid; background:#e2e8f0; }
.eci-galerie img { width:100%; height:auto; display:block; transition:transform .8s; }
.eci-galerie button:hover img { transform:scale(1.04); }
.eci-lb { position:fixed; inset:0; z-index:80; background:rgba(5,15,40,.95); display:none; align-items:center; justify-content:center; padding:3.5rem 1rem; }
.eci-lb.ouvert { display:flex; }
.eci-lb img { max-width:100%; max-height:100%; border-radius:1rem; object-fit:contain; }
.eci-lb button { position:absolute; color:#fff; width:3rem; height:3rem; border-radius:999px; background:rgba(255,255,255,.12); }
.eci-lb button:hover { background:#CE1126; }
.eci-h1 { font-size:2.6rem; }
@media (min-width:640px) { .eci-h1 { font-size:3.4rem; } }
@media (min-width:1024px) { .eci-h1 { font-size:3.7rem; white-space:nowrap; } }
@media (min-width:1280px) { .eci-h1 { font-size:4.4rem; } }
.eci-hero-contenu { padding-top:2.5rem; padding-bottom:2.5rem; }
.eci-or { color:#FCD116; }
.eci-lien-or:hover { color:#FCD116; }
.eci-cta { width:100%; }
@media (min-width:640px) { .eci-cta { width:auto; } }
@media (min-width:1024px) { .eci-cta-droite { text-align:right; } }
.eci-logo { width:4.5rem; height:4.5rem; border-radius:999px; background:#fff; padding:.2rem; box-shadow:0 10px 30px -10px rgba(0,0,0,.5); }
@media (min-width:640px) { .eci-logo { width:5.5rem; height:5.5rem; } }
.eci-guillemet { color:#FCD116; font-style:normal; }
.eci-sigle { display:inline-block; background:#FCD116; color:#0A2558; font-weight:900; letter-spacing:.3em; padding:.3rem .5rem .3rem .8rem; border-radius:.5rem; font-size:.8rem; }
.eci-chiffres { grid-template-columns:repeat(2,minmax(0,1fr)); }
@media (min-width:640px) { .eci-chiffres { grid-template-columns:repeat(4,minmax(0,1fr)); } }
.eci-objectif { border-left:4px solid #CE1126; background:#fff; border-radius:0 1.25rem 1.25rem 0; padding:1.25rem 1.5rem; box-shadow:0 10px 30px -20px rgba(10,37,88,.4); }
.eci-vision { position:relative; border-radius:2rem; padding:2rem 1.5rem; background:#F8FAFC; border:1px solid #e2e8f0; overflow:hidden; }
@media (min-width:640px) { .eci-vision { padding:3rem 3.5rem; } }
.eci-vision-guillemet { position:absolute; right:1.5rem; top:-1.5rem; font-size:10rem; font-weight:900; color:rgba(206,17,38,.08); line-height:1; }
.eci-duree { display:inline-flex; align-items:center; background:#0A2558; color:#fff; border-radius:999px; padding:.7rem 1.2rem; font-size:.72rem; font-weight:900; letter-spacing:.12em; text-transform:uppercase; white-space:nowrap; align-self:flex-start; }
.eci-cycles { display:grid; gap:1rem; counter-reset:none; }
@media (min-width:768px) { .eci-cycles { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (min-width:1024px) { .eci-cycles { grid-template-columns:repeat(4,minmax(0,1fr)); } }
.eci-cycle { position:relative; background:#fff; border:1px solid #e2e8f0; border-radius:1.75rem; padding:1.5rem 1.5rem 1.75rem; overflow:hidden; box-shadow:0 10px 30px -22px rgba(10,37,88,.45); }
.eci-cycle::before { content:""; position:absolute; left:0; right:0; top:0; height:4px; background:linear-gradient(90deg,#14B53A 0 33%,#FCD116 33% 66%,#CE1126 66%); }
.eci-cycle-num { position:absolute; right:1rem; top:.5rem; font-size:4rem; font-weight:900; font-style:italic; color:rgba(10,37,88,.07); letter-spacing:-.05em; line-height:1; }
.eci-cycle-num sup { font-size:1.2rem; }
.eci-zone { display:flex; gap:.85rem; align-items:flex-start; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12); border-radius:1.25rem; padding:1.1rem 1.2rem; }
.eci-zone i { margin-top:.2rem; }
.eci-contact { display:inline-flex; align-items:center; gap:.55rem; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.18); border-radius:999px; padding:.55rem 1rem; font-size:.8rem; font-weight:700; color:#fff; word-break:break-all; }
a.eci-contact:hover { background:#fff; color:#0A2558; }
/* ---------- Téléphone : moins de vide, plus d'informations visibles d'un coup ---------- */
.eci-indice { display:none; }
.eci-lire-suite { display:none; }
@media (max-width:639px) {
  .eci-hero { min-height:0; align-items:flex-start; }
  .eci-hero-contenu { padding-top:1.5rem; padding-bottom:1.5rem; }
  .eci-badge { font-size:.58rem; letter-spacing:.12em; }
  .eci-chiffres { margin-top:1.5rem !important; }
  .eci-mosaique { height:15rem; gap:.5rem; }
  .eci-mosaique > div { border-radius:1rem; }
  .eci-vision { padding:1.5rem 1.25rem; border-radius:1.5rem; }
  .eci-vision blockquote { font-size:1rem; }
  .eci-glisser { display:grid; grid-auto-flow:column; grid-auto-columns:82%; grid-template-columns:none; gap:.75rem; overflow-x:auto; scroll-snap-type:x mandatory; margin-right:-1rem; padding-right:1rem; padding-bottom:.5rem; scrollbar-width:none; }
  .eci-glisser::-webkit-scrollbar { display:none; }
  .eci-glisser > * { scroll-snap-align:start; }
  .eci-carte { padding:1.25rem; border-radius:1.25rem; }
  .eci-cycle { padding:1.25rem; }
  .eci-indice { display:flex; align-items:center; gap:.4rem; margin-top:.5rem; font-size:.65rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:#94a3b8; }
  .eci-zone { padding:.75rem; gap:.5rem; border-radius:1rem; }
  .eci-zone p:first-child { font-size:.8rem; }
  .eci-zone p + p { font-size:.68rem; }
  .eci-objectif { padding:1rem 1.25rem; }
  .eci-mt-mobile { margin-top:1.5rem !important; }
  #eciPresentation:not(.ouvert) .eci-plus { display:none; }
  .eci-lire-suite { display:inline-flex; align-items:center; gap:.5rem; margin-top:.75rem; font-size:.72rem; font-weight:900; letter-spacing:.14em; text-transform:uppercase; color:#CE1126; }
}
.eci-lb-legende { position:absolute; bottom:1rem; left:1rem; right:1rem; text-align:center; color:#fff; font-size:.85rem; font-weight:600; }

/* ---------- Page d'une cohorte (eci-cohorte.php) ---------- */
.eci-cohorte-num { display:inline-flex; align-items:flex-start; font-size:6rem; font-weight:900; font-style:italic; line-height:1; letter-spacing:-.06em; color:#CE1126; text-shadow:0 10px 30px rgba(0,0,0,.35); }
.eci-cohorte-num sup, .eci-numero sup { position:static; font-size:.32em; line-height:1; margin-top:.12em; margin-left:.12em; letter-spacing:0; }
@media (min-width:640px) { .eci-cohorte-num { font-size:9rem; } }
.eci-chiffres-3 { grid-template-columns:repeat(3,minmax(0,1fr)) !important; }
.eci-icone-chiffre { font-size:1.4rem; }
.eci-fiche { background:#F8FAFC; border:1px solid #e2e8f0; border-radius:1.75rem; padding:1.5rem; }
.eci-fiche dl > div { padding:.75rem 0; border-top:1px solid #e2e8f0; }
.eci-fiche dl > div:first-child { border-top:0; padding-top:0; }
.eci-fiche dt { font-size:.62rem; font-weight:900; letter-spacing:.16em; text-transform:uppercase; color:#94a3b8; }
.eci-fiche dd { margin-top:.2rem; font-size:.9rem; font-weight:700; color:#0A2558; }
.eci-nav-cohorte { display:flex; flex-direction:column; gap:.25rem; border:1px solid #e2e8f0; border-radius:1.25rem; padding:1rem 1.25rem; background:#fff; transition:border-color .25s, box-shadow .25s, transform .25s; }
.eci-nav-cohorte:hover { border-color:#0A2558; box-shadow:0 14px 30px -20px rgba(10,37,88,.5); transform:translateY(-2px); }
.eci-nav-cohorte span { font-size:.62rem; font-weight:900; letter-spacing:.16em; text-transform:uppercase; color:#CE1126; }
.eci-nav-cohorte b { font-size:1.05rem; font-weight:900; font-style:italic; text-transform:uppercase; color:#0A2558; letter-spacing:-.02em; }
.eci-nav-cohorte em { font-style:normal; font-size:.75rem; color:#64748b; font-weight:600; }
.eci-nav-centre { background:#0A2558; border-color:#0A2558; text-align:center; align-items:center; justify-content:center; }
.eci-nav-centre b { color:#fff; } .eci-nav-centre span { color:#FCD116; }
.eci-nav-droite { text-align:right; align-items:flex-end; }

/* ---------- Carte entièrement cliquable (lien étiré) ---------- */
.eci-carte-lien { position:relative; }
.eci-lien-etire::after { content:""; position:absolute; inset:0; z-index:2; }
.eci-carte-lien:hover { box-shadow:0 36px 70px -30px rgba(10,37,88,.75); }

/* ---------- Galerie courte : 3 photos + « Voir plus » ---------- */
.eci-galerie4 { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.6rem; }
@media (min-width:768px) { .eci-galerie4 { grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; } }
.eci-galerie4 button { position:relative; display:block; aspect-ratio:4/3; border-radius:1.1rem; overflow:hidden; background:#e2e8f0; }
.eci-galerie4 img { width:100%; height:100%; object-fit:cover; object-position:50% 35%; transition:transform .8s; }
.eci-galerie4 button:hover img { transform:scale(1.05); }
.eci-plus-voile { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.2rem; background:rgba(10,37,88,.72); color:#fff; backdrop-filter:blur(2px); }
.eci-plus-voile b { font-size:1.8rem; font-weight:900; font-style:italic; line-height:1; }
.eci-plus-voile span { font-size:.65rem; font-weight:900; letter-spacing:.18em; text-transform:uppercase; }
.eci-mosaique button { display:block; padding:0; }
/* Tuiles réservées à l'ordinateur et « Voir plus » propre à chaque écran */
@media (max-width:767px) { .eci-galerie4 .eci-pc-seul, .eci-galerie4 .eci-voile-pc { display:none; } }
@media (min-width:768px) { .eci-galerie4 .eci-voile-mobile { display:none; } }

/* ---------- Visionneuse : vignettes à faire défiler ---------- */
.eci-lb { flex-direction:column; padding:3.5rem 1rem 1rem; gap:.75rem; }
.eci-lb > img { flex:1; min-height:0; }
.eci-lb-legende { position:static !important; }
.eci-lb-vignettes { display:flex; gap:.5rem; max-width:100%; overflow-x:auto; padding:.25rem; scrollbar-width:thin; }
.eci-lb-vignettes button { position:static !important; flex-shrink:0; width:4.5rem !important; height:3.2rem !important; border-radius:.6rem !important; overflow:hidden; opacity:.5; border:2px solid transparent; background:#0f2f6b !important; padding:0; }
.eci-lb-vignettes button.actif { opacity:1; border-color:#FCD116; }
.eci-lb-vignettes img { width:100%; height:100%; object-fit:cover; border-radius:0; }

/* ---------- Libellés courts sur téléphone ---------- */
.eci-court { display:none; }
@media (max-width:639px) {
  .eci-long { display:none; }
  .eci-court { display:inline; }
  /* Haut de page compact : tout est groupé en haut et le début de la suite (blanc) reste visible, ce qui invite à faire défiler */
  .eci-hero-programme .eci-chiffres { margin-top:1.25rem !important; }
  .eci-logo-ligne { flex-wrap:wrap !important; }
  .eci-logo-ligne .eci-badge:not(.eci-badge-ouvert) { max-width:calc(100% - 4.1rem); }
  .eci-logo-ligne .eci-badge-ouvert { flex-basis:100%; justify-content:center; }
  .eci-hero-contenu { padding-top:1.25rem; padding-bottom:1.5rem; }
  .eci-logo-ligne { gap:.65rem; }
  .eci-logo { width:3.4rem; height:3.4rem; flex-shrink:0; }
  .eci-logo-ligne .eci-badge { white-space:normal; line-height:1.35; border-radius:1rem; font-size:.56rem; letter-spacing:.1em; padding:.45rem .75rem .45rem .45rem; }
  .eci-h1 { font-size:2.3rem; margin-top:1.1rem; }
  .eci-partenaire { display:none; }
  .eci-boutons { flex-direction:row; margin-top:1.4rem; gap:.6rem; }
  .eci-boutons a { flex:1; padding:.95rem .5rem; font-size:.66rem; gap:.4rem; letter-spacing:.08em; }
  .eci-chiffres { grid-template-columns:repeat(4,minmax(0,1fr)) !important; gap:.4rem; margin-top:1.5rem !important; }
  .eci-chiffre { padding:.75rem .2rem; border-radius:.9rem; }
  .eci-chiffre b { font-size:1.2rem; }
  .eci-chiffre span { font-size:.5rem; letter-spacing:.06em; margin-top:.3rem; }
  .eci-chiffre span i { display:none; }
  .eci-chiffres-3 { grid-template-columns:repeat(3,minmax(0,1fr)) !important; }
  /* Dernière cohorte : carte moins imposante */
  .eci-vedette-photo { min-height:11rem !important; }
  .eci-vedette > div:last-child { padding:1.1rem 1.1rem 1.25rem; }
  .eci-numero { font-size:3.2rem; }
  .eci-vedette-texte { display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; margin-top:.75rem; font-size:.8rem; }
  .eci-vedette .mt-5 { margin-top:.75rem; }
  .eci-cohorte-num { font-size:4.5rem; }
  .eci-vedette .flex-wrap > span { font-size:.56rem; padding:.3rem .6rem; }
}

/* ---------- Temps forts d'une cohorte ---------- */
.eci-temps-fort { position:relative; border-radius:1.5rem; padding:1.5rem; background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.14); overflow:hidden; }
.eci-temps-fort::before { content:""; position:absolute; left:0; top:0; bottom:0; width:4px; background:linear-gradient(180deg,#14B53A,#FCD116,#CE1126); }
.eci-temps-fort i { width:2.75rem; height:2.75rem; border-radius:.9rem; display:inline-flex; align-items:center; justify-content:center; background:#CE1126; color:#fff; font-size:1.05rem; }
.eci-temps-fort h3 { margin-top:1rem; font-size:1.15rem; font-weight:900; font-style:italic; text-transform:uppercase; letter-spacing:-.02em; }
.eci-temps-fort p { margin-top:.4rem; font-size:.875rem; line-height:1.55; color:rgba(255,255,255,.75); }

/* Temps forts ouvrables et leur fenêtre */
button.eci-temps-fort { width:100%; text-align:left; color:#fff; cursor:pointer; transition:background .25s, transform .25s; }
.eci-tf-ouvrable:hover { background:rgba(255,255,255,.13); transform:translateY(-3px); }
.eci-tf-photo { display:block; margin:-1.5rem -1.5rem 1rem; height:8.5rem; overflow:hidden; }
.eci-tf-photo img { width:100%; height:100%; object-fit:cover; object-position:50% 35%; opacity:.9; }
.eci-tf-plus { display:inline-flex; align-items:center; gap:.4rem; margin-top:.9rem; font-size:.65rem; font-weight:900; letter-spacing:.14em; text-transform:uppercase; color:#FCD116; }
.eci-modal { position:fixed; inset:0; z-index:70; display:none; align-items:center; justify-content:center; padding:1rem; background:rgba(5,15,40,.75); backdrop-filter:blur(3px); }
.eci-modal.ouvert { display:flex; }
.eci-modal-boite { position:relative; width:100%; max-width:56rem; max-height:88vh; overflow-y:auto; background:#fff; border-radius:1.75rem; padding:1.75rem 1.5rem; box-shadow:0 40px 80px -30px rgba(0,0,0,.6); }
@media (min-width:640px) { .eci-modal-boite { padding:2.5rem; } }
.eci-modal-fermer { position:absolute; top:1rem; right:1rem; width:2.5rem; height:2.5rem; border-radius:999px; background:#F1F5F9; color:#0A2558; }
.eci-modal-fermer:hover { background:#CE1126; color:#fff; }

.eci-badge-ouvert { background:rgba(20,181,58,.22); border-color:rgba(20,181,58,.6); color:#fff; }
.eci-badge-ouvert i { background:#14B53A; font-size:.45rem; }

/* Ordinateur : haut de page plus grand pour profiter des photos, avec une fine bande blanche visible en bas de l'écran */
@media (min-width:1024px) {
  .eci-hero-programme { min-height:max(35rem, calc(100vh - 4.25rem - 8.5rem)); }
  .eci-hero-cohorte { min-height:max(38rem, calc(100vh - 4.25rem - 4.5rem)); align-items:flex-start; }
  .eci-hero-cohorte .eci-hero-contenu { padding-top:2rem; padding-bottom:3rem; }
  .eci-hero-cohorte .eci-cohorte-num { font-size:11rem; }
  .eci-hero-cohorte .eci-cohorte-titre { font-size:5rem; }
  .eci-hero-cohorte .eci-cohorte-theme { max-width:56rem; font-size:1.75rem; }
  .eci-hero-cohorte .eci-cohorte-chiffres { max-width:60rem; margin-top:2.5rem; }
  .eci-hero-cohorte .eci-chiffre { padding:1.6rem 1rem; }
  .eci-hero-cohorte .eci-chiffre b { font-size:3rem; }
}

/* ---------- Page d'une cohorte : bouton retour, nom de promotion ---------- */
.eci-retour { display:inline-flex; align-items:center; gap:.5rem; margin-bottom:1.1rem; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.22); backdrop-filter:blur(6px); border-radius:999px; padding:.45rem 1rem .45rem .8rem; font-size:.68rem; font-weight:900; letter-spacing:.16em; text-transform:uppercase; color:#fff; transition:background .25s, color .25s; }
.eci-retour:hover { background:#fff; color:#0A2558; }
.eci-retour-flottant { position:fixed; top:5.1rem; left:1rem; z-index:45; width:2.75rem; height:2.75rem; border-radius:999px; display:flex; align-items:center; justify-content:center; background:#0A2558; color:#fff; box-shadow:0 12px 26px -10px rgba(10,37,88,.7); border:2px solid rgba(255,255,255,.9); opacity:0; transform:translateY(-10px); pointer-events:none; transition:opacity .3s, transform .3s, background .25s; }
.eci-retour-flottant.visible { opacity:1; transform:none; pointer-events:auto; }
.eci-retour-flottant:hover { background:#CE1126; }
@media (min-width:1024px) { .eci-retour-flottant { left:1.5rem; top:5.5rem; width:3rem; height:3rem; } }
.eci-promotion { display:flex; align-items:center; gap:.6rem; margin-top:1rem; font-size:1.05rem; font-weight:900; font-style:italic; letter-spacing:-.01em; line-height:1.2; color:#FCD116; text-shadow:0 4px 18px rgba(0,0,0,.35); }
.eci-promotion i { color:#CE1126; font-size:.9em; }
.eci-promotion-carte { margin-top:.9rem; font-size:1rem; text-shadow:none; }
@media (min-width:640px) { .eci-promotion { font-size:1.4rem; } .eci-promotion-carte { font-size:1.1rem; } }
@media (min-width:1024px) { .eci-hero-cohorte .eci-promotion { font-size:1.9rem; margin-top:1.25rem; } }

/* ---------- Programme : trois cadres qui passent d'une cohorte à l'autre ---------- */
.eci-cadres { position:relative; display:grid; grid-template-columns:1.25fr 1fr; grid-template-rows:1fr 1fr; gap:.75rem; height:22rem; }
.eci-cadre { position:relative; display:block; padding:0; border-radius:1.5rem; overflow:hidden; background:#0A2558; }
.eci-cadre:first-child { grid-row:span 2; }
.eci-cadre img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 35%; opacity:0; transform:scale(1.04); transition:opacity 1.2s ease, transform 6s ease; }
.eci-cadre img.actif { opacity:1; transform:scale(1.1); }
.eci-cadres-points { position:absolute; left:1rem; bottom:1rem; z-index:2; display:flex; gap:.35rem; }
.eci-cadres-points span { width:.45rem; height:.45rem; border-radius:999px; background:rgba(255,255,255,.55); transition:width .3s, background .3s; }
.eci-cadres-points span.actif { width:1.4rem; background:#FCD116; }
@media (min-width:1024px) { .eci-cadres { height:21rem; } }
@media (max-width:639px) { .eci-cadres { height:15rem; gap:.5rem; } .eci-cadre { border-radius:1rem; } }

/* ---------- Cartes « temps fort » et « activité phare » : photo de couverture, un clic ouvre la fiche ---------- */
.eci-acts { display:grid; grid-template-columns:repeat(auto-fit, minmax(13rem, 1fr)); gap:1rem; }
.eci-act { position:relative; display:block; width:100%; height:21rem; border-radius:1.5rem; overflow:hidden; background:#0A2558; color:#fff; text-align:left; cursor:pointer; box-shadow:0 22px 40px -26px rgba(10,37,88,.7); transition:transform .3s, box-shadow .3s; }
.eci-act:hover { transform:translateY(-4px); box-shadow:0 30px 50px -26px rgba(10,37,88,.85); }
.eci-act-img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 35%; transition:transform 1s ease; }
.eci-act:hover .eci-act-img { transform:scale(1.07); }
.eci-act-vide { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; }
.eci-act-vide i { font-size:5rem; color:rgba(255,255,255,.08); }
.eci-act-voile { position:absolute; inset:0; background:linear-gradient(180deg, rgba(10,37,88,.1) 0%, rgba(10,37,88,.25) 40%, rgba(10,37,88,.95) 100%); }
.eci-act-icone { position:absolute; top:1rem; left:1rem; width:2.6rem; height:2.6rem; border-radius:.85rem; display:flex; align-items:center; justify-content:center; background:#CE1126; color:#fff; font-size:1rem; box-shadow:0 8px 18px -8px rgba(0,0,0,.6); }
.eci-act-corps { position:absolute; left:1.1rem; right:1.1rem; bottom:1.1rem; display:block; }
.eci-act-titre { display:block; font-size:1.2rem; font-weight:900; font-style:italic; text-transform:uppercase; letter-spacing:-.02em; line-height:1.05; }
.eci-act-resume { display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; margin-top:.45rem; font-size:.8rem; line-height:1.45; color:rgba(255,255,255,.8); }
.eci-act-plus { display:inline-flex; align-items:center; gap:.4rem; margin-top:.75rem; font-size:.62rem; font-weight:900; letter-spacing:.14em; text-transform:uppercase; color:#FCD116; }
@media (max-width:639px) { .eci-act { height:17rem; border-radius:1.25rem; } .eci-acts.eci-glisser { grid-template-columns:none; grid-auto-columns:72%; } }

/* Fenêtre d'une fiche : bandeau photo puis récit et galerie */
.eci-fiche-boite { padding:0 !important; }
.eci-fiche-boite .eci-modal-fermer { z-index:3; background:rgba(255,255,255,.92); }
.eci-fiche-bandeau { position:relative; height:12rem; background:#0A2558; overflow:hidden; }
.eci-fiche-bandeau img { width:100%; height:100%; object-fit:cover; object-position:50% 35%; }
.eci-fiche-bandeau-voile { position:absolute; inset:0; background:linear-gradient(180deg, rgba(10,37,88,.15) 0%, rgba(10,37,88,.9) 100%); }
.eci-fiche-bandeau-txt { position:absolute; left:1.5rem; right:1.5rem; bottom:1.25rem; color:#fff; }
.eci-fiche-bandeau-txt h3 { margin-top:.35rem; font-size:1.6rem; font-weight:900; font-style:italic; text-transform:uppercase; letter-spacing:-.03em; line-height:1; }
.eci-fiche-bandeau-txt h3 i { color:#CE1126; font-size:.8em; margin-right:.3rem; }
.eci-fiche-corps { padding:1.5rem; }
@media (min-width:640px) { .eci-fiche-bandeau { height:17rem; } .eci-fiche-bandeau-txt { left:2.5rem; right:2.5rem; bottom:1.75rem; } .eci-fiche-bandeau-txt h3 { font-size:2.4rem; } .eci-fiche-corps { padding:2rem 2.5rem 2.5rem; } }

/* Les sites ECI se terminent par un bandeau sombre : pas de bande blanche avant le pied de page */
footer.mt-20 { margin-top:0; }

/* ---------- Téléphone : page du programme plus compacte et régulière ---------- */
@media (max-width:639px) {
  /* Les cartes d'une même rangée (cycles, raisons, activités) gardent toutes la même taille */
  .eci-glisser { align-items:stretch; }
  .eci-cycle, .eci-carte { height:100%; }
  .eci-logo-ligne .eci-badge:not(.eci-badge-ouvert) { white-space:nowrap; }
  /* Valeurs : une ligne par valeur, icône à gauche */
  .eci-valeur { display:grid; grid-template-columns:2.25rem 1fr; column-gap:.75rem; align-items:start; padding:.9rem 1rem; border-radius:1rem; }
  .eci-valeur::after { display:none; }
  .eci-valeur > i { grid-row:span 2; font-size:1.25rem !important; margin-top:.1rem; }
  .eci-valeur h3 { margin-top:0 !important; font-size:1rem; }
  .eci-valeur p { margin-top:.2rem !important; font-size:.8rem !important; line-height:1.45 !important; }
  .eci-valeurs { grid-template-columns:1fr !important; gap:.5rem !important; }
  .eci-carte i { width:2.5rem; height:2.5rem; border-radius:.8rem; font-size:.95rem; }
  .eci-carte h3 { margin-top:.75rem !important; font-size:1rem !important; }
  .eci-cycle h3 { font-size:1.1rem !important; }
  .eci-cycle-num { font-size:3rem; }
}

/* ---------- Page d'une activité phare ou d'un temps fort (eci-activite.php) ---------- */
.eci-activite-titre { display:flex; align-items:center; gap:.85rem; font-size:2.3rem; }
.eci-activite-icone { flex-shrink:0; width:3rem; height:3rem; border-radius:1rem; display:inline-flex; align-items:center; justify-content:center; background:#CE1126; font-size:1.2rem; font-style:normal; box-shadow:0 12px 26px -12px rgba(0,0,0,.7); }
.eci-activite-resume { margin-top:1rem; max-width:48rem; font-size:1.05rem; line-height:1.5; font-weight:600; color:rgba(255,255,255,.88); }
.eci-puce { display:inline-flex; align-items:center; gap:.45rem; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.2); backdrop-filter:blur(6px); border-radius:999px; padding:.45rem .85rem; color:#fff; transition:background .25s, color .25s; }
a.eci-puce:hover { background:#fff; color:#0A2558; }
@media (min-width:640px) { .eci-activite-titre { font-size:3.6rem; } .eci-activite-icone { width:4rem; height:4rem; font-size:1.5rem; } .eci-activite-resume { font-size:1.3rem; } }
@media (min-width:1024px) {
  .eci-hero-activite { min-height:max(34rem, calc(100vh - 4.25rem - 6rem)); align-items:flex-start; }
  .eci-hero-activite .eci-hero-contenu { padding-top:2rem; padding-bottom:3rem; }
  .eci-activite-titre { font-size:4.6rem; }
}
@media (max-width:639px) { .eci-hero-activite .eci-hero-contenu { padding-top:1.25rem; padding-bottom:2rem; } .eci-hero-activite { min-height:24rem; } }
a.eci-act { display:block; }

/* ---------- Téléphone : haut de page du programme allégé, pour laisser voir les photos ---------- */
@media (max-width:639px) {
  .eci-hero-programme .eci-logo { width:2.8rem; height:2.8rem; }
  .eci-hero-programme .eci-logo-ligne .eci-badge { font-size:.5rem; padding:.35rem .65rem .35rem .4rem; }
  .eci-hero-programme .eci-logo-ligne .eci-badge i { width:1.1rem; height:1.1rem; font-size:.45rem; }
  .eci-hero-programme .eci-h1 { font-size:2rem; margin-top:.9rem; }
  .eci-hero-programme .eci-sigle { font-size:.6rem; padding:.25rem .55rem; }
  .eci-hero-programme .eci-hero-contenu p.text-xl { font-size:1rem; }
  /* Boutons plus discrets */
  .eci-hero-programme .eci-boutons { margin-top:1rem; gap:.5rem; }
  .eci-hero-programme .eci-boutons a { flex:0 0 auto; padding:.6rem .95rem; font-size:.58rem; border-radius:999px; box-shadow:none; }
  /* Chiffres : une seule bande fine au lieu de quatre gros blocs */
  .eci-hero-programme .eci-chiffres { gap:0; margin-top:1.1rem !important; background:rgba(10,37,88,.45); border:1px solid rgba(255,255,255,.14); border-radius:.9rem; backdrop-filter:blur(6px); }
  .eci-hero-programme .eci-chiffre { background:none; border:0; border-left:1px solid rgba(255,255,255,.14); border-radius:0; backdrop-filter:none; padding:.5rem .15rem; }
  .eci-hero-programme .eci-chiffre:first-child { border-left:0; }
  .eci-hero-programme .eci-chiffre b { font-size:.95rem; }
  .eci-hero-programme .eci-chiffre span { font-size:.42rem; margin-top:.2rem; }
}

/* ---------- Formulaires publics : candidature et réseau des anciens ---------- */
.eci-form-grille { display:grid; grid-template-columns:1fr; gap:1rem; border:0; padding:0; margin:0; min-width:0; }
@media (min-width:640px) { .eci-form-grille { grid-template-columns:1fr 1fr; } .eci-large { grid-column:1 / -1; } }
.eci-legende { grid-column:1 / -1; font-size:.72rem; font-weight:900; letter-spacing:.2em; text-transform:uppercase; color:#CE1126; margin-bottom:.25rem; }
.eci-label { display:block; font-size:.65rem; font-weight:900; letter-spacing:.14em; text-transform:uppercase; color:#64748b; margin-bottom:.45rem; }
.eci-champ { width:100%; border-radius:.9rem; border:2px solid #f1f5f9; background:#f8fafc; padding:.75rem 1rem; font-size:.9rem; font-weight:600; color:#0A2558; outline:none; transition:border-color .2s, background .2s; }
.eci-champ:focus { border-color:#0A2558; background:#fff; }
textarea.eci-champ { font-weight:500; resize:vertical; }
.eci-aide { margin-top:.35rem; font-size:.72rem; color:#94a3b8; }
.eci-choix { display:flex; flex-wrap:wrap; gap:.5rem; }
.eci-choix label { cursor:pointer; }
.eci-choix input { position:absolute; opacity:0; width:1px; height:1px; }
.eci-choix span { display:inline-flex; align-items:center; padding:.6rem 1rem; border-radius:999px; border:2px solid #e2e8f0; background:#fff; font-size:.82rem; font-weight:700; color:#0A2558; transition:all .2s; }
.eci-choix input:checked + span { background:#0A2558; border-color:#0A2558; color:#fff; }
.eci-choix input:focus-visible + span { outline:2px solid #CE1126; outline-offset:2px; }
.eci-piege { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }

/* ---------- Témoignages des anciens participants ---------- */
.eci-temoignages { display:grid; grid-template-columns:repeat(auto-fit, minmax(17rem, 1fr)); gap:1rem; }
.eci-temoignage { position:relative; margin:0; display:flex; flex-direction:column; background:#fff; border:1px solid #eef2f7; border-radius:1.5rem; padding:1.5rem 1.5rem 1.25rem; box-shadow:0 14px 30px -22px rgba(10,37,88,.45); overflow:hidden; }
.eci-temoignage-guillemet { position:absolute; right:1rem; top:-.6rem; font-size:6rem; font-weight:900; line-height:1; color:rgba(206,17,38,.1); }
.eci-temoignage blockquote { position:relative; margin:0; font-size:.92rem; line-height:1.6; color:#334155; font-style:italic; }
.eci-temoignage figcaption { margin-top:auto; padding-top:1.1rem; display:flex; align-items:center; gap:.75rem; }
.eci-temoignage figcaption img, .eci-temoignage-initiales { width:3rem; height:3rem; border-radius:999px; object-fit:cover; flex-shrink:0; border:2px solid #FCD116; }
.eci-temoignage-initiales { display:flex; align-items:center; justify-content:center; background:#0A2558; color:#fff; font-weight:900; font-size:.95rem; }
.eci-temoignage figcaption b { display:block; font-size:.9rem; font-weight:900; color:#0A2558; }
.eci-temoignage figcaption em { display:block; font-style:normal; font-size:.72rem; font-weight:700; color:#94a3b8; }
@media (max-width:639px) { .eci-temoignages.eci-glisser { grid-template-columns:none; grid-auto-columns:85%; } }
.eci-lien-alumni { display:flex; align-items:center; justify-content:center; gap:.5rem; margin-top:.9rem; font-size:.72rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:#FCD116; }
.eci-lien-alumni:hover { color:#fff; }
@media (min-width:1024px) { .eci-cta-droite .eci-lien-alumni { justify-content:flex-end; } }
.eci-envoi { width:100%; }
@media (min-width:640px) { .eci-envoi { width:auto; } }
@media (min-width:768px) { .eci-adm-actions { width:20rem; } }
