/* ===== Premium palette (softer, less "strong") ===== */
:root{
  --itb-lux-1: rgba(255,255,255,.86);
  --itb-lux-2: rgba(255,255,255,.70);
  --itb-lux-3: rgba(2,6,23,.06);
  --itb-shadow-1: 0 10px 26px rgba(2,6,23,.08);
  --itb-shadow-2: 0 18px 46px rgba(2,6,23,.10);

  --itb-ink:#0b1220;
  --itb-ink-2:#0f172a;
  --itb-paper:#ffffff;
  --itb-soft:rgba(15,23,42,.045);
  --itb-soft-2:rgba(15,23,42,.075);
  --itb-soft-3:rgba(15,23,42,.11);
  --itb-selected-1: rgba(17,24,39,.70);
  --itb-selected-2: rgba(15,23,42,.78);
  --itb-accent:#38bdf8;
  --itb-accent-2:#2dd4bf;

  /* Premium radii + hairlines */
  --itb-radius-card:22px;
  --itb-radius-field:16px;
  --itb-radius-pill:999px;
  --itb-hairline:rgba(2,6,23,.08);
  --itb-hairline-2:rgba(2,6,23,.06);
}

html,body{
  margin:0;padding:0;height:100%;
  /* premium fallback (prevents black flash before images load) */
  background: radial-gradient(1200px 900px at 18% 12%, rgba(56,189,248,.10), transparent 55%),
              radial-gradient(1200px 900px at 82% 0%, rgba(45,212,191,.08), transparent 55%),
              #ffffff;
  overflow:hidden;
  font-family:"Inter",system-ui,sans-serif;
  -webkit-font-smoothing:antialiased;
}

*,*::before,*::after{box-sizing:border-box;}
img{max-width:100%;height:auto;}

/* ================= HERO ================= */
/* IMPORTANT: scope slide sizing to each swiper.
   A global `.swiper-slide{height:100%}` breaks nested swipers (booking + gallery) and can kill scrolling.
*/
.hero-swiper{width:100%;height:100%;position:relative;}
.hero-swiper .swiper-slide{width:100%;height:100%;position:relative;}
.detail-hero-swiper .swiper-slide{width:100%;height:100%;position:relative;}
.hero-gallery-swiper .swiper-slide{width:100%;height:100%;position:relative;}
.hero-slide{position:absolute;inset:0;background-size:cover;background-position:center;}

/* Premium readability overlay (keeps text crisp on bright shots) */
.hero-slide::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(
    180deg,
    rgba(5,8,20,0.10) 0%,
    rgba(5,8,20,0.18) 40%,
    rgba(5,8,20,0.58) 100%
  );
}

.tour-info{
  position:absolute;
  bottom:14vh;left:7vw;
  z-index:50;color:#fff;
  display:flex;flex-direction:column;gap:1.4vh;
}
.cliptext{
  opacity:0;
  transform:translate3d(0,90px,0);
  --clip:100%;
  clip-path:inset(0 0 var(--clip) 0);
  -webkit-clip-path:inset(0 0 var(--clip) 0);
  will-change:transform, opacity, clip-path;
  backface-visibility:hidden;
  -webkit-font-smoothing:antialiased;
}
.tour-tagline{
  font-weight:500;
  letter-spacing:.16em;
  opacity:.92;
  text-transform:uppercase;
  /* smaller + wraps nicely on all screens */
  font-size:clamp(11px,3.2vw,14px);
  line-height:1.25;
  white-space:normal;
  overflow:hidden;
  text-overflow:unset;
  max-width:min(86vw, 44ch);
  text-wrap:balance;
  overflow-wrap:anywhere;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
}
.tour-title{
  font-size:clamp(92px,15vw,190px);
  letter-spacing:-.085em;
  line-height:.78;
  font-weight:900;
}

@media (min-width:1024px){
  .tour-info{left:clamp(36px,6vw,96px);bottom:13vh;gap:16px;}
  .tour-tagline{max-width:56ch;-webkit-line-clamp:3;font-size:13px;}
  .tour-title{font-size:clamp(104px,10.5vw,176px);letter-spacing:-.07em;line-height:.80;}
}

/* readability on bright photos */
.tour-tagline,.tour-title{
  text-shadow:0 8px 22px rgba(5,8,20,.22);
}

/* Hero index pill */
.hero-index{
  display:inline-flex;
  align-items:center;
  gap:8px;
  width:max-content;
  padding:9px 13px;
  border-radius:999px;
  background:rgba(0,0,0,.28);
  backdrop-filter:blur(10px);
  border:1px solid rgba(255,255,255,.12);
  color:#fff;
  font-weight:700;
  letter-spacing:.08em;
  font-size:12px;
  opacity:.92;
}
.hero-index .num{font-variant-numeric:tabular-nums;}
.hero-index .sep{opacity:.55;}

/* HERO CTA UNDER TEXT */
.hero-cta{
  margin-top:2.5vh;
  opacity:0;
  transform:translateY(35px);
  display:inline-flex;
}

.hero-cta-btn{
  padding:14px 26px;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;

  background:rgba(255,255,255,0.16);
  border:1px solid rgba(255,255,255,0.22);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);

  font-size:clamp(13px,4vw,17px);
  letter-spacing:.12em;
  color:#fff;
  font-weight:700;
  line-height:1;
  cursor:pointer;
  position:relative;
  overflow:hidden;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;

  box-shadow: inset 0 1px 0 rgba(255,255,255,0.16);
  transition:transform .18s ease, background .28s ease, box-shadow .28s ease, border-color .28s ease;
}


/* Double CTA row (View Details + / Book This Trip →) */
.hero-cta--double{
  display:flex;
  gap:12px;
  align-items:center;
  justify-content:flex-start;
  flex-wrap:nowrap;
}
.hero-cta--double .hero-cta-btn{
  flex:1 1 0;
  padding:14px 18px;
  min-width:0;
}
.hero-cta-btn--ghost{
  background:rgba(255,255,255,0.10);
  border-color:rgba(255,255,255,0.18);
}
.hero-cta--double .btn-label{
  white-space:nowrap;
}
@media (max-width:420px){
  .hero-cta--double{ gap:10px; }
  .hero-cta--double .hero-cta-btn{
    padding:12px 12px;
    letter-spacing:.08em;
  }
}
.hero-cta-btn::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(180deg, rgba(255,255,255,0.16), transparent 60%);
  opacity:.9;
}
.hero-cta-btn:active{
  background:rgba(255,255,255,0.22);
  transform:scale(.985) translateY(1px);
}
.hero-cta-btn:focus-visible{
  outline:none;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.16),
    0 18px 70px rgba(0,0,0,0.22),
    0 0 0 3px rgba(14,165,233,0.25);
}

.itb-cta-burst{
  position:fixed;
  width:18px;
  height:18px;
  border-radius:999px;
  background:rgba(255,255,255,0.18);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  box-shadow:0 18px 60px rgba(0,0,0,0.35);
  pointer-events:none;
  z-index:20000;
  transform:translate(-50%,-50%) scale(0.25);
  opacity:0.9;
}

/* CTA Premium micro-interactions */
.itb-ripple-ring{
  position:fixed;
  width:22px;height:22px;
  border-radius:999px;
  border:2px solid rgba(255,255,255,0.55);
  background:rgba(255,255,255,0.08);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  box-shadow:0 22px 80px rgba(0,0,0,0.22);
  pointer-events:none;
  z-index:20000;
  transform:translate(-50%,-50%) scale(0.22);
  opacity:0;
}
.itb-ripple-ring.is-on{
  animation:itbRippleRing .58s cubic-bezier(.22,1,.36,1) forwards;
}
@keyframes itbRippleRing{
  0%{opacity:0;transform:translate(-50%,-50%) scale(.18);}
  18%{opacity:.92;}
  100%{opacity:0;transform:translate(-50%,-50%) scale(2.25);}
}


.hero-cta-btn.is-pressed,
.hero-book.is-pressed,
.book-big-btn.is-pressed,
.details-end-cta__btn.is-pressed{
  transform:scale(.985) translateY(1px) !important;
}



/* Arrow micro-interaction: premium "forward" nudge on click */
.btn-label{ display:inline-block; }
.btn-arrow{
  display:inline-block;
  transform:translate3d(0,0,0);
  opacity:.95;
  will-change:transform, opacity;
  transition:transform .25s cubic-bezier(.22,1,.36,1), opacity .25s ease;
}

@media (hover:hover){
  .hero-cta-btn:hover .btn-arrow,
  .book-big-btn:hover .btn-arrow,
  .details-end-cta__btn:hover .btn-arrow{
    transform:translate3d(4px,0,0);
  }
}

.hero-cta-btn.is-pressed .btn-arrow,
.book-big-btn.is-pressed .btn-arrow,
.details-end-cta__btn.is-pressed .btn-arrow{
  animation:itbArrowGlide .62s cubic-bezier(.22,1,.36,1) both;
}

@keyframes itbArrowGlide{
  0%   { transform:translate3d(0,0,0); opacity:.95; }
  35%  { transform:translate3d(10px,0,0); opacity:1; }
  65%  { transform:translate3d(6px,0,0); opacity:1; }
  100% { transform:translate3d(0,0,0); opacity:.95; }
}

@media (prefers-reduced-motion: reduce){
  .hero-cta-btn.is-pressed .btn-arrow,
  .book-big-btn.is-pressed .btn-arrow,
  .details-end-cta__btn.is-pressed .btn-arrow{
    animation:none !important;
  }
}
@media (hover:hover){
  .hero-cta-btn:hover{
    background:rgba(255,255,255,0.20);
    border-color:rgba(255,255,255,0.32);
    transform:translateY(-1px);
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.18);
  }
  .hero-book:hover{transform:translateY(-1px);}
  .details-end-cta__btn:hover{transform:translateY(-1px);}
  .book-big-btn:hover{transform:translateY(-1px);}
}

@media (prefers-reduced-motion: reduce){
  .itb-ripple-ring,.itb-cta-burst{display:none !important;}
}

/* ====== + / X ICON (DETAILS TOGGLE) ======= */
#globalArrow{
  pointer-events:auto;
  position:fixed;
  top:calc(12px + env(safe-area-inset-top));
  right:calc(12px + env(safe-area-inset-right));
  width:42px;height:42px;
  display:flex;align-items:center;justify-content:center;
  /* Must sit above every overlay (booking wizard + gallery) */
  z-index:200000;
  cursor:pointer;
  opacity:.98;
  transition:opacity .42s ease,transform .55s cubic-bezier(.22,1,.36,1);
  -webkit-tap-highlight-color: transparent;
  /* 0 = +, 1 = X (can be driven live during swipe-down close) */
  --morph: 0;
}
#globalArrow:active{transform:scale(.96);}
#globalArrow.morph:active{transform:scale(1.04);}
#globalArrow.hide{opacity:0;transform:translateY(10px) scale(.9);pointer-events:none;}
.plus-line{
  position:absolute;
  width:26px;
  height:2px;
  background:#fff;
  border-radius:999px;
  /* Elegant readability on bright hero shots (no background) */
  filter:none;
  transition:transform .45s cubic-bezier(.22,1,.36,1),background .30s ease;
  transform-origin:50% 50%;
}

/* While swipe-dragging the detail panel, update morph instantly (no easing lag) */
#globalArrow.is-dragging .plus-line{ transition:none !important; }
/* When panel is open, default to X (but allow JS to drive --morph live during drag) */
#globalArrow.morph{ --morph: 1; }

/* Rotate from + to X using the CSS variable */
#globalArrow #h{transform:rotate(calc(45deg * var(--morph)));}
#globalArrow #v{transform:rotate(calc(90deg - (135deg * var(--morph))));}

/* Keep contrast depending on the top-most panel */
#globalArrow.ink-dark .plus-line{background:#0b0b0b;}
#globalArrow.on-dark .plus-line{background:#fff;}

/* UNIVERSAL CLOSE X */
.close-x{
  width:44px;
  height:44px;
  position:relative;
  appearance:none;
  border:0;
  background:transparent;
  padding:0;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  color:#fff;
  z-index:99999;
  transition:opacity .35s ease,transform .35s cubic-bezier(.22,1,.36,1);
}
.close-x--dark{color:#111;}
.close-x .x-line{
  position:absolute;
  width:26px;
  height:2.2px;
  background:currentColor;
  border-radius:2px;
  transition:transform .45s cubic-bezier(.22,1,.36,1),opacity .3s ease;
}
.close-x .x-line:nth-child(1){transform:rotate(45deg);}
.close-x .x-line:nth-child(2){transform:rotate(-45deg);}
.close-x:active{transform:scale(.92);}

/* ============= DETAIL PANEL ============= */
#detailLayout{
  position:fixed;inset:0;
  background:#fff;
  transform:translateX(102%);
  opacity:0;pointer-events:none;
  transition:transform .65s cubic-bezier(.22,1,.36,1),opacity .55s;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
  z-index:9000;
}
#detailLayout.open{
  transform:translateX(0);
  opacity:1;pointer-events:auto;
}
#detailLayout.dragging{
  transition:none !important;
  will-change: transform, opacity;
}


.full-hero{
  height:72vh;width:100vw;
  position:relative;overflow:hidden;
}
.detail-hero-swiper{height:100%;width:100%;}
.hero-slide-detail{
  height:100%;
  display:flex;align-items:flex-end;justify-content:center;
  position:relative;
}
.slide-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.slide-overlay{
  position:absolute;inset:0;
  background:linear-gradient(180deg,transparent 0%,#fff 80%);
}

/* hero content in panel */
.hero-content{
  position:relative;
  padding:38px 24px 42px;
  max-width:1120px;width:100%;
  z-index:5;
  display:flex;flex-direction:column;gap:14px;
}
.hero-kicker{
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.22em;
  color:#7c7c7c;
  opacity:0;
}
.hero-title{
  font-size:clamp(30px,5.4vw,52px);
  line-height:1.05;
  letter-spacing:-0.01em;
  font-family:"Playfair Display",serif;
  color:#111;opacity:0;
}
.hero-tag{
  font-size:15px;color:#666;
  max-width:480px;opacity:0;
}
.hero-meta{opacity:0;}


@media (max-width:390px){
  .hero-title{font-size:clamp(28px,8.2vw,42px);}
}
.price-pill{
  display:inline-flex;
  gap:16px;align-items:center;
  padding:12px 20px;
  border-radius:999px;
  background:#ffffffcc;
  backdrop-filter:blur(20px);
}
.hero-book{
  padding:10px 20px;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;

  background:linear-gradient(180deg, rgba(17,17,17,0.98), rgba(0,0,0,0.96));
  color:#fff;
  border:1px solid rgba(255,255,255,0.10);
  font-weight:800;
  letter-spacing:.02em;
  line-height:1;
  cursor:pointer;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;

  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.10),
    0 18px 48px rgba(2,6,23,0.18);
  transition:transform .18s ease, box-shadow .24s ease, border-color .24s ease, opacity .24s ease;
}
.hero-book:active{ transform:scale(.985) translateY(1px); }
.hero-book:focus-visible{
  outline:none;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.10),
    0 18px 48px rgba(2,6,23,0.18),
    0 0 0 3px rgba(14,165,233,0.22);
}

.content{
  padding:38px 22px 140px;
  max-width:1120px;margin:0 auto;
}


/* Tour detail ordering: accordion + CTA above gallery */
#sections{margin-top:2px;}
#detailsEndCTA{margin-top:10px;}
#galleryArea{margin-top:18px;}

/* ============ GALLERY ============ */
.gallery-block{margin:10px 0 28px;width:100%;}
.gallery-swiper{
  width:100%;
  /* Bigger (portrait) detail gallery. Fallback for older browsers. */
  height:62vh;
  max-height:82vh;
}
@supports (aspect-ratio: 9 / 16){
  .gallery-swiper{
    /* Portrait gallery: 9:16 (width:height) */
    aspect-ratio: 9 / 16;
    height:auto;
  }
}

/* On wider screens, keep the details gallery from getting comically tall */
@media (min-width: 900px){
  .gallery-swiper{ height:52vh; max-height:64vh; }
  @supports (aspect-ratio: 16 / 9){
    .gallery-swiper{ aspect-ratio: 16 / 9; height:auto; max-height:64vh; }
  }
}
.gallery-swiper .swiper-wrapper,
.gallery-swiper .swiper-slide{height:100%;}
.gallery-swiper img{width:100%;height:100%;object-fit:cover;}

.gallery-pagination{text-align:center;margin-top:12px;}
.gallery-pagination .swiper-pagination-bullet{
  width:9px;height:9px;
  background:#c2c2c2;border-radius:50%;
  margin:0 6px;
}
.gallery-pagination .swiper-pagination-bullet-active{
  background:#000;transform:scale(1.35);
}

/* Gallery progress line (clean + modern) */
.gallery-progress{
  height:3px;
  background:#ececec;
  border-radius:999px;
  overflow:hidden;
  margin:12px 6px 0;
}
.gallery-bar{
  height:100%;
  width:100%;
  transform:scaleX(0);
  transform-origin:left;
  background:#111;
  transition:transform .26s cubic-bezier(.22,1,.36,1);
}

/* ============ ACCORDION / SECTIONS (Designer Refine) ============ */
:root{
  --itb-card:#ffffff;
  --itb-ink:#0e0e0f;
  --itb-muted:#666a70;
  --itb-soft:#f3f4f6;
  --itb-ease:cubic-bezier(.22,1,.36,1);
  --itb-shadow:0 20px 70px rgba(2,6,23,.10);
  --itb-shadow2:0 12px 40px rgba(2,6,23,.07);
}

/* Image polish (blur-up) */
img.itb-img{
  transition: filter .55s cubic-bezier(.22,1,.36,1), transform .55s cubic-bezier(.22,1,.36,1), opacity .35s ease;
  will-change: filter, transform, opacity;
}
img.itb-img.is-loading{
  filter: blur(14px);
  transform: scale(1.04);
  opacity: .92;
}
img.itb-img.is-loaded{
  filter: none;
  transform: none;
  opacity: 1;
}


.section{padding:0;border-bottom:0;}
.section + .section{margin-top:12px;}

.section-head{
  position:relative;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:14px;
  cursor:pointer;
  padding:16px 14px;
  border-radius:18px;
  background:var(--itb-card);
  box-shadow:var(--itb-shadow2);
  -webkit-tap-highlight-color:transparent;
  transition:transform .18s ease, box-shadow .26s var(--itb-ease), background .22s ease;
  will-change:transform;
}
@media (hover:hover){
  .section-head:hover{transform:translateY(-1px);box-shadow:var(--itb-shadow);}
}

.section.open .section-head{
  background:linear-gradient(180deg,#ffffff 0%, #fbfbfc 100%);
  box-shadow:0 24px 82px rgba(2,6,23,.12);
}

.section-title{
  font-size:18px;
  font-weight:850;
  color:var(--itb-ink);
  letter-spacing:-.012em;
}

.toggle-icon{
  width:34px;height:34px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:22px;font-weight:850;
  color:var(--itb-ink);
  background:rgba(2,6,23,.06);
  transition:transform .55s var(--itb-ease), background .22s ease;
  flex:0 0 auto;
}

.itb-chevron{
  width:18px;height:18px;
  display:block;
  transform:rotate(0deg);
  transition:transform .55s var(--itb-ease);
  will-change:transform;
}
.section.open .itb-chevron{
  transform:rotate(180deg);
}

.section.open .toggle-icon{
  background:rgba(2,6,23,.10);
}

.section-body{
  overflow:hidden;
  height:0;
  padding:0 6px;
  will-change:height;
}

/* Inner panel that holds chips */
.section-body .chip-list{
  display:flex;
  flex-direction:column;
  gap:18px;
  padding:18px 10px 14px;
  margin-top:10px;
  border-radius:18px;
  background:linear-gradient(180deg, rgba(255,255,255,.82) 0%, rgba(248,250,252,.70) 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9);
  outline:1px solid rgba(2,6,23,.04);
}

.chip{
  display:flex;
  gap:14px;
  align-items:flex-start;
  opacity:0;
  transform:translateY(14px);
  will-change:transform, opacity;
}

.icon-circle{
  width:40px;height:40px;border-radius:50%;
  background:rgba(2,6,23,.06);
  display:flex;align-items:center;justify-content:center;
  font-size:16px;font-weight:700;color:var(--itb-ink);
  flex:0 0 auto;
}

.chip-content{display:flex;flex-direction:column;min-width:0;}
.chip-title{
  font-weight:850;
  font-size:15px;
  color:var(--itb-ink);
  margin-bottom:2px;
  letter-spacing:-.01em;
}
.chip-time{
  font-size:13px;
  font-weight:850;
  color:#7a7f86;
  margin-bottom:6px;
  letter-spacing:.12px;
}
.chip-desc{
  color:#4b4f55;
  font-size:13.5px;
  line-height:1.55;
}

@media (prefers-reduced-motion: reduce){
  .section-head,.toggle-icon{transition:none!important;}
}


/* ===== Booking mini-summary bar ===== */
.booking-summary{
  position:relative;
  top:auto;
  z-index:30;
  display:flex;
  gap:10px;
  padding:10px 14px 8px;
  background:linear-gradient(180deg, rgba(246,250,252,.96) 0%, rgba(246,250,252,.82) 70%, rgba(246,250,252,0) 100%);
  backdrop-filter:blur(12px);
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.booking-summary::-webkit-scrollbar{display:none;}
.sum-pill{
  flex:0 0 auto;
  padding:8px 12px;
  border-radius:999px;
  background:rgba(255,255,255,.72);
  border:0;
  box-shadow:0 10px 26px rgba(2,6,23,.06);
  font-size:12px;
  font-weight:700;
  color:#0b1220;
  white-space:nowrap;
}
.sum-pill--price{background:rgba(0,0,0,.88);color:#fff;border-color:rgba(255,255,255,.16);}

/* Keep the “A/C/I · Group/Private” pill stable (no width jump) */
#sumGuests{
  min-width: 112px;
  text-align:center;
  font-variant-numeric: tabular-nums;
}

/* Desktop hero: bigger + nicer proportions (your request) */
@media (min-width: 900px){
  .tour-tagline{
    font-size:14px !important;
    max-width:52ch !important;
    letter-spacing: .18em !important;
    white-space: normal !important;
    display:-webkit-box !important;
    -webkit-line-clamp:2 !important;
    -webkit-box-orient:vertical !important;
    overflow:hidden !important;
  }
  .tour-title{
    font-size:clamp(140px, 10.5vw, 196px);
    letter-spacing:-0.085em;
    line-height:.78;
    max-width:920px;
  }
  .hero-cta-btn{
    font-size:18px;
    padding:18px 36px;
    letter-spacing:.08em;
  }
}


/* =========================================
   BOOKING WIZARD
========================================= */
.booking-wrap{
  position:fixed;inset:0;
  z-index:99999;
  /* Softer paper + blue tint (less saturated, more premium) */
  background:radial-gradient(circle at top, #eef7ff 0%, #f8fafc 58%, #f3f6ff 100%);
  display:none;
  opacity:0;transform:translateY(10px);
  transition:opacity .35s ease,transform .35s ease;
}
.booking-wrap.show{
  display:block;
  /* Fallback: ensure the wizard is visible even if JS animation libs (GSAP) fail to load */
  opacity:1;
  transform:translateY(0);
}
.booking-wrap .app-wrap{
  position:relative;height:100%;width:100%;
}

.booking-wrap .topbar{
  position:fixed;
  top:0;left:0;right:0;
  z-index:80;
  background:linear-gradient(180deg, rgba(255,255,255,0.92) 0%, rgba(255,255,255,0.86) 100%);
  padding:10px 14px 10px;
  display:flex;flex-direction:column;gap:2px;
  border-bottom:none;
  backdrop-filter:blur(14px);
  transition: box-shadow .25s ease, border-color .25s ease;

  -webkit-transform:translate3d(0,0,0);
  will-change:transform;
  isolation:isolate;
  background-clip:padding-box;}


/* iOS seam guard */
.booking-wrap .topbar::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:rgba(255,255,255,0.86);pointer-events:none;}
.booking-wrap .topbar{overflow:visible;}
/* Premium hairline separator (nicer than a flat border) */
.booking-wrap .topbar::after{
  content:"";
  position:absolute;
  left:0;right:0;bottom:0;
  height:1px;
  background:linear-gradient(90deg,
    rgba(56,189,248,0) 0%,
    rgba(56,189,248,.22) 18%,
    rgba(14,165,233,.18) 50%,
    rgba(56,189,248,.22) 82%,
    rgba(56,189,248,0) 100%
  );
  opacity:.65;
  pointer-events:none;
}

/* Prevent tiny "clipped" seam between header rows and content on iOS */
.booking-wrap .topbar-row{transform:translateZ(0);}
.booking-wrap .topbar-row--progress{ margin-top:0 !important; }

.booking-wrap.itb-top-shadow .topbar{
  box-shadow: 0 10px 25px rgba(2,6,23,.08);
  border-bottom-color: rgba(226,232,240,0.55);
}
.booking-wrap .topbar-row{
  display:flex;justify-content:space-between;align-items:center;
}

.booking-wrap .topbar-row--main{
  justify-content:space-between;
  gap:14px;
}
.booking-wrap .topbar-main{display:flex;flex-direction:column;gap:2px;min-width:0;}

.booking-wrap .top-title,
.booking-wrap .top-step{
  max-width:54vw;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.booking-wrap .topbar-actions{
  display:flex;
  align-items:center;
  gap:10px;
  flex:0 0 auto;
}

/* WhatsApp help pill in booking header */
.booking-wrap .itb-help-wa{
  display:inline-flex;align-items:center;gap:8px;
  padding:8px 10px;
  border-radius:999px;
  background:rgba(2,6,23,.06);
  color:#0f172a;
  text-decoration:none;
  font-weight:700;
  font-size:13px;
  line-height:1;
  transition:transform .16s ease, background .16s ease, opacity .16s ease;
}
.booking-wrap .itb-help-wa:hover{ background:rgba(2,6,23,.09); }
.booking-wrap .itb-help-wa:active{ transform:translateY(1px); }
.booking-wrap .itb-help-wa .itb-wa-icon{ width:18px;height:18px;display:inline-block; }
.booking-wrap .itb-help-wa .itb-wa-icon svg{ width:18px;height:18px;display:block; }
.booking-wrap .itb-help-wa__txt{ opacity:.9; }

/* Booking close (X) — premium glass button */
#bookingClose.itb-booking-close{
  width:40px;
  height:40px;
  border-radius:999px;
  background:rgba(255,255,255,0.86);
  border:1px solid rgba(2,6,23,0.10);
  box-shadow:0 14px 34px rgba(2,6,23,0.14);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}
#bookingClose.itb-booking-close .x-line{
  width:18px;
  height:2px;
}

/* Floating WhatsApp help button (FAB) */
.booking-wrap .itb-wa-fab{
  position:fixed;
  right:calc(14px + env(safe-area-inset-right));
  /*
    Keep the FAB clear of the sticky summary + mobile keyboard.
    Use a small mobile guess so there is zero 1-frame overlap before JS measures the bar.
  */
  bottom:calc(
    16px + env(safe-area-inset-bottom) + var(--itb-kb, 0px)
    + max(var(--itb-sticky-h, 0px), var(--itb-sticky-guess, 0px))
  );
  width:56px;
  height:56px;
  border-radius:999px;
  display:flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
  z-index:200050;
  background:rgba(255,255,255,0.92);
  border:1px solid rgba(2,6,23,0.10);
  box-shadow:0 18px 44px rgba(2,6,23,0.18);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  opacity:0;
  transform:translate3d(0,12px,0) scale(.96);
  pointer-events:none;
  transition:opacity .22s ease, transform .35s cubic-bezier(.22,1,.36,1);
}
body.itb-booking-open .booking-wrap .itb-wa-fab{
  opacity:1;
  transform:translate3d(0,0,0) scale(1);
  pointer-events:auto;
}
.booking-wrap.itb-fab-hidden .itb-wa-fab{
  opacity:0;
  transform:translate3d(0,12px,0) scale(.96);
  pointer-events:none;
}
.booking-wrap.itb-kb-open .itb-wa-fab{
  opacity:0;
  pointer-events:none;
}
.booking-wrap .itb-wa-fab:active{
  transform:translate3d(0,0,0) scale(.96);
}
.booking-wrap .itb-wa-fab:focus-visible{
  outline:none;
  box-shadow:
    0 0 0 3px rgba(14,165,233,0.28),
    inset 0 1px 0 rgba(255,255,255,.72),
    0 22px 66px rgba(2,6,23,.18) !important;
}

/* Desktop micro-tooltip (keeps the UI clean on mobile) */
@media (hover:hover) and (pointer:fine){
  .booking-wrap .itb-wa-fab::after{
    content:"WhatsApp";
    position:absolute;
    right: calc(100% + 10px);
    top:50%;
    transform: translateY(-50%) translateX(8px);
    opacity:0;
    padding:10px 12px;
    border-radius:999px;
    background: rgba(255,255,255,.92);
    -webkit-backdrop-filter: blur(12px);
    backdrop-filter: blur(12px);
    color: rgba(11,15,20,.92);
    font: 750 13px/1 system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
    letter-spacing:.01em;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.64), 0 18px 54px rgba(2,6,23,.14);
    pointer-events:none;
    transition: opacity .18s ease, transform .28s cubic-bezier(.22,1,.36,1);
    white-space:nowrap;
  }
  .booking-wrap .itb-wa-fab:hover::after,
  .booking-wrap .itb-wa-fab:focus-visible::after{
    opacity:1;
    transform: translateY(-50%) translateX(0);
  }
}
.booking-wrap .itb-wa-fab__icon{
  width:26px;
  height:26px;
  display:block;
}
.booking-wrap .itb-wa-fab__icon svg{
  width:26px;
  height:26px;
  display:block;
}

