/* Find your pair: one definition, used by the homepage and /free-lessons/. */
.finder { --terracotta:#B8482C; --card:#FBF6EB; --line:#D9C7A2; --muted:#7A6852; --surface2:#F5ECD6; --ink:#1A140C; --ink2:#3D2F22; --error:#C53A2A; }
/* ---- Script fonts — used by the language finder and anywhere a native
   language name is shown. One class per Unicode block, not per language —
   several of the finder's ~80 voice-confirmed languages share a script
   (Hindi/Marathi/Nepali/Sanskrit/Maithili all Devanagari; Arabic/Urdu/
   Persian/Sindhi all Arabic script; Russian/Ukrainian/Bulgarian/Serbian/
   Kazakh/Macedonian/Greek all served by the base Noto Sans subset). ---- */
.script-ta { font-family:'Noto Sans Tamil','Noto Serif Tamil',serif; }
.script-te { font-family:'Noto Sans Telugu','Noto Serif Telugu',serif; }
.script-kn { font-family:'Noto Sans Kannada',sans-serif; }
.script-hi { font-family:'Noto Sans Devanagari',sans-serif; }
.script-bn { font-family:'Noto Sans Bengali',sans-serif; }
.script-ar { font-family:'Noto Sans Arabic',sans-serif; }
.script-gu { font-family:'Noto Sans Gujarati',sans-serif; }
.script-or { font-family:'Noto Sans Oriya',sans-serif; }
.script-ml { font-family:'Noto Sans Malayalam',sans-serif; }
.script-pa { font-family:'Noto Sans Gurmukhi',sans-serif; }
.script-th { font-family:'Noto Sans Thai',sans-serif; }
.script-zh { font-family:'Noto Sans SC',sans-serif; }
.script-ja { font-family:'Noto Sans JP',sans-serif; }
.script-ko { font-family:'Noto Sans KR',sans-serif; }
.script-ru { font-family:'Noto Sans',var(--sans); }
.script-he { font-family:'Noto Sans Hebrew',sans-serif; }
.script-hy { font-family:'Noto Sans Armenian',sans-serif; }
.script-ka { font-family:'Noto Sans Georgian',sans-serif; }
.script-km { font-family:'Noto Sans Khmer',sans-serif; }
.script-lo { font-family:'Noto Sans Lao',sans-serif; }
.script-my { font-family:'Noto Sans Myanmar',sans-serif; }
.script-si { font-family:'Noto Sans Sinhala',sans-serif; }
.script-am { font-family:'Noto Sans Ethiopic',sans-serif; }

/* ---- Find your pair — the language finder ---- */
.finder { display:grid; grid-template-columns:1fr; gap:16px; }
@media (min-width:900px) { .finder { grid-template-columns:repeat(3,1fr); } }
.finder-panel {
  background:var(--card); border:1px solid var(--line); border-radius:16px;
  padding:20px; min-width:0; transition:border-color .15s, box-shadow .15s;
}
.finder-panel h3 { margin:0 0 4px; font-size:1.05em; }
.finder-hint { margin:0 0 14px; font-size:0.82em; color:var(--muted); }
.finder-panel.is-focused {
  border-color:var(--terracotta); box-shadow:0 0 0 2px rgba(184,72,44,.16);
}
.finder-list {
  display:flex; flex-direction:column; gap:6px;
  max-height:320px; overflow-y:auto; padding-right:2px;
}
button.finder-row {
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  width:100%; text-align:left; padding:9px 12px; border-radius:10px;
  border:1px solid transparent; background:none; cursor:pointer;
  font-family:var(--sans); color:var(--ink);
}
button.finder-row:hover { background:var(--surface2); }
button.finder-row.is-selected { background:var(--terracotta); color:#fff; }
button.finder-row.is-selected .finder-en { color:rgba(255,255,255,.82); }
.finder-row--static {
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  padding:9px 12px;
}
.finder-native { font-weight:600; font-size:0.98em; }
.finder-en { font-size:0.8em; color:var(--muted); white-space:nowrap; margin-left:8px; }
/* Request rows are tap-to-select toggle buttons (multiple allowed), not
   one-shot "Request" buttons — the whole row is the control. */
button.finder-request-row {
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  width:100%; text-align:left; padding:9px 12px; border-radius:10px;
  border:1px solid var(--lineSoft); background:var(--paper); cursor:pointer;
  font-family:var(--sans); color:var(--ink);
}
button.finder-request-row:hover { border-color:var(--terracotta); }
button.finder-request-row.is-selected { background:var(--terracotta); border-color:var(--terracotta); color:#fff; }
button.finder-request-row.is-selected .finder-en { color:rgba(255,255,255,.82); }
.finder-search-input, .finder-email-input {
  display:block; width:100%; margin:0 0 12px; padding:10px 12px; border-radius:10px;
  border:1px solid var(--line); background:var(--paper); font-family:var(--sans);
  font-size:0.85em; color:var(--ink);
}
.finder-search-input:focus, .finder-email-input:focus { outline:2px solid var(--terracotta); outline-offset:1px; }
.finder-request-submit-btn {
  display:block; width:100%; padding:11px 16px; border-radius:999px; border:none;
  background:var(--terracotta); color:#fff; font-family:var(--sans);
  font-size:0.9em; font-weight:600; cursor:pointer;
}
.finder-request-submit-btn:disabled { opacity:.5; cursor:default; }

#pair-finder .visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
#pair-finder .waitlist-status { min-height:1.2em; font-size:0.8em; margin:0; }
#pair-finder .waitlist-status.is-success { color:#3E6B4C; }
#pair-finder .waitlist-status.is-error { color:var(--error); }
.finder-row--lessons { flex-wrap:wrap; }
.finder-links { width:100%; display:flex; flex-wrap:wrap; gap:4px 14px; font-size:0.85em; font-weight:600; }
.finder-links a { color:var(--terracotta); text-decoration:none; }
@media (max-width:640px) { .finder-list { max-height:220px; } }
