/* Callback form — uses the page's own Slate & Chalk tokens, so it themes itself. */
.callback{
  border:1px solid var(--line); background:var(--surface); border-radius:3px;
  padding:22px 22px 24px; margin:24px 0 8px;
}
.callback h3{ margin:0 0 4px; font-family:var(--serif); font-weight:500; font-size:1.25rem; }
.callback .hint{ color:var(--ink-2); font-size:.9375rem; margin:0 0 18px; }
.cb-grid{ display:grid; grid-template-columns:1fr 1fr; gap:14px 16px; }
@media (max-width:560px){ .cb-grid{ grid-template-columns:1fr; } }
.cb-field{ display:flex; flex-direction:column; gap:6px; }
.cb-field.wide{ grid-column:1 / -1; }
.cb-field label{
  font-family:var(--mono); font-size:.7rem; letter-spacing:.1em;
  text-transform:uppercase; color:var(--muted);
}
.cb-field label .req{ color:var(--accent); }
.cb-field input, .cb-field select, .cb-field textarea{
  font-family:var(--sans); font-size:1rem; color:var(--ink);
  background:var(--ground); border:1px solid var(--line); border-radius:3px;
  padding:10px 12px; width:100%;
}
.cb-field textarea{ min-height:84px; resize:vertical; line-height:1.55; }
.cb-field input:focus-visible, .cb-field select:focus-visible, .cb-field textarea:focus-visible{
  outline:2px solid var(--accent); outline-offset:1px; border-color:var(--accent);
}
.cb-consent{
  grid-column:1 / -1; display:flex; gap:10px; align-items:flex-start;
  font-size:.875rem; color:var(--ink-2); line-height:1.5;
}
.cb-consent input{ margin-top:.28em; width:16px; height:16px; accent-color:var(--accent); flex:none; }
.cb-actions{ grid-column:1 / -1; display:flex; align-items:center; gap:14px; flex-wrap:wrap; margin-top:2px; }
.cb-actions button{
  font-family:var(--sans); font-size:1rem; font-weight:500; cursor:pointer;
  background:var(--accent); color:var(--accent-ink); border:1px solid var(--accent);
  border-radius:3px; padding:11px 22px;
}
.cb-actions button:disabled{ opacity:.55; cursor:progress; }
.cb-actions button:focus-visible{ outline:2px solid var(--accent); outline-offset:2px; }
.cb-alt{ font-size:.875rem; color:var(--muted); }
.cb-msg{ grid-column:1 / -1; font-size:.9375rem; margin:0; }
.cb-msg.bad{ color:#c2372f; }
.cb-msg.good{ color:var(--accent); }
.cb-pot{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.cb-done{
  border-left:3px solid var(--accent); background:var(--accent-soft);
  padding:16px 18px; color:var(--ink); border-radius:0 3px 3px 0;
}
.cb-done p{ color:inherit; margin:0; }
