/* =================================================================================
   PAGE « PROGRAMME » — structure reprise de la page « Le Programme » d'Élysée Conseils,
   mise aux couleurs de Réussir Ensemble ! (bleu marine, rouge, Fraunces, Libre Franklin).
   Les noms de classes ec-* sont conservés pour pouvoir reprendre les mises à jour d'Élysée
   Conseils sans retoucher le contenu.
   ================================================================================= */
.ec-programme-page{
  --ec-navy:var(--bleu-marine);
  --ec-blue:var(--bleu-clair);
  --ec-blue-deep:var(--bleu-roi);
  --ec-accent:var(--rouge);
  --ec-accent-soft:#FDEBEC;
  --ec-accent-on-dark:#FF7A80;
  --ec-ink:var(--noir-doux);
  --ec-muted:var(--gris-texte);
  --ec-line:var(--gris-bordure);
  --ec-soft:var(--creme);
  --ec-white:#ffffff;
  color:var(--ec-ink);
  background:var(--ec-soft);
  font-family:'Libre Franklin', system-ui, sans-serif;
  font-size:17px;
  line-height:1.65;
}
.ec-programme-page *,
.ec-programme-page *:before,
.ec-programme-page *:after{ box-sizing:border-box; }
.ec-programme-page :where(h1,h2,h3,h4,p,ul,figure,blockquote){ margin:0; }
.ec-programme-page a{ color:var(--ec-blue); text-decoration:none; }
.ec-programme-page a:hover{ text-decoration:underline; text-underline-offset:3px; }
.ec-programme-page h1,.ec-programme-page h2,.ec-programme-page h3{ font-family:'Fraunces', Georgia, serif; }

.ec-programme-container{ width:min(1180px, calc(100% - 48px)); margin:0 auto; }

