.form-section { padding:48px 0 80px; }
.form-card { max-width:640px; margin:0 auto; padding:40px 36px; border:1px solid var(--line); border-radius:var(--radius); background:#fff; box-shadow:var(--shadow); }
.form-card h2 { margin:0 0 8px; color:var(--ink); font-size:24px; }
.form-sub { margin:0 0 32px; color:var(--muted); font-size:15px; }
.required { color:#e74c3c; }
.form-group { margin-bottom:24px; }
.form-group label { display:block; margin-bottom:8px; color:var(--ink); font-size:15px; font-weight:600; }
.form-group input,.form-group select,.form-group textarea { width:100%; padding:12px 16px; border:1px solid var(--line); border-radius:8px; outline:0; background:var(--bg-soft); color:var(--ink); font:inherit; font-size:15px; transition:border-color .18s,box-shadow .18s; }
.form-group input:focus,.form-group select:focus,.form-group textarea:focus { border-color:var(--cyan); background:#fff; box-shadow:0 0 0 3px rgba(0,155,247,.12); }
.form-group textarea { min-height:150px; resize:vertical; line-height:1.65; }
.form-actions { margin-top:32px; text-align:center; }
.btn-submit { display:inline-flex; width:100%; justify-content:center; padding:14px 32px; border:0; border-radius:999px; background:var(--cyan); color:#fff; cursor:pointer; font:600 17px inherit; }
.btn-submit:hover { background:var(--cyan-d); }
.btn-submit:disabled { cursor:wait; opacity:.68; }
.feedback-status { min-height:24px; margin:14px 0 0; color:#506a73; text-align:center; }
.feedback-status.success { color:#16825d; }
.feedback-status.error { color:#be3f42; }
.feedback-honeypot { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
@media (max-width:720px) { .form-section{padding:28px 0 56px}.form-card{margin:0 4px;padding:28px 20px;border-radius:10px}.form-group textarea{min-height:120px} }

.form-hint { margin:7px 0 0; color:var(--muted); font-size:13px; line-height:1.5; }
.form-hint-row { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }
.character-count { flex:none; margin-top:7px; color:var(--muted); font-size:13px; }
.field-error { min-height:20px; margin:5px 0 0; color:#be3f42; font-size:13px; line-height:1.45; }
.form-group input[aria-invalid="true"],.form-group textarea[aria-invalid="true"] { border-color:#d9534f; background:#fffafa; box-shadow:0 0 0 3px rgba(217,83,79,.1); }