/* Make wizard crumbs clickable buttons without changing visual style */
.booking-wrap .wizard-crumb{
  border:0;
  -webkit-appearance:none;
  appearance:none;
  font:inherit;
  cursor:pointer;
}
.booking-wrap .wizard-crumb:focus-visible{
  outline:none;
  box-shadow:0 0 0 3px rgba(14,165,233,0.28);
  border-radius:999px;
}

/* Inline loading helper (availability, etc) */
.booking-wrap .itb-inline-loading{
  display:inline-flex;align-items:center;gap:10px;
  margin-top:8px;
  padding:10px 12px;
  border-radius:14px;
  background:rgba(2,6,23,.04);
  color:rgba(2,6,23,.66);
  font-size:13px;
  font-weight:650;
}
.booking-wrap .itb-inline-loading:before{
  content:"";
  width:10px;height:10px;
  border-radius:999px;
  background:rgba(2,6,23,.24);
  display:inline-block;
  flex:0 0 auto;
  transform:translateY(.5px);
}
.booking-wrap .itb-inline-loading[data-state="checking"]:before{
  width:14px;height:14px;
  background:transparent;
  border:2px solid rgba(2,6,23,.16);
  border-top-color:rgba(2,6,23,.6);
  animation:itbSpin .8s linear infinite;
}
.booking-wrap .itb-inline-loading[data-state="ok"]:before{ background:rgba(34,197,94,.95); }
.booking-wrap .itb-inline-loading[data-state="bad"]:before{ background:rgba(239,68,68,.95); }
@keyframes itbSpin{ to{ transform:rotate(360deg); } }

/* Date availability status (dot + text; no tick icon) */
.booking-wrap .itb-date-status{ transition:transform .18s ease, opacity .18s ease; }
.booking-wrap .itb-date-status[data-state="ok"]{
  background:rgba(34,197,94,.12);
  color:rgba(15,118,52,.95);
}
.booking-wrap .itb-date-status[data-state="bad"]{
  background:rgba(239,68,68,.10);
  color:rgba(185,28,28,.95);
}
.booking-wrap .itb-date-status.is-pop{ transform:translateY(-1px) scale(1.02); }
.booking-wrap .itb-date-status.is-shake{ animation:itbShake .32s ease-in-out; }
@keyframes itbShake{
  0%,100%{ transform:translateX(0); }
  25%{ transform:translateX(5px); }
  50%{ transform:translateX(-4px); }
  75%{ transform:translateX(3px); }
}

.booking-wrap .top-step{
  display:inline-flex;
  align-items:center;
  gap:8px;
  width:fit-content;
  padding:6px 10px;
  border-radius:999px;
  background:rgba(2,6,23,.05);
  border:1px solid rgba(2,6,23,.06);
  font-size:12px;
  font-weight:750;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:rgba(2,6,23,.62);
}

/* Saved indicator (no flicker, no layout shift) */
.booking-wrap .save-state{
  width:28px;
  height:28px;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:transparent;
  border:1px solid transparent;
  opacity:0;
  transform:scale(.96);
  transition:opacity .2s ease, transform .2s ease, background .2s ease, border-color .2s ease;
}
.booking-wrap .save-state::after{
  content:"✓";
  font-size:14px;
  font-weight:900;
  color:rgba(15,118,52,.92);
  opacity:0;
  transform:scale(.92);
  transition:opacity .2s ease, transform .2s ease;
}
.booking-wrap .save-state.is-on{
  opacity:1;
  background:rgba(34,197,94,.14);
  border-color:rgba(34,197,94,.28);
  transform:scale(1);
}
.booking-wrap .save-state.is-on::after{
  opacity:1;
  transform:scale(1);
}

/* Use ONE global close (top-right). Keep it visible while booking wizard is open */
body.itb-booking-open #globalArrow{
  opacity:1 !important;
  pointer-events:auto !important;
  transform:none !important;
}

/* Lock background scroll when booking wizard is open (prevents double/fast scrolling on mobile) */
html.itb-scroll-locked, body.itb-scroll-locked{
  overflow:hidden !important;
  height:100% !important;
  overscroll-behavior:none;
}

/* Focus polish (keyboard + accessibility) */
.booking-wrap .chip:focus-visible{
  outline:none;
  box-shadow:0 0 0 3px rgba(14,165,233,0.28);
}

.booking-wrap .top-title{
  font-size:18px;
  font-weight:850;
  color:#020617;
  letter-spacing:-.01em;
  line-height:1.05;
}
.booking-wrap .topbar-row--progress{gap:10px;margin-top:2px;}

.booking-wrap .step-dots{
  display:flex;align-items:center;gap:6px;flex:0 0 auto;
}
.booking-wrap .step-dot{
  width:8px;height:8px;border-radius:999px;
  background:#e5e7eb;
  transition:width .25s ease,background .25s ease,opacity .25s ease;
  opacity:.7;
}
.booking-wrap .step-dot.is-active{
  width:22px;background:var(--itb-accent);opacity:1;
}
.booking-wrap .step-dot.is-complete{
  background:var(--itb-accent);opacity:.75;
}
.booking-wrap .top-progress{
  flex:1;height:3px;border-radius:999px;background:#e5e7eb;overflow:hidden;
}
.booking-wrap .top-progress-fill{
  height:100%;width:0%;
  border-radius:999px;
  background:linear-gradient(90deg, var(--itb-accent), var(--itb-accent-2));
  transition:width .35s cubic-bezier(.25,.8,.25,1);
}

.booking-wrap .booking-swiper{
  position:absolute;
  top:88px;left:0;right:0;bottom:0;
  overflow:hidden;
}
.booking-wrap .booking-swiper .swiper-wrapper{
  align-items:stretch;
  /* Fallback: Swiper normally sets sizing at runtime; keep slides visible on first open. */
  height:100%;
  /* Reduce iOS jitter / "jump" feel while sliding */
  will-change:transform;
  transform:translate3d(0,0,0);
  backface-visibility:hidden;
}
.booking-wrap .booking-swiper .swiper-slide{
  height:100%;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  padding-bottom:180px;
  overscroll-behavior:contain;
  touch-action:pan-y;
  backface-visibility:hidden;
  transform:translateZ(0);
}

/* Desktop: show steps side-by-side (no more “swipe to send” confusion) */
@media (min-width: 1024px){
  .booking-wrap.is-desktop .topbar{ padding:10px 18px 10px; }
  .booking-wrap.is-desktop #wizardStep,
  .booking-wrap.is-desktop .step-dots,
  .booking-wrap.is-desktop .top-progress{ display:none !important; }

  .booking-wrap.is-desktop .booking-swiper{
    top:96px;
    overflow:visible;
  }
  .booking-wrap.is-desktop .booking-swiper .swiper-wrapper{
    display:grid !important;
    grid-template-columns:repeat(4, minmax(0,1fr));
    gap:22px;
    padding:22px 24px 28px;
    max-width:1320px;
    margin:0 auto;
    height:calc(100vh - 96px);
    width:auto !important;
    transform:none !important;
  }
  .booking-wrap.is-desktop .booking-swiper .swiper-slide{
    width:auto !important;
    height:100%;
    /* allow natural vertical scrolling inside each column */
    overflow:auto;
    -webkit-overflow-scrolling:touch;
    scrollbar-gutter:stable;
    padding-bottom:0;
  }
  .booking-wrap.is-desktop .booking-swiper .swiper-slide:nth-child(5){
    display:none !important; /* hide success column */
  }
  .booking-wrap.is-desktop .slide-inner{
    max-width:none;
    margin:0;
    min-height:100%;
    height:auto;
    overflow:visible;
    padding:16px 14px 26px;
  }
  .booking-wrap.is-desktop .wizard-nav{ display:none !important; }
}

/* Booking wizard navigation (BACK / NEXT) */
.booking-wrap .wizard-nav{
  /* Inline placement: sits directly under the last field of each step */
  position:relative;
  left:auto; right:auto; bottom:auto;
  z-index:5;
  padding:0;
  margin-top:12px;
  /* No background bar — buttons float inside the step */
  background:transparent;
  border-top:none;
  backdrop-filter:none;
  display:flex;
  gap:12px;
  transform:none;
  opacity:1;
  transition:none;
  pointer-events:auto;
  touch-action: manipulation;
}

.booking-wrap .wizard-nav.is-hidden{ display:none; }

/* Smart auto-hide when user scrolls up */
.booking-wrap .wizard-nav.is-auto-hidden{
  transform:none;
  opacity:1;
}

.booking-wrap .wizard-nav__btn{
  flex:1;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  height:48px;
  border:none;                 /* remove border */
  outline:none;
  border-radius:999px;
  padding:0 16px;
  font-weight:650;
  font-size:14px;
  letter-spacing:.08em;
  text-transform:uppercase;
  -webkit-tap-highlight-color:transparent;
  box-shadow:none;             /* keep clean */
  /* neutral base; variants set final colors */
  background:var(--itb-soft-2);
  color:rgba(11,18,32,.92);
  backdrop-filter:blur(10px);
  transition:transform .18s ease, background .22s ease, opacity .22s ease;
}

.booking-wrap .wizard-nav__icon{ font-size:16px; line-height:1; }

.booking-wrap .wizard-nav__btn--back{
  background:var(--itb-soft-2);
  color:rgba(11,18,32,.88);
}

.booking-wrap .wizard-nav__btn--next{
  background:linear-gradient(180deg, var(--itb-selected-1), var(--itb-selected-2));
  color:rgba(248,250,252,.98);
}

.booking-wrap .wizard-nav__btn:active{
  transform:translateY(1px) scale(0.99);
}

.booking-wrap .wizard-nav__btn.is-disabled,
.booking-wrap .wizard-nav__btn:disabled{
  opacity:.45;
  cursor:not-allowed;
  transform:none;
  box-shadow:none;
}

.booking-wrap .wizard-nav.is-auto-hidden .wizard-nav__btn{ pointer-events:auto; }

/* Sentinel used by IntersectionObserver for smart Back/Next reveal */
.booking-wrap .itb-nav-sentinel{
  width:100%;
  height:1px;
}

/* Hide old swipe hint bar — navigation buttons replace it */
.booking-wrap .swipe-hint-bar{ display:none !important; }
.booking-wrap .slide-inner{
  /* room for nav + safe-area at the end of the step */
  padding:24px 18px calc(24px + env(safe-area-inset-bottom));
  display:flex;flex-direction:column;gap:18px;
  max-width:640px;margin:0 auto;
}

.booking-wrap .step-intro{
  font-size:12px;letter-spacing:.16em;
  text-transform:uppercase;color:#9ca3af;
  margin-bottom:2px;
}
.booking-wrap .tour-badge{
  font-size:13px;font-weight:600;color:#0f172a;
  background:#e0f2fe;border-radius:999px;
  padding:6px 12px;display:inline-flex;align-items:center;gap:6px;
  margin-bottom:6px;
}

/* Keep the tour name only once (top title + summary pills) */
.booking-wrap .tour-badge{ display:none !important; }
.booking-wrap #sumTour{ display:none !important; }
.booking-wrap .card{
  background:rgba(255,255,255,.78);
  border-radius:var(--itb-radius-card);
  border:1px solid var(--itb-hairline-2);
  padding:18px;
  box-shadow:0 18px 54px rgba(2,6,23,.08);
  display:flex;flex-direction:column;gap:12px;
}
.booking-wrap .label{
  font-size:15px;font-weight:600;color:#020617;margin-bottom:4px;
}
.booking-wrap .hint{
  font-size:13px;color:#6b7280;line-height:1.6;
}
.booking-wrap .input{
  background:rgba(255,255,255,.86);
  padding:12px 14px;
  border-radius:var(--itb-radius-field);
  border:0;
  outline:none;
  font-size:16px;width:100%;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.72);
  transition:box-shadow .22s ease,background .22s ease,border-color .22s ease;
}
.booking-wrap .input:focus{
  background:rgba(255,255,255,.96);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.78),
    0 0 0 4px rgba(14,165,233,0.14);
}
.booking-wrap textarea.input{min-height:80px;resize:vertical;}

.booking-wrap .row{
  background:rgba(15,23,42,.04);
  border-radius:var(--itb-radius-field);
  border:0;
  padding:12px;
  display:flex;align-items:center;justify-content:space-between;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.66), 0 14px 30px rgba(2,6,23,.06);
}
.booking-wrap .counter{display:flex;align-items:center;gap:10px;padding:6px 8px;border-radius:999px;background:rgba(255,255,255,.70);box-shadow: inset 0 1px 0 rgba(255,255,255,.70), 0 10px 22px rgba(2,6,23,.05);}
.booking-wrap .circle-btn{width:36px;height:36px;border-radius:999px;background:rgba(15,23,42,0.06);display:grid;place-items:center;gap:0;font-weight:650;color:#0b1220;box-shadow:0 10px 26px rgba(2,6,23,0.10);transition:transform .15s ease, opacity .2s ease, box-shadow .2s ease;}
.booking-wrap .circle-btn:active{ transform:translateY(1px) scale(.98); }
.booking-wrap .num{font-size:18px;font-weight:700;min-width:32px;text-align:center;padding:0;margin:0;background:transparent;box-shadow:none;border-radius:0;}

.booking-wrap .chips{
  display:flex;flex-wrap:wrap;gap:10px;
}
.booking-wrap .chip{
  background: rgba(255,255,255,.78) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.40), 0 10px 22px rgba(2,6,23,.06) !important;
  padding:8px 12px;
  border-radius:999px;
  font-size:14px;font-weight:600;
  display:flex;align-items:center;gap:8px;
  cursor:pointer;
  border:0;
  outline:0;
  appearance:none;
  -webkit-appearance:none;
  font-family:inherit;
  color:inherit;
  text-align:left;
  user-select:none;
  -webkit-tap-highlight-color:transparent;
  touch-action:manipulation;
  transition: transform 240ms cubic-bezier(.2,.8,.2,1), background 220ms ease, color 200ms ease, box-shadow 260ms ease, filter 260ms ease;
  position:relative;
  z-index:2;
  opacity:1 !important;
  transform:none !important;
}
.booking-wrap .chip.on{
  background: linear-gradient(180deg, rgba(17,24,39,.70), rgba(15,23,42,.82)) !important;
  color: rgba(255,255,255,.94) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.10), 0 16px 34px rgba(2,6,23,.16) !important;
  transform: none !important;
}


/* Trip type chips: disabled state (when a tour doesn't support that type) */
.booking-wrap .chip.is-disabled{
  opacity:.45 !important;
  cursor:not-allowed;
  filter:saturate(.7);
}
.booking-wrap .chip.is-disabled:active{ transform:none !important; }

/* ===================== */
/* Trip type — segmented premium control */
/* ===================== */
#tripTypeChips{
  position:relative;
  width:100%;
  display:flex;
  align-items:stretch;
  --itb-chip-h: 42px;
  padding:3px;
  border-radius:999px;
  gap:0;
  flex-wrap:nowrap;
  /* softer track (no heavy background/border) */
  background: rgba(15,23,42,.035);
  box-shadow: none;
  isolation:isolate;
}
#tripTypeChips .itb-seg-indicator{
  position:absolute;
  top:3px;
  left:3px;
  height: calc(100% - 6px);
  width: calc((100% - 6px) / 2);
  border-radius:999px;
  background: linear-gradient(180deg, rgba(17,24,39,.78), rgba(15,23,42,.88));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.10), 0 12px 24px rgba(2,6,23,.12);
  transform: translate3d(0,0,0);
  transition: transform 460ms cubic-bezier(0.22,1,0.36,1), width 460ms cubic-bezier(0.22,1,0.36,1);
  will-change: transform,width;
  z-index:0;
}
#tripTypeChips .chip{
  flex:0 0 50%;
  max-width:50%;
  justify-content:center;
  align-items:center;
  text-align:center;
  min-width:0;
  gap:10px;
  background: transparent !important;
  box-shadow: none !important;
  height:var(--itb-chip-h);
  min-height:var(--itb-chip-h);
  padding:0 14px;
  font-size:clamp(13px, 1.6vw, 14px);
  font-weight:750;
  line-height:1;
  letter-spacing:.01em;
  white-space:nowrap;
  z-index:1;
}

/* Trip type icon layout + one-shot lead-in */
#tripTypeChips .chip-ico{
  display:inline-grid;
  place-items:center;
  width:1.25em;
  line-height:1;
  font-size:1.05em;
  transform:translateZ(0);
  will-change:transform, filter, opacity;
}
#tripTypeChips .chip-txt{ line-height:1; }

@keyframes itbGroupIn{
  0%{ transform:translateY(7px) scale(.88); filter:brightness(.98); opacity:.96; }
  60%{ transform:translateY(-2px) scale(1.10); filter:brightness(1.04); opacity:1; }
  100%{ transform:translateY(0) scale(1); filter:brightness(1); opacity:1; }
}
@keyframes itbPrivateSail{
  0%{ transform:translateX(-9px) rotate(-7deg) scale(.96); filter:brightness(.99); opacity:.96; }
  58%{ transform:translateX(2px) rotate(5deg) scale(1.06); filter:brightness(1.04); opacity:1; }
  100%{ transform:translateX(0) rotate(0deg) scale(1); filter:brightness(1); opacity:1; }
}

#tripTypeChips .chip.itb-ico-anim[data-type="group"] .chip-ico{ animation: itbGroupIn 720ms cubic-bezier(.2,.9,.2,1) both; }
#tripTypeChips .chip.itb-ico-anim[data-type="private"] .chip-ico{ animation: itbPrivateSail 780ms cubic-bezier(.2,.9,.2,1) both; }
#tripTypeChips .chip{
  transition: color 220ms ease, opacity 220ms ease;
}
#tripTypeChips .chip:not(.on){
  color: rgba(11,15,20,.78) !important;
}
#tripTypeChips .chip.on,
#tripTypeChips .chip[aria-checked="true"],
#tripTypeChips .chip[aria-pressed="true"]{
  background: transparent !important;
  box-shadow: none !important;
  color: rgba(255,255,255,.96) !important;
}

/* Fix: selected trip type should NEVER look disabled/grey */
#tripTypeChips .chip.on.is-disabled,
#tripTypeChips .chip.on[aria-disabled="true"]{
  opacity: 1 !important;
  filter: none !important;
}
#tripTypeChips .chip.on{
  color: rgba(255,255,255,.96) !important;
}
#tripTypeChips .chip.on *,
#tripTypeChips .chip[aria-checked="true"] *,
#tripTypeChips .chip[aria-pressed="true"] *{
  opacity: 1 !important;
}

/* Slightly stronger contrast for unselected chip text */
#tripTypeChips .chip:not(.on):not([aria-checked="true"]):not([aria-pressed="true"]){
  color: rgba(11,15,20,.86) !important;
}

#tripTypeChips .chip:focus-visible{
  outline: none;
  box-shadow: 0 0 0 4px rgba(14,165,233,0.18) !important;
}
#tripTypeChips .chip.is-disabled{
  opacity:.40 !important;
}

/* If the selected chip is temporarily disabled (eg. while data is still loading),
   keep it visually readable — only block interaction. */
#tripTypeChips .chip.on.is-disabled,
#tripTypeChips .chip[aria-checked="true"].is-disabled{
  opacity: 1 !important;
  filter: none !important;
}

@media (max-width: 380px){
  #tripTypeChips .chip{ font-size:13px; padding:0 10px; }
}

.booking-wrap .review-card{
  background:#fff;border-radius:18px;
  padding:18px;
  box-shadow:0 6px 16px rgba(15,23,42,0.06);
  display:flex;flex-direction:column;gap:12px;
}
.booking-wrap .rev-title{font-size:20px;font-weight:800;text-align:center;}
.booking-wrap .rev-row{display:flex;align-items:center;gap:12px;}
.booking-wrap .rev-icon{
  width:40px;height:40px;border-radius:12px;
  background:#eef3f6;
  display:flex;align-items:center;justify-content:center;
  font-size:20px;
}
.booking-wrap .rev-label{font-size:14px;color:#6b6b6b;}
.booking-wrap .rev-value{font-size:16px;font-weight:600;color:#111;}
.booking-wrap .mini-price{margin-top:8px;font-size:13px;color:#555;font-weight:600;}

/* Desktop send button (keeps mobile swipe flow) */
.booking-wrap .itb-send-btn{
  display:none;
  width:100%;
  height:50px;
  border:none;
  border-radius:999px;
  background:rgba(12, 14, 18, 0.92);
  color:#fff;
  font-weight:750;
  font-size:14px;
  letter-spacing:.14em;
  text-transform:uppercase;
  align-items:center;
  justify-content:center;
  gap:10px;
  cursor:pointer;
  box-shadow:0 12px 28px rgba(2,6,23,0.14);
  transition:transform .2s ease, filter .2s ease;
}
.booking-wrap .itb-send-btn:active{ transform:translateY(1px) scale(0.99); }

.booking-wrap .itb-send-sub{
  margin-top:-2px;
  font-size:12px;
  font-weight:700;
  color:rgba(2,6,23,0.55);
  letter-spacing:.02em;
  text-align:center;
}

@media (min-width: 1024px){
  .booking-wrap.is-desktop .itb-send-btn{ display:flex; }
  .booking-wrap.is-desktop .itb-send-sub{ display:none; }
}

.booking-wrap .field-error{
  box-shadow:0 0 0 1px rgba(248,113,113,0.95);
  background:#fff1f2;
}

/* Inline validation (clear + premium) */
.booking-wrap .input.is-invalid{
  box-shadow:0 0 0 1px rgba(248,113,113,0.95);
  background:#fff1f2;
}
.booking-wrap .field-msg{
  margin-top:8px;
  font-size:12px;
  font-weight:750;
  color:#b91c1c;
  letter-spacing:.01em;
  display:block;
  max-height:0;
  overflow:hidden;
  opacity:0;
  transform: translateY(6px);
  transition:
    opacity 220ms cubic-bezier(.16,1,.30,1),
    transform 260ms cubic-bezier(.16,1,.30,1),
    max-height 260ms cubic-bezier(.16,1,.30,1);
  will-change: opacity, transform;
}
.booking-wrap .field-msg.is-show{
  max-height:80px;
  opacity:1;
  transform: translateY(0);
}

/* Micro-summary feedback */
.booking-summary{transition:transform .22s ease, filter .22s ease;}
.booking-summary.is-bump{transform:translateY(-1px);filter:brightness(1.02);}

/* SWIPE HINT */
.booking-wrap .swipe-hint-bar{
  position:fixed;
  left:50%;bottom:18px;
  transform:translateX(-50%);
  z-index:90;
  background:#fffffffa;
  border-radius:999px;
  box-shadow:0 10px 30px rgba(15,23,42,0.14);
  padding:10px 18px;
  display:inline-flex;align-items:center;gap:.75rem;
  transition:transform .3s ease,opacity .3s ease;
  pointer-events:none;
}
.booking-wrap .swipe-hint-bar.is-hidden{
  transform:translate(-50%,80px);
  opacity:0;
}
.booking-wrap .swipe-track{
  width:56px;height:26px;border-radius:999px;
  border:2px solid #e5e7eb;
  display:flex;align-items:center;justify-content:flex-end;
  padding-inline:6px;overflow:hidden;position:relative;
}
.booking-wrap .swipe-dot{
  width:8px;height:8px;border-radius:999px;background:#0ea5e9;
  animation:swipeDotLeft 1.4s cubic-bezier(.22,.61,.36,1) infinite;
}
.booking-wrap .swipe-arrow{
  position:absolute;left:8px;width:0;height:0;
  border-top:4px solid transparent;
  border-bottom:4px solid transparent;
  border-right:6px solid #e5e7eb;
  opacity:.7;
}
.booking-wrap .swipe-label{
  font-size:.8rem;letter-spacing:.25em;
  text-transform:uppercase;color:#6b7280;
  white-space:nowrap;
}
@keyframes swipeDotLeft{
  0%{transform:translateX(0);opacity:.3;}
  30%{opacity:1;}
  100%{transform:translateX(-20px);opacity:0;}
}

/* SUCCESS */
.booking-wrap .success-shell{
  min-height:calc(100vh - 120px);
  display:flex;align-items:center;justify-content:center;
  text-align:center;flex-direction:column;
  gap:18px;padding:0 24px;
}
.booking-wrap .success-root{
  display:flex;flex-direction:column;align-items:center;gap:18px;
}
.booking-wrap .success-icon-wrap{
  position:relative;width:96px;height:96px;margin-bottom:4px;
  overflow:visible;
}

.booking-wrap .success-icon-wrap::after{
  content:"";
  position:absolute;
  inset:-10px;
  border-radius:999px;
  border:2px solid rgba(2,6,23,0.06);
  opacity:0;
  transform:scale(.88);
  pointer-events:none;
}
.booking-wrap .success-root.done .success-icon-wrap::after{
  border-color:rgba(34,197,94,0.24);
  animation:itbStatusPulse .70s cubic-bezier(.22,1,.36,1) both;
}
.booking-wrap .success-root.fail .success-icon-wrap::after{
  border-color:rgba(239,68,68,0.22);
  animation:itbStatusPulse .70s cubic-bezier(.22,1,.36,1) both;
}
@keyframes itbStatusPulse{
  0%{opacity:0;transform:scale(.88);}
  22%{opacity:.9;}
  100%{opacity:0;transform:scale(1.12);}
}

.booking-wrap .success-copy{
  max-width:320px;display:flex;flex-direction:column;gap:6px;
}
.booking-wrap .success-title{
  font-size:22px;font-weight:800;letter-spacing:.02em;
  transition:opacity .3s,transform .3s;
}
.booking-wrap .success-body{
  font-size:15px;color:#4b5563;line-height:1.7;
  transition:opacity .3s,transform .3s;
}
.booking-wrap .success-sub{
  font-size:13px;color:#9ca3af;
  transition:opacity .3s,transform .3s;
}
.booking-wrap .text-fade-out{opacity:0;transform:translateY(-4px);}
.booking-wrap .text-fade-in{opacity:1;transform:translateY(0);}

.booking-wrap .circle-loader{
  width:72px;height:72px;border-radius:50%;
  border:3px solid #e5f3ff;border-top-color:#0ea5e9;
  position:absolute;top:12px;left:12px;
  animation:spinLoader .85s linear infinite;
  transform-origin:center center;
  opacity:1;transition:opacity .35s,transform .35s;
}
@keyframes spinLoader{to{transform:rotate(360deg);}}

/* Wrap SVG marks in a real circular mask so iOS Safari never shows a square bg */
.booking-wrap .mark-wrap{
  width:72px;height:72px;
  position:absolute;top:12px;left:12px;
  border-radius:50%;
  background:#fff;
  border:1px solid rgba(2,6,23,0.08);
  box-shadow:0 18px 56px rgba(2,6,23,0.10);
  overflow:hidden;
  /* force proper clipping on iOS */
  -webkit-mask-image:-webkit-radial-gradient(white,black);
  opacity:0;
  transform:translateZ(0) scale(.92);
  transition:opacity .35s,transform .35s;
}
.booking-wrap .mark-wrap svg{
  width:72px;height:72px;
  position:absolute;inset:0;
  display:block;
  background:transparent;
}

.booking-wrap .checkmark{
  stroke:#16a34a;
  stroke-width:3.2;
  stroke-miterlimit:10;
}
.booking-wrap .checkmark__circle{
  stroke:rgba(34,197,94,0.22);
  stroke-width:3.2;
  stroke-miterlimit:10;
  fill:none;
  stroke-dasharray:145;
  stroke-dashoffset:145;
}
.booking-wrap .checkmark__check{
  transform-origin:center center;
  stroke-dasharray:48;
  stroke-dashoffset:48;
  fill:none;
}

.booking-wrap .xmark{
  stroke:#ef4444;
  stroke-width:3.2;
  stroke-miterlimit:10;
}
.booking-wrap .xmark__circle{
  stroke:rgba(239,68,68,0.22);
  stroke-width:3.2;
  stroke-miterlimit:10;
  fill:none;
  stroke-dasharray:145;
  stroke-dashoffset:145;
}
.booking-wrap .xmark__x1,
.booking-wrap .xmark__x2{
  transform-origin:center center;
  stroke-dasharray:40;
  stroke-dashoffset:40;
  fill:none;
}

.booking-wrap .success-root.fail .circle-loader{
  opacity:0;transform:scale(.8);
}
.booking-wrap .success-root.fail .mark-check{
  opacity:0;transform:scale(.9);
}
.booking-wrap .success-root.fail .mark-x{
  opacity:1;transform:scale(1);
  animation:xmark-pop .35s ease-out .05s both;
}
.booking-wrap .success-root.fail .xmark__circle{
  animation:xmark-stroke-circle .6s cubic-bezier(.65,0,.45,1) .05s forwards;
}
.booking-wrap .success-root.fail .xmark__x1{
  animation:xmark-stroke-x .35s cubic-bezier(.65,0,.45,1) .55s forwards;
}
.booking-wrap .success-root.fail .xmark__x2{
  animation:xmark-stroke-x .35s cubic-bezier(.65,0,.45,1) .68s forwards;
}

@keyframes xmark-stroke-circle{100%{stroke-dashoffset:0;}}
@keyframes xmark-stroke-x{100%{stroke-dashoffset:0;}}
@keyframes xmark-pop{0%{transform:scale(.8);}100%{transform:scale(1);}}

.booking-wrap .success-root.done .circle-loader{
  opacity:0;transform:scale(.8);
}
.booking-wrap .success-root.done .mark-check{
  opacity:1;transform:scale(1);
  animation:checkmark-pop .35s ease-out .05s both;
}
.booking-wrap .success-root.done .checkmark__circle{
  animation:checkmark-stroke-circle .6s cubic-bezier(.65,0,.45,1) .05s forwards;
}
.booking-wrap .success-root.done .checkmark__check{
  animation:checkmark-stroke-check .35s cubic-bezier(.65,0,.45,1) .7s forwards;
}
@keyframes checkmark-stroke-circle{100%{stroke-dashoffset:0;}}
@keyframes checkmark-stroke-check{100%{stroke-dashoffset:0;}}
@keyframes checkmark-pop{0%{transform:scale(.8);}100%{transform:scale(1);}}

.booking-wrap .swiper-slide::-webkit-scrollbar{width:0;}

@media (min-width:768px){
  .booking-wrap .booking-swiper{top:88px;}
}

/* ============================
   TOUR LIST OVERLAY STYLING
============================ */
#tourListOverlay {
  position: fixed;
  inset: 0;
  background: rgba(250,250,252,0.92);
  backdrop-filter: blur(26px);
  z-index: 12000;
  transform: translateX(-100%);
  opacity: 0;
  pointer-events: none;
  transition: transform .55s cubic-bezier(.22,1,.36,1), opacity .45s;
}

#tourListOverlay.show {
  transform: translateX(0);
  opacity: 1;
  pointer-events: auto;
}

.tour-list-header {
  padding: 22px 22px 4px;
  display:flex;
  flex-direction:column;
  gap:6px;
  position:relative;
}
.tour-list-title {
  font-size: 24px;
  font-weight: 800;
  color:#050505;
  letter-spacing:-.04em;
}
.tour-list-sub {
  font-size: 13px;
  color:#7a7a7a;
}

#tourListClose{
  position:absolute;
  top:10px;
  right:10px;
}

