.home-page .home-hero .btn-request-open {
  color: #eaf5fb;
  border: 1px solid rgba(122, 191, 220, .42);
  background: rgba(8, 22, 37, .48);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .06);
}

html.request-dialog-open {
  overflow: hidden;
}

.home-page .home-hero .btn-request-open:hover,
.home-page .home-hero .btn-request-open:focus-visible {
  color: #fff;
  border-color: rgba(103, 211, 247, .78);
  background: rgba(28, 94, 131, .42);
}

.home-page .home-hero .btn-request-open:focus-visible,
.request-dialog :focus-visible,
.request-section :focus-visible {
  outline: 2px solid #72d5f7;
  outline-offset: 3px;
}

.request-dialog {
  position: fixed;
  inset: 0;
  width: min(720px, calc(100% - 32px));
  max-width: none;
  max-height: min(850px, calc(100vh - 32px));
  max-height: min(850px, calc(100dvh - 32px));
  margin: auto;
  padding: 0;
  overflow: auto;
  color: #edf5fa;
  border: 1px solid rgba(119, 197, 231, .36);
  border-radius: 8px;
  background: #0a1725;
  box-shadow: 0 30px 90px rgba(0, 0, 0, .45), inset 0 1px 0 rgba(226, 244, 252, .08);
}

.request-dialog::backdrop {
  background: rgba(2, 8, 15, .76);
  -webkit-backdrop-filter: blur(5px);
  backdrop-filter: blur(5px);
}

.request-dialog[open] { animation: request-dialog-in 220ms ease-out both; }

