/* Waitlist form (« Préviens-moi au lancement ») — one step, posts to Jotform (see assets/js/waitlist.js).
   Used in the Prix section (night). Works on paper sections too. */
.wlf { width: 100%; max-width: 560px; margin: 0 auto; text-align: left; }
.wlf-kicker { display: inline-flex; align-items: center; gap: 10px; margin: 0 0 10px; font: 600 13px/1 var(--sans); letter-spacing: .12em; text-transform: uppercase; color: var(--brass); }
.night .wlf-kicker { color: var(--brass-light); }
.wlf-dot { width: 8px; height: 8px; border-radius: 50%; background: currentColor; box-shadow: 0 0 0 0 currentColor; animation: wlf-pulse 2.4s var(--ease) infinite; }
@keyframes wlf-pulse { 0% { box-shadow: 0 0 0 0 rgba(221, 187, 120, .55); } 70% { box-shadow: 0 0 0 10px rgba(221, 187, 120, 0); } 100% { box-shadow: 0 0 0 0 rgba(221, 187, 120, 0); } }
.wlf-title { margin: 0 0 8px; }
.wlf-lead { margin: 0 0 20px; color: var(--muted); font-size: 16.5px; line-height: 1.55; }
.night .wlf-lead { color: var(--on-night-muted); }

.wlf-row { display: flex; flex-wrap: wrap; gap: 10px; }
.wlf-input { flex: 1 1 240px; min-width: 0; min-height: 56px; padding: 0 20px; border-radius: 999px; border: 1.5px solid var(--line-strong); background: var(--card); color: var(--ink); font: 400 17px/1.2 var(--sans); transition: border-color .2s, box-shadow .2s; }
.wlf-input::placeholder { color: var(--muted); opacity: .8; }
.wlf-input:focus { outline: none; border-color: var(--wine); box-shadow: 0 0 0 4px rgba(138, 28, 53, .18); }
.night .wlf-input { background: var(--night-2); border-color: #7A6B62; color: var(--on-night); }   /* ≥3:1 on night and night-2 */
html.no-js .wlf-row, html.no-js .wlf-help { display: none; }   /* without JS: only the noscript e-mail alternative */
.night .wlf-input::placeholder { color: var(--on-night-muted); }
.night .wlf-input:focus { border-color: var(--rose); box-shadow: 0 0 0 4px rgba(240, 163, 179, .2); }
.wlf-input[aria-invalid="true"] { border-color: var(--bad); }
.night .wlf-input[aria-invalid="true"] { border-color: #FF9A8F; }
.wlf-btn { flex: 0 0 auto; }
.wlf-btn[aria-busy="true"] { opacity: .75; cursor: progress; }
.wlf-spin { width: 16px; height: 16px; border-radius: 50%; border: 2px solid currentColor; border-right-color: transparent; animation: wlf-spin .8s linear infinite; display: none; }
.wlf-btn[aria-busy="true"] .wlf-spin { display: inline-block; }
@keyframes wlf-spin { to { transform: rotate(360deg); } }

.wlf-help { margin: 12px 4px 0; font-size: 13.5px; line-height: 1.5; color: var(--muted); }
.night .wlf-help { color: var(--on-night-muted); }
.wlf-help a { color: inherit; text-underline-offset: 3px; }
.wlf-msg { margin: 12px 4px 0; font-size: 15px; line-height: 1.5; font-weight: 600; min-height: 0; }
.wlf-msg:empty { margin: 0; }   /* stays rendered: a live region must exist before its text changes */
.wlf-msg.is-err { color: var(--bad); }
.night .wlf-msg.is-err { color: #FF9A8F; }

/* anti-robot check (ALTCHA, loaded only once the visitor starts using the form) */
.wlf-check { margin: 12px 0 0; }
.wlf-check:empty { display: none; }
.wlf-check altcha-widget { --altcha-max-width: 100%; --altcha-border-radius: 14px; --altcha-color-base: var(--card); --altcha-color-border: var(--line-strong); --altcha-color-text: var(--ink); --altcha-color-border-focus: var(--wine); --altcha-color-error-text: var(--bad); font-family: var(--sans); font-size: 14px; }
.night .wlf-check altcha-widget { --altcha-color-base: var(--night-2); --altcha-color-border: #7A6B62; --altcha-color-text: var(--on-night); --altcha-color-border-focus: var(--rose); --altcha-color-error-text: #FF9A8F; }

/* success */
.wlf-ok { display: none; text-align: left; }
.wlf.is-done .wlf-ok { display: block; animation: wlf-in .6s var(--ease-out) both; }
.wlf.is-done .wlf-body { display: none; }
.wlf-ok-ic { width: 56px; height: 56px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: rgba(30, 122, 76, .14); color: var(--ok); margin: 0 0 14px; }
.night .wlf-ok-ic { background: rgba(116, 211, 160, .14); color: #74D3A0; }
.wlf-ok-ic svg { width: 28px; height: 28px; }
.wlf-ok h3 { outline: none; }
@keyframes wlf-in { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }

@media (max-width: 480px) { .wlf-btn { width: 100%; } }
@media (prefers-reduced-motion: reduce) { .wlf-dot, .wlf-spin { animation: none; } .wlf.is-done .wlf-ok { animation: none; } }
