/* ============================================================
   pages.css — Composants des pages intérieures & formulaires
   ============================================================ */

/* ---------- Page hero (SAMA, entreprises…) ---------- */
.page-hero{position:relative;overflow:hidden;padding-block:clamp(2.5rem,6vw,4.5rem)}
.page-hero::before{
  content:"";position:absolute;inset:0;z-index:-1;
  background:
    radial-gradient(800px 480px at 92% -10%,rgba(229,50,43,.12),transparent 60%),
    radial-gradient(640px 460px at 0% 0%,rgba(35,72,200,.12),transparent 55%),
    linear-gradient(180deg,#fff,var(--c-bg));
}
.page-hero__grid{display:grid;grid-template-columns:1.25fr .75fr;gap:clamp(2rem,5vw,3.5rem);align-items:center}
.page-hero h1{font-size:var(--step-4);margin-block:.3rem .8rem}
.page-hero__aside{display:grid;gap:var(--sp-5);align-content:start}

.breadcrumb{font-size:.85rem;color:var(--c-text-2);margin-bottom:var(--sp-4)}
.breadcrumb span{margin-inline:.35rem;color:var(--c-border)}

/* ---------- Facts (encadré clés) ---------- */
.facts{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius-lg);
  padding:var(--sp-5) var(--sp-6);box-shadow:var(--shadow-md);display:grid;gap:.2rem}
.facts li{display:flex;justify-content:space-between;gap:1rem;padding:.55rem 0;border-bottom:1px solid var(--c-border)}
.facts li:last-child{border-bottom:0}
.facts__k{color:var(--c-text-2);font-size:.9rem}
.facts__v{font-weight:700;color:var(--c-ink);text-align:right;font-size:.92rem}

/* ---------- Deux colonnes ---------- */
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4rem);align-items:center}
.two-col--reverse > :first-child{order:2}
.two-col--form{align-items:start;grid-template-columns:1fr 1.05fr}

/* ---------- Listes à puces check ---------- */
.check-list{display:grid;gap:.7rem;margin-top:var(--sp-2)}
.check-list li{position:relative;padding-left:2rem;color:var(--c-text)}
.check-list li::before{content:"✓";position:absolute;left:0;top:0;display:grid;place-items:center;
  width:22px;height:22px;border-radius:50%;background:var(--c-accent-50);color:var(--c-accent-700);font-size:.8rem;font-weight:700}

/* ---------- Numéro de carte programme ---------- */
.card__num{font-family:var(--font-title);font-weight:800;font-size:1.6rem;color:var(--c-accent);
  opacity:.65;margin-bottom:var(--sp-2)}