.tour-list-container {
  padding: 8px 22px 26px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  overflow-y: auto;
  height: calc(100vh - 68px);
}

.tour-item {
  display: flex;
  gap: 16px;
  align-items: center;
  background: rgba(255,255,255,0.9);
  padding: 14px 16px;
  border-radius: 20px;
  backdrop-filter: blur(18px);
  cursor: pointer;
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
  box-shadow: 0 10px 26px rgba(15,23,42,0.08);
}
.tour-item:active {
  transform: scale(.97);
  box-shadow: 0 6px 18px rgba(15,23,42,0.12);
}

.tour-thumb {
  width: 70px;
  height: 70px;
  border-radius: 16px;
  object-fit: cover;
}

.tour-info-block {
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.tour-name {
  font-size: 16px;
  font-weight: 700;
  color: #111;
}

.tour-tag {
  font-size: 13px;
  color: #6b6b6b;
}

.tour-meta-pill {
  margin-top:6px;
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.18em;
  color:#9ca3af;
}

/* SMART-REACTIVE HINT FOR TOUR LIST */
.tour-hint {
  position: absolute;
  bottom: 26px;
  left: 50%;
  transform: translateX(-50%) translateY(18px);
  background: rgba(255,255,255,0.9);
  backdrop-filter: blur(14px);
  padding: 9px 20px;
  border-radius: 999px;
  font-size: 12px;
  letter-spacing: .20em;
  text-transform: uppercase;
  color: #333;
  opacity: 0;
  pointer-events: none;
  transition:
    opacity .32s cubic-bezier(.25,.8,.25,1),
    transform .32s cubic-bezier(.25,.8,.25,1);
}

.tour-hint.show {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}

.tour-hint.dim {
  opacity: .35;
}

/* HERO GUIDE (more instructive on hero) */
.hero-guide{
  position:fixed;
  left:50%;
  bottom:22px;
  transform:translateX(-50%);
  z-index:85;
  pointer-events:none;
  display:flex;
  align-items:center;
  gap:10px;
  padding-bottom:env(safe-area-inset-bottom);
}
.hero-guide__pill{
  pointer-events:auto;
  appearance:none;
  border:1px solid rgba(255,255,255,0.18);
  background:rgba(255,255,255,0.10);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-radius:999px;
  padding:12px 16px;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:6px;
  color:rgba(255,255,255,0.92);
  box-shadow:0 10px 30px rgba(0,0,0,0.28);
  font-size:12px;
  letter-spacing:.12em;
  text-transform:uppercase;
  max-width:calc(100vw - 26px);
  opacity:0;
  transform:translateY(12px);
  transition:opacity .35s cubic-bezier(.2,.8,.2,1),transform .35s cubic-bezier(.2,.8,.2,1);
  position:relative;
  overflow:hidden;
}

/* subtle gradient border (modern glass) */
.hero-guide__pill::before{
  content:"";
  position:absolute;
  inset:0;
  padding:1px;
  border-radius:999px;
  background:linear-gradient(135deg, rgba(255,255,255,0.32), rgba(255,255,255,0.10), rgba(255,255,255,0.22));
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;
  mask-composite:exclude;
  pointer-events:none;
  opacity:0.65;
}

/* Track: same language as booking wizard hint, but glass */
.hero-guide__track{
  width:72px;
  height:28px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,0.26);
  background:rgba(0,0,0,0.14);
  display:flex;
  align-items:center;
  justify-content:center;
  position:relative;
  overflow:hidden;
}
.hero-guide__arrow{
  position:absolute;
  width:0;height:0;
  opacity:.55;
}
.hero-guide__arrow--l{
  left:10px;
  border-top:4px solid transparent;
  border-bottom:4px solid transparent;
  border-right:6px solid rgba(255,255,255,0.55);
}
.hero-guide__arrow--r{
  right:10px;
  border-top:4px solid transparent;
  border-bottom:4px solid transparent;
  border-left:6px solid rgba(255,255,255,0.55);
}
.hero-guide__dot{
  width:7px;height:7px;
  border-radius:999px;
  background:rgba(255,255,255,0.90);
  box-shadow:0 0 0 7px rgba(255,255,255,0.07);
  animation:itbHeroGuideDot 1.55s cubic-bezier(.22,.61,.36,1) infinite;
}
@keyframes itbHeroGuideDot{
  0%{transform:translateX(-18px);opacity:.28;}
  25%{opacity:1;}
  55%{transform:translateX(0);opacity:1;}
  100%{transform:translateX(18px);opacity:.18;}
}
.hero-guide__pill:active{transform:translateY(10px) scale(.99);}
.hero-guide__pill.is-show{
  opacity:1;
  transform:translateY(0);
}
.hero-guide__icon{
  width:18px;height:18px;
  display:inline-flex;
  align-items:center;justify-content:center;
  font-size:14px;
  opacity:.95;
}
.hero-guide__text{
  white-space:normal;
  line-height:1.25;
  text-align:center;
}


.hero-guide__row{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
  line-height:1.2;
  white-space:nowrap;
}
.hero-guide__seg{
  display:inline-flex;
  align-items:center;
  gap:6px;
}
.hero-guide__sep{
  opacity:.35;
}
.hero-guide__arr{
  display:inline-block;
  opacity:.9;
}
.hero-guide__sub{
  font-size:11px;
  letter-spacing:.14em;
  text-transform:uppercase;
  opacity:.74;
  font-weight:600;
  line-height:1.15;
}
.hero-guide__plus{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:16px;height:16px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,0.26);
  line-height:1;
  transform:translateY(-.5px);
}
.hero-guide[data-step="tours"] .hero-guide__icon{animation:itbNudgeR 1.25s ease-in-out infinite;}
.hero-guide[data-step="details"] .hero-guide__icon{animation:itbNudgeL 1.25s ease-in-out infinite;}
@keyframes itbNudgeR{0%,100%{transform:translateX(0);}50%{transform:translateX(3px);}}
@keyframes itbNudgeL{0%,100%{transform:translateX(0);}50%{transform:translateX(-3px);}}

@media (max-width: 420px){
  .hero-guide__pill{font-size:11px;padding:11px 14px;}
  .hero-guide__track{width:66px;}
}
.hero-guide__mini{
  pointer-events:auto;
  appearance:none;
  border:1px solid rgba(255,255,255,0.22);
  background:rgba(255,255,255,0.10);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  width:34px;height:34px;
  border-radius:999px;
  display:flex;
  align-items:center;justify-content:center;
  opacity:0;
  transform:translateY(12px);
  transition:opacity .35s cubic-bezier(.2,.8,.2,1),transform .35s cubic-bezier(.2,.8,.2,1);
  box-shadow:0 12px 40px rgba(0,0,0,0.35);
}
.hero-guide__mini.is-show{opacity:1;transform:translateY(0);}
.hero-guide__mini-dot{
  width:6px;height:6px;border-radius:99px;
  background:rgba(255,255,255,0.9);
  box-shadow:0 0 0 6px rgba(255,255,255,0.08);
}
.hero-guide.is-idle .hero-guide__mini-dot{
  animation:itbMiniPulse 1.9s ease-in-out infinite;
}
@keyframes itbMiniPulse{
  0%,100%{transform:scale(1);box-shadow:0 0 0 6px rgba(255,255,255,0.08);}
  50%{transform:scale(1.15);box-shadow:0 0 0 11px rgba(255,255,255,0.11);}
}
@media (prefers-reduced-motion: reduce){
  .hero-guide__dot{animation:none !important;}
  .hero-guide__pill, .hero-guide__mini{transition:none !important;}
}

/* --- WP global heading overrides (fix giant H1 on desktop) --- */
#heroSlides .hero-title,
#detailHeroSlides .hero-title{
  font-size: 34px !important;
  line-height: 1.06 !important;
  letter-spacing: -0.01em;
  margin: 0 0 10px 0;
}

#heroSlides .hero-kicker,
#detailHeroSlides .hero-kicker{
  font-size: 12px !important;
  letter-spacing: .18em !important;
  text-transform: uppercase;
}

#heroSlides .hero-tag,
#detailHeroSlides .hero-tag{
  font-size: 14px !important;
  line-height: 1.5 !important;
}

@media (min-width: 900px){
  #heroSlides .hero-title,
  #detailHeroSlides .hero-title{
    font-size: 46px !important;
  }
}

/* --- Accordion chips: clean circle, readable (match your HTML) --- */
#sections .chip{
  background: transparent;
  border: none;
  border-radius: 0;
  padding: 0;
}
#sections .icon-circle{
  background: #efefef;
  border: none;
  color: #2e2e2e;
}
#sections .chip-title{ color:#111; }
#sections .chip-time{ color:#777; }
#sections .chip-desc{ color:#5f5f5f; }

/* --- Detail hero sizing refinement (desktop-safe) --- */
#detailLayout .hero-title{
  font-size: clamp(30px, 4.2vw, 50px) !important;
  line-height: 1.06 !important;
  letter-spacing: -0.02em;
}
#detailLayout .hero-tag{
  font-size: 14px !important;
  line-height: 1.55 !important;
  max-width: 540px;
}
#detailLayout .price-pill{
  padding: 10px 16px;
  gap: 14px;
}
#detailLayout .hero-book{
  padding: 10px 18px;
  font-size: 13px;
  font-weight: 800;
}


/* ================= HOTFIXES ================= */
/* Booking fields: prevent iOS overflow (force border-box) */
.booking-wrap, .booking-wrap *{ box-sizing:border-box; }
.booking-wrap .input, .booking-wrap input, .booking-wrap select, .booking-wrap textarea{
  width:100%;
  max-width:100%;
  display:block;
}
.booking-wrap .card, .booking-wrap .field, .booking-wrap .input-wrap{ overflow:hidden; }

/* Desktop: refine hero text + CTA sizing (keep mobile identical) */
@media (min-width: 900px){
  .tour-info{ left:min(84px,6vw); bottom:14vh; }
  .tour-tagline{
    font-size:16px !important;
    letter-spacing:3px;
    width:auto;
    max-width:780px;
  }
  .tour-title{
    font-size:clamp(64px,6.2vw,96px) !important;
    letter-spacing:-4px;
    line-height:.84;
  }
  .hero-cta-btn{
    font-size:14px;
    padding:12px 20px;
    letter-spacing:.06em;
  }
}

/* ================= HERO SWIPE HINT ================= */
.hero-swipe-hint{
  position:fixed;
  left:50%;
  bottom:calc(16px + env(safe-area-inset-bottom));
  transform:translateX(-50%);
  z-index:9000;
  pointer-events:none;
  opacity:0;
  transition:opacity .35s ease, transform .45s cubic-bezier(.22,1,.36,1);
  will-change:opacity,transform;
}
.hero-swipe-hint.show{
  opacity:1;
  transform:translateX(-50%) translateY(0);
}
.hero-swipe-hint .pill{
  display:inline-flex;
  align-items:center;
  gap:12px;
  padding:10px 14px;
  border-radius:999px;
  background:rgba(0,0,0,.28);
  border:1px solid rgba(255,255,255,.14);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
  box-shadow:0 10px 30px rgba(0,0,0,.22);
}
.hero-swipe-hint .mouse{
  width:40px;height:24px;
  border-radius:999px;
  border:2px solid rgba(255,255,255,.35);
  display:flex;
  align-items:center;
  justify-content:flex-start;
  padding-left:5px;
  overflow:hidden;
}
.hero-swipe-hint .dot{
  width:6px;height:6px;border-radius:999px;
  background:#00a2ff;
  animation:heroHintDot 1.35s cubic-bezier(.22,.61,.36,1) infinite;
}
@keyframes heroHintDot{
  0%{transform:translateX(0);opacity:.25;}
  30%{opacity:1;}
  100%{transform:translateX(18px);opacity:0;}
}
.hero-swipe-hint .label{
  font-size:11px;
  letter-spacing:.28em;
  text-transform:uppercase;
  color:rgba(255,255,255,.92);
  white-space:nowrap;
}
.hero-swipe-hint .label b{ font-weight:800; letter-spacing:.12em; }
.hero-swipe-hint .label .muted{opacity:.62; font-weight:700; letter-spacing:.18em;}
@media (min-width: 900px){
  .hero-swipe-hint{ bottom:18px; }
}
/* Detail hero H1: prevent theme overrides */
#detailLayout .hero-title{font-size:clamp(34px,6vw,56px) !important;line-height:1.08 !important;margin:10px 0 0 !important;}



/* ================= ITB REFINEMENTS v4 ================= */

/* Bottom CTA (fade up on detail scroll) */
.bottom-cta{
  position:fixed;
  left:0; right:0;
  bottom: calc(env(safe-area-inset-bottom) + var(--itb-kb, 0px));
  z-index: 900;
  display:flex;
  justify-content:center;
  pointer-events:none;
  opacity:0;
  transform: translateY(14px);
  transition: opacity .35s ease, transform .45s cubic-bezier(.22,1,.36,1);
}
.bottom-cta.show{
  opacity:1;
  transform: translateY(0);
  pointer-events:auto;
}
.book-big-btn{
  max-width: min(560px, calc(100vw - 28px));
  width: 100%;
  padding: 14px 18px;
  border-radius: 999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;

  background:linear-gradient(180deg, rgba(17,17,17,0.98), rgba(0,0,0,0.96));
  color:#fff;
  border:1px solid rgba(255,255,255,0.10);
  font-weight: 900;
  letter-spacing: .02em;
  text-align:center;
  user-select:none;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;

  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.10),
    0 18px 50px rgba(2,6,23,0.18);
  transition:transform .18s ease, box-shadow .24s ease, border-color .24s ease, opacity .24s ease;
}
.book-big-btn:active{ transform: scale(.985) translateY(1px); }
.book-big-btn:focus-visible{
  outline:none;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.10),
    0 18px 50px rgba(2,6,23,0.18),
    0 0 0 3px rgba(14,165,233,0.22);
}

/* Booking summary: reduce duplication on mobile */
@media (max-width: 899px){
  #sumTour{ display:none !important; }
  .booking-summary{
    gap:8px;
    padding:8px 12px 6px;
  }
  .sum-pill{
    padding:7px 10px;
    font-size:12px;
  }
}

/* Chips: ensure readable (no border, clean circle) */
#sections .icon-circle{
  background:#efefef !important;
  color:#111 !important;
  border:none !important;
}
#sections .chip-title{ color:#111 !important; }
#sections .chip-desc{ color:#5f5f5f !important; }

/* Desktop: bigger hero title + bigger primary button */
@media (min-width: 900px){
  .tour-tagline{
    font-size:16px !important;
    max-width: 860px !important;
    letter-spacing: .22em !important;
    white-space: nowrap !important;
    overflow:hidden !important;
    text-overflow: ellipsis !important;
  }
  .tour-title{
    font-size: 170px !important;
    letter-spacing: -8px !important;
    line-height: .78 !important;
    max-width: 920px;
  }

  #detailLayout .hero-title{
    font-size: clamp(52px, 5.2vw, 84px) !important;
    line-height: 1.02 !important;
  }
  #detailLayout .hero-book{
    padding: 16px 30px !important;
    font-size: 16px !important;
  }
}

/* Booking wizard: remove progress line (keep dots) */
.booking-wrap .top-progress{display:none !important;}
.booking-wrap .topbar-row--progress{align-items:center;}



/* ================= BOOKING HEADER CLEANUP ================= */
/* Remove Step text + dots row (user request) */
.booking-wrap .top-step{ display:none !important; }
.booking-wrap .topbar-row--progress{ display:none !important; }

/* ===== Details End CTA (under accordion) ===== */
.details-end-cta{padding:18px 0 26px;}
.details-end-cta__inner{
  max-width:1120px;margin:0 auto;padding:0 14px;
  display:flex;align-items:center;justify-content:space-between;gap:14px;
}
.details-end-cta__note{
  font-size:12px;letter-spacing:.28em;text-transform:uppercase;
  color:#8a8a8a;white-space:nowrap;
}
.details-end-cta__btn{
  appearance:none;
  cursor:pointer;
  padding:14px 18px;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;

  background:linear-gradient(180deg, rgba(17,17,17,0.98), rgba(0,0,0,0.96));
  color:#fff;
  border:1px solid rgba(255,255,255,0.10);
  font-weight:900;
  letter-spacing:.02em;
  line-height:1;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;

  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.10),
    0 18px 50px rgba(2,6,23,0.18);
  transition:transform .18s ease, box-shadow .24s ease, border-color .24s ease, opacity .24s ease;
}
.details-end-cta__btn:active{transform:scale(.985) translateY(1px);}
.details-end-cta__btn:focus-visible{
  outline:none;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.10),
    0 18px 50px rgba(2,6,23,0.18),
    0 0 0 3px rgba(14,165,233,0.22);
}

/* ============ ACCORDION: Single Card + Chevron (no circle) ============ */
/* Goal: header + content share one card; chevron has no circle background; active state gets subtle elegant shadow. */

.section{
  background: linear-gradient(180deg,#fbfbfc 0%, #f6f7f9 100%);
  border-radius: 18px;
  /* no border / outline — only soft depth */
  outline: none;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.92),
    0 10px 34px rgba(2,6,23,.06);
  overflow: hidden;
}

.section.open{
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.92),
    0 16px 56px rgba(2,6,23,.10);
}

.section-head{
  background: transparent !important;
  box-shadow: none !important;
  outline: none !important;
  border-radius: 0 !important;
  padding: 16px 16px;
}

.section-head:active{ transform: scale(.995); }

.toggle-icon{
  background: transparent !important;
  width: auto !important;
  height: auto !important;
  border-radius: 0 !important;
  padding: 8px;
  color: rgba(14,14,15,.75);
  transition: color .2s ease, transform .55s var(--itb-ease);
}

.section.open .toggle-icon{
  color: rgba(14,14,15,.92);
}

.itb-chevron{
  width: 20px;
  height: 20px;
}

.section-body{
  padding: 0 0 0 0 !important;
}

.section-body .chip-list{
  margin-top: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  outline: none !important;

  padding: 14px 16px 16px;
  /* no divider border */
  border-top: 0;
}

.chip-list{ gap: 16px; }

.icon-circle{
  background: rgba(2,6,23,.06);
}

@media (max-width: 360px){
  .hero-guide__row{white-space:normal;flex-wrap:wrap;row-gap:6px;}
}

/* ================= HERO FULLSCREEN GALLERY ================= */
html.itb-lock, body.itb-lock{
  overflow:hidden !important;
  height:100%;
}

/* iOS-safe scroll lock (prevents background from moving under fixed overlays) */
body.itb-lock{
  position:fixed;
  width:100%;
  left:0;right:0;
  overscroll-behavior:none;
}

.hero-gallery[hidden]{display:none !important;}

.hero-gallery{
  position:fixed;
  inset:0;
  background:#000;
  z-index:100000;
  opacity:0;
  pointer-events:none;
  transition:opacity .35s cubic-bezier(.22,1,.36,1);
  overscroll-behavior:none;
  touch-action:none;
}

.hero-gallery.show{
  opacity:1;
  pointer-events:auto;
}

.hero-gallery__top{
  transform:translateY(var(--itb-pull,0px));
  transition:transform .12s ease;

  position:absolute;
  left:0; right:0; top:0;
  padding:18px 18px 10px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  z-index:10;
  pointer-events:none;
}

.hero-gallery__title{
  pointer-events:none;
  color:rgba(255,255,255,.92);
  font-weight:600;
  letter-spacing:.2px;
  font-size:14px;
  padding:10px 12px;
  border-radius:999px;
  background:rgba(255,255,255,.06);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border:1px solid rgba(255,255,255,.10);
}

#heroGalleryClose{
  pointer-events:auto;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.10);
  border-radius:999px;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.hero-gallery-swiper{
  transform:translateY(var(--itb-pull,0px));
  transition:transform .12s ease;

  position:absolute;
  inset:0;
}

.hero-gallery__slide{
  width:100%;
  height:100%;
  background-size:cover;
  background-position:center;
  transform:translateZ(0);
}

.hero-gallery__pagination{
  position:absolute;
  left: var(--itb-drawer-arrow-left, 18px);
  bottom:18px;
  z-index:12;
  width:auto !important;
  color:rgba(255,255,255,.92);
  font-weight:600;
  font-size:13px;
  padding:10px 12px;
  border-radius:999px;
  background:rgba(255,255,255,.06);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border:1px solid rgba(255,255,255,.10);
}

/* Make sure fraction looks clean */
.hero-gallery__pagination .swiper-pagination-current,
.hero-gallery__pagination .swiper-pagination-total{
  font-variant-numeric: tabular-nums;
}

.hero-gallery__hint{
  position:absolute;
  left:50%;
  bottom:18px;
  transform:translateX(-50%) translateY(var(--itb-pull,0px));
  transition:transform .12s ease, opacity .25s ease;
  z-index:14;
  pointer-events:none;
  display:inline-flex;
  align-items:center;
  gap:.75rem;
  padding:10px 16px;
  border-radius:999px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.12);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  box-shadow:0 14px 34px rgba(0,0,0,.35);
}

.hero-gallery__hint-track{
  width:26px;
  height:56px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.18);
  display:flex;
  align-items:flex-start;
  justify-content:center;
  padding:6px 0;
  overflow:hidden;
  position:relative;
}

.hero-gallery__hint-dot{
  width:8px;
  height:8px;
  border-radius:999px;
  background:rgba(255,255,255,.92);
  animation:itbSwipeDotDown 1.4s cubic-bezier(.22,.61,.36,1) infinite;
}

.hero-gallery__hint-arrow{
  position:absolute;
  top:10px;
  left:50%;
  width:0;height:0;
  transform:translateX(-50%);
  border-left:5px solid transparent;
  border-right:5px solid transparent;
  border-top:6px solid rgba(255,255,255,.45);
  opacity:.9;
}

.hero-gallery__hint-label{
  font-size:.8rem;
  letter-spacing:.25em;
  text-transform:uppercase;
  color:rgba(255,255,255,.82);
  white-space:nowrap;
  font-weight:700;
}

@keyframes itbSwipeDotDown{
  0%{transform:translateY(0);opacity:.25;}
  35%{opacity:1;}
  100%{transform:translateY(20px);opacity:0;}
}



/* -------------------- DETAILS: GOOGLE REVIEWS (Trustindex) -------------------- */
.details-reviews{
  margin:18px 0 8px;
  padding:14px 14px 10px;
  border-radius:18px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.10);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
.details-reviews__head{ margin-bottom:10px; }
.details-reviews__title{ font-weight:700; letter-spacing:.2px; }
.details-reviews__sub{ opacity:.75; font-size:12.5px; margin-top:4px; }
.details-reviews__embed{ margin-top:10px; overflow:hidden; border-radius:14px; }

.itb-swipe-shield{ overscroll-behavior: contain; }

/* ================= REVEAL ANIMATION ================= */
.itb-fade-up{
  opacity:0;
  transform: translateY(14px);
  transition: opacity .65s ease, transform .65s cubic-bezier(.2,.8,.2,1);
  will-change: opacity, transform;
}
.itb-fade-up.is-visible{
  opacity:1;
  transform: translateY(0);
}
@media (prefers-reduced-motion: reduce){
  .itb-fade-up{ opacity:1; transform:none; transition:none; }
}


/* ===================
   HERO HINT (ONE AT A TIME) — bottom center, flat, no background
   =================== */
:root{
  --itb-hint-bottom: 12px; /* JS keeps it above Bottom CTA */
  --hint-accent:#0ea5e9;
  --hint-border:rgba(255,255,255,.55);
  --hint-text:rgba(255,255,255,.72);
  --hint-ripple:rgba(255,255,255,.24);
}

.itb-hero-hint{
  position:fixed;
  /* Anchor the GESTURE at bottom-center so it never shifts when text length changes */
  --hint-gesture-box: 42px;
  left:50%;
  bottom:calc(var(--itb-hint-bottom) + env(safe-area-inset-bottom));
  /* Only shift by half the gesture box, not half the whole component */
  transform:translate3d(calc(-1 * var(--hint-gesture-box) / 2),0,0);
  --itb-gesture-rot: 0deg; /* scroll→swipe uses rotation only (no morph) */
  display:flex;
  align-items:center;
  gap:12px;
  z-index:1600;
  pointer-events:none;
  user-select:none;
  opacity:.92;
  /* Smoother lead-in/out for the whole hint */
  transition:opacity .65s cubic-bezier(.22,1,.36,1), transform .65s cubic-bezier(.22,1,.36,1);
}
.itb-hero-hint.is-hidden{
  opacity:0;
  /* Keep the same X anchor while hiding (avoid jumping) */
  transform:translate3d(calc(-1 * var(--hint-gesture-box) / 2),10px,0);
}

