.request-section { background: var(--cream); }
.request-layout { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 48px; align-items: start; }
.request-panel { background: var(--white); border: 1px solid var(--line); border-top: 4px solid var(--gold); padding: 36px; }
.request-panel h2 { font-size: 2.6rem; }
.request-panel label { display: block; color: var(--navy); font-weight: 600; margin-bottom: 7px; }
.request-panel label span { font-size: .8rem; font-weight: 400; }
.request-panel input, .request-panel textarea, .request-panel select { width: 100%; min-height: 48px; border: 1px solid #737373; border-radius: 3px; background: #fff; color: var(--ink); font: inherit; font-size: 1rem; padding: 12px; }
.request-panel textarea { resize: vertical; min-height: 140px; }
.request-panel :is(input,textarea,select,button):focus-visible { outline: 3px solid var(--oxblood); outline-offset: 3px; }
.request-field { margin-bottom: 24px; }
.request-help { font-size: .85rem; color: var(--muted); margin: 8px 0 0; }
.field-error { color: var(--oxblood); font-size: .85rem; margin: 6px 0 0; }
.field-error:empty { display: none; }
.request-panel [aria-invalid="true"] { border: 2px solid var(--oxblood); }
.request-notice, .request-feedback { padding: 20px; margin-bottom: 24px; border-left: 4px solid var(--oxblood); background: var(--cream); }
.request-notice p:last-child { margin-bottom: 0; }
.request-feedback a, .request-aside a { text-decoration: underline; text-underline-offset: 4px; }
.request-feedback[hidden], #project-request[hidden] { display: none; }
.request-aside { padding-top: 24px; }
.request-aside h3 { font-size: 1.8rem; }
.request-aside ol { padding-left: 22px; }
.request-aside li { margin-bottom: 18px; }
.request-aside .contact-options { border-top: 1px solid var(--gold); margin-top: 30px; padding-top: 24px; overflow-wrap: anywhere; }
.request-panel button { cursor: pointer; font: inherit; font-weight: 600; }
.request-panel button:disabled { cursor: wait; opacity: .7; }
@media (max-width: 760px) {
  .request-layout { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .request-panel { padding: 24px 18px; }
  .request-panel h2 { font-size: 2.1rem; }
}