/* ---------- Rythme alternance ---------- */
.split-rythme{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-6)}
.rythme-block{border-radius:var(--radius-lg);padding:var(--sp-8);color:#fff}
.rythme-block h3{color:#fff;margin-bottom:var(--sp-2)}
.rythme-block--centre{background:linear-gradient(135deg,var(--c-primary),var(--c-primary-700))}
.rythme-block--entreprise{background:linear-gradient(135deg,var(--c-accent),var(--c-accent-700))}
.note-center{text-align:center;margin-top:var(--sp-8);color:var(--c-text-2);max-width:60ch;margin-inline:auto}
.note-center--inv{color:#aebfd3}
.note-center--inv a{color:var(--c-accent)}

/* ---------- Rémunération ---------- */
.salary{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius-lg);
  padding:var(--sp-6);box-shadow:var(--shadow-md)}
.salary__table{width:100%;border-collapse:collapse}
.salary__table th,.salary__table td{padding:.85rem 1rem;text-align:left;border-bottom:1px solid var(--c-border)}
.salary__table th{font-family:var(--font-title);color:var(--c-ink);font-size:.95rem}
.salary__table td:last-child{font-weight:700;color:var(--c-primary-700)}
.salary__table tr:last-child td{border-bottom:0}
.salary__note{font-size:.8rem;color:var(--c-text-2);margin-top:var(--sp-3)}
.muted{color:var(--c-text-2);font-size:.92rem}

/* ---------- Étapes (admission / process) ---------- */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-6);counter-reset:step}
.step{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius-lg);padding:var(--sp-6);position:relative}
.step__num{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;
  background:var(--c-ink);color:#fff;font-family:var(--font-title);font-weight:800;margin-bottom:var(--sp-3)}
.step h3{font-size:1.05rem;margin-bottom:.3rem}
.step p{color:var(--c-text-2);font-size:.92rem}

/* ---------- Section sombre (indicateurs) ---------- */
.section--dark{background:var(--c-ink);color:#cdd8e6}
.section__head--inv .section__title,.section--dark h2{color:#fff}
.stats--inv .stat__num{color:#fff}
.stats--inv .stat__label{color:#aebfd3}

/* ---------- Callout accessibilité ---------- */
.callout{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-6);flex-wrap:wrap;
  background:var(--c-primary-50);border:1px solid #cfe3f6;border-radius:var(--radius-lg);padding:var(--sp-8)}
.callout h3{margin-bottom:.3rem}
.callout p{color:var(--c-text-2);max-width:52ch}

/* ---------- FAQ ---------- */
.faq{display:grid;gap:var(--sp-3)}
.faq__item{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);overflow:hidden}
.faq__item summary{cursor:pointer;padding:1.1rem 1.3rem;font-family:var(--font-title);font-weight:700;
  color:var(--c-ink);list-style:none;display:flex;justify-content:space-between;align-items:center;gap:1rem}
.faq__item summary::-webkit-details-marker{display:none}
.faq__item summary::after{content:"+";font-size:1.5rem;color:var(--c-accent);transition:transform var(--transition)}
.faq__item[open] summary::after{transform:rotate(45deg)}
.faq__item p{padding:0 1.3rem 1.2rem;color:var(--c-text-2)}

/* ---------- Section CTA / formulaire ---------- */
.section--cta{background:linear-gradient(180deg,var(--c-bg),var(--c-primary-50))}
.form-card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius-lg);
  padding:clamp(1.5rem,3vw,2.25rem);box-shadow:var(--shadow-lg)}

/* ---------- Témoignages ---------- */
.quote{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius-lg);padding:var(--sp-8)}
.quote blockquote{color:var(--c-text);font-size:1.02rem;line-height:1.6}
.quote figcaption{margin-top:var(--sp-4);display:grid}
.quote figcaption strong{color:var(--c-ink)}
.quote figcaption span{color:var(--c-text-2);font-size:.88rem}

/* ---------- Contact ---------- */
.contact-info{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius-lg);padding:var(--sp-8);box-shadow:var(--shadow-md)}
.contact-info h2{font-size:var(--step-1);margin-bottom:var(--sp-4)}
.contact-list{display:grid;gap:var(--sp-4);margin-bottom:var(--sp-6)}
.contact-list li{display:grid;gap:.15rem}
.contact-list__k{font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:var(--c-text-2)}
.contact-social{display:flex;gap:var(--sp-4);margin-top:var(--sp-5);flex-wrap:wrap}
.contact-social a{font-size:.9rem}

/* ---------- Page de remerciement ---------- */
.success-badge{display:grid;place-items:center;width:72px;height:72px;margin:0 auto var(--sp-5);
  border-radius:50%;background:var(--c-accent-50);color:var(--c-accent-700);font-size:2rem;font-weight:800}
.merci-actions{display:flex;gap:var(--sp-4);justify-content:center;flex-wrap:wrap;margin-top:var(--sp-8)}
.merci-contact{margin-top:var(--sp-8);color:var(--c-text-2)}

/* ============================================================
   Formulaires de capture
   ============================================================ */
.form__grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-4)}
.field--half{grid-column:span 1}
.field:not(.field--half),.lead-form__title,.lead-form__intro,.field--consent,
.form__grid > .field:not(.field--half){grid-column:1 / -1}
.lead-form__title{font-size:var(--step-1);margin-bottom:.2rem}
.lead-form__intro{color:var(--c-text-2);margin-bottom:var(--sp-2)}
.form--compact .form__grid{grid-template-columns:1fr}

