.contact-section { padding: 32px 0 104px; }
.contact-layout { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 96px; align-items: start; }
.contact-kicker { font-size: 14px; font-weight: 650; text-transform: uppercase; letter-spacing: .08em; }
.contact-context h2, .contact-panel h2 { margin: 0 0 16px; font-size: 27px; font-weight: 550; letter-spacing: -.03em; }
.contact-context p { color: var(--text); line-height: 1.85; }
.contact-context a, .contact-privacy > a { text-decoration: underline; text-underline-offset: 4px; }
.contact-email { display: inline-block; font-size: clamp(17px, 2vw, 23px); overflow-wrap: anywhere; }
.contact-community { margin-top: 52px; padding-top: 28px; border-top: 1px solid var(--line); }
.contact-panel { padding: 32px; border: 1px solid var(--line); background: #fffdf8; }
.contact-panel [hidden] { display: none; }
.contact-panel fieldset { border: 0; padding: 0; margin: 24px 0 0; min-width: 0; }
.contact-fields-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.contact-field { margin-bottom: 20px; }
.contact-field label { display: block; margin-bottom: 8px; font-size: 14px; font-weight: 600; }
.contact-optional { color: #64605b; font-weight: 400; }
.contact-field input, .contact-field select, .contact-field textarea { display: block; width: 100%; min-width: 0; min-height: 44px; padding: 10px 12px; border: 1px solid #908b83; border-radius: 3px; background: #fff; color: var(--ink); font: inherit; }
.contact-field textarea { resize: vertical; }
.contact-field :disabled { background: #f0eee8; }
.contact-field [aria-invalid="true"], .contact-ack [aria-invalid="true"] { border-color: #a32820; outline-color: #a32820; }
.contact-hint, .contact-privacy { font-size: 13px; color: #58534d; line-height: 1.75; }
.contact-field-error { color: #a32820; font-size: 13px; margin: 5px 0 0; }
.contact-field-error:empty { display: none; }
.contact-privacy p { margin: 0 0 12px; }
.contact-ack { display: flex; align-items: flex-start; gap: 10px; margin-top: 18px; color: var(--ink); }
.contact-ack input { width: 18px; height: 18px; flex-shrink: 0; margin: 3px 0 0; accent-color: var(--foundation-blue); }
.contact-status, .contact-error-summary { padding: 12px 16px; background: var(--paper-shade); font-size: 14px; line-height: 1.7; }
.contact-error-summary { color: #842018; border-left: 3px solid #a32820; }
.contact-submit, .contact-retry { min-height: 44px; padding: 10px 18px; border: 1px solid var(--ink); border-radius: 3px; font: inherit; cursor: pointer; }
.contact-submit { color: white; background: var(--ink); }
.contact-submit:disabled { color: #68635c; background: #e7e4dd; border-color: #c3beb5; cursor: default; }
.contact-retry { background: transparent; font-size: 14px; }
.contact-verification { margin-top: 24px; min-width: 0; }
.contact-success code { overflow-wrap: anywhere; }
.contact-success h3 { margin-top: 28px; font-size: 24px; font-weight: 550; }
.contact-panel :focus-visible, .contact-context a:focus-visible { outline: 2px solid var(--foundation-blue); outline-offset: 3px; }
.contact-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
@media (max-width: 900px) { .contact-layout { gap: 36px; grid-template-columns: minmax(0, 1fr); } .contact-context { max-width: 620px; } .contact-community { margin-top: 24px; } }
@media (max-width: 600px) { .contact-section { padding-bottom: 64px; } .contact-panel { padding: 24px 16px; } .contact-fields-pair { grid-template-columns: minmax(0, 1fr); gap: 0; } }