/* User request: place HERO hint ~25% from the left edge (anchor by gesture, not by text) */
#itbHeroHint{
  left:25vw;
}


/* step change: keep position stable; only text fades (JS) */
.itb-hero-hint.step-change{ }

.itb-hero-hint .hint-gesture{
  width:var(--hint-gesture-box);
  height:var(--hint-gesture-box);
  flex:0 0 var(--hint-gesture-box);
  display:flex;
  align-items:center;
  justify-content:center;
}

/* Keep the text visually “next to” the gesture (no centered layout) */
.itb-hero-hint .hint-text{ text-align:left; }
.itb-hero-hint .gesture-shell{
  width:26px;
  height:42px;
  border-radius:999px;
  border:2px solid var(--hint-border);
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  position:relative;
  transform:translateZ(0) rotate(var(--itb-gesture-rot));
  will-change:width,height,border-radius,transform;
  transition:
    transform .55s cubic-bezier(.22,1,.36,1),
    width .55s cubic-bezier(.22,1,.36,1),
    height .55s cubic-bezier(.22,1,.36,1),
    border-radius .55s cubic-bezier(.22,1,.36,1);
}

/* inner track rotates (visual cue) without affecting dot direction */
.itb-hero-hint .gesture-shell::before{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:2px;
  height:18px;
  border-radius:999px;
  background:rgba(255,255,255,.34);
  opacity:.55;
  transform:translate(-50%,-50%) rotate(0deg);
  transition:transform .55s cubic-bezier(.22,1,.36,1), opacity .35s ease;
  pointer-events:none;
}

/* Dot = centered line + ripple pulse (ripple travels with dot) */
.itb-hero-hint .gesture-dot-rot{
  width:100%;
  height:100%;
  display:flex;
  align-items:center;
  justify-content:center;
}
.itb-hero-hint .gesture-dot-wrap{
  width:22px;
  height:22px;
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  will-change:transform, opacity;
}
.itb-hero-hint .gesture-dot{
  width:7px;
  height:7px;
  border-radius:999px;
  background:var(--hint-accent);
}

/* subtle ripple (always on) */
.itb-hero-hint .gesture-dot-wrap::after{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:10px;
  height:10px;
  border-radius:999px;
  border:2px solid var(--hint-ripple, rgba(255,255,255,.24));
  transform:translate(-50%,-50%) scale(.65);
  opacity:0;
  animation:itbHintRipple 1.35s cubic-bezier(.22,1,.36,1) infinite;
  pointer-events:none;
}
@keyframes itbHintRipple{
  0%   { transform:translate(-50%,-50%) scale(.65); opacity:0; }
  30%  { opacity:.55; }
  100% { transform:translate(-50%,-50%) scale(2.05); opacity:0; }
}

/* MODE: SWIPE UP (dot moves DOWN -> UP) */
.itb-hero-hint.mode-swipe-up .gesture-shell,
.itb-hero-hint.mode-scroll .gesture-shell{
  width:26px;
  height:42px;
  border-radius:999px;
  --itb-gesture-rot: 0deg;
}
.itb-hero-hint.mode-swipe-up .gesture-dot-wrap,
.itb-hero-hint.mode-scroll .gesture-dot-wrap{
  animation:itbHintDotUp 1.35s cubic-bezier(0.22,0.61,0.36,1) infinite;
}

/* MODE: SWIPE (rotate only; NO morph)
   - RIGHT = rotate 90deg
   - LEFT  = rotate 270deg (i.e. rotate right 180 from the RIGHT state)
   Dot animation stays the same (local Y), rotation determines on-screen direction.
*/
.itb-hero-hint.mode-swipe-right{ --itb-gesture-rot: 90deg; }
.itb-hero-hint.mode-swipe-left{  --itb-gesture-rot: 270deg; }
.itb-hero-hint.mode-swipe-right .gesture-dot-wrap{
  /* Important:
     Dot always travels bottom -> top in the shell's *local* axis.
     Rotation is purely visual: 90deg makes bottom->top read as LEFT->RIGHT.
  */
  animation:itbHintDotUp 1.25s cubic-bezier(0.22,0.61,0.36,1) infinite;
}
.itb-hero-hint.mode-swipe-left .gesture-dot-wrap{
  /* Same local motion as RIGHT; 270deg makes bottom->top read as RIGHT->LEFT. */
  animation:itbHintDotUp 1.25s cubic-bezier(0.22,0.61,0.36,1) infinite;
}

/* MODE: SWIPE DOWN (gallery close) */
.itb-hero-hint.mode-swipe-down .gesture-shell{
  width:26px;
  height:42px;
  border-radius:999px;
  --itb-gesture-rot: 0deg;
}
.itb-hero-hint.mode-swipe-down .gesture-dot-wrap{
  animation:itbHintDotDown 1.35s cubic-bezier(0.22,0.61,0.36,1) infinite;
}

/* MODE: TAP (center dot + nicer tap ripple) */
.itb-hero-hint.mode-tap .gesture-shell{
  width:34px;
  height:34px;
  border-radius:999px;
  --itb-gesture-rot: 0deg;
}
.itb-hero-hint.mode-tap .gesture-shell::before{ opacity:0; }
.itb-hero-hint.mode-tap .gesture-dot-wrap{
  animation:none;
}
.itb-hero-hint.mode-tap .gesture-dot{
  animation:itbHintTapDot 1.25s cubic-bezier(.22,1,.36,1) infinite;
}
.itb-hero-hint.mode-tap .gesture-dot-wrap::after{
  border-color:var(--hint-ripple, rgba(255,255,255,.28));
  animation:itbHintTapRing 1.25s cubic-bezier(.22,1,.36,1) infinite;
}

@keyframes itbHintDotUp{
  /* DOWN -> UP */
  0%   { transform:translate3d(0,12px,0); opacity:.25; }
  30%  { opacity:1; }
  100% { transform:translate3d(0,-12px,0); opacity:0; }
}
@keyframes itbHintDotDown{
  /* UP -> DOWN */
  0%   { transform:translate3d(0,-10px,0); opacity:.25; }
  30%  { opacity:1; }
  100% { transform:translate3d(0,12px,0); opacity:0; }
}
@keyframes itbHintDotRight{
  /* LEFT -> RIGHT (shell is rotated 90deg, so we animate along local Y) */
  0%   { transform:translate3d(0,-14px,0); opacity:.25; }
  30%  { opacity:1; }
  100% { transform:translate3d(0,14px,0); opacity:0; }
}
@keyframes itbHintDotLeft{
  /* RIGHT -> LEFT (shell is rotated 90deg, so we animate along local Y) */
  0%   { transform:translate3d(0,14px,0); opacity:.25; }
  30%  { opacity:1; }
  100% { transform:translate3d(0,-14px,0); opacity:0; }
}
@keyframes itbHintTapDot{
  0%   { transform:scale(.92); opacity:.45; }
  35%  { transform:scale(1); opacity:1; }
  100% { transform:scale(.92); opacity:.55; }
}
@keyframes itbHintTapRing{
  0%   { transform:translate(-50%,-50%) scale(.65); opacity:0; }
  30%  { opacity:.65; }
  100% { transform:translate(-50%,-50%) scale(2.35); opacity:0; }
}

.itb-hero-hint .hint-text{
  font-size:11.25px;
  font-weight:300;
  text-transform:uppercase;
  color:var(--hint-text);
  letter-spacing:.34em;
  white-space:nowrap;
  transform:translate3d(0,0,0);
}

.itb-hero-hint .hint-letter{
  display:inline-block;
  will-change:transform, opacity, filter;
}

@media (max-width:420px){
  .itb-hero-hint .hint-text{ font-size:11px; letter-spacing:.32em; }
}
/* ========================================================================== */


/* === GLOBAL CLOSE: avoid double X on non-booking panels === */
#tourListClose,
#heroGalleryClose{
  display:none !important;
}

/* Booking wizard close button: smart show/hide on mobile scroll */
@media (max-width: 1023px){
  .booking-wrap.itb-close-hidden #bookingClose{
    opacity:0;
    transform:translateY(-8px) scale(.98);
    pointer-events:none;
  }
}


/* ============= GALLERY + DETAILS HINTS (match hero hint style) ============= */
.itb-gallery-hint{
  z-index:200000; /* above gallery */
  left:50% !important;
  bottom:calc(18px + env(safe-area-inset-bottom));
  transform:translate3d(-50%,0,0) !important;
}
.itb-gallery-hint.is-hidden{ opacity:0; transform:translate3d(-50%,8px,0) !important; }

.details-book-swipezone{
  position:fixed;
  left:50%;
  transform:translate3d(-50%,0,0);
  bottom:calc(14px + env(safe-area-inset-bottom));
  width:min(92vw, 560px);
  height:72px;
  z-index:9500; /* above detail content */
  touch-action:pan-y;
  display:none;
  background:transparent;
}
.details-book-swipezone .itb-details-hint{
  position:relative !important;
  left:auto; bottom:auto;
  transform:none !important;
  z-index:1;
  pointer-events:auto; /* this one is interactive */
  opacity:.92;
  /* Details panel is light -> use dark ink so the hint is actually visible */
  --hint-border:rgba(17,17,17,.22);
  --hint-text:rgba(17,17,17,.55);
  --hint-ripple:rgba(17,17,17,.16);
}
.details-book-swipezone .itb-details-hint .hint-text{
  font-weight:300;
}


/* DETAILS TOP HINT (CLONE OF HERO HINT — proven working) */
.itb-details-top-hint{
  z-index:9400;
  top:calc(2px + env(safe-area-inset-top));
  bottom:auto !important;
  /* Details panel is light -> use dark ink so the hint is visible */
  --hint-border:rgba(17,17,17,.22);
  --hint-text:rgba(17,17,17,.55);
  --hint-ripple:rgba(17,17,17,.16);
  opacity:.92;
}

/* Keep the same “25% from left” placement as the hero hint (gesture-anchored) */
#itbDetailsHint{
  left:25vw;
}

@media (max-width:420px){
  .itb-details-top-hint{ top:calc(0px + env(safe-area-inset-top)); }
}



/* ===== ITB UPGRADES v1.1.38 (Booking polish) ===== */

/* WhatsApp CTA (green icon) */
.itb-wa-btn{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:12px 14px;
  border-radius:999px;
  background:#ffffff;
  border:1px solid rgba(2,6,23,0.10);
  box-shadow:0 10px 30px rgba(15,23,42,0.10);
  color:#0e0e0f;
  font-weight:850;
  text-decoration:none;
  transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.itb-wa-btn:hover{transform:translateY(-1px);box-shadow:0 16px 46px rgba(15,23,42,0.14);border-color:rgba(2,6,23,0.16);}
.itb-wa-icon{width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;}
.itb-wa-icon svg{width:20px;height:20px;display:block;}

/* Fully booked alert under date */

.itb-date-alert{
  margin-top:10px;
  border-radius:16px;
  padding:12px 12px 12px;
  background:rgba(2,6,23,0.03);
  border:1px solid rgba(2,6,23,0.08);
  gap:10px;
  align-items:center;
  justify-content:space-between;

  /* IMPORTANT: hidden by default (prevents always-on display) */
  display:none;
  opacity:0;
  transform:translate3d(0,-6px,0);
  transition:opacity .28s ease, transform .28s cubic-bezier(.16,1,.3,1);
}
.itb-date-alert.is-show{
  display:flex;
  opacity:1;
  transform:translate3d(0,0,0);
}
.itb-date-alert__msg{
  font-size:12px;
  color:#111827;
  font-weight:750;
  letter-spacing:-.01em;
  line-height:1.35;

/* Next available button inside the under-date alert */
.itb-date-alert{
  flex-wrap: wrap;
}
.itb-date-alert__msg{
  flex: 1 1 220px;
}
.itb-nextavail-btn{
  height: 44px;
  padding: 0 14px;
  font-size: 12px;
  letter-spacing: .10em;
  margin-left: auto;
}
@media (max-width: 420px){
  .itb-nextavail-btn{ width: 100%; }
  .itb-wa-btn{ width: 100%; justify-content:center; }
  .itb-date-alert{ align-items:flex-start; }
}
}

/* Trip type value badges */
#tripTypeChips .chip{position:relative;}
#tripTypeChips .chip .chip-badge{
  position:absolute;
  top:-8px;
  right:-8px;
  font-size:10px;
  padding:5px 8px;
  border-radius:999px;
  background:#0e0e0f;
  color:#fff;
  letter-spacing:.06em;
  text-transform:uppercase;
  box-shadow:0 10px 30px rgba(2,6,23,0.16);
  transform:scale(.95);
}
#tripTypeChips .chip .chip-badge.is-soft{
  background:rgba(2,6,23,0.08);
  color:#111827;
  box-shadow:none;
}

/* Mini breakdown */
.mini-breakdown{
  margin-top:6px;
  font-size:12px;
  color:#6b7280;
  letter-spacing:-.01em;
  line-height:1.35;
}

/* Hold to confirm */
.booking-wrap .swipe-hint-bar.is-hold{
  pointer-events:auto;
  user-select:none;
  -webkit-user-select:none;
  touch-action:manipulation;
}
.booking-wrap .swipe-hint-bar.is-hold:active{
  transform:translate(-50%,-1px) scale(.995);
}
.booking-wrap .hold-fill{
  position:absolute;
  inset:0;
  background:rgba(2,6,23,0.06);
  transform:scaleX(0);
  transform-origin:left;
  border-radius:999px;
}
.booking-wrap .swipe-hint-bar.is-hold .swipe-track{
  justify-content:flex-start;
}
.booking-wrap .swipe-hint-bar.is-hold .swipe-arrow{display:none;}
.booking-wrap .swipe-hint-bar.is-hold .swipe-dot{
  animation:none;
  opacity:1;
  width:10px;height:10px;
  background:#0e0e0f;
}
.booking-wrap .swipe-hint-bar.is-hold .swipe-label{
  letter-spacing:.18em;
  color:#111827;
}

/* Policy link */
.itb-policy-link{
  margin-top:10px;
  width:100%;
  border:0;
  background:transparent;
  padding:10px 10px;
  border-radius:12px;
  font-weight:850;
  color:#0e0e0f;
  text-decoration:underline;
  text-underline-offset:3px;
  cursor:pointer;
  opacity:.9;
}
.itb-policy-link:hover{opacity:1;}

/* Modal */
.itb-modal[hidden]{display:none !important;}
.itb-modal{
  position:fixed;
  inset:0;
  z-index:9999;
}
.itb-modal__backdrop{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,0.35);
  backdrop-filter: blur(6px);
}
.itb-modal__panel{
  position:absolute;
  left:50%;
  bottom:18px;
  transform:translateX(-50%);
  width:min(560px, calc(100vw - 22px));
  background:#fff;
  border-radius:22px;
  box-shadow:0 28px 120px rgba(2,6,23,0.28);
  overflow:hidden;
  border:1px solid rgba(255,255,255,0.6);
}
.itb-modal__top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:14px 14px 10px;
  border-bottom:1px solid rgba(2,6,23,0.06);
}
.itb-modal__title{
  font-size:14px;
  font-weight:900;
  letter-spacing:-.01em;
}
.itb-modal__close{
  width:40px;height:40px;
  border-radius:999px;
  border:1px solid rgba(2,6,23,0.10);
  background:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
}
.itb-modal__close span{
  position:absolute;
  width:16px;height:2px;
  background:#0e0e0f;
  border-radius:999px;
}
.itb-modal__close span:nth-child(1){transform:rotate(45deg);}
.itb-modal__close span:nth-child(2){transform:rotate(-45deg);}
.itb-modal__body{
  padding:14px 16px;
  color:#111827;
  font-size:13px;
  line-height:1.5;
}
.itb-modal__body p{margin:0 0 10px;}
.itb-modal__actions{
  padding:0 16px 16px;
  display:flex;
  gap:10px;
}

/* Success actions */
.success-actions{
  margin-top:14px;
  display:flex;
  justify-content:center;
}

.itb-ghost-btn{
  height:44px;
  padding:0 18px;
  border-radius:999px;
  border:1px solid rgba(2,6,23,0.12);
  background:rgba(255,255,255,0.75);
  backdrop-filter:blur(10px);
  font-weight:750;
  font-size:13px;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:#0b1220;
  cursor:pointer;
  transition:transform .2s ease, filter .2s ease;
}
.itb-ghost-btn:active{ transform:translateY(1px) scale(0.99); }



/* ===== Flatpickr: Fully booked inline message + day marker ===== */
.flatpickr-calendar .itb-fb-note{
  margin: 10px 10px 12px;
  padding: 10px 10px;
  border-radius: 14px;
  border: 1px solid rgba(0,0,0,.08);
  background: rgba(0,0,0,.03);
  transform: translateY(4px);
  opacity: 0;
  pointer-events: none;
}
.flatpickr-calendar .itb-fb-note.is-show{
  opacity: 1;
  transform: translateY(0);
  transition: opacity .18s ease, transform .18s ease;
  pointer-events: auto;
}
.flatpickr-calendar .itb-fb-note__row{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap: 10px;
}
.flatpickr-calendar .itb-fb-note__title{
  font-weight: 700;
  font-size: 12px;
  line-height: 1.2;
}
.flatpickr-calendar .itb-fb-note__sub{
  font-size: 11px;
  opacity: .78;
  margin-top: 2px;
}
.flatpickr-calendar .itb-fb-note__date{
  margin-top: 6px;
  font-size: 11px;
  opacity: .9;
  font-weight: 600;
}
.flatpickr-calendar .itb-fb-note__wa{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height: 34px;
  padding: 0 12px;
  border-radius: 999px;
  text-decoration:none;
  font-weight: 700;
  font-size: 12px;
  border: 1px solid rgba(0,0,0,.12);
  background: #fff;
  white-space: nowrap;

.flatpickr-calendar .itb-fb-note__next{
  margin-left: 8px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height: 34px;
  padding: 0 12px;
  border-radius: 999px;
  font-weight: 750;
  font-size: 11px;
  letter-spacing: .08em;
  text-transform: uppercase;
  border: 1px solid rgba(0,0,0,.10);
  background: rgba(255,255,255,.70);
  backdrop-filter: blur(10px);
  white-space: nowrap;
  cursor: pointer;
}
.flatpickr-calendar .itb-fb-note__next.is-disabled{
  opacity: .55;
  pointer-events: none;
}
}

/* Mark fully booked days */
.flatpickr-day.itb-day-full{
  position: relative;
}
.flatpickr-day.itb-day-full::after{
  content: "FULL";
  position: absolute;
  left: 50%;
  bottom: 2px;
  transform: translateX(-50%) scale(.95);
  font-size: 9px;
  line-height: 1;
  font-weight: 800;
  letter-spacing: .04em;
  opacity: .9;
  pointer-events: none;
}

/* ============ PREMIUM UI PACK (v1.1.53) ============ */

/* CTA micro meter */
.book-big-btn, .details-end-cta__btn{
  position: relative;
  overflow: hidden;
}
.cta-meter{
  position:absolute;
  left: 14px;
  right: 14px;
  bottom: 8px;
  height: 3px;
  border-radius: 999px;
  background: rgba(0,0,0,0.10);
  overflow: hidden;
  pointer-events:none;
  transform: translateZ(0);
}
.cta-meter-fill{
  display:block;
  height: 100%;
  width: 0%;
  border-radius: 999px;
  background: rgba(0,0,0,0.55);
  transition: width .35s cubic-bezier(.22,1,.36,1);
}

/* Wizard crumbs (subtle) */
.wizard-crumbs{
  display:flex;
  gap:8px;
  align-items:center;
  justify-content:center;
  padding: 8px 12px 2px;
  user-select:none;
  -webkit-user-select:none;
}
.wizard-crumb{
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  opacity:.42;
  position: relative;
  padding: 4px 8px;
  border-radius: 999px;
  background: transparent;
  transition: opacity .25s cubic-bezier(.22,1,.36,1), transform .25s cubic-bezier(.22,1,.36,1), background .25s;
}
.wizard-crumb.is-on{
  opacity:.92;
  background: rgba(0,0,0,0.06);
  transform: translateY(-1px);
}
.wizard-crumb.is-done{
  opacity:.75;
}

/* Optional: hide the old dots if you want a cleaner look */
.top-dots{ opacity:.65; }
@media (max-width:420px){
  .top-dots{ display:none; }
}

/* Next available date chip */
.itb-next-date{
  width: 100%;
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap:10px;
  margin-top: 10px;
  padding: 10px 12px calc(10px + env(safe-area-inset-bottom));
  border-radius: 14px;
  border: 1px solid rgba(0,0,0,0.10);
  background: rgba(255,255,255,0.9);
  box-shadow: 0 10px 30px rgba(0,0,0,0.06);
  cursor: pointer;
  transition: transform .18s cubic-bezier(.22,1,.36,1), box-shadow .18s, background .18s;
}
.itb-next-date:hover{ transform: translateY(-1px); box-shadow: 0 14px 40px rgba(0,0,0,0.08); }
.itb-next-date:active{ transform: translateY(0px) scale(.99); }
.itb-next-date__label{ font-size: 12px; font-weight: 700; opacity: .7; }
.itb-next-date__date{ font-size: 12px; font-weight: 800; }
.itb-next-date__arrow{ font-weight: 900; opacity: .65; }

/* Image polish */
img.itb-img{
  will-change: filter, transform, opacity;
  transition: opacity .35s cubic-bezier(.22,1,.36,1), filter .35s cubic-bezier(.22,1,.36,1), transform .35s cubic-bezier(.22,1,.36,1);
}
img.itb-img.is-loading{
  opacity: .85;
  filter: blur(10px);
  transform: scale(1.02);
}
img.itb-img.is-loaded{
  opacity: 1;
  filter: blur(0px);
  transform: scale(1);
}

/* Tour list: shimmer + parallax */
.tour-item{
  position: relative;
  overflow:hidden;
  transform: translateZ(0);
}
.tour-item::before{
  content:"";
  position:absolute;
  inset:0;
  background: linear-gradient(90deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0.55) 50%, rgba(255,255,255,0) 100%);
  transform: translateX(-120%);
  opacity: 0;
  pointer-events:none;
}
.tour-item.is-loading::before{
  opacity: .9;
  animation: itbShimmer 1.2s infinite;
}
@keyframes itbShimmer{
  0%{ transform: translateX(-120%); }
  100%{ transform: translateX(120%); }
}
.tour-thumb{
  transform: translate3d(calc(var(--itb-mx,0) * 10px), calc(var(--itb-my,0) * 10px), 0) scale(1.02);
  transition: transform .35s cubic-bezier(.22,1,.36,1);
}
.tour-item:hover .tour-thumb{
  transform: translate3d(calc(var(--itb-mx,0) * 16px), calc(var(--itb-my,0) * 16px), 0) scale(1.04);
}

/* Hero gallery drag handle + pull */
.hero-gallery{
  transform: translateY(var(--itb-pull,0px));
  transition: transform .26s cubic-bezier(.22,1,.36,1);
}
.itb-drag-handle{
  width: 64px;
  height: 4px;
  border-radius: 999px;
  background: rgba(255,255,255,0.25);
  margin: 8px auto 6px;
  opacity: .95;
}

/* Review chip */
.itb-review-chip{
  position: fixed;
  left: 18px;
  bottom: 96px;
  z-index: 99998;
  display:flex;
  align-items:center;
  gap:10px;
  height: 42px;
  padding: 0 14px;
  border-radius: 999px;
  border: 1px solid rgba(0,0,0,0.10);
  background: rgba(255,255,255,0.92);
  box-shadow: 0 16px 44px rgba(0,0,0,0.10);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  cursor:pointer;
  transform: translateY(10px);
  opacity: 0;
  pointer-events:none;
  transition: opacity .25s cubic-bezier(.22,1,.36,1), transform .25s cubic-bezier(.22,1,.36,1);
}
.itb-review-chip.show{
  opacity: 1;
  transform: translateY(0px);
  pointer-events:auto;
}
.itb-review-chip__star{
  font-size: 16px;
  line-height: 1;
  opacity: .85;
}
.itb-review-chip__text{
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .02em;
}

/* Bottom sheet */
.itb-sheet{
  position: fixed;
  inset: 0;
  z-index: 99999;
}
.itb-sheet__backdrop{
  position:absolute;
  inset:0;
  background: rgba(0,0,0,0.42);
  opacity:0;
  transition: opacity .28s cubic-bezier(.22,1,.36,1);
}
.itb-sheet__panel{
  position:absolute;
  left: 10px;
  right: 10px;
  bottom: 10px;
  max-height: 86vh;
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 20px 70px rgba(0,0,0,0.22);
  transform: translateY(30px);
  opacity: 0;
  transition: transform .36s cubic-bezier(.22,1,.36,1), opacity .36s cubic-bezier(.22,1,.36,1);
  overflow:hidden;
  display:flex;
  flex-direction: column;
}
.itb-sheet.show .itb-sheet__backdrop{ opacity:1; }
.itb-sheet.show .itb-sheet__panel{ transform: translateY(0px); opacity: 1; }
.itb-sheet__handle{
  width: 62px;
  height: 5px;
  border-radius: 999px;
  background: rgba(0,0,0,0.12);
  margin: 10px auto 4px;
}
.itb-sheet__top{
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 14px 12px;
  border-bottom: 1px solid rgba(0,0,0,0.06);
}
.itb-sheet__title{ font-size: 13px; font-weight: 900; letter-spacing: .01em; }
.itb-sheet__close{
  width: 38px;
  height: 38px;
  border-radius: 12px;
  border: 1px solid rgba(0,0,0,0.10);
  background: rgba(255,255,255,0.9);
  display:grid;
  place-items:center;
  cursor:pointer;
}
.itb-sheet__close span{
  display:block;
  width: 16px;
  height: 2px;
  background: rgba(0,0,0,0.65);
  border-radius: 2px;
  position: absolute;
}
.itb-sheet__close span:first-child{ transform: rotate(45deg); }
.itb-sheet__close span:last-child{ transform: rotate(-45deg); }
.itb-sheet__body{
  padding: 14px;
  overflow:auto;
  -webkit-overflow-scrolling: touch;
}

/* Gallery image zoom (detail gallery) */
.gallery-swiper img.itb-img{
  transform-origin: var(--itb-zoom-x,50%) var(--itb-zoom-y,50%);
}
.gallery-swiper img.itb-img.is-zoomed{
  transform: scale(2);
  filter: none;
  cursor: zoom-out;
}

/* Hide in-flow reviews (now in bottom sheet) */
#detailsReviews{ display:none !important; }


/* =========================================
   BOOKING WIZARD — performance + mobile tap reliability
========================================= */

/* Reduce iOS Safari jank caused by backdrop-filter + heavy shadows */
@media (max-width: 1023px){
  .booking-wrap .topbar{
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
    background:#ffffff !important;
  }
  .booking-wrap .card{
    background:#ffffff !important;
    box-shadow:0 6px 16px rgba(15,23,42,0.05) !important;
  }
}

/* Keep scrolling stable inside wizard */
.booking-wrap .booking-swiper .swiper-slide{
  overscroll-behavior: contain;
}

/* Extra mobile tap polish */
.booking-wrap .chip{
  -webkit-touch-callout:none;
}


/* ============ PREMIUM UX UPGRADE (v1.1.89) ============ */

/* Remove "Saved" tick to avoid flicker + keep topbar clean */
.booking-wrap .save-state{ display:none !important; }

/* Topbar auto-hide on scroll (mobile) */
.booking-wrap .topbar{
  will-change: transform, opacity;
  transition:
    transform .35s cubic-bezier(.22,1,.36,1),
    opacity .25s ease,
    box-shadow .25s ease,
    border-color .25s ease;
}
.booking-wrap.itb-topbar-hidden .topbar{
  transform:translate3d(0,-108%,0);
  opacity:0;
  pointer-events:none;
}
/* Smooth: avoid layout/top jumps (which can feel like “fast scroll”). Use transforms instead. */
.booking-wrap .booking-swiper{
  will-change: transform;
  transition: transform .35s cubic-bezier(.22,1,.36,1);
  transform:translate3d(0,0,0);
}
.booking-wrap.itb-topbar-hidden .booking-swiper{
  transform:translate3d(0,-76px,0);
}