.field--error input,.field--error textarea,.field--error select{border-color:var(--c-danger)}
.field__error{color:var(--c-danger);font-size:.82rem;font-weight:500}

.consent{display:flex;gap:.6rem;align-items:flex-start;font-size:.85rem;color:var(--c-text-2);line-height:1.5;cursor:pointer}
.consent input{margin-top:.2rem;width:18px;height:18px;flex:0 0 auto;accent-color:var(--c-accent)}
.consent a{color:var(--c-primary-700);text-decoration:underline}

.alert{padding:.85rem 1.1rem;border-radius:var(--radius-sm);font-size:.9rem;font-weight:500}
.alert--error{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}

/* ---------- Responsive pages ---------- */
@media (max-width:900px){
  .page-hero__grid,.two-col,.two-col--form{grid-template-columns:1fr}
  .two-col--reverse > :first-child{order:0}
  .steps{grid-template-columns:1fr 1fr}
  .split-rythme{grid-template-columns:1fr}
}
@media (max-width:560px){
  .form__grid{grid-template-columns:1fr}
  .field--half{grid-column:1 / -1}
  .steps{grid-template-columns:1fr}
  .callout{flex-direction:column;align-items:flex-start}
}

/* ============================================================
   Aimants à leads : calculateurs, quiz, bouton flottant
   ============================================================ */

/* ---------- Calculateurs ---------- */
.calc{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius-lg);
  padding:clamp(1.5rem,3vw,2.25rem);box-shadow:var(--shadow-lg);display:grid;gap:var(--sp-5)}
.calc__head{text-align:center}
.calc__title{font-size:var(--step-2);margin-bottom:.25rem}
.calc__sub{color:var(--c-text-2);font-size:.95rem}
.calc__controls{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-4)}
.calc__controls--2{grid-template-columns:1fr 1fr}

