.flight-information-page,
.flight-information-page * {
  box-sizing: border-box;
}

body:has(.flight-information-page) header[role="banner"],
body:has(.flight-information-page) #block-custom-home-page-title {
  display: none;
}

.flight-information-page {
  --flight-ink: #142a3f;
  --flight-muted: #566574;
  --flight-line: #d5d7d1;
  min-height: 100vh;
  color: #f4efe6;
  background:
    radial-gradient(ellipse at 12% 26%, rgba(64, 117, 145, 0.22), transparent 44%),
    radial-gradient(ellipse at 70% 100%, rgba(41, 99, 109, 0.15), transparent 48%),
    #081725;
}

.flight-information-shell {
  width: min(1200px, calc(100% - 5rem));
  margin: 0 auto;
}

.flight-information-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  min-height: 110px;
  margin-bottom: 1.5rem;
  border-bottom: 1px solid rgba(239, 232, 218, 0.12);
}

.flight-back-link {
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  min-height: 44px;
  color: #e9e5dc;
  font-size: 0.88rem;
  font-weight: 700;
  text-decoration: none;
}

.flight-back-link svg,
.flight-covered-badge svg,
.flight-transfer-note a svg {
  flex: 0 0 auto;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.flight-back-link svg {
  width: 21px;
  height: 21px;
}

.flight-back-link:hover {
  color: #ffcf90;
}

.flight-nav-signature {
  color: #b3c0c6;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.04em;
}

.flight-nav-signature span {
  margin: 0 0.55rem;
  color: #617d8d;
}

.flight-information-layout {
  display: grid;
  grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
  align-items: start;
  gap: clamp(2rem, 5vw, 5rem);
  padding-top: 2.75rem;
}

.flight-information-intro {
  position: sticky;
  top: 2.75rem;
  padding-top: 0.65rem;
}

.flight-information-eyebrow,
.flight-form-eyebrow {
  margin: 0 0 1.35rem;
  font-size: 0.73rem;
  font-weight: 800;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.flight-information-eyebrow {
  color: #b4d0d8;
}

.flight-information-intro h1 {
  margin: 0;
  color: #f4efe6;
  font-family: var(--font-display);
  font-size: clamp(3rem, 5.3vw, 4.8rem);
  font-weight: 500;
  line-height: 1.03;
  letter-spacing: -0.065em;
}

.flight-information-intro h1 > span {
  color: #ffcf90;
}

.flight-information-lede {
  margin: 1.65rem 0 0;
  color: #e2e9eb;
  font-size: clamp(1.08rem, 1.55vw, 1.28rem);
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: -0.02em;
}

.flight-information-description {
  max-width: 35ch;
  margin: 1rem 0 0;
  color: #b1c1cb;
  font-size: 0.94rem;
  line-height: 1.8;
}

.flight-transfer-note {
  margin-top: 2.6rem;
  padding: 1.4rem 0 0;
  border-top: 1px solid rgba(239, 232, 218, 0.18);
}

.flight-covered-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  color: #ffcf90;
  font-size: 0.88rem;
  font-weight: 800;
}

.flight-covered-badge svg {
  width: 21px;
  height: 21px;
}

.flight-transfer-note p {
  margin: 0.85rem 0 0;
  color: #ced8dc;
  font-size: 0.88rem;
  line-height: 1.8;
}

.flight-transfer-note a {
  color: #f4efe6;
  font-weight: 700;
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
}

.flight-transfer-note a svg {
  display: inline-block;
  width: 0.85rem;
  height: 0.85rem;
  margin-left: 0.16rem;
  vertical-align: -0.1em;
}

.flight-transfer-note .flight-upgrade-note {
  color: #aebfc9;
  font-size: 0.83rem;
}

.flight-route-art {
  max-width: 320px;
  margin-top: 2.6rem;
}

.flight-route-line {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.flight-route-endpoint {
  width: 10px;
  height: 10px;
  border: 2px solid #85b5c4;
  border-radius: 50%;
}

.flight-route-dashes {
  flex: 1;
  border-top: 1px dashed #456578;
}

.flight-route-plane {
  width: 28px;
  height: 28px;
  fill: #9fc1cc;
  transform: rotate(90deg);
}

.flight-route-sun {
  width: 30px;
  height: 30px;
  fill: none;
  stroke: #e8c494;
  stroke-width: 1.4;
  stroke-linecap: round;
}

.flight-route-labels {
  display: flex;
  justify-content: space-between;
  margin-top: 0.8rem;
  color: #8eaab9;
  font-size: 0.67rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.flight-information-form-card {
  min-width: 0;
  padding: clamp(1.5rem, 3.5vw, 3rem);
  border: 1px solid #e8e5dc;
  border-radius: 1.35rem;
  color: var(--flight-ink);
  background: #f6f3eb;
  box-shadow: 0 24px 65px rgba(0, 6, 15, 0.18);
}

.flight-form-eyebrow {
  margin-bottom: 0.6rem;
  color: #587b7b;
  font-size: 0.66rem;
}

.flight-form-heading h2 {
  margin: 0;
  color: var(--flight-ink);
  font-family: var(--font-display);
  font-size: clamp(1.85rem, 2.8vw, 2.25rem);
  font-weight: 500;
  letter-spacing: -0.05em;
  line-height: 1.15;
}

.flight-form-heading > p:not(.flight-form-eyebrow) {
  margin: 0.9rem 0 0;
  color: var(--flight-muted);
  font-size: 0.84rem;
  line-height: 1.7;
}

.flight-form-heading > p.flight-required-note {
  margin-top: 1rem;
  font-size: 0.72rem;
}

.flight-required-note > span[aria-hidden] {
  color: #9e3a2a;
  font-size: 0.9rem;
  font-weight: 800;
}

.flight-information-form {
  margin-top: 2rem;
  counter-reset: flight-section;
}

.flight-information-form form,
.flight-information-form .form-item,
.flight-information-form .js-form-wrapper {
  margin: 0;
}

.flight-information-form fieldset {
  min-width: 0;
}

.flight-information-form .flight-form-section {
  position: relative;
  margin: 0 0 2rem;
  padding: 0 0 2rem;
  border: 0;
  border-bottom: 1px solid var(--flight-line);
  counter-increment: flight-section;
}

.flight-information-form .flight-form-section > legend {
  width: 100%;
  margin: 0 0 1.2rem;
  padding: 0;
  color: var(--flight-ink);
  font-family: var(--font-display);
  font-size: 1.1rem;
  font-weight: 600;
  letter-spacing: -0.025em;
}

.flight-information-form .flight-form-section > legend::before {
  content: counter(flight-section, decimal-leading-zero);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.7rem;
  height: 1.7rem;
  margin-right: 0.65rem;
  border: 1px solid #b7c9c4;
  border-radius: 50%;
  color: #3d645f;
  font-family: var(--font-body);
  font-size: 0.63rem;
  font-weight: 800;
  letter-spacing: 0;
  vertical-align: 0.1rem;
}

.flight-information-form .flight-form-section > .fieldset-wrapper {
  display: grid;
  gap: 1.05rem;
}

.flight-information-form .flight-field-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.flight-information-form .flight-field-grid > * {
  min-width: 0;
}

.flight-information-form label,
.flight-information-form fieldset:not(.flight-form-section) > legend {
  display: block;
  margin: 0 0 0.5rem;
  padding: 0;
  color: var(--flight-ink);
  font-size: 0.8rem;
  font-weight: 800;
  line-height: 1.5;
}

.flight-information-form label.form-required::after,
.flight-information-form legend .form-required::after,
.flight-information-form legend.form-required::after {
  content: '*';
  display: inline;
  width: auto;
  height: auto;
  margin: 0 0 0 0.22em;
  color: #9e3a2a;
  background: none;
  font-size: 0.95em;
  font-weight: 800;
  vertical-align: baseline;
}

.flight-information-form input:not([type="hidden"], [type="radio"], [type="checkbox"], [type="submit"]),
.flight-information-form select,
.flight-information-form textarea {
  display: block;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  min-height: 50px;
  margin: 0;
  padding: 0.78rem 0.85rem;
  border: 1px solid #b8c1c4;
  border-radius: 0.55rem;
  color: var(--flight-ink);
  background-color: #fffefa;
  font-family: var(--font-body);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.4;
  color-scheme: light;
  transition: border-color 150ms ease, box-shadow 150ms ease;
}

/* Stretch within a grid instead of using the padded 100% width that iOS
   miscalculates for native date and time controls (WebKit bug 301648). */
.flight-information-form .form-type-date,
.flight-information-form .form-type-webform-time {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-content: start;
}

.flight-information-form input[type="date"],
.flight-information-form input[type="time"] {
  width: auto;
  justify-self: stretch;
  -webkit-appearance: none;
  appearance: none;
}

.flight-information-form input::-webkit-date-and-time-value {
  min-width: 0;
  text-align: left;
}

.flight-information-form input::placeholder,
.flight-information-form textarea::placeholder {
  color: #667580;
  opacity: 1;
  font-weight: 400;
}

.flight-information-form textarea {
  min-height: 105px;
  resize: vertical;
}

.flight-information-form select {
  padding-right: 2rem;
}

.flight-information-page a:focus-visible,
.flight-information-form input:focus-visible,
.flight-information-form select:focus-visible,
.flight-information-form textarea:focus-visible,
.flight-information-form button:focus-visible {
  outline: 3px solid #347c8c;
  outline-offset: 3px;
}

.flight-information-page a:focus-visible {
  outline-color: #ffcf90;
}

.flight-information-form input:not([type="radio"]):not([type="checkbox"]):focus,
.flight-information-form select:focus,
.flight-information-form textarea:focus {
  border-color: #356e73;
  box-shadow: 0 0 0 2px rgba(53, 110, 115, 0.12);
}

.flight-information-form .description,
.flight-information-form .webform-element-description,
.flight-information-form .fieldset-description {
  margin: 0.4rem 0 0;
  color: var(--flight-muted);
  font-size: 0.74rem;
  line-height: 1.65;
}

.flight-information-form .description p,
.flight-information-form .webform-element-description p {
  margin: 0;
}

.flight-information-form .flight-form-section > .fieldset-wrapper > .description,
.flight-information-form .flight-form-section > .fieldset-wrapper > .fieldset-description {
  order: -1;
  margin-top: -0.35rem;
}

.flight-information-form fieldset:not(.flight-form-section) {
  margin: 0;
  padding: 0;
  border: 0;
}

.flight-information-form .form-radios,
.flight-information-form .js-webform-radios {
  display: grid;
  gap: 0.65rem;
}

.flight-information-form .form-type-radio {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  margin: 0;
}

.flight-information-form .form-type-radio input[type="radio"] {
  /* Share only the label's row; help text must not affect centering. */
  grid-area: 1 / 1;
  align-self: center;
  justify-self: start;
  z-index: 1;
  width: 19px;
  height: 19px;
  margin: 0 0 0 1rem;
  accent-color: #225c5c;
  cursor: pointer;
}

.flight-information-form .form-type-radio label.option {
  grid-area: 1 / 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 64px;
  margin: 0;
  padding: 0.9rem 1rem 0.9rem 2.95rem;
  border: 1px solid #bdc7c4;
  border-radius: 0.65rem;
  color: var(--flight-ink);
  background: #fffefa;
  font-size: 0.84rem;
  font-weight: 700;
  cursor: pointer;
  transition: background-color 150ms ease, border-color 150ms ease;
}

.flight-information-form .form-type-radio:hover label.option {
  border-color: #6d9390;
}

.flight-information-form .form-type-radio:has(input:checked) label.option {
  border-color: #3f7973;
  background: #e6ede5;
  box-shadow: inset 0 0 0 1px #3f7973;
}

.flight-information-form .form-type-radio:has(input:focus-visible) label.option {
  outline: 3px solid #347c8c;
  outline-offset: 3px;
}

.flight-information-form .form-type-radio input:focus-visible {
  outline: 0;
}

.flight-information-form .form-type-radio .description {
  grid-column: 1;
  padding: 0 0.3rem 0 2.95rem;
}

.flight-information-form .form-actions {
  margin: 1.6rem 0 0;
}

.flight-information-form .webform-button--submit,
.flight-information-form input[type="submit"] {
  width: 100%;
  min-height: 55px;
  margin: 0;
  padding: 0.95rem 1.25rem;
  border: 1px solid #15344b;
  border-radius: 0.6rem;
  color: #fff9eb;
  background: #15344b;
  font-family: var(--font-body);
  font-size: 0.94rem;
  font-weight: 800;
  line-height: 1.4;
  cursor: pointer;
  transition: background-color 150ms ease;
}

.flight-information-form input[type="submit"]:hover {
  background: #244b61;
}

.flight-information-form input[type="submit"]:disabled {
  opacity: 0.6;
  cursor: wait;
}

.flight-information-form .form-item--error-message,
.flight-information-form .form-item--error .description {
  margin-top: 0.5rem;
  color: #9d302b;
  font-size: 0.8rem;
  line-height: 1.5;
}

.flight-information-form input.error,
.flight-information-form select.error,
.flight-information-form textarea.error {
  border-color: #b34034 !important;
  box-shadow: 0 0 0 1px #b34034;
}

.flight-information-page .messages,
.flight-information-form .webform-confirmation {
  margin: 0 0 1.5rem;
  padding: 1.1rem 1.2rem;
  border: 1px solid #9ebca9;
  border-radius: 0.6rem;
  color: #204936;
  background: #e5eee4;
  font-size: 0.9rem;
  line-height: 1.7;
  box-shadow: none;
}

.flight-information-page .messages--error {
  border-color: #d5a698;
  color: #832c24;
  background: #fae9e2;
}

.flight-information-form .webform-confirmation__message {
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  color: inherit;
  background: none;
  font-size: inherit;
  box-shadow: none;
}

.flight-information-form .webform-confirmation__message h2,
.flight-information-form .webform-confirmation__message h3 {
  color: inherit;
  font-family: var(--font-display);
  line-height: 1.3;
}

.flight-information-form .webform-confirmation a {
  font-weight: 800;
  text-underline-offset: 3px;
}

.flight-information-footer {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  margin-top: 4rem;
  padding: 1.75rem 0 2rem;
  border-top: 1px solid rgba(239, 232, 218, 0.12);
  color: #97adb9;
  font-size: 0.74rem;
}

.flight-information-footer > span {
  color: #c5d0d4;
  font-family: var(--font-display);
}

.flight-information-footer p {
  margin: 0;
}

@media (max-width: 1000px) {
  .flight-information-shell {
    width: calc(100% - 3rem);
  }

  .flight-information-layout {
    gap: 2rem;
    grid-template-columns: minmax(0, 0.78fr) minmax(0, 1.22fr);
  }

  .flight-information-form-card {
    padding: 1.75rem;
  }
}

@media (max-width: 780px) {
  .flight-information-shell {
    width: min(620px, calc(100% - 2.5rem));
  }

  .flight-information-nav {
    min-height: 76px;
    margin-bottom: 0;
  }

  .flight-nav-signature {
    display: none;
  }

  .flight-information-layout {
    grid-template-columns: minmax(0, 1fr);
    gap: 2rem;
    padding-top: 2.2rem;
  }

  .flight-information-intro {
    position: static;
    padding-top: 0;
  }

  .flight-information-eyebrow {
    margin-bottom: 1rem;
    font-size: 0.68rem;
  }

  .flight-information-intro h1 {
    font-size: clamp(2.9rem, 10vw, 4.5rem);
  }

  .flight-information-lede {
    margin-top: 1rem;
    font-size: 1.03rem;
  }

  .flight-information-lede br {
    display: none;
  }

  .flight-information-description {
    display: none;
  }

  .flight-transfer-note {
    margin-top: 1.4rem;
    padding-top: 1.1rem;
  }

  .flight-transfer-note p {
    margin-top: 0.65rem;
    font-size: 0.81rem;
  }

  .flight-transfer-note .flight-upgrade-note {
    font-size: 0.79rem;
  }

  .flight-route-art {
    display: none;
  }

  .flight-information-form-card {
    padding: 1.65rem;
    border-radius: 1rem;
  }

  .flight-information-footer {
    margin-top: 2.5rem;
  }
}

@media (max-width: 430px) {
  .flight-information-shell {
    width: calc(100% - 2rem);
  }

  .flight-information-form-card {
    padding: 1.25rem;
  }

  .flight-form-heading h2 {
    font-size: 1.85rem;
  }

  .flight-information-form .flight-field-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 1.05rem;
  }

  .flight-information-footer {
    flex-direction: column;
    gap: 0.5rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .flight-information-page * {
    transition: none !important;
  }
}
