/* Tinker Tally — shared Contact Us form.
   Used by the Contact section of index.html (the one-page public site), which
   restyles it with page-scoped overrides. Paired with assets/js/tt-contact.js,
   which expects the ids and classes below.

   Depends on assets/css/styles.css for the design tokens. */

.pr-contact{
  margin:46px auto 0;max-width:680px;background:#fff;border:1px solid var(--border-default);
  border-radius:var(--radius-xl);box-shadow:var(--shadow-card);padding:26px 28px;
}
.pr-contact--standalone{margin-top:0}
.pr-contact-head{text-align:center}
.pr-contact-h{
  font-family:var(--font-display);font-size:19px;font-weight:700;letter-spacing:-.02em;
  color:var(--tt-navy-700);margin:0 0 5px;
}
.pr-contact-sub{margin:0;font-size:14px;line-height:1.5;color:var(--color-text-muted)}

.pr-form{display:none;margin-top:22px}
.pr-form.is-shown{display:block}
.pr-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}
.pr-field{display:flex;flex-direction:column;gap:6px;min-width:0}
.pr-field--wide{margin-top:15px}
.pr-field label{
  font-size:var(--text-xs);font-weight:var(--weight-semibold);text-transform:uppercase;
  letter-spacing:var(--tracking-wide);color:var(--color-text-muted);
}
.pr-optional{font-weight:var(--weight-regular);text-transform:none;letter-spacing:0;color:var(--color-text-faint)}
.pr-field input,.pr-field textarea{
  width:100%;box-sizing:border-box;font-family:var(--font-sans);font-size:var(--text-md);
  padding:10px 12px;border-radius:var(--radius-sm);outline:none;background:#fff;
  border:1px solid var(--border-default);color:var(--color-text);
  transition:border-color var(--dur-fast),box-shadow var(--dur-fast);
}
.pr-field textarea{resize:vertical;min-height:96px;line-height:1.5}
.pr-field input:focus,.pr-field textarea:focus{border-color:var(--tt-blue-500);box-shadow:var(--focus-ring)}

/* Honeypot: hidden from people, irresistible to bots. */
.pr-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

.pr-alert{
  display:none;align-items:flex-start;gap:8px;border-radius:var(--radius-md);
  padding:10px 12px;margin-bottom:16px;font-size:13px;line-height:1.45;font-weight:600;
}
.pr-alert.is-shown{display:flex}
.pr-alert--err{background:var(--tt-danger-bg);border:1px solid var(--tt-danger-line);color:var(--tt-danger)}

.pr-done{display:none;text-align:center;padding:8px 0 4px}
.pr-done.is-shown{display:block}
.pr-done-badge{
  display:inline-flex;align-items:center;justify-content:center;width:50px;height:50px;
  border-radius:var(--radius-pill);background:var(--tt-emerald-100);margin-bottom:14px;
}

/* Generous gap above the button so it reads as a deliberate final step rather
   than an extension of the message box it sits under. */
.pr-actions{text-align:center;margin-top:30px}
.pr-submit{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  background:var(--tt-emerald-500);color:#fff;font-weight:700;font-size:15px;
  padding:12px 26px;border-radius:10px;border:none;cursor:pointer;font-family:var(--font-sans);
  transition:background var(--dur-fast) var(--ease-standard);
}
.pr-submit:hover:not(:disabled){background:var(--tt-emerald-600)}
.pr-submit:disabled{opacity:.55;cursor:not-allowed}
.pr-consent{margin:14px 0 0;font-size:12px;line-height:1.5;color:var(--color-text-faint)}

@media (max-width:760px){
  .pr-contact{padding:22px 20px}
  .pr-grid{grid-template-columns:1fr}
}
