/* A.B.I.I.F. — fenêtre de pré-inscription (partagée par toutes les pages) */
/* ============ Formulaire d'inscription ============ */
.nav-actions{display:flex;gap:.5rem;align-items:center}
.btn-blue-line{border-color:#1855A0;color:#1855A0;background:#fff}
.btn-blue-line:hover{background:#1855A0;color:#fff}
.nav-actions .btn{white-space:nowrap}
@media (max-width:520px){.nav-in{padding:0 .75rem;gap:.5rem}.nav-actions{gap:.35rem}.nav-actions .btn{padding:.45rem .6rem;font-size:.82rem}.brand{gap:.45rem!important}.brand span{padding-left:.45rem!important;border-left:0}.brand-desktop{display:none}}
@media (max-width:370px){.nav-actions .btn{padding:.4rem .5rem;font-size:.76rem}}
body.insc-open{overflow:hidden}
.insc{position:fixed;inset:0;z-index:200;display:flex;color:#fff;font-family:var(--sans)}
.insc[hidden]{display:none}
.insc [hidden]{display:none!important}
.insc-bg{position:absolute;inset:0;background:#07172E url('/media/opt/grotte-cierges-2026-1536.webp') 70% 50%/cover no-repeat}
.insc-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,23,46,.85),rgba(7,23,46,.45) 55%,rgba(7,23,46,.6))}
.insc-close{position:absolute;top:calc(env(safe-area-inset-top,0px) + 1rem);right:1rem;z-index:3;width:44px;height:44px;border-radius:50%;border:0;background:rgba(255,255,255,.14);color:#fff;display:grid;place-items:center;cursor:pointer}
.insc-close:hover{background:rgba(255,255,255,.28)}
.insc-in{position:relative;z-index:2;flex:1;display:grid;grid-template-columns:minmax(0,600px);justify-content:center;align-items:center;gap:clamp(1.5rem,4vw,4rem);padding:calc(env(safe-area-inset-top,0px) + 4.5rem) clamp(1.25rem,4vw,3.5rem) calc(env(safe-area-inset-bottom,0px) + clamp(1.5rem,4vw,3rem));overflow-y:auto}
.insc-panel{background:#fff;color:#0E2644;border-radius:12px;padding:clamp(1.4rem,3vw,2.2rem);box-shadow:0 30px 80px rgba(0,0,0,.4);max-height:calc(100svh - 7rem);overflow-y:auto}
.insc-panel h2{font-family:var(--head);font-weight:700;font-size:clamp(1.6rem,2.6vw,2.1rem);line-height:1.1;margin:0;color:#12437D}
.insc-intro{margin:.6rem 0 1.2rem;color:#50627E}
.insc-date{display:flex;gap:.8rem;align-items:flex-start;margin:1rem 0 0;padding:.8rem 1rem;border-left:3px solid #D3342B;border-radius:8px;background:#F4F7FB;color:#50627E;font-size:.95rem}
.insc-date svg{flex:none;width:24px;height:24px;margin-top:.1rem;fill:none;stroke:#1855A0;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.insc-date b{display:block;font-family:var(--head);font-weight:700;font-size:1.2rem;color:#12437D}
.insc-first{margin:1rem 0 0;padding:.9rem 1rem;border-radius:8px;background:#D3342B;color:#fff;font-size:.95rem;line-height:1.45}
.insc-first b{display:block;margin-bottom:.25rem;font-size:1.08rem;line-height:1.3}
.insc-note{margin:.8rem 0 0;padding:.8rem 1rem;border:2px solid #12437D;border-radius:8px;background:#fff;font-size:1rem;line-height:1.45;color:#0E2644}
.insc-note b{color:#12437D}
.insc-theme{display:block;margin-top:.35rem;font-style:italic;color:#12437D}
.theme .verset .ref{display:block;font-size:max(.26em,.85rem);letter-spacing:.06em;line-height:1.2;margin-top:.7em}
.insc-options{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}
.insc-opt{display:flex;flex-direction:column;align-items:flex-start;gap:.7rem;text-align:left;padding:1.1rem;border:1.5px solid rgba(24,85,160,.2);border-radius:10px;background:#F4F7FB;color:#0E2644;cursor:pointer;font:inherit;transition:border-color .15s,background .15s,transform .15s}
.insc-opt:hover,.insc-opt:focus-visible{border-color:#1855A0;background:#fff;transform:translateY(-2px)}
.insc-opt b{font-family:var(--head);font-weight:700;font-size:1.15rem;line-height:1.15}
.insc-ico{width:40px;height:40px;border-radius:50%;background:#1855A0;display:grid;place-items:center}
.insc-ico svg{width:22px;height:22px;fill:none;stroke:#fff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.insc-back{border:0;background:none;color:#1855A0;font:inherit;font-family:var(--head);font-weight:600;padding:0;margin-bottom:.8rem;cursor:pointer}
.insc-fields{display:grid;grid-template-columns:1fr 1fr;gap:.8rem 1rem;margin-top:1.2rem}
.insc-fields label,.insc-fields legend{display:flex;flex-direction:column;gap:.3rem;font-family:var(--head);font-weight:600;font-size:.92rem;color:#12437D}
.insc-fields .f-full{grid-column:1/-1}
/* Deux champs côte à côte : quand l'un a une aide sous son libellé et pas l'autre, les cases de saisie
   restent alignées (la ligne de la grille prend la hauteur du plus haut, la case descend en bas). */
.insc-fields label>input:not([type=radio]):not([type=checkbox]):not([type=file]),.insc-fields label>select,.insc-fields label>textarea{margin-top:auto}
.insc-fields input:not([type=radio]):not([type=checkbox]):not([type=file]),.insc-fields select{min-height:3.125rem} /* même hauteur partout, y compris le champ date, un peu plus haut dans Chrome */
.insc-fields input:not([type=radio]):not([type=checkbox]),.insc-fields select,.insc-fields textarea{font:inherit;font-family:var(--sans);font-weight:400;font-size:1rem;color:#0E2644;padding:.6rem .7rem;border:1.5px solid #7A8BA3;border-radius:6px;background:#fff;width:100%}
.insc-fields input:not([type=radio]):not([type=checkbox]):focus,.insc-fields select:focus,.insc-fields textarea:focus{outline:2px solid #1855A0;outline-offset:2px;border-color:#1855A0}
.insc-fields input[type=radio]:focus-visible,.insc-fields input[type=checkbox]:focus-visible{outline:2px solid #1855A0;outline-offset:2px}
.insc-fields .invalid{border-color:var(--red)!important}
.insc-radio{border:0;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.4rem 1.2rem}
.insc-radio legend{margin-bottom:.3rem;width:100%}
.insc-radio label{flex-direction:row;align-items:center;gap:.4rem;font-family:var(--sans);font-weight:400;color:#0E2644}
.insc-consent{flex-direction:row!important;align-items:flex-start;gap:.5rem!important;font-family:var(--sans)!important;font-weight:400!important;color:#50627E!important;font-size:.88rem!important}
.insc-consent input{margin-top:.2rem}
.insc-fields .insc-lib{display:block;font-family:var(--head);font-weight:600;font-size:.92rem;color:#12437D} /* libellé des champs fichier : même style que les autres libellés */
.insc-fields select{appearance:none;-webkit-appearance:none;line-height:1.6;padding-right:2.1rem;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' fill='none' stroke='%231855A0' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/></svg>");background-repeat:no-repeat;background-position:right .8rem center;background-size:12px 8px}
.insc-sticky{position:sticky;top:calc(-1 * clamp(1.4rem,3vw,2.2rem));z-index:3;background:#fff;margin-top:calc(-1 * clamp(1.4rem,3vw,2.2rem));padding-top:clamp(1.4rem,3vw,2.2rem);padding-bottom:.7rem;margin-bottom:.8rem;border-bottom:1px solid rgba(24,85,160,.15)}
.insc-sticky .insc-back{margin-bottom:.45rem}
.insc-fields .insc-req{color:var(--red);margin-left:.15rem;font-weight:700}
.insc-oblig{margin:0 0 .9rem;font:400 .85rem/1.4 var(--sans);color:#50627E}
.insc-fields .insc-aide{display:block;font-family:var(--sans);font-weight:400;font-style:normal;font-size:.8rem;line-height:1.35;color:#50627E;margin-top:.1rem}
.insc-file{position:relative;display:flex;align-items:center;gap:.75rem;margin-top:.35rem;padding:.6rem .7rem;border:1.5px dashed #b9c8de;border-radius:12px;background:#f7f9fc;cursor:pointer;transition:border-color .2s,background .2s}
.insc-file:hover,.insc-file:focus-within{border-color:#1855A0;background:#eef3fa}
/* Le vrai champ, invisible, reste DANS son cadre (.insc-file en position relative) : au retour du
   sélecteur de fichier, le navigateur lui rend le focus et fait défiler jusqu'à lui. Ancré plus haut
   (sur .insc-in), il emportait tout le formulaire hors de l'écran. */
.insc-file input[type=file]{position:absolute;top:0;left:0;width:1px;height:1px;opacity:0;pointer-events:none}
.insc-file-btn{flex:none;display:inline-flex;align-items:center;gap:.4rem;padding:.45rem .9rem;border-radius:999px;background:#1855A0;color:#fff;font:600 .85rem var(--sans)}
.insc-file-btn svg{width:16px;height:16px}
.insc-file-nom{font:.88rem var(--sans);color:#55657a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.insc-file.ok{border-style:solid;border-color:#1855A0;background:#fff}
.insc-file.ok .insc-file-nom{color:#1a2a40;font-weight:600}
.insc-file.bad{border-color:#c0392b;background:#fdf3f2}
.insc-file-err{display:block;margin-top:.35rem;font:.85rem var(--sans);color:#c0392b}
.insc-err-champ{display:block;margin:.35rem 0 0;font:.85rem var(--sans);color:#c0392b}
.insc-fields .insc-radio legend{display:block}
.insc-opt[aria-disabled=true]{opacity:.45;cursor:not-allowed}
.insc-ferme{color:var(--red);font-family:var(--head);font-weight:600;font-size:.95rem;margin-top:.8rem}

.insc-error{color:#CF3229;font-weight:500;margin:.8rem 0 0}
.insc-hp{position:absolute!important;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}
.insc-submit{margin-top:1.2rem;width:100%;justify-content:center;padding:.9rem;font-size:1.05rem}
@media (max-width:860px){
  .insc-in{grid-template-columns:1fr;align-items:start;align-content:start}
  .insc-panel{max-height:none;overflow:visible}
  /* En mobile, c'est .insc-in qui défile, avec 4,5rem de marge haute : la
     barre doit remonter d'autant, sinon le formulaire reste visible
     au-dessus d'elle pendant le défilement. */
  .insc-sticky{top:calc(-1 * (env(safe-area-inset-top,0px) + 4.5rem))}
}
@media (max-width:420px){.insc-options,.insc-fields{grid-template-columns:1fr}}
.insc-bg ~ * .insc-file-btn:focus-visible{outline-color:#fff}

/* Inscriptions toutes fermées : « Nous rejoindre » grisé, date d'ouverture au survol (passation du 26/10/2026) */
.insc-closed [data-inscription]{position:relative;cursor:not-allowed}
.insc-closed .btn[data-inscription]{background:#EEF1F5!important;border-color:#C9D1DC!important;color:#7C8A9C!important}
.insc-closed .tile[data-inscription]{background:#C9D1DC!important;color:#4F5D70!important;box-shadow:none!important}
.insc-closed .tile[data-inscription] *{color:inherit!important}
@media (hover:hover){
  .insc-closed [data-inscription]:hover::after{content:var(--insc-ferme);position:absolute;top:calc(100% + 8px);right:0;z-index:60;width:max-content;max-width:260px;padding:.55rem .75rem;border-radius:6px;background:#12437D;color:#fff;font-family:var(--sans,system-ui,sans-serif);font-weight:400;font-size:.85rem;line-height:1.35;letter-spacing:0;white-space:normal;text-align:left;box-shadow:0 6px 18px rgba(0,0,0,.18)}
}
.insc-toast{position:fixed;left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 5.5rem);transform:translateX(-50%);z-index:1000;max-width:min(90vw,420px);margin:0;padding:.75rem 1rem;border-radius:8px;background:#12437D;color:#fff;font-size:.95rem;line-height:1.4;text-align:center;box-shadow:0 10px 30px rgba(0,0,0,.25)}
