.contact-layout { display: grid; gap: 2rem; align-items: stretch; }
.contact-card { min-width: 0; }
.contact-form { scroll-margin-top: 130px; }
.contact-form label { display: block; font-size: .875rem; font-weight: 700; margin-bottom: .45rem; }
.contact-form input, .contact-form textarea { width: 100%; border: 1px solid #2f304026; border-radius: .8rem; background: #fff; padding: .75rem 1rem; font: inherit; font-size: .875rem; }
.contact-form textarea { min-height: 125px; resize: vertical; }
.contact-form input:focus, .contact-form textarea:focus { outline: 3px solid #17b24a30; border-color: #17b24a; }
.contact-form button:disabled { opacity: .6; cursor: wait; }
.contact-trap { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.contact-status { font-size: .875rem; line-height: 1.6; overflow-wrap: anywhere; }
.contact-status[data-state="error"] { color: #b42318; }
.contact-status[data-state="success"] { color: #137b35; }
@media (min-width: 768px) { .contact-layout { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); } .contact-map { grid-column: 1 / -1; } }
@media (min-width: 1280px) { .contact-layout { grid-template-columns: minmax(0, .8fr) minmax(0, 1.1fr) minmax(0, 1.1fr); } .contact-map { grid-column: auto; } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
