@media (max-width: 767px) {
  body.page-booking-home .yz-booking-header,
  body.yz-booking-site.page-booking-home .yz-booking-header {
    display: block !important;
    width: 100% !important;
    height: 50px !important;
    min-height: 50px !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    background: #0b63b6 !important;
  }

  body.page-booking-home .yz-booking-header-inner,
  body.yz-booking-site.page-booking-home .yz-booking-header-inner {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    height: 50px !important;
    min-height: 50px !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
  }

  body.page-booking-home .yz-booking-brand-ref,
  body.yz-booking-site.page-booking-home .yz-booking-brand-ref {
    position: static !important;
    display: grid !important;
    place-items: center !important;
    width: auto !important;
    height: 50px !important;
    min-height: 50px !important;
    margin: 0 auto !important;
    padding: 0 !important;
    color: #fff !important;
    text-align: center !important;
  }

  body.page-booking-home .yz-booking-brand-ref strong,
  body.yz-booking-site.page-booking-home .yz-booking-brand-ref strong {
    display: block !important;
    margin: 0 !important;
    color: #fff !important;
    font-size: 18px !important;
    font-weight: 900 !important;
    line-height: 20px !important;
  }

  body.page-booking-home .yz-booking-brand-ref small,
  body.yz-booking-site.page-booking-home .yz-booking-brand-ref small {
    display: block !important;
    margin-top: 1px !important;
    color: rgba(255, 255, 255, .9) !important;
    font-size: 6px !important;
    font-weight: 800 !important;
    letter-spacing: .55px !important;
    line-height: 8px !important;
  }

  body.page-booking-home .yz-booking-hero,
  body.yz-booking-site.page-booking-home .yz-booking-hero {
    margin-top: 0 !important;
  }

  body.page-booking-home .yz-booking-search,
  body.yz-booking-site.page-booking-home .yz-booking-search {
    margin-top: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 8px !important;
  }

  body.page-booking-home .yz-booking-hero-banner,
  body.page-booking-home .yz-booking-hero-banner-ref,
  body.yz-booking-site.page-booking-home .yz-booking-hero-banner,
  body.yz-booking-site.page-booking-home .yz-booking-hero-banner-ref {
    height: 150px !important;
    min-height: 150px !important;
    max-height: 150px !important;
    overflow: hidden !important;
  }

  body.page-booking-home .yz-booking-hero-banner img,
  body.page-booking-home .yz-booking-hero-banner-ref img,
  body.yz-booking-site.page-booking-home .yz-booking-hero-banner img,
  body.yz-booking-site.page-booking-home .yz-booking-hero-banner-ref img {
    width: 100% !important;
    height: 150px !important;
    object-fit: cover !important;
  }

  body.page-booking-home .yz-booking-search-card,
  body.yz-booking-site.page-booking-home .yz-booking-search-card {
    min-height: 0 !important;
    height: 222px !important;
    width: calc(100% - 18px) !important;
    max-width: none !important;
    margin: 8px auto 0 !important;
    border-radius: 8px !important;
    box-shadow: 0 3px 12px rgba(20, 70, 125, .16) !important;
    overflow: hidden !important;
  }

  body.page-booking-home .yz-booking-tabs,
  body.yz-booking-site.page-booking-home .yz-booking-tabs {
    height: 40px !important;
  }

  body.page-booking-home .yz-home-search-grid,
  body.yz-booking-site.page-booking-home .yz-home-search-grid {
    width: 100% !important;
    height: 138px !important;
    padding-top: 8px !important;
    row-gap: 0 !important;
  }

  body.page-booking-home .booking-field-display,
  body.yz-booking-site.page-booking-home .booking-field-display {
    font-size: 20px !important;
    line-height: 32px !important;
  }

  body.page-booking-home .booking-date-display,
  body.yz-booking-site.page-booking-home .booking-date-display {
    position: relative !important;
    z-index: 2 !important;
    height: 34px !important;
  }

  body.page-booking-home .booking-field-date-hero,
  body.yz-booking-site.page-booking-home .booking-field-date-hero {
    margin-top: 13px !important;
    padding-top: 9px !important;
  }

  body.page-booking-home #bookingDate,
  body.yz-booking-site.page-booking-home #bookingDate {
    position: absolute !important;
    inset: 0 !important;
    z-index: 5 !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 100% !important;
    opacity: 0 !important;
    pointer-events: auto !important;
    cursor: pointer !important;
  }

  body.page-booking-home .booking-date-display strong,
  body.yz-booking-site.page-booking-home .booking-date-display strong {
    font-size: 18px !important;
    line-height: 22px !important;
  }

  body.page-booking-home .yz-booking-submit,
  body.yz-booking-site.page-booking-home .yz-booking-submit {
    height: 38px !important;
    margin-top: 7px !important;
    border-radius: 7px !important;
  }

  body.page-booking-home .yz-booking-routes,
  body.yz-booking-site.page-booking-home .yz-booking-routes {
    height: 28px !important;
    padding-top: 5px !important;
  }

  body.page-booking-home .yz-booking-announcement-bar,
  body.yz-booking-site.page-booking-home .yz-booking-announcement-bar {
    padding-top: 8px !important;
  }

  body.page-booking-home .yz-booking-mobile-icons,
  body.yz-booking-site.page-booking-home .yz-booking-mobile-icons {
    padding-top: 10px !important;
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
  }

  body.page-booking-home .yz-booking-mobile-icon-grid,
  body.yz-booking-site.page-booking-home .yz-booking-mobile-icon-grid {
    row-gap: 8px !important;
  }

  body.page-booking-home .yz-booking-mobile-icon-grid a span,
  body.yz-booking-site.page-booking-home .yz-booking-mobile-icon-grid a span {
    width: 40px !important;
    height: 40px !important;
    margin-bottom: 8px !important;
  }

  body.page-booking-home .yz-booking-mobile-nav,
  body.yz-booking-site.page-booking-home .yz-booking-mobile-nav {
    height: calc(58px + env(safe-area-inset-bottom, 0px)) !important;
    padding: 0 0 env(safe-area-inset-bottom, 0px) !important;
    border-top: 0 !important;
    background: #075ea5 !important;
    box-shadow: 0 -2px 8px rgba(0, 69, 139, .18) !important;
  }

  body.page-booking-home .yz-booking-mobile-nav a,
  body.yz-booking-site.page-booking-home .yz-booking-mobile-nav a {
    height: 58px !important;
    padding: 6px 0 5px !important;
    color: #fff !important;
  }

  body.page-booking-home .yz-booking-mobile-nav a::before,
  body.yz-booking-site.page-booking-home .yz-booking-mobile-nav a::before {
    height: 23px !important;
    color: #fff !important;
    font-size: 20px !important;
    line-height: 23px !important;
  }

  body.page-booking-home .yz-booking-mobile-nav a span,
  body.yz-booking-site.page-booking-home .yz-booking-mobile-nav a span,
  body.page-booking-home .yz-booking-mobile-nav a.is-active span,
  body.yz-booking-site.page-booking-home .yz-booking-mobile-nav a.is-active span {
    color: #fff !important;
    font-size: 10px !important;
    font-weight: 700 !important;
  }

  .page-booking-home .yz-booking-pk-float {
    right: 8px !important;
    bottom: 128px !important;
    width: 40px !important;
    height: 40px !important;
    color: #777 !important;
    font-size: 11px !important;
    background: rgba(255, 255, 255, .96) !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, .14) !important;
  }
}

