/* Horizontal home reservation wizard.
   The standalone /booking experience keeps its existing full funnel layout. */

@media (min-width: 901px) {
  body.home-page .home-hero__wizard {
    width: 100%;
    max-width: none;
    margin: 0;
  }

  body.home-page .home-hero__wizard #booking.acw .acw-main {
    width: 100%;
  }

  body.home-page .home-hero__wizard #booking.acw .acw-body {
    padding: 12px 14px 14px;
  }

  body.home-page .home-hero__wizard #booking.acw .acw-route {
    display: grid;
    grid-template-columns: minmax(0, 1.65fr) minmax(218px, .72fr);
    gap: 12px 14px;
    align-items: start;
  }

  body.home-page .home-hero__wizard #booking.acw .ac-route-group--journey {
    grid-column: 1;
    min-width: 0;
  }

  body.home-page .home-hero__wizard #booking.acw .ac-route-group--schedule {
    grid-column: 2;
    grid-row: 1;
    min-width: 0;
    padding: 0 0 0 14px;
    border-top: 0;
    border-left: 1px solid var(--wizard-line, #c9d8da);
    border-radius: 0;
    background: transparent;
  }

  body.home-page .home-hero__wizard #booking.acw .ac-route-group__heading,
  body.home-page .home-hero__wizard #booking.acw .ac-schedule-heading {
    min-height: 25px;
    margin: 0 0 8px;
    padding: 0 0 7px;
    border-bottom: 1px solid var(--wizard-line, #c9d8da);
  }

  body.home-page .home-hero__wizard #booking.acw .ac-route-group__heading > div,
  body.home-page .home-hero__wizard #booking.acw .ac-schedule-heading > div {
    display: flex;
    align-items: baseline;
    gap: 7px;
  }

  body.home-page .home-hero__wizard #booking.acw .ac-route-group__eyebrow,
  body.home-page .home-hero__wizard #booking.acw .ac-route-group__heading p,
  body.home-page .home-hero__wizard #booking.acw .ac-schedule-heading p {
    display: none;
  }

  body.home-page .home-hero__wizard #booking.acw .ac-route-group__heading h4,
  body.home-page .home-hero__wizard #booking.acw .ac-schedule-heading h4 {
    margin: 0;
    font-size: 14px;
    line-height: 1.2;
    white-space: nowrap;
  }

  body.home-page .home-hero__wizard #booking.acw .ac-route-group__grid--journey,
  body.home-page .home-hero__wizard #booking.acw .ac-route-row,
  body.home-page .home-hero__wizard #booking.acw .ac-route-primary-left,
  body.home-page .home-hero__wizard #booking.acw .ac-route-group__grid--schedule,
  body.home-page .home-hero__wizard #booking.acw .ac-booking-card--return .wgrid--nested {
    gap: 8px;
  }

  body.home-page .home-hero__wizard #booking.acw .ac-route-row--primary {
    --ac-primary-control-height: 42px;
    grid-template-columns: minmax(0, 1.28fr) minmax(150px, .72fr);
    align-items: end;
  }

  body.home-page .home-hero__wizard #booking.acw .ac-route-primary-left {
    grid-template-columns: 118px minmax(0, 1fr);
  }

  body.home-page .home-hero__wizard #booking.acw .ac-route-row--destination {
    grid-template-columns: minmax(155px, .8fr) minmax(0, 1.2fr);
    gap: 8px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
  }

  body.home-page .home-hero__wizard #booking.acw .ac-route-row__title {
    display: none;
  }

  body.home-page .home-hero__wizard #booking.acw .ac-route-group__grid--schedule,
  body.home-page .home-hero__wizard #booking.acw .ac-booking-card--return .wgrid--nested {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.home-page .home-hero__wizard #booking.acw .field {
    gap: 4px;
  }

  body.home-page .home-hero__wizard #booking.acw .field > label,
  body.home-page .home-hero__wizard #booking.acw .datetime-control > label {
    min-height: 14px;
    font-size: 10px;
    line-height: 1.2;
  }

  body.home-page .home-hero__wizard #booking.acw .field :where(input:not([type="radio"]):not([type="checkbox"]), select),
  body.home-page .home-hero__wizard #booking.acw .datetime-display,
  body.home-page .home-hero__wizard #booking.acw .qty-stepper,
  body.home-page .home-hero__wizard #booking.acw .toggle {
    min-height: 42px;
  }

  body.home-page .home-hero__wizard #booking.acw .airport-disclosure > summary {
    min-height: 42px;
    padding: 5px 8px;
  }

  body.home-page .home-hero__wizard #booking.acw #hotel_search {
    min-height: 42px;
  }

  body.home-page .home-hero__wizard #booking.acw .acw-route > .wactions {
    grid-column: 1 / -1;
    grid-row: 2;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 14px;
    margin: 0;
    padding: 9px 10px 9px 13px;
    border: 1px solid #c9d8da;
    border-radius: 7px;
    background: #eef7f7;
  }

  body.home-page .home-hero__wizard #booking.acw .acw-route > .wactions > span small {
    color: var(--wizard-teal-dark, #427f89);
  }

  body.home-page .home-hero__wizard #booking.acw .acw-route > .wactions > span strong {
    color: var(--wizard-ink, #223249);
    font-family: var(--sans);
    font-size: 12px;
    font-weight: 700;
  }

  body.home-page .home-hero__wizard #booking.acw .ac-route-cta__assurance {
    color: #65727a;
  }

  body.home-page .home-hero__wizard #booking.acw .ac-transfer-search {
    min-width: 220px;
    min-height: 44px;
  }

  /* Vehicle choices use the available width instead of becoming a tall list. */
  body.home-page .home-hero__wizard #booking.acw .acw-panel[data-step="2"] > .wtitle,
  body.home-page .home-hero__wizard #booking.acw .acw-panel[data-step="3"] > .wtitle {
    font-size: 27px;
    line-height: 1.08;
  }

  body.home-page .home-hero__wizard #booking.acw .acw-panel[data-step="2"] > .wsub,
  body.home-page .home-hero__wizard #booking.acw .acw-panel[data-step="3"] > .wsub {
    margin: 5px 0 13px;
    font-size: 11px;
  }

  body.home-page .home-hero__wizard #booking.acw .veh-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 9px;
  }

  body.home-page .home-hero__wizard #booking.acw .veh-group,
  body.home-page .home-hero__wizard #booking.acw .veh-group__list {
    display: contents;
  }

  body.home-page .home-hero__wizard #booking.acw .veh-group__title {
    display: none !important;
  }

  body.home-page .home-hero__wizard #booking.acw .veh {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    min-height: 0;
  }

  body.home-page .home-hero__wizard #booking.acw .veh__media {
    min-height: 104px;
    aspect-ratio: 16 / 8;
  }

  body.home-page .home-hero__wizard #booking.acw .veh__body {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    min-height: 94px;
    padding: 9px 10px;
  }

  body.home-page .home-hero__wizard #booking.acw .veh__name {
    font-size: 16px;
  }

  body.home-page .home-hero__wizard #booking.acw .veh__meta {
    grid-column: 1 / -1;
    font-size: 8.5px;
  }

  body.home-page .home-hero__wizard #booking.acw .veh__hint {
    width: auto;
    min-width: 0;
    grid-column: 2;
    grid-row: 1;
    align-self: center;
    margin: 0;
    padding: 0 0 0 8px;
    border: 0;
    font-size: 14px;
    text-align: right;
  }

  body.home-page .home-hero__wizard #booking.acw .wactions--conversion,
  body.home-page .home-hero__wizard #booking.acw .cta--conversion {
    margin-top: 14px;
  }

  /* Contact fields also read left-to-right on desktop. */
  body.home-page .home-hero__wizard #booking.acw .contact-details {
    grid-template-columns: minmax(190px, .62fr) minmax(0, 1.38fr);
    gap: 12px 16px;
    align-items: end;
  }

  body.home-page .home-hero__wizard #booking.acw .contact-details__group + .contact-details__group {
    padding-top: 0;
    border-top: 0;
  }

  body.home-page .home-hero__wizard #booking.acw .contact-details__heading {
    display: block;
  }

  body.home-page .home-hero__wizard #booking.acw .contact-details__heading p {
    display: none;
  }

  body.home-page .home-hero__wizard #booking.acw .contact-methods {
    gap: 10px;
  }

  body.home-page .home-hero__wizard #booking.acw .booking-notes {
    grid-column: 1 / -1;
  }
}

@media (min-width: 1101px) {
  body.home-page .home-hero__content {
    width: min(1380px, calc(100% - 40px));
    grid-template-columns: minmax(320px, .43fr) minmax(0, 1fr);
    gap: 28px;
  }

  body.home-page .hero-copy {
    width: 100%;
    max-width: 430px;
    min-height: 400px;
    margin: 0;
    padding: 31px;
  }

  body.home-page .home-hero .hero-copy h1 {
    font-size: clamp(38px, 3.25vw, 48px);
  }
}

@media (min-width: 901px) and (max-width: 1100px) {
  body.home-page .home-hero__image,
  body.home-page .home-hero__overlay {
    height: 440px;
  }

  body.home-page .home-hero__content {
    width: min(940px, calc(100% - 36px));
    min-height: 0;
    padding-block: 26px 38px;
    grid-template-columns: minmax(0, 1fr);
    gap: 24px;
  }

  body.home-page .hero-copy {
    width: min(610px, 100%);
    max-width: none;
    min-height: 330px;
    margin: 0;
    padding: 30px 34px;
  }
}
