/* Plaine Altitude, site école : page d'accueil (maquette du 2026-11-13). Chargée après rubrique.css, categorie.css (texte de
   référencement), accueil.css (bloc sombre en étapes, cadeaux, raisons) et reglages.css.
   Le hero se règle depuis le panneau « Réglages » (js/reglages.js) : chaque choix pose data-r-<clé> sur <html>.
   Composants nouveaux pour l'école : hero, petite carte incrustée, portes Baptême / Stage, réservation express, cartes de formule,
   parcours de stages, liste des sessions, cartes de site, carte webcam, FAQ, bande « s'équiper ». */

/* ═════════════ En-tête : webcam, bouton Réserver, méga-menus ═════════════ */
.ec-live { display: inline-block; width: 0.5rem; height: 0.5rem; border-radius: 50%; background: #e5372a; box-shadow: 0 0 0 0 rgba(229,55,42,.55); animation: ec-pouls 1.8s infinite; flex: none; }
@keyframes ec-pouls { 0% { box-shadow: 0 0 0 0 rgba(229,55,42,.55); } 70% { box-shadow: 0 0 0 7px rgba(229,55,42,0); } 100% { box-shadow: 0 0 0 0 rgba(229,55,42,0); } }
@media (prefers-reduced-motion: reduce) { .ec-live { animation: none; } }
.ec-webcam { position: relative; }
.ec-webcam > .ec-live { position: absolute; top: 0.45rem; right: 0.4rem; width: 0.45rem; height: 0.45rem; border: 2px solid #fff; }
.ec-webcam__live { display: none; }
.ec-webcam[data-bulle]::after { content: attr(data-bulle); position: absolute; top: calc(100% + 0.5rem); left: 50%; transform: translate(-50%, -4px); padding: 0.45rem 0.6rem; border-radius: 6px;
  background: var(--pa-noir); color: #fff; font: 700 var(--fs-2xs)/1 var(--font-texte); white-space: nowrap; opacity: 0; pointer-events: none; transition: opacity var(--t-rapide), transform var(--t-rapide); z-index: 5; }
.ec-webcam:hover::after, .ec-webcam:focus-visible::after { opacity: 1; transform: translate(-50%, 0); }
html[data-r-webcam="live"] .ec-webcam { width: auto; gap: 0.4rem; padding-inline: 0.7rem; border-radius: 8px; background: rgba(229,55,42,.08); color: #b8261b; }
html[data-r-webcam="live"] .ec-webcam > svg { width: 1.05rem; height: 1.05rem; }
html[data-r-webcam="live"] .ec-webcam > .ec-live { position: static; border: 0; width: 0.5rem; height: 0.5rem; }
html[data-r-webcam="live"] .ec-webcam__live { display: inline; font: 800 0.8rem/1 var(--font-texte); letter-spacing: 0.06em; text-transform: uppercase; }
html[data-r-webcam="barre"] .ec-webcam { display: none; }
.ec-webcam-barre { display: none !important; }
html[data-r-webcam="barre"] .ec-webcam-barre { display: inline-flex !important; align-items: center; gap: 0.45rem; color: #b8261b !important; font-weight: 700 !important; }
html[data-r-cta="cadeau"] .ec-cta-reserver, html[data-r-cta="reserver"] .ec-cta-cadeau { display: none; }
.pa-entete .ec-cta-reserver { margin-left: 0.3rem; }
.ec-compacte-cta { height: 2.4rem; padding-inline: 1rem; font-size: var(--fs-sm); flex: none; }
@media (max-width: 1179px) { .ec-compacte-cta { display: none; } }
.ec-tiroir-resa { margin: 0.2rem 0 0.6rem; }

/* Menu (2026-11-14) : réglages « menu » (Boutique et atelier), « conseils », « icones », « barrehaut » */
.ec-l-ext { display: inline-flex; align-items: center; gap: 0.3rem; }
.ec-l-ext > svg { width: 0.75rem; height: 0.75rem; opacity: .55; }
.ec-sep { align-self: center; width: 1px; height: 1.4rem; margin-inline: 0.35rem; padding: 0; background: var(--bord-fort); }
html:not([data-r-menu="pilule"]) .ec-l-ext, html:not([data-r-menu="plaine"]) .ec-l-plus,
html:not([data-r-menu="icones"]) .ec-i-ext, html[data-r-conseils="ecole"] .ec-l-conseils { display: none !important; }
html:not([data-r-icones="compte"]) .ec-i-compte, html[data-r-icones="compte"] .ec-i-tel, html[data-r-icones="sobre"] .ec-i-recherche { display: none !important; }
html[data-r-barrehaut="boutique"] .ec-bh-adresse, html[data-r-barrehaut="boutique"] .ec-bh-mail { display: none !important; }
html[data-r-menu="barre"] .pa-barre-haute .ec-bh-ext { padding: 0.3rem 0.7rem; border-radius: 999px; background: #fff; color: var(--pa-noir); font-weight: 700; box-shadow: 0 0 0 1px var(--bord); }
html[data-r-menu="barre"] .pa-barre-haute .ec-bh-ext:hover { box-shadow: 0 0 0 1px var(--pa-turquoise); color: var(--pa-turquoise-text); }
.ec-i-ext { position: relative; }
.ec-i-ext[data-bulle]::after { content: attr(data-bulle); position: absolute; top: calc(100% + 0.5rem); left: 50%; transform: translate(-50%, -4px); padding: 0.45rem 0.6rem; border-radius: 6px;
  background: var(--pa-noir); color: #fff; font: 700 var(--fs-2xs)/1 var(--font-texte); white-space: nowrap; opacity: 0; pointer-events: none; transition: opacity var(--t-rapide), transform var(--t-rapide); z-index: 5; }
.ec-i-ext:hover::after, .ec-i-ext:focus-visible::after { opacity: 1; transform: translate(-50%, 0); }
.ec-mega--plus { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ec-mega--plus .mega__promo { grid-column: auto; grid-row: auto; }
.ec-mega--plus .mega__promo-img { aspect-ratio: 16 / 8; }
/* Barre grise : e-mail en entier sur grand écran, adresse et e-mail masqués quand la place manque */
.pa-barre-haute .ec-bh-court { display: none !important; }
@media (max-width: 1599px) { .pa-barre-haute .ec-bh-long { display: none !important; } .pa-barre-haute .ec-bh-court { display: inline !important; } }
@media (max-width: 1399px) { .pa-barre-haute .ec-bh-adresse, .pa-barre-haute .ec-bh-mail { display: none !important; } }
html[data-r-menu="barre"] .pa-barre-haute .ec-bh-ext { padding-block: 0.2rem; }
.ec-tiroir-contact { display: grid; gap: 0.6rem; margin-top: 0.8rem; padding-top: 0.9rem; border-top: 1px solid var(--bord); font: 600 var(--fs-sm)/1.3 var(--font-texte); }
.ec-tiroir-contact a { display: flex; align-items: center; gap: 0.55rem; color: var(--fg-titre); }
.ec-tiroir-contact svg { width: 1.05rem; height: 1.05rem; flex: none; color: var(--pa-turquoise-text); }

/* Méga-menus : tuiles de formules (photo bord à bord), parcours numéroté, prochaines dates */
.ec-mega--baptemes { grid-template-columns: minmax(0, 2.5fr) minmax(12rem, 1fr) minmax(15rem, 1.1fr); }
.ec-mega--stages { grid-template-columns: repeat(3, minmax(0, 1fr)) minmax(15rem, 1.1fr); }
.ec-mega--ecole, .ec-mega--sites { grid-template-columns: repeat(2, minmax(0, 1fr)) minmax(16rem, 1.3fr); }
.ec-mtuiles { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.6rem; }
.ec-mtuile { display: grid; grid-template-rows: auto auto 1fr; overflow: hidden; border-radius: 12px; border: 1px solid var(--bord); background: #fff; color: var(--fg-titre); text-decoration: none;
  transition: border-color var(--t-rapide), box-shadow var(--t-rapide); }
.ec-mtuile__img { display: block; aspect-ratio: 16 / 10; overflow: hidden; background: #eef2f4; }
.ec-mtuile__img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 500ms cubic-bezier(.2,.7,.3,1); }
.ec-mtuile b { padding: 0.55rem 0.7rem 0.1rem; font: 800 var(--fs-sm)/1.2 var(--font-titre); }
.ec-mtuile small { padding: 0 0.7rem 0.6rem; font: 600 var(--fs-2xs)/1.3 var(--font-texte); color: var(--fg-secondaire); }
.ec-mtuile:hover { border-color: var(--pa-turquoise); box-shadow: 0 10px 24px rgba(41,39,40,.1); }
.ec-mtuile:hover img { transform: scale(1.05); }
.ec-mtuile:hover b { color: var(--pa-turquoise-text); }
.ec-mnum { display: inline-grid; place-items: center; width: 1.5rem; height: 1.5rem; margin-right: 0.55rem; border-radius: 6px; background: var(--pa-noir); color: var(--pa-turquoise); font: 900 0.75rem/1 var(--font-titre); }
.ec-mparcours a { justify-content: flex-start; }
.ec-mparcours small { margin-left: auto; }
.ec-msession { justify-content: flex-start !important; }
.ec-msession > span:last-child { display: grid; gap: 0.15rem; }
.ec-mdate { display: inline-grid; place-items: center; align-content: center; flex: none; width: 2.6rem; height: 2.6rem; border-radius: 8px; background: var(--pa-turquoise-50); color: var(--pa-turquoise-text);
  font: 700 0.62rem/1 var(--font-texte); text-transform: uppercase; letter-spacing: 0.04em; }
.ec-mdate b { font: 900 1rem/1 var(--font-titre); color: var(--pa-noir); letter-spacing: 0; }
.ec-mdate--grand { width: 3.6rem; height: 3.8rem; gap: 0.12rem; border-radius: 10px; font-size: 0.7rem; }
.ec-mdate--grand b { font-size: 1.45rem; }
.ec-mdate small { font: 700 0.6rem/1 var(--font-texte); color: var(--fg-secondaire); text-transform: none; }
.ec-mega-webcam .mega__promo-img, .ec-inc__img, .ec-webcam-carte__img { position: relative; }
.ec-direct { position: absolute; left: 0.6rem; top: 0.6rem; display: inline-flex; align-items: center; gap: 0.4rem; padding: 0.35rem 0.55rem; border-radius: 6px; background: rgba(20,19,19,.72);
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); color: #fff; font: 800 var(--fs-2xs)/1 var(--font-texte); letter-spacing: 0.08em; text-transform: uppercase; }

/* Boutons blancs (sur fonds sombres) */
.pa-btn--blanc { background: #fff; color: var(--pa-noir); border: 1px solid #fff; }
.pa-btn--blanc:hover { background: var(--pa-turquoise-50); border-color: var(--pa-turquoise-50); color: var(--pa-noir); }
.pa-btn--blanc .pa-ico-pastille { background: var(--pa-noir); color: var(--pa-turquoise); }

/* ═════════════ Hero ═════════════ */
.ec-hero { --ec-h: 36rem; --ec-pos: 50% 50%; position: relative; }
html[data-r-hauteur="compacte"] .ec-hero { --ec-h: 29rem; }
html[data-r-hauteur="grande"] .ec-hero { --ec-h: 44rem; }
html[data-r-hauteur="ecran"] .ec-hero { --ec-h: max(32rem, calc(100svh - 10.5rem)); }
.ec-hero__cadre { position: relative; margin-top: var(--sp-xs); }
/* Écart sous le logo identique à l'accueil de la boutique (.ac-une) : bande .fil sur ordinateur, 1 rem de plus sous 640 px */
@media (max-width: 639px) { .ec-hero__cadre { margin-top: calc(var(--sp-xs) + 1rem); } }
.ec-hero__scene { position: relative; display: flex; flex-direction: column; justify-content: flex-end; min-height: var(--ec-h); box-sizing: border-box; padding: var(--sp-l);
  border-radius: 16px; overflow: hidden; isolation: isolate; color: #fff; }
.ec-hero__media { position: absolute; inset: 0; z-index: -2; overflow: hidden; background: #c9d6dc; }
.ec-hero__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: var(--ec-pos); opacity: 0; transition: opacity 1400ms ease; }
.ec-hero__img.est-visible { opacity: 1; }
html[data-r-cadrage="haut"] .ec-hero { --ec-pos: 50% 15% !important; }
html[data-r-cadrage="centre"] .ec-hero { --ec-pos: 50% 50% !important; }
html[data-r-cadrage="bas"] .ec-hero { --ec-pos: 50% 85% !important; }
.ec-hero__rond { display: none; }
html[data-r-anim="zoom"] .ec-hero__img.est-visible { animation: ec-zoom 22s cubic-bezier(.2,.6,.3,1) both; }
@keyframes ec-zoom { from { transform: scale(1.001); } to { transform: scale(1.09); } }
html[data-r-anim="parallaxe"] .ec-hero__img { transform: translate3d(0, var(--ec-para, 0px), 0) scale(1.14); will-change: transform; }
@media (prefers-reduced-motion: reduce) {
  html[data-r-anim] .ec-hero__img.est-visible { animation: none; }
  html[data-r-anim="parallaxe"] .ec-hero__img { transform: none; }
}
/* Voile : lisibilité du texte sur la photo */
.ec-hero__scene::after { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: linear-gradient(90deg, rgba(20,19,19,.78) 0%, rgba(20,19,19,.42) 42%, rgba(20,19,19,0) 78%), linear-gradient(0deg, rgba(20,19,19,.45) 0%, rgba(20,19,19,0) 45%); }
html[data-r-voile="bas"] .ec-hero__scene::after { background: linear-gradient(0deg, rgba(20,19,19,.86) 0%, rgba(20,19,19,.45) 38%, rgba(20,19,19,0) 72%); }
html[data-r-voile="turquoise"] .ec-hero__scene::after { background: linear-gradient(90deg, rgba(6,72,71,.9) 0%, rgba(11,122,121,.55) 45%, rgba(32,196,195,.08) 85%), linear-gradient(0deg, rgba(6,50,50,.4), rgba(6,50,50,0) 45%); }
html[data-r-voile="nuit"] .ec-hero__scene::after { background: rgba(20,19,19,.48); }
html[data-r-voile="aucun"] .ec-hero__scene::after { background: none; }
html[data-r-voile="aucun"] .ec-hero__contenu { text-shadow: 0 1px 2px rgba(0,0,0,.45), 0 2px 18px rgba(0,0,0,.35); }

/* Contenu */
.ec-hero__contenu { display: flex; flex-direction: column; align-items: flex-start; gap: 1rem; max-width: 46rem; }
.ec-hero__surtitre { margin: 0; padding: 0.45rem 0.65rem; border-radius: 6px; background: rgba(20,19,19,.55); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
  font: 800 var(--fs-2xs)/1 var(--font-texte); letter-spacing: 0.12em; text-transform: uppercase; color: var(--pa-turquoise); }
.ec-hero__titre { margin: 0; max-width: 16ch; font: 900 clamp(2.35rem, 1.5rem + 3.4vw, 4.6rem)/1 var(--font-titre); letter-spacing: -0.025em; color: inherit; text-wrap: balance; }
html[data-r-police="barlow"] .ec-hero__titre { max-width: 14ch; font: 700 clamp(2.8rem, 1.7rem + 4.4vw, 6rem)/0.92 var(--font-accent); letter-spacing: 0.005em; text-transform: uppercase; }
.ec-hero__texte { margin: 0; max-width: 46ch; font-size: var(--fs-md); line-height: 1.55; color: rgba(255,255,255,.9); }
html[data-r-soustitre="non"] .ec-hero__texte { display: none; }
html[data-r-position="milieu"] .ec-hero__scene { justify-content: center; }
html[data-r-position="centre"] .ec-hero__scene { justify-content: center; align-items: center; text-align: center; }
html[data-r-position="centre"] .ec-hero__contenu { align-items: center; }
html[data-r-position="centre"] .ec-hero__titre { max-width: 20ch; }
html[data-r-position="centre"][data-r-voile="gauche"] .ec-hero__scene::after { background: radial-gradient(70% 80% at 50% 55%, rgba(20,19,19,.62), rgba(20,19,19,.15)); }

/* Boutons du hero */
.ec-hero__boutons { display: flex; flex-wrap: wrap; gap: 0.65rem; margin-top: 0.3rem; }
.ec-hero__boutons .pa-btn { min-height: 3.3rem; font-size: var(--fs-base); }
.ec-b__txt { display: block; text-align: left; }
.ec-b__detail { display: none; }
html[data-r-prix="non"] .ec-b__prix { display: none; }
.ec-b2 { background: transparent; color: #fff; border: 1px solid rgba(255,255,255,.55); }
.ec-b2 .pa-ico-pastille { background: #fff; color: var(--pa-noir); }
.ec-b2:hover { background: #fff; color: var(--pa-noir); border-color: #fff; }
.ec-b2:hover .pa-ico-pastille { background: var(--pa-noir); color: var(--pa-turquoise); }
html[data-r-boutons="jaune-noir"] .ec-b2 { background: var(--pa-noir); border-color: var(--pa-noir); }
html[data-r-boutons="jaune-noir"] .ec-b2 .pa-ico-pastille { background: var(--pa-turquoise); color: var(--pa-noir); }
html[data-r-boutons="jaune-turquoise"] .ec-b2 { background: var(--pa-turquoise); border-color: var(--pa-turquoise); color: var(--pa-noir); }
html[data-r-boutons="jaune-turquoise"] .ec-b2 .pa-ico-pastille { background: var(--pa-noir); color: var(--pa-turquoise); }
html[data-r-boutons="cartes"] .ec-hero__boutons { display: grid; grid-template-columns: repeat(2, minmax(0, 17rem)); gap: 0.75rem; }
html[data-r-boutons="cartes"] .ec-hero__boutons .pa-btn { justify-content: space-between; min-height: 4.6rem; padding: 0.8rem 0.8rem 0.8rem 1.1rem; border-radius: 12px; font-size: var(--fs-md); }
html[data-r-boutons="cartes"] .ec-b2 { background: rgba(255,255,255,.14); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); border-color: rgba(255,255,255,.35); }
html[data-r-boutons="cartes"] .ec-b__prix { display: none; }
html[data-r-boutons="cartes"] .ec-hero__boutons .ec-b__detail { display: block; margin-top: 0.3rem; font: 600 var(--fs-xs)/1.3 var(--font-texte); opacity: .8; }
html[data-r-position="centre"] .ec-hero__boutons { justify-content: center; }

/* Repères */
.ec-reperes { display: flex; flex-wrap: wrap; gap: 0.4rem 1.1rem; margin: 0.3rem 0 0; padding: 0; list-style: none; font: 700 var(--fs-xs)/1.2 var(--font-texte); color: rgba(255,255,255,.88); }
.ec-reperes li { display: inline-flex; align-items: center; gap: 0.4rem; }
.ec-reperes svg { width: 1rem; height: 1rem; color: var(--pa-turquoise); }
.ec-etoiles { display: inline-flex; gap: 1px; color: var(--pa-jaune); }
.ec-reperes .ec-etoiles svg { width: 0.85rem; height: 0.85rem; color: var(--pa-jaune); }
html[data-r-position="centre"] .ec-reperes { justify-content: center; }
/* Avis Google (2026-11-14) : badge de la maquette (logo Google, note, étoiles jaunes) ou widget gmbmanager.ai, au réglage « avisg » */
.ec-reperes .ec-etoiles svg, .ec-etoiles svg { color: var(--pa-jaune); }
.ec-avisg { display: inline-flex; align-items: center; gap: 0.45rem; padding: 0.35rem 0.7rem 0.35rem 0.45rem; border-radius: 999px; background: #fff; color: var(--pa-noir);
  font: 800 var(--fs-xs)/1 var(--font-texte); text-decoration: none; box-shadow: 0 4px 14px rgba(20,19,19,.18); transition: transform var(--t-rapide), box-shadow var(--t-rapide); }
.ec-avisg:hover { color: var(--pa-noir); transform: translateY(-1px); box-shadow: 0 8px 20px rgba(20,19,19,.24); }
.ec-reperes .ec-avisg__g { width: 1.15rem; height: 1.15rem; }
.ec-avisg b { font: 900 var(--fs-sm)/1 var(--font-titre); }
.ec-avisg .ec-etoiles svg { width: 0.9rem; height: 0.9rem; color: #fbbc04; }
.ec-avisg__nb { font-weight: 700; color: var(--fg-secondaire); }
.ec-avisg-gmb { display: none; }
html[data-r-avisg="gmb"] .ec-avisg-gmb { display: block; overflow: hidden; padding: 0.2rem 0.5rem; border-radius: 999px; background: #fff; box-shadow: 0 4px 14px rgba(20,19,19,.18); }
/* Le widget garde 16 px de marge intérieure (réglage « containerPadding » chez gmbmanager.ai) : compensée ici */
.ec-avisg-gmb > div { margin: -16px; }
html[data-r-avisg="gmb"] .ec-avisg { display: none; }
html[data-r-avisg="gmb"] .ec-bande-reperes .ec-avisg-li { display: none; }
html[data-r-reperes="non"] .ec-reperes, html[data-r-reperes="bande"] .ec-reperes { display: none; }
html[data-r-reperes="surtitre"] .ec-hero__surtitre { display: none; }
html[data-r-reperes="surtitre"] .ec-reperes { order: -1; padding: 0.5rem 0.75rem; border-radius: 8px; background: rgba(20,19,19,.5); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.ec-bande-reperes { display: none; }
html[data-r-reperes="bande"] .ec-bande-reperes { display: block; }
.ec-bande-reperes .ec-reperes { display: flex !important; justify-content: center; gap: 0.6rem 2.2rem; margin: 0.8rem auto 0; padding: 0.95rem 1rem; border-radius: 12px; background: #fff; border: 1px solid var(--bord); color: var(--fg-titre); }
.ec-bande-reperes .ec-reperes svg { color: var(--pa-turquoise-text); }

/* Petite carte incrustée (coin bas droit) */
.ec-incrust { position: absolute; right: var(--sp-l); bottom: var(--sp-l); z-index: 2; width: 17.5rem; color: var(--fg-titre); text-shadow: none; }
.ec-inc { display: none; overflow: hidden; border-radius: 14px; background: #fff; box-shadow: 0 18px 44px rgba(20,19,19,.28); text-decoration: none; color: inherit; }
html[data-r-incrust="photo"] .ec-inc--photo, html[data-r-incrust="avis"] .ec-inc--avis, html[data-r-incrust="webcam"] .ec-inc--webcam,
html[data-r-incrust="session"] .ec-inc--session, html[data-r-incrust="cadeau"] .ec-inc--cadeau { display: grid; animation: ec-monte 600ms 300ms cubic-bezier(.2,.7,.3,1) both; }
@keyframes ec-monte { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
.ec-inc--photo { margin: 0; transform: rotate(2.5deg); border: 5px solid #fff; border-bottom-width: 0; }
.ec-inc--photo img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; }
.ec-inc--photo figcaption { display: grid; gap: 0.1rem; padding: 0.6rem 0.4rem 0.75rem; font: 600 var(--fs-xs)/1.3 var(--font-texte); color: var(--fg-secondaire); }
.ec-inc--photo figcaption b { font: 800 var(--fs-sm)/1.2 var(--font-titre); color: var(--fg-titre); }
.ec-inc--avis { gap: 0.55rem; padding: 1.1rem 1.15rem; }
.ec-inc--avis p { margin: 0; font: 600 var(--fs-sm)/1.5 var(--font-texte); color: var(--fg-texte); }
.ec-inc__qui { font-size: var(--fs-xs); color: var(--fg-secondaire); }
.ec-inc__qui b { color: var(--fg-titre); }
.ec-inc--webcam { background: var(--pa-noir); color: #fff; }
.ec-inc__img { display: block; aspect-ratio: 16 / 9; overflow: hidden; }
.ec-inc__img img, .ec-inc--cadeau > img { display: block; width: 100%; height: 100%; object-fit: cover; }
.ec-inc__txt { display: grid; gap: 0.25rem; padding: 0.8rem 1rem 0.95rem; font: 600 var(--fs-xs)/1.35 var(--font-texte); color: var(--fg-secondaire); }
.ec-inc__txt b { font: 800 var(--fs-md)/1.2 var(--font-titre); color: var(--fg-titre); }
.ec-inc__txt .surtitre { margin: 0; }
.ec-inc--webcam .ec-inc__txt { color: rgba(255,255,255,.7); }
.ec-inc--webcam .ec-inc__txt b { color: #fff; }
.ec-inc__lien { margin-top: 0.15rem; font-weight: 800; color: var(--pa-turquoise); }
.ec-inc__lien::after { content: " →"; }
.ec-inc--session { grid-template-columns: auto 1fr; align-items: center; gap: 0.2rem 0.4rem; padding: 0.4rem 0.5rem 0.4rem 0.95rem; }
.ec-inc--cadeau > img { aspect-ratio: 2 / 1; }
.ec-jauge { display: block; height: 0.4rem; margin: 0.3rem 0 0.15rem; border-radius: 99px; background: #e8edf0; overflow: hidden; }
.ec-jauge i { display: block; width: var(--p); height: 100%; border-radius: inherit; background: var(--pa-turquoise); }
.ec-jauge--tendu i { background: var(--pa-jaune-fonce); }

/* Portes Baptême / Stage (formats Mosaïque et Deux portes) */
.ec-portes { display: none; }
.ec-porte { position: relative; display: flex; flex-direction: column; justify-content: flex-end; min-height: 14rem; padding: 1.3rem; border-radius: 16px; overflow: hidden; isolation: isolate; color: #fff; text-decoration: none; }
.ec-porte > img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; transition: transform 900ms cubic-bezier(.2,.7,.3,1); }
.ec-porte::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, rgba(20,19,19,.85) 0%, rgba(20,19,19,.35) 55%, rgba(20,19,19,.05) 100%); }
.ec-porte:hover > img { transform: scale(1.05); }
.ec-porte__txt { display: grid; gap: 0.35rem; font: 600 var(--fs-sm)/1.4 var(--font-texte); color: rgba(255,255,255,.85); }
.ec-porte .surtitre { justify-self: start; margin: 0 0 0.2rem; padding: 0.4rem 0.6rem; border-radius: 6px; background: rgba(20,19,19,.6); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); color: var(--pa-turquoise); }
.ec-porte b { font: 900 var(--fs-xl)/1.1 var(--font-titre); color: #fff; }
.ec-porte__bas { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.6rem; margin-top: 0.45rem; }
.ec-porte__prix { display: grid; font: 900 var(--fs-xl)/1 var(--font-titre); color: #fff; }
.ec-porte__prix small { font: 700 var(--fs-2xs)/1.2 var(--font-texte); letter-spacing: 0.08em; text-transform: uppercase; color: rgba(255,255,255,.7); }

/* Format Mosaïque : grande scène et deux portes empilées (comme l'accueil de la boutique) */
html[data-r-format="mosaique"] .ec-hero__cadre { display: grid; grid-template-columns: minmax(0, 1.85fr) minmax(19rem, 1fr); gap: 1rem; }
html[data-r-format="mosaique"] .ec-portes { display: grid; grid-template-rows: 1fr 1fr; gap: 1rem; }
html[data-r-format="mosaique"] .ec-porte { min-height: 0; }
html[data-r-format="mosaique"] .ec-hero__boutons .ec-b2 { display: none; }
html[data-r-format="mosaique"] .ec-incrust { display: none; }
html[data-r-format="mosaique"] .ec-hero__titre { font-size: clamp(2.2rem, 1.3rem + 2.9vw, 4rem); }

/* Format Bord à bord : toute la largeur, sans arrondi */
html[data-r-format="bord"] .ec-hero__cadre { max-width: none; padding: 0; }
html[data-r-format="bord"] .ec-hero__scene { border-radius: 0; padding-inline: max(var(--gouttiere), calc((100% - var(--largeur-max)) / 2 + var(--gouttiere))); padding-block: var(--sp-xl); }
html[data-r-format="bord"] .ec-incrust { right: max(var(--gouttiere), calc((100% - var(--largeur-max)) / 2 + var(--gouttiere))); bottom: var(--sp-xl); }

/* Format Panorama : bandeau large, texte centré, police d'accent */
html[data-r-format="panorama"] .ec-hero__scene { justify-content: center; align-items: center; text-align: center; min-height: min(var(--ec-h), 42vw); }
html[data-r-format="panorama"] .ec-hero__contenu { align-items: center; max-width: 60rem; }
html[data-r-format="panorama"] .ec-hero__titre { max-width: 22ch; }
html[data-r-format="panorama"] .ec-hero__boutons, html[data-r-format="panorama"] .ec-reperes { justify-content: center; }
html[data-r-format="panorama"][data-r-voile="gauche"] .ec-hero__scene::after { background: radial-gradient(75% 85% at 50% 55%, rgba(20,19,19,.6), rgba(20,19,19,.12)); }
html[data-r-format="panorama"] .ec-incrust { display: none; }

/* Format Deux portes : titre centré au-dessus, les deux offres côte à côte */
html[data-r-format="portes"] .ec-hero__scene { min-height: 0; padding: var(--sp-m) 0 var(--sp-s); align-items: center; text-align: center; color: var(--fg-titre); overflow: visible; }
html[data-r-format="portes"] .ec-hero__media, html[data-r-format="portes"] .ec-hero__scene::after, html[data-r-format="portes"] .ec-hero__boutons,
html[data-r-format="portes"] .ec-incrust { display: none; }
html[data-r-format="portes"] .ec-hero__contenu { align-items: center; max-width: 54rem; }
html[data-r-format="portes"] .ec-hero__titre { max-width: 22ch; }
html[data-r-format="portes"] .ec-hero__texte { color: var(--fg-texte); }
html[data-r-format="portes"] .ec-reperes { justify-content: center; color: var(--fg-titre); }
html[data-r-format="portes"] .ec-reperes svg { color: var(--pa-turquoise-text); }
html[data-r-format="portes"] .ec-hero__surtitre { background: var(--pa-noir); }
html[data-r-format="portes"] .ec-portes { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
html[data-r-format="portes"] .ec-porte { min-height: calc(var(--ec-h) * 0.82); padding: var(--sp-l); }
html[data-r-format="portes"] .ec-porte b { font-size: var(--fs-2xl); }

/* Formats sur fond clair : Scindé et Hublot */
html[data-r-format="scinde"] .ec-hero__scene, html[data-r-format="hublot"] .ec-hero__scene {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); align-items: center; gap: var(--sp-l); padding: 0; color: var(--fg-titre); overflow: visible; }
html[data-r-format="scinde"] .ec-hero__scene::after, html[data-r-format="hublot"] .ec-hero__scene::after { display: none; }
html[data-r-format="scinde"] .ec-hero__contenu, html[data-r-format="hublot"] .ec-hero__contenu { grid-column: 1; grid-row: 1; padding: var(--sp-l) 0 var(--sp-l) var(--sp-l); }
html[data-r-format="scinde"] .ec-hero__media, html[data-r-format="hublot"] .ec-hero__media { position: relative; grid-column: 2; grid-row: 1; z-index: 0; height: var(--ec-h); }
html[data-r-format="scinde"] .ec-hero__scene { background: #fff; border: 1px solid var(--bord); overflow: hidden; }
html[data-r-format="scinde"] .ec-hero__media { align-self: stretch; height: auto; min-height: var(--ec-h); border-radius: 0; }
html[data-r-format="scinde"] .ec-hero__titre { font-size: clamp(2.3rem, 1.4rem + 3vw, 4rem); }
html[data-r-format="scinde"] .ec-hero__texte, html[data-r-format="hublot"] .ec-hero__texte { color: var(--fg-texte); }
html[data-r-format="scinde"] .ec-hero__surtitre, html[data-r-format="hublot"] .ec-hero__surtitre { background: var(--pa-noir); }
html[data-r-format="scinde"] .ec-reperes, html[data-r-format="hublot"] .ec-reperes { color: var(--fg-titre); }
html[data-r-format="scinde"] .ec-reperes svg, html[data-r-format="hublot"] .ec-reperes svg { color: var(--pa-turquoise-text); }
html[data-r-format="scinde"] .ec-b2, html[data-r-format="hublot"] .ec-b2 { color: var(--pa-noir); border-color: var(--bord-fort); }
html[data-r-format="scinde"] .ec-b2 .pa-ico-pastille, html[data-r-format="hublot"] .ec-b2 .pa-ico-pastille { background: var(--pa-noir); color: var(--pa-turquoise); }
html[data-r-format="scinde"][data-r-boutons="cartes"] .ec-b2, html[data-r-format="hublot"][data-r-boutons="cartes"] .ec-b2 { background: #fff; }
html[data-r-format="scinde"] .ec-incrust { right: auto; left: calc(45.5% - 4rem); bottom: var(--sp-m); }
/* Hublot : photo dans une arche, rond turquoise et pastilles flottantes */
html[data-r-format="hublot"] .ec-hero__scene { overflow: visible; }
html[data-r-format="hublot"] .ec-hero__media { overflow: visible; background: none; margin: var(--sp-s) var(--sp-l) var(--sp-s) 0; }
html[data-r-format="hublot"] .ec-hero__img { border-radius: 999px 999px 24px 24px; box-shadow: 0 30px 60px rgba(20,90,90,.18); }
html[data-r-format="hublot"] .ec-hero__rond { display: block; position: absolute; z-index: -1; left: -7%; bottom: -6%; width: 46%; aspect-ratio: 1; border-radius: 50%; background: var(--pa-turquoise); }
.ec-hublot-chips { display: none; }
html[data-r-format="hublot"] .ec-hublot-chips { display: block; position: absolute; inset: 0; margin: 0; padding: 0; list-style: none; pointer-events: none; }
.ec-hublot-chips li { position: absolute; display: inline-flex; align-items: center; gap: 0.45rem; padding: 0.65rem 0.85rem; border-radius: 10px; background: rgba(255,255,255,.88);
  -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); box-shadow: 0 12px 30px rgba(20,90,90,.16); font: 800 var(--fs-xs)/1 var(--font-texte); color: var(--pa-noir); animation: ec-flotte 6s ease-in-out infinite; }
.ec-hublot-chips svg { width: 1rem; height: 1rem; color: var(--pa-turquoise-text); }
.ec-hublot-chips li:nth-child(1) { left: 48%; top: 22%; }
.ec-hublot-chips li:nth-child(2) { right: 3%; top: 9%; animation-delay: -2s; }
.ec-hublot-chips li:nth-child(3) { right: 6%; bottom: 13%; animation-delay: -4s; }
@keyframes ec-flotte { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-6px); } }
html[data-r-format="hublot"] .ec-incrust { display: none; }
html[data-r-format="hublot"] .ec-hero__titre { font-size: clamp(2.3rem, 1.4rem + 3vw, 4rem); }

/* Réservation express (sous le hero) */
.ec-resa { display: none; }
html[data-r-resa="onglets"] .ec-resa { display: block; position: relative; z-index: 3; margin-top: -2.2rem; }
html[data-r-resa="onglets"][data-r-format="portes"] .ec-resa, html[data-r-resa="onglets"][data-r-format="scinde"] .ec-resa, html[data-r-resa="onglets"][data-r-format="hublot"] .ec-resa { margin-top: 1rem; }
.ec-resa__carte { max-width: 72rem; margin: 0 auto; padding: 0.4rem 1.2rem 1.2rem; border-radius: 16px; background: #fff; border: 1px solid var(--bord); box-shadow: 0 24px 60px rgba(41,39,40,.14); }
.ec-resa__onglets { display: flex; gap: 0.3rem; border-bottom: 1px solid var(--bord); }
.ec-resa__onglets button { display: inline-flex; align-items: center; gap: 0.45rem; padding: 0.95rem 0.9rem 0.8rem; border: 0; border-bottom: 3px solid transparent; background: none; cursor: pointer;
  font: 800 var(--fs-sm)/1 var(--font-titre); color: var(--fg-secondaire); }
.ec-resa__onglets button svg { width: 1.1rem; height: 1.1rem; }
.ec-resa__onglets button[aria-selected="true"] { color: var(--pa-noir); border-bottom-color: var(--pa-turquoise); }
.ec-resa__panneau { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 0.8rem 1.2rem; padding-top: 1rem; }
.ec-resa__panneau[hidden] { display: none; }
.ec-resa__puces { display: flex; flex-wrap: wrap; gap: 0.4rem; margin: 0; padding: 0; border: 0; min-width: 0; }
.ec-resa__puces legend, .ec-resa__select > span { display: block; margin-bottom: 0.5rem; font: 800 var(--fs-2xs)/1 var(--font-texte); letter-spacing: 0.1em; text-transform: uppercase; color: var(--fg-secondaire); }
.ec-resa__puces input { position: absolute; opacity: 0; pointer-events: none; }
.ec-resa__puces span { display: grid; gap: 0.15rem; padding: 0.5rem 0.8rem; border-radius: 8px; border: 1px solid var(--bord-fort); cursor: pointer; transition: border-color var(--t-rapide), background var(--t-rapide); }
.ec-resa__puces b { font: 800 var(--fs-sm)/1.1 var(--font-titre); color: var(--fg-titre); }
.ec-resa__puces small { font: 600 var(--fs-2xs)/1 var(--font-texte); color: var(--fg-secondaire); }
.ec-resa__puces label:hover span { border-color: var(--pa-turquoise); }
.ec-resa__puces input:checked + span { background: var(--pa-noir); border-color: var(--pa-noir); }
.ec-resa__puces input:checked + span b { color: #fff; }
.ec-resa__puces input:checked + span small { color: var(--pa-turquoise); }
.ec-resa__puces input:focus-visible + span { outline: 2px solid var(--pa-turquoise); outline-offset: 2px; }
.ec-resa__note { grid-column: 1 / -1; display: flex; align-items: center; gap: 0.5rem; margin: 0; font: 600 var(--fs-xs)/1.4 var(--font-texte); color: var(--fg-secondaire); }
.ec-resa__note svg { width: 1rem; height: 1rem; color: var(--pa-turquoise-text); flex: none; }
.ec-resa__panneau .pa-btn { grid-column: 2; grid-row: 1; }
.ec-resa__select select { height: 2.9rem; min-width: 16rem; padding: 0 0.8rem; border-radius: 8px; border: 1px solid var(--bord-fort); background: #fff; font: 700 var(--fs-sm)/1 var(--font-texte); color: var(--fg-titre); }
.ec-resa__panneau[data-panneau-resa="s"] { grid-template-columns: auto minmax(0, 1fr) auto; }
.ec-resa__panneau[data-panneau-resa="s"] .pa-btn { grid-column: 3; }
.ec-chiffres { display: none; }
html[data-r-resa="chiffres"] .ec-chiffres { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.75rem; margin-top: 1rem; margin-bottom: 0; list-style: none; }
.ec-chiffres li { display: grid; gap: 0.3rem; padding: 1.1rem 1.2rem; border-radius: 16px; background: #fff; border: 1px solid var(--bord); }
.ec-chiffres b { font: 900 var(--fs-2xl)/1 var(--font-titre); color: var(--pa-turquoise-text); }
.ec-chiffres span { font: 600 var(--fs-sm)/1.35 var(--font-texte); color: var(--fg-texte); }

/* ═════════════ Sections ═════════════ */
.ec .rb-section:first-child { margin-top: var(--sp-xl); }
.ec-formules { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.75rem; margin: 0; padding: 0; list-style: none; }
.ec-formule > a, .ec-etape > a { display: grid; grid-template-rows: auto 1fr; height: 100%; overflow: hidden; border-radius: 16px; background: #fff; border: 1px solid var(--bord); color: inherit; text-decoration: none;
  transition: border-color var(--t-normal), box-shadow var(--t-normal), transform var(--t-normal); }
.ec-formule__img, .ec-etape__img { position: relative; display: block; aspect-ratio: 4 / 3; overflow: hidden; background: #eef2f4; }
.ec-formule__img img, .ec-etape__img img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 0; transition: transform 700ms cubic-bezier(.2,.7,.3,1); }
.ec-badge { position: absolute; left: 0.55rem; top: 0.55rem; padding: 0.35rem 0.5rem; border-radius: 6px; background: var(--pa-jaune); color: var(--pa-noir); font: 800 var(--fs-2xs)/1 var(--font-texte); }
.ec-formule__corps, .ec-etape__corps { display: flex; flex-direction: column; gap: 0.45rem; padding: 0.95rem 1rem 1rem; }
.ec-formule__nom, .ec-etape__corps > b { font: 900 var(--fs-lg)/1.1 var(--font-titre); color: var(--fg-titre); }
.ec-formule__accroche { font: 700 var(--fs-sm)/1.3 var(--font-texte); color: var(--pa-turquoise-text); }
.ec-meta { display: grid; gap: 0.3rem; margin: 0.15rem 0 0; padding: 0; list-style: none; font: 600 var(--fs-xs)/1.3 var(--font-texte); color: var(--fg-secondaire); }
.ec-meta li, .ec-etape__pour { display: flex; align-items: flex-start; gap: 0.4rem; }
.ec-meta svg, .ec-etape__pour svg { width: 0.95rem; height: 0.95rem; flex: none; color: var(--pa-turquoise-text); }
.ec-formule__bas { display: flex; align-items: flex-end; justify-content: space-between; gap: 0.5rem; margin-top: auto; padding-top: 0.6rem; border-top: 1px solid var(--bord); }
.ec-prix { display: grid; font: 900 var(--fs-xl)/1 var(--font-titre); color: var(--fg-titre); }
.ec-prix small { font: 700 var(--fs-2xs)/1.3 var(--font-texte); letter-spacing: 0.06em; text-transform: uppercase; color: var(--fg-secondaire); }
.ec-formule__lien { display: inline-flex; align-items: center; gap: 0.3rem; font: 800 var(--fs-xs)/1 var(--font-texte); color: var(--pa-turquoise-text); white-space: nowrap; }
.ec-formule__lien svg { width: 0.9rem; height: 0.9rem; transition: transform var(--t-normal); }
.ec-formule > a:hover, .ec-etape > a:hover { border-color: rgba(41,39,40,.2); box-shadow: 0 14px 34px rgba(41,39,40,.1); }
@media (hover: hover) {
  .ec-formule > a:hover, .ec-etape > a:hover { transform: translateY(-3px); }
  .ec-formule > a:hover img, .ec-etape > a:hover img { transform: scale(1.05); }
  .ec-formule > a:hover .ec-formule__lien svg, .ec-etape > a:hover .ec-formule__lien svg { transform: translateX(3px); }
}
.ec-notes { display: flex; flex-wrap: wrap; gap: 0.5rem 1.6rem; margin: 1rem 0 0; padding: 0; list-style: none; font: 700 var(--fs-sm)/1.3 var(--font-texte); color: var(--fg-texte); }
.ec-notes li { display: inline-flex; align-items: center; gap: 0.45rem; }
.ec-notes svg { width: 1.05rem; height: 1.05rem; color: var(--pa-turquoise-text); }
.ec-notes a { color: var(--fg-lien); }

.ec-etapes { grid-template-columns: repeat(2, minmax(0, 1fr)); }

/* Parcours de stages : cartes numérotées reliées par un trait */
.ec-legende { display: flex; justify-content: space-between; margin: 0 0 0.5rem; font: 800 var(--fs-2xs)/1 var(--font-texte); letter-spacing: 0.1em; text-transform: uppercase; color: var(--fg-secondaire); }
.ec-legende span:last-child::after { content: " →"; }
.ec-parcours { position: relative; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0.75rem; margin: 0; padding: 0; list-style: none; }
.ec-parcours::before { content: ""; position: absolute; left: 2%; right: 2%; top: calc(0.75rem + 1px); height: 2px; background: linear-gradient(90deg, var(--pa-turquoise), var(--pa-noir)); opacity: .35; }
.ec-etape { position: relative; }
.ec-etape__num { position: absolute; left: 0.6rem; top: 0.6rem; display: grid; place-items: center; width: 2.2rem; height: 2.2rem; border-radius: 8px; background: var(--pa-noir); color: var(--pa-turquoise); font: 900 var(--fs-md)/1 var(--font-titre); }
.ec-etape__txt { font: 600 var(--fs-sm)/1.45 var(--font-texte); color: var(--fg-texte); }
.ec-etape__pour { font: 700 var(--fs-xs)/1.3 var(--font-texte); color: var(--fg-secondaire); }
.ec-specialites { display: flex; flex-wrap: wrap; align-items: center; gap: 0.6rem 1rem; margin-top: 1rem; }
.ec-specialites .surtitre { margin: 0; }
.ec-specialites ul { display: flex; flex-wrap: wrap; gap: 0.4rem; margin: 0; padding: 0; list-style: none; }
.ec-specialites a { display: inline-flex; align-items: center; gap: 0.5rem; height: 2.5rem; padding: 0 0.85rem; border-radius: 8px; background: #fff; border: 1px solid var(--bord-fort);
  font: 700 var(--fs-sm)/1 var(--font-texte); color: var(--fg-titre); text-decoration: none; transition: border-color var(--t-rapide), background var(--t-rapide); }
.ec-specialites small { font-weight: 600; color: var(--fg-secondaire); }
.ec-specialites a:hover { border-color: var(--pa-turquoise); background: var(--pa-turquoise-50); }

/* Sessions : liste en colonnes fixes (règle des listes de la charte) */
.ec-sessions { display: grid; gap: 0.5rem; margin: 0; padding: 0; list-style: none; }
.ec-session { display: grid; grid-template-columns: 3.6rem minmax(0, 1fr) 5.5rem 12rem 7rem 9.5rem; align-items: center; gap: 1.2rem; padding: 0.7rem 0.8rem 0.7rem 0.7rem;
  border-radius: 14px; background: #fff; border: 1px solid var(--bord); }
.ec-session__stage { display: grid; gap: 0.25rem; }
.ec-session__stage b { font: 800 var(--fs-md)/1.2 var(--font-titre); color: var(--fg-titre); }
.ec-session__stage span, .ec-session__duree, .ec-session__places > span { display: inline-flex; align-items: center; gap: 0.35rem; font: 600 var(--fs-xs)/1.3 var(--font-texte); color: var(--fg-secondaire); }
.ec-session__stage svg { width: 0.9rem; height: 0.9rem; color: var(--pa-turquoise-text); }
.ec-session__places { display: grid; gap: 0.35rem; }
.ec-session__places .ec-jauge { margin: 0; }
.ec-session__places .ec-jauge--tendu + span { color: var(--alerte); font-weight: 800; }
.ec-session__prix { display: grid; justify-items: end; gap: 0.2rem; font: 600 var(--fs-2xs)/1 var(--font-texte); color: var(--fg-secondaire); text-transform: uppercase; letter-spacing: 0.06em; }
.ec-session__prix b { font: 900 var(--fs-lg)/1 var(--font-titre); color: var(--fg-titre); text-transform: none; letter-spacing: 0; }
.ec-session__btn { width: 100%; justify-content: space-between; }

/* École et équipe */
.ec-ecole__grille { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: var(--sp-l); align-items: center; }
.ec-ecole__photo { position: relative; margin: 0; border-radius: 16px; overflow: hidden; }
.ec-ecole__photo img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; }
.ec-ecole__photo figcaption { position: absolute; left: 0.8rem; bottom: 0.8rem; padding: 0.45rem 0.7rem; border-radius: 6px; background: rgba(20,19,19,.68); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
  font: 700 var(--fs-xs)/1 var(--font-texte); color: #fff; }
.ec-ecole__texte h2 { margin: 0 0 0.8rem; font-size: var(--fs-xl); line-height: 1.15; }
.ec-ecole__texte > p { margin: 0 0 1.2rem; font-size: 16px; line-height: 1.65; color: var(--fg-texte); }
.ec-moniteurs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.5rem; margin: 0 0 1rem; padding: 0; list-style: none; }
.ec-moniteurs li { display: flex; align-items: center; gap: 0.7rem; padding: 0.65rem 0.75rem; border-radius: 12px; background: #fff; border: 1px solid var(--bord); }
.ec-moniteurs li:first-child { grid-column: 1 / -1; border-color: var(--pa-turquoise); background: var(--pa-turquoise-50); }
.ec-avatar { display: grid; place-items: center; flex: none; width: 2.6rem; height: 2.6rem; border-radius: 50%; background: var(--pa-noir); color: var(--pa-turquoise); font: 900 var(--fs-md)/1 var(--font-titre); }
.ec-avatar { overflow: hidden; }
.ec-avatar img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ec-moniteurs div { display: grid; gap: 0.1rem; font: 600 var(--fs-xs)/1.3 var(--font-texte); color: var(--fg-secondaire); }
.ec-moniteurs b { font: 800 var(--fs-sm)/1.2 var(--font-titre); color: var(--fg-titre); }
.ec-moniteurs small { font: 700 var(--fs-2xs)/1.2 var(--font-texte); color: var(--pa-turquoise-text); text-transform: uppercase; letter-spacing: 0.06em; }
.ec-raisons { margin-top: var(--sp-m); }

/* Sites, webcam, lieux, articles : cartes à photo bord à bord */
.ec-meteo { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 1rem; }
.ec-sites { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem; margin: 0; padding: 0; list-style: none; }
.ec-sites--4, .ec-articles { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.ec-articles { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ec-sites a { display: flex; flex-direction: column; gap: 0.3rem; height: 100%; box-sizing: border-box; padding-bottom: 1rem; overflow: hidden; border-radius: 16px; background: #fff; border: 1px solid var(--bord);
  color: var(--fg-secondaire); text-decoration: none; font: 600 var(--fs-sm)/1.45 var(--font-texte); transition: border-color var(--t-normal), box-shadow var(--t-normal); }
.ec-site__img { display: block; aspect-ratio: 16 / 9; margin-bottom: 0.5rem; overflow: hidden; background: #eef2f4; }
.ec-site__img img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 0; transition: transform 700ms cubic-bezier(.2,.7,.3,1); }
.ec-sites a > b, .ec-sites a > span:not(.ec-site__img), .ec-sites a > .surtitre { padding-inline: 1rem; }
.ec-sites a > b { display: inline-flex; align-items: center; gap: 0.35rem; font: 800 var(--fs-md)/1.25 var(--font-titre); color: var(--fg-titre); }
.ec-sites a > b svg { width: 0.9rem; height: 0.9rem; color: var(--fg-secondaire); }
.ec-sites .surtitre { margin: 0; color: var(--pa-turquoise-text); }
.ec-articles a > b { font-size: var(--fs-lg); }
.ec-articles .rb-tout { margin-top: auto; padding-top: 0.4rem; }
.ec-sites a:hover { border-color: rgba(41,39,40,.2); box-shadow: 0 14px 34px rgba(41,39,40,.1); }
.ec-sites a:hover img { transform: scale(1.05); }
.ec-webcam-carte { display: grid; grid-template-rows: auto 1fr; overflow: hidden; border-radius: 16px; background: var(--pa-noir); color: rgba(255,255,255,.75); text-decoration: none; }
.ec-webcam-carte__img { display: block; aspect-ratio: 16 / 10; overflow: hidden; }
.ec-webcam-carte__img img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 900ms cubic-bezier(.2,.7,.3,1); }
.ec-webcam-carte:hover img { transform: scale(1.04); }
.ec-webcam-carte__txt { display: flex; flex-direction: column; gap: 0.5rem; padding: var(--sp-m); font: 600 var(--fs-sm)/1.55 var(--font-texte); }
.ec-webcam-carte .surtitre { margin: 0; color: var(--pa-turquoise); }
.ec-webcam-carte b { font: 900 var(--fs-xl)/1.1 var(--font-titre); color: #fff; }
.ec-webcam-carte__bas { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.6rem; margin-top: auto; padding-top: 0.8rem; border-top: 1px solid rgba(255,255,255,.12); }
.ec-webcam-carte__bas > span:first-child { display: inline-flex; align-items: center; gap: 0.4rem; }
.ec-webcam-carte__bas svg { width: 1rem; height: 1rem; color: var(--pa-turquoise); }
.ec-webcam-carte .rb-tout { color: var(--pa-turquoise); }

/* Avis */
.ec-avis { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.75rem; margin: 0; padding: 0; list-style: none; }
.ec-avis li { display: grid; align-content: start; gap: 0.6rem; padding: 1.2rem 1.3rem; border-radius: 16px; background: #fff; border: 1px solid var(--bord); }
.ec-avis .ec-etoiles svg { width: 1rem; height: 1rem; }
.ec-avis p { margin: 0; font: 600 var(--fs-base)/1.55 var(--font-texte); color: var(--fg-texte); }

/* FAQ */
.ec-faq { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.5rem 0.75rem; align-items: start; }
.ec-faq details { border-radius: 12px; background: #fff; border: 1px solid var(--bord); }
.ec-faq summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.1rem; cursor: pointer; list-style: none; font: 800 var(--fs-base)/1.3 var(--font-titre); color: var(--fg-titre); }
.ec-faq summary::-webkit-details-marker { display: none; }
.ec-faq summary svg { width: 1.1rem; height: 1.1rem; flex: none; color: var(--pa-turquoise-text); transition: transform var(--t-normal); }
.ec-faq details[open] summary svg { transform: rotate(45deg); }
.ec-faq details[open] { border-color: var(--pa-turquoise); }
.ec-faq p { margin: 0; padding: 0 1.1rem 1.1rem; font-size: var(--fs-sm); line-height: 1.6; color: var(--fg-texte); }

/* S'équiper après le stage : bande sombre vers la boutique */
.ec-equiper { position: relative; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem 2rem; margin-top: var(--sp-xl); padding: var(--sp-l); border-radius: 16px; overflow: hidden; isolation: isolate; color: rgba(255,255,255,.8); background: var(--pa-noir); }
.ec-equiper > img { position: absolute; right: 0; top: 0; z-index: -1; width: 45%; height: 100%; object-fit: cover; opacity: .55; -webkit-mask-image: linear-gradient(90deg, transparent, #000 60%); mask-image: linear-gradient(90deg, transparent, #000 60%); }
.ec-equiper__txt { display: grid; gap: 0.4rem; max-width: 44rem; font: 600 var(--fs-sm)/1.55 var(--font-texte); }
.ec-equiper .surtitre { margin: 0; color: var(--pa-turquoise); }
.ec-equiper b { font: 900 var(--fs-xl)/1.15 var(--font-titre); color: #fff; }
.ec-equiper__boutons { display: flex; flex-wrap: wrap; gap: 0.6rem; }
.ec-equiper .pa-btn--fantome { color: #fff; border: 1px solid rgba(255,255,255,.4); }
.ec-equiper .pa-btn--fantome:hover { background: #fff; color: var(--pa-noir); }

/* Barre du bas sur mobile */
.ec-barre-mobile { gap: 0.5rem; }
.ec-barre-mobile .ec-bm-resa { flex: 1; justify-content: space-between; }
.ec-bm-stage { display: none; }
html[data-r-barre="deux"] .ec-bm-stage { display: inline-flex; flex: 1; justify-content: center; }
html[data-r-barre="deux"] .ec-bm-tel { display: none; }
html[data-r-barre="aucune"] .ec-barre-mobile { display: none !important; }
.ec-bm-tel { flex: none; border: 1px solid var(--bord-fort); }

/* ═════════════ Responsive ═════════════ */
@media (max-width: 1279px) {
  .ec-session { grid-template-columns: 3.6rem minmax(0, 1fr) 11rem 6.5rem 9rem; }
  .ec-session__duree { display: none; }
  .ec-parcours { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .ec-parcours::before { display: none; }
  .ec-sites--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 1099px) {
  html[data-r-format="mosaique"] .ec-hero__cadre { grid-template-columns: 1fr; }
  html[data-r-format="mosaique"] .ec-portes { grid-template-columns: 1fr 1fr; grid-template-rows: none; }
  html[data-r-format="mosaique"] .ec-porte { min-height: 15rem; }
  html[data-r-format="scinde"] .ec-hero__scene, html[data-r-format="hublot"] .ec-hero__scene { grid-template-columns: 1fr 1fr; }
  .ec-meteo, .ec-ecole__grille { grid-template-columns: 1fr; }
  .ec-incrust { width: 15rem; }
}
@media (max-width: 900px) {
  .ec-formules { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 0.4rem; margin-inline: calc(-1 * var(--gouttiere)); padding-inline: var(--gouttiere); scroll-padding-inline: var(--gouttiere); scrollbar-width: none; }
  .ec-formules::-webkit-scrollbar { display: none; }
  .ec-formule { flex: 0 0 min(72vw, 17rem); scroll-snap-align: start; }
  .ec-parcours { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 0.4rem; margin-inline: calc(-1 * var(--gouttiere)); padding-inline: var(--gouttiere); scroll-padding-inline: var(--gouttiere); scrollbar-width: none; }
  .ec-parcours::-webkit-scrollbar { display: none; }
  .ec-etape { flex: 0 0 min(72vw, 17rem); scroll-snap-align: start; }
  .ec-session { grid-template-columns: 3.6rem minmax(0, 1fr) auto; gap: 0.6rem 0.9rem; }
  .ec-session__places { grid-column: 2; }
  .ec-session__prix { grid-column: 3; grid-row: 1; }
  .ec-session__btn { grid-column: 3; grid-row: 2; width: auto; }
  .ec-avis, .ec-faq, .ec-articles { grid-template-columns: 1fr; }
  .ec-resa__panneau, .ec-resa__panneau[data-panneau-resa="s"] { grid-template-columns: 1fr; }
  .ec-resa__panneau .pa-btn, .ec-resa__panneau[data-panneau-resa="s"] .pa-btn { grid-column: 1; grid-row: auto; justify-content: space-between; }
  .ec-resa__note { grid-column: 1; }
  html[data-r-resa="chiffres"] .ec-chiffres { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ec-equiper > img { width: 100%; opacity: .3; }
}
@media (max-width: 759px) {
  .ec-hero { --ec-h: 34rem; }
  html[data-r-hauteur] .ec-hero { --ec-h: min(36rem, calc(100svh - 8rem)); }
  .ec-hero__scene { padding: 1.3rem; }
  .ec-incrust, .ec-hublot-chips { display: none !important; }
  .ec-hero__boutons, html[data-r-boutons="cartes"] .ec-hero__boutons { display: grid; grid-template-columns: 1fr; width: 100%; }
  .ec-hero__boutons .pa-btn { justify-content: space-between; min-width: 0; white-space: normal; text-align: left; }
  html[data-r-format="mosaique"] .ec-hero__boutons .ec-b2 { display: inline-flex; }
  html[data-r-format="mosaique"] .ec-portes { display: none; }
  html[data-r-format="portes"] .ec-portes { grid-template-columns: 1fr; }
  html[data-r-format="portes"] .ec-porte { min-height: 17rem; padding: 1.3rem; }
  html[data-r-format="scinde"] .ec-hero__scene, html[data-r-format="hublot"] .ec-hero__scene { display: flex; flex-direction: column-reverse; gap: 0; }
  html[data-r-format="scinde"] .ec-hero__media, html[data-r-format="hublot"] .ec-hero__media { width: 100%; height: 58vw; margin: 0; }
  html[data-r-format="hublot"] .ec-hero__media { width: calc(100% - 2.6rem); height: 90vw; margin: 1rem auto 0; }
  html[data-r-format="scinde"] .ec-hero__contenu, html[data-r-format="hublot"] .ec-hero__contenu { padding: 1.3rem; }
  html[data-r-format="bord"] .ec-hero__scene { padding-block: 1.6rem; }
  /* Photo puis texte (réglage 20) */
  html[data-r-mobile="dessous"]:not([data-r-format="scinde"]):not([data-r-format="hublot"]):not([data-r-format="portes"]) .ec-hero__scene { padding: 0; color: var(--fg-titre); background: #fff; border: 1px solid var(--bord); min-height: 0; }
  html[data-r-mobile="dessous"]:not([data-r-format="scinde"]):not([data-r-format="hublot"]):not([data-r-format="portes"]) .ec-hero__media { position: relative; height: 62vw; }
  html[data-r-mobile="dessous"]:not([data-r-format="scinde"]):not([data-r-format="hublot"]):not([data-r-format="portes"]) .ec-hero__scene::after { display: none; }
  html[data-r-mobile="dessous"]:not([data-r-format="scinde"]):not([data-r-format="hublot"]):not([data-r-format="portes"]) .ec-hero__contenu { padding: 1.2rem 1.2rem 1.4rem; text-shadow: none; }
  html[data-r-mobile="dessous"] .ec-hero__texte { color: var(--fg-texte); }
  html[data-r-mobile="dessous"] .ec-reperes { color: var(--fg-titre); }
  html[data-r-mobile="dessous"] .ec-reperes svg { color: var(--pa-turquoise-text); }
  html[data-r-mobile="dessous"] .ec-hero__surtitre { background: var(--pa-noir); }
  html[data-r-mobile="dessous"] .ec-b2 { color: var(--pa-noir); border-color: var(--bord-fort); background: #fff; }
  html[data-r-mobile="dessous"] .ec-b2 .pa-ico-pastille { background: var(--pa-noir); color: var(--pa-turquoise); }
  .ec-hero__titre { max-width: none; }
  html[data-r-resa="onglets"] .ec-resa { margin-top: 1rem; }
  .ec-resa__carte { padding-inline: 0.9rem; }
  .ec-sites, .ec-sites--4 { grid-template-columns: 1fr; }
  .ec-moniteurs { grid-template-columns: 1fr; }
  .ec-etapes { grid-template-columns: 1fr; }
  .ec-equiper { padding: 1.4rem; }
  .ec-session { grid-template-columns: 3.4rem minmax(0, 1fr); }
  .ec-session__places { grid-column: 2; }
  .ec-session__prix { grid-column: 1 / 2; grid-row: 3; justify-items: start; }
  .ec-session__btn { grid-column: 2; grid-row: 3; }
  .ec-bande-reperes .ec-reperes { justify-content: flex-start; gap: 0.6rem 1.2rem; }
}

/* Bouton « Réserver » de l'en-tête : jaune, comme toutes les actions principales */
.pa-entete .ec-cta-reserver, .pa-entete .ec-cta-reserver:hover { background: var(--pa-jaune); border-color: var(--pa-jaune); color: var(--pa-noir); }
.pa-entete .ec-cta-reserver:hover { background: var(--pa-jaune-fonce); border-color: var(--pa-jaune-fonce); }
.pa-entete .ec-cta-reserver svg, .pa-entete .ec-cta-reserver:hover svg { color: var(--pa-noir); }

/* Huitième case de la grille des formules : aide au choix */
.ec-formule--aide > a { display: grid; place-content: center; justify-items: center; gap: 0.7rem; padding: 1.5rem; border-style: dashed; border-color: var(--bord-fort); background: transparent; text-align: center; }
.ec-formule--aide i { display: grid; place-items: center; width: 3rem; height: 3rem; border-radius: 8px; background: var(--pa-noir); color: var(--pa-turquoise); }
.ec-formule--aide svg { width: 1.2rem; height: 1.2rem; }
.ec-formule--aide b { font: 900 var(--fs-lg)/1.15 var(--font-titre); color: var(--fg-titre); }
.ec-formule--aide span { font: 600 var(--fs-sm)/1.5 var(--font-texte); color: var(--fg-secondaire); }
.ec-formule--aide strong { font: 800 var(--fs-md)/1 var(--font-texte); color: var(--pa-turquoise-text); }
.ec-formule--aide > a:hover { border-color: var(--pa-turquoise); background: var(--pa-turquoise-50); }

/* Aucun soulignement au survol sur le site école (demande de Bastien du 2026-11-14) : neutralise a:hover de tokens.css et les survols du pied */
html body.page-ecole a:hover, html body.page-ecole a:focus-visible, html body.page-ecole .pied-cookies:hover { text-decoration: none; }

/* ═════════════ Pages « site de vol » (2026-11-14) : une page par site, generateurs/ecole-sites-page.py ═════════════ */
.page-ecole-site .lc-tete h1 { font-size: var(--fs-3xl); line-height: 1.05; }
.ec-sitep-photo { position: relative; margin: 0 0 var(--sp-m); aspect-ratio: 21 / 8; overflow: hidden; border-radius: 16px; background: #eef2f4; }
.ec-sitep-photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.ec-provisoire { position: absolute; left: 0.8rem; bottom: 0.8rem; padding: 0.45rem 0.7rem; border-radius: 8px; background: rgba(20,19,19,.72); color: #fff;
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); font: 700 var(--fs-2xs)/1.3 var(--font-texte); }
.ec-fiche__liste { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); margin: 0; border-radius: 16px; background: #fff; border: 1px solid var(--bord); overflow: hidden; }
.ec-fiche__liste > div { display: grid; align-content: start; gap: 0.35rem; padding: 1rem 1.1rem; border-left: 1px solid var(--bord); }
.ec-fiche__liste > div:first-child { border-left: 0; }
.ec-fiche__liste dt { font: 700 var(--fs-2xs)/1.2 var(--font-texte); letter-spacing: 0.08em; text-transform: uppercase; color: var(--fg-secondaire); }
.ec-fiche__liste dd { margin: 0; font: 700 var(--fs-sm)/1.4 var(--font-texte); color: var(--fg-titre); }
.ec-fiche__liste dd a { display: inline-flex; align-items: center; gap: 0.25rem; color: var(--pa-turquoise-text); }
.ec-fiche__liste dd a svg { width: 0.75rem; height: 0.75rem; }
.ec-fiche__liste em { font-style: normal; color: #b45309; }
.ec-site-act { grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); }
.ec-site-act .ec-mtuile__img { aspect-ratio: 21 / 9; }
.ec-site-act .ec-mtuile b { padding: 0.8rem 1rem 0.15rem; font-size: var(--fs-md); }
.ec-site-act .ec-mtuile small { padding: 0 1rem 0.9rem; font-size: var(--fs-xs); }
.ec-sites--autres { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ec-webcam-carte--large { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); grid-template-rows: none; }
@media (max-width: 1099px) {
  .ec-fiche__liste { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ec-fiche__liste > div { border-left: 0; border-top: 1px solid var(--bord); }
  .ec-fiche__liste > div:nth-child(2n) { border-left: 1px solid var(--bord); }
  .ec-fiche__liste > div:nth-child(-n+2) { border-top: 0; }
  .ec-site-act, .ec-sites--autres { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 639px) {
  .ec-sitep-photo { aspect-ratio: 16 / 10; }
  .ec-fiche__liste { grid-template-columns: minmax(0, 1fr); }
  .ec-fiche__liste > div, .ec-fiche__liste > div:nth-child(2n) { border-left: 0; }
  .ec-fiche__liste > div:nth-child(2) { border-top: 1px solid var(--bord); }
  .ec-site-act, .ec-sites--autres { grid-template-columns: minmax(0, 1fr); }
  .ec-webcam-carte--large { grid-template-columns: minmax(0, 1fr); }
  .page-ecole-site .lc-tete h1 { font-size: var(--fs-2xl); }
}