/* Scroll-to-reveal (no-JS safe: only hides after JS marks .itb-reveal-ready) */
.reveal{ opacity:1; transform:none; }
.reveal.itb-reveal-ready{
  opacity:0;
  transform:translate3d(0,12px,0);
  will-change: opacity, transform;
  transition: opacity .5s ease, transform .6s cubic-bezier(.22,1,.36,1);
}
.reveal.itb-reveal-ready.is-inview{
  opacity:1;
  transform:translate3d(0,0,0);
}
@media (prefers-reduced-motion: reduce){
  .reveal.itb-reveal-ready{ opacity:1; transform:none; transition:none; }
}

/* ================= UX PACK v1.2.00 ================= */

/* Remove topbar tick indicator (cleaner header) */
.booking-wrap .save-state{ display:none !important; }

/* Make step swiping feel calmer + vertical scroll wins */
/* Premium easing for slide transitions */
.booking-wrap .booking-swiper .swiper-wrapper{
  transition-timing-function:cubic-bezier(.22,1,.36,1) !important;
}

/* For horizontal swipers, allow the browser to keep vertical scrolling smooth. */
.booking-wrap .booking-swiper{ touch-action: pan-y pinch-zoom; }
.booking-wrap .booking-swiper .swiper-slide{
  scrollbar-width:none;
  scroll-behavior:auto;
}
.booking-wrap .booking-swiper .swiper-slide::-webkit-scrollbar{ width:0;height:0; }

/* Premium press feedback */
.booking-wrap .chip,
.booking-wrap .circle-btn,
.booking-wrap .wizard-nav__btn{
  -webkit-tap-highlight-color: transparent;
}
.booking-wrap .chip:active,
.booking-wrap .circle-btn:active,
.booking-wrap .wizard-nav__btn:active{
  transform:translateY(1px) scale(.99);
}

/* Chips: ultra clean pill (no border, no glow, no scale) */
.booking-wrap{ --itb-chip-h: 44px; }
.booking-wrap .chip{
  height:var(--itb-chip-h);
  min-height:var(--itb-chip-h);
  padding:0 14px;
  border:0 !important;
  outline:0;
  /* softer base (no harsh grey) */
  background:var(--itb-soft) !important;
  color:rgba(11,18,32,.90);
  box-shadow:none !important;
  font-weight:560;
  letter-spacing:-0.008em;
  transition:background .16s ease, color .16s ease, transform .18s ease;
  /* IMPORTANT: don't block horizontal swipes when starting on chips */
  touch-action: manipulation;
}
.booking-wrap .chip:hover{ background: rgba(255,255,255,.88) !important; }
.booking-wrap .chip.on{
  border:0 !important;
  box-shadow:none !important;
  /* selected: deep navy (not pure black) */
  background:linear-gradient(180deg, rgba(17,24,39,.78), rgba(15,23,42,.84)) !important;
  color:rgba(255,255,255,.92) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10) !important;
  transform:none !important;
}
.booking-wrap .chip:focus-visible{
  outline:2px solid rgba(56,189,248,.28);
  outline-offset:2px;
}



/* ===================== */
/* BOOKING WIZARD CHIPS — refined micro-interactions (v1.3.9) */
/* ===================== */

/* Segmented control for Timing chips (Morning / Midday / Sunset) */
#timePrefChips{
  position:relative;
  width:100%;
  padding:4px;
  border-radius:999px;
  gap:0;
  flex-wrap:nowrap;
  background: rgba(15,23,42,.06);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.70), 0 10px 22px rgba(2,6,23,.05);
  isolation:isolate;
}
#timePrefChips .itb-time-seg-indicator{
  position:absolute;
  top:4px;
  left:4px;
  height: calc(100% - 8px);
  border-radius:999px;
  background: linear-gradient(180deg, rgba(17,24,39,.78), rgba(15,23,42,.88));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.10), 0 14px 28px rgba(2,6,23,.14);
  transform: translate3d(0,0,0);
  transition: transform 700ms cubic-bezier(.2,.8,.2,1), width 700ms cubic-bezier(.2,.8,.2,1), opacity 240ms ease;
  will-change: transform,width;
  z-index:0;
  opacity:1;
}
#timePrefChips .chip{
  flex:1 1 0;
  justify-content:center;
  align-items:center;
  text-align:center;
  min-width:0;
  gap:8px;
  background: transparent !important;
  box-shadow: none !important;
  height:var(--itb-chip-h);
  min-height:var(--itb-chip-h);
  padding:0 10px;
  font-size:clamp(13px, 1.6vw, 14px);
  font-weight:750;
  line-height:1;
  letter-spacing:.01em;
  white-space:nowrap;
  z-index:1;
}

/* Timing chip icon layout + animations (creative sunrise/sunset clipmask) */
#timePrefChips .chip-ico{
  position:relative;
  overflow:hidden; /* clipmask feel */
  width:1.45em;   /* bigger icon, no layout shift */
  height:1.25em;
  line-height:1;
  display:inline-block;
  transform:translateZ(0);
  will-change:transform, filter, opacity;
}
#timePrefChips .chip-ico.itb-sky::after{
  content:"";
  position:absolute;
  left:-.25em; right:-.25em;
  bottom:-.16em;
  height:.52em;
  border-radius:999px;
  background: linear-gradient(to top, rgba(2,6,23,.22), rgba(2,6,23,0));
  opacity:.16;
  pointer-events:none;
}
#timePrefChips .chip-ico .itb-sun,
#timePrefChips .chip-ico .itb-moon{
  position:absolute;
  left:50%; top:50%;
  transform:translate(-50%,-50%);
  line-height:1;
  font-size:1.12em;
  will-change:transform, opacity, filter;
}

/* Default states */
#timePrefChips .chip[data-time="Sunset"] .itb-moon{
  opacity:0;
  transform:translate(-50%,-50%) translateY(92%);
}
#timePrefChips .chip[data-time="Sunset"] .itb-sun{
  opacity:1;
  transform:translate(-50%,-50%) translateY(0);
}
#timePrefChips .chip.on[data-time="Sunset"] .itb-moon,
#timePrefChips .chip[aria-checked="true"][data-time="Sunset"] .itb-moon,
#timePrefChips .chip[aria-pressed="true"][data-time="Sunset"] .itb-moon{
  opacity:1;
  transform:translate(-50%,-50%) translateY(0);
}
#timePrefChips .chip.on[data-time="Sunset"] .itb-sun,
#timePrefChips .chip[aria-checked="true"][data-time="Sunset"] .itb-sun,
#timePrefChips .chip[aria-pressed="true"][data-time="Sunset"] .itb-sun{
  opacity:0;
  transform:translate(-50%,-50%) translateY(92%);
}
#timePrefChips .chip[data-time="Sunset"] .itb-sun,
#timePrefChips .chip[data-time="Sunset"] .itb-moon{
  transition: transform 260ms cubic-bezier(.22,1,.36,1), opacity 220ms ease, filter 260ms ease;
}

/* Sunrise: sun rises + fades in from the clipmask */
@keyframes itbSunRiseMask{
  0%{ transform:translate(-50%,-50%) translateY(96%) scale(.95); opacity:0; filter:brightness(.99); }
  62%{ transform:translate(-50%,-50%) translateY(-4%) scale(1.04); opacity:1; filter:brightness(1.06); }
  100%{ transform:translate(-50%,-50%) translateY(0) scale(1); opacity:1; filter:brightness(1); }
}

/* Midday: keep existing premium sparkle */
@keyframes itbSunMidday{
  0%{ transform:translate(-50%,-50%) scale(.90) rotate(-6deg); opacity:0; filter:drop-shadow(0 0 0 rgba(56,189,248,0)); }
  60%{ transform:translate(-50%,-50%) scale(1.06) rotate(3deg); opacity:1; filter:drop-shadow(0 10px 18px rgba(56,189,248,.14)); }
  100%{ transform:translate(-50%,-50%) scale(1) rotate(0deg); opacity:1; filter:drop-shadow(0 0 0 rgba(56,189,248,0)); }
}

/* Sunset: sun sets down under clipmask, moon rises up from clipmask */
@keyframes itbSunSetDown{
  0%{ transform:translate(-50%,-50%) translateY(0) scale(1); opacity:1; filter:brightness(1.01); }
  62%{ transform:translate(-50%,-50%) translateY(72%) scale(.985); opacity:1; filter:brightness(1.00); }
  100%{ transform:translate(-50%,-50%) translateY(100%) scale(.97); opacity:0; filter:brightness(.99); }
}
@keyframes itbMoonRiseUp{
  0%{ transform:translate(-50%,-50%) translateY(100%) scale(.95); opacity:0; filter:brightness(.99); }
  46%{ transform:translate(-50%,-50%) translateY(100%) scale(.95); opacity:0; filter:brightness(.99); }
  80%{ transform:translate(-50%,-50%) translateY(-4%) scale(1.04); opacity:1; filter:brightness(1.06); }
  100%{ transform:translate(-50%,-50%) translateY(0) scale(1); opacity:1; filter:brightness(1); }
}

/* Play motion only when JS arms it (no constant replays) */
#timePrefChips .chip.itb-ico-anim[data-time="Morning"] .chip-ico .itb-sun{
  animation: itbSunRiseMask 1800ms cubic-bezier(0.22,1,0.36,1) both;
}
#timePrefChips .chip.itb-ico-anim[data-time="Midday"] .chip-ico .itb-sun{
  animation: itbSunMidday 1200ms cubic-bezier(0.22,1,0.36,1) both;
}
#timePrefChips .chip.itb-ico-anim[data-time="Sunset"] .chip-ico .itb-sun{
  animation: itbSunSetDown 1900ms cubic-bezier(0.22,1,0.36,1) both;
}
#timePrefChips .chip.itb-ico-anim[data-time="Sunset"] .chip-ico .itb-moon{
  animation: itbMoonRiseUp 2100ms cubic-bezier(0.22,1,0.36,1) both;
}

#timePrefChips .chip-txt{ line-height:1; }
@media (prefers-reduced-motion: reduce){
  #timePrefChips .chip.itb-ico-anim .chip-ico,
  #timePrefChips .chip.itb-ico-anim .chip-ico *{ animation:none !important; }
  #tripTypeChips .chip.itb-ico-anim .chip-ico,
  #tripTypeChips .chip.itb-ico-anim .chip-ico *{ animation:none !important; }
}
#timePrefChips .chip:not(.on){
  color: rgba(11,15,20,.90) !important;
}
#timePrefChips .chip.on,
#timePrefChips .chip[aria-checked="true"],
#timePrefChips .chip[aria-pressed="true"]{
  color: rgba(255,255,255,.96) !important;
}
#timePrefChips .chip.on{
  text-shadow: 0 1px 0 rgba(0,0,0,.22);
}

/* Step 2 toggle chips (Food & vibe): icon lead-in when a chip becomes active */
#foodChips .chip-ico,
#allergyChips .chip-ico,
#expChips .chip-ico,
#occChips .chip-ico{
  display:inline-grid;
  place-items:center;
  width:1.15em;
  line-height:1;
  font-size:1.05em;
  transform:translateZ(0);
  will-change:transform, filter, opacity;
}
#foodChips .chip-txt,
#allergyChips .chip-txt,
#expChips .chip-txt,
#occChips .chip-txt{ line-height:1; }

@keyframes itbToggleIcoIn{
  0%{ transform:translateY(7px) scale(.86); filter:brightness(.98); opacity:.92; }
  60%{ transform:translateY(-1px) scale(1.10); filter:brightness(1.05); opacity:1; }
  100%{ transform:translateY(0) scale(1); filter:brightness(1); opacity:1; }
}

#foodChips .chip.itb-ico-anim .chip-ico,
#allergyChips .chip.itb-ico-anim .chip-ico,
#expChips .chip.itb-ico-anim .chip-ico,
#occChips .chip.itb-ico-anim .chip-ico{
  animation: itbToggleIcoIn 640ms cubic-bezier(.2,.9,.2,1) both;
}

/* Premium "ink" + glow (no layout shift, no flicker) */
.booking-wrap .chip{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  transform: translateZ(0);
}
.booking-wrap .chip > *{ position:relative; z-index:1; }

.booking-wrap .chip::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  background: radial-gradient(120px 70px at var(--itb-rx,50%) var(--itb-ry,50%),
    rgba(255,255,255,.92), rgba(255,255,255,0) 70%);
  opacity:0;
  transition: opacity 220ms ease;
  pointer-events:none;
  z-index:0;
}
.booking-wrap .chip::after{
  content:"";
  position:absolute;
  inset:-2px;
  border-radius:inherit;
  background: radial-gradient(circle at var(--itb-rx,50%) var(--itb-ry,50%),
    rgba(56,189,248,.34), rgba(56,189,248,0) 60%);
  opacity:0;
  transform: scale(.35);
  transition: opacity 420ms ease, transform 520ms cubic-bezier(.22,1,.36,1);
  pointer-events:none;
  z-index:0;
}

.booking-wrap .chip:hover::before{ opacity:.20; }
.booking-wrap .chip.itb-chip-press::before{ opacity:.30; }
.booking-wrap .chip.itb-chip-press::after{ opacity:1; transform:scale(1); }
.booking-wrap .chip.itb-chip-ripple::after{
  opacity:0;
  transform:scale(1.22);
  transition: opacity 300ms ease, transform 300ms ease;
}

/* Toggle pulse (multi-select chips) */
.booking-wrap .chip.itb-chip-pulse{
  animation: itbChipPulse 420ms cubic-bezier(.22,1,.36,1);
}
@keyframes itbChipPulse{
  0%{ transform:translateY(0) scale(1); }
  38%{ transform:translateY(0) scale(1.018); }
  100%{ transform:translateY(0) scale(1); }
}

/* Reduced motion: keep chips calm */
@media (prefers-reduced-motion: reduce){
  #timePrefChips .itb-time-seg-indicator{ transition:none !important; }
  .booking-wrap .chip::before,
  .booking-wrap .chip::after{ transition:none !important; }
  .booking-wrap .chip.itb-chip-pulse{ animation:none !important; }
  #timePrefChips .chip-ico{ animation:none !important; }
}

/* Date availability text: subtle animated ellipsis while checking */
.booking-wrap .itb-date-status[data-state="checking"] .itb-date-status__text::after{
  content:"...";
  display:inline-block;
  width:0;
  overflow:hidden;
  vertical-align:bottom;
  animation:itbDots 1.05s steps(4,end) infinite;
}
@keyframes itbDots{
  to{ width:1.15em; }
}
/* Reduced motion: respect accessibility */
@media (prefers-reduced-motion: reduce){
  .booking-wrap *,
  .booking-wrap *::before,
  .booking-wrap *::after{
    animation:none !important;
    transition:none !important;
  }
  .booking-wrap .booking-swiper .swiper-slide{ scroll-behavior:auto; }
}


/* ===== Premium polish pack v1.2.07 ===== */

/* ===== Backdrop luxury v1.2.08 ===== */
/* Cleaner, more premium backdrop (less foggy blur) */
.booking-wrap.show{
  /* deeper but elegant overlay */
  background: rgba(2,6,23,.48);
  backdrop-filter: blur(6px) saturate(1.12);
  -webkit-backdrop-filter: blur(6px) saturate(1.12);
}

.booking-wrap.show::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  /* soft light + subtle teal/sky accents */
  background:
    radial-gradient(900px 700px at 18% 12%, rgba(255,255,255,.14), transparent 58%),
    radial-gradient(900px 700px at 82% 18%, rgba(56,189,248,.10), transparent 62%),
    radial-gradient(1100px 900px at 55% 105%, rgba(45,212,191,.08), transparent 55%),
    linear-gradient(180deg, rgba(2,6,23,.22), rgba(2,6,23,.56));
  opacity: .92;
}

/* Make the wizard card feel more "hotel-lobby premium" */
.booking-wrap .booking-shell{
  box-shadow: 0 18px 48px rgba(2,6,23,.18);
}

/* Buttons: calmer transitions */
.booking-wrap .wizard-nav__btn{
  transition: transform .20s cubic-bezier(.2,.9,.2,1), background .18s ease, opacity .18s ease, filter .18s ease;
}
.booking-wrap .wizard-nav__btn:disabled{
  opacity:.52;
  filter:saturate(.9);
}

/* Chips: luxury, softer, no bold black */
.booking-wrap .chip{
  background: rgba(255,255,255,.62) !important;
  color: rgba(11,18,32,.86);
  letter-spacing: -0.006em;
}
.booking-wrap .chip:hover{
  background: rgba(255,255,255,.72) !important;
}
.booking-wrap .chip.on{
  background: linear-gradient(180deg, rgba(17,24,39,.66), rgba(15,23,42,.76)) !important;
  color: rgba(255,255,255,.92) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.10) !important;
}

/* Tap feedback without glow */
.booking-wrap .chip::after{
  content:"";
  position:absolute;
  inset:-2px;
  border-radius:999px;
  background: radial-gradient(160px 60px at 20% 10%, rgba(255,255,255,.22), transparent 70%);
  opacity:0;
  pointer-events:none;
  transition: opacity .16s ease;
}
.booking-wrap .chip:active::after{ opacity:.85; }

/* Swiper: smoother GPU path */
.booking-wrap .booking-swiper,
.booking-wrap .booking-swiper .swiper-wrapper{
  transform: translateZ(0);
  will-change: transform;
}
.booking-wrap .booking-swiper .swiper-slide{
  backface-visibility:hidden;
  transform: translateZ(0);
}


/* ===== UX polish pack v1.2.10 ===== */

/* Typography & spacing smoothing */
.booking-wrap{
  --itb-radius-xl: 22px;
  --itb-radius-lg: 18px;
  --itb-ease-premium: cubic-bezier(.2,.9,.2,1);
  --itb-ink-soft: rgba(11,18,32,.86);
  --itb-ink-muted: rgba(11,18,32,.64);
  --itb-card: rgba(255,255,255,.92);
}

/* Make booking shell a touch softer and more premium */
.booking-wrap .booking-shell{
  border-radius: var(--itb-radius-xl);
}

/* Smooth slide transitions (helps "no jumping" perception) */
.booking-wrap .booking-swiper .swiper-wrapper{
  transition-timing-function: var(--itb-ease-premium) !important;
  will-change: transform;
}

/* Keep wrapper height stable; slides scroll internally */
.booking-wrap .booking-swiper{
  height: 100%;
}
.booking-wrap .booking-swiper .swiper-slide{
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  scroll-behavior: auto;
  padding-bottom: 160px; /* space for inline nav + keyboard */
}

/* Step title: calmer */
.booking-wrap .wizard-title,
.booking-wrap .wizard-head h3,
.booking-wrap .wizard-head .title{
  letter-spacing: -0.012em;
  color: var(--itb-ink-soft);
}

/* Step subtitle */
.booking-wrap .wizard-subtitle,
.booking-wrap .wizard-head p,
.booking-wrap .wizard-head .desc{
  color: var(--itb-ink-muted);
}

/* Inline nav under fields: make it feel anchored, not floating */
.booking-wrap .wizard-nav{
  position: sticky;
  bottom: 14px;
  z-index: 5;
  padding-top: 10px;
  background: linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.74) 22%, rgba(255,255,255,.90) 100%);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  border-radius: 16px;
}

/* Buttons: more luxury (less strong contrast) */
.booking-wrap .wizard-nav__btn{
  border-radius: 999px;
  font-weight: 600;
  letter-spacing: -0.01em;
}
.booking-wrap .wizard-nav__btn--next{
  background: linear-gradient(180deg, rgba(17,24,39,.72), rgba(15,23,42,.82)) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.10), 0 16px 34px rgba(2,6,23,.14);
}
.booking-wrap .wizard-nav__btn--back{
  background: rgba(255,255,255,.74) !important;
  color: rgba(11,18,32,.80) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.36), 0 12px 26px rgba(2,6,23,.08);
}
.booking-wrap .wizard-nav__btn--back:hover{
  background: rgba(255,255,255,.86) !important;
}

/* Date status: premium pill */
.booking-wrap .itb-date-status{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:8px 12px;
  border-radius:999px;
  background: rgba(255,255,255,.80);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.36), 0 10px 22px rgba(2,6,23,.06);
}

/* Subtle animated dots while checking */
.booking-wrap .itb-date-status[data-state="checking"]{
  color: rgba(11,18,32,.72);
}
.booking-wrap .itb-date-status[data-state="checking"] .itb-date-status__text::after{
  content:"";
  width: 18px;
  display:inline-block;
  animation: itbDots 1.1s infinite;
}
@keyframes itbDots{
  0%{ content:""; }
  25%{ content:"."; }
  50%{ content:".."; }
  75%{ content:"..."; }
  100%{ content:""; }
}

/* Reduce harshness on focus (no neon) */
.booking-wrap input:focus,
.booking-wrap textarea:focus,
.booking-wrap select:focus{
  outline: none;
  box-shadow: 0 0 0 3px rgba(56,189,248,.14);
}

/* Optional: nicer thin scrollbars on desktop */
@media (hover:hover){
  .booking-wrap .booking-swiper .swiper-slide::-webkit-scrollbar{ width: 10px; }
  .booking-wrap .booking-swiper .swiper-slide::-webkit-scrollbar-thumb{
    background: rgba(2,6,23,.12);
    border-radius: 999px;
    border: 3px solid rgba(255,255,255,.50);
  }
}


/* ===== v1.2.11 refinements ===== */

/* Header: make it feel like part of the wizard (less glassy, more cohesive) */
.booking-wrap .topbar{
  background: linear-gradient(180deg, rgba(255,255,255,.96) 0%, rgba(255,255,255,.90) 100%) !important;
  border-bottom: 1px solid rgba(2,6,23,.08) !important;
  box-shadow: 0 18px 46px rgba(2,6,23,.10) !important;
  backdrop-filter: blur(10px) saturate(1.06) !important;
  -webkit-backdrop-filter: blur(10px) saturate(1.06) !important;
}

/* Make header spacing match slide content so it feels connected */
.booking-wrap .topbar{
  padding-left: 16px !important;
  padding-right: 16px !important;
}
.booking-wrap .topbar .top-title{ letter-spacing:-0.012em; }
.booking-wrap .topbar .top-step{ color: rgba(11,18,32,.62) !important; }

/* Chips: ensure inactive pill is clearly visible (soft tint, not white-on-white) */
.booking-wrap .chips{ gap:10px; }
.booking-wrap .chip{
  position: relative !important;
  background: rgba(15,23,42,.060) !important;
  color: rgba(11,18,32,.84) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.55), 0 10px 22px rgba(2,6,23,.06) !important;
}
.booking-wrap .chip:hover{
  background: rgba(15,23,42,.082) !important;
}
.booking-wrap .chip.on{
  background: linear-gradient(180deg, rgba(17,24,39,.70), rgba(15,23,42,.82)) !important;
  color: rgba(255,255,255,.94) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.12), 0 18px 40px rgba(2,6,23,.16) !important;
}

/* Remove the sticky nav "glass slab" look; keep it simple + premium */
.booking-wrap .wizard-nav{
  background: transparent !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border-radius: 0 !important;
  padding-top: 8px !important;
}

/* Reduce the feeling of disjointed layers */
.booking-wrap .card{
  background: rgba(255,255,255,.94) !important;
}


/* ===== v1.2.12 clean header + background ===== */

/* Clean background: white / soft blue (no messy blur) */
.booking-wrap{
  background: radial-gradient(1200px 800px at 15% 0%, rgba(56,189,248,.10), transparent 55%),
              radial-gradient(900px 700px at 85% 10%, rgba(45,212,191,.08), transparent 55%),
              linear-gradient(180deg, #ffffff 0%, #f7fbff 55%, #f3f7ff 100%) !important;
}

/* Remove overlay blur/fog */
.booking-wrap.show{
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  background: transparent !important; /* let booking-wrap base background show */
}
.booking-wrap.show::before{
  display:none !important;
}

/* Header: solid, clean, connected */
.booking-wrap .topbar{
  background: linear-gradient(180deg, rgba(255,255,255,.98) 0%, rgba(255,255,255,.96) 100%) !important;
  border-bottom: 1px solid rgba(2,6,23,.10) !important;
  box-shadow: 0 14px 34px rgba(2,6,23,.10) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

/* Title refinement */
.booking-wrap .topbar .top-title{
  font-size: 16px !important;
  font-weight: 650 !important;
  letter-spacing: -0.014em !important;
  color: rgba(11,18,32,.92) !important;
}
.booking-wrap .topbar .top-step{
  font-size: 12.5px !important;
  font-weight: 560 !important;
  letter-spacing: -0.006em !important;
  color: rgba(11,18,32,.58) !important;
}

/* Progress row: cleaner */
.booking-wrap .topbar-row--progress{
  padding-top: 6px !important;
}

/* Remove blur on mini summary too (keep clean) */
.booking-summary{
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  background: linear-gradient(180deg, rgba(255,255,255,.96) 0%, rgba(255,255,255,.90) 70%, rgba(255,255,255,0) 100%) !important;
}

/* Make dots and progress feel more premium (subtle) */
.booking-wrap .step-dot{
  background: rgba(2,6,23,.14) !important;
}
.booking-wrap .step-dot.is-active{
  background: rgba(11,18,32,.52) !important;
}
.booking-wrap .top-progress{
  background: rgba(2,6,23,.08) !important;
}
.booking-wrap .top-progress-fill{
  background: linear-gradient(90deg, rgba(56,189,248,.60), rgba(45,212,191,.52)) !important;
}


/* ===== v1.2.13 pastel blue background ===== */

/* Pastel blue background (clean, high-contrast, no photo bleed-through) */
.booking-wrap{
  background: linear-gradient(180deg, #f7fbff 0%, #eef6ff 55%, #eaf2ff 100%) !important;
}

/* When open, keep the background SOLID (do not show page behind) */
.booking-wrap.show{
  background: linear-gradient(180deg, #f7fbff 0%, #eef6ff 55%, #eaf2ff 100%) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  opacity: 1 !important;
}

/* Ensure inner wrapper doesn't inherit transparency */
.booking-wrap .app-wrap{
  background: transparent !important;
}

/* Kill any leftover overlay layers that might look like a photo */
.booking-wrap::before,
.booking-wrap::after,
.booking-wrap.show::before,
.booking-wrap.show::after{
  display:none !important;
  content:none !important;
}


/* ===== v1.2.14 UX Lux Pack ===== */

/* Overall: softer rhythm + premium type */
.booking-wrap{
  --itb-radius-xl: 22px;
  --itb-radius-lg: 18px;
  --itb-radius-md: 14px;
  --itb-ink: rgba(11,18,32,.92);
  --itb-ink-2: rgba(11,18,32,.70);
  --itb-ink-3: rgba(11,18,32,.55);
  --itb-line: rgba(2,6,23,.10);
  --itb-card: rgba(255,255,255,.94);
  --itb-card-2: rgba(255,255,255,.86);
  --itb-shadow: 0 18px 44px rgba(2,6,23,.10);
  --itb-shadow-soft: 0 10px 26px rgba(2,6,23,.08);
  --itb-ease: cubic-bezier(.2,.9,.2,1);
}

/* Shell */
.booking-wrap .app-wrap{
  color: var(--itb-ink);
}

/* Header: cleaner + more connected */
.booking-wrap .topbar{
  padding: 12px 16px 12px !important;
  box-shadow: 0 16px 40px rgba(2,6,23,.10) !important;
}
.booking-wrap .topbar-row--main{
  gap: 10px !important;
}
.booking-wrap .top-title{
  font-size: 16px !important;
  font-weight: 650 !important;
}
.booking-wrap .top-step{
  font-size: 12.5px !important;
  color: var(--itb-ink-3) !important;
}

/* Crumbs: pill buttons, subtle */
.booking-wrap .wizard-crumbs{
  display:flex;
  gap:8px;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  padding-top: 6px;
}
.booking-wrap .wizard-crumb{
  flex:0 0 auto;
  border:0;
  border-radius:999px;
  padding:8px 12px;
  background: rgba(15,23,42,.06);
  color: var(--itb-ink-2);
  font-weight: 600;
  letter-spacing: -0.01em;
  transition: background .16s ease, color .16s ease, transform .18s var(--itb-ease);
}
.booking-wrap .wizard-crumb.is-on{
  background: rgba(255,255,255,.92);
  color: var(--itb-ink);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.5), 0 10px 22px rgba(2,6,23,.06);
}
.booking-wrap .wizard-crumb:active{ transform: translateY(1px); }

/* Progress bar: thinner + premium */
.booking-wrap .top-progress{
  height: 6px !important;
  border-radius: 999px !important;
  background: rgba(2,6,23,.08) !important;
}
.booking-wrap .top-progress-fill{
  border-radius: 999px !important;
}

/* Cards + content spacing */
.booking-wrap .swiper-slide .slide-inner{
  padding: 16px 14px 22px !important;
}
.booking-wrap .card{
  background: var(--itb-card) !important;
  border-radius: var(--itb-radius-lg) !important;
  box-shadow: var(--itb-shadow-soft) !important;
  border: 1px solid rgba(2,6,23,.06);
}
.booking-wrap .label{
  font-weight: 650 !important;
  letter-spacing: -0.01em;
}
.booking-wrap .hint{
  color: var(--itb-ink-3) !important;
}

/* Inputs: cleaner, less contrast */
.booking-wrap .input,
.booking-wrap input.input,
.booking-wrap textarea.input,
.booking-wrap select.input{
  border-radius: 14px !important;
  border: 1px solid rgba(2,6,23,.10) !important;
  background: rgba(255,255,255,.92) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.55);
}
.booking-wrap .input::placeholder{
  color: rgba(11,18,32,.42);
}

/* Chips: luxury pill clarity */
.booking-wrap .chips{
  gap: 10px !important;
}
.booking-wrap .chip{
  min-height: 44px;
  padding: 10px 14px !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,.76) !important; /* visible inactive pill */
  color: rgba(11,18,32,.86) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.55), 0 10px 22px rgba(2,6,23,.06) !important;
  transition: background .16s ease, color .16s ease, transform .20s var(--itb-ease);
}
.booking-wrap .chip:hover{ background: rgba(255,255,255,.88) !important; }
.booking-wrap .chip.on{
  background: linear-gradient(180deg, rgba(17,24,39,.68), rgba(15,23,42,.80)) !important;
  color: rgba(255,255,255,.94) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.12), 0 18px 40px rgba(2,6,23,.14) !important;
}

