/* ==============================================
   Essai sans compte et « Retrouver ma plateforme » (15/10/2026)
   Contrastes RGAA 4.1 (texte >= 4.5:1), focus visible, cibles de 44 px,
   champs en 16 px (pas de zoom iOS), aucune largeur fixe.
   ============================================== */

.gm-flow {
    --gmf-ink: #0E0E0E;
    --gmf-muted: #4B5563;
    --gmf-line: #D1D5DB;
    --gmf-accent: #FFA44E;
    --gmf-accent-dark: #E8922A;
    --gmf-link: #9A4A00;
    --gmf-soft: #FEF1E1;
    --gmf-ok: #065F46;
    --gmf-ok-bg: #ECFDF5;
    --gmf-error: #991B1B;
    --gmf-error-bg: #FEF2F2;
    --gmf-focus: #1E40AF;
    max-width: 720px;
    margin: 0 auto;
    padding: 0 16px 48px;
    color: var(--gmf-ink);
    font-family: 'Inter', sans-serif;
    font-size: 16px;
    line-height: 1.55;
}

.gm-flow *, .gm-flow *::before, .gm-flow *::after { box-sizing: border-box; }

.gm-flow [hidden] { display: none !important; }

/* En-tete des pages du site (releve sur /contact/ le 15/10/2026 : conteneur Elementor « gm-hero », titre Plus Jakarta
   Sans 40 px / 46 px graisse 600 noir centre, fil d'Ariane Yoast 16 px gris, 20 px d'ecart ; 32 px / 36,8 px sur
   telephone). Le halo rose et peche n'est pas ici : il vient du kit Elementor (body.gm-has-hero .site-content::before),
   pose par la classe gm-has-hero (goodmood_flow_body_class) ; en-tete du theme transparent (goodmood_flow_transparent_header),
   donc meme marge haute que la section gm-hero : 200 px, 134 px sur telephone. Selecteurs prefixes par .gm-flow : le kit
   Elementor style h1, h2, liens et champs avec .elementor-kit-10 (specificite 0,1,1 et plus). */
