/* A single, compact contact form with the site's magenta accent. */
#request-dialog {
  width: min(540px, calc(100% - 28px));
  max-height: calc(100dvh - 32px);
  padding: 34px;
  border: 1px solid #ead5e1;
  border-radius: 14px;
  background: white;
  overflow-y: auto;
  overscroll-behavior: contain;
}
#request-dialog .dialog-close { top: 9px; right: 9px; border-radius: 50%; font-size: 1.75rem; line-height: 1; }
#request-dialog .dialog-close:hover { background: var(--blush); }
.request-preview { color: var(--muted); font-size: .75rem; line-height: 1.5; margin: 0 30px 14px 0; }
#request-dialog h2 { font-family: var(--sans); font-size: 1.9rem; font-weight: 700; line-height: 1.15; letter-spacing: -.9px; margin: 0 0 12px; }
.request-intro { color: var(--muted); font-size: .9375rem; line-height: 1.55; margin: 0 0 22px; }
#request-dialog .request-form { margin: 0; }
#request-dialog .field { gap: 6px; margin-bottom: 15px; }
#request-dialog .field label { font-size: .875rem; line-height: 1.4; font-weight: 600; }
.optional-label { font-weight: 400; color: var(--muted); margin-left: 3px; }
.required-mark { color: var(--accent); }
#request-dialog .field input { background: white; min-height: 48px; padding: 11px 12px; border: 1px solid #d8cad3; border-radius: 6px; font-size: 1rem; }
#request-dialog .field input::placeholder { color: #857781; }
#request-dialog .field input[aria-invalid=true] { border-color: #a32348; }
#request-dialog .check-label { font-size: .8125rem; line-height: 1.5; margin: 20px 0; gap: 10px; }
#request-dialog .check-label input { accent-color: var(--accent); width: 18px; height: 18px; }
#request-dialog .request-submit { width: 100%; min-height: 50px; border-radius: 7px; padding: 13px 18px; gap: 22px; font-size: .9375rem; }
.request-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 22px; margin-top: 18px; }
.request-links a, .request-links .inline-button { color: var(--muted); font-size: .8125rem; font-weight: 400; text-decoration: underline; text-underline-offset: 3px; }
.request-links a:hover, .request-links .inline-button:hover { color: var(--accent); }
.request-return { display: block; margin: 20px auto 0; text-align: center; }
.request-trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.request-storage-note { margin: 13px 0 0; font-size: .75rem; line-height: 1.5; color: var(--muted); }
.request-free-label { font-size: .75rem; letter-spacing: .6px; color: var(--accent); font-weight: 700; margin: 0 0 12px; }
#request-dialog h2 { font-size: 2rem; line-height: 1.12; }
#request-dialog .request-intro { font-size: 1rem; }
#request-dialog .request-routes { margin: 0 0 12px; }
#request-dialog .request-routes legend { font-size: .875rem; margin-bottom: 9px; }
.route-options { display: grid; grid-template-columns: .8fr 1.25fr .8fr; gap: 7px; }
.route-option { border: 1px solid #d8cad3; border-radius: 7px; padding: 10px 9px; display: flex; align-items: center; justify-content: center; gap: 7px; cursor: pointer; min-height: 49px; font-size: .875rem; line-height: 1.3; }
.route-option:has(input:checked) { border-color: var(--accent); color: var(--accent-dark); background: var(--blush); box-shadow: inset 0 0 0 1px var(--accent); }
.route-option input { margin: 0; accent-color: var(--accent); width: 15px; height: 15px; flex-shrink: 0; }
.route-note { font-size: .875rem; line-height: 1.55; color: var(--muted); margin: 0 0 19px; }
#request-dialog .check-label { font-size: .875rem; margin: 17px 0; }
#request-dialog .request-links a, #request-dialog .request-links button { font-size: .875rem; }
@media (max-width: 380px) { .route-option { flex-direction: column; padding: 9px 4px; text-align: center; } }
.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: 560px) {
  #request-dialog { width: calc(100% - 24px); padding: 29px 23px 23px; max-height: calc(100dvh - 24px); }
  #request-dialog h2 { font-size: 1.7rem; letter-spacing: -.6px; }
  .request-intro { font-size: .875rem; margin-bottom: 20px; }
}
