/* Component-only rules. Shared site tokens and layout remain unchanged. */
.contact-form{max-width:560px;margin-top:32px;min-width:0}
.contact-form .contact-field{margin-bottom:24px}
.contact-form label{display:block;margin-bottom:8px;font:500 15px/1.5 var(--font-body)}
.contact-form input,.contact-form textarea{display:block;box-sizing:border-box;width:100%;min-width:0;border:1px solid var(--muted);border-radius:0;background:var(--surface);color:var(--fg);padding:12px 14px;font:16px/1.6 var(--font-body);min-height:48px;box-shadow:none}
.contact-form textarea{min-height:172px;resize:vertical}
.contact-form input:hover,.contact-form textarea:hover{border-color:var(--fg)}
.contact-form input:focus-visible,.contact-form textarea:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-color:var(--fg)}
.contact-form input[aria-invalid="true"],.contact-form textarea[aria-invalid="true"]{border:2px solid var(--error);padding:11px 13px}
.contact-form input[readonly],.contact-form textarea[readonly]{background:var(--tint);color:var(--fg);border-color:var(--border)}
.contact-form .contact-hint{margin:7px 0 0;color:var(--muted);font-size:13px;line-height:1.5}
.contact-form .contact-error{margin:7px 0 0;font-size:14px;line-height:1.5;color:var(--error);overflow-wrap:anywhere}
.contact-form .contact-actions{display:flex;align-items:center;gap:16px 24px;flex-wrap:wrap;margin-top:28px}
.contact-form .contact-actions .button{min-width:142px;min-height:48px;justify-content:center}
.contact-form .contact-actions a{display:inline-flex;align-items:center;min-height:44px;font-size:13px;color:var(--fg);text-underline-offset:5px}
.contact-form .contact-actions a:hover{color:var(--fg);text-decoration-thickness:2px}
.contact-form .contact-actions a:focus-visible,.contact-form .button:focus-visible{outline:3px solid var(--accent);outline-offset:5px}
.contact-form .button:disabled{opacity:1;background:var(--tint);color:var(--muted);border-color:var(--border);cursor:default;box-shadow:none;transform:none}
.contact-form .contact-status{margin:18px 0 0;min-height:1.6em;max-width:100%;font-size:15px;line-height:1.6;overflow-wrap:anywhere}
.contact-form[data-state="error"] .contact-status,.contact-form[data-state="invalid"] .contact-status{color:var(--error)}
.contact-form[data-state="accepted"] .contact-status{color:var(--success)}
@media(max-width:760px){.contact-form{margin-top:25px}.contact-form .contact-field{margin-bottom:22px}.contact-form .contact-actions{margin-top:24px;gap:8px 20px}}