@media (max-width: 767px) {
  /* Homepage viewport lock: keep the cloned mobile page inside the phone width. */
  html,
  body.page-booking-home,
  body.yz-booking-site.page-booking-home {
    width: 100vw !important;
    min-width: 0 !important;
    max-width: 100vw !important;
    overflow-x: hidden !important;
  }

  body.page-booking-home *,
  body.page-booking-home *::before,
  body.page-booking-home *::after {
    box-sizing: border-box !important;
  }

  body.page-booking-home .container,
  body.yz-booking-site.page-booking-home .container {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  body.page-booking-home .yz-booking-announcement-bar .container,
  body.page-booking-home .yz-booking-mobile-icons .container {
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 8px !important;
    padding-right: 8px !important;
  }

  body.page-booking-home .yz-booking-announcement-strip,
  body.yz-booking-site.page-booking-home .yz-booking-announcement-strip {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    overflow: hidden !important;
  }

  body.page-booking-home .yz-booking-announcement-scroll,
  body.yz-booking-site.page-booking-home .yz-booking-announcement-scroll {
    min-width: 0 !important;
    max-width: 100% !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  body.page-booking-home .yz-booking-mobile-icon-grid,
  body.yz-booking-site.page-booking-home .yz-booking-mobile-icon-grid {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
  }

  body.page-booking-home .yz-booking-mobile-icon-grid a,
  body.yz-booking-site.page-booking-home .yz-booking-mobile-icon-grid a {
    min-width: 0 !important;
  }

  body.page-booking-home .yz-booking-mobile-nav,
  body.yz-booking-site.page-booking-home .yz-booking-mobile-nav {
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
  }
}

@media (max-width: 767px) {
  /* Final home bottom-nav lock: match the reference height and keep every icon white. */
  body.page-booking-home .yz-booking-mobile-nav,
  body.yz-booking-site.page-booking-home .yz-booking-mobile-nav {
    position: fixed !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    box-sizing: border-box !important;
    display: grid !important;
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    width: auto !important;
    max-width: 100vw !important;
    height: calc(71px + env(safe-area-inset-bottom, 0px)) !important;
    min-height: calc(71px + env(safe-area-inset-bottom, 0px)) !important;
    padding: 0 0 env(safe-area-inset-bottom, 0px) !important;
    overflow: hidden !important;
    background: #075ea5 !important;
  }

  body.page-booking-home .yz-booking-mobile-nav a,
  body.yz-booking-site.page-booking-home .yz-booking-mobile-nav a {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    height: 71px !important;
    min-height: 71px !important;
    padding: 7px 0 8px !important;
    color: #fff !important;
    overflow: hidden !important;
  }

  body.page-booking-home .yz-booking-mobile-nav a::before,
  body.yz-booking-site.page-booking-home .yz-booking-mobile-nav a::before,
  body.page-booking-home .yz-booking-mobile-nav a.is-active::before,
  body.yz-booking-site.page-booking-home .yz-booking-mobile-nav a.is-active::before {
    display: block !important;
    height: 30px !important;
    color: #fff !important;
    font-size: 24px !important;
    font-weight: 700 !important;
    line-height: 30px !important;
    opacity: 1 !important;
  }

  body.page-booking-home .yz-booking-mobile-nav a span,
  body.yz-booking-site.page-booking-home .yz-booking-mobile-nav a span,
  body.page-booking-home .yz-booking-mobile-nav a.is-active span,
  body.yz-booking-site.page-booking-home .yz-booking-mobile-nav a.is-active span {
    display: block !important;
    height: 16px !important;
    color: #fff !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    line-height: 16px !important;
    opacity: 1 !important;
  }
}

@media (max-width: 767px) {
  /* Home middle modules: tighten toward the reference list density. */
  body.page-booking-home .yz-booking-section {
    padding: 8px 8px 0 !important;
    background: #fff !important;
  }

  body.page-booking-home .yz-booking-section .container {
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  body.page-booking-home .yz-section-head,
  body.page-booking-home .yz-ref-head,
  body.page-booking-home .yz-series-ref-title {
    height: 30px !important;
    min-height: 30px !important;
    margin: 0 0 7px !important;
    padding: 0 !important;
    display: flex !important;
    align-items: center !important;
    border-bottom: 1px solid #e6edf5 !important;
  }

  body.page-booking-home .yz-section-head h2,
  body.page-booking-home .yz-ref-head h2,
  body.page-booking-home .yz-series-ref-title h2 {
    margin: 0 !important;
    color: #075ea5 !important;
    font-size: 16px !important;
    font-weight: 900 !important;
    line-height: 30px !important;
  }

  body.page-booking-home .yz-section-head p,
  body.page-booking-home .yz-ref-head p {
    margin-left: auto !important;
    color: #777 !important;
    font-size: 12px !important;
    line-height: 30px !important;
  }

  body.page-booking-home .yz-booking-featured-grid {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 8px !important;
    margin: 0 !important;
  }

  body.page-booking-home .yz-booking-featured-card {
    display: block !important;
    min-width: 0 !important;
    height: 108px !important;
    padding: 0 !important;
    border: 1px solid #d8e0ea !important;
    border-radius: 3px !important;
    background: #fff !important;
    overflow: hidden !important;
    box-shadow: none !important;
  }

  body.page-booking-home .yz-booking-featured-card img {
    display: block !important;
    width: 100% !important;
    height: 72px !important;
    object-fit: cover !important;
    background: #eef5fb !important;
  }

  body.page-booking-home .yz-booking-featured-body {
    display: block !important;
    padding: 4px 5px 0 !important;
  }

  body.page-booking-home .yz-booking-featured-body strong {
    display: block !important;
    height: 15px !important;
    color: #333 !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    line-height: 15px !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  body.page-booking-home .yz-booking-featured-price {
    display: block !important;
    color: #f00 !important;
    font-size: 11px !important;
    line-height: 15px !important;
  }

  body.page-booking-home .yz-booking-featured-price b {
    color: #f00 !important;
    font-size: 13px !important;
    font-weight: 900 !important;
  }

  body.page-booking-home .yz-booking-route-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 6px !important;
    margin: 0 !important;
  }

  body.page-booking-home .yz-booking-route-card {
    height: 72px !important;
    padding: 8px 10px !important;
    border: 1px solid #e1e6ee !important;
    border-radius: 4px !important;
    background: #fff !important;
    box-shadow: none !important;
  }

  body.page-booking-home .yz-booking-route-card .piao {
    display: grid !important;
    grid-template-columns: 1fr 20px 1fr !important;
    align-items: center !important;
    height: 24px !important;
    color: #001d3d !important;
    font-size: 14px !important;
    font-weight: 900 !important;
  }

  body.page-booking-home .yz-booking-route-card .piao i {
    color: #ff6a00 !important;
    font-style: normal !important;
    text-align: center !important;
  }

  body.page-booking-home .yz-booking-route-card .ad_r {
    text-align: right !important;
  }

  body.page-booking-home .yz-booking-route-card .prc {
    display: flex !important;
    align-items: flex-end !important;
    justify-content: space-between !important;
    margin-top: 8px !important;
  }

  body.page-booking-home .yz-booking-route-card .num {
    color: #f00 !important;
    font-size: 12px !important;
    font-weight: 900 !important;
    line-height: 1 !important;
  }

  body.page-booking-home .yz-booking-route-card .num span {
    font-size: 20px !important;
    font-weight: 900 !important;
  }

  body.page-booking-home .yz-booking-route-card .tim {
    color: #4d5d70 !important;
    font-size: 12px !important;
  }
}

@media (max-width: 767px) {
  /* Match the reference first-screen rhythm: let the series title peek above the fixed bottom nav. */
  body.page-booking-home #series {
    margin-top: 126px !important;
    padding-top: 8px !important;
  }

  body.page-booking-home #series .yz-series-ref-title {
    height: 28px !important;
    min-height: 28px !important;
    margin-bottom: 6px !important;
  }

  body.page-booking-home #series .yz-series-ref-title h2 {
    font-size: 15px !important;
    line-height: 28px !important;
  }

  body.page-booking-home .yz-booking-series-grid {
    display: grid !important;
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    gap: 8px 4px !important;
    padding: 0 4px 8px !important;
  }

  body.page-booking-home .yz-booking-series-card {
    min-width: 0 !important;
    height: 66px !important;
    padding: 4px 0 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  body.page-booking-home .yz-booking-series-icon {
    width: 34px !important;
    height: 34px !important;
    margin: 0 auto 4px !important;
    border-radius: 50% !important;
    background: #f3f8fe !important;
  }

  body.page-booking-home .yz-booking-series-icon img {
    width: 28px !important;
    height: 28px !important;
    object-fit: contain !important;
  }

  body.page-booking-home .yz-booking-series-label {
    display: block !important;
    color: #334155 !important;
    font-size: 10px !important;
    line-height: 14px !important;
    text-align: center !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  body.page-booking-home .yz-booking-recommend-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px 8px !important;
    padding: 0 2px 8px !important;
  }

  body.page-booking-home .yz-booking-recommend-card {
    display: block !important;
    min-width: 0 !important;
    padding: 0 0 6px !important;
    border: 1px solid #e1e7ef !important;
    border-radius: 4px !important;
    background: #fff !important;
    color: #243447 !important;
    text-decoration: none !important;
    overflow: hidden !important;
    box-shadow: none !important;
  }

  body.page-booking-home .yz-booking-recommend-card img {
    display: block !important;
    width: 100% !important;
    height: 82px !important;
    object-fit: cover !important;
    background: #eef5fb !important;
  }

  body.page-booking-home .yz-booking-recommend-card strong {
    display: block !important;
    height: 18px !important;
    margin: 5px 6px 0 !important;
    color: #1f2937 !important;
    font-size: 12px !important;
    font-weight: 800 !important;
    line-height: 18px !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  body.page-booking-home .yz-booking-recommend-card span {
    display: block !important;
    height: 16px !important;
    margin: 0 6px !important;
    color: #64748b !important;
    font-size: 10px !important;
    line-height: 16px !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  body.page-booking-home .yz-booking-recommend-card em {
    display: block !important;
    margin: 0 6px !important;
    color: #f00 !important;
    font-size: 13px !important;
    font-style: normal !important;
    font-weight: 900 !important;
    line-height: 16px !important;
  }

  body.page-booking-home .yz-booking-news-section {
    padding-top: 8px !important;
    border-top: 1px solid #eef2f7 !important;
  }

  body.page-booking-home .yz-booking-news-tags {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 6px !important;
    padding: 0 2px 6px !important;
  }

  body.page-booking-home .yz-booking-news-tags a {
    display: block !important;
    height: 24px !important;
    border: 1px solid #d9e2ec !important;
    border-radius: 2px !important;
    color: #475569 !important;
    font-size: 10px !important;
    line-height: 22px !important;
    text-align: center !important;
    text-decoration: none !important;
    background: #fff !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  body.page-booking-home .yz-booking-latest-list {
    display: grid !important;
    gap: 0 !important;
    padding: 0 2px 4px !important;
    border-top: 1px solid #eef2f7 !important;
    background: #fff !important;
  }

  body.page-booking-home .yz-booking-latest-list a {
    position: relative !important;
    display: block !important;
    min-height: 62px !important;
    padding: 8px 34px 8px 0 !important;
    border-bottom: 1px solid #eef2f7 !important;
    color: #334155 !important;
    text-decoration: none !important;
  }

  body.page-booking-home .yz-booking-latest-list strong {
    display: block !important;
    color: #243447 !important;
    font-size: 12px !important;
    font-weight: 800 !important;
    line-height: 18px !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  body.page-booking-home .yz-booking-latest-list p {
    display: -webkit-box !important;
    margin: 2px 0 0 !important;
    color: #64748b !important;
    font-size: 10px !important;
    line-height: 16px !important;
    overflow: hidden !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
  }

  body.page-booking-home .yz-booking-latest-list span {
    position: absolute !important;
    right: 2px !important;
    top: 10px !important;
    color: #94a3b8 !important;
    font-size: 12px !important;
  }

  body.page-booking-home .yz-booking-footer {
    display: block !important;
    padding: 10px 8px calc(68px + env(safe-area-inset-bottom, 0px)) !important;
    border-top: 1px solid #eef2f7 !important;
    background: #fff !important;
  }

  body.page-booking-home .yz-booking-footer .container {
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 !important;
  }

  body.page-booking-home .yz-booking-footer-hero {
    display: flex !important;
    justify-content: center !important;
    padding: 12px 0 8px !important;
  }

  body.page-booking-home .yz-booking-footer-hero img {
    width: 170px !important;
    height: 120px !important;
    object-fit: cover !important;
    border-radius: 3px !important;
    background: #eef5fb !important;
  }

  body.page-booking-home .yz-booking-footer-links {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 6px !important;
    margin: 4px 0 10px !important;
  }

  body.page-booking-home .yz-booking-footer-links a {
    height: 24px !important;
    border: 1px solid #d9e2ec !important;
    border-radius: 2px !important;
    color: #475569 !important;
    font-size: 10px !important;
    line-height: 22px !important;
    text-align: center !important;
    text-decoration: none !important;
  }

  body.page-booking-home .yz-booking-mobile-pay {
    margin: 0 !important;
    padding: 6px 0 8px !important;
    border-top: 1px solid #eef2f7 !important;
    background: #fff !important;
  }

  body.page-booking-home .yz-booking-mobile-pay-title {
    margin: 0 0 6px !important;
    color: #64748b !important;
    font-size: 11px !important;
    line-height: 18px !important;
    text-align: center !important;
  }

  body.page-booking-home .yz-booking-mobile-pay-grid {
    display: flex !important;
    justify-content: center !important;
    gap: 8px !important;
    padding: 0 !important;
  }

  body.page-booking-home .yz-booking-mobile-pay-grid img {
    width: 28px !important;
    height: 18px !important;
    object-fit: contain !important;
  }

  body.page-booking-home .yz-booking-mobile-tel {
    display: block !important;
    margin: 0 !important;
    color: #64748b !important;
    font-size: 10px !important;
    line-height: 18px !important;
    text-align: center !important;
    text-decoration: none !important;
  }

  body.page-booking-home .yz-booking-mobile-copy {
    color: #94a3b8 !important;
    font-size: 10px !important;
    line-height: 16px !important;
    text-align: center !important;
  }
}

@media (max-width: 767px) {
  /* Absolute final home bottom-nav lock: must stay after every home override. */
  body.page-booking-home .yz-booking-mobile-nav,
  body.yz-booking-site.page-booking-home .yz-booking-mobile-nav {
    position: fixed !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    box-sizing: border-box !important;
    display: grid !important;
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    width: auto !important;
    max-width: 100vw !important;
    height: calc(71px + env(safe-area-inset-bottom, 0px)) !important;
    min-height: calc(71px + env(safe-area-inset-bottom, 0px)) !important;
    padding: 0 0 env(safe-area-inset-bottom, 0px) !important;
    overflow: hidden !important;
    background: #075ea5 !important;
  }

  body.page-booking-home .yz-booking-mobile-nav a,
  body.yz-booking-site.page-booking-home .yz-booking-mobile-nav a {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    height: 71px !important;
    min-height: 71px !important;
    padding: 7px 0 8px !important;
    color: #fff !important;
    overflow: hidden !important;
  }

  body.page-booking-home .yz-booking-mobile-nav a::before,
  body.yz-booking-site.page-booking-home .yz-booking-mobile-nav a::before,
  body.page-booking-home .yz-booking-mobile-nav a.is-active::before,
  body.yz-booking-site.page-booking-home .yz-booking-mobile-nav a.is-active::before {
    display: block !important;
    height: 30px !important;
    color: #fff !important;
    font-size: 24px !important;
    font-weight: 700 !important;
    line-height: 30px !important;
    opacity: 1 !important;
  }

  body.page-booking-home .yz-booking-mobile-nav a span,
  body.yz-booking-site.page-booking-home .yz-booking-mobile-nav a span,
  body.page-booking-home .yz-booking-mobile-nav a.is-active span,
  body.yz-booking-site.page-booking-home .yz-booking-mobile-nav a.is-active span {
    display: block !important;
    height: 16px !important;
    color: #fff !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    line-height: 16px !important;
    opacity: 1 !important;
  }
}

@media (max-width: 767px) {
  /* EOF home title/search lock: tighten the top block to the reference rhythm. */
  body.page-booking-home .yz-booking-hero-banner,
  body.page-booking-home .yz-booking-hero-banner-ref,
  body.yz-booking-site.page-booking-home .yz-booking-hero-banner,
  body.yz-booking-site.page-booking-home .yz-booking-hero-banner-ref {
    height: 140px !important;
    min-height: 140px !important;
    max-height: 140px !important;
  }

  body.page-booking-home .yz-booking-hero-banner img,
  body.page-booking-home .yz-booking-hero-banner-ref img,
  body.yz-booking-site.page-booking-home .yz-booking-hero-banner img,
  body.yz-booking-site.page-booking-home .yz-booking-hero-banner-ref img {
    height: 140px !important;
  }

  body.page-booking-home .yz-booking-search-card,
  body.yz-booking-site.page-booking-home .yz-booking-search-card {
    height: 202px !important;
    margin-top: 3px !important;
  }

  body.page-booking-home .yz-home-search-grid,
  body.yz-booking-site.page-booking-home .yz-home-search-grid {
    height: 120px !important;
    padding-top: 3px !important;
  }

  body.page-booking-home .booking-field-date-hero,
  body.yz-booking-site.page-booking-home .booking-field-date-hero {
    margin-top: 6px !important;
    padding-top: 4px !important;
  }

  body.page-booking-home .yz-booking-submit,
  body.yz-booking-site.page-booking-home .yz-booking-submit {
    height: 34px !important;
    margin-top: 4px !important;
  }
}

@media (max-width: 767px) {
  /* EOF home middle-section lock: title line and card density follow the reference home. */
  body.page-booking-home .yz-booking-section {
    padding: 7px 8px 0 !important;
    background: #fff !important;
  }

  body.page-booking-home .yz-section-head,
  body.page-booking-home .yz-ref-head,
  body.page-booking-home .yz-series-ref-title {
    position: relative !important;
    height: 26px !important;
    min-height: 26px !important;
    margin: 0 0 6px !important;
    border-bottom: 0 !important;
  }

  body.page-booking-home .yz-section-head::after,
  body.page-booking-home .yz-ref-head::after,
  body.page-booking-home .yz-series-ref-title::after {
    content: "" !important;
    position: absolute !important;
    left: 88px !important;
    right: 0 !important;
    top: 15px !important;
    height: 2px !important;
    background: #e60012 !important;
  }

  body.page-booking-home .yz-section-head h2,
  body.page-booking-home .yz-ref-head h2,
  body.page-booking-home .yz-series-ref-title h2 {
    position: relative !important;
    z-index: 1 !important;
    padding-right: 8px !important;
    background: #fff !important;
    color: #075ea5 !important;
    font-size: 16px !important;
    line-height: 26px !important;
  }

  body.page-booking-home .yz-section-head p,
  body.page-booking-home .yz-ref-head p {
    position: relative !important;
    z-index: 2 !important;
    padding-left: 8px !important;
    background: #fff !important;
    font-size: 11px !important;
    line-height: 26px !important;
  }

  body.page-booking-home .yz-booking-featured-grid {
    gap: 6px !important;
  }

  body.page-booking-home .yz-booking-featured-card {
    height: 102px !important;
  }

  body.page-booking-home .yz-booking-featured-card img {
    height: 68px !important;
  }

  body.page-booking-home .yz-booking-route-grid {
    gap: 5px !important;
  }

  body.page-booking-home .yz-booking-route-card {
    height: 68px !important;
    padding: 7px 9px !important;
  }

  body.page-booking-home .yz-booking-recommend-grid {
    gap: 8px 7px !important;
  }

  body.page-booking-home .yz-booking-recommend-card img {
    height: 78px !important;
  }
}

@media (max-width: 767px) {
  /* EOF home section-flow lock: no artificial gap before the cruise series section. */
  body.page-booking-home #series {
    margin-top: 0 !important;
    padding-top: 7px !important;
  }

  body.page-booking-home .yz-booking-mobile-icons {
    padding-bottom: 8px !important;
    margin-bottom: 0 !important;
  }
}

@media (max-width: 767px) {
  /* EOF home heading lock: reference-style blue title with a red rule extending right. */
  body.page-booking-home .yz-section-head,
  body.page-booking-home .yz-ref-head,
  body.page-booking-home .yz-series-ref-title {
    position: relative !important;
    display: flex !important;
    align-items: center !important;
    height: 28px !important;
    min-height: 28px !important;
    margin: 0 0 6px !important;
    padding: 0 !important;
    border: 0 !important;
    background: #fff !important;
  }

  body.page-booking-home .yz-section-head::after,
  body.page-booking-home .yz-ref-head::after,
  body.page-booking-home .yz-series-ref-title::after {
    content: "" !important;
    position: absolute !important;
    left: 112px !important;
    right: 0 !important;
    top: 15px !important;
    height: 2px !important;
    background: #e60012 !important;
  }

  body.page-booking-home .yz-section-head h2,
  body.page-booking-home .yz-ref-head h2,
  body.page-booking-home .yz-series-ref-title h2 {
    position: relative !important;
    z-index: 2 !important;
    display: inline-flex !important;
    align-items: center !important;
    width: auto !important;
    max-width: 76% !important;
    height: 28px !important;
    margin: 0 !important;
    padding: 0 9px 0 0 !important;
    background: #fff !important;
    color: #075ea5 !important;
    font-size: 16px !important;
    font-weight: 900 !important;
    line-height: 28px !important;
    white-space: nowrap !important;
  }

  body.page-booking-home .yz-section-head h2 span,
  body.page-booking-home .yz-ref-head-icon,
  body.page-booking-home .yz-series-ref-title h2 span {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 16px !important;
    margin-right: 2px !important;
    color: #075ea5 !important;
    font-size: 15px !important;
  }

  body.page-booking-home .yz-section-head p,
  body.page-booking-home .yz-ref-head p {
    position: relative !important;
    z-index: 3 !important;
    margin-left: auto !important;
    padding-left: 8px !important;
    background: #fff !important;
    color: #777 !important;
    font-size: 11px !important;
    line-height: 28px !important;
  }
}

@media (max-width: 767px) {
  /* EOF home bottom-nav compact lock: reference uses a compact fixed bottom bar. */
  body.page-booking-home .yz-booking-mobile-nav,
  body.yz-booking-site.page-booking-home .yz-booking-mobile-nav {
    height: calc(56px + env(safe-area-inset-bottom, 0px)) !important;
    min-height: calc(56px + env(safe-area-inset-bottom, 0px)) !important;
    padding: 0 0 env(safe-area-inset-bottom, 0px) !important;
    background: #075ea5 !important;
  }

  body.page-booking-home .yz-booking-mobile-nav a,
  body.yz-booking-site.page-booking-home .yz-booking-mobile-nav a {
    height: 56px !important;
    min-height: 56px !important;
    padding: 5px 0 4px !important;
    gap: 3px !important;
  }

  body.page-booking-home .yz-booking-mobile-nav a::before,
  body.yz-booking-site.page-booking-home .yz-booking-mobile-nav a::before,
  body.page-booking-home .yz-booking-mobile-nav a.is-active::before,
  body.yz-booking-site.page-booking-home .yz-booking-mobile-nav a.is-active::before {
    height: 20px !important;
    font-size: 18px !important;
    line-height: 20px !important;
  }

  body.page-booking-home .yz-booking-mobile-nav a span,
  body.yz-booking-site.page-booking-home .yz-booking-mobile-nav a span,
  body.page-booking-home .yz-booking-mobile-nav a.is-active span,
  body.yz-booking-site.page-booking-home .yz-booking-mobile-nav a.is-active span {
    height: 13px !important;
    font-size: 10px !important;
    line-height: 13px !important;
  }

  body.page-booking-home .yz-booking-pk-float {
    right: 8px !important;
    bottom: calc(66px + env(safe-area-inset-bottom, 0px)) !important;
    width: 40px !important;
    height: 40px !important;
  }
}

@media (max-width: 767px) {
  /* EOF home footer lock: compact footer layout like the reference home. */
  body.page-booking-home .yz-booking-footer {
    padding: 8px 8px calc(62px + env(safe-area-inset-bottom, 0px)) !important;
    background: #fff !important;
  }

  body.page-booking-home .yz-booking-footer-hero {
    padding: 8px 0 6px !important;
  }

  body.page-booking-home .yz-booking-footer-hero img {
    width: 150px !important;
    height: 106px !important;
    border-radius: 2px !important;
  }

  body.page-booking-home .yz-booking-footer-links {
    gap: 5px !important;
    margin: 4px 0 8px !important;
  }

  body.page-booking-home .yz-booking-footer-links a {
    height: 23px !important;
    font-size: 10px !important;
    line-height: 21px !important;
  }

  body.page-booking-home .yz-booking-mobile-pay {
    padding: 5px 0 6px !important;
  }

  body.page-booking-home .yz-booking-mobile-pay-title {
    margin-bottom: 5px !important;
    font-size: 10px !important;
    line-height: 16px !important;
  }

  body.page-booking-home .yz-booking-mobile-pay-grid {
    gap: 7px !important;
  }

  body.page-booking-home .yz-booking-mobile-pay-grid img {
    width: 26px !important;
    height: 17px !important;
  }

  body.page-booking-home .yz-booking-mobile-tel {
    font-size: 10px !important;
    line-height: 17px !important;
  }

  body.page-booking-home .yz-booking-mobile-copy {
    font-size: 10px !important;
    line-height: 15px !important;
  }
}

@media (max-width: 767px) {
  /* EOF home icons/news lock: compact quick icons and news blocks like the reference home. */
  body.page-booking-home .yz-booking-mobile-icons,
  body.yz-booking-site.page-booking-home .yz-booking-mobile-icons {
    padding-top: 8px !important;
    padding-bottom: 7px !important;
    background: #fff !important;
  }

  body.page-booking-home .yz-booking-mobile-icon-grid,
  body.yz-booking-site.page-booking-home .yz-booking-mobile-icon-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    row-gap: 9px !important;
    column-gap: 0 !important;
  }

  body.page-booking-home .yz-booking-mobile-icon-grid a,
  body.yz-booking-site.page-booking-home .yz-booking-mobile-icon-grid a {
    min-height: 58px !important;
    padding: 0 !important;
  }

  body.page-booking-home .yz-booking-mobile-icon-grid a span,
  body.yz-booking-site.page-booking-home .yz-booking-mobile-icon-grid a span {
    width: 38px !important;
    height: 38px !important;
    margin-bottom: 7px !important;
    border-radius: 8px !important;
  }

  body.page-booking-home .yz-booking-mobile-icon-grid a strong,
  body.yz-booking-site.page-booking-home .yz-booking-mobile-icon-grid a strong {
    font-size: 12px !important;
    line-height: 15px !important;
  }

  body.page-booking-home .yz-booking-news-section {
    padding-top: 7px !important;
  }

  body.page-booking-home .yz-booking-news-tags {
    gap: 5px !important;
    padding: 0 1px 5px !important;
  }

  body.page-booking-home .yz-booking-news-tags a {
    height: 23px !important;
    font-size: 10px !important;
    line-height: 21px !important;
  }

  body.page-booking-home .yz-booking-latest-list a {
    min-height: 56px !important;
    padding: 7px 32px 7px 0 !important;
  }

  body.page-booking-home .yz-booking-latest-list strong {
    font-size: 12px !important;
    line-height: 17px !important;
  }

  body.page-booking-home .yz-booking-latest-list p {
    font-size: 10px !important;
    line-height: 15px !important;
  }
}

@media (max-width: 767px) {
  /* True final homepage width lock. Keep this at EOF so older overrides cannot re-expand the page. */
  html,
  body.page-booking-home,
  body.yz-booking-site.page-booking-home {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    overflow-x: hidden !important;
  }

  body.page-booking-home *,
  body.page-booking-home *::before,
  body.page-booking-home *::after {
    box-sizing: border-box !important;
  }

  body.page-booking-home .container,
  body.yz-booking-site.page-booking-home .container {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  body.page-booking-home .yz-booking-header,
  body.page-booking-home .yz-booking-home,
  body.page-booking-home .yz-booking-hero,
  body.page-booking-home .yz-booking-search,
  body.page-booking-home .yz-booking-announcement-bar,
  body.page-booking-home .yz-booking-mobile-icons,
  body.page-booking-home .yz-booking-section,
  body.page-booking-home .yz-booking-footer {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    overflow-x: hidden !important;
  }

  body.page-booking-home .yz-booking-search-card,
  body.yz-booking-site.page-booking-home .yz-booking-search-card {
    width: calc(100% - 32px) !important;
    max-width: calc(100% - 32px) !important;
    margin-left: 16px !important;
    margin-right: 16px !important;
  }

  body.page-booking-home .yz-booking-announcement-bar .container,
  body.page-booking-home .yz-booking-mobile-icons .container {
    padding-left: 8px !important;
    padding-right: 8px !important;
  }

  body.page-booking-home .yz-booking-announcement-strip,
  body.yz-booking-site.page-booking-home .yz-booking-announcement-strip {
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    overflow: hidden !important;
  }

  body.page-booking-home .yz-booking-announcement-strip span,
  body.yz-booking-site.page-booking-home .yz-booking-announcement-strip span {
    flex: 0 0 auto !important;
  }

  body.page-booking-home .yz-booking-announcement-scroll,
  body.yz-booking-site.page-booking-home .yz-booking-announcement-scroll {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    max-width: 100% !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  body.page-booking-home .yz-booking-mobile-icon-grid,
  body.yz-booking-site.page-booking-home .yz-booking-mobile-icon-grid {
    display: grid !important;
    grid-template-columns: repeat(4, 22%) !important;
    gap: 8px 0 !important;
    justify-items: center !important;
    justify-content: space-between !important;
    align-items: start !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    overflow: hidden !important;
  }

  body.page-booking-home .yz-booking-mobile-icon-grid a,
  body.yz-booking-site.page-booking-home .yz-booking-mobile-icon-grid a {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: flex-start !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin: 0 !important;
    transform: none !important;
  }

  body.page-booking-home .yz-booking-mobile-nav,
  body.yz-booking-site.page-booking-home .yz-booking-mobile-nav {
    position: fixed !important;
    display: grid !important;
    grid-template-columns: repeat(5, 19%) !important;
    justify-content: space-between !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    height: calc(56px + env(safe-area-inset-bottom, 0px)) !important;
    min-height: calc(56px + env(safe-area-inset-bottom, 0px)) !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin: 0 !important;
    transform: none !important;
    overflow: hidden !important;
  }

  body.page-booking-home .yz-booking-mobile-nav a,
  body.yz-booking-site.page-booking-home .yz-booking-mobile-nav a {
    display: flex !important;
    flex: none !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: 100% !important;
    height: 56px !important;
    min-height: 56px !important;
    margin: 0 !important;
    overflow: hidden !important;
  }

  body.page-booking-home .yz-home-quick-grid-lock,
  body.yz-booking-site.page-booking-home .yz-home-quick-grid-lock {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: visible !important;
  }

  body.page-booking-home .yz-home-quick-grid-lock > a,
  body.yz-booking-site.page-booking-home .yz-home-quick-grid-lock > a {
    display: flex !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    transform: none !important;
  }

  body.page-booking-home .yz-home-bottom-nav-lock,
  body.yz-booking-site.page-booking-home .yz-home-bottom-nav-lock {
    position: fixed !important;
    left: 0 !important;
    right: auto !important;
    bottom: 0 !important;
    display: grid !important;
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    padding: 0 0 env(safe-area-inset-bottom, 0px) !important;
    margin: 0 !important;
    transform: none !important;
    overflow: hidden !important;
  }

  body.page-booking-home .yz-home-bottom-nav-lock > a,
  body.yz-booking-site.page-booking-home .yz-home-bottom-nav-lock > a {
    display: flex !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin: 0 !important;
    transform: none !important;
  }
}