/* Inline nav: sits right under last field, but feels stable */
.booking-wrap .wizard-nav{
  margin-top: 10px !important;
}
.booking-wrap .wizard-nav__btn{
  min-height: 46px;
  font-weight: 650;
  letter-spacing: -0.01em;
  transition: transform .20s var(--itb-ease), background .18s ease, opacity .18s ease;
}
.booking-wrap .wizard-nav__btn--back{
  background: rgba(255,255,255,.86) !important;
  border: 1px solid rgba(2,6,23,.10);
}
.booking-wrap .wizard-nav__btn--next{
  background: linear-gradient(180deg, rgba(17,24,39,.70), rgba(15,23,42,.82)) !important;
}

/* Reduce messy motion on low-end devices */
@media (prefers-reduced-motion: reduce){
  .booking-wrap *{ transition:none !important; animation:none !important; }
}


/* ===== v1.2.15 no-border fields ===== */

/* Inputs: no border (premium soft field) */
.booking-wrap .input,
.booking-wrap input.input,
.booking-wrap textarea.input,
.booking-wrap select.input{
  border: 0 !important;
  outline: 0;
  background: rgba(255,255,255,.92) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.70),
              0 10px 22px rgba(2,6,23,.06) !important;
}

/* Focus: soft ring (no border) */
.booking-wrap input:focus,
.booking-wrap textarea:focus,
.booking-wrap select:focus{
  box-shadow: inset 0 1px 0 rgba(255,255,255,.70),
              0 10px 22px rgba(2,6,23,.06),
              0 0 0 3px rgba(56,189,248,.14) !important;
}


/* ===== v1.2.16 premium tour list cards ===== */

/* Tour list overlay: clean pastel (no blur) */
#tourListOverlay{
  background: linear-gradient(180deg, #f7fbff 0%, #eef6ff 60%, #eaf2ff 100%) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

/* Container spacing */
.tour-list-container{
  padding: 14px 16px 22px !important;
  display:flex;
  flex-direction:column;
  gap:14px;
}

/* Premium tour card: full-bleed image with soft overlay + white title */
.tour-item{
  position: relative;
  overflow: hidden;
  border-radius: 22px;
  padding: 16px 16px;
  min-height: 112px;
  background: transparent !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border: 1px solid rgba(2,6,23,.08);
  box-shadow: 0 18px 44px rgba(2,6,23,.10);
}

.tour-item::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg, rgba(2,6,23,.18) 0%, rgba(2,6,23,.32) 48%, rgba(2,6,23,.46) 100%),
    radial-gradient(900px 400px at 20% 0%, rgba(56,189,248,.22), transparent 60%);
  pointer-events:none;
  z-index:1;
}

/* Use existing <img class="tour-thumb"> as background layer */
.tour-thumb{
  position:absolute !important;
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  border-radius: 22px !important;
  filter: saturate(1.05) contrast(1.05) brightness(.86);
  transform: scale(1.02);
  z-index:0;
}

/* Info layer on top */
.tour-info-block{
  position: relative;
  z-index:2;
  display:flex;
  flex-direction:column;
  gap:6px;
  padding-right: 8px;
}

.tour-name{
  color: rgba(255,255,255,.96) !important;
  font-size: 18px !important;
  font-weight: 700 !important;
  letter-spacing: -0.02em;
  text-shadow: 0 2px 10px rgba(2,6,23,.22);
}
.tour-tag{
  color: rgba(255,255,255,.82) !important;
  font-size: 13px !important;
  text-shadow: 0 2px 10px rgba(2,6,23,.18);
}
.tour-meta-pill{
  margin-top: 8px !important;
  align-self: flex-start;
  padding: 7px 10px;
  border-radius: 999px;
  background: rgba(255,255,255,.14);
  border: 1px solid rgba(255,255,255,.18);
  color: rgba(255,255,255,.82) !important;
  letter-spacing: .18em;
  text-shadow: none;
}

/* Card interaction: subtle */
.tour-item:active{
  transform: translateY(1px) scale(.99) !important;
  box-shadow: 0 12px 30px rgba(2,6,23,.12) !important;
}


/* ===== v1.2.17 tour list + smart nav ===== */

/* ---- TOUR LIST: force premium cards (high specificity to beat old rules) ---- */
#tourListOverlay{
  background: linear-gradient(180deg, #f7fbff 0%, #eef6ff 60%, #eaf2ff 100%) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

#tourListOverlay .tour-list-header{
  padding: 22px 18px 8px !important;
}
#tourListOverlay .tour-list-title{
  color: rgba(11,18,32,.92) !important;
}
#tourListOverlay .tour-list-sub{
  color: rgba(11,18,32,.55) !important;
}

#tourListOverlay .tour-list-container{
  padding: 14px 16px 26px !important;
  display:flex !important;
  flex-direction:column !important;
  gap:14px !important;
}

#tourListOverlay .tour-item{
  position: relative !important;
  overflow: hidden !important;
  border-radius: 22px !important;
  padding: 16px 16px !important;
  min-height: 118px !important;
  background: transparent !important;
  border: 1px solid rgba(2,6,23,.10) !important;
  box-shadow: 0 18px 44px rgba(2,6,23,.10) !important;
  gap: 0 !important;
}

#tourListOverlay .tour-item::before{
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  background:
    linear-gradient(180deg, rgba(2,6,23,.16) 0%, rgba(2,6,23,.34) 48%, rgba(2,6,23,.50) 100%),
    radial-gradient(900px 420px at 20% 0%, rgba(56,189,248,.22), transparent 60%) !important;
  pointer-events:none !important;
  z-index:1 !important;
}

#tourListOverlay .tour-thumb{
  position:absolute !important;
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  border-radius: 22px !important;
  filter: saturate(1.05) contrast(1.06) brightness(.84) !important;
  transform: scale(1.03) !important;
  z-index:0 !important;
}

#tourListOverlay .tour-info-block{
  position: relative !important;
  z-index:2 !important;
  display:flex !important;
  flex-direction:column !important;
  gap:6px !important;
  max-width: 92% !important;
}

#tourListOverlay .tour-name{
  color: rgba(255,255,255,.96) !important;
  font-size: 18px !important;
  font-weight: 720 !important;
  letter-spacing: -0.02em !important;
  text-shadow: 0 2px 12px rgba(2,6,23,.26) !important;
}

#tourListOverlay .tour-tag{
  color: rgba(255,255,255,.82) !important;
  font-size: 13px !important;
  text-shadow: 0 2px 10px rgba(2,6,23,.20) !important;
}

#tourListOverlay .tour-meta-pill{
  margin-top: 9px !important;
  align-self: flex-start !important;
  padding: 7px 10px !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,.14) !important;
  border: 1px solid rgba(255,255,255,.20) !important;
  color: rgba(255,255,255,.84) !important;
  letter-spacing: .18em !important;
}

#tourListOverlay .tour-item:active{
  transform: translateY(1px) scale(.99) !important;
  box-shadow: 0 12px 30px rgba(2,6,23,.12) !important;
}

/* ---- WIZARD NAV: no border + smart hide/show ---- */
.booking-wrap .wizard-nav__btn{
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
}
.booking-wrap .wizard-nav__btn--back{
  background: rgba(255,255,255,.86) !important;
  box-shadow: 0 12px 26px rgba(2,6,23,.08) !important;
}
.booking-wrap .wizard-nav__btn--next{
  box-shadow: 0 18px 40px rgba(2,6,23,.14) !important;
}

/* Smart visibility (JS toggles .itb-nav-hidden) */
.booking-wrap .wizard-nav{
  transition: transform .22s cubic-bezier(.2,.9,.2,1), opacity .18s ease !important;
  transform: translateY(0);
  opacity: 1;
}
.booking-wrap .wizard-nav.itb-nav-hidden{
  transform: translateY(14px);
  opacity: 0;
  pointer-events: none;
}


/* ===== v1.2.18 smart price CTA ===== */

/* Smart CTA label swap (Book This Trip -> prices) */
.book-big-btn .btn-label,
.details-end-cta__btn .btn-label{
  display:inline-flex;
  align-items:center;
  gap:6px;
}
.itb-cta-text{
  display:inline-block;
  transition: opacity .18s ease, transform .22s cubic-bezier(.2,.9,.2,1), filter .18s ease;
  will-change: opacity, transform, filter;
}
.itb-cta-text.itb-cta-out{
  opacity:0;
  transform: translateY(-6px);
  filter: blur(1px);
}
.itb-cta-text.itb-cta-in{
  opacity:1;
  transform: translateY(0);
  filter: blur(0);
}


/* ===== v1.2.19 hero CTA smart price + fixed label width ===== */

/* Hero Book CTA: keep pill size stable while text animates */
.hero-cta-btn[data-action="book"] .btn-label{
  display:inline-flex;
  justify-content:center;
  align-items:center;
  width: clamp(150px, 42vw, 180px);
  text-align:center;
  white-space: nowrap;
}
.hero-cta-btn[data-action="book"] .itb-cta-text{
  width:100%;
  text-align:center;
}


/* ===== v1.2.20 smoother smart CTA + refined style ===== */

/* Smoother text swap (less rough) */
.book-big-btn .btn-label,
.details-end-cta__btn .btn-label,
.hero-cta-btn[data-action="book"] .btn-label{
  font-variant-numeric: tabular-nums;
}

.itb-cta-text{
  display:inline-block;
  transition:
    opacity .28s ease,
    transform .34s cubic-bezier(.2,.9,.2,1),
    filter .28s ease;
  will-change: opacity, transform, filter;
}

.itb-cta-text.itb-cta-out{
  opacity:0;
  transform: translateY(-8px) scale(.985);
  filter: blur(.6px);
}

.itb-cta-text.itb-cta-in{
  opacity:1;
  transform: translateY(0) scale(1);
  filter: blur(0);
}

/* Refine hero Book CTA look (premium, soft) */
.hero-cta-btn[data-action="book"]{
  border: 0 !important;
  background: linear-gradient(180deg, rgba(17,24,39,.78), rgba(15,23,42,.88)) !important;
  box-shadow:
    0 22px 54px rgba(2,6,23,.16),
    inset 0 1px 0 rgba(255,255,255,.10) !important;
}

.hero-cta-btn[data-action="book"]:hover{
  transform: translateY(-1px);
  box-shadow:
    0 26px 64px rgba(2,6,23,.18),
    inset 0 1px 0 rgba(255,255,255,.12) !important;
}

.hero-cta-btn[data-action="book"]:active{
  transform: translateY(0px) scale(.99);
}

/* Refine bottom CTA + end CTA */
.book-big-btn,
.details-end-cta__btn{
  border: 0 !important;
  box-shadow:
    0 18px 44px rgba(2,6,23,.14),
    inset 0 1px 0 rgba(255,255,255,.10) !important;
}


/* ===== v1.2.21 restore CTA style + keep smooth text animation ===== */

/* Restore HERO Book CTA to match View Details style (glass pill) */
.hero-cta-btn[data-action="book"]{
  background: rgba(255,255,255,0.16) !important;
  border: 1px solid rgba(255,255,255,0.22) !important;
  backdrop-filter: blur(14px) !important;
  -webkit-backdrop-filter: blur(14px) !important;
  box-shadow: none !important;
}
@media (hover:hover){
  .hero-cta-btn[data-action="book"]:hover{
    background: rgba(255,255,255,0.18) !important;
    transform: none !important;
    box-shadow: none !important;
  }
}
.hero-cta-btn[data-action="book"]:active{
  background: rgba(255,255,255,0.22) !important;
  transform: scale(.985) translateY(1px) !important;
}

/* Undo extra CTA styling: keep original (only text animation changed) */
.book-big-btn,
.details-end-cta__btn{
  border: 1px solid rgba(255,255,255,0.10) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.10),
    0 18px 50px rgba(2,6,23,0.18) !important;
}


/* ===== v1.2.22 stagger blur letters + smaller price ===== */

/* Smaller CTA price labels so they always fit cleanly */
.itb-cta--price .btn-label{
  font-size: 0.92em;
  letter-spacing: 0.01em;
}
.hero-cta-btn[data-action="book"].itb-cta--price .btn-label{
  font-size: 0.90em;
}

/* Staggered random letter blur-in animation */
.itb-cta-text{
  display:inline-block;
  position:relative;
  line-height: 1;
}
.itb-cta-letter{
  display:inline-block;
  opacity:0;
  transform: translateY(8px);
  filter: blur(6px);
  transition:
    opacity .58s ease,
    transform .72s cubic-bezier(.18,.92,.18,1),
    filter .72s ease;
  will-change: opacity, transform, filter;
}
.itb-cta-letter.is-in{
  opacity:1;
  transform: translateY(0px);
  filter: blur(0px);
}
.itb-cta-letter.is-out{
  opacity:0;
  transform: translateY(-6px);
  filter: blur(4px);
}

@media (prefers-reduced-motion: reduce){
  .itb-cta-letter{ transition:none !important; opacity:1 !important; transform:none !important; filter:none !important; }
}


/* ===== v1.2.23 scale+blur stagger letters (smoother) ===== */

/* Upgrade: scale + blur + random stagger (smoother) */
.itb-cta-letter{
  opacity:0;
  transform: translateY(6px) scale(1.06);
  filter: blur(8px);
  transition:
    opacity .62s ease,
    transform .92s cubic-bezier(.16,.92,.16,1),
    filter .92s ease;
  will-change: opacity, transform, filter;
}
.itb-cta-letter.is-in{
  opacity:1;
  transform: translateY(0px) scale(1);
  filter: blur(0px);
}
.itb-cta-letter.is-out{
  opacity:0;
  transform: translateY(-4px) scale(.985);
  filter: blur(6px);
}


/* ================== BOOKING WIZARD UPGRADE (v1.2.26) ================== */

/* Use ONE global close (top-right). Never hide it when booking is open. */
body.itb-booking-open #globalArrow{
  opacity:1 !important;
  pointer-events:auto !important;
  transform:none !important;
}

/* Booking swiper always starts below the real measured header height */
.booking-wrap{
  --itb-topbar-h: 150px;
  --itb-kb: 0px;
}
.booking-wrap .booking-swiper{
  top: var(--itb-topbar-h) !important;
  transform:none !important;
  transition:none !important;
}

/* When the topbar is "hidden", collapse the main rows but keep the summary bar visible */
.booking-wrap.itb-topbar-hidden .topbar{
  transform:none !important;
  opacity:1 !important;
  pointer-events:auto !important;
  padding:8px 14px 10px !important;
}
.booking-wrap.itb-topbar-hidden .topbar-row--main,
.booking-wrap.itb-topbar-hidden .topbar-row--progress{
  max-height:0 !important;
  opacity:0 !important;
  transform:translate3d(0,-10px,0) !important;
  overflow:hidden !important;
  margin:0 !important;
  padding:0 !important;
  pointer-events:none !important;
}
.booking-wrap.itb-topbar-hidden .booking-summary{
  padding-top:4px !important;
}

/* Keyboard docking: never let nav cover inputs */
.booking-wrap .booking-swiper .swiper-slide{
  padding-bottom: calc(160px + var(--itb-kb)) !important;
}
.booking-wrap .wizard-nav{
  bottom: calc(14px + var(--itb-kb)) !important;
}

/* Remove the old slide-up transform when topbar hides */
.booking-wrap.itb-topbar-hidden .booking-swiper{
  transform:none !important;
}



/* ================== ITB INTRO (HOME) ================== */
.itb-intro{
  --bg:#ffffff;
  --fg:#0b0f14;
  --ease:cubic-bezier(.12,.96,.10,1);
  --durMin:2100ms;
  --durMax:3200ms;
  --gap:clamp(14px,3.2vw,34px);
  position:fixed;
  inset:0;
  z-index:999999;
  background:var(--bg);
  color:var(--fg);
  display:grid;
  place-items:center;
  overflow:hidden;
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
}
body.itb-intro-open #globalArrow{
  opacity:0 !important;
  transform:translateY(10px) scale(.9) !important;
  pointer-events:none !important;
}
body.itb-intro-open .itb-hero-hint{
  opacity:0 !important;
  pointer-events:none !important;
}

/* Pre-hide (set in <head>) to avoid a 1-frame flash before intro JS runs */
html.itb-prehide #globalArrow,
html.itb-prehide .itb-hero-hint{
  opacity:0 !important;
  transform:translateY(10px) scale(.96) !important;
  pointer-events:none !important;
}
html.itb-prehide .itb-hero-reveal{
  opacity:0 !important;
  transform:translateY(14px) !important;
  transition:none !important;
}

/* Hero reveal: stays softly hidden behind intro, then fades-up the moment intro closes */
body.itb-intro-open .itb-hero-reveal{
  opacity:0;
  transform:translateY(14px);
}
.itb-hero-reveal{
  opacity:1;
  transform:translateY(0);
  transition:opacity 900ms cubic-bezier(.16,1,.30,1), transform 900ms cubic-bezier(.16,1,.30,1);
  will-change:opacity, transform;
}
.itb-intro.is-out{
  opacity:0;
  transition:opacity 520ms var(--ease);
}
.itb-intro__bloom{
  position:fixed;
  inset:-40vmax;
  background:
    radial-gradient(circle at 50% 40%, rgba(11,15,20,.055), rgba(255,255,255,0) 58%),
    radial-gradient(circle at 30% 62%, rgba(11,15,20,.030), rgba(255,255,255,0) 60%),
    radial-gradient(circle at 70% 66%, rgba(11,15,20,.026), rgba(255,255,255,0) 62%);
  pointer-events:none;
  filter:blur(3px);
  opacity:.7;
}
.itb-intro__grain{
  position:fixed;
  inset:0;
  pointer-events:none;
  opacity:.055;
  mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='220' height='220' filter='url(%23n)' opacity='.45'/%3E%3C/svg%3E");
  background-size:220px 220px;
}
.itb-intro__wrap{
  width:min(1080px,92vw);
  display:grid;
  place-items:center;
  gap:clamp(10px,2.2vh,18px);
  padding:clamp(28px,6vh,56px) 16px;
  user-select:none;
}
.itb-intro__logoWrap{position:relative;display:grid;place-items:center;}
.itb-intro__halo{
  position:absolute;
  inset:-18vmin;
  background:radial-gradient(circle at 50% 50%, rgba(11,15,20,.075), rgba(255,255,255,0) 62%);
  filter:blur(26px);
  opacity:.30;
  pointer-events:none;
}
.itb-intro__logo{
  position:relative;
  display:flex;
  align-items:baseline;
  justify-content:center;
  gap:var(--gap);
  line-height:1;
  letter-spacing:0.03em;
  font-family:"Lemon/Milk","LEMON MILK","Lemon Milk",system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  font-weight:700;
  font-size:clamp(74px,14vw,230px);
}
.itb-intro__letter{
  display:inline-block;
  opacity:0;
  transform-origin:50% 70%;
  transform:translateY(var(--y, 10px)) scale(var(--s, 3));
  filter:blur(var(--b, 44px));
  will-change:transform, filter, opacity;
  transition-property:transform, filter, opacity;
  transition-duration:var(--dur, 2600ms);
  transition-timing-function:var(--ease);
  transition-delay:var(--d, 0ms);
}
.itb-intro__letter.is-in{
  opacity:1;
  transform:translateY(0) scale(1);
  filter:blur(0px);
}
.itb-intro__tagline{
  font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  font-size:clamp(13px, 1.9vw, 16px);
  letter-spacing:.12em;
  text-transform:uppercase;
  color:rgba(11,15,20,.60);
  line-height:1.25;
  text-align:center;
  opacity:0;
  transform:translateY(12px);
  filter:blur(12px);
  transition:
    transform 1500ms var(--ease),
    filter 1500ms var(--ease),
    opacity 1200ms linear;
  transition-delay:var(--tagDelay, 2100ms);
}
.itb-intro__tagline.is-in{
  opacity:1;
  transform:translateY(0);
  filter:blur(0px);
}
.itb-intro__controls{
  margin-top:12px;
  display:flex;
  gap:10px;
  align-items:center;
  justify-content:center;
}
.itb-intro__btn{
  border:1px solid rgba(11,15,20,.12);
  background:rgba(255,255,255,.92);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  color:rgba(11,15,20,.9);
  border-radius:999px;
  padding:10px 14px;
  font:600 13px/1 system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  cursor:pointer;
  transition:transform 240ms ease, border-color 240ms ease;
}
.itb-intro__btn:hover{border-color:rgba(11,15,20,.2)}
.itb-intro__btn:active{transform:scale(.985)}
.itb-intro__btn:focus-visible{outline:2px solid rgba(11,15,20,.35);outline-offset:3px;}
@media (prefers-reduced-motion: reduce){
  .itb-intro__bloom,.itb-intro__grain,.itb-intro__halo{display:none}
  .itb-intro__letter{transition:none; transform:none; filter:none; opacity:1}
  .itb-intro__tagline{transition:none; transform:none; filter:none; opacity:1}
  .itb-intro__controls{display:none}
}


/* ================== BORDERLESS PREMIUM POLISH ================== */
.hero-index,.hero-cta-btn,.hero-swipe-hint .pill,.hero-swipe-hint .mouse{border:0 !important;}
.hero-index{box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 14px 36px rgba(0,0,0,.22);}
.hero-cta-btn{box-shadow:inset 0 1px 0 rgba(255,255,255,.20),0 18px 60px rgba(0,0,0,.16);}
.hero-cta-btn--ghost{box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 14px 44px rgba(0,0,0,.14);}
.hero-swipe-hint .pill{box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 16px 46px rgba(0,0,0,.22);}
.hero-swipe-hint .mouse{background:rgba(255,255,255,.10);box-shadow:inset 0 1px 0 rgba(255,255,255,.16);}
.booking-wrap .topbar,.booking-wrap .booking-summary,.booking-wrap .top-step{border:0 !important;}
.sum-pill{border:0 !important;box-shadow:inset 0 1px 0 rgba(255,255,255,.70),0 16px 44px rgba(2,6,23,.08);}
.sum-pill--price{border:0 !important;box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 18px 54px rgba(2,6,23,.16);}
.booking-wrap .card{border:1px solid var(--itb-hairline-2) !important;box-shadow:inset 0 1px 0 rgba(255,255,255,.82),0 18px 54px rgba(2,6,23,.10) !important;}
#bookingClose.itb-booking-close,.booking-wrap .itb-wa-fab{border:0 !important;box-shadow:inset 0 1px 0 rgba(255,255,255,.72),0 22px 66px rgba(2,6,23,.18);}
.tour-item{border:0 !important;box-shadow:0 22px 66px rgba(2,6,23,.14) !important;}


/* ===== Slots under date ===== */
.itb-slot-wrap{ margin-top:10px; }
.itb-slot-title{
  font-size:12px;
  letter-spacing:.10em;
  text-transform:uppercase;
  color:rgba(11,15,20,.55);
  margin:6px 0 8px;
}
.itb-slot-chips{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.itb-slot-chips .itb-slot-chip{
  appearance:none;
  border:0;
  background:rgba(15,23,42,.04);
  color:rgba(11,15,20,.86);
  border-radius:999px;
  padding:10px 14px;
  font-size:14px;
  line-height:1;
  cursor:pointer;
  transition: transform 180ms cubic-bezier(.16,1,.30,1), box-shadow 180ms cubic-bezier(.16,1,.30,1), background 180ms cubic-bezier(.16,1,.30,1);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.60), 0 10px 24px rgba(2,6,23,.06);
  user-select:none;
  -webkit-tap-highlight-color: transparent;
}
.itb-slot-chips .itb-slot-chip:hover{
  transform: translateY(-1px);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.64), 0 16px 34px rgba(2,6,23,.08);
}
.itb-slot-chips .itb-slot-chip.on,
.itb-slot-chips .itb-slot-chip[aria-checked="true"]{
  background: rgba(46, 144, 255, .12);
  color: rgba(14, 90, 190, 1);
}
.itb-slot-chips .itb-slot-chip.is-disabled{
  opacity:.45;
  pointer-events:none;
  text-decoration:line-through;
  box-shadow:none;
}

/* Capacity (reserved / left) — clean + premium */
.itb-slot-meta{
  margin-top:10px;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px;
}

/* Ensure hidden attribute always wins (iOS Safari safe) */
.itb-slot-wrap[hidden],
.itb-slot-chips[hidden],
.itb-slot-meta[hidden]{
  display:none !important;
}
.itb-cap-pill{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:8px 12px;
  border-radius:999px;
  border:0;
  background: rgba(15,23,42,.04);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.60), 0 10px 24px rgba(2,6,23,.06);
  -webkit-tap-highlight-color: transparent;
}
.itb-cap-pill__k{
  font-size:11px;
  letter-spacing:.10em;
  text-transform:uppercase;
  color:rgba(11,15,20,.50);
}
.itb-cap-pill__v{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-size:14px;
  line-height:1;
  font-weight:700;
  letter-spacing:-0.01em;
  font-variant-numeric: tabular-nums;
  color:rgba(11,15,20,.88);
}
.itb-cap-suffix{
  display:inline-block;
  line-height:1em;
  opacity:.55;
  font-weight:700;
  padding:0;
  margin:0;
  transform:none;
}

/* Lock pill widths to prevent micro-jumps when numbers change (0/12 -> 2/12 -> 12/12) */
#itbCapReservedVal{ min-width: 6.6ch; justify-content:flex-end; }
#itbCapLeftVal{ min-width: 3.2ch; justify-content:flex-end; }

/* Cap numbers baseline lock (prevents iOS “floating digits”) */
#itbCapReservedVal .itb-num,
#itbCapLeftVal .itb-num,
#itbGroupSlotNum .itb-roll{
  line-height:1em;
}
#itbCapReservedVal .itb-cap-suffix{
  line-height:1em;
  transform: translateY(0.02em);
}


/* Loading state: keep layout, show subtle shimmer instead of hiding/greying */
.itb-slot-meta.is-loading .itb-cap-pill__v,
.itb-slot-meta.is-loading .itb-cap-bar__label{
  opacity:.42;
}
.itb-slot-meta.is-loading .itb-cap-pill,
.itb-slot-meta.is-loading .itb-cap-bar__track{
  background-image: linear-gradient(90deg, rgba(15,23,42,.04), rgba(15,23,42,.08), rgba(15,23,42,.04));
  background-size: 220% 100%;
  animation: itbShimmer 1.1s linear infinite;
}
@keyframes itbShimmer{
  0%{ background-position: 0% 0; }
  100%{ background-position: 220% 0; }
}

/* Roll number — stable baseline + no iOS clipping */
.itb-roll{
  display:inline-block;
  position:relative;
  overflow:hidden;
  height:1em;
  line-height:1em;
  vertical-align:-0.08em; /* tune baseline (fixes “2 higher than 12”) */
  transform: translateZ(0);
  will-change: transform;
  contain: layout style paint;
}