@keyframes request-dialog-in {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

.request-dialog-panel {
  position: relative;
  padding: clamp(24px, 4vw, 38px);
  background:
    radial-gradient(ellipse at 100% 0, rgba(48, 137, 181, .14), transparent 42%),
    linear-gradient(145deg, rgba(13, 31, 49, .98), rgba(7, 17, 29, .98));
}

.request-dialog-close {
  position: absolute;
  top: 18px;
  right: 18px;
  display: grid;
  width: 40px;
  height: 40px;
  place-items: center;
  color: #d7e7f0;
  border: 1px solid rgba(150, 189, 209, .24);
  border-radius: 4px;
  background: rgba(255, 255, 255, .025);
  font-size: 25px;
  line-height: 1;
  cursor: pointer;
}

.request-dialog-close:hover { border-color: rgba(111, 208, 241, .65); color: #fff; }
.request-dialog-close:disabled { opacity: .5; cursor: wait; }

.request-eyebrow {
  margin: 0 52px 12px 0;
  color: #70c8e7;
  font-family: var(--font-mono, monospace);
  font-size: 11px;
  line-height: 1.5;
  letter-spacing: .08em;
}

.request-dialog h2,
.request-section-heading h2 {
  margin: 0 48px 10px 0;
  color: #f4f8fa;
  font-size: clamp(26px, 3.3vw, 38px);
  line-height: 1.12;
}

.request-intro {
  max-width: 560px;
  margin: 0 0 24px;
  color: #b4c4d0;
  font-size: 15px;
  line-height: 1.65;
}

.request-form { min-width: 0; width: 100%; }

.request-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px 20px;
}

.request-field {
  display: grid;
  min-width: 0;
  gap: 9px;
  color: #d8e4eb;
  font-size: 14px;
  line-height: 1.5;
}

.request-field > span { display: block; font-weight: 600; }

.request-field-wide { grid-column: 1 / -1; }

.request-field input,
.request-field select,
.request-field textarea {
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  display: block;
  min-height: 52px;
  padding: 13px 14px;
  color: #f2f7fa;
  border: 1px solid rgba(145, 187, 208, .48);
  border-radius: 4px;
  background-color: rgba(4, 13, 23, .76);
  font: inherit;
  font-size: 16px;
  line-height: 1.5;
  transition: border-color 180ms ease, background-color 180ms ease, box-shadow 180ms ease;
}

.request-field select {
  color-scheme: dark;
  appearance: none;
  padding-right: 42px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='m1 1 5 5 5-5' fill='none' stroke='%239bd8ef' stroke-width='1.6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 15px center;
  background-size: 12px 8px;
}
.request-field option { color: #f2f7fa; background: #102334; }
.request-field textarea { min-height: 144px; resize: vertical; }
.request-field input::placeholder,
.request-field textarea::placeholder { color: #8297a6; opacity: 1; }

.request-field input:focus,
.request-field select:focus,
.request-field textarea:focus {
  border-color: rgba(104, 210, 244, .78);
  background-color: rgba(7, 24, 39, .96);
  box-shadow: 0 0 0 3px rgba(76, 176, 216, .12);
  outline: none;
}

.request-field input:disabled,
.request-field select:disabled,
.request-field textarea:disabled { opacity: .68; }

.request-form .request-honeypot,
.request-form .request-honeypot[hidden] {
  display: none !important;
}

.request-status {
  min-height: 28px;
  overflow-wrap: anywhere;
  margin: 15px 0 12px;
  color: #b7c9d4;
  font-size: 14px;
  line-height: 1.55;
}

.request-status[data-state] { padding: 13px 15px; border: 1px solid; border-radius: 5px; }
.request-status[data-state="success"] { color: #b9f1d6; background: #102d29; border-color: #39846b; }
.request-status[data-state="error"] { color: #ffd1cc; background: #341e25; border-color: #a76468; }
.request-status[data-state="pending"] { color: #b8e9fa; background: #102c40; border-color: #3e7c99; }
.request-form:has(.request-status[data-state="error"]) .request-field :invalid,
.request-field :is(input, select, textarea):user-invalid { border-color: #e69a92; }
.request-field :is(input, select, textarea):user-invalid:focus { box-shadow: 0 0 0 3px rgba(230, 154, 146, .18); }

.request-submit {
  display: inline-flex;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  gap: 16px;
}

.request-submit:disabled { opacity: .82; cursor: wait; }
.request-form[data-submitting="true"] .request-submit::after { content: ""; width: 16px; height: 16px; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: request-spin 800ms linear infinite; }
@keyframes request-spin { to { transform: rotate(360deg); } }

.request-section {
  position: relative;
  padding: clamp(54px, 7vw, 92px) 0;
  color: #edf5fa;
  background:
    radial-gradient(ellipse at 82% 18%, rgba(43, 112, 151, .13), transparent 38%),
    #091522;
}

.request-section::before {
  position: absolute;
  top: 0;
  left: max(24px, calc((100vw - 1200px) / 2));
  width: min(210px, 28vw);
  height: 1px;
  content: '';
  background: linear-gradient(90deg, rgba(99, 205, 240, .75), transparent);
}

.request-section-inner {
  display: grid;
  grid-template-columns: minmax(220px, .72fr) minmax(0, 1.28fr);
  align-items: start;
  gap: clamp(28px, 6vw, 84px);
}

.request-section-heading { position: sticky; top: 110px; }
.request-section-heading h2 { margin-right: 0; }
.request-section-heading .request-intro { margin-bottom: 0; }

.request-form-page {
  padding: clamp(18px, 3vw, 30px);
  border: 1px solid rgba(117, 187, 217, .2);
  border-radius: 6px;
  background: rgba(5, 15, 26, .58);
  box-shadow: inset 0 1px 0 rgba(227, 245, 252, .04);
}

@media (max-width: 767px) {
  .request-section-inner { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .request-section-heading { position: static; }
  .request-fields { grid-template-columns: minmax(0, 1fr); }
  .request-field-wide { grid-column: auto; }
}

@media (max-width: 520px) {
  .request-dialog { width: calc(100% - 20px); max-height: calc(100dvh - 20px); }
  .request-dialog-panel { padding: 24px 17px 20px; }
  .request-dialog-close { top: 12px; right: 12px; }
  .request-dialog h2 { font-size: 27px; }
  .request-intro { max-width: calc(100% - 4px); font-size: 14px; }
  .request-fields { grid-template-columns: minmax(0, 1fr); gap: 13px; }
  .request-field-wide { grid-column: auto; }
  .request-form-page { padding: 18px 14px; }
  .request-submit { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .request-dialog[open],
  .request-form[data-submitting="true"] .request-submit::after { animation: none; }
  .request-field input,
  .request-field select,
  .request-field textarea { transition: none; }
}
