.contact-layout { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 2rem; align-items: start; }
.contact-form-card { padding: 1.75rem; border: 1px solid var(--line); border-radius: 14px; background: white; }
.contact-form-card h2, .contact-details h2 { font-size: 1.35rem; letter-spacing: -.02em; margin-bottom: 1.25rem; }
.contact-form { display: grid; gap: 1.25rem; }
.contact-field { display: grid; gap: .4rem; }
.contact-field label { font-weight: 650; font-size: .95rem; }
.contact-field input, .contact-field textarea { width: 100%; min-height: 48px; padding: .7rem .85rem; border: 1px solid #b9c6bd; border-radius: 8px; background: white; color: var(--ink); font: inherit; }
.contact-field textarea { resize: vertical; min-height: 160px; line-height: 1.6; }
.contact-field input:focus, .contact-field textarea:focus { outline: 3px solid rgb(35 103 79 / 25%); outline-offset: 1px; border-color: var(--accent); }
.contact-field [aria-invalid="true"] { border-color: #a33232; }
.contact-field-error { color: #a33232; font-size: .9rem; font-weight: 600; }
.contact-status { padding: 1rem 1.15rem; margin-bottom: 1.25rem; border: 1px solid var(--line); border-left: 4px solid var(--muted); border-radius: 10px; background: #f6f7f4; }
.contact-status-success { border-color: #b8d6c5; border-left-color: var(--accent); background: #eef6f0; }
.contact-status-error { border-color: #e2c0c0; border-left-color: #a33232; background: #fbf0f0; }
.contact-privacy { color: var(--muted); font-size: .88rem; }
.contact-form .button { justify-self: start; }
.contact-trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.contact-details { padding: 1.5rem; border-radius: 14px; background: #f1f4ee; }
.contact-details h3 { font-size: 1rem; margin: 1.25rem 0 .35rem; }
.contact-details h2 + h3 { margin-top: 0; }
.contact-details p { color: var(--muted); }
.contact-details a { color: var(--ink); font-weight: 600; overflow-wrap: anywhere; }

@media (max-width: 760px) {
    .contact-layout { grid-template-columns: 1fr; }
    .contact-form-card { padding: 1.25rem; }
    .contact-form .button { justify-self: stretch; }
}

@media print {
    .contact-form-card { display: none; }
}
