html {
  overflow-y: auto !important;
  overflow-x: hidden !important;
  scrollbar-width: auto !important;
  -ms-overflow-style: auto !important;
}

html::-webkit-scrollbar,
body.yz-booking-site::-webkit-scrollbar {
  width: 0 !important;
  height: 0 !important;
  display: none !important;
}

html body.yz-booking-site {
  min-height: 100vh !important;
  margin: 0 !important;
  overflow: visible !important;
  overflow-x: visible !important;
  overflow-y: visible !important;
  padding-top: 44px !important;
  padding-bottom: calc(64px + env(safe-area-inset-bottom, 0px)) !important;
  touch-action: pan-y !important;
  -webkit-overflow-scrolling: touch !important;
}

html:has(body.yz-booking-site.page-booking-home),
html:has(body.yz-booking-site.page-booking-ships),
html:has(body.yz-booking-site.page-booking-series),
html:has(body.yz-booking-site.page-booking-detail) {
  height: auto !important;
  min-height: 100% !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  scrollbar-width: auto !important;
  -ms-overflow-style: auto !important;
  touch-action: pan-y !important;
}

html body.yz-booking-site.page-booking-home,
html body.yz-booking-site.page-booking-ships,
html body.yz-booking-site.page-booking-series,
html body.yz-booking-site.page-booking-detail {
  height: auto !important;
  min-height: 100vh !important;
  overflow-x: visible !important;
  overflow-y: visible !important;
  touch-action: pan-y !important;
}

body.yz-booking-site.page-booking-detail {
  padding-bottom: calc(68px + env(safe-area-inset-bottom, 0px)) !important;
}

body.yz-booking-site.page-booking-schedule.is-schedule-rendering #scheduleRouteTitle,
body.yz-booking-site.page-booking-schedule.is-schedule-rendering #scheduleTopDate {
  color: transparent !important;
  text-shadow: none !important;
}

body.yz-booking-site.page-booking-schedule.is-schedule-rendering #scheduleRouteTitle::after {
  content: "船期查询";
  color: #123b63;
}

body.yz-booking-site.page-booking-schedule.is-schedule-rendering #scheduleTopDate::after {
  content: "正在加载";
  color: #123b63;
}

body.yz-booking-site.page-booking-schedule.is-schedule-rendering #scheduleCards {
  min-height: 420px !important;
}

html body.yz-booking-site main,
html body.yz-booking-site .yz-booking-home,
html body.yz-booking-site .yz-booking-detail-main,
html body.yz-booking-site .yz-ships-main,
html body.yz-booking-site .yz-series-main,
html body.yz-booking-site.page-booking-home main.yz-booking-home,
html body.yz-booking-site.page-booking-detail main.yz-booking-detail-main,
html body.yz-booking-site.page-booking-ships main.yz-ships-main,
html body.yz-booking-site.page-booking-series main.yz-series-main {
  overflow-x: hidden !important;
  overflow-y: visible !important;
  overflow: visible !important;
  height: auto !important;
  max-height: none !important;
}