/* Group slot number baseline: tuned separately (flex header can render slightly different on iOS) */
#itbGroupSlotNum .itb-roll{ vertical-align: -0.02em; }
@supports (-webkit-touch-callout: none){
  #itbGroupSlotNum{ top: .04em; }
}
.itb-roll__cur, .itb-roll__next{
  position:absolute;
  left:0;
  right:0;
  top:0;
  height:1em;
  line-height:1em;
  width:100%;
  text-align: inherit;
  backface-visibility:hidden;
  -webkit-font-smoothing: antialiased;
}
/* Micro press feedback (segmented trip type) */
#tripTypeChips .chip.itb-press{
  transform: none !important;
  filter: brightness(.97);
}

.itb-cap-pill--left{
  background: rgba(46,144,255,.08);
}
.itb-cap-note{
  font-size:13px;
  color:rgba(11,15,20,.62);
  display:block;
  margin-top: 6px;
  min-height: 18px; /* keeps layout stable so the note doesn't "jump" the UI */
  opacity: 0;
  /* Fade-up: start slightly lower then glide into place */
  transform: translateY(8px);
  transition:
    opacity 220ms cubic-bezier(.16,1,.30,1),
    transform 260ms cubic-bezier(.16,1,.30,1),
    filter 260ms cubic-bezier(.16,1,.30,1);
  will-change: opacity, transform;
}
.itb-cap-note strong{
  font-weight:650;
  color:rgba(11,15,20,.92);
}
.itb-cap-note.is-show{
  opacity: 1;
  transform: translateY(0);
}
.itb-cap-note.is-urgent{
  /* Text-only emphasis (no background/border) */
  color: rgba(180,83,9,.95);
}
.itb-cap-note.is-urgent strong{ color: rgba(146,64,14,1); }

/* Urgency variants */
.itb-cap-note.is-full{
  color: rgba(185,28,28,.96);
}
.itb-cap-note.is-full strong{ color: rgba(153,27,27,1); }

/* No "pop" animation: the base fade-up transition handles everything smoothly */

/* SR-only fallback for accessibility (kept but visually hidden) */
.itb-slot-sr{
  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;
}

/* Hide old time pref card (slots are under date now) */
.itb-timepref-card{ display:block; }

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration:0.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:0.01ms !important;
    scroll-behavior:auto !important;
  }
}



/* ===================== */
/* NO-BORDER PREMIUM PASS */
/* User request: remove borders, keep clean separation via shadow + soft surfaces */
/* ===================== */
:root{
  --itb-hairline: rgba(2,6,23,0);
  --itb-hairline-2: rgba(2,6,23,0);
}

/* Cards */
.booking-wrap .card{
  border:0 !important;
  box-shadow: 0 22px 60px rgba(2,6,23,.10) !important;
}

/* Fields */
.booking-wrap .input{
  border:0 !important;
  background: rgba(255,255,255,.92) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.80), 0 16px 34px rgba(2,6,23,.08) !important;
}
.booking-wrap .input:focus{
  border:0 !important;
  box-shadow: 0 0 0 4px rgba(56,189,248,.22), 0 18px 40px rgba(2,6,23,.10) !important;
}

/* Slot chips under date */
.itb-slot-chips .itb-slot-chip{
  border:0 !important;
}
.itb-slot-chips .itb-slot-chip:hover{
  border-color: transparent !important;
}
.itb-slot-chips .itb-slot-chip.on,
.itb-slot-chips .itb-slot-chip[aria-checked="true"]{
  border-color: transparent !important;
}

/* Capacity pills (Reserved / Left) */
.itb-cap-pill{
  border:0 !important;
}
.itb-cap-pill--left,
.itb-cap-pill--booked,
.itb-cap-pill--warn,
.itb-cap-pill--full{
  border-color: transparent !important;
}

/* Booking close button */
#bookingClose.itb-booking-close{
  border:0 !important;
  box-shadow: 0 18px 44px rgba(2,6,23,.16) !important;
}


/* === v1.2.46 Premium Guest Counter + No Borders === */
.booking-wrap .counter{
  background: rgba(15,23,42,.04);
  padding: 8px 10px;
  border: 0 !important;
  border-radius: 999px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.75), 0 10px 24px rgba(2,6,23,.05);
  gap: 12px;
}
.booking-wrap .circle-btn{
  width: 34px; height: 34px;
  border: 0 !important;
  background: rgba(255,255,255,.65);
  box-shadow: 0 6px 18px rgba(2,6,23,.06);
}
.booking-wrap .num{
  background: transparent !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  min-width: 24px;
  text-align: center;
  font-weight: 700;
  letter-spacing: .02em;
}

/* Gentle opacity shift when guest value changes (no motion) */
.booking-wrap .itb-guest-flash{
  animation: itbGuestFlash 220ms ease-out;
}
@keyframes itbGuestFlash{
  from{ opacity: .55; }
  to{ opacity: 1; }
}

/* Ultra clean helpers */

/* === v1.2.47 Wizard hero strip (brings back hero feel inside booking) === */
.booking-wrap .app-wrap{ position:relative; }
.booking-wrap .wizard-hero{
  position:absolute;
  top:0; left:0; right:0;
  height:118px;
  background-size:cover;
  background-position:center;
  filter: blur(14px) saturate(1.05);
  opacity:.34;
  transform: scale(1.10);
  pointer-events:none;
  z-index:0;
}
.booking-wrap .wizard-hero:after{
  content:"";
  position:absolute; inset:0;
  background: linear-gradient(180deg, rgba(255,255,255,.78) 0%, rgba(255,255,255,.96) 72%, rgba(255,255,255,1) 100%);
}
.booking-wrap .topbar{ position:relative; z-index:2; }
.booking-wrap .swiper{ position:relative; z-index:1; }
.is-hidden{ display:none !important; }



/* Guest labels + helper text (premium, doesn't affect counter pill) */
.guest-meta{display:flex;flex-direction:column;gap:2px}
.guest-label{font-weight:700;letter-spacing:.01em}
.guest-sub{
  font-size: 12px;
  color: rgba(0,0,0,.45);
  margin: 0;
  letter-spacing: .02em;
  line-height: 1.2;
}


/* ===== ITB Number Roll (labels stay still) ===== */
.itb-slot-title{
  display:flex;
  align-items:center;
  gap: 6px;
}
.itb-slot-title__label{
  letter-spacing: .24em;
  text-transform: uppercase;
  color: rgba(11,15,20,.60);
  line-height: 1;
  transform: translateY(.02em);
}
.itb-slot-title__num{
  display:inline-flex;
  align-items:center;
  justify-content:flex-end;
  min-width:  3.0ch;
  position: relative;
  top:  .02em; /* baseline tune so GROUP number sits perfectly */
  font-variant-numeric: tabular-nums;
  font-weight: 800;
  letter-spacing: -0.01em;
  line-height: 1;
  padding: 2px 8px;
  border-radius: 999px;
  background: rgba(15,23,42,.04);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.65);
  color: rgba(11,15,20,.92);
}

.itb-slot-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 10px;
  margin-bottom: 8px;
}
.itb-slot-kicker{
  font-size: 11px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(11,15,20,.44);
  white-space: nowrap;
}
.itb-num{
  display:inline-flex;
  align-items:baseline;
  line-height:1;
  font-variant-numeric: tabular-nums;
}
.itb-numroll{
  font-variant-numeric: tabular-nums;
}


/* Persistent roller (no DOM swap, no flicker) */
.itb-roll{
  display:inline-block;
  position:relative;
  overflow:hidden;
  height:1em;
  line-height:1em;
  vertical-align:baseline;
  font-variant-numeric: tabular-nums;
  -webkit-font-smoothing: antialiased;
  min-width: 1.6ch;
  contain: layout paint;
  transform: translateZ(0);
  will-change: transform;
  }

.itb-roll__cur,
.itb-roll__next{
  position:absolute;
  left:0;
  top:0;
  width:100%;
  height:1em;
  line-height:1em;
  transform: translate3d(0,0,0);
  backface-visibility:hidden;
  will-change: transform;
}
.itb-roll__next{
  transform: translate3d(0,100%,0);
}

.itb-cap-suffix{
  display:inline-block;
  line-height:1em;
  opacity:.55;
  font-weight:700;
  padding:0;
  margin:0;
}

/* Capacity progress bar (no flicker) */
.itb-cap-bar{
  flex-basis: 100%;
  display:flex;
  align-items:center;
  gap: 10px;
  margin-top: 2px;
}
.itb-cap-bar__track{
  flex:1;
  height: 8px;
  border-radius: 999px;
  background: rgba(15,23,42,.08);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.66);
  overflow:hidden;
}
.itb-cap-bar__fill{
  height:100%;
  width:100%;
  transform-origin: 0 50%;
  transform: scaleX(0);
  background: linear-gradient(90deg, rgba(46,144,255,.70), rgba(46,144,255,.22));
  transition: transform 700ms cubic-bezier(.16,1,.30,1);
  will-change: transform;
}
.itb-cap-bar.is-low .itb-cap-bar__fill{
  background: linear-gradient(90deg, rgba(245,158,11,.82), rgba(245,158,11,.18));
}
.itb-cap-bar.is-full .itb-cap-bar__fill{
  background: linear-gradient(90deg, rgba(220,38,38,.80), rgba(220,38,38,.18));
}
.itb-cap-bar__label{
  font-size: 12px;
  color: rgba(11,15,20,.55);
  font-weight: 650;
  letter-spacing: .02em;
  white-space:nowrap;
}



/* ===== UX UPGRADE PACK (sticky summary, skeleton, stability) ===== */
.itb-num, .itb-price-num, #sumPrice, #itbStickyPrice{
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}

/* Availability confidence line */
.itb-cap-updated{
  font-size:12px;
  color:rgba(11,15,20,.48);
  margin-top:4px;
  min-height: 16px;
  opacity:0;
  transform: translateY(6px);
  transition: opacity 220ms cubic-bezier(.16,1,.30,1), transform 260ms cubic-bezier(.16,1,.30,1);
  will-change: opacity, transform;
}
.itb-cap-updated.is-show{ opacity:1; transform: translateY(0); }

/* Lock widths (prevents micro-jumps) */
#itbCapReservedVal{ min-width: 92px; display:inline-flex; justify-content:flex-end; }
#itbCapLeftVal{ min-width: 44px; display:inline-flex; justify-content:flex-end; }
#sumPrice{ min-width: 140px; text-align:right; }
.itb-slot-title__num{ min-width: 3ch; display:inline-flex; justify-content:flex-end; }

/* Skeleton loading (premium, no grey disable) */
@keyframes itbShimmer{
  0%{ background-position: 200% 0; }
  100%{ background-position: -200% 0; }
}
.itb-slot-meta.is-loading .itb-cap-pill__v > *{ opacity:0; }
.itb-slot-meta.is-loading .itb-cap-pill__v{
  position:relative;
}
.itb-slot-meta.is-loading .itb-cap-pill__v::before{
  content:"";
  display:block;
  height:14px;
  width:86px;
  border-radius:999px;
  background: linear-gradient(90deg, rgba(15,23,42,.06) 0%, rgba(15,23,42,.12) 50%, rgba(15,23,42,.06) 100%);
  background-size: 200% 100%;
  animation: itbShimmer 1.1s linear infinite;
}
.itb-slot-meta.is-loading #itbCapBarLabel{
  position:relative;
  color:transparent;
  min-height:14px;
}
.itb-slot-meta.is-loading #itbCapBarLabel::before{
  content:"";
  display:block;
  height:14px;
  width:140px;
  border-radius:999px;
  background: linear-gradient(90deg, rgba(15,23,42,.06) 0%, rgba(15,23,42,.12) 50%, rgba(15,23,42,.06) 100%);
  background-size: 200% 100%;
  animation: itbShimmer 1.1s linear infinite;
  position:absolute;
  left:0;top:0;
}

/* Sticky summary bar (mobile) */
.booking-wrap{ --itb-sticky-guess: 0px; }
.itb-sticky-summary{
  position:fixed;
  left:50%;
  /* Animated show/hide (smooth, no pop) */
  transform: translateX(-50%) translateY(10px) scale(.985);
  bottom: calc(env(safe-area-inset-bottom) + var(--itb-kb, 0px));
  z-index: 95;
  width: min(760px, calc(100% - 20px));
  background: rgba(255,255,255,.92);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  border-radius: 18px;
  box-shadow: 0 14px 44px rgba(2,6,23,.14);
  padding: 10px 12px calc(10px + env(safe-area-inset-bottom));
  display:flex;
  align-items:center;
  gap: 10px;
  border: 0;
  opacity: 0;
  pointer-events: none;
  transition:
    opacity 220ms cubic-bezier(.16,1,.30,1),
    transform 360ms cubic-bezier(.16,1,.30,1),
    filter 220ms cubic-bezier(.16,1,.30,1);
  will-change: opacity, transform;
}
.itb-sticky-summary.is-on{
  opacity: 1;
  pointer-events: auto;
  transform: translateX(-50%) translateY(0) scale(1);
}
/* Respect the native [hidden] attribute even when we set display:flex above */
.itb-sticky-summary[hidden]{
  display:none !important;
}
.itb-sticky-summary__back{
  width:42px;height:42px;
  border-radius: 14px;
  border:0;
  background: rgba(15,23,42,.04);
  color: rgba(11,15,20,.92);
  display:grid;place-items:center;
  font-size:18px;
  cursor:pointer;
  transition: filter 200ms cubic-bezier(.16,1,.30,1), opacity 200ms cubic-bezier(.16,1,.30,1);
}
.itb-sticky-summary__back.is-disabled{ opacity:.45; }
.itb-sticky-summary__info{
  flex:1;
  display:flex;
  flex-direction:column;
  gap: 2px;
  min-width: 0;
}
.itb-sticky-summary__top{
  font-size:12px;
  font-weight:650;
  color: rgba(11,15,20,.58);
  display:flex;
  align-items:center;
  gap: 8px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.itb-sticky-dot{ opacity:.6; }
.itb-sticky-summary__price{
  display:flex;
  align-items:baseline;
  gap: 6px;
  font-size:16px;
  font-weight:800;
  color: rgba(11,15,20,.92);
  letter-spacing: .01em;
  white-space:nowrap;
}
.itb-sticky-summary__cur{
  font-size:12px;
  font-weight:750;
  color: rgba(11,15,20,.55);
}
.itb-sticky-summary__cta{
  height:42px;
  padding: 0 14px;
  border-radius: 14px;
  border:0;
  background: rgba(11,18,32,.96);
  color:#fff;
  font-weight:800;
  letter-spacing:.02em;
  display:inline-flex;
  align-items:center;
  gap:10px;
  cursor:pointer;
  transition: filter 200ms cubic-bezier(.16,1,.30,1), opacity 200ms cubic-bezier(.16,1,.30,1);
  box-shadow: 0 12px 28px rgba(0,0,0,.18);
}
.itb-sticky-summary__cta:hover{ filter: brightness(1.03); }
.itb-sticky-summary__cta.is-disabled,
.itb-sticky-summary__cta:disabled{ opacity:.55; cursor:not-allowed; box-shadow:none; }
.itb-sticky-summary__ctaIcon{ opacity:.9; }

/* On mobile: use sticky bar instead of the inline nav (prevents overlap) */
@media (max-width: 980px){
  #wizardNav{ display:none !important; }
  .booking-wrap{ --itb-sticky-guess: 84px; }
  .booking-wrap .swipe-hint-bar{ bottom: calc(84px + var(--itb-kb, 0px)); }
  /* Reserve space for sticky summary so it never covers content */
  .booking-wrap .slide-inner{
    padding-bottom: calc(32px + env(safe-area-inset-bottom) + var(--itb-sticky-h, 0px));
  }
  /* Extra safety: if any slide swaps inner content, the swiper container also reserves space */
  .booking-wrap .booking-swiper{
    padding-bottom: calc(10px + env(safe-area-inset-bottom) + var(--itb-sticky-h, 0px));
  }
}
@media (min-width: 981px){
  .itb-sticky-summary{ display:none !important; }
}


/* ===================== */
/* v1.3.19 — UX/UI polish pack (chips + timing icon) */
/* ===================== */

/* Timing segmented indicator: smoother + calmer */
#timePrefChips .itb-time-seg-indicator{
  transition:
    transform 820ms cubic-bezier(0.22,1,0.36,1),
    width 820ms cubic-bezier(0.22,1,0.36,1),
    opacity 220ms ease !important;
}

/* Timing icon: slightly bigger + zero layout shift */
#timePrefChips{ --itb-chip-h: 44px; }
#timePrefChips .chip-ico{
  width: 1.62em !important;
  height: 1.36em !important;
}
#timePrefChips .chip-ico .itb-sun,
#timePrefChips .chip-ico .itb-moon{
  font-size: 1.18em !important;
  transform: translate3d(-50%,-50%,0);
}

/* Replace keyframes with slightly slower, smoother motion */
@keyframes itbSunRiseMask{
  0%{ transform:translate3d(-50%,-50%,0) translateY(102%) scale(.945); opacity:0; filter:brightness(.99); }
  66%{ transform:translate3d(-50%,-50%,0) translateY(-6%)  scale(1.05);  opacity:1; filter:brightness(1.06); }
  100%{ transform:translate3d(-50%,-50%,0) translateY(0)    scale(1);     opacity:1; filter:brightness(1); }
}
@keyframes itbSunMidday{
  0%{ transform:translate3d(-50%,-50%,0) scale(.90) rotate(-7deg); opacity:0; filter:drop-shadow(0 0 0 rgba(56,189,248,0)); }
  62%{ transform:translate3d(-50%,-50%,0) scale(1.06) rotate(3deg);  opacity:1; filter:drop-shadow(0 10px 18px rgba(56,189,248,.14)); }
  100%{ transform:translate3d(-50%,-50%,0) scale(1) rotate(0deg);    opacity:1; filter:drop-shadow(0 0 0 rgba(56,189,248,0)); }
}
@keyframes itbSunSetDown{
  0%{ transform:translate3d(-50%,-50%,0) translateY(0)   scale(1);    opacity:1; filter:brightness(1.01); }
  64%{ transform:translate3d(-50%,-50%,0) translateY(78%) scale(.985);opacity:1; filter:brightness(1.00); }
  100%{ transform:translate3d(-50%,-50%,0) translateY(106%)scale(.97); opacity:0; filter:brightness(.99); }
}
@keyframes itbMoonRiseUp{
  0%{ transform:translate3d(-50%,-50%,0) translateY(106%) scale(.95); opacity:0; filter:brightness(.99); }
  50%{ transform:translate3d(-50%,-50%,0) translateY(106%) scale(.95); opacity:0; filter:brightness(.99); }
  82%{ transform:translate3d(-50%,-50%,0) translateY(-6%)  scale(1.05); opacity:1; filter:brightness(1.06); }
  100%{ transform:translate3d(-50%,-50%,0) translateY(0)    scale(1);   opacity:1; filter:brightness(1); }
}

#timePrefChips .chip.itb-ico-anim[data-time="Morning"] .chip-ico .itb-sun{
  animation: itbSunRiseMask 2200ms cubic-bezier(0.22,1,0.36,1) both;
}
#timePrefChips .chip.itb-ico-anim[data-time="Midday"] .chip-ico .itb-sun{
  animation: itbSunMidday 1500ms cubic-bezier(0.22,1,0.36,1) both;
}
#timePrefChips .chip.itb-ico-anim[data-time="Sunset"] .chip-ico .itb-sun{
  animation: itbSunSetDown 2400ms cubic-bezier(0.22,1,0.36,1) both;
}
#timePrefChips .chip.itb-ico-anim[data-time="Sunset"] .chip-ico .itb-moon{
  animation: itbMoonRiseUp 2550ms cubic-bezier(0.22,1,0.36,1) both;
}

/* Trip type segmented indicator: slightly smoother */
#tripTypeChips .itb-seg-indicator{
  transition: transform 560ms cubic-bezier(0.22,1,0.36,1), width 560ms cubic-bezier(0.22,1,0.36,1) !important;
}

/* Small type polish for chips */
.booking-wrap .chip,
.booking-wrap .sum-pill{
  font-variant-numeric: tabular-nums;
}
/* ============================
   Snorkeling level (Booking wizard)
============================ */
.itb-snorkel-level{
  margin-top:10px;
  padding-top:10px;
  border-top:0;
  max-height:1200px;
  opacity:1;
  transform:translateY(0);
  overflow:hidden;
  transition:
    max-height .48s cubic-bezier(.16,1,.30,1),
    opacity .32s ease,
    transform .48s cubic-bezier(.16,1,.30,1),
    margin-top .48s cubic-bezier(.16,1,.30,1),
    padding-top .48s cubic-bezier(.16,1,.30,1);
}
.itb-snorkel-level .itb-sub-label{
  opacity:.78;
  font-size:12px;
  letter-spacing:.02em;
}
.itb-snorkel-level.is-collapsed{
  max-height:0;
  opacity:0;
  transform:translateY(-6px);
  margin-top:0;
  padding-top:0;
  border-top:0;
  pointer-events:none;
}
#snorkelLevelChips{ margin-top:6px; }

/* Sub segmented controls (match Trip Type / Timing style) */
.itb-subseg{
  --itb-chip-h: 44px;
  position:relative;
  display:flex;
  align-items:stretch;
  gap:0;
  padding:4px;
  border-radius:999px;
  background:rgba(2,6,23,.06);
  overflow:hidden;
}
.itb-subseg::after{
  content:'';
  position:absolute;
  inset:0;
  border-radius:999px;
  pointer-events:none;
  opacity:.35;
  background:
    repeating-linear-gradient(90deg,
      rgba(2,6,23,.09) 0px,
      rgba(2,6,23,.09) 1px,
      transparent 1px,
      transparent 22px);
}
.itb-subseg .itb-subseg-indicator{
  position:absolute;
  top:4px; left:4px;
  height:var(--itb-chip-h);
  width:25%;
  border-radius:999px;
  background:rgba(255,255,255,.88);
  box-shadow:0 12px 28px rgba(2,6,23,.10);
  transform:translate3d(0,0,0);
  transition:transform .45s cubic-bezier(.16,1,.30,1);
  will-change:transform;
  z-index:0;
}
.itb-subseg .chip{
  position:relative;
  z-index:1;
  flex:1;
  height:var(--itb-chip-h);
  border:0;
  border-radius:999px;
  background:transparent;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:0 10px;
  font-weight:800;
  font-size:13px;
  color:rgba(2,6,23,.62);
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
  transition:transform .18s ease, color .22s ease;
}
.itb-subseg .chip:active{ transform:scale(.985); }
.itb-subseg .chip-ico{ font-size:16px; line-height:1; }
.itb-subseg .chip-txt{ line-height:1; }
.itb-subseg .chip.on,
.itb-subseg .chip[aria-checked="true"],
.itb-subseg .chip[aria-pressed="true"]{
  color:rgba(2,6,23,.92);
}
.itb-subseg .chip:active{ transform:scale(.99); }
.itb-subseg .chip:focus-visible{
  outline:2px solid rgba(59,130,246,.45);
  outline-offset:2px;
}
@media (prefers-reduced-motion: reduce){
  .itb-subseg .itb-subseg-indicator{ transition:none !important; }
}

#snorkelLevelChips .chip{ white-space:nowrap; }

/* Swim confidence (only when Snorkel is selected) */
.itb-swim-confidence{ margin-top:12px; padding-top:0; border-top:0; }
#swimConfidenceChips{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:10px;
  margin-top:6px;
}
#swimConfidenceChips.itb-card-chips .chip{ justify-content:center; padding:10px 12px; white-space:nowrap; }


/* ============================
   UX polish: Snorkel level + chip micro-interactions
============================ */
#snorkelLevelChips.itb-card-chips{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:10px;
}
#snorkelLevelChips.itb-card-chips .chip{
  justify-content:center;
  padding:10px 12px;
}

.itb-coach{
  margin-top:10px;
  padding:10px 12px;
  border-radius:16px;
  background: rgba(15,23,42,.035);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.66);
  font-size:13px;
  line-height:1.35;
  color: rgba(11,18,32,.86);
  opacity:0;
  transform: translateY(-6px);
  transition: opacity .32s ease, transform .48s cubic-bezier(.16,1,.30,1);
}
.itb-coach.is-on{
  opacity:1;
  transform: translateY(0);
}

@keyframes itbChipPop{
  0%{ transform: translateY(0) scale(1); }
  35%{ transform: translateY(-1px) scale(1.02); }
  100%{ transform: translateY(0) scale(1); }
}
@keyframes itbChipSheen{
  0%{ opacity:0; transform: translateX(-40%) translateY(0); }
  35%{ opacity:.22; }
  100%{ opacity:0; transform: translateX(55%) translateY(0); }
}

/* Subtle "selected" pop without changing layout */
.booking-wrap .chip{ overflow:hidden; }
.booking-wrap .chip.itb-press{ animation: itbChipPop 520ms cubic-bezier(.2,.9,.2,1) both; }
.booking-wrap .chip::after{
  content:"";
  position:absolute;
  inset:-2px;
  pointer-events:none;
  background: radial-gradient(120px 80px at 30% 20%, rgba(255,255,255,.55), rgba(255,255,255,0) 60%);
  opacity:0;
  transform: translateX(-35%);
}
.booking-wrap .chip.itb-press.on::after{ animation: itbChipSheen 760ms cubic-bezier(.2,.9,.2,1) both; }

/* Reduce motion: keep UX calm */
@media (prefers-reduced-motion: reduce){
  .itb-coach,
  .booking-wrap .chip,
  .itb-snorkel-level{
    transition:none !important;
    animation:none !important;
  }
}



/* ============================
   Experience (Step 2) – richer cards
============================ */
#expChips.itb-exp-grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap:10px;
}
#expChips.itb-exp-grid .chip{
  border-radius:18px !important;
  padding:12px 12px !important;
  align-items:flex-start !important;
  justify-content:flex-start !important;
  gap:10px !important;
  min-height:56px;
}
#expChips .chip-ico{ margin-top:1px; }
#expChips .chip-main{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  line-height:1.05;
  gap:3px;
}
#expChips .chip-sub{
  font-size:12px;
  font-weight:650;
  letter-spacing:.01em;
  opacity:.72;
}


/* Inline expander right at chip */
#expChips.itb-exp-grid .itb-exp-drawer{
  grid-column: 1 / -1;
  margin-top: -2px;
  padding: 0;
}
#expChips.itb-exp-grid .itb-exp-drawer.is-relocating{
  transition:none !important;
}

#expChips.itb-exp-grid .itb-exp-drawer.is-collapsed{
  /* keep in DOM so the open/close animation stays smooth */
  max-height:0;
  opacity:0;
  transform:translateY(-6px);
  padding-top:0;
  padding-bottom:0;
  pointer-events:none;
}
#expChips.itb-exp-grid .itb-exp-inline-card{
  background: rgba(2,6,23,.02);
  border-radius:18px;
  padding:12px 12px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.40);
  position:relative;
  overflow:hidden;
}
#expChips.itb-exp-grid .itb-exp-inline-card::before{
  content:"";
  position:absolute;
  top:-6px;
  left:18px;
  width:12px;
  height:12px;
  background: rgba(2,6,23,.02);
  transform: rotate(45deg);
  border-radius:3px;
}
#expChips.itb-exp-grid .itb-exp-inline-card .itb-exp-head{
  align-items:flex-start;
}
#expChips.itb-exp-grid .itb-exp-inline-card .itb-exp-more{
  background: rgba(2,6,23,.06);
}
#expChips.itb-exp-grid .itb-exp-inline-card .itb-exp-body{
  max-height:0;
  opacity:0;
  transform: translateY(-4px);
}
#expChips.itb-exp-grid .itb-exp-inline-card[data-open="1"] .itb-exp-body{
  max-height:320px;
  opacity:1;
  transform: translateY(0);
  margin-top:10px;
}
#expChips.itb-exp-grid .chip.itb-exp-chip.is-expanded{
  outline: 2px solid rgba(59,130,246,.22);
  outline-offset: 2px;
}