/* ----- En-tête de page (même esprit que le héro de l'accueil) ----- */
.ec-programme-hero{
  position:relative; overflow:hidden; isolation:isolate;
  padding:clamp(72px,9vw,120px) 0 104px;
  background:
    radial-gradient(1200px 600px at 80% -10%, rgba(46,90,168,.16), transparent 60%),
    linear-gradient(180deg, #fff 0%, var(--creme) 100%);
}
.ec-programme-hero::before{
  content:""; position:absolute; inset:0 0 auto 0; height:5px;
  background:linear-gradient(90deg, var(--bleu-marine) 0 38%, #fff 38% 62%, var(--rouge) 62% 100%);
}
.ec-programme-hero-grid{
  display:grid; grid-template-columns:minmax(0,1.3fr) minmax(340px,.7fr);
  gap:clamp(36px,6vw,64px); align-items:center;
}
.ec-programme-eyebrow{
  display:inline-flex; align-items:center; gap:10px; margin-bottom:22px;
  color:var(--bleu-clair); font-size:13px; font-weight:700; letter-spacing:3px; text-transform:uppercase;
}
.ec-programme-eyebrow:before{
  content:""; width:9px; height:9px; border-radius:50%; background:var(--rouge);
}
.ec-programme-page .ec-programme-hero h1{
  margin:0 0 22px; color:var(--bleu-marine);
  font-size:clamp(46px,7vw,84px); font-weight:900; line-height:.98; letter-spacing:-1px;
}
.ec-programme-page .ec-programme-hero h1 span{ color:var(--rouge); }
.ec-programme-hero-lead{
  max-width:680px; margin:0 0 32px; color:var(--gris-texte);
  font-size:clamp(18px,1.8vw,21px); line-height:1.6;
}
.ec-programme-hero-actions{ display:flex; flex-wrap:wrap; gap:14px; }

.ec-programme-button{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding:14px 26px; border:2px solid transparent; border-radius:999px;
  color:#fff !important; background:var(--rouge);
  font-family:'Libre Franklin', sans-serif; font-weight:600; font-size:16px; line-height:1.3;
  text-decoration:none !important; white-space:nowrap;
  transition:transform .15s ease, background .2s ease, box-shadow .2s ease, color .2s ease;
}
.ec-programme-button:after{ content:"↓"; font-size:17px; }
.ec-programme-button:hover,
.ec-programme-button:focus-visible{
  background:var(--rouge-fonce); transform:translateY(-2px); box-shadow:0 10px 24px rgba(236,0,12,.28);
}
.ec-programme-button.secondary{
  color:var(--bleu-marine) !important; border-color:var(--bleu-marine); background:transparent;
}
.ec-programme-button.secondary:after{ content:"→"; }
.ec-programme-button.secondary:hover,
.ec-programme-button.secondary:focus-visible{
  color:#fff !important; background:var(--bleu-marine); box-shadow:none;
}

.ec-programme-mantra{
  position:relative; min-height:360px; padding:34px;
  display:flex; flex-direction:column; justify-content:space-between; gap:24px;
  border-radius:24px; color:#fff; background:var(--bleu-marine);
  box-shadow:0 28px 70px rgba(7,30,74,.28); overflow:hidden;
}
.ec-programme-mantra::before{
  content:""; position:absolute; inset:0 0 auto 0; height:5px;
  background:linear-gradient(90deg, var(--bleu-clair) 0 38%, #fff 38% 62%, var(--rouge) 62% 100%);
}
.ec-programme-mantra:after{
  content:"RE"; position:absolute; right:18px; bottom:-6px;
  color:rgba(255,255,255,.06); font-family:'Fraunces', Georgia, serif;
  font-size:150px; font-weight:900; line-height:1;
}
.ec-programme-mantra-label{
  position:relative; z-index:1; color:rgba(255,255,255,.7);
  font-size:12px; font-weight:700; letter-spacing:3px; text-transform:uppercase;
}
.ec-programme-mantra blockquote{
  position:relative; z-index:1; color:#fff;
  font-family:'Fraunces', Georgia, serif; font-size:clamp(46px,5vw,70px);
  font-weight:900; line-height:.98; letter-spacing:-1px;
}
.ec-programme-mantra blockquote span{ display:block; color:var(--ec-accent-on-dark); }
.ec-programme-mantra-signature{
  position:relative; z-index:1; padding-top:18px;
  border-top:1px solid rgba(255,255,255,.2); color:rgba(255,255,255,.78); font-size:14px;
}

/* ----- Annonce Réussir Ensemble ! (ajout propre au site) ----- */
.re-programme-annonce{ position:relative; z-index:2; margin-top:-56px; }
.re-programme-annonce-carte{
  padding:clamp(26px,4vw,40px); border-radius:20px; background:#fff;
  border:1px solid var(--gris-bordure); border-left:6px solid var(--rouge);
  box-shadow:0 18px 50px rgba(7,30,74,.12);
}
.re-programme-annonce-carte .badge{
  display:inline-block; margin-bottom:14px; padding:5px 12px; border-radius:999px;
  color:var(--rouge-fonce); background:#FDEBEC;
  font-size:12px; font-weight:700; letter-spacing:1px; text-transform:uppercase;
}
.re-programme-annonce-carte h2{
  margin:0 0 16px; color:var(--bleu-marine); font-size:clamp(28px,3.6vw,40px); line-height:1.1;
}
.re-programme-annonce-carte p{ max-width:900px; margin:0 0 14px; color:var(--gris-texte); font-size:17.5px; }
.re-programme-annonce-carte p:last-child{ margin-bottom:0; }
.re-programme-annonce-carte strong{ color:var(--noir-doux); }
.re-programme-annonce .filet{ margin:6px 0 18px; }

/* ----- Carte d'introduction ----- */
.ec-programme-intro{ position:relative; z-index:2; margin-top:28px; }
.ec-programme-intro-card{
  display:grid; grid-template-columns:minmax(0,1.35fr) minmax(260px,.65fr); gap:38px;
  padding:36px; border:1px solid var(--gris-bordure); border-radius:20px;
  background:#fff; box-shadow:var(--ombre-douce);
}
.ec-programme-intro-card h2{
  margin:0 0 12px; color:var(--bleu-marine); font-size:clamp(28px,4vw,40px); line-height:1.1;
}
.ec-programme-intro-card p{ margin:0; color:var(--gris-texte); }
.ec-programme-intro-facts{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.ec-programme-fact{ padding:18px; border-radius:16px; background:var(--creme); }
.ec-programme-fact strong{
  display:block; margin-bottom:4px; color:var(--rouge);
  font-family:'Fraunces', Georgia, serif; font-size:28px; font-weight:900; line-height:1.1;
}
.ec-programme-fact span{ color:var(--gris-texte); font-size:13px; font-weight:600; }

/* ----- Sommaire ----- */
.ec-programme-nav-wrap{ padding:42px 0 18px; }
.ec-programme-nav{
  padding:24px; border:1px solid var(--gris-bordure); border-radius:20px;
  background:#fff; box-shadow:var(--ombre-douce);
}
.ec-programme-nav-title{
  display:block; margin:16px 0 12px; color:var(--rouge);
  font-size:12px; font-weight:700; letter-spacing:2px; text-transform:uppercase;
}
.ec-programme-nav-title:first-child{ margin-top:0; }
.ec-programme-nav-links{ display:flex; flex-wrap:wrap; gap:9px; }
.ec-programme-page .ec-programme-nav a{
  display:inline-flex; align-items:center; min-height:38px; padding:8px 14px;
  border:1px solid var(--gris-bordure); border-radius:999px;
  color:var(--bleu-marine); background:#fff;
  font-size:14px; font-weight:600; line-height:1.2; text-decoration:none;
  transition:.2s ease;
}
.ec-programme-page .ec-programme-nav a:hover,
.ec-programme-page .ec-programme-nav a:focus-visible{
  border-color:var(--bleu-marine); color:#fff; background:var(--bleu-marine);
}

/* ----- Sections ----- */
.ec-programme-section{ padding:76px 0; scroll-margin-top:calc(var(--header-h) + 16px); }
.ec-programme-section.white{ background:#fff; }
.ec-programme-section.navy{ color:#fff; background:var(--bleu-marine); }
.ec-programme-section-head{
  display:grid; grid-template-columns:100px minmax(0,1fr); gap:28px; align-items:start; margin-bottom:38px;
}
.ec-programme-section-number{
  display:flex; width:78px; height:78px; align-items:center; justify-content:center;
  border-radius:18px; color:var(--rouge); background:#FDEBEC;
  font-family:'Fraunces', Georgia, serif; font-size:32px; font-weight:900;
}
.ec-programme-section.navy .ec-programme-section-number{ color:#fff; background:rgba(255,255,255,.1); }
.ec-programme-section-kicker{
  display:block; margin-bottom:8px; color:var(--rouge);
  font-size:13px; font-weight:700; letter-spacing:3px; text-transform:uppercase;
}
.ec-programme-section.navy .ec-programme-section-kicker{ color:var(--ec-accent-on-dark); }
.ec-programme-page .ec-programme-section h2{
  margin:0 0 14px; color:var(--bleu-marine); font-size:clamp(32px,4.6vw,52px); line-height:1.05;
}
.ec-programme-page .ec-programme-section.navy h2{ color:#fff; }
.ec-programme-section-lead{ max-width:850px; margin:0; color:var(--gris-texte); font-size:19px; line-height:1.7; }
.ec-programme-section.navy .ec-programme-section-lead{ color:rgba(255,255,255,.8); }
.ec-programme-section-head .filet{ margin-top:16px; }

.ec-programme-quote{
  margin:0 0 34px 128px; padding:24px 28px;
  border-left:5px solid var(--rouge); border-radius:0 18px 18px 0;
  color:var(--bleu-marine); background:#FDEBEC;
  font-family:'Fraunces', Georgia, serif; font-size:clamp(20px,2.4vw,27px); font-weight:700; line-height:1.4;
}

/* ----- Mesures (accordéon) ----- */
.ec-programme-measures{ display:grid; gap:14px; margin-left:128px; }
.ec-programme-measure{
  overflow:hidden; border:1px solid var(--gris-bordure); border-radius:16px;
  background:#fff; box-shadow:var(--ombre-douce);
  transition:border-color .2s ease, box-shadow .2s ease;
}
.ec-programme-measure:hover{ border-color:var(--bleu-clair); }
.ec-programme-section.navy .ec-programme-measure{ border-color:rgba(255,255,255,.16); background:rgba(255,255,255,.07); box-shadow:none; }
.ec-programme-measure summary{
  display:grid; grid-template-columns:58px minmax(0,1fr) 30px; gap:14px; align-items:center;
  min-height:76px; padding:16px 20px; cursor:pointer; list-style:none;
}
.ec-programme-measure summary::-webkit-details-marker{ display:none; }
.ec-programme-measure summary:after{
  content:"+"; display:flex; width:30px; height:30px; align-items:center; justify-content:center;
  border-radius:50%; color:var(--rouge); background:#FDEBEC; font-size:22px; font-weight:400; line-height:1;
}
.ec-programme-measure[open] summary:after{ content:"–"; }
.ec-programme-section.navy .ec-programme-measure summary:after{ color:#fff; background:rgba(255,255,255,.12); }
.ec-programme-measure-index{ color:var(--rouge); font-size:13px; font-weight:700; letter-spacing:.05em; }
.ec-programme-section.navy .ec-programme-measure-index{ color:var(--ec-accent-on-dark); }
.ec-programme-measure summary strong{ color:var(--bleu-marine); font-size:18px; font-weight:700; line-height:1.35; }
.ec-programme-section.navy .ec-programme-measure summary strong{ color:#fff; }
.ec-programme-measure-content{ padding:0 66px 24px 92px; }
.ec-programme-measure-content p{ margin:0 0 12px; color:var(--gris-texte); line-height:1.72; }
.ec-programme-section.navy .ec-programme-measure-content p{ color:rgba(255,255,255,.8); }

/* ----- Principes, feuille de route, sources ----- */
.ec-programme-principles{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin-left:128px; }
.ec-programme-principle{
  padding:26px; border:1px solid var(--gris-bordure); border-radius:16px; background:#fff;
  box-shadow:var(--ombre-douce); transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.ec-programme-principle:hover{ transform:translateY(-4px); box-shadow:var(--ombre); border-color:var(--bleu-clair); }
.ec-programme-principle:last-child{ grid-column:1 / -1; }
.ec-programme-principle-number{
  display:inline-flex; margin-bottom:14px; padding:5px 11px; border-radius:999px;
  color:var(--rouge); background:#FDEBEC; font-size:12px; font-weight:700; letter-spacing:.06em;
}
.ec-programme-principle h3{ margin:0 0 10px; color:var(--bleu-marine); font-size:21px; line-height:1.25; }
.ec-programme-principle p{ margin:0; color:var(--gris-texte); }

.ec-programme-roadmap{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin-left:128px; }
.ec-programme-roadmap-item{
  min-height:120px; padding:22px; border:1px solid rgba(255,255,255,.16); border-radius:16px; background:rgba(255,255,255,.07);
}
.ec-programme-roadmap-item strong{ display:block; margin-bottom:6px; color:#fff; font-family:'Fraunces', Georgia, serif; font-size:19px; }
.ec-programme-roadmap-item span{ color:rgba(255,255,255,.75); font-size:14px; }
.ec-programme-sources{
  margin-top:34px; margin-left:128px; padding:24px 26px;
  border:1px solid rgba(255,255,255,.16); border-radius:16px; background:rgba(255,255,255,.07);
}
.ec-programme-sources strong{ display:block; margin-bottom:8px; color:var(--ec-accent-on-dark); }
.ec-programme-sources p{ margin:0; color:rgba(255,255,255,.78); font-size:15px; }

/* ----- Appel final ----- */
.ec-programme-final{ position:relative; padding:92px 0; text-align:center; color:#fff; background:var(--bleu-marine); }
.ec-programme-final::before{
  content:""; position:absolute; inset:0 0 auto 0; height:5px;
  background:linear-gradient(90deg, var(--bleu-clair) 0 38%, #fff 38% 62%, var(--rouge) 62% 100%);
}
.ec-programme-final h2{ margin:0 0 18px; color:#fff; font-size:clamp(36px,5vw,58px); line-height:1.05; }
.ec-programme-final p{ max-width:760px; margin:0 auto 30px; color:rgba(255,255,255,.82); font-size:20px; }
.ec-programme-final .ec-programme-hero-actions{ justify-content:center; }
.ec-programme-final .ec-programme-button:after{ content:"↓"; }
.ec-programme-final .ec-programme-button.secondary{ color:#fff !important; border-color:rgba(255,255,255,.5); }
.ec-programme-final .ec-programme-button.secondary:after{ content:"→"; }
.ec-programme-final .ec-programme-button.secondary:hover{ background:rgba(255,255,255,.12); }

/* ----- Encadrés propres aux mesures (contexte, chiffrage, critères, liens, graphiques) ----- */
.ec-contexte{ margin:0 0 26px 128px; padding:18px 22px; border:1px solid var(--gris-bordure); border-radius:16px; background:rgba(255,255,255,.75); }
.ec-programme-section.navy .ec-contexte{ background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.25); }
.ec-contexte-titre{ display:block; margin-bottom:10px; color:var(--rouge); font-size:12px; font-weight:700; letter-spacing:2px; text-transform:uppercase; }
.ec-programme-section.navy .ec-contexte-titre{ color:var(--ec-accent-on-dark); }
.ec-programme-section.navy .ec-contexte a, .ec-programme-section.navy .ec-liens a{ color:#BFD3FF; }
.ec-contexte ul,.ec-liens{ margin:0; padding-left:18px; font-size:15px; line-height:1.55; }
.ec-contexte li,.ec-liens li{ margin:0 0 6px; }
.ec-liens{ margin-top:14px; }
.ec-chiffrage,.ec-critere{ margin:0 0 10px; padding-left:14px; border-left:3px solid var(--gris-bordure); font-size:15px; line-height:1.55; color:var(--gris-texte); }
.ec-programme-measure-content .ec-chiffrage{ border-left-color:var(--bleu-clair); }
.ec-programme-measure-content .ec-critere{ border-left-color:var(--rouge); }
.ec-chiffrage-source{ margin:-4px 0 12px; padding-left:14px; border-left:3px solid var(--gris-bordure); font-size:13px; line-height:1.5; color:var(--gris-texte); }
.ec-chiffrage em{ color:var(--noir-doux); }
.ec-etat{ margin-left:8px; padding:1px 7px; border:1px dotted currentColor; border-radius:999px; font-size:10px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; opacity:.75; }
.ec-chantier{ margin:30px 0 10px; color:var(--rouge); font-size:13px; font-weight:700; letter-spacing:2px; text-transform:uppercase; }
.ec-programme-section.navy .ec-chantier{ color:var(--ec-accent-on-dark); }
.ec-suite{ margin:18px 0 0; font-size:15px; color:var(--gris-texte); }
.ec-graph{ margin:18px 0 6px; padding:16px 18px; border:1px solid var(--gris-bordure); border-radius:14px; background:#fff; }
.ec-graph svg{ display:block; width:100%; height:auto; }
.ec-graph-titre{ margin-bottom:10px; color:var(--gris-texte); font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.ec-graph-lbl{ font-size:13px; fill:#2b3a4f; }
.ec-graph-val{ font-size:13px; font-weight:700; fill:#10233f; }
.ec-graph-source{ margin:10px 0 0; color:var(--gris-texte); font-size:13px; line-height:1.5; }
.ec-a-ecrire{ margin:0 0 14px; padding:12px 16px; border:2px dashed #E0A800; border-radius:12px; background:#FFF6D6; color:#5a4300; font-size:15.5px; }

/* ----- Formulaire « Vos remarques sur le programme » ----- */
.re-programme-avis{ padding:84px 0; background:#fff; scroll-margin-top:calc(var(--header-h) + 16px); }
.re-programme-avis .section-tete{ max-width:760px; margin-bottom:36px; }
.re-programme-avis .section-tete h2{ color:var(--bleu-marine); font-size:clamp(30px,4vw,44px); }
.re-programme-avis .section-tete p{ color:var(--gris-texte); font-size:18px; margin-top:14px; }
.re-programme-avis .section-tete .kicker{
  margin-bottom:10px; color:var(--rouge); font-size:13px; font-weight:700; letter-spacing:3px; text-transform:uppercase;
}
.re-avis-grille{ display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,.6fr); gap:48px; align-items:start; }
.re-avis-form .form-ligne-3{ display:grid; grid-template-columns:150px 1fr 1fr; gap:16px; }
.re-avis-form :where(p, label){ margin:0; }
.re-avis-aside{ padding:28px; border-radius:16px; background:var(--creme); }
.re-avis-aside h3{ margin:0 0 10px; color:var(--bleu-marine); font-size:21px; }
.re-avis-aside p{ margin:0 0 12px; color:var(--gris-texte); font-size:15.5px; }

/* ----- Adaptations écrans moyens et petits ----- */
@media (max-width:980px){
  .ec-programme-hero-grid, .ec-programme-intro-card, .re-avis-grille{ grid-template-columns:1fr; }
  .ec-programme-mantra{ min-height:280px; max-width:560px; }
  .ec-programme-section-head{ grid-template-columns:76px minmax(0,1fr); gap:20px; }
  .ec-programme-section-number{ width:64px; height:64px; font-size:28px; }
  .ec-programme-quote, .ec-programme-measures, .ec-programme-principles,
  .ec-programme-roadmap, .ec-programme-sources, .ec-contexte{ margin-left:96px; }
  .ec-programme-roadmap{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:680px){
  .ec-programme-container{ width:min(100% - 32px, 1180px); }
  .ec-programme-hero{ padding:56px 0 88px; }
  .ec-programme-hero-actions{ align-items:stretch; flex-direction:column; }
  .ec-programme-button{ width:100%; white-space:normal; }
  .ec-programme-intro-card{ padding:26px; }
  .ec-programme-intro-facts{ grid-template-columns:1fr 1fr; }
  .ec-programme-section{ padding:60px 0; }
  .ec-programme-section-head{ grid-template-columns:1fr; }
  .ec-programme-section-number{ width:58px; height:58px; }
  .ec-programme-quote, .ec-programme-measures, .ec-programme-principles,
  .ec-programme-roadmap, .ec-programme-sources, .ec-contexte{ margin-left:0; }
  .ec-programme-principles, .ec-programme-roadmap{ grid-template-columns:1fr; }
  .ec-programme-principle:last-child{ grid-column:auto; }
  .ec-programme-measure summary{ grid-template-columns:44px minmax(0,1fr) 30px; padding:15px; }
  .ec-programme-measure-content{ padding:0 18px 22px; }
  .re-avis-form .form-ligne-3{ grid-template-columns:1fr; }
}
@media (prefers-reduced-motion:reduce){
  .ec-programme-button, .ec-programme-nav a, .ec-programme-principle{ transition:none; }
}
