/* =========================================================================
   Raccords WordPress : ce qui n’existait pas dans la maquette
   ========================================================================= */

/* transitions entre pages : le rideau de la maquette, version multi-pages
   (amélioration progressive : sans prise en charge, la navigation reste normale) */
@view-transition { navigation: auto; }
::view-transition-old(root) { animation: var(--t3) var(--ease-in) both eco-vt-out; }
::view-transition-new(root) { animation: var(--t3) var(--ease) both eco-vt-in; }
@keyframes eco-vt-out { to { opacity: 0; transform: translateY(-12px); } }
@keyframes eco-vt-in { from { opacity: 0; transform: translateY(16px); } }
@media (prefers-reduced-motion: reduce) { @view-transition { navigation: none; } }

/* barre d’administration WordPress : l’en-tête collant passe dessous */
.admin-bar .hdr { top: var(--wp-admin--admin-bar--height, 32px); }
@media (max-width: 600px) { .admin-bar .hdr { top: 0; } }

/* contenu saisi dans l’éditeur de blocs */
.entry { max-width: 72ch; }
.entry > * + * { margin-top: 1em; }
.entry h2, .entry h3 { margin-top: 1.6em; }
.entry img { height: auto; }
.entry ul, .entry ol { padding-left: 1.3em; }
.entry ul { list-style: disc; }
.entry ol { list-style: decimal; }
.entry li + li { margin-top: .35em; }
.entry li::marker { color: var(--mk); }
.entry a { color: var(--action); text-decoration: underline; text-underline-offset: 3px; }

/* alignements standard de l’éditeur */
.alignwide { width: min(var(--max), 100%); margin-inline: auto; }
.alignfull { width: 100vw; margin-inline: calc(50% - 50vw); }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* sans JavaScript : l’escalier narratif se lit comme une liste, rien n’est masqué */
html:not(.js) .stair { height: auto; }
html:not(.js) .stair-pin { position: static; height: auto; padding-block: 80px; }
html:not(.js) .stair-txt { min-height: 0; display: grid; gap: 40px; }
html:not(.js) .stair-step { position: static; opacity: 1; transform: none; }
html:not(.js) .stair-prog, html:not(.js) .stair-art .walker { display: none; }

/* fiche formation : le bouton d’impression n’a de sens qu’avec JavaScript */
html:not(.js) [data-imprimer] { display: none; }
.fs-cards .mod-kv { align-self: stretch; margin-top: 10px; }

/* impression du programme : contenu seul, accordéons dépliés */
@media print {
  .hdr, .ftr, .toc, .aside-card, .mobile-cta, .btn, .vis-slot, [data-imprimer], .skip { display: none !important; }
  .tp-art { max-height: 160px; }
  .fiche-layout { display: block !important; }
  .acc-b, .js .acc-h[aria-expanded="false"] + .acc-b { grid-template-rows: 1fr !important; }
  .fiche-main > section { padding-block: 0 24px; }
  .fiche-main .card, .fiche-main h2 { break-inside: avoid; }
  .fiche-main h2, .fiche-main .eb { break-after: avoid; }
  .fiche-main > section + section { margin-top: 24px; }
  .rv { opacity: 1 !important; transform: none !important; }
}

/* pages légales : informations propres à l’école, à compléter dans l’éditeur */
.entry mark.a-completer { padding: 1px 6px; border-radius: 4px; background: color-mix(in srgb, var(--ocre) 22%, transparent); color: var(--tx); font-weight: 700; }

/* formulaires de contact et de candidature (extension « Demandes ») */
.apply form .alert { margin-bottom: 24px; }
.panel .alert { margin-bottom: 4px; }
fieldset.co-step { border: 0; padding: 0; margin: 0; min-width: 0; }
.co-t { padding: 0; margin-bottom: 4px; }
.js .co-t { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.js [data-file-natif], .js [data-nojs], .js [data-fmt-natif] { display: none; }
.upload { cursor: pointer; }
.upload > .icon { margin-inline: auto; }
[data-files] li > span:first-child { display: flex; align-items: center; gap: 8px; min-width: 0; overflow-wrap: anywhere; }
.upload:focus-visible { outline: 2px solid var(--act); outline-offset: 2px; }
.apply .confirm[tabindex]:focus, [data-ok]:focus { outline: none; }
/* sans JavaScript : les cinq marches se suivent, l’envoi se fait par le bouton de la dernière */
html:not(.js) .co-step { display: grid; gap: 20px; }
html:not(.js) .co-step + .co-step { margin-top: 48px; }
html:not(.js) [data-asteps], html:not(.js) [data-anav], html:not(.js) [data-drop], html:not(.js) [data-fmts], html:not(.js) .co-step[data-s="5"] { display: none; }
html:not(.js) [data-nojs] { justify-self: start; }
html:not(.js) [data-apply] { margin-top: 48px; }

/* fiche : encadré de vigilance (examen civique) */
.vigil > div { display: grid; gap: 10px; min-width: 0; }
.vigil ul { display: grid; gap: 6px; padding-left: 18px; list-style: disc; }
.vigil .ext { overflow-wrap: anywhere; }

/* fiche : indicateurs publiés (valeur, libellé, source), même carte que les emplacements de la maquette */
.ind .card { display: grid; gap: 6px; align-content: start; padding: 20px; border-radius: var(--corner); }

/* fiche : documents à télécharger (ligne non cliquable tant que le fichier n’est pas fourni) */
.docs .doc { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 10px 12px; border-radius: 4px; box-shadow: inset 0 0 0 1px var(--ln); font-weight: 650; font-size: 14.5px; color: var(--fg); }
.docs .doc .icon { width: 18px; height: 18px; }
