/* Formulaire Sine Qua Non — composant commun (accueil, formation, fenêtre de contact) */
.mform{--mf-bg:#F4F4F1;--mf-line:#E2E2DD;--mf-ink:#1B1D1F;--mf-muted:#7A7F83;--mf-teal:#1D86A3;--mf-sky:#3CBFE6;--mf-err:#C0392B;
  font-family:"PT Sans","Segoe UI",Arial,sans-serif;color:var(--mf-ink)}
.mf-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.mf-grid .full{grid-column:1/-1}

/* Champ à étiquette flottante */
.mf{position:relative}
.mf input,.mf textarea{width:100%;box-sizing:border-box;font-weight:400;font-size:17px;line-height:1.4;font-family:inherit;color:var(--mf-ink);background:var(--mf-bg);border:1.5px solid transparent;border-radius:14px;padding:26px 16px 10px;transition:border-color .2s,background .2s,box-shadow .2s}
.mf textarea{min-height:132px;resize:vertical;padding-top:30px}
.mf label{position:absolute;left:17px;top:18px;font-weight:400;font-size:16.5px;line-height:1.2;font-family:inherit;color:var(--mf-muted);pointer-events:none;transform-origin:0 0;transition:transform .2s,color .2s,top .2s}
.mf label.req::after{content:" *";color:var(--mf-teal)}
.mf input:focus,.mf textarea:focus{outline:none;background:#fff;border-color:var(--mf-teal);box-shadow:0 0 0 4px rgba(60,191,230,.18)}
.mf:focus-within label,.mf.filled label{transform:translateY(-10px) scale(.74);color:var(--mf-teal);font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.mf .hint{position:absolute;right:14px;top:19px;font-size:13px;color:var(--mf-muted);pointer-events:none}
.mf:focus-within .hint,.mf.filled .hint{opacity:0}
.mf-err{display:block;min-height:0;font-size:13.5px;color:var(--mf-err);margin:6px 2px 0}
.mf-err:empty{display:none}
.mf.bad input,.mf.bad textarea{border-color:var(--mf-err);background:#FDF5F4}
.mf.ok input{padding-right:44px;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%231D86A3' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><path d='M5 13l4 4L19 7'/></svg>");background-repeat:no-repeat;background-position:right 16px center}

/* Choix en pastilles */
.mf-chips{border:0;margin:4px 0 0;padding:0;min-width:0}
.mf-chips legend{font-weight:700;font-size:12px;line-height:1.3;font-family:inherit;letter-spacing:.12em;text-transform:uppercase;color:var(--mf-ink);margin-bottom:12px;padding:0}
.mf-chips div{display:flex;flex-wrap:wrap;gap:8px}
.mf-chips label{position:relative;cursor:pointer}
.mf-chips input{position:absolute;opacity:0;width:1px;height:1px}
.mf-chips span{display:inline-flex;align-items:center;gap:8px;padding:11px 16px;border-radius:999px;border:1.5px solid var(--mf-line);background:#fff;font-size:15px;color:var(--mf-ink);transition:border-color .2s,background .2s,color .2s}
.mf-chips span::before{content:"";width:12px;height:4px;background:var(--mf-line);transition:background .2s,width .2s}
.mf-chips label:hover span{border-color:var(--mf-ink)}
.mf-chips input:checked + span{background:var(--mf-teal);border-color:var(--mf-teal);color:#fff}
.mf-chips input:checked + span::before{background:var(--mf-sky);width:18px}
.mf-chips input:focus-visible + span{outline:2px solid var(--mf-sky);outline-offset:3px}

/* Consentement */
.mf-consent{display:grid;grid-template-columns:24px 1fr;gap:12px;align-items:start;font-size:14.5px;line-height:1.5;color:var(--mf-muted);cursor:pointer;margin-top:4px}
.mf-consent input{appearance:none;-webkit-appearance:none;width:22px;height:22px;margin:1px 0 0;border:1.5px solid var(--mf-line);border-radius:6px;background:#fff;cursor:pointer;display:grid;place-items:center;transition:background .2s,border-color .2s}
.mf-consent input::after{content:"";width:6px;height:11px;border:solid #fff;border-width:0 2.5px 2.5px 0;transform:rotate(45deg) translate(-1px,-1px);opacity:0}
.mf-consent input:checked{background:var(--mf-teal);border-color:var(--mf-teal)}
.mf-consent input:checked::after{opacity:1}
.mf-consent input:focus-visible{outline:2px solid var(--mf-sky);outline-offset:2px}
.mf-consent.bad input{border-color:var(--mf-err)}

/* Pied du formulaire */
.mf-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:8px}
.mf-send{display:inline-flex;align-items:center;gap:14px;font-weight:700;font-size:15px;line-height:1;font-family:inherit;padding:16px 16px 16px 28px;border-radius:999px;border:0;background:#3B92BB;color:#fff;cursor:pointer;transition:background .25s,transform .25s}
.mf-send i{width:32px;height:32px;border-radius:50%;background:rgba(255,255,255,.18);display:grid;place-items:center;font-style:normal;transition:transform .3s}
.mf-send:hover{background:#0078A8}
.mf-send:hover i{transform:rotate(-45deg)}
.mf-send:focus-visible{outline:2px solid var(--mf-sky);outline-offset:3px}
.mf-note{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--mf-muted);margin:0}
.mf-note svg{width:16px;height:16px;flex:none;stroke:var(--mf-teal);fill:none;stroke-width:2}

/* Confirmation */
.mf-done{padding:36px 30px;border-radius:18px;background:var(--mf-bg);display:grid;gap:12px;justify-items:start;position:relative;animation:mfIn .45s cubic-bezier(.2,.7,.2,1)}
.mf-done::before{content:"";position:absolute;top:0;left:30px;width:70px;height:7px;background:var(--mf-sky)}
.mf-done .ico{width:54px;height:54px;border-radius:50%;background:var(--mf-teal);display:grid;place-items:center}
.mf-done .ico svg{width:26px;height:26px;stroke:#fff;fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.mf-done h3{margin:6px 0 0;font:normal 26px/1.15 Lovelo,"Josefin Sans","Century Gothic",sans-serif;letter-spacing:.02em;color:var(--mf-ink)}
.mf-done p{margin:0;font-size:16.5px;line-height:1.6;color:#45494D;max-width:46ch}
.mf-again{margin-top:6px;background:none;border:0;padding:0;font-weight:700;font-size:14px;font-family:inherit;font-family:inherit;color:var(--mf-teal);cursor:pointer;text-decoration:underline;text-underline-offset:3px}
@keyframes mfIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.mform [hidden]{display:none!important}
@media (max-width:600px){.mf-grid{grid-template-columns:1fr}.mf-foot{flex-direction:column;align-items:stretch}.mf-send{justify-content:space-between}}
@media (prefers-reduced-motion:reduce){.mf label,.mf input,.mf textarea,.mf-chips span{transition:none}.mf-done{animation:none}}
