/* Tour booking controls share state between the inline calendar, date dialog and floating bar. */
.sx-reference-stage {
  grid-template-areas: "gallery-main gallery-side" "share share" "product-info booking";
  grid-template-rows: 518px auto auto;
}
.sx-reference-product .sx-reference-booking.sx-tour-booking-card {
  display: block;
  align-self: start;
  min-height: 0;
  margin: 46px 0 0;
  padding: 22px;
  border: 1px solid #e4e4e9;
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 8px 36px #1727370a;
}
.sx-tour-price-row { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:17px; }
.sx-tour-date { display:flex; align-items:center; justify-content:space-between; gap:18px; border:0; border-radius:12px; padding:11px 13px; background:#f5f5f7; color:#111; text-align:left; font:inherit; cursor:pointer; }
.sx-tour-date span { display:grid; gap:3px; }
.sx-tour-date small { color:#77777d; font-size:11px; line-height:1.4; }
.sx-tour-date strong { font-size:15px; font-weight:500; white-space:nowrap; }
.sx-tour-date .sx-icon { width:17px; height:17px; }
.sx-tour-card-price { text-align:right; }
.sx-tour-card-price > small { display:block; margin-bottom:3px; color:#111; font-size:13px; }
.sx-tour-money { display:inline-flex; align-items:baseline; white-space:nowrap; color:#216b91; font-weight:600; line-height:1.15; letter-spacing:-.6px; }
.sx-tour-money [data-reference-currency-prefix] { font-size:14px; }
.sx-tour-money strong { font:inherit; font-size:32px; letter-spacing:-1px; }
.sx-tour-party { margin:0; padding:0; border:0; }
.sx-tour-party summary { display:flex; align-items:center; gap:13px; padding:15px 16px; border-radius:16px; background:#f5f5f7; color:#737378; font-size:14px; line-height:1.5; cursor:pointer; list-style:none; }
.sx-tour-party summary::-webkit-details-marker { display:none; }
.sx-tour-party summary b { margin-left:auto; color:#202124; font-weight:600; }
.sx-tour-party summary i { width:8px; height:8px; margin-top:-4px; border:solid #202124; border-width:0 1.8px 1.8px 0; transform:rotate(45deg); }
.sx-tour-party[open] summary { border-radius:16px 16px 0 0; }
.sx-tour-party[open] summary i { margin-top:4px; transform:rotate(225deg); }
.sx-tour-party-panel { padding:2px 16px 12px; border-radius:0 0 16px 16px; background:#f5f5f7; }
.sx-tour-party-stepper { display:flex; align-items:center; justify-content:space-between; gap:8px; padding:12px 0; border-top:1px solid #e4e4e9; font-size:14px; }
.sx-tour-party-stepper small { display:block; color:#77777d; font-size:11px; margin-top:2px; }
.sx-tour-party-stepper > div { display:flex; align-items:center; gap:10px; }
.sx-tour-party-stepper button { width:32px; height:32px; padding:0; border:1px solid #dedee4; border-radius:50%; background:#fff; color:#222; font:inherit; font-size:20px; cursor:pointer; }
.sx-tour-party-stepper button:disabled { opacity:.35; cursor:default; }
.sx-tour-party-stepper output { min-width:18px; text-align:center; font-weight:600; }
.sx-tour-party-panel p { margin:5px 0 0; color:#737378; font-size:11px; line-height:1.6; }
.sx-tour-book-cta { display:flex; justify-content:center; align-items:center; min-height:48px; margin-top:14px; padding:10px 16px; border:0; border-radius:14px; background:#ff6b1a; color:#fff; font-size:16px; font-weight:600; text-align:center; text-decoration:none; cursor:pointer; }
.sx-tour-book-cta:hover { background:#ed5c0e; color:#fff; }
.sx-tour-booking-warning { margin:10px 0 0; color:#a63b08; font-size:12px; line-height:1.6; }
.sx-tour-calendar-dialog { width:min(560px,calc(100% - 32px)); max-width:none; height:auto; max-height:min(860px,90dvh); margin:auto; padding:0; border:1px solid #fff; border-radius:26px; overflow:hidden; color:#202124; background:linear-gradient(145deg,#fffffff2,#f5f5f7e6 38%,#ede0d9e6 61%,#e9edf1f0); box-shadow:0 18px 70px #11182740; backdrop-filter:blur(28px); font-family:inherit; }
.sx-tour-calendar-dialog[open] { display:flex; flex-direction:column; }
.sx-tour-calendar-dialog::backdrop { background:#26313d66; backdrop-filter:blur(8px); }
.sx-tour-calendar-header { display:flex; flex:none; align-items:center; justify-content:space-between; gap:16px; padding:21px 24px 20px; }
.sx-tour-calendar-header h2 { margin:0; font-size:22px; font-weight:650; line-height:1.4; }
.sx-tour-calendar-header button,.sx-tour-calendar-heading button { display:grid; place-items:center; width:34px; height:34px; flex:none; padding:0; border:1px solid #fff; border-radius:50%; background:#ffffffb3; color:#39424e; cursor:pointer; }
.sx-tour-calendar-header .sx-icon { width:22px; height:22px; }
.sx-tour-calendar-scroll { min-height:0; padding:0 24px 8px; overflow:auto; overscroll-behavior:contain; scrollbar-width:thin; }
.sx-tour-calendar-dialog .sx-tour-party summary,.sx-tour-calendar-date { padding:16px 18px; border:1px solid #fff; border-radius:99px; background:#ffffffa8; box-shadow:0 6px 18px #27324008; font-size:14px; }
.sx-tour-calendar-dialog .sx-tour-party summary { color:#555f6c; }
.sx-tour-calendar-dialog .sx-tour-party[open] summary { border-radius:26px 26px 0 0; }
.sx-tour-calendar-dialog .sx-tour-party-panel { background:#ffffffa8; border-radius:0 0 26px 26px; }
.sx-tour-calendar-date { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:12px; color:#555f6c; }
.sx-tour-calendar-date b { color:#202124; font-weight:600; }
.sx-tour-calendar-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:27px 0 8px; }
.sx-tour-calendar-heading h3 { margin:0; color:#202124; font-size:30px; font-weight:650; line-height:1.3; letter-spacing:-.6px; }
.sx-tour-calendar-heading > div { display:flex; gap:7px; }
.sx-tour-calendar-heading .sx-icon { width:18px; height:18px; }
.sx-tour-calendar-heading [data-reference-month-previous] .sx-icon { transform:rotate(180deg); }
.sx-tour-calendar-heading button:disabled { border-color:transparent; background:#edeef0b3; color:#858c94; cursor:default; }
.sx-tour-calendar-caption { display:flex; justify-content:space-between; gap:10px; margin:0 0 17px; color:#535e6d; font-size:11px; line-height:1.5; }
.sx-tour-calendar-weekdays,.sx-tour-calendar-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:0; }
.sx-tour-calendar-weekdays { padding-bottom:10px; color:#394452; font-size:12px; font-weight:600; text-align:center; }
.sx-tour-calendar-weekdays span:nth-child(n+6) { color:#59626d; }
.sx-tour-calendar-day,.sx-tour-calendar-blank { min-width:0; min-height:88px; border:0; border-top:1px solid #ced0d5; }
.sx-tour-calendar-day { display:flex; flex-direction:column; align-items:center; gap:4px; margin:0; padding:8px 0 9px; border-radius:0; background:transparent; color:#535e69; font:inherit; cursor:pointer; }
.sx-tour-calendar-number { display:grid; place-items:center; width:32px; height:32px; border-radius:50%; color:#555d67; font-size:21px; font-weight:600; line-height:1; }
.sx-tour-calendar-day b { color:#206c89; font-size:12px; font-weight:500; line-height:1.4; }
.sx-tour-calendar-day small { color:#555e6b; font-size:10px; line-height:1.5; }
.sx-tour-calendar-day:disabled { opacity:1; cursor:default; }
.sx-tour-calendar-day:disabled b { color:#555e6b; }
.sx-tour-calendar-day:not(:disabled):hover .sx-tour-calendar-number { background:#d5e7ef; }
.sx-tour-calendar-day.is-selected .sx-tour-calendar-number,.sx-tour-calendar-day.is-selected:not(:disabled):hover .sx-tour-calendar-number { color:#fff; background:#216581; box-shadow:0 2px 6px #19496229; }
.sx-tour-calendar-day.is-selected b { font-weight:650; }
.sx-tour-calendar-footer { flex:none; padding:13px 24px 19px; border-top:1px solid #dce0e6; background:#ffffffcc; backdrop-filter:blur(18px); }
.sx-tour-calendar-footer > p { margin:0 0 12px; color:#535e6d; font-size:12px; line-height:1.6; }
.sx-tour-calendar-confirm-row { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.sx-tour-calendar-confirm-row > div { display:flex; align-items:baseline; flex-wrap:wrap; gap:6px; min-width:0; }
.sx-tour-calendar-confirm-row small { color:#535e6d; font-size:12px; }
.sx-tour-calendar-confirm-row .sx-tour-money { color:#206783; }
.sx-tour-calendar-confirm-row .sx-tour-money strong { font-size:29px; }
.sx-tour-calendar-confirm-row button { flex:none; min-height:46px; padding:12px 20px; border:1px solid #c86a3c; border-radius:99px; color:#fff; background:#c44c00; box-shadow:0 5px 14px #91401813; font:inherit; font-size:14px; font-weight:600; cursor:pointer; }
.sx-tour-calendar-confirm-row button:disabled { background:#aaa; border-color:#aaa; cursor:default; }
.sx-tour-calendar-dialog [hidden],.sx-tour-booking-card [hidden],.sx-tour-floating-booking [hidden] { display:none!important; }
.sx-tour-calendar-dialog :focus-visible,.sx-tour-booking-card :focus-visible,.sx-tour-floating-booking :focus-visible { outline:2px solid #216581; outline-offset:3px; }
.sx-reference-floating-booking.sx-tour-floating-booking > .sx-reference-content { display:flex; align-items:center; justify-content:flex-end; gap:24px; padding:14px 0; }
.sx-tour-floating-party { display:flex; align-items:center; gap:12px; border:0; background:transparent; font:inherit; font-size:14px; cursor:pointer; }
.sx-tour-floating-party .sx-icon { width:14px; height:14px; transform:rotate(90deg); }
.sx-tour-floating-total { margin-left:auto; }
.sx-tour-floating-total > small { margin-left:7px; color:#777; font-size:12px; }
.sx-tour-floating-booking .sx-tour-book-cta { margin:0; min-width:170px; }
.sx-tour-floating-booking .sx-tour-floating-favorite { display:none; }
@media (min-width:701px) and (max-width:900px) {
  .sx-reference-stage { grid-template-rows:455px auto auto; }
  .sx-reference-product .sx-reference-booking.sx-tour-booking-card { padding:16px; }
  .sx-tour-card-price .sx-tour-money strong { font-size:27px; }
}
@media (max-width:700px) {
  .sx-reference-stage { grid-template-areas:"gallery-main" "gallery-thumbnails" "share" "product-info" "booking"; grid-template-rows:auto; }
  .sx-reference-product .sx-reference-booking.sx-tour-booking-card { margin:22px 0 0; padding:18px; border-radius:20px; }
  .sx-tour-card-price .sx-tour-money strong { font-size:30px; }
  .sx-tour-date { padding:10px 12px; gap:15px; }
  .sx-tour-date strong { font-size:14px; }
  .sx-tour-calendar-dialog { width:calc(100% - 20px); max-height:90dvh; border-radius:24px; margin:auto auto max(10px,env(safe-area-inset-bottom)); }
  .sx-tour-calendar-header { padding:19px 18px 18px; }
  .sx-tour-calendar-header h2 { font-size:20px; }
  .sx-tour-calendar-scroll { padding:0 17px 5px; }
  .sx-tour-calendar-heading h3 { font-size:28px; }
  .sx-tour-calendar-day { min-height:84px; }
  .sx-tour-calendar-number { font-size:20px; width:29px; height:29px; }
  .sx-tour-calendar-day b { font-size:11px; }
  .sx-tour-calendar-day small { font-size:10px; }
  .sx-tour-calendar-footer { padding:12px 17px max(17px,env(safe-area-inset-bottom)); }
  .sx-tour-calendar-confirm-row .sx-tour-money strong { font-size:27px; }
  .sx-tour-calendar-confirm-row button { padding:12px 17px; }
  .sx-reference-floating-booking.sx-tour-floating-booking > .sx-reference-content { display:grid; grid-template-columns:1fr auto; gap:8px 12px; width:calc(100% - 32px); padding:10px 0 max(10px,env(safe-area-inset-bottom)); }
  .sx-tour-floating-booking .sx-tour-date { padding:0; background:transparent; justify-content:start; gap:10px; }
  .sx-tour-floating-booking .sx-tour-date span { display:flex; align-items:center; gap:7px; }
  .sx-tour-floating-booking .sx-tour-date small { display:none; }
  .sx-tour-floating-party { justify-content:flex-end; padding:0; font-size:13px; }
  .sx-tour-floating-total { margin:0; }
  .sx-tour-floating-total .sx-tour-money strong { font-size:27px; }
  .sx-tour-floating-booking .sx-tour-book-cta { min-height:42px; min-width:130px; padding:8px 16px; font-size:15px; border-radius:12px; }
}
@media (max-width:350px) {
  .sx-reference-product .sx-reference-booking.sx-tour-booking-card { padding:14px; }
  .sx-tour-card-price .sx-tour-money strong { font-size:23px; }
  .sx-tour-booking-card .sx-tour-date { padding:8px 9px; gap:8px; }
  .sx-tour-booking-card .sx-tour-date strong { font-size:13px; }
  .sx-tour-calendar-scroll { padding-inline:12px; }
  .sx-tour-calendar-header,.sx-tour-calendar-footer { padding-inline:12px; }
  .sx-tour-calendar-confirm-row .sx-tour-money strong { font-size:23px; }
  .sx-tour-calendar-confirm-row button { padding-inline:13px; font-size:13px; }
}

/* Glass surfaces retain the content beneath them while scrolling. */
.sx-reference-product .sx-reference-anchor-nav,
.sx-reference-product .sx-tour-floating-booking {
  border:1px solid rgb(255 255 255 / 72%);
  background:rgba(237,238,238,.75);
  -webkit-backdrop-filter:blur(5px);
  backdrop-filter:blur(5px);
  box-shadow:0 4px 18px #1826370d,inset 0 1px 0 #ffffffa6;
}
.sx-reference-product .sx-tour-floating-booking {
  width:min(1120px,calc(100% - 120px));
  border-radius:20px;
  bottom:18px;
}
#main-content .sx-tour-floating-booking > .sx-reference-content { width:100%; max-width:none; margin:0; padding:14px 18px; gap:10px; }
.sx-tour-floating-booking .sx-tour-floating-party { order:-1; justify-content:space-between; min-width:150px; min-height:48px; padding:12px 14px; border-radius:12px; background:#f5f5f780; color:#646469; }
.sx-tour-floating-booking .sx-tour-floating-party .sx-icon { display:none; }
.sx-tour-floating-booking .sx-tour-date { min-width:150px; min-height:48px; padding:12px 14px; background:#f5f5f780; }
.sx-tour-floating-booking .sx-tour-date small { display:none; }
.sx-tour-floating-booking .sx-tour-date strong { color:#646469; font-size:14px; }
.sx-tour-floating-booking .sx-tour-floating-total { margin-right:12px; }
.sx-tour-floating-booking .sx-tour-book-cta { min-width:185px; border-radius:12px; }
@media(max-width:700px) {
  .sx-reference-product .sx-tour-floating-booking { width:calc(100% - 32px); bottom:max(10px,env(safe-area-inset-bottom)); }
  #main-content .sx-tour-floating-booking > .sx-reference-content { grid-template-columns:minmax(0,1fr) minmax(0,1fr); grid-template-areas:"favorite total" "date book"; padding:8px 10px; gap:6px 12px; }
  .sx-tour-floating-booking .sx-tour-floating-party { display:none; }
  .sx-tour-floating-booking .sx-tour-floating-favorite { grid-area:favorite; display:inline-flex; justify-self:start; min-height:32px; gap:7px; padding:0; color:#6d6e6d; font-size:16px; }
  .sx-tour-floating-booking .sx-tour-floating-favorite .sx-icon { width:22px; height:22px; color:#111; }
  .sx-tour-floating-booking .sx-tour-floating-favorite.is-active,
  .sx-tour-floating-booking .sx-tour-floating-favorite.is-active .sx-icon { color:#216b91; }
  .sx-tour-floating-booking .sx-tour-floating-total { grid-area:total; display:flex; justify-content:flex-end; align-items:baseline; min-width:0; margin:0; gap:6px; }
  .sx-tour-floating-booking .sx-tour-money strong { font-size:24px; }
  .sx-tour-floating-booking .sx-tour-money [data-reference-currency-prefix] { color:#222; font-size:14px; }
  .sx-tour-floating-booking .sx-tour-floating-total > small { margin:0; color:#222; white-space:nowrap; }
  .sx-tour-floating-booking .sx-tour-date { grid-area:date; justify-content:space-between; min-width:0; min-height:36px; padding:7px 10px; border-radius:10px; background:#f5f5f780; gap:8px; }
  .sx-tour-floating-booking .sx-tour-date strong { color:#111; font-size:16px; }
  .sx-tour-floating-booking .sx-tour-date .sx-icon { flex:none; }
  .sx-tour-floating-booking .sx-tour-book-cta { grid-area:book; width:100%; min-width:0; min-height:36px; padding:7px 10px; border-radius:99px; box-shadow:0 3px 10px #a54c1420; }
}

/* Reuse the departure calendar in the desktop booking card. */
.sx-tour-inline-calendar { display:none; }
@media(min-width:701px) {
  .sx-tour-inline-calendar { display:block; }
  .sx-tour-inline-calendar .sx-tour-calendar-heading { margin-top:24px; }
  .sx-tour-inline-calendar .sx-tour-calendar-heading h3 { font-size:27px; }
  .sx-tour-inline-calendar .sx-tour-calendar-heading button { background:#f5f5f7; border:0; }
  .sx-tour-inline-calendar .sx-tour-calendar-caption { color:#929297; margin-bottom:14px; }
  .sx-tour-inline-calendar .sx-tour-calendar-day,
  .sx-tour-inline-calendar .sx-tour-calendar-blank { min-height:88px; border-color:#eeeef1; }
  .sx-tour-inline-calendar .sx-tour-calendar-number { color:#202124; }
  .sx-tour-inline-calendar .sx-tour-calendar-day:disabled .sx-tour-calendar-number,
  .sx-tour-inline-calendar .sx-tour-calendar-day:disabled b,
  .sx-tour-inline-calendar .sx-tour-calendar-day:disabled small { color:#b2b2b8; }
  .sx-tour-inline-calendar .sx-tour-calendar-day.is-selected .sx-tour-calendar-number { color:#fff; }
  .sx-tour-inline-calendar .sx-tour-calendar-day small { color:#929297; }
  .sx-tour-inline-calendar > p { margin:8px 0 0; padding-top:16px; border-top:1px solid #eeeef1; color:#86868b; font-size:12px; }
  .sx-tour-booking-card .sx-tour-book-cta { width:100%; }
}

/* Compact desktop booking bar, keeping the mobile touch controls unchanged. */
@media(min-width:701px) {
  .sx-reference-product .sx-tour-floating-booking { width:min(940px,calc(100% - 64px)); border-radius:18px; }
  #main-content .sx-tour-floating-booking > .sx-reference-content { padding:10px 14px; gap:8px; }
  .sx-tour-floating-booking .sx-tour-floating-party,
  .sx-tour-floating-booking .sx-tour-date { min-width:130px; min-height:40px; padding:9px 12px; font-size:13px; border-radius:10px; }
  .sx-tour-floating-booking .sx-tour-date strong { font-size:13px; }
  .sx-tour-floating-booking .sx-tour-date .sx-icon { width:15px; height:15px; }
  .sx-tour-floating-booking .sx-tour-floating-total { margin-right:8px; }
  .sx-tour-floating-booking .sx-tour-money strong { font-size:28px; }
  .sx-tour-floating-booking .sx-tour-money [data-reference-currency-prefix] { font-size:12px; }
  .sx-tour-floating-booking .sx-tour-floating-total > small { font-size:11px; }
  .sx-tour-floating-booking .sx-tour-book-cta { min-width:160px; min-height:40px; padding:8px 12px; border-radius:10px; font-size:14px; }
}
