/* Kiddiflow Bêta — modale. Couleurs sur les jetons --kf-* (suivent le moment de la journée). */
.kfb-modal[hidden] { display: none; }
.kfb-modal { position: fixed; inset: 0; z-index: 100000; display: flex; align-items: center; justify-content: center; padding: 16px; font-family: var(--kf-font, "Figtree", system-ui, sans-serif); color: var(--kf-ink, #10231F); }
.kfb-modal__overlay { position: absolute; inset: 0; background: rgba(16, 20, 40, .62); backdrop-filter: blur(4px); }
.kfb-modal__dialog { position: relative; width: 100%; max-width: 620px; max-height: calc(100vh - 32px); overflow: auto; background: var(--kf-tray, #FBFFFE); border: 1px solid var(--kf-tray-line, #CFE0DA); border-radius: 28px; padding: 32px 28px 28px; box-shadow: 0 30px 80px rgba(0, 0, 0, .35); animation: kfb-in .28s ease-out; }
@keyframes kfb-in { from { opacity: 0; transform: translateY(14px) scale(.98); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .kfb-modal__dialog { animation: none; } }
@media (max-width: 600px) { .kfb-modal { padding: 0; align-items: flex-end; } .kfb-modal__dialog { max-height: 94vh; border-radius: 28px 28px 0 0; padding: 26px 18px 22px; } }

.kfb-modal__close { position: absolute; top: 14px; right: 14px; width: 40px; height: 40px; border: 0; border-radius: 50%; background: var(--kf-chip, #fff); color: var(--kf-ink, #10231F); cursor: pointer; display: grid; place-items: center; }
.kfb-modal__close:hover { background: var(--kf-sky-top, #E4F3EF); }

.kfb-eyebrow { margin: 0 0 6px; font-size: 12px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--kf-accent, #0E7365); }
.kfb-title { margin: 0 0 10px; font-family: var(--kf-font, "Figtree", system-ui, sans-serif); font-weight: 900; font-size: clamp(26px, 4vw, 34px); line-height: 1.05; letter-spacing: -.02em; color: var(--kf-ink, #10231F); }
.kfb-offer { margin: 0 0 18px; padding: 10px 14px; border-radius: 14px; background: var(--kf-sky-top, #E4F3EF); color: var(--kf-ink, #10231F); font-weight: 700; font-size: 15px; line-height: 1.4; }

.kfb-tabs { display: flex; gap: 6px; padding: 4px; border-radius: 999px; background: var(--kf-sky-top, #E4F3EF); margin: 0 0 18px; }
.kfb-tab { flex: 1 1 0; border: 0; border-radius: 999px; padding: 10px 12px; font: inherit; font-weight: 800; font-size: 15px; color: var(--kf-ink-soft, #4A6560); background: transparent; cursor: pointer; }
.kfb-tab[aria-selected="true"] { background: var(--kf-chip, #fff); color: var(--kf-ink, #10231F); box-shadow: 0 2px 8px rgba(0, 0, 0, .08); }

.kfb-panel[hidden] { display: none; }
.kfb-step { display: grid; grid-template-columns: 28px 1fr; gap: 12px; align-items: start; margin: 0 0 12px; font-size: 16px; line-height: 1.5; color: var(--kf-ink, #10231F); }
.kfb-num { flex: 0 0 28px; width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; background: var(--kf-accent, #0E7365); color: var(--kf-on-accent, #fff); font-weight: 900; font-size: 14px; margin-top: 1px; }
.kfb-note { margin: 10px 0 0; font-size: 13.5px; line-height: 1.45; color: var(--kf-ink-soft, #4A6560); }

.kfb-modal *, .kfb-modal *::before, .kfb-modal *::after { box-sizing: border-box; }
.kfb-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; width: 100%; padding: 14px 22px; border-radius: 999px; border: 2px solid var(--kf-accent, #0E7365); background: var(--kf-accent, #0E7365); color: var(--kf-on-accent, #fff) !important; font: inherit; font-weight: 800; font-size: 16px; text-decoration: none !important; cursor: pointer; transition: transform .15s ease, filter .15s ease; }
.kfb-btn:hover { transform: translateY(-1px); filter: brightness(1.06); }
.kfb-btn--ghost { background: transparent; color: var(--kf-accent, #0E7365) !important; }
.kfb-btn--off { background: var(--kf-chip, #fff); border-color: var(--kf-chip-line, #CFE0DA); color: var(--kf-ink-faint, #9DB3AE) !important; cursor: default; }
.kfb-btn--off:hover { transform: none; filter: none; }

.kfb-form { display: grid; gap: 12px; margin: 4px 0 14px; padding: 16px; border-radius: 18px; background: var(--kf-chip, #fff); border: 1px solid var(--kf-chip-line, #CFE0DA); }
.kfb-row { display: grid; grid-template-columns: 1fr 1.4fr; gap: 10px; }
@media (max-width: 520px) { .kfb-row { grid-template-columns: 1fr; } }
.kfb-field { display: grid; gap: 5px; font-size: 13px; font-weight: 700; color: var(--kf-ink-soft, #4A6560); }
.kfb-field em { font-style: normal; font-weight: 500; }
.kfb-field input { width: 100%; padding: 11px 13px; border-radius: 12px; border: 1.5px solid var(--kf-chip-line, #CFE0DA); background: var(--kf-tray, #fff); color: var(--kf-ink, #10231F); font: inherit; font-size: 15px; }
.kfb-field input:focus { outline: none; border-color: var(--kf-accent, #0E7365); box-shadow: 0 0 0 3px color-mix(in srgb, var(--kf-accent, #0E7365) 22%, transparent); }
.kfb-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.kfb-consent { display: flex; gap: 10px; align-items: flex-start; font-size: 13px; line-height: 1.45; color: var(--kf-ink-soft, #4A6560); }
.kfb-consent input { margin-top: 3px; accent-color: var(--kf-accent, #0E7365); }
.kfb-consent a { color: var(--kf-accent, #0E7365); }
.kfb-error[hidden] { display: none; }
.kfb-error { margin: 0; padding: 10px 12px; border-radius: 10px; background: #FDE7E7; color: #8F1D1D; font-size: 14px; font-weight: 600; }
.kfb-submit { position: relative; }
.kfb-spinner { display: none; width: 18px; height: 18px; border-radius: 50%; border: 2.5px solid currentColor; border-right-color: transparent; animation: kfb-spin .8s linear infinite; }
@keyframes kfb-spin { to { transform: rotate(360deg); } }
.kfb-form.is-sending { opacity: .85; pointer-events: none; }
.kfb-form.is-sending .kfb-spinner { display: inline-block; }
.kfb-success[hidden] { display: none; }
.kfb-success { margin: 4px 0 14px; padding: 14px 16px; border-radius: 18px; background: color-mix(in srgb, var(--kf-accent, #0E7365) 14%, var(--kf-chip, #fff)); border: 1px solid var(--kf-accent, #0E7365); font-size: 15px; line-height: 1.5; color: var(--kf-ink, #10231F); }
.kfb-success p { margin: 0; }

body.kfb-open { overflow: hidden; }
/* Masque l'ancienne modale du thème enfant si elle est encore présente. */
#kf-beta-modal { display: none !important; }

/* Badges officiels des stores (ne pas déformer, ne pas recolorer). */
.kfb-badge { margin: 8px 0 0; display: flex; justify-content: center; }
.kfb-badge a { display: inline-block; line-height: 0; border-radius: 8px; transition: transform .15s ease; }
.kfb-badge a:hover { transform: translateY(-1px); }
.kfb-badge a:focus-visible { outline: 3px solid var(--kf-accent, #0E7365); outline-offset: 3px; }
.kfb-badge img { display: block; height: 57px; width: auto; }
.kfb-badge img[alt="Disponible sur Google Play"] { height: 75px; margin: -9px 0; } /* le PNG Google embarque sa marge de protection */