body.yz-booking-site .yz-shell-simple-topbar {
  position: fixed !important;
  left: 0 !important;
  right: 0 !important;
  top: 0 !important;
  z-index: 100001 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  height: 44px !important;
  min-height: 44px !important;
  padding: 0 14px !important;
  color: #fff !important;
  background: #075ea5 !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

body.yz-booking-site .yz-shell-simple-brand {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  color: #fff !important;
  text-decoration: none !important;
}

body.yz-booking-site .yz-shell-simple-mark,
body.yz-booking-site .yz-shell-simple-mark img {
  display: block !important;
  width: 34px !important;
  height: 34px !important;
  object-fit: contain !important;
}

body.yz-booking-site .yz-shell-simple-copy strong,
body.yz-booking-site .yz-shell-simple-copy small {
  display: block !important;
  color: #fff !important;
  line-height: 1.05 !important;
  white-space: nowrap !important;
}

body.yz-booking-site .yz-shell-simple-copy strong {
  font-size: 14px !important;
  font-weight: 900 !important;
}

body.yz-booking-site .yz-shell-simple-copy small {
  margin-top: 1px !important;
  font-size: 8px !important;
  font-weight: 800 !important;
  letter-spacing: .04em !important;
}

body.yz-booking-site .yz-shell-flow-topbar {
  display: grid !important;
  grid-template-columns: 52px minmax(0, 1fr) 52px !important;
  padding: 0 !important;
}

body.yz-booking-site .yz-shell-flow-back,
body.yz-booking-site .yz-shell-flow-home {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 52px !important;
  height: 44px !important;
  color: #fff !important;
  background: transparent !important;
  text-decoration: none !important;
  line-height: 1 !important;
}

body.yz-booking-site .yz-shell-flow-back {
  font-size: 32px !important;
  font-weight: 300 !important;
}

body.yz-booking-site .yz-shell-flow-home {
  font-size: 25px !important;
  font-weight: 800 !important;
}

body.yz-booking-site .yz-shell-flow-title {
  display: block !important;
  min-width: 0 !important;
  color: #fff !important;
  text-align: center !important;
  font-size: 17px !important;
  font-weight: 900 !important;
  line-height: 44px !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

body.yz-booking-site .yz-booking-mobile-nav.yz-shell-simple-tabbar {
  position: fixed !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  z-index: 100000 !important;
  display: grid !important;
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  width: 100% !important;
  height: calc(56px + env(safe-area-inset-bottom, 0px)) !important;
  min-height: calc(56px + env(safe-area-inset-bottom, 0px)) !important;
  margin: 0 !important;
  padding: 0 0 env(safe-area-inset-bottom, 0px) !important;
  background: #075ea5 !important;
  border: 0 !important;
  border-top: 1px solid rgba(255,255,255,.16) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  overflow: hidden !important;
}

body.yz-booking-site .yz-booking-mobile-nav.yz-shell-simple-tabbar > a {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 3px !important;
  min-width: 0 !important;
  width: 100% !important;
  height: 56px !important;
  margin: 0 !important;
  padding: 5px 0 4px !important;
  color: #fff !important;
  background: transparent !important;
  border: 0 !important;
  text-align: center !important;
  text-decoration: none !important;
  box-shadow: none !important;
}

body.yz-booking-site .yz-booking-mobile-nav.yz-shell-simple-tabbar > a svg {
  display: block !important;
  width: 17px !important;
  height: 17px !important;
  color: #fff !important;
  stroke: currentColor !important;
  fill: none !important;
  stroke-width: 2.2 !important;
}

body.yz-booking-site .yz-booking-mobile-nav.yz-shell-simple-tabbar > a span {
  display: block !important;
  width: 100% !important;
  color: #fff !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  line-height: 13px !important;
  white-space: nowrap !important;
}

body.yz-booking-site .yz-booking-mobile-nav.yz-shell-simple-tabbar > a::before,
body.yz-booking-site .yz-booking-mobile-nav.yz-shell-simple-tabbar > a::after,
body.yz-booking-site .yz-booking-mobile-nav.yz-shell-simple-tabbar > a span::before,
body.yz-booking-site .yz-booking-mobile-nav.yz-shell-simple-tabbar > a span::after {
  content: none !important;
  display: none !important;
}

html body.yz-booking-site nav.yz-booking-mobile-nav.yz-shell-tabbar.yz-shell-simple-tabbar {
  height: calc(56px + env(safe-area-inset-bottom, 0px)) !important;
  min-height: calc(56px + env(safe-area-inset-bottom, 0px)) !important;
  max-height: calc(56px + env(safe-area-inset-bottom, 0px)) !important;
  padding: 0 0 env(safe-area-inset-bottom, 0px) !important;
}

html body.yz-booking-site nav.yz-booking-mobile-nav.yz-shell-tabbar.yz-shell-simple-tabbar > a {
  grid-row: 1 !important;
  height: 56px !important;
  min-height: 56px !important;
  max-height: 56px !important;
  position: relative !important;
  top: auto !important;
  bottom: auto !important;
  transform: none !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

html body.yz-booking-site nav.yz-booking-mobile-nav.yz-shell-tabbar.yz-shell-simple-tabbar > a.is-active,
html body.yz-booking-site nav.yz-booking-mobile-nav.yz-shell-tabbar.yz-shell-simple-tabbar > a.yz-shell-tab.is-active,
html body.yz-booking-site nav.yz-booking-mobile-nav.yz-shell-tabbar.yz-shell-simple-tabbar > a.yz-shell-tab[data-shell-nav="home"],
html body.yz-booking-site nav.yz-booking-mobile-nav.yz-shell-tabbar.yz-shell-simple-tabbar > a.yz-shell-tab[data-shell-nav="schedule"],
html body.yz-booking-site nav.yz-booking-mobile-nav.yz-shell-tabbar.yz-shell-simple-tabbar > a.yz-shell-tab[data-shell-nav="consult"],
html body.yz-booking-site nav.yz-booking-mobile-nav.yz-shell-tabbar.yz-shell-simple-tabbar > a.yz-shell-tab[data-shell-nav="phone"],
html body.yz-booking-site nav.yz-booking-mobile-nav.yz-shell-tabbar.yz-shell-simple-tabbar > a.yz-shell-tab[data-shell-nav="order"],
html body.yz-booking-site nav.yz-booking-mobile-nav.yz-shell-tabbar.yz-shell-simple-tabbar > a:active,
html body.yz-booking-site nav.yz-booking-mobile-nav.yz-shell-tabbar.yz-shell-simple-tabbar > a:hover,
html body.yz-booking-site nav.yz-booking-mobile-nav.yz-shell-tabbar.yz-shell-simple-tabbar > a:focus {
  height: 56px !important;
  min-height: 56px !important;
  max-height: 56px !important;
  position: relative !important;
  top: auto !important;
  bottom: auto !important;
  transform: none !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

html body.yz-booking-site nav.yz-booking-mobile-nav.yz-shell-tabbar.yz-shell-simple-tabbar > a > *,
html body.yz-booking-site nav.yz-booking-mobile-nav.yz-shell-tabbar.yz-shell-simple-tabbar > a.is-active > * {
  transform: none !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

html body.yz-booking-site[class] nav.yz-booking-mobile-nav.yz-shell-tabbar.yz-shell-simple-tabbar,
html body.yz-booking-site[class] .yz-booking-mobile-nav.yz-shell-tabbar.yz-shell-simple-tabbar {
  display: grid !important;
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  align-items: stretch !important;
  height: calc(56px + env(safe-area-inset-bottom, 0px)) !important;
  min-height: calc(56px + env(safe-area-inset-bottom, 0px)) !important;
  max-height: calc(56px + env(safe-area-inset-bottom, 0px)) !important;
  padding: 0 0 env(safe-area-inset-bottom, 0px) !important;
  background: #075ea5 !important;
  border: 0 !important;
  border-top: 1px solid rgba(255, 255, 255, .14) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  overflow: hidden !important;
}

html body.yz-booking-site[class] nav.yz-booking-mobile-nav.yz-shell-tabbar.yz-shell-simple-tabbar > a,
html body.yz-booking-site[class] nav.yz-booking-mobile-nav.yz-shell-tabbar.yz-shell-simple-tabbar > a.yz-shell-tab,
html body.yz-booking-site[class] nav.yz-booking-mobile-nav.yz-shell-tabbar.yz-shell-simple-tabbar > a.yz-shell-tab[data-shell-nav] {
  grid-row: 1 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 2px !important;
  width: 100% !important;
  height: 56px !important;
  min-height: 56px !important;
  max-height: 56px !important;
  margin: 0 !important;
  padding: 4px 0 3px !important;
  color: #fff !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  transform: none !important;
}

html body.yz-booking-site[class] nav.yz-booking-mobile-nav.yz-shell-tabbar.yz-shell-simple-tabbar > a svg,
html body.yz-booking-site[class] nav.yz-booking-mobile-nav.yz-shell-tabbar.yz-shell-simple-tabbar > a.yz-shell-tab svg {
  width: 16px !important;
  height: 16px !important;
  color: #fff !important;
  stroke: #fff !important;
  fill: none !important;
  background: transparent !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

html body.yz-booking-site[class] nav.yz-booking-mobile-nav.yz-shell-tabbar.yz-shell-simple-tabbar > a span,
html body.yz-booking-site[class] nav.yz-booking-mobile-nav.yz-shell-tabbar.yz-shell-simple-tabbar > a.yz-shell-tab span {
  color: #fff !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  line-height: 13px !important;
  background: transparent !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

html body.yz-booking-site[class] nav.yz-booking-mobile-nav.yz-shell-tabbar.yz-shell-simple-tabbar > a::before,
html body.yz-booking-site[class] nav.yz-booking-mobile-nav.yz-shell-tabbar.yz-shell-simple-tabbar > a::after,
html body.yz-booking-site[class] nav.yz-booking-mobile-nav.yz-shell-tabbar.yz-shell-simple-tabbar > a.yz-shell-tab::before,
html body.yz-booking-site[class] nav.yz-booking-mobile-nav.yz-shell-tabbar.yz-shell-simple-tabbar > a.yz-shell-tab::after,
html body.yz-booking-site[class] nav.yz-booking-mobile-nav.yz-shell-tabbar.yz-shell-simple-tabbar > a[data-shell-nav]::before,
html body.yz-booking-site[class] nav.yz-booking-mobile-nav.yz-shell-tabbar.yz-shell-simple-tabbar > a[data-shell-nav]::after,
html body.yz-booking-site[class] nav.yz-booking-mobile-nav.yz-shell-tabbar.yz-shell-simple-tabbar > a[data-shell-nav="home"]::before,
html body.yz-booking-site[class] nav.yz-booking-mobile-nav.yz-shell-tabbar.yz-shell-simple-tabbar > a[data-shell-nav="home"]::after {
  content: none !important;
  display: none !important;
  width: 0 !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

@media (min-width: 768px) {
  html {
    background: #eef5fb !important;
    overflow-x: hidden !important;
  }

  html body.yz-booking-site {
    width: 580px !important;
    max-width: 580px !important;
    min-width: 580px !important;
    min-height: 100vh !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    margin-left: calc((100vw - 580px) / 2) !important;
    margin-right: calc((100vw - 580px) / 2) !important;
    background: #fff !important;
    box-shadow: 0 0 0 1px rgba(7, 94, 165, .06), 0 22px 70px rgba(18, 55, 96, .16) !important;
    overflow-x: hidden !important;
    overflow-y: visible !important;
    position: relative !important;
    left: auto !important;
    right: auto !important;
    transform: none !important;
  }

  body.yz-booking-site > main,
  body.yz-booking-site > footer,
  body.yz-booking-site > section,
  body.yz-booking-site > .yz-booking-home,
  body.yz-booking-site > .yz-booking-detail-main,
  body.yz-booking-site > .yz-ships-main,
  body.yz-booking-site > .yz-series-main,
  body.yz-booking-site > .yz-schedule-main,
  body.yz-booking-site > .yz-order-page-main,
  body.yz-booking-site > .yz-login-main {
    position: relative !important;
    left: auto !important;
    width: 100% !important;
    max-width: 580px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    transform: none !important;
    overflow-x: hidden !important;
  }

  body.yz-booking-site .container {
    max-width: 100% !important;
    min-width: 0 !important;
  }

  body.yz-booking-site.page-booking-home .yz-booking-mobile-nav.yz-shell-simple-tabbar,
  body.yz-booking-site .yz-booking-mobile-nav.yz-shell-simple-tabbar {
    left: 50% !important;
    right: auto !important;
    width: 580px !important;
    max-width: 580px !important;
    transform: translateX(-50%) !important;
  }

  body.yz-booking-site .yz-detail-fixed-booking {
    position: fixed !important;
    left: 50% !important;
    right: auto !important;
    bottom: 0 !important;
    width: 580px !important;
    max-width: 580px !important;
    max-height: calc(56px + env(safe-area-inset-bottom, 0px)) !important;
    min-height: 56px !important;
    height: calc(56px + env(safe-area-inset-bottom, 0px)) !important;
    display: grid !important;
    grid-template-columns: 70px 70px 70px minmax(0, 1fr) !important;
    align-items: center !important;
    transform: translateX(-50%) !important;
    z-index: 100000 !important;
    overflow: hidden !important;
  }

  body.yz-booking-site .yz-shell-simple-topbar,
  body.yz-booking-site .yz-booking-mobile-nav.yz-shell-simple-tabbar,
  body.yz-booking-site .yz-detail-fixed-booking {
    position: fixed !important;
    left: 50% !important;
    right: auto !important;
    width: 580px !important;
    max-width: 580px !important;
    transform: translateX(-50%) !important;
  }

  body.yz-booking-site .yz-shell-simple-topbar {
    top: 0 !important;
    height: 44px !important;
    min-height: 44px !important;
    max-height: 44px !important;
  }

  html body.yz-booking-site.page-booking-order .yz-order-page-main,
  html body.yz-booking-site.page-booking-order .yz-order-page-hero,
  html body.yz-booking-site.page-booking-order .yz-order-page-layout {
    position: relative !important;
    left: auto !important;
    width: 580px !important;
    max-width: 580px !important;
    min-width: 0 !important;
    margin-left: auto !important;
    margin-right: auto !important;
    transform: none !important;
    overflow-x: hidden !important;
    box-sizing: border-box !important;
  }

  html body.yz-booking-site.page-booking-series .yz-series-tabs,
  html body.yz-booking-site.page-booking-series .yz-series-list {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }

  html body.yz-booking-site.page-booking-series .yz-series-tabs {
    display: flex !important;
    flex-wrap: nowrap !important;
    contain: layout paint !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    overscroll-behavior-x: contain !important;
  }

  html body.yz-booking-site.page-booking-series .yz-series-tabs button {
    flex: 0 0 auto !important;
  }

  html:has(body.yz-booking-site.page-booking-series),
  html body.yz-booking-site.page-booking-series {
    overflow-x: hidden !important;
  }

  html body.yz-booking-site.page-booking-home nav.yz-booking-mobile-nav.yz-shell-simple-tabbar > a::before,
  html body.yz-booking-site.page-booking-home nav.yz-booking-mobile-nav.yz-shell-simple-tabbar > a::after,
  html body.yz-booking-site.page-booking-home nav.yz-booking-mobile-nav.yz-shell-simple-tabbar > a span::before,
  html body.yz-booking-site.page-booking-home nav.yz-booking-mobile-nav.yz-shell-simple-tabbar > a span::after,
  html body.yz-booking-site.page-booking-home nav.yz-booking-mobile-nav.yz-shell-simple-tabbar > a i,
  html body.yz-booking-site.page-booking-home nav.yz-booking-mobile-nav.yz-shell-simple-tabbar > a .icon,
  html body.yz-booking-site.page-booking-home nav.yz-booking-mobile-nav.yz-shell-simple-tabbar > a .fa {
    content: none !important;
    display: none !important;
    visibility: hidden !important;
    width: 0 !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    background: none !important;
    border: 0 !important;
    box-shadow: none !important;
  }

  html body.yz-booking-site.page-booking-home nav.yz-booking-mobile-nav.yz-shell-simple-tabbar > a > svg {
    display: block !important;
    flex: 0 0 17px !important;
    width: 17px !important;
    height: 17px !important;
    margin: 0 !important;
  }

  html body.yz-booking-site.page-booking-home nav.yz-booking-mobile-nav.yz-shell-simple-tabbar > a > span {
    display: block !important;
    flex: 0 0 auto !important;
    margin: 0 !important;
    padding: 0 !important;
  }
}

/* yz-ad-sr-only-final-hide */
.yz-booking-site .sr-only,
.yz-booking-home > h1.sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* yz-ad-order-bottom-safe-space */
.page-booking-order .yz-booking-main,
.page-booking-order .yz-order-main,
.page-booking-order main {
  padding-bottom: 128px !important;
}