.itb-exp-preview{
  display:none;
}
.itb-exp-card{
  background: rgba(255,255,255,.70);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.40), 0 14px 26px rgba(2,6,23,.06);
  border-radius:18px;
  padding:12px 12px;
}
.itb-exp-head{
  display:flex;
  align-items:flex-start;
  gap:10px;
}
.itb-exp-ico{
  width:36px;
  height:36px;
  border-radius:14px;
  display:flex;
  align-items:center;
  justify-content:center;
  background: rgba(255,255,255,.68);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.45);
  flex:0 0 auto;
}
.itb-exp-title{
  font-weight:800;
  letter-spacing:.01em;
  margin-top:2px;
}
.itb-exp-sub{
  font-size:12px;
  font-weight:650;
  opacity:.72;
  margin-top:3px;
}
.itb-exp-meta{
  flex:1 1 auto;
  min-width:0;
}
.itb-exp-badges{
  margin-top:6px;
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}
.itb-exp-badge{
  font-size:11px;
  font-weight:750;
  letter-spacing:.02em;
  padding:6px 10px;
  border-radius:999px;
  background: rgba(2, 6, 23, .06);
}
.itb-exp-actions{
  margin-left:auto;
  flex:0 0 auto;
}
.itb-exp-more{
  appearance:none;
  border:0;
  background: rgba(2,6,23,.06);
  color: rgba(11,15,20,.92);
  font-weight:800;
  font-size:12px;
  padding:8px 12px;
  border-radius:999px;
  cursor:pointer;
  transition: transform .18s ease, background .18s ease;
}
.itb-exp-more:hover{ transform:translateY(-1px); }
.itb-exp-more:active{ transform:translateY(0); }

.itb-exp-body{
  margin-top:10px;
  overflow:hidden;
  contain: layout paint;
  will-change: max-height, transform, opacity;
  max-height:0;
  opacity:0;
  transform:translateY(-4px);
  transition:
    max-height .52s cubic-bezier(.16,1,.30,1),
    opacity .30s ease,
    transform .52s cubic-bezier(.16,1,.30,1);
}
.itb-exp-card[data-open="1"] .itb-exp-body{
  max-height:320px;
  opacity:1;
  transform:translateY(0);
}
.itb-exp-list{
  margin:0;
  padding:0 0 0 16px;
  opacity:.92;
}
.itb-exp-list li{
  margin:6px 0;
  line-height:1.35;
  font-weight:650;
}
.itb-exp-note{
  margin-top:8px;
  font-size:12px;
  font-weight:750;
  opacity:.78;
}

.itb-exp-hint{
  margin-top:8px;
}

/* Inline expander under the tapped chip (premium drawer) */
#expChips.itb-exp-grid .itb-exp-drawer{
  grid-column: 1 / -1;
  border-radius:18px;
  background: rgba(255,255,255,.72);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.40), 0 14px 26px rgba(2,6,23,.06);
  padding:12px 12px;
  position:relative;
  overflow:hidden;
  max-height:420px;
  opacity:1;
  transform:translateY(0);
  transition:
    max-height .52s cubic-bezier(.16,1,.30,1),
    opacity .30s ease,
    transform .52s cubic-bezier(.16,1,.30,1);
}
#expChips.itb-exp-grid .itb-exp-drawer.is-collapsed{
  max-height:0;
  opacity:0;
  transform:translateY(-6px);
  padding-top:0;
  padding-bottom:0;
  pointer-events:none;
}
#expChips.itb-exp-grid .itb-exp-drawer::before{
  content:"";
  position:absolute;
  top:0;
  left: var(--itb-drawer-arrow-left, 18px);
  width:10px;
  height:10px;
  transform: translate(-50%,-50%) rotate(45deg);
  background: rgba(255,255,255,.72);
  box-shadow: -1px -1px 0 rgba(2,6,23,.04);
}
#expChips.itb-exp-grid .itb-exp-drawer .itb-exp-head{
  margin:0;
}
#expChips.itb-exp-grid .itb-exp-drawer .itb-exp-ico{
  background: rgba(2,6,23,.04);
}
#expChips.itb-exp-grid .itb-exp-drawer .itb-exp-more{
  background: rgba(2,6,23,.06);
}
#expChips.itb-exp-grid .itb-exp-drawer .itb-exp-body{
  max-height:0;
  opacity:0;
  transform:translateY(-4px);
}
#expChips.itb-exp-grid .itb-exp-drawer[data-open="1"] .itb-exp-body{
  max-height:320px;
  opacity:1;
  transform:translateY(0);
}
#expChips.itb-exp-grid .itb-exp-chip.is-expanded{
  outline: 2px solid rgba(59,130,246,.18);
  outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce){
  #expChips.itb-exp-grid .itb-exp-drawer{ transition:none !important; }
}

@media (max-width: 420px){
  #expChips.itb-exp-grid{
    grid-template-columns: 1fr;
  }
}

@media (prefers-reduced-motion: reduce){
  .itb-exp-body, .itb-exp-card{
    transition:none !important;
  }
}


/* ============================
   Conditions banner (Booking wizard)
============================ */
.itb-conditions-banner{
  margin:10px 0 12px;
  padding:12px 12px;
  border-radius:18px;
  background:rgba(2,6,23,.03);
  backdrop-filter:saturate(1.2) blur(6px);
  -webkit-backdrop-filter:saturate(1.2) blur(6px);
  transform:translateY(0);
  opacity:1;
  transition:opacity .28s ease, transform .48s cubic-bezier(.16,1,.30,1);
}
.itb-conditions-banner.is-hidden{
  display:none;
}
.itb-cond-top{
  display:flex;
  align-items:flex-start;
  gap:10px;
}
.itb-cond-ico{
  width:34px;
  height:34px;
  border-radius:14px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(59,130,246,.10);
  flex:0 0 auto;
}
.itb-cond-text{ flex:1 1 auto; min-width:0; }
.itb-cond-title{
  font-weight:800;
  letter-spacing:-.01em;
  line-height:1.1;
}
.itb-cond-sub{
  margin-top:2px;
  opacity:.78;
  font-size:13px;
  line-height:1.3;
}
.itb-cond-more{
  flex:0 0 auto;
  border:0;
  background:rgba(2,6,23,.06);
  padding:8px 10px;
  border-radius:14px;
  font-weight:700;
  font-size:12px;
  cursor:pointer;
  transition:transform .18s ease, background .18s ease;
}
.itb-cond-more:hover{ transform:translateY(-1px); }
.itb-cond-more:active{ transform:translateY(0); }
.itb-cond-body{
  max-height:0;
  overflow:hidden;
  opacity:0;
  transform:translateY(-4px);
  transition:
    max-height .52s cubic-bezier(.16,1,.30,1),
    opacity .28s ease,
    transform .52s cubic-bezier(.16,1,.30,1);
}
.itb-conditions-banner[data-open="1"] .itb-cond-body{
  max-height:220px;
  opacity:1;
  transform:translateY(0);
  margin-top:10px;
}
.itb-cond-msg{
  font-size:13px;
  line-height:1.4;
  opacity:.92;
}
.itb-cond-upd{
  margin-top:8px;
  font-size:12px;
  opacity:.62;
}

/* level tints (soft, not alarming) */
.itb-conditions-banner[data-level="calm"]{
  background:rgba(59,130,246,.08);
}
.itb-conditions-banner[data-level="calm"] .itb-cond-ico{
  background:rgba(59,130,246,.12);
}
.itb-conditions-banner[data-level="moderate"]{
  background:rgba(245,158,11,.10);
}
.itb-conditions-banner[data-level="moderate"] .itb-cond-ico{
  background:rgba(245,158,11,.16);
}
.itb-conditions-banner[data-level="windy"]{
  background:rgba(239,68,68,.08);
}
.itb-conditions-banner[data-level="windy"] .itb-cond-ico{
  background:rgba(239,68,68,.12);
}

@media (prefers-reduced-motion: reduce){
  .itb-conditions-banner, .itb-cond-body, .itb-cond-more{
    transition:none !important;
  }
}


/* ============================
   Experience micro polish
============================ */
#expChips.itb-exp-grid .chip.on{
  background:linear-gradient(180deg, rgba(2,6,23,.02), rgba(2,6,23,.00));
}
#expChips.itb-exp-grid .chip.on::after{
  content:"";
  position:absolute;
  inset:0;
  border-radius:18px;
  pointer-events:none;
  background:radial-gradient(600px 120px at 20% 0%, rgba(255,255,255,.40), rgba(255,255,255,0));
  opacity:.55;
}
.itb-exp-card{
  background:rgba(2,6,23,.02);
}

.itb-exp-kv{
  display:grid;
  grid-template-columns: 1fr;
  gap:6px;
  margin-top:8px;
}
.itb-exp-k{
  display:flex;
  gap:10px;
  align-items:baseline;
  font-size:12px;
  line-height:1.25;
}
.itb-exp-k span{
  opacity:.62;
  min-width:72px;
}
.itb-exp-k b{
  font-weight:750;
  letter-spacing:-.01em;
  opacity:.95;
}


/* ============================
   Snorkel controls in Experience inline drawer (premium)
============================ */
.itb-snorkel-head{
  display:flex;
  flex-direction:column;
  gap:4px;
}
.itb-snorkel-mini{
  font-size:12px;
  font-weight:650;
  letter-spacing:.01em;
  opacity:.72;
  line-height:1.25;
}
.itb-snorkel-status{
  margin-top:8px;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.itb-pill{
  font-size:11px;
  font-weight:800;
  letter-spacing:.02em;
  padding:6px 10px;
  border-radius:999px;
  background: rgba(2,6,23,.06);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.45);
  opacity:.92;
}


.itb-card-chips{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:10px;
  margin-top:6px;
}
.itb-card-chip{
  border-radius:18px !important;
  padding:12px 12px !important;
  min-height:58px;
  align-items:flex-start !important;
  justify-content:flex-start !important;
  gap:10px !important;
  background: rgba(255,255,255,.74);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.52);
  transition: transform .18s ease, background .18s ease, box-shadow .18s ease;
  will-change: transform;
}
.itb-card-chip:hover{ transform: translateY(-1px); }
.itb-card-chip:active{ transform: translateY(0); }
.itb-card-chip.on{
  background: linear-gradient(180deg, rgba(59,130,246,.10), rgba(255,255,255,.72));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.60), 0 10px 18px rgba(2,6,23,.06);
}
.itb-card-chip .chip-ico{ margin-top:1px; }
.itb-card-chip .chip-main{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  line-height:1.05;
  gap:3px;
}
.itb-card-chip .chip-sub{
  font-size:12px;
  font-weight:650;
  letter-spacing:.01em;
  opacity:.72;
}

#itbExpDrawer .itb-snorkel-level{
  margin-top:10px;
  padding-top:0;
  border-top:0;
  max-height:none;
}
#itbExpDrawer .itb-snorkel-level.is-collapsed{
  max-height:0;
}
#itbExpDrawer .itb-swim-confidence{
  margin-top:12px;
  padding-top:0;
  border-top:0;
}
#itbExpDrawer .itb-exp-snorkel-slot{ margin-top:10px; }

#expChips.itb-exp-grid .itb-exp-drawer{
  max-height:860px;
}

#snorkelLevelChips .itb-card-chip,
#swimConfidenceChips .itb-card-chip{
  justify-content:flex-start !important;
  padding:12px 12px !important;
}

/* ============================
   Experience as app drawers (inactive → active → details)
   v1.3.29
============================ */
#expChips.itb-exp-list{
  display:flex;
  flex-direction:column;
  gap:10px;
}
#expChips.itb-exp-list .itb-exp-item{
  border-radius:18px;
  background:rgba(255,255,255,.72);
  border:0;
  box-shadow:0 10px 28px rgba(2,6,23,.06);
  overflow:hidden;
  transform:translateZ(0);
  contain:layout paint;
  transition:
    background .28s ease,
    border-color .28s ease,
    box-shadow .28s ease,
    transform .28s ease;
}
#expChips.itb-exp-list .itb-exp-item.on{
  background:rgba(255,255,255,.86);
  border-color:rgba(59,130,246,.18);
  box-shadow:0 14px 36px rgba(2,6,23,.08);
}
#expChips.itb-exp-list .itb-exp-item.is-open{
  transform:translateY(-1px);
}

#expChips.itb-exp-list .itb-exp-headbtn{
  width:100%;
  display:flex;
  align-items:center;
  gap:12px;
  padding:14px 14px;
  border:0;
  background:transparent;
  text-align:left;
  cursor:pointer;
}
#expChips.itb-exp-list .itb-exp-ico{
  width:40px;
  height:40px;
  border-radius:14px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(59,130,246,.10);
  font-size:18px;
}
#expChips.itb-exp-list .itb-exp-headtext{ display:flex; flex-direction:column; min-width:0; }
#expChips.itb-exp-list .itb-exp-title{ font-weight:700; font-size:16px; line-height:1.1; }
#expChips.itb-exp-list .itb-exp-sub{ opacity:.72; font-size:12px; margin-top:2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
#expChips.itb-exp-list .itb-exp-right{ margin-left:auto; display:flex; align-items:center; gap:10px; }
#expChips.itb-exp-list .itb-exp-pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height:30px;
  padding:0 12px;
  border-radius:999px;
  font-size:12px;
  font-weight:700;
  letter-spacing:.01em;
  background:rgba(2,6,23,.06);
  color:rgba(2,6,23,.72);
  transition:transform .18s ease, background .18s ease, color .18s ease;
}
#expChips.itb-exp-list .itb-exp-item.on .itb-exp-pill{
  background:rgba(59,130,246,.12);
  color:rgba(37,99,235,.95);
}
#expChips.itb-exp-list .itb-exp-chev{
  width:28px;
  height:28px;
  border-radius:999px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(2,6,23,.05);
  color:rgba(2,6,23,.55);
  transform:translateX(0) rotate(0deg);
  transition:transform .28s cubic-bezier(.16,1,.30,1);
}
#expChips.itb-exp-list .itb-exp-item.is-open .itb-exp-chev{
  transform:translateX(0) rotate(90deg);
}

#expChips.itb-exp-list .itb-exp-drawer{
  max-height:0;
  opacity:0;
  transform:translateY(-6px);
  overflow:hidden;
  pointer-events:none;
  transition:
    max-height .52s cubic-bezier(.16,1,.30,1),
    opacity .24s ease,
    transform .52s cubic-bezier(.16,1,.30,1);
  content-visibility:auto;
}
#expChips.itb-exp-list .itb-exp-item.is-open .itb-exp-drawer{
  max-height:1200px;
  opacity:1;
  transform:translateY(0);
  pointer-events:auto;
}
#expChips.itb-exp-list .itb-exp-drawer-inner{
  padding:0 14px 14px 14px;
}
#expChips.itb-exp-list .itb-exp-badges{ display:flex; flex-wrap:wrap; gap:8px; margin:2px 0 10px; }
#expChips.itb-exp-list .itb-exp-badge{
  display:inline-flex;
  align-items:center;
  height:26px;
  padding:0 10px;
  border-radius:999px;
  font-size:12px;
  background:rgba(59,130,246,.10);
  color:rgba(37,99,235,.95);
  font-weight:700;
}
#expChips.itb-exp-list .itb-exp-kv{ display:grid; gap:8px; margin:0 0 12px; }
#expChips.itb-exp-list .itb-exp-k{ display:flex; gap:10px; align-items:baseline; }
#expChips.itb-exp-list .itb-exp-k span{ width:82px; opacity:.62; font-size:12px; }
#expChips.itb-exp-list .itb-exp-k b{ font-size:14px; font-weight:700; }

#expChips.itb-exp-list .itb-exp-morebtn{
  width:100%;
  height:44px;
  border-radius:14px;
  border:0;
  background:rgba(255,255,255,.75);
  font-weight:800;
  letter-spacing:.01em;
  cursor:pointer;
  transition:transform .18s ease, background .18s ease;
}
#expChips.itb-exp-list .itb-exp-morebtn:active{ transform:scale(.99); }
#expChips.itb-exp-list .itb-exp-morebody{
  max-height:0;
  opacity:0;
  transform:translateY(-6px);
  overflow:hidden;
  transition:
    max-height .52s cubic-bezier(.16,1,.30,1),
    opacity .22s ease,
    transform .52s cubic-bezier(.16,1,.30,1);
}
#expChips.itb-exp-list .itb-exp-item[data-more="1"] .itb-exp-morebody{
  max-height:800px;
  opacity:1;
  transform:translateY(0);
}
#expChips.itb-exp-list .itb-exp-list{ margin:10px 0 0; padding-left:18px; opacity:.88; }
#expChips.itb-exp-list .itb-exp-list li{ margin:8px 0; }

#expChips.itb-exp-list .itb-exp-note{
  margin:8px 0 12px;
  padding:10px 12px;
  border-radius:14px;
  background:rgba(2,6,23,.04);
  font-size:12px;
  opacity:.88;
}

#expChips.itb-exp-list .itb-exp-remove{
  width:100%;
  height:44px;
  border-radius:14px;
  border:0;
  background:rgba(2,6,23,.06);
  color:rgba(2,6,23,.72);
  font-weight:800;
  margin-top:10px;
  cursor:pointer;
}

/* Make snorkel controls feel like part of the drawer */
#expChips.itb-exp-list .itb-snorkel-level{
  margin-top:10px;
  padding-top:0;
  border-top:0;
}

@media (prefers-reduced-motion: reduce){
  #expChips.itb-exp-list .itb-exp-item,
  #expChips.itb-exp-list .itb-exp-chev,
  #expChips.itb-exp-list .itb-exp-drawer,
  #expChips.itb-exp-list .itb-exp-morebody{
    transition:none !important;
  }
  #expChips.itb-exp-list .itb-exp-caret{ transition:none !important; animation:none !important; }
}

/* ============================
   UX REFINE v1.3.31 (app-like drawers + segmented)
   - remove Added pill + circle chevron
   - better segmented controls (match Timing)
   - stagger fade-up on drawer expansion
============================ */

/* Experience header right side (check + caret, no circles) */
#expChips.itb-exp-list .itb-exp-right{ margin-left:auto; display:flex; align-items:center; gap:10px; }

/* Native app-like press feedback on the row */
#expChips.itb-exp-list .itb-exp-headbtn{
  position:relative;
  -webkit-tap-highlight-color:transparent;
}
#expChips.itb-exp-list .itb-exp-headbtn::before{
  content:"";
  position:absolute;
  left:8px;
  right:8px;
  top:6px;
  bottom:6px;
  border-radius:16px;
  background:rgba(2,6,23,.045);
  opacity:0;
  transform:scale(.992);
  transition:opacity .14s ease, transform .20s cubic-bezier(.16,1,.30,1);
}
#expChips.itb-exp-list .itb-exp-headbtn > *{ position:relative; z-index:1; }
#expChips.itb-exp-list .itb-exp-item.is-pressing{ transform:translateY(-1px) scale(.995); }
#expChips.itb-exp-list .itb-exp-item.is-pressing .itb-exp-headbtn::before{ opacity:1; transform:scale(1); }
#expChips.itb-exp-list .itb-exp-check{
  font-size:14px;
  font-weight:900;
  color:rgba(37,99,235,.96);
  opacity:0;
  transform:scale(.92);
  transition:opacity .22s ease, transform .26s cubic-bezier(.16,1,.30,1);
}
#expChips.itb-exp-list .itb-exp-item.on .itb-exp-check{ opacity:1; transform:scale(1); }
#expChips.itb-exp-list .itb-exp-caret{
  width:18px; height:18px;
  color:rgba(2,6,23,.45);
  transform:translate3d(0,0,0) rotate(0deg);
  transition:transform .32s cubic-bezier(.16,1,.30,1), color .22s ease;
}
#expChips.itb-exp-list .itb-exp-item.is-open .itb-exp-caret{ transform:translate3d(0,0,0) rotate(90deg); color:rgba(2,6,23,.62); }

/* Caret spring animation (more native) */
@keyframes itbCaretSpringIn{
  0%{ transform:translate3d(0,0,0) rotate(0deg); }
  60%{ transform:translate3d(0,0,0) rotate(104deg); }
  82%{ transform:translate3d(0,0,0) rotate(86deg); }
  100%{ transform:translate3d(0,0,0) rotate(90deg); }
}
@keyframes itbCaretSpringOut{
  0%{ transform:translate3d(0,0,0) rotate(90deg); }
  55%{ transform:translate3d(0,0,0) rotate(-10deg); }
  100%{ transform:translate3d(0,0,0) rotate(0deg); }
}
#expChips.itb-exp-list .itb-exp-item.is-opening .itb-exp-caret,
#expChips.itb-exp-list .itb-exp-item.is-closing .itb-exp-caret{ transition:none !important; }
#expChips.itb-exp-list .itb-exp-item.is-opening .itb-exp-caret{ animation:itbCaretSpringIn .46s cubic-bezier(.16,1,.30,1) both; }
#expChips.itb-exp-list .itb-exp-item.is-closing .itb-exp-caret{ animation:itbCaretSpringOut .38s cubic-bezier(.16,1,.30,1) both; }

/* Drawer stagger: fade-up children when opening */
@keyframes itbFadeUpStagger{
  from{ opacity:0; transform:translate3d(0,10px,0); }
  to{ opacity:1; transform:translate3d(0,0,0); }
}
#expChips.itb-exp-list .itb-exp-item.is-open .itb-stagger{
  animation: itbFadeUpStagger .58s cubic-bezier(.16,1,.30,1) both;
  animation-delay: var(--d, 0ms);
}
#expChips.itb-exp-list .itb-exp-item.is-open .itb-exp-badges{ --d: 40ms; }
#expChips.itb-exp-list .itb-exp-item.is-open .itb-exp-kv{ --d: 90ms; }
#expChips.itb-exp-list .itb-exp-item.is-open .itb-exp-snorkel-slot{ --d: 140ms; }
#expChips.itb-exp-list .itb-exp-item.is-open .itb-exp-note{ --d: 190ms; }
#expChips.itb-exp-list .itb-exp-item.is-open .itb-exp-morebtn{ --d: 240ms; }
#expChips.itb-exp-list .itb-exp-item.is-open .itb-exp-remove{ --d: 320ms; }

/* Segmented controls (Snorkel level / Swim confidence) — match Timing bar */
.itb-subseg{
  --itb-chip-h: 44px;
  position:relative;
  display:flex;
  align-items:stretch;
  gap:0;
  padding:4px;
  border-radius:999px;
  background: rgba(15,23,42,.06);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.70), 0 10px 22px rgba(2,6,23,.05);
  overflow:hidden;
  isolation:isolate;
}
.itb-subseg::after{ content:none !important; }
.itb-subseg .itb-subseg-indicator{
  position:absolute;
  top:4px;
  left:4px;
  height: calc(100% - 8px);
  border-radius:999px;
  background: linear-gradient(180deg, rgba(17,24,39,.78), rgba(15,23,42,.88));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.10), 0 14px 28px rgba(2,6,23,.14);
  transform: translate3d(0,0,0);
  transition: transform 650ms cubic-bezier(.2,.8,.2,1), width 650ms cubic-bezier(.2,.8,.2,1);
  will-change: transform,width;
  z-index:0;
}
.itb-subseg .chip{
  position:relative;
  z-index:1;
  flex:1 1 0;
  min-width:0;
  height:var(--itb-chip-h);
  border:0;
  border-radius:999px;
  background:transparent !important;
  box-shadow:none !important;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:0;
  padding:0 8px;
  font-weight:750;
  font-size:clamp(12px, 1.4vw, 13px);
  letter-spacing:.01em;
  color:rgba(2,6,23,.62);
  -webkit-tap-highlight-color:transparent;
  transition:transform .18s ease, color .22s ease;
}
.itb-subseg .chip-txt{
  display:block;
  max-width:100%;
  line-height:1;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

/* iPhone readability for 4-option segmented controls (Snorkel/Swim): allow 2-line labels */
#snorkelLevelChips.itb-subseg,
#swimConfidenceChips.itb-subseg{
  --itb-chip-h: 52px;
}
#snorkelLevelChips.itb-subseg .chip,
#swimConfidenceChips.itb-subseg .chip{
  padding: 0 6px;
  font-size: 12px;
}
#snorkelLevelChips.itb-subseg .chip-txt,
#swimConfidenceChips.itb-subseg .chip-txt{
  white-space: normal;
  line-height: 1.05;
  text-align: center;
  text-overflow: clip;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.itb-subseg .chip.on,
.itb-subseg .chip[aria-checked="true"],
.itb-subseg .chip[aria-pressed="true"]{
  color:rgba(255,255,255,.98);
}

/* Text-only segmented for snorkel + swim (more room) */
#snorkelLevelChips .chip-ico,
#swimConfidenceChips .chip-ico{ display:none !important; }

/* Swim confidence must be segmented, not grid */
#swimConfidenceChips{ display:flex !important; grid-template-columns:unset !important; gap:0 !important; }

@media (prefers-reduced-motion: reduce){
  #expChips.itb-exp-list .itb-exp-item.is-open .itb-stagger{ animation:none !important; }
  .itb-subseg .itb-subseg-indicator{ transition:none !important; }
}

/* ============================
   UX UPGRADE v1.3.33 — app-like drawers + cleaner segmented
   - remove Added pill + circle chevron everywhere
   - hide checkmark (cleaner header)
   - sub segmented indicator aligns to real chip width (JS)
   - smoother staged expansion, no borders
============================ */

/* Safety: if any legacy pill/chevron exists, hide it */
#expChips .itb-exp-pill,
#expChips .itb-exp-chev{ display:none !important; }

/* Cleaner header: no checkmark */
#expChips.itb-exp-list .itb-exp-check{ display:none !important; }

/* Slightly tighter head row spacing (more app-like) */
#expChips.itb-exp-list .itb-exp-headbtn{ padding:12px 14px; }
#expChips.itb-exp-list .itb-exp-right{ gap:8px; }
#expChips.itb-exp-list .itb-exp-caret{ width:17px; height:17px; }

/* Drawer open/close feels smoother (fade + slide) */
#expChips.itb-exp-list .itb-exp-drawer{
  transition:
    max-height .58s cubic-bezier(.16,1,.30,1),
    opacity .30s ease,
    transform .58s cubic-bezier(.16,1,.30,1);
}

/* Segmented controls: cleaner, no shadow/border, better tap targets */
.itb-subseg{
  --itb-chip-h: 40px;
  padding:3px;
  border:0 !important;
  box-shadow:none !important;
  background: rgba(2,6,23,.045);
  touch-action: manipulation;
}
.itb-subseg .itb-subseg-indicator{
  top:3px;
  left:3px;
  height: calc(100% - 6px);
  border-radius:999px;
  background: linear-gradient(180deg, rgba(17,24,39,.78), rgba(15,23,42,.90));
  box-shadow:none !important;
}
.itb-subseg .chip{
  height: var(--itb-chip-h);
  padding:0 6px;
  font-weight:850;
  font-size:12px;
  letter-spacing:.01em;
}

/* Ensure both pickers are identical segmented rows */
#snorkelLevelChips,
#swimConfidenceChips{
  display:flex !important;
  gap:0 !important;
}

/* Coach boxes: nicer, calmer, no border */
.itb-coach{
  border:0 !important;
  box-shadow:none !important;
  background: rgba(2,6,23,.035);
}

/* Status pills: make them lighter + less "disabled" looking */
.itb-pill{
  background: rgba(59,130,246,.08);
  color: rgba(37,99,235,.95);
  box-shadow:none !important;
}


/* ============================
   UX UPGRADE v1.3.35 — Snorkel level + Swim confidence segmented
   - Remove “Not sure” (3 options each)
   - Add compact icons + improve readability
   - Keep 3 chips perfectly filling the pill (no gaps)
============================ */
#snorkelLevelChips.itb-subseg,
#swimConfidenceChips.itb-subseg{
  --itb-chip-h: 46px;
}

#snorkelLevelChips.itb-subseg .chip,
#swimConfidenceChips.itb-subseg .chip{
  gap: 6px !important;
  padding: 0 10px !important;
  font-size: 13px !important;
  font-weight: 850 !important;
}

#snorkelLevelChips .chip-ico,
#swimConfidenceChips .chip-ico{
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  color: currentColor;
}
#snorkelLevelChips .chip-ico svg,
#swimConfidenceChips .chip-ico svg{
  width: 18px;
  height: 18px;
  display: block;
}

#snorkelLevelChips .chip-txt,
#swimConfidenceChips .chip-txt{
  white-space: nowrap !important;
  -webkit-line-clamp: unset !important;
  display: block !important;
  line-height: 1 !important;
}

@media (max-width: 360px){
  #snorkelLevelChips.itb-subseg .chip,
  #swimConfidenceChips.itb-subseg .chip{
    font-size: 12px !important;
    padding: 0 8px !important;
  }
}

@keyframes itbSubIcoBob{
  0%{ transform: translate3d(0,0,0) scale(1); }
  42%{ transform: translate3d(0,-1px,0) scale(1.05); }
  100%{ transform: translate3d(0,0,0) scale(1); }
}
#snorkelLevelChips .chip.itb-ico-anim .chip-ico,
#swimConfidenceChips .chip.itb-ico-anim .chip-ico{
  animation: itbSubIcoBob 1400ms cubic-bezier(.2,.8,.2,1) both;
}
