/* Retraite Maurice — pages formulaire (gabarits/formulaire.html), en plus de theme.css */
.fo [hidden]{display:none!important}
.fo-hero{padding:130px 0 90px}
.fo-grille{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,560px);gap:56px;align-items:start}
.fo-txt h1,.fo-merci h1{font-size:clamp(40px,4.6vw,66px);font-weight:700;letter-spacing:-.04em;line-height:1.02;margin:18px 0 18px}
.fo h1 .serif{background:linear-gradient(100deg,var(--blue),var(--lagoon),var(--sky),var(--blue));background-size:300% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:flow 7s linear infinite;padding-right:.1em}
.fo-txt .lead{max-width:560px}

.fo-puces{list-style:none;padding:0;margin:28px 0 30px;display:grid;gap:14px}
.fo-puces li{display:grid;grid-template-columns:46px 1fr;gap:14px;align-items:center}
.fo-puces li>span{width:46px;height:46px;border-radius:15px;background:linear-gradient(135deg,#e9fbfa,var(--ice));display:grid;place-items:center;font-size:21px}
.fo-puces b{display:block;font-size:16.5px}.fo-puces small{color:var(--muted);font-size:14.5px}

.fo-photo{position:relative;border-radius:30px;overflow:hidden;aspect-ratio:3/2;box-shadow:0 40px 70px -50px rgba(15,58,107,.8)}
.fo-photo img{width:100%;height:100%;object-fit:cover}
.fo-questions{position:absolute;left:16px;right:16px;bottom:16px;padding:16px 20px;border-radius:20px;background:rgba(255,255,255,.93);backdrop-filter:blur(8px)}
.fo-questions b{display:block;font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--blue);margin-bottom:8px}
.fo-questions ul{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:6px 16px;font-size:14.5px}
.fo-questions li{padding-left:20px;position:relative;line-height:1.35}
.fo-questions li::before{content:"✓";position:absolute;left:0;color:var(--green);font-weight:700}

/* la carte du formulaire */
.fo-carte{position:relative;background:#fff;border-radius:30px;padding:30px;border:1px solid var(--line);box-shadow:0 40px 80px -50px rgba(15,58,107,.55)}
.fo-rdv .fo-carte{position:sticky;top:96px}
.fo-bloc{border:0;padding:0;margin:0 0 26px;min-width:0}
.fo-bloc legend{display:flex;align-items:center;gap:12px;font-size:20px;font-weight:700;letter-spacing:-.015em;margin-bottom:16px;padding:0}
.fo-bloc legend i{font-style:normal;width:30px;height:30px;border-radius:50%;background:var(--navy);color:#fff;display:grid;place-items:center;font-size:14.5px}

.fo-jours{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 10px;scroll-snap-type:x mandatory;scrollbar-width:thin}
.fo-jours button{flex:0 0 64px;scroll-snap-align:start;display:flex;flex-direction:column;align-items:center;gap:1px;padding:10px 0;border-radius:18px;border:1.5px solid var(--line);background:#fff;font-family:inherit;color:var(--navy-d);cursor:pointer;transition:all .25s}
.fo-jours button small{font-size:12px;color:#6d86a0;text-transform:capitalize}
.fo-jours button b{font-size:21px;line-height:1.15}
.fo-jours button:hover:not(:disabled){border-color:var(--sky)}
.fo-jours button[aria-selected=true]{background:var(--navy);border-color:var(--navy);color:#fff}
.fo-jours button[aria-selected=true] small{color:#bcd3ea}
.fo-jours button:disabled{opacity:.4;cursor:not-allowed;text-decoration:line-through}
.fo-heures{display:grid;grid-template-columns:repeat(5,1fr);align-content:start;gap:8px;margin-top:8px;min-height:96px}
.fo-heures button{padding:11px 0;border-radius:14px;border:1.5px solid var(--line);background:var(--ice);font-family:inherit;font-weight:600;font-size:15px;color:var(--navy-d);cursor:pointer;transition:all .2s}
.fo-heures button:hover:not(:disabled){border-color:var(--sky);background:#fff}
.fo-heures button[aria-selected=true]{background:linear-gradient(120deg,var(--sun1),var(--sun2));border-color:transparent;color:#fff;box-shadow:0 10px 22px -12px rgba(244,138,31,.9)}
.fo-heures button:disabled{background:#f4f6f9;color:#a9bccf;text-decoration:line-through;cursor:not-allowed}
.fo-charge{grid-column:1/-1;color:#6d86a0;font-size:14.5px}
.fo-fuseau{font-size:13px;color:#6d86a0;margin-top:10px}

.fo-champs{display:grid;grid-template-columns:1fr 1fr;gap:14px 14px}
.fo-champ{display:flex;flex-direction:column;gap:6px;min-width:0}
.fo-champ.plein{grid-column:1/-1}
.fo-champ>span{font-size:14px;font-weight:600}
.fo-champ>span small{font-weight:400;color:#6d86a0}
.fo-champ input,.fo-champ select,.fo-champ textarea{width:100%;font:inherit;font-size:16px;color:var(--navy-d);padding:12px 15px;border-radius:14px;border:1.5px solid rgba(15,58,107,.16);background:#fbfdff;transition:border-color .2s,box-shadow .2s}
.fo-champ textarea{resize:vertical;min-height:84px}
.fo-champ input:focus,.fo-champ select:focus,.fo-champ textarea:focus{outline:0;border-color:var(--sky);box-shadow:0 0 0 4px rgba(40,163,230,.15);background:#fff}
.fo-champ.mal input,.fo-champ.mal select,.fo-champ.mal textarea{border-color:var(--red)}
.fo-choix{display:flex;gap:8px;flex-wrap:wrap}
.fo-choix label{position:relative;flex:1;min-width:100px;cursor:pointer}
.fo-choix input{position:absolute;opacity:0;pointer-events:none}
.fo-choix b{display:block;text-align:center;padding:11px 10px;border-radius:14px;border:1.5px solid rgba(15,58,107,.16);font-weight:500;font-size:15px;transition:all .2s}
.fo-choix input:checked+b{background:var(--ice);border-color:var(--blue);color:var(--blue);font-weight:600}
.fo-choix input:focus-visible+b{box-shadow:0 0 0 4px rgba(40,163,230,.25)}
.fo-err{display:block;font-style:normal;font-size:13.5px;color:var(--red);min-height:0}
.fo-err:empty{display:none}

.fo-piege{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.fo-piege input{width:1px}
.fo-accord{display:grid;grid-template-columns:22px 1fr;gap:12px;align-items:start;margin-top:18px;font-size:13.5px;line-height:1.5;color:var(--muted);cursor:pointer}
.fo-accord input{width:20px;height:20px;margin:1px 0 0;accent-color:var(--blue)}
.fo-accord a{color:var(--blue);text-decoration:underline}
.fo-accord.mal span{color:var(--red)}
.fo-serveur{margin-top:14px;padding:12px 16px;border-radius:14px;background:#fdecec;color:var(--red);font-size:14.5px}

.fo-envoi{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-top:22px;padding-top:22px;border-top:1px solid var(--line)}
.fo-contact .fo-envoi{justify-content:flex-end}
.fo-resume{font-size:14.5px;color:var(--muted);flex:1;min-width:180px}
.fo-resume b{color:var(--navy-d)}
.fo-envoi .btn.envoi{opacity:.7;pointer-events:none}
.fo-envoi .btn.envoi .arrow{animation:fo-tourne 1s linear infinite}
@keyframes fo-tourne{to{transform:rotate(360deg)}}

/* contact : les autres moyens */
.fo-droite{display:grid;gap:18px}
.fo-autres-h{font-size:14px;letter-spacing:.16em;text-transform:uppercase;color:#6d86a0;font-weight:600;margin:12px 0 -4px}
.fo-autres{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.fo-tuile{display:grid;grid-template-columns:40px 1fr;gap:0 12px;align-items:center;padding:14px 16px;border-radius:20px;background:#fff;border:1px solid var(--line);transition:transform .3s,border-color .3s}
.fo-tuile:hover{transform:translateY(-3px);border-color:var(--sky)}
.fo-tuile span{grid-row:span 2;width:40px;height:40px;border-radius:13px;background:var(--ice);display:grid;place-items:center;font-size:19px}
.fo-tuile.wa span{background:#e3f6ea}
.fo-tuile b{font-size:15px}.fo-tuile small{color:var(--muted);font-size:13.5px;overflow-wrap:anywhere}
.fo-vers-rdv{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:20px 22px;border-radius:24px;background:linear-gradient(135deg,var(--sand),#fff4dc)}
.fo-vers-rdv b{display:block;font-size:17px}.fo-vers-rdv small{color:var(--muted);font-size:14.5px}

/* merci */
.fo-merci{padding:140px 0 60px}
.fo-merci-in{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.fo-ok{display:block;width:64px;height:64px}
.fo-ok svg{width:100%;height:100%;fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.fo-ok circle{stroke:var(--green);stroke-dasharray:151;stroke-dashoffset:151;animation:fo-trace .8s .2s ease-out forwards}
.fo-ok path{stroke:var(--green);stroke-dasharray:40;stroke-dashoffset:40;animation:fo-trace .5s .9s ease-out forwards}
@keyframes fo-trace{to{stroke-dashoffset:0}}
.fo-quand{display:inline-block;margin-bottom:16px;padding:10px 18px;border-radius:999px;background:var(--ice);color:var(--blue);font-weight:600}
.fo-etapes{list-style:none;padding:0;margin:22px 0 0;display:grid;gap:10px}
.fo-etapes li{padding-left:30px;position:relative}
.fo-etapes li::before{content:"✓";position:absolute;left:0;top:0;width:20px;height:20px;border-radius:50%;background:#e3f6ea;color:var(--green);font-size:12px;font-weight:700;display:grid;place-items:center}
.fo-merci-tel{margin-top:28px;font-size:14.5px;color:#6d86a0}
.fo-merci-tel a{color:var(--navy-d);font-weight:600}
.fo-lire{padding-bottom:90px}
.fo-lire h2{font-size:clamp(26px,2.6vw,34px);font-weight:700;letter-spacing:-.02em;margin-bottom:24px}
.fo-lire .cards{grid-template-columns:repeat(3,1fr)}

@media(max-width:1080px){
  .fo-grille,.fo-merci-in{grid-template-columns:minmax(0,1fr);gap:36px}
  .fo-rdv .fo-carte{position:relative;top:auto}
  .fo-grille .fo-photo{display:none}
  .fo-merci .fo-photo{order:-1}
  .fo-lire .cards{grid-template-columns:1fr 1fr}
}
@media(max-width:640px){
  .fo-hero{padding:96px 0 60px}
  .fo-merci{padding:96px 0 40px}
  .fo-carte{padding:22px 18px;border-radius:24px;margin:0 -4px}
  .fo-champs,.fo-autres{grid-template-columns:minmax(0,1fr)}
  .fo-heures{grid-template-columns:repeat(4,1fr)}
  .fo-envoi .btn{width:100%}
  .fo-lire .cards{grid-template-columns:1fr}
  .fo-questions ul{grid-template-columns:1fr}
}

/* WhatsApp */
.fo-wa .fo-choix b{display:flex;align-items:center;justify-content:center;gap:8px}
.fo-wa svg{width:18px;height:18px;fill:#25d366;flex-shrink:0}
.fo-wa input[value=oui]:checked+b{background:#e7f8ee;border-color:#25d366;color:#128c4a}
.fo-aide{display:block;font-size:13.5px;color:var(--muted);line-height:1.45;padding:10px 14px;border-radius:12px;background:var(--sand);animation:fo-bas .35s ease-out}

/* ---- animations ---- */
@keyframes fo-kb{from{transform:scale(1.02) translate(0,0)}to{transform:scale(1.12) translate(-2%,-2%)}}
@keyframes fo-bas{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
@keyframes fo-monte{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@keyframes fo-gauche{from{opacity:0;transform:translateX(-22px)}to{opacity:1;transform:none}}
@keyframes fo-pop{0%{opacity:0;transform:translateY(12px) scale(.9)}70%{opacity:1;transform:translateY(-2px) scale(1.03)}100%{opacity:1;transform:none}}
@keyframes fo-choisi{0%{transform:scale(.88)}55%{transform:scale(1.1)}100%{transform:scale(1)}}
@property --fo-a{syntax:"<angle>";inherits:false;initial-value:0deg}
@keyframes fo-halo{to{--fo-a:360deg}}
@keyframes fo-appel{0%{box-shadow:0 14px 30px -12px rgba(244,138,31,.9),0 0 0 0 rgba(251,181,42,.55)}70%{box-shadow:0 14px 30px -12px rgba(244,138,31,.9),0 0 0 16px rgba(251,181,42,0)}100%{box-shadow:0 14px 30px -12px rgba(244,138,31,.9),0 0 0 0 rgba(251,181,42,0)}}
@keyframes fo-sonne{0%,100%{transform:rotate(0)}10%,30%{transform:rotate(-14deg)}20%,40%{transform:rotate(14deg)}50%{transform:rotate(0)}}

/* la photo vit, le panneau des questions monte */
.fo-photo img{animation:fo-kb 24s ease-in-out infinite alternate}
.fo-questions{animation:fo-monte .8s 1s cubic-bezier(.2,.8,.2,1) both}
.fo-questions li{animation:fo-gauche .5s cubic-bezier(.2,.8,.2,1) both}
.fo-questions li:nth-child(1){animation-delay:1.3s}.fo-questions li:nth-child(2){animation-delay:1.42s}.fo-questions li:nth-child(3){animation-delay:1.54s}.fo-questions li:nth-child(4){animation-delay:1.66s}

/* les puces arrivent une à une, leur icône salue */
.fo-puces li{animation:fo-gauche .7s cubic-bezier(.2,.8,.2,1) both}
.fo-puces li:nth-child(1){animation-delay:.45s}.fo-puces li:nth-child(2){animation-delay:.6s}.fo-puces li:nth-child(3){animation-delay:.75s}
.fo-puces li>span{transition:transform .4s}
.fo-puces li:first-child>span{animation:fo-sonne 1.2s 1.4s ease-in-out}
.fo-puces li:hover>span{transform:scale(1.12) rotate(-6deg)}

/* la carte : un liseré de couleur fait lentement le tour */
.fo-carte{border:2px solid transparent;background:linear-gradient(#fff,#fff) padding-box,conic-gradient(from var(--fo-a),rgba(15,58,107,.08) 0 55%,var(--sky),var(--lagoon),var(--sun1),rgba(15,58,107,.08) 92%) border-box;animation:fo-halo 8s linear infinite}

/* jours et heures : ils entrent en cascade, le choix rebondit */
.fo-jours.entre button{animation:fo-pop .5s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--i)*40ms)}
.fo-heures.entre button{animation:fo-pop .42s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--i)*22ms)}
.fo-heures button[aria-selected=true]{animation:fo-choisi .45s cubic-bezier(.3,1.5,.5,1)}
.fo-heures button:disabled::after{content:" 🔒";font-size:11px;filter:grayscale(1);opacity:.6}

/* une étape remplie : son numéro devient une coche verte */
.fo-bloc legend i{transition:background .4s,transform .4s}
.fo-bloc.fait legend i{background:var(--green);font-size:0;transform:rotate(360deg)}
.fo-bloc.fait legend i::after{content:"✓";font-size:15px}
.fo-resume.ok{animation:fo-bas .45s cubic-bezier(.2,.8,.2,1)}
.fo-resume i{display:inline-grid;place-items:center;width:20px;height:20px;margin-right:8px;border-radius:50%;background:var(--green);color:#fff;font-style:normal;font-size:12px;vertical-align:-3px}
.fo-champ input,.fo-champ select,.fo-champ textarea{transition:border-color .2s,box-shadow .2s,transform .2s}
.fo-champ input:focus,.fo-champ textarea:focus{transform:translateY(-1px)}
@keyframes fo-secoue{0%,100%{transform:none}20%,60%{transform:translateX(-5px)}40%,80%{transform:translateX(5px)}}
.fo-champ.mal{animation:fo-secoue .4s}

/* tout est prêt : le bouton appelle */
.fo-envoi .btn.pret{animation:fo-appel 1.8s ease-out infinite}

/* contact et merci */
.fo-droite>*{animation:fo-monte .8s cubic-bezier(.2,.8,.2,1) both}
.fo-droite>:nth-child(2){animation-delay:.25s}.fo-droite>:nth-child(3){animation-delay:.35s}.fo-droite>:nth-child(4){animation-delay:.5s}
.fo-tuile{animation:fo-pop .55s cubic-bezier(.2,.8,.2,1) both}
.fo-tuile:nth-child(1){animation-delay:.45s}.fo-tuile:nth-child(2){animation-delay:.55s}.fo-tuile:nth-child(3){animation-delay:.65s}.fo-tuile:nth-child(4){animation-delay:.75s}
.fo-tuile:hover span{animation:fo-sonne .6s}
.fo-etapes li{animation:fo-gauche .6s cubic-bezier(.2,.8,.2,1) both}
.fo-etapes li:nth-child(1){animation-delay:1.2s}.fo-etapes li:nth-child(2){animation-delay:1.35s}.fo-etapes li:nth-child(3){animation-delay:1.5s}
.fo-lire .card{animation:fo-monte .8s cubic-bezier(.2,.8,.2,1) both}
.fo-lire .card:nth-child(2){animation-delay:.12s}.fo-lire .card:nth-child(3){animation-delay:.24s}

@media(prefers-reduced-motion:reduce){
  .fo *,.fo *::before{animation:none!important;transition:none!important}
}
.fo-photo-merci{animation:fo-monte 1s .2s cubic-bezier(.2,.8,.2,1) both}

/* démarrer mon dossier : le récapitulatif (à gauche) et le choix « payer / appel » */
.fo-dem .fo-grille{align-items:start}
.fo-recap{margin-top:28px;padding:26px;border-radius:28px;background:linear-gradient(160deg,var(--navy-d),var(--navy) 60%,#16508a);color:#fff;box-shadow:0 40px 70px -40px rgba(10,37,71,.8);animation:fo-monte .8s .35s cubic-bezier(.2,.8,.2,1) both}
.fo-recap-h{display:flex;align-items:center;gap:10px;font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#9bc7e6}
.fo-recap-h b{padding:4px 12px;border-radius:999px;background:linear-gradient(120deg,var(--sun1),var(--sun2));color:#fff;font-size:14px;letter-spacing:0;text-transform:none}
.fo-recap-tot{display:flex;align-items:baseline;gap:12px;margin-top:14px}
.fo-recap-tot b{font-size:46px;font-weight:700;letter-spacing:-.03em;line-height:1;font-variant-numeric:tabular-nums}
.fo-recap-tot s{color:#8fb0cc;font-size:15px}
.fo-recap-ech{margin-top:6px;color:#9be8c4;font-size:14px;font-weight:600}
.fo-recap-duree{display:flex;align-items:center;gap:10px;margin-top:14px;padding:10px 14px;border-radius:14px;background:rgba(63,208,212,.14);border:1px solid rgba(63,208,212,.35);font-size:13.5px;color:#e9fbfa}
.fo-recap-duree svg{flex-shrink:0;color:var(--lagoon)}.fo-recap-duree b{color:#fff}
.fo-recap-lignes{list-style:none;margin:16px 0 0;padding:14px 0 0;border-top:1px dashed rgba(255,255,255,.2);display:grid;gap:7px}
.fo-recap-lignes li{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;font-size:14px;color:#cfe0f0}
.fo-recap-lignes li small{display:block;font-size:11.5px;color:#8fb0cc}
.fo-recap-lignes li b{color:#fff;white-space:nowrap}
.fo-recap-lignes li.moins,.fo-recap-lignes li.moins b{color:#9be8c4}
.fo-recap-mod{display:inline-flex;gap:6px;margin-top:18px;font-size:14px;font-weight:600;color:#9be8ea}
.fo-recap-mod:hover{color:#fff}

.fo-modes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.fo-mode{position:relative;cursor:pointer}
.fo-mode input{position:absolute;opacity:0;pointer-events:none}
.fo-mode-c{display:flex;flex-direction:column;gap:4px;height:100%;padding:16px;border-radius:18px;border:1.5px solid rgba(15,58,107,.14);background:#fff;transition:border-color .3s,box-shadow .3s,background .3s}
.fo-mode-ic{width:40px;height:40px;border-radius:13px;display:grid;place-items:center;background:var(--ice);color:var(--navy);margin-bottom:6px;transition:background .3s,color .3s}
.fo-mode-c b{font-size:15.5px}
.fo-mode-c small{font-size:13px;line-height:1.45;color:var(--muted)}
.fo-mode-c em{margin-top:6px;font-style:normal;font-size:13px;font-weight:700;color:var(--green)}
.fo-mode input:checked+.fo-mode-c{border-color:var(--navy);background:linear-gradient(180deg,#f6faff,#fff);box-shadow:0 18px 34px -26px rgba(15,58,107,.8)}
.fo-mode input:checked+.fo-mode-c .fo-mode-ic{background:var(--navy);color:#fff}
.fo-mode input:focus-visible+.fo-mode-c{box-shadow:0 0 0 4px rgba(40,163,230,.25)}
.fo-mode:hover .fo-mode-c{border-color:rgba(40,163,230,.55)}
.fo-appel{margin-top:16px;animation:fo-bas .4s ease-out}
.fo-sous{display:block;margin-bottom:10px;font-size:14px;font-weight:600}
.fo-msg{margin-top:16px}
.fo-secu{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:12px;font-size:12.5px;color:#6d86a0;text-align:center}
.fo-secu svg{color:var(--green);flex-shrink:0}
@media(max-width:640px){.fo-modes{grid-template-columns:minmax(0,1fr)}.fo-recap{padding:20px}.fo-recap-tot b{font-size:38px}}
.crumbs a+a::before{content:"›";margin-right:8px;color:#a9bccf}
/* guide gratuit : la couverture du PDF en tête du formulaire, le bouton de téléchargement sur la page merci */
.fo-guide-h{display:grid;grid-template-columns:112px 1fr;gap:22px;align-items:center;margin-bottom:22px}
.fo-guide-h h2{font-size:24px;font-weight:700;letter-spacing:-.015em;margin-bottom:6px}
.fo-guide-h p{font-size:14.5px;color:var(--muted);line-height:1.55}
.fo-guide-pdf{position:relative;aspect-ratio:210/297;border-radius:10px;overflow:hidden;background:var(--navy-d);color:#fff;box-shadow:0 22px 40px -20px rgba(15,58,107,.6);transform:rotate(-4deg);transition:transform .5s}
.fo-carte:hover .fo-guide-pdf{transform:rotate(0) scale(1.04)}
.fo-guide-pdf img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.fo-guide-pdf::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 35%,rgba(10,37,71,.9))}
.fo-guide-pdf b,.fo-guide-pdf small{position:absolute;left:9px;right:9px;z-index:1}
.fo-guide-pdf b{bottom:22px;font-size:12px;line-height:1.15}
.fo-guide-pdf small{bottom:8px;font-size:9.5px;color:var(--sun1);font-weight:600}
.fo-telecharger{margin-top:26px}
@media(max-width:600px){.fo-guide-h{grid-template-columns:84px 1fr;gap:16px}.fo-guide-h h2{font-size:20px}}
