.contact-shell { max-width: 960px; }
.contact-shell h1 { font-size: clamp(2.5rem, 6vw, 4.6rem); }
.contact-intro { max-width: 760px; }
.contact-form { margin-top: 32px; padding: clamp(20px, 4vw, 40px); border: 1px solid #d8e5dc; border-radius: 20px; background: #f5f8f5; }
.contact-form label { display: block; margin-bottom: 8px; font-weight: 600; color: var(--navy); }
.contact-form label span { font-size: .88em; font-weight: 400; color: #526259; }
.contact-form input, .contact-form select, .contact-form textarea { display: block; width: 100%; min-width: 0; border: 1px solid #aebfb3; border-radius: 8px; background: white; color: var(--ink); padding: 12px 14px; font-size: 1rem; line-height: 1.5; }
.contact-form textarea { resize: vertical; min-height: 180px; }
.contact-form :is(input, select, textarea):focus { outline: 3px solid #6c9f77; outline-offset: 2px; }
.contact-field { margin-bottom: 24px; }
.contact-field p { margin: 8px 0 0; color: #526259; font-size: .88rem; }
.contact-form .contact-field-error { margin: 8px 0 16px; color: #922c22; font-size: .9rem; font-weight: 600; }
.contact-form [aria-invalid="true"] { border-color: #922c22; outline-color: #922c22; }
.contact-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.contact-form fieldset { min-width: 0; border: 0; margin: 0; padding: 0; }
.contact-form legend { margin-bottom: 16px; font-weight: 600; color: var(--navy); }
.contact-form [hidden] { display: none !important; }
.contact-form .report-categories { margin-bottom: 24px; }
.contact-form .report-categories label, .contact-form .report-check { display: flex; align-items: flex-start; gap: 12px; padding: 8px 0; font-weight: 400; }
.contact-form input[type="checkbox"] { width: 22px; height: 22px; flex: 0 0 22px; margin-top: 2px; padding: 0; accent-color: var(--green-dark); }
.contact-form #report-location { min-height: 100px; }
.contact-privacy, .contact-required { font-size: .9rem; color: #526259; }
.contact-form a, .contact-intro a { color: var(--green-dark); text-decoration: underline; text-underline-offset: 3px; }
.contact-form button:disabled { opacity: .65; cursor: wait; transform: none; }
.contact-status { margin: 20px 0 0; padding: 16px; border-radius: 8px; }
.contact-status:empty { display: none; }
.contact-security { margin: 24px 0; }
.contact-security p { font-size: .9rem; color: #526259; }
.contact-security button { padding: 10px 14px; border: 1px solid #aebfb3; border-radius: 8px; background: white; color: var(--ink); cursor: pointer; }
.contact-status[data-state="success"] { background: #e0f0e2; color: #1b5325; }
.contact-status[data-state="error"] { background: #fff0ec; color: #922c22; }
.contact-status[data-state="pending"] { background: #e8eef2; color: #24394c; }
@media (max-width: 640px) { .contact-row { grid-template-columns: minmax(0, 1fr); gap: 0; } }