.calc__result{background:linear-gradient(135deg,var(--c-primary),var(--c-primary-700));
  color:#fff;border-radius:var(--radius);padding:var(--sp-6);text-align:center}
.calc__amount-wrap{display:flex;align-items:baseline;justify-content:center;gap:.4rem}
.calc__amount{font-family:var(--font-title);font-weight:800;font-size:clamp(2.4rem,7vw,3.4rem);
  color:#fff;line-height:1;letter-spacing:-.02em}
.calc__unit{font-size:1rem;opacity:.85}
.calc__mini{display:block;font-size:.85rem;opacity:.85;margin-bottom:.2rem}
.calc__pct{display:inline-block;margin-top:.5rem;background:rgba(255,255,255,.18);
  padding:.25rem .8rem;border-radius:var(--radius-pill);font-weight:600;font-size:.9rem}
.calc__hint{margin-top:var(--sp-3);font-size:.82rem;opacity:.9;max-width:46ch;margin-inline:auto}

.calc__result--emp{background:linear-gradient(135deg,var(--c-ink),#0d3a64)}
.calc__rows{display:grid;gap:.5rem;margin-bottom:var(--sp-5);text-align:left;
  max-width:420px;margin-inline:auto}
.calc__row{display:flex;justify-content:space-between;gap:1rem;padding-bottom:.5rem;
  border-bottom:1px dashed rgba(255,255,255,.2);font-size:.92rem}
.calc__row span{opacity:.85}
.calc__row strong{color:#fff}
.calc__result--emp .text-accent{color:#6fe3a8}

.calc__capture{border-top:1px solid var(--c-border);padding-top:var(--sp-5);gap:var(--sp-4)}
.calc__cta-label{font-weight:600;color:var(--c-ink);text-align:center}

/* ---------- Quiz d'éligibilité ---------- */
.quiz{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius-lg);
  padding:clamp(1.5rem,3vw,2.5rem);box-shadow:var(--shadow-lg);position:relative}
.quiz__bar{height:6px;background:var(--c-border);border-radius:var(--radius-pill);overflow:hidden;margin-bottom:var(--sp-6)}
.quiz__bar span{display:block;height:100%;background:linear-gradient(90deg,var(--c-primary),var(--c-accent));
  transition:width var(--transition-slow)}
.quiz__step{border:0;padding:0;margin:0}
.quiz__step legend{font-family:var(--font-title);font-weight:700;font-size:var(--step-1);
  color:var(--c-ink);margin-bottom:var(--sp-5);text-align:center;width:100%}
.quiz__opts{display:grid;gap:var(--sp-3)}
.quiz__opts button{padding:1rem 1.25rem;border:1.5px solid var(--c-border);border-radius:var(--radius);
  background:#fff;text-align:left;font-weight:600;color:var(--c-ink);transition:all var(--transition)}
.quiz__opts button:hover{border-color:var(--c-accent);background:var(--c-accent-50);transform:translateX(3px)}
.quiz__opts button.is-selected{border-color:var(--c-primary);background:var(--c-primary-50)}
.quiz__result{text-align:center}
.quiz__badge{font-size:2.5rem;margin-bottom:var(--sp-2)}
.quiz__result h3{font-size:var(--step-2)}
.quiz__result p{color:var(--c-text-2);max-width:48ch;margin:var(--sp-3) auto var(--sp-6)}
.quiz__result .form{text-align:left}
.quiz__back{margin-top:var(--sp-5);color:var(--c-text-2);font-weight:600;font-size:.9rem}
.quiz__back:hover{color:var(--c-primary-700)}

/* ---------- Bouton flottant « Être rappelé » ---------- */
.fab{position:fixed;left:1.25rem;bottom:1.25rem;z-index:140;display:inline-flex;align-items:center;gap:.5rem;
  padding:.85rem 1.3rem;border-radius:var(--radius-pill);
  background:linear-gradient(135deg,var(--c-primary),var(--c-accent));color:#fff;font-weight:700;
  box-shadow:var(--shadow-lg);transition:transform var(--transition),box-shadow var(--transition)}
.fab:hover{transform:translateY(-3px) scale(1.02);color:#fff}
.fab__icon{font-size:1.1rem}
@media (max-width:680px){
  .fab{bottom:5rem}              /* au-dessus de la barre CTA mobile */
  .fab__label{display:none}
  .fab{padding:.9rem;border-radius:50%}
  .fab__icon{font-size:1.4rem}
}

/* ---------- Modale (dialog natif) ---------- */
.modal{width:min(440px,92vw);border:0;border-radius:var(--radius-lg);padding:clamp(1.5rem,3vw,2rem);
  box-shadow:var(--shadow-lg);color:var(--c-text);margin:auto}  /* margin:auto recentre le dialog (sinon écrasé par *{margin:0}) */
.modal::backdrop{background:rgba(11,42,74,.55);backdrop-filter:blur(3px)}
.modal__head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}
.modal__title{font-size:var(--step-1)}
.modal__close{font-size:1.6rem;line-height:1;color:var(--c-text-2);width:36px;height:36px;border-radius:50%}
.modal__close:hover{background:var(--c-bg);color:var(--c-ink)}
.modal__sub{color:var(--c-text-2);font-size:.92rem;margin:.25rem 0 var(--sp-5)}
.modal .form{gap:var(--sp-4)}

/* Lien outil dans le hero */
.hero__tool-link{margin-top:var(--sp-5)}
.hero__tool-link a{display:inline-block;font-weight:700;color:var(--c-primary-700);
  border-bottom:2px solid var(--c-accent);padding-bottom:2px}
.hero__tool-link a:hover{color:var(--c-accent-700)}

/* ============================================================
   Images / médias
   ============================================================ */
.qualiopi-img{width:150px;height:auto;border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);background:#fff}
.qualiopi-legend{font-size:.82rem;color:#8fa3bd;margin-top:var(--sp-3);max-width:34ch}
.hero__trust .qualiopi-img{flex:0 0 auto}

/* Cadre média générique (sections deux colonnes) */
.media-frame{position:relative;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-lg);
  aspect-ratio:3/2;background:var(--c-primary-50)}
.media-frame img{width:100%;height:100%;object-fit:cover}

/* Photo hero (page SAMA) avec macaron en incrustation */
.hero-photo{position:relative;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-lg);aspect-ratio:3/2}
.hero-photo > img:first-child{width:100%;height:100%;object-fit:cover}
.hero-photo__badge{position:absolute;left:12px;bottom:12px;width:84px;height:auto;
  border-radius:8px;box-shadow:var(--shadow-md);background:#fff}

/* ---------- Résultat verrouillé (simulateurs) + récompense /merci ---------- */
.calc__locked{display:flex;align-items:center;gap:.75rem;justify-content:center;text-align:center;
  background:var(--c-primary-50);border:1.5px dashed #b9d4ee;border-radius:var(--radius);
  padding:var(--sp-5);color:var(--c-text-2);transition:all var(--transition)}
.calc__locked.is-ready{background:#E8F5EF;border-color:#9bdcbd;border-style:solid;color:#1f7a52;font-weight:600}
.calc__lock{font-size:1.4rem;flex:0 0 auto}
.calc__locked p{margin:0;font-size:.92rem}
.calc__locked--emp{margin-top:var(--sp-4);background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.35);color:#eaf3fb}

.merci-reward{margin:var(--sp-8) auto 0;max-width:460px;display:grid;gap:.3rem;
  background:linear-gradient(135deg,var(--c-primary),var(--c-primary-700));color:#fff;
  border-radius:var(--radius-lg);padding:var(--sp-8);box-shadow:var(--shadow-lg)}
.merci-reward__label{font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;opacity:.85}
.merci-reward__value{font-family:var(--font-title);font-weight:800;font-size:clamp(1.8rem,5vw,2.6rem);line-height:1.1}
.merci-reward__note{font-size:.8rem;opacity:.85;margin-top:.4rem}

/* ============================================================
   Campus Paris Nation : carte + transports
   ============================================================ */
.campus-map{border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-lg);background:var(--c-primary-50)}
.campus-map iframe{display:block;width:100%;aspect-ratio:4/3;border:0}
.campus-map figcaption{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;
  padding:.7rem 1rem;background:#fff;font-size:.88rem;color:var(--c-text-2);border-top:1px solid var(--c-border)}
.campus-map__marker{font-size:1rem}

.transport{display:flex;flex-wrap:wrap;gap:.5rem;margin:var(--sp-5) 0}
.transport__pin{display:inline-grid;place-items:center;min-width:34px;height:34px;padding:0 .5rem;
  border-radius:var(--radius-pill);font-weight:800;font-size:.82rem;color:#fff;font-family:var(--font-title)}
.transport__pin--m1{background:#FFCE00;color:#1a1a1a}
.transport__pin--m2{background:#0064B0}
.transport__pin--m6{background:#6ECA97;color:#0b3d29}
.transport__pin--m9{background:#B6BD00;color:#1a1a1a}
.transport__pin--rer{background:#E2231A}

/* ============================================================
   Chat de qualification (desktop)
   ============================================================ */
.chat{position:fixed;right:1.25rem;bottom:1.25rem;z-index:160}
.chat__launcher{display:inline-flex;align-items:center;gap:.5rem;padding:.8rem 1.2rem;
  border-radius:var(--radius-pill);background:linear-gradient(135deg,var(--c-accent),var(--c-accent-700));
  color:#fff;font-weight:700;box-shadow:var(--shadow-lg);transition:transform var(--transition)}
.chat__launcher:hover{transform:translateY(-3px) scale(1.02);color:#fff}
.chat__launcher-av{width:40px;height:40px;border-radius:50%;background:#fff;flex:0 0 auto;box-shadow:0 0 0 2px rgba(255,255,255,.55)}
.chat__launcher-text{font-size:.76rem;line-height:1.2;text-align:left;opacity:.95}
.chat__launcher-text strong{font-size:.9rem}

.chat__panel{position:fixed;right:1.25rem;bottom:1.25rem;width:min(370px,92vw);height:min(560px,80vh);
  display:flex;flex-direction:column;background:#fff;border:1px solid var(--c-border);
  border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden}
.chat__head{display:flex;align-items:center;gap:.7rem;padding:.9rem 1rem;
  background:linear-gradient(135deg,var(--c-primary),var(--c-primary-700));color:#fff}
.chat__avatar-wrap{position:relative;flex:0 0 auto}
.chat__avatar-img{display:block;width:40px;height:40px;border-radius:50%;background:#fff}
.chat__online{position:absolute;right:0;bottom:0;width:11px;height:11px;border-radius:50%;background:#34d399;border:2px solid #fff}
.chat__head-txt{display:flex;flex-direction:column;line-height:1.2;flex:1}
.chat__head-txt strong{font-size:.98rem}
.chat__head-txt span{font-size:.76rem;opacity:.85}
.chat__close{color:#fff;font-size:1.5rem;line-height:1;width:32px;height:32px;border-radius:50%}
.chat__close:hover{background:rgba(255,255,255,.15)}

.chat__body{flex:1;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:.55rem;background:var(--c-bg)}
.chat__msg{max-width:82%;padding:.6rem .85rem;border-radius:14px;font-size:.92rem;line-height:1.45;animation:chatIn .25s ease}
.chat__msg--bot{align-self:flex-start;background:#fff;border:1px solid var(--c-border);border-bottom-left-radius:4px;color:var(--c-text)}
.chat__msg--user{align-self:flex-end;background:var(--c-primary);color:#fff;border-bottom-right-radius:4px}
@keyframes chatIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

.chat__input{padding:.75rem 1rem;border-top:1px solid var(--c-border);background:#fff;display:flex;flex-direction:column;gap:.5rem}
.chat__choice{padding:.7rem .9rem;border:1.5px solid var(--c-border);border-radius:var(--radius);background:#fff;
  text-align:left;font-weight:600;color:var(--c-ink);transition:all var(--transition)}
.chat__choice:hover{border-color:var(--c-accent);background:var(--c-accent-50)}
.chat__form{display:flex;gap:.5rem}
.chat__form input{flex:1;padding:.65rem .8rem;border:1.5px solid var(--c-border);border-radius:var(--radius-sm)}
.chat__form input:focus{outline:none;border-color:var(--c-primary);box-shadow:0 0 0 3px var(--c-primary-50)}
.chat__send{flex:0 0 auto;width:44px;border-radius:var(--radius-sm);background:var(--c-primary);color:#fff;font-size:1.1rem;font-weight:700}
.chat__send:hover{background:var(--c-primary-700)}
.chat__done{text-align:center;color:var(--c-accent-700);font-weight:700;padding:.4rem}
.chat__legal{font-size:.72rem;color:var(--c-text-2);padding:.5rem 1rem;background:#fff;border-top:1px solid var(--c-border);margin:0}
.chat__legal a{color:var(--c-primary-700)}

/* Chat = desktop uniquement */
@media (max-width:820px){ .chat{display:none} }

/* ============================================================
   Formations courtes : cartes de session
   ============================================================ */
.sessions-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:var(--sp-6)}
.session-card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius-lg);
  padding:var(--sp-6);display:flex;flex-direction:column;gap:var(--sp-3);box-shadow:var(--shadow-sm);
  transition:transform var(--transition),box-shadow var(--transition)}
.session-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}
.session-card__top{display:flex;justify-content:space-between;align-items:center;gap:.5rem}
.session-card__date{font-weight:700;color:var(--c-primary-700);font-size:.9rem}
.session-card__places{font-size:.78rem;font-weight:700;color:var(--c-accent-700);
  background:var(--c-accent-50);padding:.2rem .6rem;border-radius:var(--radius-pill)}
.session-card__full{font-size:.78rem;font-weight:700;color:#92400e;background:#fef3c7;padding:.2rem .6rem;border-radius:var(--radius-pill)}
.session-card__title{font-size:var(--step-1);line-height:1.2}
.session-card__meta{display:grid;gap:.4rem;color:var(--c-text-2);font-size:.92rem}
.session-card__meta small{opacity:.8}
.session-card .btn{margin-top:auto}

/* ============================================================
   Pages légales (prose)
   ============================================================ */
.legal{max-width:800px;margin-inline:auto}
.legal h2{font-size:var(--step-1);margin-top:var(--sp-10);margin-bottom:var(--sp-3);color:var(--c-ink)}
.legal h2:first-of-type{margin-top:0}
.legal h3{font-size:1.05rem;margin-top:var(--sp-6);margin-bottom:var(--sp-2);color:var(--c-ink)}
.legal p,.legal li{color:var(--c-text-2);margin-bottom:var(--sp-3);line-height:1.7}
.legal ul{list-style:disc;padding-left:1.4rem;display:grid;gap:.35rem;margin-bottom:var(--sp-4)}
.legal strong{color:var(--c-ink)}
.legal a{color:var(--c-primary-700);text-decoration:underline}
.legal__meta{font-size:.85rem;color:var(--c-text-2);margin-bottom:var(--sp-6)}
.legal__notice{background:var(--c-primary-50);border:1px solid #cfe3f6;border-radius:var(--radius);
  padding:var(--sp-4) var(--sp-5);font-size:.9rem;margin-bottom:var(--sp-8)}
.legal dl{display:grid;grid-template-columns:max-content 1fr;gap:.5rem 1.2rem;margin-bottom:var(--sp-4)}
.legal dt{font-weight:700;color:var(--c-ink)}
.legal dd{color:var(--c-text-2)}
.todo{background:#fef3c7;color:#92400e;padding:.05em .4em;border-radius:4px;font-weight:600}
@media (max-width:560px){.legal dl{grid-template-columns:1fr;gap:.1rem 0}.legal dd{margin-bottom:.5rem}}

/* Callout contact (accessibilité) + recadrage avatar chat */
.callout__contact{display:flex;flex-direction:column;gap:.6rem;flex:0 0 auto}
.chat__avatar-img,.chat__launcher-av{object-fit:cover}

/* ============================================================
   Offres d'emploi
   ============================================================ */
.offres-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--sp-6)}
.offre-card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius-lg);
  padding:var(--sp-6);display:flex;flex-direction:column;gap:var(--sp-3);box-shadow:var(--shadow-sm);
  transition:transform var(--transition),box-shadow var(--transition)}
.offre-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}
.offre-card__head{display:flex;justify-content:space-between;align-items:center;gap:.5rem}
.offre-card__contrat{display:inline-block;background:var(--c-accent-50);color:var(--c-accent-700);
  font-size:.78rem;font-weight:700;padding:.2rem .6rem;border-radius:var(--radius-pill);text-transform:capitalize}
.offre-card__date{font-size:.8rem;color:var(--c-text-2)}
.offre-card__title{font-size:var(--step-1);line-height:1.2}
.offre-card__meta{color:var(--c-text-2);font-size:.92rem}
.offre-card__desc{color:var(--c-text-2);font-size:.92rem;flex:1}
.offre-card .btn{margin-top:auto}

/* ============================================================
   Catalogue & fiches formations courtes
   ============================================================ */
.offre-card__title a{color:inherit;text-decoration:none}
.offre-card__title a:hover{color:var(--c-primary-700)}
.formation-card__foot{display:flex;justify-content:space-between;align-items:center;gap:.5rem;
  font-size:.9rem;color:var(--c-text-2);margin-top:.1rem}
.formation-card__next{font-size:.76rem;font-weight:700;color:var(--c-primary-700);
  background:var(--c-primary-50);padding:.2rem .6rem;border-radius:var(--radius-pill)}
.formation-card__price{font-weight:700;color:var(--c-ink)}

.formation-meta{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:var(--sp-4)}
.formation-meta__chip{display:inline-flex;align-items:center;gap:.35rem;background:var(--c-surface);
  border:1px solid var(--c-border);color:var(--c-text);font-size:.88rem;font-weight:600;
  padding:.4rem .8rem;border-radius:var(--radius-pill)}

.two-col--wide{grid-template-columns:1.55fr .9fr;align-items:start;gap:clamp(2rem,4vw,3.5rem)}
.formation-prose > h2{margin:var(--sp-10) 0 var(--sp-4);font-size:var(--step-2)}
.formation-prose > h2:first-child{margin-top:0}
.formation-prose p{color:var(--c-text-2);line-height:1.75;margin-bottom:var(--sp-4)}
.prog-list{counter-reset:prog;display:grid;gap:.7rem;margin-top:var(--sp-2);padding:0;list-style:none}
.prog-list li{position:relative;padding-left:2.4rem;color:var(--c-text)}
.prog-list li::before{counter-increment:prog;content:counter(prog);position:absolute;left:0;top:-.15rem;
  width:1.7rem;height:1.7rem;display:grid;place-items:center;font-size:.8rem;font-weight:700;
  color:#fff;background:var(--c-primary);border-radius:50%}

.formation-aside{align-self:start;position:sticky;top:calc(var(--header-h) + 1rem)}
.form-card--info h3{margin-bottom:var(--sp-4)}
.info-list{display:grid;gap:.6rem;margin:0 0 var(--sp-5);padding:0;list-style:none}
.info-list li{display:flex;justify-content:space-between;gap:1rem;padding-bottom:.6rem;
  border-bottom:1px solid var(--c-border);font-size:.92rem}
.info-list li:last-child{border-bottom:0;padding-bottom:0}
.info-list span{color:var(--c-text-2)}
.info-list strong{color:var(--c-ink);text-align:right}

@media (max-width:900px){
  .two-col--wide{grid-template-columns:1fr}
  .formation-aside{position:static}
}

/* ============================================================
   Actualités (blog)
   ============================================================ */
.actu-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--sp-8)}
.actu-card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius-lg);
  overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--shadow-sm);
  transition:transform var(--transition),box-shadow var(--transition)}
.actu-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}
.actu-card__media{display:block;aspect-ratio:16/10;overflow:hidden;background:linear-gradient(135deg,var(--c-primary),var(--c-accent));position:relative}
.actu-card__media img{width:100%;height:100%;object-fit:cover}
.actu-card__ph{position:absolute;inset:0;display:grid;place-items:center;color:#fff;font-family:var(--font-title);font-weight:800;font-size:1.6rem;opacity:.85}
.actu-card__body{padding:var(--sp-6);display:flex;flex-direction:column;gap:.5rem;flex:1}
.actu-card__date{font-size:.8rem;color:var(--c-text-2);text-transform:uppercase;letter-spacing:.04em}
.actu-card__title{font-size:1.2rem;line-height:1.25}
.actu-card__title a{color:var(--c-ink)}
.actu-card__title a:hover{color:var(--c-primary-700)}
.actu-card__chapo{color:var(--c-text-2);font-size:.92rem;flex:1}
.actu-card__link{font-weight:700;color:var(--c-primary-700);font-size:.9rem;margin-top:auto}

.article-meta{color:var(--c-text-2);font-size:.9rem;margin-top:.5rem}
.article-chapo{font-weight:500;color:var(--c-ink);border-left:4px solid var(--c-accent);padding-left:1rem;margin-bottom:var(--sp-6)}
.article-body{font-size:1.02rem}
.article-body h2{font-size:var(--step-2);margin-top:var(--sp-8)}
.article-body h3{font-size:var(--step-1);margin-top:var(--sp-6)}
.article-body p{margin-bottom:var(--sp-4)}
.article-body ul{list-style:disc;padding-left:1.4rem;display:grid;gap:.4rem;margin-bottom:var(--sp-4);color:var(--c-text-2)}
.article-cta{margin-top:var(--sp-12);padding:var(--sp-8);background:var(--c-primary-50);border-radius:var(--radius-lg);text-align:center}
.article-cta h2{font-size:var(--step-1)}
.article-cta p{color:var(--c-text-2);margin:.4rem 0 var(--sp-5)}
.back-link{font-weight:600;color:var(--c-primary-700)}
