
.contact-section { padding-block: var(--space); border-block-start: 1px solid var(--line); display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr)); gap: clamp(2rem, 5vw, 4rem); }
.contact-section > *, .contact-field { min-inline-size: 0; }
.contact-intro p { margin-block-start: 1rem; color: var(--muted); white-space: pre-line; }
.contact-section fieldset { margin: 0; padding: 0; border: 0; min-inline-size: 0; }
.contact-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr)); gap: 0 1rem; }
.contact-field { margin-block-end: 1rem; }
.contact-field label { display: block; margin-block-end: .4rem; font-size: .9rem; font-weight: 600; }
.contact-field input, .contact-field textarea { inline-size: 100%; max-inline-size: 100%; min-inline-size: 0; padding: .8rem .9rem; border: 1px solid #c8c3d5; border-radius: .55rem; background: white; color: inherit; font: inherit; line-height: 1.5; }
.contact-field textarea { resize: vertical; min-block-size: 8rem; }
.contact-section :is(input, textarea, button):focus-visible { outline: 3px solid var(--accent); outline-offset: 3px; }
.contact-section [aria-invalid="true"] { border-color: #a52a3b; }
.contact-section small[data-error-for] { display: block; color: #982235; font-size: .85rem; overflow-wrap: anywhere; }
.contact-consent { display: flex; align-items: flex-start; gap: .7rem; margin-block: .5rem 1rem; font-size: .85rem; }
.contact-consent input { flex: 0 0 1.15rem; inline-size: 1.15rem; block-size: 1.15rem; margin-block-start: .2rem; accent-color: var(--accent); }
.contact-consent span { min-inline-size: 0; }
.contact-section button { font: inherit; cursor: pointer; margin-block-start: .5rem; }
.contact-section button:disabled { cursor: wait; opacity: .6; }
.contact-status { min-block-size: 1.65em; margin-block-start: .8rem; font-size: .9rem; }
.contact-sr-only { position: absolute; inline-size: 1px; block-size: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
