/*
 * Feuille de base de la maquette « Accueil ECS Lyon v4 », reprise telle quelle.
 * Tout le reste de la mise en page est en styles en ligne dans les gabarits,
 * exactement comme dans la maquette. Chargée en dernier.
 */
body{margin:0;background:#fff;color:#2a1d3d;font-family:Figtree,system-ui,sans-serif;font-size:16px;line-height:normal;-webkit-font-smoothing:antialiased}
a{color:#36096A;text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{color:#5a2a94}
*{box-sizing:border-box}
@keyframes ecsFloat{0%,100%{transform:translate(0,0)}50%{transform:translate(0,-26px)}}
@keyframes ecsDrift{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-40px,30px) scale(1.08)}}
@keyframes ecsSpin{to{transform:rotate(360deg)}}
@keyframes ecsMorph{0%,100%{border-radius:72% 28% 58% 42%/38% 64% 36% 62%;transform:rotate(0) scale(1)}25%{border-radius:30% 70% 40% 60%/62% 30% 70% 38%;transform:rotate(45deg) scale(1.08,.92)}50%{border-radius:58% 42% 24% 76%/30% 72% 28% 70%;transform:rotate(110deg) scale(.94,1.06)}75%{border-radius:38% 62% 70% 30%/70% 40% 60% 30%;transform:rotate(170deg) scale(1.04)}}
@keyframes ecsWave{0%,100%{transform:translateY(0) scale(.6);opacity:.45}50%{transform:translateY(-18px) scale(1);opacity:1}}
@keyframes ecsSwoosh{0%{clip-path:inset(0 100% 0 0 round 999px);transform:rotate(-12deg) translateY(0)}40%,60%{clip-path:inset(0 0 0 0 round 999px);transform:rotate(-12deg) translateY(-10px)}100%{clip-path:inset(0 0 0 100% round 999px);transform:rotate(-12deg) translateY(0)}}
@keyframes ecsPulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.35);opacity:.55}}
@keyframes ecsWordIn{from{opacity:0;transform:translateY(60%) rotate(4deg)}to{opacity:1;transform:none}}
@keyframes ecsBadge{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-12px) rotate(1deg)}}
@keyframes ecsGrow{0%,100%{transform:scaleY(.55)}50%{transform:scaleY(1)}}
@keyframes ecsOrbit{from{transform:rotate(0) translateX(46px) rotate(0)}to{transform:rotate(360deg) translateX(46px) rotate(-360deg)}}
@keyframes ecsMarquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){*{animation:none!important}}
input:focus-visible,button:focus-visible,a:focus-visible{outline:3px solid #FFD100;outline-offset:2px}

/* Survols : règles générées par le moteur de la maquette, reprises à l'identique */
.ecs-hv-skip:focus{left:16px!important}
.ecs-hv-lilac:hover{background:#f4effa!important}
.ecs-hv-border:hover{border-color:#36096A!important}
.ecs-hv-violet-dark:hover{background:#4b1586!important;color:#fff!important}
.ecs-hv-white-ink:hover{background:#fff!important;color:#24053f!important}
.ecs-hv-lilac-shift:hover{background:#f4effa!important;transform:translateX(4px)!important}
.ecs-hv-yellow:hover{background:#ffdc3d!important}
.ecs-hv-purple:hover{background:#4a1784!important;color:#fff!important}
.ecs-hv-yellow-ink:hover{background:#ffdc3d!important;color:#24053f!important}
.ecs-hv-lift2:hover{border-color:#36096A!important;transform:translateY(-2px)!important}
.ecs-hv-lift4:hover{transform:translateY(-4px)!important}
.ecs-hv-lift4-border:hover{transform:translateY(-4px)!important;border-color:#36096A!important}
.ecs-hv-lift6:hover{transform:translateY(-6px)!important;box-shadow:0 24px 40px -20px rgba(36,5,63,.35)!important}
.ecs-hv-white:hover{background:#fff!important}
.ecs-hv-violet:hover{background:#36096A!important;color:#fff!important}
.ecs-hv-lift3:hover{border-color:#36096A!important;transform:translateY(-3px)!important}
.ecs-hv-foot:hover{color:#fff!important;text-decoration:underline!important}
.ecs-hv-social:hover{background:#36096A!important;color:#FFD100!important}

/* États pilotés par le script (la maquette re-rend le DOM ; ici on affiche ou masque) */
[data-ecs-panel][hidden],[hidden].ecs-hidden{display:none!important}
.ecs-tab-panel[hidden],[data-ecs-tab-panel][hidden],[data-ecs-search][hidden],[data-ecs-mobile][hidden]{display:none!important}

/* Bascule mobile de la maquette : sous 1080 px, menu replié ; sous 760 px, grille sur une colonne */
.ecs-mq-spacer,.ecs-mq-burger{display:none!important}
@media (max-width:1079px){
  .ecs-mq-nav{display:none!important}
  .ecs-mq-spacer{display:block!important}
  .ecs-mq-burger{display:flex!important}
}
@media (max-width:759px){
  .ecs-mq-bento{grid-template-columns:minmax(0,1fr)!important}
  .ecs-mq-span2{grid-column:auto!important}
  .ecs-mq-vie{grid-template-columns:minmax(0,1fr)!important;grid-template-rows:auto!important}
  .ecs-mq-vie>div{min-height:180px;grid-row:auto!important;grid-column:auto!important}
  .ecs-mq-dir{grid-column:auto!important}
  .ecs-mq-menu-grid{grid-template-columns:minmax(0,1fr)!important}
}

/* ---- Formulaires Loop (habillage maquette Préinscription) ---- */
.ecs-form{display:flex;flex-direction:column;gap:18px}
.ecs-form__form{display:grid;grid-template-columns:1fr 1fr;gap:16px 20px}
.ecs-form__champ{display:flex;flex-direction:column;gap:6px;min-width:0}
.ecs-form__champ--zone-texte,.ecs-form__champ--adresse,.ecs-form__champ--fichier,.ecs-form__champ--image,.ecs-form__champ--case-cocher,.ecs-form__champ--bouton-radio,.ecs-form__section,.ecs-form__contenu,.ecs-form__actions,.ecs-form__hp{grid-column:1/-1}
.ecs-form__label,.ecs-form__legend{display:flex;flex-direction:column;gap:6px;font:600 13px Lexend,sans-serif;color:#36096A;padding:0}
.ecs-form__libelle span[aria-hidden]{color:#b3261e}
.ecs-form__input{width:100%;box-sizing:border-box;border:1.5px solid #d9cce9;border-radius:12px;padding:12px 14px;font:500 15px Figtree,sans-serif;color:#2a1d3d;background:#fff;transition:border-color .2s,box-shadow .2s}
select.ecs-form__input{padding:13px 14px;appearance:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2336096A' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 14px center;padding-right:40px}
textarea.ecs-form__input{min-height:130px;resize:vertical;line-height:1.5}
.ecs-form__input:focus{outline:none;border-color:#36096A;box-shadow:0 0 0 3px rgba(54,9,106,.14)}
.ecs-form__input[aria-invalid=true]{border-color:#b3261e}
input[type=file].ecs-form__input{padding:10px 14px;background:#f7f4fb;border-style:dashed}
.ecs-form__groupe{border:0;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.ecs-form__groupe .ecs-form__choix{display:inline-flex;gap:8px;align-items:center;border:1.5px solid #d9cce9;border-radius:999px;padding:9px 14px;font:500 14px Figtree,sans-serif;color:#2a1d3d;cursor:pointer;margin:0 8px 8px 0;background:#fff;transition:border-color .2s,background .2s}
.ecs-form__groupe .ecs-form__choix:has(input:checked){border-color:#36096A;background:#f4effa;color:#36096A;font-weight:600}
.ecs-form__groupe .ecs-form__choix input{accent-color:#36096A;margin:0;width:16px;height:16px}
.ecs-form__section{margin:10px 0 0;padding-top:18px;border-top:1px solid #ece6f3;font:700 20px Lexend,sans-serif;color:#36096A}
.ecs-form__section:first-child{margin-top:0;padding-top:0;border-top:0}
.ecs-form__contenu{font-size:15px;line-height:1.6;color:#5b4d6e}
.ecs-form__contenu p{margin:0 0 8px}
.ecs-form__aide{margin:0;font-size:13px;color:#5b4d6e}
.ecs-form__erreur{margin:0;font-size:13px;font-weight:600;color:#b3261e}
.ecs-form__actions{display:flex;gap:12px;align-items:center;margin-top:6px}
.ecs-form__submit{border:0;background:#36096A;color:#fff;font:700 15px Figtree,sans-serif;padding:13px 26px;border-radius:999px;cursor:pointer;text-decoration:none;display:inline-block;transition:background .2s,transform .2s}
.ecs-form__submit:hover{background:#4a1784;transform:translateY(-1px)}
.ecs-form__alerte{background:#fff4f4;border:1.5px solid #f3c9c4;border-radius:14px;padding:14px 16px;font-size:14px;color:#8a1c14}
.ecs-form__alerte p{margin:0 0 6px}.ecs-form__alerte ul{margin:0;padding-left:18px}.ecs-form__alerte a{color:#8a1c14;font-weight:600}
.ecs-form__ack{background:#f4effa;border-radius:18px;padding:22px 24px;font-size:16px;line-height:1.6;color:#36096A}
.ecs-form__ack p{margin:0}
.ecs-form__msg{margin:0;font-size:15px;color:#5b4d6e;background:#f7f4fb;border-radius:14px;padding:16px 18px}
@media (max-width:759px){.ecs-form__form{grid-template-columns:1fr}}
