.contact-form-section { padding-top: 16px; padding-bottom: 90px; scroll-margin-top: 24px; }
.contact-form-layout { display: grid; grid-template-columns: .75fr 1.25fr; gap: 8%; align-items: start; }
.contact-form-intro h2, .contact-location h2 { margin: 0 0 20px; font: 600 clamp(28px,3.4vw,42px)/1.15 var(--font-body); letter-spacing: -.04em; }
.contact-form-intro p { max-width: 350px; color: var(--ink-soft); }
.contact-form { padding: 30px; border: 1px solid var(--line); background: #fff; }
.contact-form-note { margin: 0 0 20px; color: var(--ink-soft); font-size: 12px; }
.contact-form > .contact-form-note:last-child { margin: 14px 0 0; }
.contact-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; }
.contact-field { min-width: 0; }
.contact-field-full { grid-column: 1 / -1; }
.contact-field label { display: block; margin-bottom: 8px; font-size: 13px; font-weight: 600; }
.contact-field input, .contact-field select, .contact-field textarea { width: 100%; min-height: 46px; padding: 12px; border: 1px solid #a5b4ac; border-radius: 4px; color: var(--ink); background: var(--paper); font: 400 13px/1.65 var(--font-body); }
.contact-field textarea { resize: vertical; }
.contact-field input:focus, .contact-field select:focus, .contact-field textarea:focus { outline: 2px solid #3b762f; outline-offset: 2px; border-color: #3b762f; }
.contact-field [aria-invalid="true"] { border-color: #a3332c; }
.contact-field-error { display: block; margin-top: 7px; color: #a3332c; font-size: 12px; }
.contact-privacy { display: flex; align-items: flex-start; gap: 10px; margin: 24px 0; color: var(--ink-soft); cursor: pointer; }
.contact-privacy input { flex: 0 0 18px; width: 18px; height: 18px; margin: 2px 0 0; accent-color: #3b762f; }
.contact-privacy input:focus-visible { outline: 2px solid #3b762f; outline-offset: 3px; }
.contact-honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.contact-feedback { margin-bottom: 20px; padding: 18px 22px; border: 1px solid; border-radius: 4px; }
.contact-feedback p { margin: 8px 0 0; }
.contact-feedback-error { color: #762820; border-color: #d9aaa5; background: #fff3f1; }
.contact-feedback-success { color: #245227; border-color: #a4c49b; background: #eef6e9; }
.contact-location { padding-top: 24px; padding-bottom: 100px; }
.contact-location-heading { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 28px; }
.contact-location-heading h2 { margin-bottom: 10px; }
.contact-location-heading p { margin: 0; color: var(--ink-soft); }
.contact-map { min-height: 380px; border: 1px solid var(--line); border-radius: 6px; overflow: hidden; background: var(--paper-deep); }
.contact-map-placeholder { min-height: 380px; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 32px; text-align: center; background-image: linear-gradient(rgba(86,157,65,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(86,157,65,.07) 1px,transparent 1px); background-size: 36px 36px; }
.contact-map-placeholder > svg { width: 42px; height: 42px; margin-bottom: 18px; color: #3b762f; }
.contact-map-placeholder h3 { margin-bottom: 10px; font-size: 21px; font-weight: 600; }
.contact-map-placeholder p { max-width: 540px; margin-bottom: 22px; color: var(--ink-soft); }
.contact-map button[hidden] { display: none; }
.contact-map iframe { display: block; width: 100%; height: 420px; border: 0; }
@media (max-width: 900px) { .contact-form-layout { grid-template-columns: 1fr; gap: 32px; } .contact-form-intro p { max-width: 600px; } }
@media (max-width: 680px) { .contact-fields { grid-template-columns: 1fr; } .contact-form { padding: 22px 18px; } .contact-location-heading { align-items: flex-start; flex-direction: column; } .contact-map-placeholder { padding: 24px 18px; } .contact-form-section, .contact-location { padding-bottom: 65px; } }