.gm-flow .gm-flow-hero { display: flex; flex-direction: column; align-items: center; gap: 20px; text-align: center; padding: 200px 0 64px; }
.gm-flow .gmf-title { font-family: 'Plus Jakarta Sans', sans-serif; font-size: 40px; line-height: 46px; font-weight: 600; margin: 0; color: #000; }
.gm-flow .gm-flow-crumbs { font-size: 16px; color: #696969; }
.gm-flow .gm-flow-crumbs a { color: #000; text-decoration: none; }
.gm-flow .gm-flow-crumbs a:hover { text-decoration: underline; }
.gm-flow .gmf-lead { font-size: 1.0625rem; color: #595959; margin: 0; max-width: 640px; }

.gmf-card {
    background: #fff;
    border: 1px solid var(--gmf-line);
    border-radius: 16px;
    padding: 28px;
    margin-bottom: 20px;
    box-shadow: 0 4px 18px rgba(14, 14, 14, 0.05);
}
.gmf-card-soft { background: var(--gmf-soft); border-color: #F6D9B5; box-shadow: none; }

.gm-flow .gmf-h2 { font-family: 'Plus Jakarta Sans', sans-serif; font-size: 1.375rem; line-height: 1.3; font-weight: 700; margin: 0 0 8px; color: var(--gmf-ink); }
.gmf-h2:focus { outline: none; }
.gmf-help { color: var(--gmf-muted); margin: 0 0 20px; font-size: 0.9375rem; }

.gmf-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.gmf-row-zip { grid-template-columns: minmax(0, 9rem) 1fr; }

.gmf-field { margin-bottom: 18px; min-width: 0; }
.gmf-field label, .gmf-legend { display: block; font-weight: 600; margin-bottom: 6px; color: var(--gmf-ink); font-size: 0.9375rem; }

.gmf-fieldset { border: 0; padding: 0; margin: 0 0 6px; min-width: 0; }
.gmf-legend { font-family: 'Plus Jakarta Sans', sans-serif; font-size: 1.0625rem; padding: 0; margin-bottom: 10px; }
.gmf-legend-small { font-weight: 600; font-size: 0.9375rem; padding: 0; margin-bottom: 8px; }

.gm-flow .gmf-field .gmf-input, .gm-flow .gmf-input {
    display: block;
    width: 100%;
    min-height: 48px;
    padding: 10px 14px;
    font-size: 16px;
    font-family: inherit;
    color: var(--gmf-ink);
    background: #fff;
    border: 1.5px solid #9CA3AF;
    border-radius: 10px;
    transition: border-color 0.15s;
}
.gm-flow .gmf-field .gmf-input:focus { outline: 3px solid var(--gmf-focus); outline-offset: 1px; border-color: var(--gmf-focus); }
.gm-flow .gmf-field .gmf-input[aria-invalid="true"] { border-color: var(--gmf-error); }
.gmf-textarea { min-height: 110px; resize: vertical; }

.gmf-hint { margin: 6px 0 0; font-size: 0.875rem; color: var(--gmf-muted); }
.gmf-status { margin: 6px 0 0; font-size: 0.9375rem; min-height: 1px; }
.gmf-status.is-ok { color: var(--gmf-ok); font-weight: 600; }
.gmf-status.is-error { color: var(--gmf-error); font-weight: 600; }
.gmf-field-error { margin: 6px 0 0; color: var(--gmf-error); font-size: 0.9375rem; font-weight: 600; }

.gmf-alert {
    border: 1.5px solid var(--gmf-error);
    background: var(--gmf-error-bg);
    color: var(--gmf-error);
    border-radius: 10px;
    padding: 12px 16px;
    margin: 0 0 18px;
    font-weight: 500;
}
.gmf-alert:focus { outline: 3px solid var(--gmf-focus); outline-offset: 2px; }
.gmf-alert a { color: var(--gmf-error); }
.gmf-notice:not(:empty) {
    border: 1.5px solid #34D399;
    background: var(--gmf-ok-bg);
    color: var(--gmf-ok);
    border-radius: 10px;
    padding: 14px 16px;
    margin-top: 18px;
}
.gmf-notice.is-error:not(:empty) { border-color: var(--gmf-error); background: var(--gmf-error-bg); color: var(--gmf-error); }
.gmf-notice:focus { outline: 3px solid var(--gmf-focus); outline-offset: 2px; }

/* Boutons et liens */
.gmf-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 48px;
    padding: 12px 26px;
    border: 2px solid var(--gmf-accent);
    border-radius: 999px;
    background: var(--gmf-accent);
    color: var(--gmf-ink);
    font-family: inherit;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none;
    cursor: pointer;
    transition: background-color 0.15s, color 0.15s, border-color 0.15s;
}
.gmf-btn:hover { background: var(--gmf-ink); border-color: var(--gmf-ink); color: #fff; text-decoration: none; }
.gmf-btn:focus-visible { outline: 3px solid var(--gmf-focus); outline-offset: 3px; }
.gmf-btn[aria-disabled="true"], .gmf-btn:disabled { opacity: 0.6; cursor: progress; }
#gmf-submit, #gmf-code-submit, #gmf-find-submit { width: 100%; }

.gmf-link {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    padding: 0;
    border: 0;
    background: none;
    color: var(--gmf-link);
    font-family: inherit;
    font-size: 0.9375rem;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
    cursor: pointer;
}
.gmf-link:hover { color: var(--gmf-ink); }
.gmf-link:focus-visible, .gm-flow a:focus-visible { outline: 3px solid var(--gmf-focus); outline-offset: 2px; border-radius: 2px; }
.gmf-link:disabled { color: var(--gmf-muted); cursor: not-allowed; text-decoration: none; }
.gm-flow a { color: var(--gmf-link); }
.gm-flow a.gmf-btn { color: var(--gmf-ink); }
.gm-flow a.gmf-btn:hover { color: #fff; }

.gmf-alt-links { display: flex; flex-wrap: wrap; gap: 4px 24px; margin: 4px 0 12px; }

/* Resultats de l'annuaire : boutons radio natifs */
.gmf-results { border: 0; padding: 0; margin: 0 0 14px; min-width: 0; }
.gmf-options { display: grid; gap: 8px; }
.gmf-option {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    padding: 12px 14px;
    border: 1.5px solid var(--gmf-line);
    border-radius: 10px;
    cursor: pointer;
    background: #fff;
}
.gmf-option:hover { border-color: var(--gmf-accent-dark); }
.gmf-option input { width: 22px; height: 22px; margin: 2px 0 0; flex-shrink: 0; accent-color: var(--gmf-ink); }
.gmf-option input:focus-visible { outline: 3px solid var(--gmf-focus); outline-offset: 2px; }
.gmf-option:has(input:checked) { border-color: var(--gmf-ink); background: var(--gmf-soft); }
.gmf-option-text { min-width: 0; overflow-wrap: anywhere; }
.gmf-option-name { display: block; font-weight: 700; }
.gmf-option-meta { display: block; font-size: 0.875rem; color: var(--gmf-muted); }

.gmf-chosen { border: 1.5px solid #34D399; background: var(--gmf-ok-bg); border-radius: 10px; padding: 12px 16px; margin-bottom: 12px; }
.gmf-chosen-title { margin: 0; font-weight: 700; overflow-wrap: anywhere; }
.gmf-chosen-detail { margin: 2px 0 0; font-size: 0.9375rem; color: #1F2937; overflow-wrap: anywhere; }
.gmf-check { color: var(--gmf-ok); }

.gmf-manual, .gmf-nosiret { border-left: 3px solid var(--gmf-accent); padding: 4px 0 4px 16px; margin: 4px 0 14px; }

/* Adresse de la plateforme */
.gmf-subdomain { display: flex; align-items: stretch; min-width: 0; }
.gmf-subdomain .gmf-input { border-top-right-radius: 0; border-bottom-right-radius: 0; min-width: 0; flex: 1 1 auto; }
.gmf-suffix {
    display: flex;
    align-items: center;
    padding: 0 12px;
    border: 1.5px solid #9CA3AF;
    border-left: 0;
    border-radius: 0 10px 10px 0;
    background: #F3F4F6;
    color: #374151;
    font-size: 0.9375rem;
    white-space: nowrap;
}
.gmf-suggestions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.gmf-suggestion {
    min-height: 44px;
    padding: 8px 14px;
    border: 1.5px solid var(--gmf-ink);
    border-radius: 999px;
    background: #fff;
    color: var(--gmf-ink);
    font-family: inherit;
    font-size: 0.9375rem;
    cursor: pointer;
}
.gmf-suggestion:hover { background: var(--gmf-soft); }
.gmf-suggestion:focus-visible { outline: 3px solid var(--gmf-focus); outline-offset: 2px; }

.gmf-terms { display: flex; gap: 12px; align-items: flex-start; }
.gmf-terms input { width: 22px; height: 22px; margin: 2px 0 0; flex-shrink: 0; accent-color: var(--gmf-ink); }
.gmf-terms input:focus-visible { outline: 3px solid var(--gmf-focus); outline-offset: 2px; }
.gmf-terms label { font-weight: 400; margin: 0; }

/* Champ piege (robots) : hors de l'ecran, jamais atteint au clavier */
.gmf-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* Code */
.gmf-code-form { max-width: 420px; margin-inline: auto; }
/* Etape du code : contenu centre dans la carte (retour de Theo, 15/10/2026). */
#gmf-step-code { text-align: center; }
#gmf-step-code .gmf-code-form label, #gmf-step-code .gmf-hint { text-align: center; }
#gmf-step-code .gmf-alt-links { justify-content: center; }
#gmf-step-code .gmf-alert { text-align: left; }
.gmf-code-input { font-size: 1.75rem; letter-spacing: 0.4em; text-align: center; font-family: Consolas, 'Courier New', monospace; font-weight: 700; }

/* Attente */
.gmf-url-intro { margin: 0; color: var(--gmf-muted); }
.gmf-url {
    margin: 4px 0 20px;
    padding: 14px 16px;
    background: var(--gmf-soft);
    border-radius: 10px;
    font-size: 1.125rem;
    font-weight: 700;
    overflow-wrap: anywhere;
}
.gmf-progress { list-style: none; margin: 0 0 16px; padding: 0; counter-reset: gmf; }
.gmf-progress li {
    position: relative;
    padding: 10px 0 10px 44px;
    color: var(--gmf-muted);
    counter-increment: gmf;
}
.gmf-progress li::before {
    content: counter(gmf);
    position: absolute;
    left: 0;
    top: 6px;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    border: 2px solid var(--gmf-line);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.875rem;
    font-weight: 700;
    background: #fff;
    color: var(--gmf-muted);
}
.gmf-progress li.is-done { color: var(--gmf-ink); }
.gmf-progress li.is-done::before { content: '✓'; background: var(--gmf-ok); border-color: var(--gmf-ok); color: #fff; }
.gmf-progress li[aria-current="step"] { color: var(--gmf-ink); font-weight: 700; }
.gmf-progress li[aria-current="step"]::before { border-color: var(--gmf-accent-dark); background: var(--gmf-soft); color: var(--gmf-ink); animation: gmf-pulse 1.6s ease-in-out infinite; }
@keyframes gmf-pulse { 50% { box-shadow: 0 0 0 6px rgba(255, 164, 78, 0.25); } }
.gmf-wait-status { font-weight: 600; }
.gmf-ready { border-top: 1px solid var(--gmf-line); padding-top: 16px; margin-bottom: 12px; }

.gmf-list { margin: 0; padding-left: 20px; }
.gmf-list li { margin-bottom: 6px; }

.gmf-foot { text-align: center; color: var(--gmf-muted); margin: 8px 0 0; }
.gmf-foot a { font-weight: 600; }

/* Accueil de la page « Demarrer » */
.gmf-choices { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.gmf-choice { display: flex; flex-direction: column; gap: 8px; }
.gm-flow .gmf-choice .gmf-h2 { font-size: 1.125rem; }
.gmf-choice p { margin: 0 0 8px; color: var(--gmf-muted); flex: 1 1 auto; }
.gmf-choice .gmf-btn { align-self: flex-start; }
.gmf-btn-ghost { background: #fff; }
.gm-flow.gm-flow-wide { max-width: 1040px; }

@media (prefers-reduced-motion: reduce) {
    .gmf-progress li[aria-current="step"]::before { animation: none; }
    .gm-flow * { transition: none !important; }
}

@media (max-width: 900px) {
    .gmf-choices { grid-template-columns: 1fr; }
}

@media (max-width: 600px) {
    .gm-flow { padding: 0 16px 40px; }
    .gm-flow .gm-flow-hero { padding: 134px 0 40px; }
    .gm-flow .gmf-title { font-size: 32px; line-height: 36.8px; }
    .gmf-card { padding: 20px 16px; border-radius: 12px; }
    .gmf-row, .gmf-row-zip { grid-template-columns: 1fr; gap: 0; }
    .gmf-suffix { font-size: 0.8125rem; padding: 0 8px; }
}
