/* ==========================================================================
   Site BIVO : compositions propres aux pages
   (en-têtes de page, blocs de suite, phases du fonctionnement, résumés de
   l'accueil, questions par sujet, page introuvable). Les composants communs
   sont dans base.css et page.css.
   ========================================================================== */

/* ---- En-tête de page (h1) ---- */
.page-tete { padding-top: clamp(40px, 6vw, 88px); }
.page-titre { font-size: clamp(30px, 5vw, 76px); max-width: 18ch; }

/* ---- Suite d'une section ---- */
.section-suite { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 28px; margin-top: clamp(28px, 4vw, 48px); }

/* ---- Bloc de fin de page ---- */
.section--suite { padding: clamp(56px, 8vw, 120px) 0 clamp(16px, 3vw, 40px); }
.suite { display: grid; gap: 16px; padding-top: clamp(28px, 4vw, 48px); border-top: 1px solid var(--line); }
.suite-titre { font-family: var(--font-display); font-weight: 600; font-size: clamp(24px, 3.2vw, 44px); letter-spacing: -0.03em; line-height: 1.05; max-width: 18ch; text-wrap: balance; }
.suite-texte { color: var(--muted); font-size: 15px; line-height: 1.55; max-width: 60ch; }
.suite-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 24px; margin-top: 8px; }

/* ---- Fonctionnement : quatre phases ---- */
.phases { list-style: none; margin: 0; padding: 0; display: grid; }
.phase {
  display: grid; grid-template-columns: 56px minmax(0, 1fr); grid-template-areas: "num titre" "num texte";
  gap: 10px clamp(12px, 2vw, 24px); padding: clamp(24px, 3vw, 36px) 0; border-top: 1px solid var(--line);
}
.phase:last-child { border-bottom: 1px solid var(--line); }
.phase-num { grid-area: num; font-family: var(--font-mono); font-size: 12px; color: var(--muted); letter-spacing: 0.08em; padding-top: 8px; }
.phase-titre { grid-area: titre; font-family: var(--font-display); font-weight: 600; font-size: clamp(20px, 2.2vw, 30px); letter-spacing: -0.02em; line-height: 1.15; }
.phase-texte { grid-area: texte; display: grid; gap: 10px; max-width: 62ch; }
.phase-texte p { margin: 0; color: var(--muted); font-size: 15px; line-height: 1.6; }
.phase-suite { padding-top: 4px; }
@media (min-width: 900px) {
  .phase { grid-template-columns: 72px minmax(0, 0.8fr) minmax(0, 1.2fr); grid-template-areas: "num titre texte"; column-gap: clamp(24px, 3vw, 48px); }
  .phase-texte { padding-top: 4px; }
}

/* ---- Accueil : résumé des forfaits ---- */
.resume-forfaits { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(16px, 2.5vw, 32px); }
.resume-forfaits-item { min-width: 0; display: grid; }
.resume-forfait {
  display: grid; gap: 8px; align-content: start;
  padding: 22px 0 24px; border-top: 1px solid var(--line);
  color: var(--fg); text-decoration: none;
  transition: border-color var(--dur-fast) var(--ease-out);
}
.resume-forfait:hover { border-top-color: var(--fg); }
.resume-forfait:hover .resume-forfait-lien { text-decoration-color: var(--fg); }
.resume-forfait:focus-visible { outline: 2px solid var(--fg); outline-offset: 6px; border-radius: 2px; }
.resume-forfait-nom { font-family: var(--font-display); font-weight: 600; font-size: clamp(22px, 2.4vw, 32px); letter-spacing: -0.02em; line-height: 1.1; }
.resume-forfait-prix { font-family: var(--font-display); font-weight: 500; font-size: clamp(18px, 1.8vw, 24px); letter-spacing: -0.01em; }
.resume-forfait-besoin { color: var(--muted); font-size: 15px; line-height: 1.5; }
.resume-forfait-lien { margin-top: 10px; font-size: 14px; font-weight: 500; text-decoration: underline; text-underline-offset: 5px; text-decoration-thickness: 1px; text-decoration-color: var(--line-strong); transition: text-decoration-color var(--dur-fast) var(--ease-out); }
@media (max-width: 760px) {
  .resume-forfaits { grid-template-columns: 1fr; gap: 0; }
  .resume-forfaits-item:last-child .resume-forfait { border-bottom: 1px solid var(--line); }
}

/* ---- Accueil : réalisation compacte ---- */
.realisation-compact { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 0.7fr); gap: clamp(24px, 4vw, 64px); align-items: center; }
.realisation-compact-image { display: block; overflow: hidden; border: 1px solid var(--line-strong); border-radius: 10px; padding: 10px 10px 0; background: #000; color: var(--fg); text-decoration: none; transition: border-color var(--dur-fast) var(--ease-out); }
.realisation-compact-image:hover { border-color: var(--fg); }
.realisation-compact-image:focus-visible { outline: 2px solid var(--fg); outline-offset: 4px; }
.realisation-compact-image img { display: block; width: 100%; height: auto; border-radius: 4px 4px 0 0; }
.realisation-compact .realisation-fiche { padding-bottom: 0; }
@media (max-width: 900px) { .realisation-compact { grid-template-columns: 1fr; } }

/* ---- Réalisation : détail ---- */
.realisation-detail { color: var(--muted); font-size: 14px; line-height: 1.5; }

/* ---- Questions par sujet ---- */
.questions-groupes { display: grid; gap: clamp(36px, 5vw, 64px); }
.questions-groupes .questions-titre { font-size: clamp(20px, 2.2vw, 28px); }
.question-reponse a { color: var(--fg); text-decoration: underline; text-underline-offset: 4px; text-decoration-color: var(--line-strong); }
.question-reponse a:hover { text-decoration-color: var(--fg); }

/* ---- Page introuvable ---- */
.section--404 { min-height: calc(70dvh - var(--bar-h)); display: grid; align-items: center; padding: clamp(56px, 8vw, 120px) 0; }
.erreur { display: grid; gap: 18px; }
.erreur .suite-actions { margin-top: 10px; }

/* ---- Démarrer : le bloc résumé et formulaire suit directement l'en-tête de page ---- */
/* Plus spécifique que « .forfaits-zone .forfaits-demande » de forfaits.css, chargée après */
.page--demarrer .forfaits-zone .forfaits-demande { margin-top: 0; padding-top: 0; border-top: 0; }

/* ---- Accueil : résumé des forfaits, offre par crédits ---- */
.resume-forfait--recommande { border-top-color: var(--accent); }
.resume-forfait-badge { justify-self: start; display: inline-flex; align-items: center; min-height: 24px; padding: 0 10px; border-radius: 999px; background: var(--accent); color: var(--accent-ink); font-size: 12px; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; }
.resume-forfait-credits { color: var(--fg); font-size: 15px; font-weight: 500; }
/* Note d'état sous les étapes (espace client en développement) */
.section-note-etat { margin-top: clamp(20px, 3vw, 28px); color: var(--muted); font-size: 14px; line-height: 1.5; max-width: 72ch; }
