/* ============================================================
   Kairo — waitlist section (beta signup)
   Uses the shared design tokens from site.css (var(--forest) etc.)
   ============================================================ */
.waitlist{ padding:104px 0; position:relative; overflow:hidden; border-top:1px solid var(--cardLine); }
.waitlist .wl-bg{ position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(820px 460px at 16% 0%, rgba(93,163,114,0.12), transparent 60%); }
.wl-inner{ position:relative; display:grid; grid-template-columns:1.02fr 0.98fr; gap:64px; align-items:center; }

.wl-copy h2{ font-size:clamp(30px,3.4vw,46px); margin-top:16px; }
.wl-copy p{ margin-top:20px; font-size:16.5px; line-height:1.6; color:var(--text2); max-width:480px; }
.wl-points{ margin-top:24px; display:flex; flex-direction:column; gap:11px; list-style:none; }
.wl-points li{ position:relative; padding-left:26px; font-size:14.5px; color:var(--text2); }
.wl-points li::before{ content:''; position:absolute; left:0; top:6px; width:14px; height:14px; border-radius:99px;
  background:var(--forestSoft); box-shadow:inset 0 0 0 2px var(--forest); }

.wl-card{ padding:28px 26px; }
.wl-field{ margin-bottom:16px; }
.wl-field label{ display:block; font-size:12px; font-weight:600; letter-spacing:0.01em; color:var(--text2); margin-bottom:7px; }
.wl-field .req{ color:var(--forest); }
.wl-field .opt{ color:var(--muted); font-weight:500; font-size:11px; }
.wl-field input, .wl-field textarea{
  width:100%; font-family:var(--sans); font-size:15px; color:var(--text);
  background:var(--bg); border:1px solid var(--cardLineHi); border-radius:12px; padding:13px 15px;
  transition:border-color .18s, background .18s; }
.wl-field textarea{ resize:vertical; min-height:74px; }
.wl-field input::placeholder, .wl-field textarea::placeholder{ color:var(--dim); }
.wl-field input:focus, .wl-field textarea:focus{ outline:none; border-color:var(--forest); background:var(--bgRaise); }

.wl-btn{ width:100%; margin-top:4px; background:var(--forest); color:var(--bg); font-family:var(--sans);
  font-size:15.5px; font-weight:600; letter-spacing:-0.01em; border:none; border-radius:99px; padding:15px; cursor:pointer;
  transition:background .2s, transform .15s, opacity .2s; }
.wl-btn:hover{ background:#6cb582; }
.wl-btn:active{ transform:translateY(1px); }
.wl-btn:disabled{ opacity:0.6; cursor:default; }

.wl-status{ margin:12px 0 0; font-size:13px; text-align:center; line-height:1.45; }
.wl-status.err{ color:#E0916F; }
.wl-fine{ margin:12px 0 0; font-size:11.5px; color:var(--muted); text-align:center; }

/* honeypot — visually hidden, off-screen, ignored by real users */
.wl-hp{ position:absolute; left:-9999px; top:auto; width:1px; height:1px; overflow:hidden; }

/* success state (replaces the form) */
.wl-done{ text-align:center; padding:24px 8px; }
.wl-check{ width:54px; height:54px; margin:0 auto 16px; border-radius:99px; background:var(--forestSoft);
  display:flex; align-items:center; justify-content:center; font-size:26px; color:var(--forest); }
.wl-done h3{ font-size:22px; letter-spacing:-0.03em; }
.wl-done p{ margin-top:10px; font-size:14.5px; color:var(--text2); line-height:1.55; }

@media (max-width:980px){
  .wl-inner{ grid-template-columns:1fr; gap:40px; }
  .waitlist{ padding:80px 0; }
}
