/* Public layout shared by tours, rentals and account pages. */
:root {
  --sx-page-width:1200px;
  --sx-page-gutter:5%;
  --sx-ui-radius:16px;
  --sx-ui-line:#d9dde0;
  --sx-ui-hover:#edf3f7;
  --sx-ui-selected:#e1eef7
}
.sx-site-header {
  position:relative;
  z-index:60;
  background:#fff;
  color:#252525;
  font:14px/1.4 Arial,"PingFang SC",sans-serif
}
.sx-site-header.is-dark {
  background:#272727;
  color:#fff
}
.sx-site-header__inner,.sx-rental-page .re-wrap,.sx-reference-content,.sx-tour-catalog__shell {
  width:min(90%,var(--sx-page-width));
  margin-inline:auto
}
.sx-site-header a {
  color:inherit;
  text-decoration:none
}
.sx-site-header__top {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  min-height:48px
}
.sx-site-brand,.sx-site-header__identity,.sx-site-account {
  display:flex;
  align-items:center;
  gap:8px
}
.sx-site-brand img {
  display:block;
  width:32px;
  height:22px;
  object-fit:contain
}
.sx-site-brand strong {
  font-size:17px;
  white-space:nowrap
}
.sx-site-header__identity {
  gap:20px
}
.sx-site-account {
  font-size:12px;
  color:inherit
}
.sx-site-account .sx-icon {
  width:20px;
  height:20px
}
.sx-site-currency {
  color:inherit
}
.sx-site-currency button {
  color:inherit;
  font-size:12px
}
.sx-site-currency img {
  max-width:27px;
  max-height:18px
}
.sx-site-nav {
  display:none;
  align-items:center;
  justify-content:space-between;
  min-height:40px;
  border-top:1px solid #8886;
  font-size:12px
}
.sx-site-nav.is-open { display:flex; }
.sx-site-nav>div {
  display:flex;
  gap:20px
}
.sx-site-nav a {
  padding-block:10px
}
.sx-site-nav a:hover,.sx-site-nav a[aria-current] {
  text-decoration:underline;
  text-underline-offset:5px
}
.sx-site-menu {
  display:flex;
  align-items:center;
  gap:12px;
  width:100%;
  min-height:48px;
  background:transparent;
  border:0;
  border-top:1px solid #8886;
  color:inherit;
  padding:12px 0;
  font:inherit;
  text-align:left;
  cursor:pointer
}
.sx-site-menu:hover { color:#90bce3; }
.sx-site-menu:focus-visible { outline:2px solid #4289ef; outline-offset:2px; }
.sx-site-menu .sx-icon {
  width:22px;
  height:22px
}
.sx-product-footer__hours p,.sx-product-footer__hours p * {
  font-weight:400
}
.sx-product-footer__wave {
  display:block;
  object-fit:cover;
  height:64px
}
.sx-product-footer {
  padding-bottom:85px;
  min-height:0
}
.sx-product-footer__contact-track {
  padding-top:90px
}
.sx-product-footer__lower {
  padding-bottom:30px
}
.sx-product-footer__filing {
  margin-bottom:25px
}
.sx-product-footer__social-item>button {
  display:flex;
  align-items:center;
  gap:13px;
  background:none;
  border:0;
  padding:0;
  color:inherit;
  cursor:pointer
}
.sx-product-footer__social-item>button:hover {
  opacity:.78
}
.sx-product-footer__social-item button img {
  max-height:24px;
  max-width:84px
}
.sx-product-footer__social-item button:focus-visible {
  outline:2px solid currentColor;
  outline-offset:6px
}
.sx-ui-dialog {
  width:min(480px,calc(100% - 32px));
  max-height:90dvh;
  margin:auto;
  border:1px solid #ffffffa8;
  border-radius:22px;
  padding:28px;
  color:#242729;
  background:rgb(255 255 255 / 90%);
  backdrop-filter:blur(24px);
  box-shadow:0 20px 80px #0003;
  overflow:auto
}
.sx-ui-dialog::backdrop {
  background:#15202b66;
  backdrop-filter:blur(4px)
}
.sx-ui-dialog[open] {
  animation:sx-ui-enter .18s ease-out
}
.sx-ui-dialog .sx-ui-close {
  display:block;
  margin-left:auto;
  border:0;
  background:transparent;
  font-size:25px;
  line-height:1;
  cursor:pointer;
  padding:4px
}
.sx-ui-dialog h2 {
  font-size:22px;
  margin:6px 0 20px
}
.sx-ui-dialog p {
  font-size:14px;
  line-height:1.6
}
.sx-qr-dialog {
  text-align:center
}
.sx-qr-dialog img {
  width:min(258px,100%);
  height:auto;
  background:#fff;
  padding:12px
}
.sx-auth-tabs {
  display:flex;
  gap:8px;
  margin-bottom:20px
}
.sx-auth-tabs button {
  flex:1;
  border:1px solid var(--sx-ui-line);
  background:#fff8;
  padding:10px;
  border-radius:9px;
  cursor:pointer
}
.sx-auth-tabs button[aria-selected=true] {
  background:var(--sx-ui-selected);
  border-color:#8eb3ce
}
.sx-ui-dialog .sx-account-panel {
  background:none;
  border:0;
  box-shadow:none;
  padding:0
}
.sx-ui-dialog .sx-account-form {
  display:grid;
  gap:14px
}
.sx-ui-dialog label {
  display:grid;
  gap:5px;
  font-size:14px
}
.sx-ui-dialog input:not([type=checkbox]) {
  width:100%;
  height:42px;
  border:1px solid #cbd0d5;
  border-radius:8px;
  background:#ffffffb3;
  padding:8px 12px;
  font:inherit
}
.sx-ui-dialog .sx-account-check {
  display:flex;
  align-items:start
}
.sx-ui-dialog .sx-account-form>button {
  border:0;
  border-radius:10px;
  background:#272727;
  color:white;
  padding:12px;
  cursor:pointer
}
.sx-ui-dialog [hidden] {
  display:none!important
}
body:has(.sx-ui-dialog[open]) {
  overflow:hidden
}
@keyframes sx-ui-enter {
  from {
    opacity:0;
    transform:translateY(10px)
  }
  to {
    opacity:1;
    transform:translateY(0)
  }
}
@media(max-width:640px) {
  :root {
    --sx-page-gutter:20px
  }
  .sx-site-header__inner,.sx-rental-page .re-wrap,.sx-reference-content {
    width:calc(100% - 40px)
  }
  .sx-site-header__top {
    min-height:54px
  }
  .sx-site-header__identity {
    gap:10px
  }
  .sx-site-brand strong {
    font-size:15px
  }
  .sx-site-brand img {
    width:28px;
    height:20px
  }
  .sx-site-account {
    gap:4px;
    font-size:11px
  }
  .sx-site-menu {
    display:flex
  }
  .sx-site-nav {
    display:none;
    padding:12px 0;
    gap:14px;
    align-items:flex-start
  }
  .sx-site-nav.is-open {
    display:flex
  }
  .sx-site-nav>div {
    flex-direction:column;
    gap:8px
  }
  .sx-site-nav a {
    display:block;
    padding:8px 0
  }
  .sx-product-footer__contact-track {
    padding-top:55px
  }
  .sx-product-footer__wave {
    display:block;
    height:44px
  }
  .sx-product-footer {
    padding-bottom:60px
  }
  .sx-product-footer__lower {
    height:auto;
    display:grid;
    gap:30px;
    margin:30px 20px;
    width:calc(100% - 40px)
  }
  .sx-product-footer__column {
    position:static;
    width:auto
  }
  .sx-product-footer__separator {
    margin-top:20px
  }
  .sx-product-footer__greeting {
    display:none
  }
}
@media(prefers-reduced-motion:reduce) {
  .sx-ui-dialog[open] {
    animation:none
  }
}
/* Shared compact floating surfaces, keeping each page's existing visibility logic. */
.sx-reference-floating-booking,.sx-home-mobile-nav,.re-search-wrap.is-docked .re-search,.sx-rental-page .re-mobile-total {
  border:1px solid #d9dde0aa;
  border-radius:var(--sx-ui-radius);
  background:rgb(255 255 255 / 90%);
  backdrop-filter:blur(20px);
  box-shadow:0 6px 26px #17263526
}
.sx-reference-floating-booking {
  width:min(90%,var(--sx-page-width));
  min-height:0
}
.sx-reference-floating-booking>.sx-reference-content {
  min-height:0;
  padding:16px 20px;
  gap:24px
}
.sx-rental-page .re-search-wrap.is-docked {
  width:min(90%,var(--sx-page-width));
  left:50%;
  right:auto;
  transform:translateX(-50%)
}
.sx-reference-floating-booking button,.sx-reference-floating-booking select,.sx-reference-floating-booking input,.re-search button,.sx-home-mobile-nav a {
  transition:background-color .18s,color .18s,box-shadow .18s
}
.sx-reference-floating-booking select:hover,.sx-reference-floating-booking input:hover,.re-search .sx-picker-trigger:hover,.sx-home-mobile-nav a:hover {
  background:var(--sx-ui-hover)
}
.sx-home-mobile-nav a.is-active,.sx-home-mobile-nav a[aria-current],.re-steps button.active {
  background:var(--sx-ui-selected);
  color:#286690
}
.sx-qr-dialog img {
  margin-inline:auto
}
/* Tour list: one dialog at every width, using the existing filter parameters. */
.sx-tour-desktop-filters {
  display:none!important
}
.sx-tour-mobile-filter-trigger {
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:10px 18px;
  background:white;
  border:1px solid #b4c5d4;
  border-radius:20px;
  font-size:14px;
  cursor:pointer
}
.sx-tour-mobile-filter-trigger .sx-icon {
  width:18px;
  height:18px
}
.sx-tour-mobile-sheet[hidden] {
  display:none!important
}
.sx-tour-mobile-sheet[open] {
  display:flex;
  flex-direction:column;
  position:fixed;
  inset:0;
  margin:auto;
  width:min(520px,calc(100% - 32px));
  max-height:90dvh;
  padding:0;
  border:1px solid #d9dde0;
  border-radius:20px;
  background:#fff;
  box-shadow:0 16px 70px #0003;
  overflow:hidden
}
.sx-tour-mobile-sheet::backdrop {
  background:#18212b66;
  backdrop-filter:blur(3px)
}
.sx-tour-mobile-sheet>header {
  display:flex;
  align-items:center;
  justify-content:space-between;
  min-height:60px;
  padding:12px 24px;
  border-bottom:1px solid #ddd;
  box-shadow:none
}
.sx-tour-mobile-sheet>header h2 {
  font-size:20px;
  margin:0
}
.sx-tour-mobile-sheet>header button {
  position:relative;
  width:36px;
  height:36px;
  border:0;
  background:transparent;
  cursor:pointer
}
.sx-tour-mobile-sheet>header button:before,.sx-tour-mobile-sheet>header button:after {
  content:'';
  position:absolute;
  left:8px;
  top:17px;
  width:20px;
  height:2px;
  background:#333;
  transform:rotate(45deg)
}
.sx-tour-mobile-sheet>header button:after {
  transform:rotate(-45deg)
}
.sx-tour-mobile-sheet__body {
  overflow:auto;
  min-height:0;
  padding:20px 24px;
  display:flex;
  flex-direction:column;
  gap:18px
}
.sx-tour-mobile-field {
  display:block;
  padding:0!important;
  border:0
}
.sx-tour-mobile-field>strong {
  display:block;
  font-size:14px;
  margin-bottom:8px
}
.sx-tour-mobile-field input,.sx-tour-mobile-field select {
  width:100%;
  height:42px;
  border:1px solid #c5cbd0;
  border-radius:8px;
  font-size:14px;
  padding:8px 12px;
  background:white;
  color:#333;
  font-weight:400
}
.sx-tour-mobile-sheet__apply {
  margin-top:10px;
  min-height:44px;
  border:0;
  border-radius:10px;
  font-size:14px;
  background:#e36125;
  color:white;
  cursor:pointer
}
.sx-tour-mobile-field .sx-tour-duration-fields {
  gap:12px
}
/* Itinerary information: content determines height and every fee table shares columns. */
.sx-reference-term-row {
  grid-template-columns:minmax(100px,22%) minmax(0,1fr)
}
.sx-reference-term-label {
  padding:16px;
  font-size:14px
}
.sx-reference-term-values {
  padding:16px;
  min-height:0;
  gap:6px
}
.sx-reference-term-values p {
  font-size:14px;
  line-height:1.65;
  white-space:pre-line
}
.sx-reference-term-values p:empty {
  display:none
}
.sx-reference-term-table {
  border-radius:10px
}
.sx-reference-term-table,.sx-reference-term-label,.sx-reference-term-row+.sx-reference-term-row {
  border-color:var(--sx-ui-line)
}
/* Meal timeline geometry and type hierarchy from the current reference. */
.sx-reference-product .sx-reference-timeline:has(.sx-meal-v11)::before { display:none; }
.sx-reference-product .sx-reference-timeline .sx-meal-v11 {
  --meal-icon:26px;
  --meal-indent:54px;
  --meal-gap:32px;
  --meal-heading:18px;
  --meal-fact-icon:20px;
  --meal-fact-line:1.65;
  position:relative;
  display:grid;
  grid-template-columns:var(--meal-icon) minmax(0,1fr);
  gap:calc(var(--meal-indent) - var(--meal-icon));
  margin:0 0 var(--meal-gap);
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  color:#666;
}
.sx-reference-product .sx-reference-timeline .sx-meal-v11-icon {
  position:relative;
  width:var(--meal-icon);
  color:#333;
}
.sx-reference-product .sx-reference-timeline .sx-meal-v11-icon:after { content:none; }

.sx-reference-product .sx-reference-timeline .sx-meal-v11-icon svg {
  display:block;
  width:var(--meal-icon);
  height:var(--meal-icon);
}
.sx-reference-product .sx-reference-timeline .sx-meal-v11-body { min-width:0; border:0; padding:0; }
.sx-reference-product .sx-reference-timeline .sx-meal-v11 h4 {
  display:block;
  margin:0 0 14px!important;
  font-size:var(--meal-heading)!important;
  font-weight:700;
  line-height:1.5;
  color:#303033;
}
.sx-reference-product .sx-reference-timeline .sx-meal-v11 h5 {
  margin:0 0 12px;
  font-size:16px;
  font-weight:400;
  line-height:1.5;
  color:#0086b3;
  overflow-wrap:anywhere;
}
.sx-reference-product .sx-reference-timeline .sx-meal-v11 p {
  margin:12px 0 0;
  font-size:14px;
  font-weight:400;
  line-height:var(--meal-fact-line);
  white-space:normal;
  overflow-wrap:anywhere;
}
.sx-reference-product .sx-reference-timeline .sx-meal-v11-facts { display:grid; gap:12px; margin-top:14px; }
.sx-reference-product .sx-reference-timeline .sx-meal-v11-fact {
  display:flex;
  align-items:flex-start;
  gap:9px;
  min-width:0;
  font-size:14px;
  font-weight:400;
  line-height:var(--meal-fact-line);
  overflow-wrap:anywhere;
}
.sx-reference-product .sx-reference-timeline .sx-meal-v11-fact > svg {
  flex:0 0 var(--meal-fact-icon);
  width:var(--meal-fact-icon);
  height:var(--meal-fact-icon);
  margin-top:1px;
}
.sx-reference-product .sx-reference-timeline .sx-meal-v11-fact > span { min-width:0; }
.sx-reference-product .sx-reference-day-detail-timeline .sx-meal-v11 {
  --meal-icon:22px;
  --meal-indent:38px;
  --meal-gap:28px;
  --meal-heading:16px;
  --meal-fact-icon:18px;
  --meal-fact-line:1.6;
}
@media(max-width:360px) {
  .sx-reference-product .sx-reference-day-detail-timeline .sx-meal-v11 { --meal-icon:20px; --meal-indent:32px; }
}
.sx-reference-booking {
  gap:18px
}
.sx-reference-booking select,.sx-reference-booking input,.sx-reference-booking button {
  font-size:14px
}
.sx-reference-calendar-card {
  padding:18px;
  border-radius:16px
}
.sx-reference-calendar-grid {
  gap:4px
}
.sx-reference-calendar-grid>button,.sx-reference-calendar-grid>span {
  min-height:48px;
  border-radius:9px
}
.sx-reference-calendar-grid>button span {
  font-size:15px
}
.sx-reference-calendar-grid>button b {
  font-size:11px
}
.sx-reference-calendar-grid>button:hover:not(:disabled) {
  background:var(--sx-ui-hover)
}
.sx-reference-calendar-grid>button.is-selected {
  background:var(--sx-ui-selected);
  color:#245d87;
  box-shadow:inset 0 0 0 1px #82abc8
}
.sx-rental-page .re-stage-head h1 {
  display:flex;
  align-items:center;
  gap:10px;
  font-size:28px
}
.re-stage-enter {
  animation:sx-ui-enter .24s ease-out
}
.re-process-grid {
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  scroll-behavior:smooth;
  overscroll-behavior-x:contain
}
.re-process-grid>article {
  scroll-snap-align:start
}
.re-process-grid:focus-visible {
  outline:2px solid #347fba
}
@media(max-width:767px) {
  .sx-meal-v11 {
    padding:18px 14px;
    gap:12px
  }
  .sx-meal-v11 h4,.sx-meal-v11 h5 {
    font-size:16px!important
  }
  .sx-meal-v11 p,.sx-meal-v11 dl>div {
    font-size:14px
  }
  .sx-meal-v11 dl>div {
    grid-template-columns:20px auto minmax(0,1fr);
    gap:5px
  }
  .sx-reference-term-row {
    grid-template-columns:92px minmax(0,1fr)
  }
  .sx-reference-term-label,.sx-reference-term-values {
    padding:12px;
    font-size:13px
  }
  .sx-reference-term-values p {
    font-size:13px
  }
  .sx-reference-floating-booking {
    width:calc(100% - 40px)
  }
  .sx-reference-floating-booking>.sx-reference-content {
    padding:12px;
    gap:12px
  }
  .sx-rental-page .re-stage-head h1 {
    font-size:24px
  }
  .re-search {
    grid-template-columns:1fr;
    gap:16px;
    padding:20px
  }
  .re-search fieldset {
    grid-template-columns:1fr 1fr
  }
  .re-search>.re-button {
    width:100%;
    justify-self:stretch
  }
  .re-search small {
    grid-row:auto
  }
  .re-columns,.re-vehicle-grid,.re-insurance-grid {
    grid-template-columns:1fr
  }
  .re-vehicle-grid {
    margin-top:30px
  }
  .re-steps {
    overflow:auto;
    scroll-snap-type:x mandatory;
    grid-template-columns:repeat(4,minmax(100px,1fr))
  }
  .re-steps button {
    scroll-snap-align:start;
    font-size:12px
  }
  .re-process-grid {
    display:flex;
    gap:20px
  }
  .re-process-grid>article {
    flex:0 0 85%;
    min-width:0
  }
  .sx-rental-page .re-mobile-total {
    left:20px;
    right:20px;
    width:auto;
    max-width:var(--sx-page-width);
    margin-inline:auto
  }
  .re-trip {
    flex-wrap:wrap
  }
}
@media(prefers-reduced-motion:reduce) {
  .re-stage-enter {
    animation:none
  }
  .re-process-grid {
    scroll-behavior:auto
  }
}
.sx-picker-dialog {
  width:min(390px,calc(100% - 32px));
  padding:20px
}
.sx-picker-dialog>header {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-bottom:18px
}
.sx-picker-dialog>header h2 {
  font-size:18px;
  margin:0
}
.sx-picker-dialog .sx-ui-close {
  margin:0
}
.sx-picker-trigger {
  width:100%;
  min-height:40px;
  text-align:left;
  border:1px solid #d5d5d5;
  border-radius:6px;
  background:white;
  color:#444;
  padding:9px 10px;
  font-size:12px!important;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  cursor:pointer
}
.sx-picker-options {
  display:grid;
  gap:6px;
  max-height:60dvh;
  overflow:auto
}
.sx-picker-options button {
  border:1px solid transparent;
  background:#ffffff80;
  padding:12px;
  border-radius:8px;
  text-align:left;
  font-size:14px;
  cursor:pointer
}
.sx-picker-month {
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:18px
}
.sx-picker-month button {
  border:0;
  background:transparent;
  font-size:26px;
  cursor:pointer;
  width:40px;
  height:40px
}
.sx-picker-week,.sx-picker-days {
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  gap:4px;
  text-align:center
}
.sx-picker-week {
  font-size:12px;
  color:#777;
  margin-bottom:10px
}
.sx-picker-days button,.sx-picker-days>span {
  aspect-ratio:1;
  border:0;
  border-radius:9px;
  background:#fff8;
  font-size:14px;
  cursor:pointer
}
.sx-picker-days button:disabled {
  opacity:.3;
  cursor:default
}
.sx-picker-dialog button:hover:not(:disabled) {
  background:var(--sx-ui-hover)
}
.sx-picker-dialog button[aria-pressed=true] {
  background:var(--sx-ui-selected);
  box-shadow:inset 0 0 0 1px #82abc8;
  color:#245d87
}
.sx-picker-dialog button:focus-visible {
  outline:2px solid #347fba;
  outline-offset:1px
}
body.home:not(.shuxing-public-page) .sx-container {
  width:min(90%,var(--sx-page-width))
}
.sx-tour-catalog__content {
  width:100%;
  max-width:none
}
.sx-tour-catalog__content>h1 {
  font-size:28px
}
.sx-reference-price .sx-reference-price-amount {
  font-size:28px
}
.sx-reference-price small {
  font-size:13px
}
.sx-reference-book-button,.sx-reference-submit {
  min-height:44px;
  font-size:14px
}
.sx-reference-booking-fields {
  gap:10px
}
.sx-reference-anchor-nav button:hover {
  background:var(--sx-ui-hover)
}
.sx-reference-anchor-nav button.is-active {
  background:var(--sx-ui-selected)
}
@media(max-width:640px) {
  body.home:not(.shuxing-public-page) .sx-container,.sx-tour-catalog__shell {
    width:calc(100% - 40px)
  }
  .sx-tour-catalog__content>h1 {
    font-size:24px
  }
  .sx-reference-price .sx-reference-price-amount {
    font-size:24px
  }
  .sx-reference-floating-booking .sx-reference-booking-action .sx-reference-book-button {
    font-size:14px;
    min-height:42px
  }
}
.sx-reference-product-info h1 {
  font-size:32px;
  line-height:1.3
}
.sx-reference-product .sx-reference-day-story>h3 {
  font-size:26px;
  line-height:1.4
}
.sx-reference-product .sx-reference-information-heading h2,.sx-reference-product .sx-reference-itinerary-heading h2 {
  font-size:28px
}
.sx-reference-product .sx-reference-booking {
  min-height:0;
  padding:18px 22px;
  gap:24px
}
.sx-reference-floating-booking .sx-reference-booking-fields {
  width:min(420px,100%)
}
.sx-reference-floating-booking .sx-reference-booking-action {
  width:min(260px,100%);
  gap:8px
}
.sx-reference-product .sx-reference-book-button {
  min-height:40px;
  font-size:14px
}
.sx-reference-booking-date {
  min-height:40px;
  border-radius:8px
}
.sx-reference-booking-guest-display {
  min-height:36px;
  font-size:12px
}
.sx-reference-booking-guests select {
  height:36px
}
.sx-reference-booking-guests label:after {
  top:12px
}
.sx-reference-booking-guests {
  margin-bottom:6px
}
.sx-tour-mobile-filter-trigger {
  margin-top:18px
}
.sx-tour-results {
  margin-top:45px
}
@media(max-width:640px) {
  .sx-reference-product-info h1 {
    font-size:26px
  }
  .sx-reference-product .sx-reference-day-story>h3 {
    font-size:22px
  }
  .sx-reference-product .sx-reference-information-heading h2,.sx-reference-product .sx-reference-itinerary-heading h2 {
    font-size:24px
  }
  .sx-reference-product .sx-reference-booking {
    padding:16px;
    gap:14px
  }
  .sx-reference-floating-booking .sx-reference-booking-action {
    width:100%
  }
}
.sx-picker-dialog {
  background:#fff
}
.sx-meal-v11 p {
  white-space:pre-line
}
.sx-product-footer__greeting {
  position:relative;
  top:auto;
  right:auto;
  width:min(90%,var(--sx-page-width));
  margin:0 auto;
  text-align:right;
  font-size:44px;
  line-height:1.3
}
.sx-product-footer__email {
  min-height:0;
  font-size:44px;
  line-height:1.4;
  letter-spacing:0
}
.sx-product-footer__phone {
  min-height:0;
  font-size:18px;
  line-height:1.6;
  margin-top:8px
}
.sx-product-footer__offices {
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:24px 50px;
  grid-auto-rows:minmax(70px,auto)
}
.sx-reference-anchor-nav {
  width:min(90%,var(--sx-page-width));
  margin-inline:auto;
  top:8px;
  border:1px solid #d9dde0aa;
  border-radius:var(--sx-ui-radius);
  background:rgb(255 255 255 / 90%);
  box-shadow:0 6px 26px #17263526;
  overflow:hidden
}
.sx-reference-anchor-nav>.sx-reference-content {
  width:100%;
  padding-inline:8px
}
.sx-reference-anchor-nav button {
  border-radius:10px;
  margin-block:5px;
  min-height:40px
}
.sx-reference-anchor-nav button.is-active:after {
  display:none
}
@media(max-width:640px) {
  .sx-product-footer__email {
    font-size:28px
  }
  .sx-product-footer__phone {
    font-size:14px
  }
  .sx-product-footer__offices {
    grid-template-columns:1fr;
    gap:24px
  }
  .sx-product-footer__hours.is-hours-1 {
    grid-area:auto
  }
  .sx-product-footer__lower {
    grid-template-columns:1fr;
    padding-left:0
  }
  .sx-product-footer__lower .sx-product-footer__column {
    width:100%
  }
  .sx-reference-anchor-nav {
    width:calc(100% - 40px)
  }
  .sx-reference-anchor-nav button {
    min-width:65px;
    padding-inline:8px
  }
  .sx-rental-page .re-confirm-total {
    left:20px;
    right:20px;
    border:1px solid #d9dde0aa;
    border-radius:var(--sx-ui-radius);
    background:rgb(255 255 255 / 90%);
    box-shadow:0 6px 26px #17263526
  }
}
.sx-reference-booking-date {
  width:100%;
  border:1px solid #d9dde0;
  background:#fff;
  color:#333;
  text-align:left;
  cursor:pointer
}
.sx-reference-booking-date:hover {
  background:var(--sx-ui-hover)
}
.sx-reference-calendar-day b {
  font-size:14px
}
@media(max-width:640px) {
  .sx-reference-floating-booking .sx-reference-booking-action {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
    align-items:center
  }
  .sx-reference-floating-booking .sx-reference-price {
    flex-wrap:wrap;
    gap:3px
  }
  .sx-reference-floating-booking .sx-reference-price-label {
    display:none
  }
  .sx-reference-floating-booking .sx-reference-price-amount {
    font-size:20px
  }
  .sx-reference-floating-booking .sx-reference-price small {
    font-size:10px
  }
  .sx-reference-floating-booking .sx-reference-book-button {
    width:100%;
    padding:10px 8px
  }
}
/* Mobile footer follows the reference's vertical reading order. */
.sx-product-footer__social-label--mobile { display:none; }
.sx-product-footer__wave img { display:block; width:100%; height:100%; object-fit:cover; }
@media(max-width:750px) {
  body:has(> .sx-product-footer) { padding-bottom:0; }
  .sx-product-footer { padding-bottom:0; min-height:0; }
  .sx-product-footer__contact-track { width:calc(100% - 40px); margin-inline:20px; padding-top:55px; }
  .sx-product-footer__email { font-size:28px; white-space:normal; }
  .sx-product-footer__phone { font-size:14px; white-space:normal; }
  .sx-product-footer__offices { grid-template-columns:repeat(2,minmax(0,1fr)); gap:25px; grid-auto-rows:auto; }
  .sx-product-footer__office.is-office-1 { grid-area:1 / 1; }
  .sx-product-footer__office.is-office-2 { grid-area:1 / 2; }
  .sx-product-footer__office.is-office-3 { grid-area:2 / 1 / auto / span 2; }
  .sx-product-footer__hours.is-hours-1 { grid-area:3 / 1 / auto / span 2; }
  .sx-product-footer__greeting { display:none; }
  .sx-product-footer__separator { width:calc(100% - 40px); margin:40px 20px 0; }
  .sx-product-footer .sx-product-footer__lower,
  body.home:not(.shuxing-public-page) .sx-product-footer__lower {
    display:flex; flex-direction:column; align-items:flex-start; gap:56px;
    width:calc(100% - 40px); height:auto; margin:40px 20px 0; padding:0;
  }
  .sx-product-footer .sx-product-footer__lower .sx-product-footer__column,
  body.home:not(.shuxing-public-page) .sx-product-footer__lower .sx-product-footer__column {
    position:static; width:100%; max-width:100%;
  }
  .sx-product-footer__column h2 { font-size:22px; line-height:32px; }
  .sx-product-footer__title-rule { width:42px; height:2px; margin:8px 0 0; }
  .sx-product-footer__links,.sx-product-footer__social-list { margin:20px 0 0; }
  .sx-product-footer__links a,.sx-product-footer__links span { font-size:16px; line-height:24px; min-height:24px; }
  .sx-product-footer__information .sx-product-footer__links,
  .sx-product-footer__services .sx-product-footer__links { gap:12px; }
  .sx-product-footer__social-list { gap:18px; }
  .sx-product-footer .sx-product-footer__social-item.is-rednote { order:1; }
  .sx-product-footer .sx-product-footer__social-item.is-wechat { order:2; }
  body.home:not(.shuxing-public-page) .sx-product-footer__social-item.is-wechat { order:2; }
  .sx-product-footer__social-item>button { gap:13px; font-size:15px; }
  .sx-product-footer__social-item button img { width:27px; max-width:27px; height:24px; max-height:24px; }
  .sx-product-footer__social-label--desktop { display:none; }
  .sx-product-footer__social-label--mobile { display:inline; }
  .sx-product-footer__filing { margin:64px 20px 24px; font-size:11px; }
  .sx-product-footer__wave {
    position:relative; display:block; width:100%; height:auto; aspect-ratio:1 / .2568871;
    inset:auto; margin:0; background:#272727;
  }
  .sx-product-footer__wave img { position:absolute; inset:0; object-position:center; }
}
.sx-reference-product>.sx-reference-section.sx-reference-content {
  width:min(90%,var(--sx-page-width))
}
@media(max-width:640px) {
  .sx-reference-product>.sx-reference-section.sx-reference-content {
    width:calc(100% - 40px)
  }
}
body.home:not(.shuxing-public-page) .sx-home-intro h2,body.home:not(.shuxing-public-page) .sx-home-hero h1,body.home .sx-home-benefits__heading h2 {
  font-size:36px
}
.sx-home-contact-rail {
  border:0;
  cursor:pointer;
  font:inherit
}
.sx-home-contact-rail:hover {
  background:#455047
}
@media(max-width:640px) {
  body.home:not(.shuxing-public-page) .sx-home-intro h2,body.home:not(.shuxing-public-page) .sx-home-hero h1,body.home .sx-home-benefits__heading h2 {
    font-size:28px
  }
}
.sx-site-header .sx-icon {
  fill:none;
  stroke:currentColor;
  stroke-width:1.8
}
.sx-site-header .screen-reader-text,.sx-skip-link:not(:focus) {
  position:absolute;
  width:1px;
  height:1px;
  margin:-1px;
  padding:0;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap
}
.sx-account-shell {
  width:min(90%,var(--sx-page-width))
}
@media(max-width:640px) {
  .sx-account-shell {
    width:calc(100% - 40px)
  }
}
@media(max-width:767px) {
  .sx-rental-page .re-steps {
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:5px
  }
  .sx-rental-page .re-steps button {
    font-size:11px;
    white-space:normal;
    text-align:center;
    padding-inline:2px
  }
  .sx-rental-page .re-step-label {
    margin-left:3px
  }
}

/* Full-screen service navigation, shared across public pages. */
body.sx-nav-open { overflow:hidden; }
.sx-site-menu { border:0; color:inherit; letter-spacing:.08em; font-weight:500; }
.sx-site-header.is-dark .sx-site-menu { color:#d3d5d7; }
.sx-site-header .sx-service-dialog { position:fixed; inset:0; width:100vw; height:100dvh; max-width:none; max-height:none; margin:0; padding:0; border:0; background:transparent; overflow:hidden; color:white; font-family:-apple-system,BlinkMacSystemFont,'PingFang SC',sans-serif; }
.sx-service-dialog::backdrop { background:#0a10164d; }
.sx-service-panel { position:absolute; inset:0 auto 0 0; width:45%; height:100%; background:linear-gradient(135deg,#1f2328db,#14191ed4); backdrop-filter:blur(30px) saturate(115%); -webkit-backdrop-filter:blur(30px) saturate(115%); border-right:1px solid #ffffff1a; }
.sx-service-close { position:absolute; left:clamp(28px,4vw,80px); top:28px; display:flex; align-items:center; gap:20px; height:44px; padding:0; border:0; background:transparent; color:#fff; font:500 15px/1 -apple-system,BlinkMacSystemFont,sans-serif; letter-spacing:3px; cursor:pointer; }
.sx-service-close svg { flex:0 0 22px; }
.sx-service-panel nav { position:absolute; top:50%; right:clamp(28px,3vw,64px); transform:translateY(-50%); display:flex; flex-direction:column; align-items:flex-end; gap:clamp(14px,2.5vh,28px); max-height:calc(100dvh - 160px); padding:8px; overflow:auto; }
.sx-site-header .sx-service-panel nav a { display:block; padding:10px 0; color:#a8adb3; font-size:clamp(18px,1.5vw,25px); line-height:1.5; font-weight:500; letter-spacing:.12em; text-decoration:none; transition:color .25s; }
.sx-site-header .sx-service-panel nav a:is(:hover,:focus-visible) { color:white; }
.sx-service-dialog :focus-visible { outline:2px solid #007aff; outline-offset:6px; border-radius:4px; }
.sx-service-dialog[open] nav a { animation:sx-service-enter .65s cubic-bezier(.22,1,.36,1) both; animation-delay:calc(80ms + var(--item-index)*70ms); }
.sx-service-photo { position:absolute; left:45%; top:0; width:55%; height:100%; overflow:hidden; opacity:0; transition:opacity .25s; }
.sx-service-dialog.has-preview .sx-service-photo { opacity:1; }
.sx-service-photo img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; transition:opacity .45s; }
.sx-service-photo img.is-active { opacity:1; }
.sx-service-photo img:nth-child(1) { object-position:38% 58%; }
.sx-service-photo img:nth-child(2) { object-position:50% 100%; }
.sx-service-photo img:nth-child(3) { object-position:49% 58%; }
.sx-service-photo img:nth-child(4) { object-position:52% 62%; }
.sx-service-photo img:nth-child(5) { object-position:50% 53%; }
@keyframes sx-service-enter { from { opacity:0; transform:translateX(calc(-65px - var(--item-index)*18px)); } to { opacity:1; transform:translateX(0); } }
@media(max-width:760px) {
 .sx-site-menu { font-size:13px; gap:10px; }
 .sx-service-panel { width:100%; border:0; background:linear-gradient(135deg,#0e161db8,#090d14e0); backdrop-filter:blur(28px); -webkit-backdrop-filter:blur(28px); }
 .sx-service-close { left:24px; top:max(20px,env(safe-area-inset-top)); }
 .sx-service-panel nav { right:24px; width:calc(100% - 48px); gap:22px; max-height:calc(100dvh - 150px); }
 .sx-site-header .sx-service-panel nav a { font-size:21px; min-height:44px; color:#b9bec5; }
 .sx-service-photo { left:0; width:100%; }
 .sx-service-dialog.has-preview .sx-service-photo { opacity:.65; }
 .sx-service-photo img { filter:blur(8px); transform:scale(1.06); }
}
@media(prefers-reduced-motion:reduce) { .sx-service-dialog * { animation:none!important; transition:none!important; } }
.sx-service-close span { letter-spacing:3px; font:inherit; }
.sx-site-header .sx-service-dialog :focus-visible { outline:2px solid #007aff; outline-offset:6px; }

/* Product detail reading hierarchy and a single measured timeline per day. */
.sx-reference-product .sx-reference-timeline { position:relative; }
.sx-reference-product .sx-reference-timeline::before,
.sx-reference-product .sx-reference-timeline .sx-meal-v11-icon::after { content:none!important; }
.sx-day-timeline-line { position:absolute; width:1px; background:#d9dde2; pointer-events:none; z-index:0; transform:translateX(-50%); }
.sx-reference-product .sx-reference-timeline .sx-itinerary-card,
.sx-reference-product .sx-reference-timeline .sx-meal-v11 { grid-template-columns:26px minmax(0,1fr); column-gap:28px; }
.sx-reference-product .sx-reference-timeline .sx-itinerary-card__icon,
.sx-reference-product .sx-reference-timeline .sx-meal-v11-icon { display:grid; place-items:center; width:26px; height:26px; margin:0; position:relative; z-index:1; border-radius:0; background:#f5f5f7; }
.sx-reference-product .sx-reference-timeline .sx-itinerary-card__icon > *,
.sx-reference-product .sx-reference-timeline .sx-meal-v11-icon > svg { width:26px; height:26px; display:block; }
.sx-reference-product .sx-reference-timeline .sx-itinerary-card__body { padding-top:0; }
.sx-reference-product .sx-reference-timeline .sx-itinerary-card__meta { font-size:18px; font-weight:700; line-height:27px; }
.sx-reference-product .sx-reference-timeline .sx-itinerary-card__heading h4,
.sx-reference-product .sx-reference-timeline .sx-place-entry__body > header strong { font-size:16px; font-weight:700; line-height:24px; }
.sx-reference-product .sx-reference-timeline .sx-itinerary-entry p,
.sx-reference-product .sx-reference-timeline .sx-itinerary-card__body > p,
.sx-reference-product .sx-reference-timeline address,
.sx-reference-product .sx-reference-timeline .sx-itinerary-entry__details dt,
.sx-reference-product .sx-reference-timeline .sx-itinerary-entry__details dd,
.sx-reference-product .sx-reference-timeline .card-detail-grid dt,
.sx-reference-product .sx-reference-timeline .card-detail-grid dd { font-size:14px; font-weight:400; line-height:23.1px; }
.sx-reference-product .sx-reference-day-story > h4 { font-size:14px; font-weight:400; line-height:21.7px; }
.sx-reference-product .sx-reference-day-story > h5 { font-size:18px; font-weight:600; line-height:27px; }
@media(min-width:761px) {
  .sx-reference-product #itinerary > h2 { font-size:36px; font-weight:700; }
  .sx-reference-product .sx-reference-day-story > h3 { font-size:32px; font-weight:700; line-height:1.3; }
  .sx-reference-product .sx-reference-day-tabs > button { font-size:15px; font-weight:600; line-height:24px; }
}
@media(max-width:760px) {
  .sx-reference-product .sx-reference-day-detail-timeline .sx-itinerary-card,
  .sx-reference-product .sx-reference-day-detail-timeline .sx-meal-v11 { grid-template-columns:22px minmax(0,1fr); column-gap:16px; }
  .sx-reference-product .sx-reference-day-detail-timeline .sx-itinerary-card__icon,
  .sx-reference-product .sx-reference-day-detail-timeline .sx-meal-v11-icon,
  .sx-reference-product .sx-reference-day-detail-timeline .sx-itinerary-card__icon > *,
  .sx-reference-product .sx-reference-day-detail-timeline .sx-meal-v11-icon > svg { width:22px; height:22px; background:#f7f9fc; }
  .sx-reference-product .sx-reference-day-detail-timeline .sx-itinerary-card__meta { font-size:16px; line-height:24px; }
  .sx-reference-product .sx-reference-day-detail-timeline .sx-itinerary-entry p,
  .sx-reference-product .sx-reference-day-detail-timeline address,
  .sx-reference-product .sx-reference-day-detail-timeline .sx-itinerary-entry__details dt,
  .sx-reference-product .sx-reference-day-detail-timeline .sx-itinerary-entry__details dd,
  .sx-reference-product .sx-reference-day-detail-timeline .sx-itinerary-card__mobile-facts > div,
  .sx-reference-product .sx-reference-day-detail-timeline .sx-itinerary-card__mobile-facts dt,
  .sx-reference-product .sx-reference-day-detail-timeline .sx-itinerary-card__mobile-facts dd { font-size:14px; font-weight:400; line-height:22.4px; }
  .sx-reference-product .sx-reference-day-detail-timeline .sx-place-entry__description { grid-column:1 / -1; margin:10px 0 0; }
  .sx-reference-product .sx-reference-day-detail-timeline .sx-place-entry.has-image { align-items:start; }
}
@media(max-width:360px) {
  .sx-reference-product .sx-reference-day-detail-timeline .sx-itinerary-card,
  .sx-reference-product .sx-reference-day-detail-timeline .sx-meal-v11 { grid-template-columns:20px minmax(0,1fr); column-gap:12px; }
  .sx-reference-product .sx-reference-day-detail-timeline .sx-itinerary-card__icon,
  .sx-reference-product .sx-reference-day-detail-timeline .sx-meal-v11-icon,
  .sx-reference-product .sx-reference-day-detail-timeline .sx-itinerary-card__icon > *,
  .sx-reference-product .sx-reference-day-detail-timeline .sx-meal-v11-icon > svg { width:20px; height:20px; }
}
/* Sharing has one entry between the gallery and overview at every viewport. */
.sx-reference-share-row { grid-area:share; display:flex; align-items:center; justify-content:flex-end; position:relative; min-width:0; padding:12px 0; }
.sx-reference-share-row .sx-reference-share { height:36px!important; padding:0 6px!important; border:0!important; background:transparent!important; box-shadow:none; cursor:pointer; }
.sx-reference-share-row .sx-reference-share .sx-icon { width:20px; height:20px; }
.sx-share-dialog { width:min(420px,calc(100% - 32px)); margin:auto; padding:24px; border:1px solid #ffffffc7; border-radius:22px; background:rgba(237,238,238,.75); -webkit-backdrop-filter:blur(5px); backdrop-filter:blur(5px); box-shadow:0 16px 60px #18263733; color:#202124; }
.sx-share-dialog header { display:flex; align-items:center; justify-content:space-between; margin-bottom:20px; }
.sx-share-dialog h2 { margin:0; font-size:22px; font-weight:600; line-height:1.4; }
.sx-share-dialog header button { width:32px; height:32px; padding:0; border:0; border-radius:50%; background:#ffffffa8; font:inherit; font-size:26px; cursor:pointer; }
.sx-share-dialog input { width:100%; min-width:0; min-height:44px; padding:10px 12px; border:1px solid #d8dde3; border-radius:10px; background:#ffffffcf; font:inherit; font-size:14px; color:#39424d; }
.sx-share-dialog .sx-share-copy { display:block; min-height:44px; margin:20px auto 0; padding:10px 32px; border:0; border-radius:99px; background:#2c7cc2; color:#fff; font:inherit; font-size:15px; cursor:pointer; }
.sx-share-dialog p { min-height:22px; margin:10px 0 0; font-size:14px; line-height:22px; text-align:center; }
.sx-share-dialog :focus-visible { outline:2px solid #2c7cc2; outline-offset:3px; }

@media(max-width:760px) { .sx-reference-share-row .sx-reference-share { height:44px!important; min-height:44px; } }

/* Current 1.11 card assets and expanded fee separators. */
.sx-reference-product .sx-itinerary-card__icon img,.sx-reference-product .sx-meal-v11-icon img { width:24px!important; height:24px!important; object-fit:contain; filter:none!important; }
.sx-reference-product .sx-meal-v11-icon { align-items:center; justify-content:center; }
.sx-reference-term-group[open] > summary { border-bottom-color:transparent; }
.sx-reference-product .sx-reference-share-row { padding:0; min-height:60px; align-items:center; }
/* Include the thumbnail gap in the phone share row so its control is centered
   between the visible thumbnails and product information. */
@media(max-width:700px) {
 .sx-reference-product .sx-reference-mobile-thumbnails { margin-bottom:0; }
 .sx-reference-product .sx-reference-share-row { min-height:92px; }
}
.re-stage-head h1 { display:flex; align-items:center; gap:12px; }
.re-stage-head .re-confirm-back { display:grid; place-items:center; flex:none; margin:0!important; padding:0!important; width:26px!important; height:32px; line-height:1; }
.re-stage-head .re-confirm-back svg { display:block; width:24px; height:24px; stroke-linecap:round; stroke-linejoin:round; }
/* A clipped three-slot strip, separate from the untouched phone day navigation. */
@media(min-width:761px) {
 .sx-reference-day-switcher { display:grid; grid-template-columns:40px minmax(0,1fr) 40px; gap:4px; align-items:center; width:min(620px,100%); height:48px; padding:4px; margin:40px auto 28px; border:1px solid #fff8; border-radius:99px; background:linear-gradient(120deg,#e7ebefcf,#f2f3f6d9); backdrop-filter:blur(12px); box-shadow:0 6px 24px #1c2e4710; }
 .sx-reference-day-switcher > button { display:grid; place-items:center; width:38px; height:38px; padding:0; border:1px solid #fffa; border-radius:50%; background:#ffffff55; color:#626b70; cursor:pointer; }
 .sx-reference-day-switcher > button:disabled { opacity:.3; cursor:default; }
 .sx-reference-day-switcher .sx-reference-day-tabs { display:flex; overflow:hidden; height:40px; margin:0; border:0; padding:0; width:100%; }
 .sx-reference-product .sx-reference-day-switcher .sx-reference-day-tabs > button { display:flex; align-items:center; justify-content:center; flex:0 0 calc(100% / var(--sx-day-slots,3)); min-width:0; min-height:40px; height:40px; padding:0 8px; border:1px solid transparent; border-radius:99px; color:#626b70; font-size:15px; line-height:24px; }
 .sx-reference-product .sx-reference-day-switcher .sx-reference-day-tabs > button.is-active { color:#202124; background:#ffffffc9; border-color:#fff; box-shadow:0 3px 12px #15253912; }
 .sx-reference-day-switcher .sx-reference-day-tabs button::before,.sx-reference-day-switcher .sx-reference-day-tabs button::after { content:none!important; }
 .sx-reference-day-switcher :focus-visible { outline:2px solid #007aff; outline-offset:-2px; }
}
@media(max-width:760px) { .sx-reference-day-switcher { display:contents; } .sx-reference-day-switcher > button { display:none; } }
