
.tts-compact {
  --wine:#300505;
  --rust:#AA5432;
  --gold:#B98532;
  --gold-light:#D7B977;
  --ivory:#FFFDF7;
  --cream:#F8F1E6;
  --sand:#EADBC5;
  --ink:#171311;
  --brown:#4C3C35;
  --muted:#75645C;
  --line:rgba(55,38,29,.13);

  width:100%;
  max-width:100%;
  margin:0;
  overflow:hidden;
  border:1px solid rgba(65,43,31,.15);
  border-radius:14px;
  background:
    radial-gradient(circle at 100% 0,rgba(185,133,50,.055),transparent 25%),
    var(--ivory);
  box-shadow:0 22px 48px rgba(45,28,20,.11);
  isolation:isolate;
  contain:layout paint style;
  box-sizing:border-box;
}

.tts-compact,
.tts-compact * {
  box-sizing:border-box;
}

.tts-compact img,
.tts-compact svg {
  max-width:100%;
}

.tts-compact button {
  font:inherit;
}

.tts-compact h1,
.tts-compact h2,
.tts-compact h3,
.tts-compact p {
  margin-top:0;
}

/* =========================================================
   HERO — CINEMATIC, LIGHTER, PLAYFUL LINE ART
========================================================= */
.tts-compact .tts-hero {
  position:relative;
  height:clamp(390px,34vw,470px);
  overflow:hidden;
  background:#15110e;
}

.tts-compact .tts-hero-media,
.tts-compact .tts-hero-slide {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
}

.tts-compact .tts-hero-slide {
  display:block;
  object-fit:cover;
  object-position:center 55%;
  opacity:0;
  transition:
    opacity 1.25s ease,
    transform 6.2s cubic-bezier(.22,.61,.36,1),
    filter 1.25s ease;
  will-change:opacity,transform;
}

.tts-compact .tts-hero-slide.is-zoom-in {
  transform:scale(1.01);
}

.tts-compact .tts-hero-slide.is-zoom-out {
  transform:scale(1.075);
}

.tts-compact .tts-hero-slide.is-active {
  opacity:1;
  filter:saturate(1.04) contrast(1.02);
}

.tts-compact .tts-hero-slide.is-zoom-in.is-active {
  transform:scale(1.105) translate3d(-1.2%, -0.8%, 0);
}

.tts-compact .tts-hero-slide.is-zoom-out.is-active {
  transform:scale(1.005) translate3d(1.2%, 0.7%, 0);
}

.tts-compact.is-effects-active .tts-hero-slide.is-active {
  animation:ttsHeroBreath 6.2s ease-in-out infinite alternate;
}

.tts-compact .tts-hero-shade {
  position:absolute;
  inset:0;
  z-index:1;
  background:
    linear-gradient(90deg,rgba(11,9,8,.73) 0%,rgba(18,14,11,.42) 45%,rgba(8,7,6,.03) 80%),
    linear-gradient(180deg,rgba(0,0,0,.01),rgba(0,0,0,.28));
}

.tts-compact .tts-hero::before,
.tts-compact .tts-hero::after {
  content:"";
  position:absolute;
  z-index:2;
  border-radius:50%;
  pointer-events:none;
  mix-blend-mode:screen;
}

.tts-compact .tts-hero::before {
  right:16%;
  top:12%;
  width:170px;
  height:170px;
  background:radial-gradient(circle,rgba(221,187,116,.22),rgba(221,187,116,0) 70%);
}

.tts-compact .tts-hero::after {
  right:4%;
  bottom:5%;
  width:250px;
  height:120px;
  border-radius:50%;
  background:radial-gradient(ellipse,rgba(255,226,166,.16),rgba(255,226,166,0) 72%);
}

.tts-compact.is-effects-active .tts-hero::before {
  animation:ttsAmbientOrbOne 6.8s ease-in-out infinite;
}

.tts-compact.is-effects-active .tts-hero::after {
  animation:ttsAmbientOrbTwo 8.2s ease-in-out infinite;
}











.tts-compact.is-effects-active .tts-hero h1 {
  animation:ttsTitleSheen 4.8s ease-in-out infinite;
}

.tts-compact .tts-live-particles {
  position:absolute;
  inset:0;
  z-index:2;
  overflow:hidden;
  pointer-events:none;
}

.tts-compact .tts-live-particles i {
  position:absolute;
  bottom:-18px;
  width:5px;
  height:5px;
  border-radius:50%;
  background:rgba(240,207,139,.80);
  box-shadow:0 0 12px rgba(240,207,139,.62);
  opacity:0;
}

.tts-compact .tts-live-particles i:nth-child(1) {left:55%;animation-delay:0s}
.tts-compact .tts-live-particles i:nth-child(2) {left:63%;animation-delay:1.1s}
.tts-compact .tts-live-particles i:nth-child(3) {left:71%;animation-delay:2.2s}
.tts-compact .tts-live-particles i:nth-child(4) {left:79%;animation-delay:3.1s}
.tts-compact .tts-live-particles i:nth-child(5) {left:87%;animation-delay:4s}
.tts-compact .tts-live-particles i:nth-child(6) {left:67%;animation-delay:4.8s}
.tts-compact .tts-live-particles i:nth-child(7) {left:83%;animation-delay:5.6s}

.tts-compact.is-effects-active .tts-live-particles i {
  animation-name:ttsParticleRise;
  animation-duration:6.8s;
  animation-timing-function:linear;
  animation-iteration-count:infinite;
}

.tts-compact .tts-hero-copy {
  position:relative;
  z-index:3;
  width:min(700px,68%);
  min-width:0;
  padding:72px 68px 58px;
  color:#fff;
}

.tts-compact .tts-kicker {
  display:flex;
  align-items:center;
  gap:11px;
  margin-bottom:14px;
  color:var(--gold-light);
  font-family:"Montserrat",sans-serif;
  font-size:10px;
  font-weight:600;
  line-height:1.35;
  letter-spacing:1.6px;
  text-transform:uppercase;
}

.tts-compact .tts-kicker i {
  flex:0 0 36px;
  height:1px;
  background:linear-gradient(90deg,var(--gold-light),transparent);
}

.tts-compact .tts-hero h1 {
  max-width:650px;
  margin:0 0 11px;
  color:transparent;
  font-family:"Expletus Sans",sans-serif;
  font-size:clamp(50px,5.5vw,73px);
  font-weight:500;
  line-height:.98;
  letter-spacing:-.035em;
  background:
    linear-gradient(
      100deg,
      #fff 0%,
      #fff 35%,
      #F0D08A 47%,
      #fff 59%,
      #fff 100%
    );
  background-size:260% 100%;
  -webkit-background-clip:text;
  background-clip:text;
  text-shadow:0 8px 25px rgba(0,0,0,.24);
  overflow-wrap:anywhere;
}

.tts-compact .tts-hero-copy > p {
  margin-bottom:21px;
  color:rgba(255,249,238,.90);
  font-family:"Montserrat",sans-serif;
  font-size:16px;
  line-height:1.5;
}

.tts-compact .tts-hero-meta {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:10px;
  color:rgba(255,248,233,.84);
  font-family:"Montserrat",sans-serif;
  font-size:10px;
  font-weight:600;
  letter-spacing:.58px;
  text-transform:uppercase;
}

.tts-compact .tts-hero-meta i {
  width:4px;
  height:4px;
  border-radius:50%;
  background:var(--gold-light);
}

.tts-compact .tts-enquire {
  position:relative;
  display:inline-flex;
  overflow:hidden;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:39px;
  padding:9px 17px;
  border:1px solid rgba(255,255,255,.30);
  border-radius:7px;
  background:#0A0908;
  color:#fff;
  font-family:"Montserrat",sans-serif;
  font-size:10px;
  font-weight:600;
  line-height:1.2;
  letter-spacing:.72px;
  text-transform:uppercase;
  cursor:pointer;
  transition:background .22s ease,transform .22s ease;
  white-space:nowrap;
}

.tts-compact .tts-hero > .tts-enquire {
  position:absolute;
  right:27px;
  bottom:23px;
  z-index:4;
}

.tts-compact .tts-enquire:hover,
.tts-compact .tts-enquire:focus-visible {
  background:var(--rust);
  transform:translateY(-2px);
}

.tts-compact .tts-enquire::after {
  content:"";
  position:absolute;
  top:-60%;
  bottom:-60%;
  left:-50%;
  width:34%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.55),transparent);
  transform:skewX(-18deg);
  pointer-events:none;
}

.tts-compact.is-effects-active .tts-enquire::after {
  animation:ttsButtonSheen 4.2s ease-in-out infinite;
}

.tts-compact .tts-enquire svg {
  position:relative;
  z-index:1;
  width:15px;
  height:15px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.tts-compact .tts-hero-dots {
  position:absolute;
  left:68px;
  bottom:27px;
  z-index:4;
  display:flex;
  align-items:center;
  gap:8px;
}

.tts-compact .tts-hero-dots button {
  width:6px;
  height:6px;
  padding:0;
  border:0;
  border-radius:50%;
  background:rgba(255,255,255,.47);
  cursor:pointer;
  transition:transform .22s ease,background .22s ease;
}

.tts-compact .tts-hero-dots button.is-active {
  background:var(--gold-light);
  transform:scale(1.55);
}

/* =========================================================
   ROUTE — IVORY, GOLDEN SUTRA THREAD, NO RED BLOCK
========================================================= */
.tts-compact .tts-route-wrap {
  position:relative;
  padding:25px 24px 27px;
  overflow:hidden;
  border-bottom:1px solid var(--line);
  background:
    linear-gradient(135deg,rgba(255,255,255,.70),rgba(248,241,230,.90)),
    var(--cream);
}

.tts-compact .tts-route-wrap::after {
  content:"";
  position:absolute;
  top:0;
  left:-18%;
  width:18%;
  height:100%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.78),transparent);
  transform:skewX(-18deg);
  animation:ttsRouteGlow 9s ease-in-out infinite;
  pointer-events:none;
}

.tts-compact .tts-route-heading {
  position:relative;
  z-index:2;
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:20px;
  max-width:1160px;
  margin:0 auto 21px;
}

.tts-compact .tts-route-heading span {
  display:block;
  margin-bottom:5px;
  color:var(--rust);
  font-family:"Montserrat",sans-serif;
  font-size:9px;
  font-weight:700;
  letter-spacing:1.45px;
  text-transform:uppercase;
}

.tts-compact .tts-route-heading strong {
  color:var(--ink);
  font-family:"Expletus Sans",sans-serif;
  font-size:22px;
  font-weight:500;
  line-height:1.25;
}

.tts-compact .tts-route-link-hint {
  position:relative;
  z-index:3;
  display:block;
  width:100%;
  max-width:1160px;
  margin:7px auto 0;
  padding:0 2px;
  overflow:visible;
  color:rgba(117,100,92,.88);
  font-family:"Montserrat",sans-serif;
  font-size:clamp(7.5px,1vw,8.5px);
  font-weight:500;
  line-height:1.35;
  letter-spacing:.34px;
  text-align:right;
  white-space:nowrap;
}
.tts-compact .tts-route-viewport {
  position:relative;
  z-index:2;
  max-width:1160px;
  margin:0 auto;
}

.tts-compact .tts-route-scroll {
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:repeat(var(--tts-stop-count,9),minmax(108px,1fr));
  width:100%;
  margin:0;
  padding:13px 0 16px;
  scroll-behavior:auto;
  overscroll-behavior-x:contain;
}

.tts-compact.tts-many-stops .tts-route-scroll {
  display:flex;
  overflow-x:auto;
  overflow-y:hidden;
  scrollbar-width:none;
}

.tts-compact.tts-many-stops .tts-route-scroll::-webkit-scrollbar {
  display:none;
}

.tts-compact.tts-many-stops .tts-route-stop {
  flex:0 0 116px;
  min-width:116px;
}

.tts-compact.tts-many-stops .tts-route-line {
  left:49px;
  right:auto;
  width:calc(var(--tts-stop-count,9) * 116px - 98px);
}

.tts-compact .tts-route-edge {
  pointer-events:none;
  opacity:0;
  transition:opacity .28s ease,transform .28s ease;
}

.tts-compact .tts-route-edge {
  position:absolute;
  top:18px;
  bottom:auto;
  z-index:5;
  width:58px;
  height:36px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:2px;
}

.tts-compact .tts-route-edge-left {
  left:0;
  background:linear-gradient(
    90deg,
    rgba(250,246,238,.98),
    rgba(250,246,238,.74) 54%,
    transparent
  );
  transform:translateX(-5px);
}

.tts-compact .tts-route-edge-right {
  right:0;
  background:linear-gradient(
    270deg,
    rgba(250,246,238,.98),
    rgba(250,246,238,.74) 54%,
    transparent
  );
  transform:translateX(5px);
}

.tts-compact .tts-route-edge i {
  display:block;
  width:7px;
  height:7px;
  border-top:1px solid var(--gold);
  border-right:1px solid var(--gold);
}

.tts-compact .tts-route-edge-left i {
  transform:rotate(-135deg);
}

.tts-compact .tts-route-edge-right i {
  transform:rotate(45deg);
}

.tts-compact .tts-route-wrap.is-route-scrollable:not(.is-route-at-end) .tts-route-edge-right,
.tts-compact .tts-route-wrap.is-route-scrollable:not(.is-route-at-start) .tts-route-edge-left {
  opacity:1;
  transform:translateX(0);
}

.tts-compact .tts-route-wrap.is-route-scrollable:not(.is-route-at-end) .tts-route-edge-right i {
  animation:ttsRouteCueRight 1.55s ease-in-out infinite;
}

.tts-compact .tts-route-wrap.is-route-scrollable:not(.is-route-at-start) .tts-route-edge-left i {
  animation:ttsRouteCueLeft 1.55s ease-in-out infinite;
}

.tts-compact .tts-route-edge i:nth-child(2) {
  animation-delay:.14s!important;
}

.tts-compact .tts-day-rail-viewport {
  position:relative;
  width:100%;
}

.tts-compact .tts-day-edge {
  position:absolute;
  top:0;
  bottom:1px;
  z-index:7;
  width:52px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:2px;
  pointer-events:none;
  opacity:0;
  transition:opacity .28s ease,transform .28s ease;
}

.tts-compact .tts-day-edge-left {
  left:0;
  background:linear-gradient(
    90deg,
    rgba(250,246,238,.98),
    rgba(250,246,238,.76) 48%,
    transparent
  );
  transform:translateX(-5px);
}

.tts-compact .tts-day-edge-right {
  right:0;
  background:linear-gradient(
    270deg,
    rgba(250,246,238,.98),
    rgba(250,246,238,.76) 48%,
    transparent
  );
  transform:translateX(5px);
}

.tts-compact .tts-day-edge i {
  display:block;
  width:7px;
  height:7px;
  border-top:1px solid var(--gold);
  border-right:1px solid var(--gold);
}

.tts-compact .tts-day-edge-left i {
  transform:rotate(-135deg);
}

.tts-compact .tts-day-edge-right i {
  transform:rotate(45deg);
}

.tts-compact .tts-day-edge i:nth-child(2) {
  animation-delay:.14s!important;
}

.tts-compact .tts-day-rail-viewport.is-day-scrollable:not(.is-day-at-end) .tts-day-edge-right,
.tts-compact .tts-day-rail-viewport.is-day-scrollable:not(.is-day-at-start) .tts-day-edge-left {
  opacity:1;
  transform:translateX(0);
}

.tts-compact .tts-day-rail-viewport.is-day-scrollable:not(.is-day-at-end) .tts-day-edge-right i {
  animation:ttsRouteCueRight 1.55s ease-in-out infinite;
}

.tts-compact .tts-day-rail-viewport.is-day-scrollable:not(.is-day-at-start) .tts-day-edge-left i {
  animation:ttsRouteCueLeft 1.55s ease-in-out infinite;
}

.tts-compact .tts-route-line {
  position:absolute;
  top:36px;
  left:5.5%;
  right:5.5%;
  height:1px;
  background:
    repeating-linear-gradient(
      90deg,
      rgba(185,133,50,.24) 0 7px,
      rgba(185,133,50,.78) 7px 13px
    );
}

.tts-compact .tts-route-line i {
  position:absolute;
  top:50%;
  left:0;
  width:13px;
  height:13px;
  border-radius:50%;
  background:#F1D18B;
  box-shadow:
    0 0 0 5px rgba(185,133,50,.13),
    0 0 22px rgba(185,133,50,.60);
  transform:translate(-50%,-50%);
  opacity:0;
}

.tts-compact.is-effects-active .tts-route-line i {
  animation:ttsRouteTraveller 8.4s linear infinite;
}

.tts-compact .tts-route-stop {
  position:relative;
  z-index:1;
  min-width:0;
  padding:0 7px;
  text-align:center;
}

.tts-compact .tts-route-stop[role="button"] {
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
  -webkit-user-select:none;
  user-select:none;
  outline:none;
}

.tts-compact .tts-route-stop[role="button"]:focus {
  outline:none;
}

.tts-compact .tts-route-stop[role="button"]:focus-visible {
  outline:2px solid rgba(185,133,50,.68);
  outline-offset:4px;
  border-radius:8px;
}


.tts-compact .tts-route-stop b {
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  width:46px;
  height:46px;
  margin:0 auto 11px;
  border:1px solid rgba(185,133,50,.56);
  border-radius:50%;
  background:var(--ivory);
  color:var(--gold);
  font-family:"Montserrat",sans-serif;
  font-size:10px;
  font-weight:700;
  line-height:1;
  box-shadow:0 0 0 5px rgba(185,133,50,.055);
  transition:transform .22s ease,background .22s ease,color .22s ease;
}

.tts-compact .tts-route-stop b em {
  display:block;
  margin-bottom:2px;
  color:var(--muted);
  font-style:normal;
  font-size:6px;
  font-weight:700;
  letter-spacing:.65px;
  text-transform:uppercase;
}

.tts-compact .tts-route-stop.is-current b em,
.tts-compact .tts-route-stop.is-return b em {
  color:rgba(255,255,255,.70);
}

.tts-compact .tts-route-stop:hover b {
  transform:translateY(-3px) rotate(-4deg);
  background:var(--gold);
  color:#fff;
}

.tts-compact .tts-route-stop.is-current b,
.tts-compact .tts-route-stop.is-return b {
  border-color:var(--ink);
  background:var(--ink);
  color:#fff;
}

.tts-compact .tts-route-stop span {
  display:block;
  margin-bottom:5px;
  color:var(--wine);
  font-family:"Expletus Sans",sans-serif;
  font-size:14px;
  font-weight:600;
  line-height:1.18;
}

.tts-compact .tts-route-stop small {
  display:block;
  color:var(--muted);
  font-family:"Montserrat",sans-serif;
  font-size:10px;
  font-weight:500;
  line-height:1.3;
}

.tts-compact.is-effects-active .tts-route-stop b {
  animation:ttsSequentialStop 8.4s linear infinite;
}

/* Stop timing is supplied per item through --tts-stop-delay. */
.tts-compact.is-effects-active .tts-route-stop b {
  animation-delay:var(--tts-stop-delay,0s);
}

/* =========================================================
   TABS — SIMPLE WITH A PLAYFUL MOVING UNDERLINE
========================================================= */
.tts-compact .tts-tabs {
  display:flex;
  justify-content:center;
  gap:38px;
  padding:20px 18px 0;
  border-bottom:1px solid var(--line);
  background:var(--ivory);
}

.tts-compact .tts-tab {
  position:relative;
  min-height:42px;
  padding:0 3px 14px;
  border:0;
  background:transparent;
  color:#7B675F;
  font-family:"Montserrat",sans-serif;
  font-size:10px;
  font-weight:600;
  letter-spacing:.78px;
  text-transform:uppercase;
  cursor:pointer;
  transition:color .2s ease;
}

.tts-compact .tts-tab::after {
  content:"";
  position:absolute;
  left:50%;
  right:50%;
  bottom:-1px;
  height:2px;
  background:linear-gradient(90deg,var(--rust),var(--gold));
  transition:left .24s ease,right .24s ease;
}

.tts-compact .tts-tab.is-active {
  color:var(--wine);
}

.tts-compact .tts-tab.is-active::after {
  left:0;
  right:0;
}

.tts-compact.is-effects-active .tts-tab.is-active::after {
  background:
    linear-gradient(
      90deg,
      var(--rust),
      var(--gold),
      #F0D59B,
      var(--gold),
      var(--rust)
    );
  background-size:220% 100%;
  animation:ttsTabFlow 2.6s linear infinite;
}

/* =========================================================
   SHARED STAGE
========================================================= */
.tts-compact .tts-stage {
  min-height:430px;
  padding:34px 36px 38px;
  background:
    radial-gradient(circle at 100% 100%,rgba(185,133,50,.05),transparent 28%),
    var(--ivory);
}

.tts-compact .tts-panel {
  width:100%;
  max-width:1120px;
  min-width:0;
  margin:0 auto;
}

.tts-compact .tts-panel[hidden] {
  display:none!important;
}

.tts-compact .tts-panel.is-active {
  animation:ttsPanelEnter .36s ease both;
}

/* =========================================================
   OVERVIEW — EDITORIAL + PLAYFUL HIGHLIGHT RHYTHM
========================================================= */
.tts-compact .tts-panel[data-panel="overview"] {
  display:grid;
  grid-template-columns:minmax(0,.92fr) minmax(480px,1.08fr);
  gap:47px;
  align-items:start;
}

.tts-compact .tts-overview-copy,
.tts-compact .tts-overview-themes,
.tts-compact .tts-overview-themes article,
.tts-compact .tts-overview-themes article > div,
.tts-compact .tts-day-copy {
  min-width:0;
}

.tts-compact .tts-overview-copy {
  position:relative;
  padding:10px 0 0 24px;
  border-left:2px solid var(--gold);
}

.tts-compact .tts-overview-copy::after {
  content:"";
  position:absolute;
  left:-5px;
  top:0;
  width:8px;
  height:8px;
  border:1px solid var(--gold);
  background:var(--ivory);
  transform:rotate(45deg);
}

.tts-compact .tts-section-label {
  display:block;
  margin-bottom:10px;
  color:var(--rust);
  font-family:"Montserrat",sans-serif;
  font-size:9px;
  font-weight:700;
  letter-spacing:1.6px;
  text-transform:uppercase;
}

.tts-compact .tts-overview-copy h2,
.tts-compact .tts-day-copy h2 {
  max-width:100%;
  margin-bottom:15px;
  color:var(--wine);
  font-family:"Expletus Sans",sans-serif;
  font-size:clamp(30px,3vw,39px);
  font-weight:500;
  line-height:1.08;
  overflow-wrap:anywhere;
}

.tts-compact .tts-overview-copy p,
.tts-compact .tts-day-copy p,
.tts-compact .tts-notes p {
  margin-bottom:0;
  color:var(--brown);
  font-family:"Montserrat",sans-serif;
  font-size:14px;
  line-height:1.72;
  overflow-wrap:anywhere;
}

.tts-compact .tts-overview-copy .tts-overview-extra {
  margin-top:13px;
  color:#68564E;
}

.tts-compact .tts-overview-themes {
  position:relative;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px 26px;
  overflow:hidden;
}

.tts-compact .tts-overview-live-sheen {
  position:absolute;
  top:-30%;
  bottom:-30%;
  left:-35%;
  width:20%;
  z-index:0;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.80),transparent);
  transform:skewX(-18deg);
  opacity:0;
  pointer-events:none;
}

.tts-compact.is-effects-active .tts-overview-live-sheen {
  animation:ttsOverviewSheen 6.2s ease-in-out infinite;
}

.tts-compact .tts-overview-themes article {
  position:relative;
  display:grid;
  grid-template-columns:32px minmax(0,1fr);
  gap:12px;
  min-height:108px;
  padding:15px 0;
  border-bottom:1px solid rgba(55,38,29,.10);
  transition:transform .22s ease;
}

.tts-compact .tts-overview-themes article:hover {
  transform:translateX(4px);
}

.tts-compact.is-effects-active .tts-overview-themes article {
  animation:ttsOverviewFloat 4.6s ease-in-out infinite;
}

.tts-compact.is-effects-active .tts-overview-themes article {
  animation-delay:var(--tts-theme-delay,0s);
}

.tts-compact .tts-overview-themes article > span {
  display:grid;
  place-items:center;
  width:30px;
  height:30px;
  border:1px solid rgba(185,133,50,.42);
  border-radius:50%;
  color:var(--gold);
  font-family:"Montserrat",sans-serif;
  font-size:9px;
  font-weight:700;
  transition:background .22s ease,color .22s ease,transform .22s ease;
}

.tts-compact .tts-overview-themes article:hover > span {
  background:var(--gold);
  color:#fff;
  transform:rotate(8deg);
}

.tts-compact .tts-overview-themes strong {
  display:block;
  margin:3px 0 7px;
  color:var(--wine);
  font-family:"Expletus Sans",sans-serif;
  font-size:15px;
  font-weight:600;
  line-height:1.2;
}

.tts-compact .tts-overview-themes p {
  margin:0;
  color:#5C4B43;
  font-family:"Montserrat",sans-serif;
  font-size:12px;
  line-height:1.5;
}

/* =========================================================
   DAY FOLIO — LIGHT, CINEMATIC, SMALL SUTRA LINE ART
========================================================= */
.tts-compact .tts-day-rail {
  position:relative;
  display:flex;
  gap:8px;
  width:100%;
  padding:0 0 16px;
  overflow-x:auto;
  overflow-y:hidden;
  scrollbar-width:none;
  border-bottom:1px solid var(--line);
  -webkit-overflow-scrolling:touch;
}

.tts-compact .tts-day-rail::-webkit-scrollbar {
  display:none;
}

.tts-compact .tts-day-btn {
  flex:0 0 54px;
  width:54px;
  min-height:38px;
  padding:5px 7px;
  border:1px solid rgba(55,38,29,.16);
  border-radius:999px;
  background:transparent;
  color:#816F66;
  font-family:"Montserrat",sans-serif;
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
  -webkit-user-select:none;
  user-select:none;
  outline:none;
  transition:transform .2s ease,background .2s ease,color .2s ease;
}

.tts-compact .tts-day-btn span,
.tts-compact .tts-day-btn b {
  display:block;
  line-height:1;
}

.tts-compact .tts-day-btn span {
  margin-bottom:3px;
  font-size:6px;
  font-weight:700;
  letter-spacing:.7px;
  text-transform:uppercase;
}

.tts-compact .tts-day-btn b {
  font-size:10px;
  font-weight:700;
}

.tts-compact .tts-day-btn:hover {
  transform:translateY(-2px);
}

.tts-compact .tts-day-btn:focus {
  outline:none;
}

.tts-compact .tts-day-btn:focus-visible {
  outline:2px solid rgba(185,133,50,.68);
  outline-offset:3px;
}

.tts-compact .tts-route-stop *,
.tts-compact .tts-day-btn * {
  -webkit-user-select:none;
  user-select:none;
}

.tts-compact .tts-route-stop *::selection,
.tts-compact .tts-day-btn *::selection {
  background:transparent;
  color:inherit;
}

.tts-compact .tts-day-btn.is-active {
  border-color:var(--ink);
  background:var(--ink);
  color:#fff;
  box-shadow:0 0 0 4px rgba(185,133,50,.09);
}

.tts-compact .tts-day-btn.is-active span {
  color:var(--gold-light);
}

.tts-compact.is-effects-active .tts-day-btn.is-active {
  animation:ttsDayGlow 2.6s ease-in-out infinite;
}

.tts-compact .tts-day-stage {
  position:relative;
  width:100%;
  margin-top:20px;
  overflow:hidden;
  border-radius:11px;
  touch-action:pan-y;
  cursor:grab;
  -webkit-tap-highlight-color:transparent;
}

.tts-compact .tts-day-stage.is-dragging {
  cursor:grabbing;
}

.tts-compact .tts-day-stage.is-dragging,
.tts-compact .tts-day-stage.is-dragging * {
  -webkit-user-select:none;
  user-select:none;
}

.tts-compact .tts-day-stage-rail {
  display:flex;
  width:100%;
  transform:translate3d(0,0,0);
  transition:transform .255s cubic-bezier(.22,.72,.24,1);
  will-change:transform;
}

.tts-compact .tts-day-stage.is-dragging .tts-day-stage-rail,
.tts-compact .tts-day-stage.is-direct-jump .tts-day-stage-rail {
  transition:none!important;
}

.tts-compact .tts-day-stage-item {
  display:grid;
  grid-template-columns:minmax(390px,1fr) minmax(0,1fr);
  flex:0 0 100%;
  width:100%;
  min-width:100%;
  min-height:390px;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:11px;
  background:
    linear-gradient(145deg,rgba(255,255,255,.75),rgba(248,241,230,.78)),
    var(--cream);
  box-shadow:0 14px 30px rgba(45,28,20,.06);
}

.tts-compact .tts-day-stage-item:not(.is-active) {
  pointer-events:auto;
}

.tts-compact .tts-day-stage-hint {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:7px;
  margin:7px 2px 0;
  color:rgba(117,100,92,.82);
  font-family:"Montserrat",sans-serif;
  font-size:8px;
  font-weight:500;
  line-height:1;
  letter-spacing:.34px;
  white-space:nowrap;
}

.tts-compact .tts-day-stage-hint > i {
  position:relative;
  display:block;
  width:24px;
  height:7px;
  overflow:hidden;
}

.tts-compact .tts-day-stage-hint > i::before {
  content:"";
  position:absolute;
  left:1px;
  top:50%;
  width:17px;
  height:1px;
  background:linear-gradient(90deg,rgba(185,133,50,.18),var(--gold));
  transform:translateY(-50%);
}

.tts-compact .tts-day-stage-hint > i::after {
  content:"";
  position:absolute;
  right:1px;
  top:50%;
  width:5px;
  height:5px;
  border-top:1px solid var(--gold);
  border-right:1px solid var(--gold);
  transform:translateY(-50%) rotate(45deg);
}

.tts-compact.is-effects-active .tts-day-stage-hint > i {
  animation:ttsDayStageHint 1.9s ease-in-out infinite;
}

.tts-compact .tts-day-image-wrap {
  position:relative;
  width:100%;
  min-height:390px;
  margin:0;
  overflow:hidden;
  background:#E7DAC8;
}

.tts-compact .tts-day-image-wrap::after {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,transparent 64%,rgba(10,6,5,.50));
  pointer-events:none;
}

.tts-compact .tts-day-image {
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  transition:opacity .18s ease,transform .7s ease;
}

.tts-compact.is-effects-active
.tts-day-stage-item.is-active .tts-day-image {
  animation:ttsDayImageDrift 9s ease-in-out infinite alternate;
}

.tts-compact .tts-day-image-meta {
  position:absolute;
  left:22px;
  bottom:19px;
  z-index:2;
  color:#fff;
}

.tts-compact .tts-image-place {
  font-family:"Montserrat",sans-serif;
  font-size:10px;
  font-weight:700;
  letter-spacing:1.35px;
  text-transform:uppercase;
}

.tts-compact .tts-day-copy {
  position:relative;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:38px 40px 34px;
  overflow:hidden;
  border-left:1px solid var(--line);
}

.tts-compact .tts-day-copy::after {
  content:"";
  position:absolute;
  top:-45%;
  bottom:-45%;
  left:-48%;
  width:34%;
  z-index:1;
  background:
    linear-gradient(
      100deg,
      transparent,
      rgba(255,255,255,.06) 20%,
      rgba(255,255,255,.62) 50%,
      rgba(255,255,255,.06) 80%,
      transparent
    );
  transform:skewX(-18deg);
  opacity:0;
  pointer-events:none;
}

.tts-compact.is-effects-active
.tts-day-stage-item.is-active .tts-day-copy::after {
  animation:ttsInternalSheen 4.9s ease-in-out infinite;
}

.tts-compact .tts-day-lineart {
  position:absolute;
  right:-18px;
  bottom:-12px;
  width:230px;
  height:auto;
  opacity:.15;
  pointer-events:none;
}

.tts-compact .tts-day-lineart path {
  fill:none;
  stroke:var(--gold);
  stroke-width:1.1;
  stroke-linecap:round;
  stroke-linejoin:round;
  stroke-dasharray:380;
  stroke-dashoffset:380;
  vector-effect:non-scaling-stroke;
}

.tts-compact.is-effects-active
.tts-day-stage-item.is-active .tts-day-lineart {
  animation:ttsDayLineFloat 4.8s ease-in-out infinite;
}

.tts-compact.is-effects-active
.tts-day-stage-item.is-active .tts-day-lineart path {
  animation:ttsDayLineDraw 5.4s ease-in-out infinite;
}

.tts-compact .tts-day-lineart circle {
  fill:var(--gold);
}

.tts-compact .tts-day-copy::before {
  content:attr(data-current-day);
  position:absolute;
  right:22px;
  top:7px;
  color:rgba(185,133,50,.09);
  font-family:"Expletus Sans",sans-serif;
  font-size:90px;
  font-weight:600;
  line-height:1;
  pointer-events:none;
}

.tts-compact .tts-day-label,
.tts-compact .tts-day-copy h2,
.tts-compact .tts-day-copy p,
.tts-compact .tts-day-experiences,
.tts-compact .tts-day-nav {
  position:relative;
  z-index:2;
}

.tts-compact .tts-day-label {
  display:block;
  margin-bottom:10px;
  color:var(--rust);
  font-family:"Montserrat",sans-serif;
  font-size:9px;
  font-weight:700;
  letter-spacing:1.3px;
  text-transform:uppercase;
}

.tts-compact .tts-day-experiences {
  display:flex;
  flex-wrap:wrap;
  margin-top:17px;
  color:var(--wine);
  font-family:"Montserrat",sans-serif;
  font-size:10px;
  font-weight:600;
}

.tts-compact .tts-day-experiences span {
  display:inline-flex;
  align-items:center;
}

.tts-compact .tts-day-experiences span:not(:last-child)::after {
  content:"✦";
  margin:0 8px;
  color:var(--gold);
  font-size:7px;
}

.tts-compact .tts-day-nav {
  display:flex;
  align-items:center;
  gap:13px;
  margin-top:21px;
}

.tts-compact .tts-day-nav button {
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  padding:0;
  border:1px solid rgba(55,38,29,.17);
  border-radius:50%;
  background:rgba(255,255,255,.45);
  color:var(--ink);
  font-size:16px;
  cursor:pointer;
  transition:background .2s ease,color .2s ease,transform .2s ease;
}

.tts-compact .tts-day-nav button:hover {
  background:var(--ink);
  color:#fff;
  transform:translateY(-2px);
}

.tts-compact .tts-day-count {
  color:#79675E;
  font-family:"Montserrat",sans-serif;
  font-size:10px;
  font-weight:600;
}


/* =========================================================
   FULL ITINERARY LAUNCH
========================================================= */
.tts-compact .tts-view-itinerary {
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:13px;
  min-width:255px;
  padding:11px 14px 11px 12px;
  overflow:hidden;
  border:1px solid rgba(48,5,5,.20);
  border-radius:11px;
  background:linear-gradient(135deg,rgba(255,255,255,.84),rgba(248,241,230,.72));
  box-shadow:0 9px 22px rgba(48,31,22,.08),inset 0 1px 0 rgba(255,255,255,.90);
  color:var(--ink);
  text-align:left;
  cursor:pointer;
  transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease,background .25s ease;
}

.tts-compact .tts-view-itinerary::after {
  content:"";
  position:absolute;
  top:-80%;
  bottom:-80%;
  left:-45%;
  width:26%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.76),transparent);
  transform:skewX(-18deg);
  pointer-events:none;
}

.tts-compact.is-effects-active .tts-view-itinerary::after {
  animation:ttsFullItinerarySheen 5.8s ease-in-out infinite;
}

.tts-compact .tts-view-itinerary:hover,
.tts-compact .tts-view-itinerary:focus-visible {
  border-color:rgba(185,133,50,.56);
  background:#fff;
  box-shadow:0 13px 28px rgba(48,31,22,.12),0 0 0 4px rgba(185,133,50,.07);
  transform:translateY(-2px);
}

.tts-compact .tts-view-itinerary > * {
  position:relative;
  z-index:1;
}








/* =========================================================
   FULL ITINERARY MODAL
========================================================= */
html.tts-itinerary-modal-open,
body.tts-itinerary-modal-open {
  overflow:hidden!important;
}

.tts-itinerary-modal[hidden] {
  display:none!important;
}

.tts-itinerary-modal {
  --tts-modal-wine:#300505;
  --tts-modal-rust:#AA5432;
  --tts-modal-gold:#B98532;
  --tts-modal-gold-light:#D7B977;
  --tts-modal-ivory:#FFFDF7;
  --tts-modal-cream:#F8F1E6;
  --tts-modal-ink:#171311;
  --tts-modal-muted:#75645C;
  --tts-modal-line:rgba(55,38,29,.13);

  position:fixed;
  inset:0;
  z-index:2147483000;
  display:grid;
  place-items:center;
  padding:24px;
  font-family:"Montserrat",sans-serif;
  opacity:0;
  visibility:hidden;
  transition:opacity .24s ease,visibility .24s ease;
}

.tts-itinerary-modal.is-open {
  opacity:1;
  visibility:visible;
}

.tts-itinerary-modal .tts-itinerary-backdrop {
  position:absolute;
  inset:0;
  background:radial-gradient(circle at 78% 12%,rgba(185,133,50,.15),transparent 27%),rgba(17,12,10,.76);
  backdrop-filter:blur(9px);
  -webkit-backdrop-filter:blur(9px);
}

.tts-itinerary-modal .tts-itinerary-dialog {
  position:relative;
  z-index:1;
  display:grid;
  grid-template-rows:auto minmax(0,1fr);
  width:min(960px,100%);
  max-height:min(90vh,900px);
  overflow:hidden;
  border:1px solid rgba(215,185,119,.36);
  border-radius:20px;
  background:radial-gradient(circle at 100% 0,rgba(185,133,50,.08),transparent 28%),var(--tts-modal-ivory);
  box-shadow:0 36px 90px rgba(0,0,0,.34),inset 0 1px 0 rgba(255,255,255,.94);
  transform:translateY(18px) scale(.985);
  transition:transform .30s cubic-bezier(.22,.61,.36,1);
}

.tts-itinerary-modal.is-open .tts-itinerary-dialog {
  transform:translateY(0) scale(1);
}

.tts-itinerary-modal .tts-itinerary-header {
  position:relative;
  z-index:3;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:22px;
  padding:24px 25px 21px;
  border-bottom:1px solid var(--tts-modal-line);
  background:rgba(255,253,247,.95);
  box-shadow:0 8px 24px rgba(49,32,22,.04);
}

.tts-itinerary-modal .tts-itinerary-heading {
  min-width:0;
}

.tts-itinerary-modal .tts-itinerary-heading > span {
  display:block;
  margin-bottom:7px;
  color:var(--tts-modal-rust);
  font-size:9px;
  font-weight:700;
  letter-spacing:1.28px;
  text-transform:uppercase;
}

.tts-itinerary-modal .tts-itinerary-header h2 {
  margin:0;
  color:var(--tts-modal-ink);
  font-family:"Expletus Sans",sans-serif;
  font-size:clamp(25px,3vw,38px);
  font-weight:500;
  line-height:1.05;
  letter-spacing:-.025em;
}

.tts-itinerary-modal .tts-itinerary-header p {
  margin:6px 0 0;
  color:var(--tts-modal-muted);
  font-size:11px;
  line-height:1.5;
}

.tts-itinerary-modal .tts-itinerary-header-actions {
  display:flex;
  align-items:center;
  gap:9px;
  flex:0 0 auto;
}





.tts-itinerary-modal .tts-itinerary-close {
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:0;
  cursor:pointer;
  width:40px;
  height:40px;
  border:1px solid var(--tts-modal-line);
  border-radius:10px;
  background:#fff;
  color:var(--tts-modal-ink);
  transition:transform .22s ease,border-color .22s ease,background .22s ease;
}

.tts-itinerary-modal .tts-itinerary-close:hover,
.tts-itinerary-modal .tts-itinerary-close:focus-visible {
  border-color:rgba(170,84,50,.42);
  background:var(--tts-modal-cream);
  transform:rotate(3deg);
}

.tts-itinerary-modal .tts-itinerary-close span {
  position:absolute;
  width:15px;
  height:1px;
  border-radius:1px;
  background:currentColor;
}

.tts-itinerary-modal .tts-itinerary-close span:first-child {
  transform:rotate(45deg);
}

.tts-itinerary-modal .tts-itinerary-close span:last-child {
  transform:rotate(-45deg);
}

.tts-itinerary-modal .tts-itinerary-scroll {
  overflow:auto;
  overscroll-behavior:contain;
  padding:24px 25px 27px;
  scrollbar-width:thin;
  scrollbar-color:rgba(185,133,50,.55) transparent;
}

.tts-itinerary-modal .tts-itinerary-intro {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:24px;
  margin-bottom:19px;
  padding-bottom:17px;
  border-bottom:1px solid var(--tts-modal-line);
}

.tts-itinerary-modal .tts-itinerary-intro span {
  color:var(--tts-modal-wine);
  font-size:9px;
  font-weight:700;
  letter-spacing:1px;
  text-transform:uppercase;
}

.tts-itinerary-modal .tts-itinerary-intro p {
  max-width:480px;
  margin:0;
  color:var(--tts-modal-muted);
  font-size:11px;
  line-height:1.65;
  text-align:right;
}

.tts-itinerary-modal .tts-itinerary-list {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}

.tts-itinerary-modal .tts-itinerary-day {
  position:relative;
  min-width:0;
  overflow:hidden;
  border:1px solid var(--tts-modal-line);
  border-radius:15px;
  background:
    linear-gradient(145deg,rgba(255,255,255,.92),rgba(248,241,230,.52));
  box-shadow:
    0 9px 24px rgba(47,30,20,.065),
    inset 0 1px 0 rgba(255,255,255,.92);
  transition:transform .28s ease,border-color .28s ease,box-shadow .28s ease;
}

.tts-itinerary-modal .tts-itinerary-day:hover {
  border-color:rgba(185,133,50,.34);
  box-shadow:
    0 14px 32px rgba(47,30,20,.10),
    inset 0 1px 0 rgba(255,255,255,.94);
  transform:translateY(-3px);
}

.tts-itinerary-modal .tts-itinerary-photo {
  position:relative;
  height:154px;
  margin:0;
  overflow:hidden;
  background:#E9DFCF;
}

.tts-itinerary-modal .tts-itinerary-photo img {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  transform:scale(1.01);
  transition:transform .65s cubic-bezier(.22,.61,.36,1);
}

.tts-itinerary-modal .tts-itinerary-day:hover .tts-itinerary-photo img {
  transform:scale(1.055);
}

.tts-itinerary-modal .tts-itinerary-photo-shade {
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg,transparent 42%,rgba(16,11,9,.56)),
    linear-gradient(90deg,rgba(48,5,5,.12),transparent 46%);
  pointer-events:none;
}

.tts-itinerary-modal .tts-itinerary-number {
  position:absolute;
  left:14px;
  bottom:13px;
  z-index:2;
  display:grid;
  place-items:center;
  width:48px;
  height:48px;
  border:1px solid rgba(255,229,174,.54);
  border-radius:50%;
  background:rgba(23,19,17,.90);
  color:#fff;
  box-shadow:
    0 0 0 5px rgba(215,185,119,.13),
    0 9px 20px rgba(0,0,0,.22);
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
}

.tts-itinerary-modal .tts-itinerary-number span {
  display:block;
  margin-bottom:-4px;
  color:var(--tts-modal-gold-light);
  font-size:7px;
  font-weight:700;
  letter-spacing:.7px;
  text-transform:uppercase;
}

.tts-itinerary-modal .tts-itinerary-number b {
  font-family:"Expletus Sans",sans-serif;
  font-size:17px;
  font-weight:500;
  line-height:1;
}

.tts-itinerary-modal .tts-itinerary-day-copy {
  position:relative;
  z-index:1;
  min-width:0;
  padding:16px 17px 18px;
}

.tts-itinerary-modal .tts-itinerary-day h3 {
  margin:0 0 8px;
  color:var(--tts-modal-ink);
  font-family:"Expletus Sans",sans-serif;
  font-size:16px;
  font-weight:500;
  line-height:1.22;
}

.tts-itinerary-modal .tts-itinerary-day p {
  margin:0;
  color:var(--tts-modal-muted);
  font-size:10px;
  line-height:1.67;
}

.tts-itinerary-modal .tts-itinerary-highlights {
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-top:11px;
}

.tts-itinerary-modal .tts-itinerary-highlights span {
  padding:4px 7px;
  border:1px solid rgba(185,133,50,.22);
  border-radius:999px;
  background:rgba(185,133,50,.065);
  color:var(--tts-modal-wine);
  font-size:7.5px;
  font-weight:650;
  letter-spacing:.35px;
  text-transform:uppercase;
}





@keyframes ttsFullItinerarySheen {
  0%,34% {left:-45%}
  56.4% {left:125%}
  100% {left:125%}
}

@keyframes ttsFooterEnquireSheen {
  0%,55.599% {
    left:-18%;
    opacity:0;
  }
  55.6% {
    left:-18%;
    opacity:.18;
  }
  56% {
    left:-15%;
    opacity:.72;
  }
  78% {
    left:125%;
    opacity:.72;
  }
  78.001%,100% {
    left:125%;
    opacity:0;
  }
}

@media (max-width:767px) {
  .tts-compact .tts-footer-cta {
    flex-wrap:wrap;
  }

  .tts-compact .tts-footer-copy {
    flex:1 1 100%;
  }

  .tts-compact .tts-footer-actions {
    width:100%;
    justify-content:flex-start;
  }

  .tts-compact .tts-footer-actions .tts-view-itinerary {
    min-width:0;
    flex:1 1 200px;
  }

  .tts-itinerary-modal {
    padding:10px;
  }

  .tts-itinerary-modal .tts-itinerary-dialog {
    max-height:94vh;
    border-radius:16px;
  }

  .tts-itinerary-modal .tts-itinerary-header {
    align-items:center;
    padding:18px 16px 15px;
  }

  .tts-itinerary-modal .tts-itinerary-header h2 {
    font-size:25px;
  }

  .tts-itinerary-modal .tts-itinerary-header p {
    font-size:9px;
  }


  .tts-itinerary-modal .tts-itinerary-scroll {
    padding:18px 14px 21px;
  }

  .tts-itinerary-modal .tts-itinerary-intro {
    display:block;
    margin-bottom:14px;
    padding-bottom:14px;
  }

  .tts-itinerary-modal .tts-itinerary-intro p {
    margin-top:8px;
    text-align:left;
  }

  .tts-itinerary-modal .tts-itinerary-list {
    grid-template-columns:1fr;
    gap:9px;
  }

  .tts-itinerary-modal .tts-itinerary-day {
    border-radius:12px;
  }

  .tts-itinerary-modal .tts-itinerary-photo {
    height:150px;
  }

  .tts-itinerary-modal .tts-itinerary-number {
    width:43px;
    height:43px;
  }

  .tts-itinerary-modal .tts-itinerary-day-copy {
    padding:14px 14px 16px;
  }

  .tts-itinerary-modal .tts-itinerary-day h3 {
    font-size:14px;
  }



}

@media (prefers-reduced-motion:reduce) {
  .tts-itinerary-modal,
  .tts-itinerary-modal *,
  .tts-compact .tts-view-itinerary,
  .tts-compact .tts-view-itinerary::after {
    animation:none!important;
    transition:none!important;
  }
}

/* =========================================================
   NOTES — AIRY, NO HEAVY CARDS
========================================================= */
.tts-compact .tts-notes-intro {
  margin:0 auto 23px;
  text-align:center;
}

.tts-compact .tts-notes-intro span {
  display:block;
  margin-bottom:6px;
  color:var(--rust);
  font-family:"Montserrat",sans-serif;
  font-size:9px;
  font-weight:700;
  letter-spacing:1.45px;
  text-transform:uppercase;
}

.tts-compact .tts-notes-intro strong {
  color:var(--wine);
  font-family:"Expletus Sans",sans-serif;
  font-size:26px;
  font-weight:500;
}

.tts-compact .tts-notes {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:0;
}

.tts-compact .tts-notes article {
  position:relative;
  min-width:0;
  min-height:170px;
  padding:20px 28px;
  border-right:1px solid var(--line);
}

.tts-compact .tts-notes article:last-child {
  border-right:0;
}

.tts-compact .tts-notes article::before {
  content:"";
  display:block;
  width:34px;
  height:1px;
  margin-bottom:17px;
  background:linear-gradient(90deg,var(--gold),transparent);
}

.tts-compact .tts-notes article > span {
  display:none;
}

.tts-compact .tts-notes h3 {
  margin-bottom:10px;
  color:var(--wine);
  font-family:"Expletus Sans",sans-serif;
  font-size:18px;
  font-weight:600;
}

.tts-compact .tts-enquire-inline {
  margin:21px auto 0;
  display:flex;
}

/* =========================================================
   CLOSING CTA — BLACK, NOT RED
========================================================= */
.tts-compact .tts-footer-cta {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:22px;
  padding:22px 30px;
  border-top:1px solid rgba(215,185,119,.24);
  background:
    radial-gradient(circle at 80% 50%,rgba(215,185,119,.08),transparent 22%),
    #151312;
}

.tts-compact.is-effects-active .tts-footer-cta {
  animation:ttsFooterGlow 4.8s ease-in-out infinite;
}

.tts-compact .tts-footer-copy {
  min-width:0;
  flex:1 1 auto;
}

.tts-compact .tts-footer-actions {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  flex:0 0 auto;
}

.tts-compact .tts-footer-actions .tts-view-itinerary,
.tts-compact .tts-footer-actions .tts-enquire {
  min-width:174px;
  min-height:42px;
  padding:0 17px;
  border-radius:9px;
  font-family:"Montserrat",sans-serif;
  font-size:9px;
  font-weight:700;
  line-height:1;
  letter-spacing:.72px;
  text-transform:uppercase;
}

.tts-compact .tts-footer-actions .tts-view-itinerary {
  border-color:rgba(215,185,119,.44);
  background:rgba(255,255,255,.055);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.08),
    0 8px 20px rgba(0,0,0,.14);
  color:#fff;
  text-align:center;
}

.tts-compact .tts-footer-actions .tts-view-itinerary:hover,
.tts-compact .tts-footer-actions .tts-view-itinerary:focus-visible {
  border-color:rgba(215,185,119,.78);
  background:rgba(185,133,50,.16);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.10),
    0 12px 26px rgba(0,0,0,.20),
    0 0 0 4px rgba(185,133,50,.08);
}

.tts-compact .tts-footer-cta span {
  display:block;
  margin-bottom:5px;
  color:var(--gold-light);
  font-family:"Montserrat",sans-serif;
  font-size:9px;
  font-weight:600;
  letter-spacing:1.08px;
  text-transform:uppercase;
}

.tts-compact .tts-footer-cta strong {
  display:block;
  color:#fff;
  font-family:"Expletus Sans",sans-serif;
  font-size:19px;
  font-weight:500;
  line-height:1.25;
}

.tts-compact .tts-footer-cta .tts-enquire {
  flex:0 0 auto;
  border-color:rgba(255,255,255,.40);
  background:#fff;
  color:#000;
}

.tts-compact .tts-footer-cta .tts-enquire:hover,
.tts-compact .tts-footer-cta .tts-enquire:focus-visible {
  background:var(--gold);
  color:#fff;
}

/*
 * Footer sheen relay:
 * 1. View Full Itinerary travels from 34% to 56%.
 * 2. Enquire Now begins precisely at 56% and travels to 78%.
 * Both animations share the same 5.8-second clock.
 */
.tts-compact.is-effects-active
.tts-footer-actions .tts-view-itinerary::after {
  animation:ttsFullItinerarySheen 5.8s linear 0s infinite;
}

.tts-compact .tts-footer-actions .tts-enquire::after {
  top:-80%;
  bottom:-80%;
  left:-45%;
  width:26%;
  background:linear-gradient(
    100deg,
    transparent,
    rgba(105,10,32,.38),
    transparent
  );
  transform:skewX(-18deg);
  opacity:0;
}

.tts-compact.is-effects-active
.tts-footer-actions .tts-enquire::after {
  animation:ttsFooterEnquireSheen 5.8s linear 0s infinite;
}

/* =========================================================
   MOTION
========================================================= */
@keyframes ttsRouteGlow {
  0%,18% {transform:translateX(0) skewX(-18deg);opacity:0}
  35% {opacity:.72}
  62% {opacity:.72}
  82%,100% {transform:translateX(760%) skewX(-18deg);opacity:0}
}

@keyframes ttsPanelEnter {
  from {opacity:0;transform:translateY(6px)}
  to {opacity:1;transform:translateY(0)}
}

@keyframes ttsTitleSheen {
  0%,18% {background-position:100% 0}
  48%,62% {background-position:0 0}
  100% {background-position:-100% 0}
}




@keyframes ttsDayStageHint {
  0%,100% {
    opacity:.40;
    transform:translateX(-2px);
  }
  50% {
    opacity:1;
    transform:translateX(3px);
  }
}

@keyframes ttsDayGlow {
  0%,100% {
    box-shadow:0 0 0 4px rgba(185,133,50,.09),0 0 0 rgba(185,133,50,0);
  }
  50% {
    box-shadow:0 0 0 6px rgba(185,133,50,.15),0 0 21px rgba(185,133,50,.30);
  }
}

@keyframes ttsInternalSheen {
  0%,22% {left:-48%;opacity:0}
  31% {opacity:.78}
  52% {left:122%;opacity:.50}
  58%,100% {left:122%;opacity:0}
}

@keyframes ttsButtonSheen {
  0%,30% {left:-50%}
  48% {left:120%}
  100% {left:120%}
}

@keyframes ttsHeroBreath {
  0% {filter:saturate(1.02) contrast(1.01) brightness(1)}
  50% {filter:saturate(1.10) contrast(1.04) brightness(1.055)}
  100% {filter:saturate(1.03) contrast(1.015) brightness(1.01)}
}

@keyframes ttsAmbientOrbOne {
  0%,100% {transform:translate3d(0,0,0) scale(.90);opacity:.42}
  50% {transform:translate3d(-24px,18px,0) scale(1.22);opacity:.88}
}

@keyframes ttsAmbientOrbTwo {
  0%,100% {transform:translate3d(0,0,0) scale(.90);opacity:.36}
  50% {transform:translate3d(20px,-14px,0) scale(1.18);opacity:.78}
}



@keyframes ttsParticleRise {
  0% {transform:translate3d(0,0,0) scale(.45);opacity:0}
  15% {opacity:.86}
  70% {opacity:.58}
  100% {transform:translate3d(18px,-330px,0) scale(1.18);opacity:0}
}

@keyframes ttsRouteTraveller {
  0% {
    left:0;
    opacity:1;
    transform:translate(-50%,-50%) scale(.82);
  }
  8% {
    opacity:1;
    transform:translate(-50%,-50%) scale(1);
  }
  92% {
    left:100%;
    opacity:1;
    transform:translate(-50%,-50%) scale(1.08);
  }
  96%,100% {
    left:100%;
    opacity:0;
    transform:translate(-50%,-50%) scale(.70);
  }
}


@keyframes ttsRouteCueRight {
  0%,100% {transform:translateX(-2px) rotate(45deg);opacity:.32}
  50% {transform:translateX(3px) rotate(45deg);opacity:1}
}

@keyframes ttsRouteCueLeft {
  0%,100% {transform:translateX(2px) rotate(-135deg);opacity:.32}
  50% {transform:translateX(-3px) rotate(-135deg);opacity:1}
}


@keyframes ttsSequentialStop {
  0% {
    transform:translateY(0) scale(1);
    box-shadow:0 0 0 5px rgba(185,133,50,.055);
    animation-timing-function:cubic-bezier(.22,.61,.36,1);
  }

  4% {
    transform:translateY(-5px) scale(1.13);
    box-shadow:
      0 0 0 8px rgba(185,133,50,.15),
      0 0 26px rgba(185,133,50,.40);
    animation-timing-function:cubic-bezier(.18,.72,.24,1);
  }

  16%,100% {
    transform:translateY(0) scale(1);
    box-shadow:0 0 0 5px rgba(185,133,50,.055);
  }
}

@keyframes ttsTabFlow {
  from {background-position:0 0}
  to {background-position:220% 0}
}

@keyframes ttsOverviewSheen {
  0%,18% {left:-35%;opacity:0}
  28% {opacity:.75}
  56% {left:120%;opacity:.42}
  62%,100% {left:120%;opacity:0}
}

@keyframes ttsOverviewFloat {
  0%,100% {transform:translate3d(0,0,0)}
  50% {transform:translate3d(0,-5px,0)}
}

@keyframes ttsDayImageDrift {
  0% {transform:scale(1.01) translate3d(-.5%,0,0);filter:saturate(1)}
  50% {transform:scale(1.07) translate3d(1.2%,-.8%,0);filter:saturate(1.07)}
  100% {transform:scale(1.025) translate3d(-.8%,.5%,0);filter:saturate(1.02)}
}

@keyframes ttsDayLineDraw {
  0% {stroke-dashoffset:380;opacity:.15}
  42%,72% {stroke-dashoffset:0;opacity:.95}
  100% {stroke-dashoffset:-380;opacity:.15}
}

@keyframes ttsDayLineFloat {
  0%,100% {transform:translate3d(0,0,0) rotate(0)}
  50% {transform:translate3d(-8px,-7px,0) rotate(-1.5deg)}
}

@keyframes ttsFooterGlow {
  0%,100% {
    box-shadow:inset 0 0 0 rgba(215,185,119,0);
    background-position:80% 50%;
  }
  50% {
    box-shadow:inset 0 0 48px rgba(215,185,119,.08);
    background-position:66% 50%;
  }
}

/* =========================================================
   TABLET
========================================================= */
@media (min-width:768px) and (max-width:1024px) {
  .tts-compact .tts-hero {
    height:360px;
  }

  .tts-compact .tts-hero-copy {
    width:72%;
    padding:57px 42px 50px;
  }

  .tts-compact .tts-hero h1 {
    font-size:clamp(45px,6.7vw,61px);
  }

  .tts-compact .tts-hero-copy > p {
    font-size:14px;
  }


  .tts-compact .tts-hero-dots {
    left:42px;
  }

  .tts-compact .tts-route-heading strong {
    font-size:20px;
  }

  .tts-compact .tts-route-link-hint {
    font-size:8px;
  }

  .tts-compact .tts-route-scroll {
    display:flex;
    overflow-x:auto;
    overflow-y:hidden;
    scrollbar-width:none;
    padding:13px 0 16px;
  }

  .tts-compact .tts-route-scroll::-webkit-scrollbar {
    display:none;
  }

  .tts-compact .tts-route-line {
    top:36px;
    left:52px;
    right:auto;
    width:calc(var(--tts-stop-count,9) * 124px - 104px);
  }

  .tts-compact .tts-route-stop {
    flex:0 0 124px;
    min-width:124px;
  }

  .tts-compact .tts-stage {
    padding:29px 24px 32px;
  }

  .tts-compact .tts-panel[data-panel="overview"] {
    grid-template-columns:minmax(0,.88fr) minmax(390px,1.12fr);
    gap:29px;
  }

  .tts-compact .tts-overview-copy p,
  .tts-compact .tts-day-copy p,
  .tts-compact .tts-notes p {
    font-size:13px;
    line-height:1.66;
  }

  .tts-compact .tts-overview-themes {
    gap:8px 18px;
  }

  .tts-compact .tts-overview-themes strong {
    font-size:14px;
  }

  .tts-compact .tts-overview-themes p {
    font-size:11px;
  }

  .tts-compact .tts-day-stage-item {
    grid-template-columns:minmax(315px,.95fr) minmax(0,1.05fr);
    min-height:360px;
  }

  .tts-compact .tts-day-image-wrap {
    min-height:360px;
  }

  .tts-compact .tts-day-copy {
    padding:31px 28px 28px;
  }

  .tts-compact .tts-day-lineart {
    width:205px;
  }

  .tts-compact .tts-notes article {
    padding-inline:20px;
  }
}

/* =========================================================
   MOBILE — LANDSCAPE HERO
========================================================= */
@media (max-width:767px) {
  .tts-compact {
    border-radius:10px;
  }

  .tts-compact .tts-hero {
    height:clamp(230px,61vw,285px);
  }

  .tts-compact .tts-hero-slide {
    object-position:61% center;
  }

  .tts-compact .tts-hero-shade {
    background:
      linear-gradient(90deg,rgba(10,8,7,.69),rgba(18,14,11,.40) 60%,rgba(8,5,4,.02)),
      linear-gradient(180deg,rgba(0,0,0,.01),rgba(0,0,0,.27));
  }



  .tts-compact .tts-live-particles i:nth-child(n+5) {
    display:none;
  }

  .tts-compact .tts-hero::before {
    width:105px;
    height:105px;
    right:12%;
  }

  .tts-compact .tts-hero::after {
    width:150px;
    height:80px;
  }

  .tts-compact .tts-hero-copy {
    width:100%;
    padding:34px 18px 54px;
  }

  .tts-compact .tts-kicker {
    margin-bottom:8px;
    font-size:7.5px;
    letter-spacing:1.1px;
  }

  .tts-compact .tts-kicker i {
    flex-basis:23px;
  }

  .tts-compact .tts-hero h1 {
    max-width:290px;
    margin-bottom:8px;
    font-size:clamp(34px,10.5vw,43px);
  }

  .tts-compact .tts-hero-copy > p {
    max-width:240px;
    margin-bottom:11px;
    font-size:11px;
  }

  .tts-compact .tts-hero-meta {
    max-width:300px;
    gap:7px;
    font-size:7.5px;
    letter-spacing:.42px;
  }

  .tts-compact .tts-hero > .tts-enquire {
    right:13px;
    bottom:11px;
    min-height:32px;
    padding:7px 11px;
    font-size:8px;
  }

  .tts-compact .tts-hero-dots {
    left:18px;
    bottom:15px;
  }

  .tts-compact .tts-route-wrap {
    padding:20px 12px 22px;
  }

  .tts-compact .tts-route-heading {
    display:block;
    margin-bottom:17px;
  }

  .tts-compact .tts-route-heading strong {
    display:block;
    max-width:300px;
    font-size:17px;
    line-height:1.25;
  }

  .tts-compact .tts-route-link-hint {
    margin-top:7px;
    padding:0;
    font-size:clamp(7.2px,2.35vw,8px);
    letter-spacing:.20px;
    text-align:center;
    white-space:nowrap;
    overflow:visible;
  }

  .tts-compact .tts-route-edge {
    width:46px;
  }

  .tts-compact .tts-day-edge {
    width:42px;
  }

  .tts-compact .tts-route-scroll {
    display:flex;
    overflow-x:auto;
    overflow-y:hidden;
    scrollbar-width:none;
    padding:13px 0 16px;
  }

  .tts-compact .tts-route-scroll::-webkit-scrollbar {
    display:none;
  }

  .tts-compact .tts-route-line {
    top:36px;
    left:49px;
    right:auto;
    width:calc(var(--tts-stop-count,9) * 116px - 98px);
  }

  .tts-compact .tts-route-stop {
    flex:0 0 116px;
    min-width:116px;
    padding-inline:5px;
  }

  .tts-compact .tts-route-stop span {
    font-size:13px;
  }

  .tts-compact .tts-route-stop small {
    font-size:9px;
  }

  .tts-compact .tts-tabs {
    gap:26px;
    padding-top:17px;
  }

  .tts-compact .tts-tab {
    font-size:9px;
  }

  .tts-compact .tts-stage {
    min-height:0;
    padding:25px 14px 28px;
  }

  .tts-compact .tts-panel[data-panel="overview"] {
    grid-template-columns:1fr;
    gap:25px;
  }

  .tts-compact .tts-overview-copy {
    padding:6px 0 0 17px;
  }

  .tts-compact .tts-overview-copy h2,
  .tts-compact .tts-day-copy h2 {
    font-size:clamp(26px,7.5vw,31px);
  }

  .tts-compact .tts-overview-copy p,
  .tts-compact .tts-day-copy p,
  .tts-compact .tts-notes p {
    font-size:13px;
    line-height:1.64;
  }

  .tts-compact .tts-overview-themes {
    grid-template-columns:1fr;
    gap:0;
  }

  .tts-compact .tts-overview-themes article {
    min-height:0;
    padding:14px 0;
  }

  .tts-compact .tts-overview-themes strong {
    font-size:14px;
  }

  .tts-compact .tts-overview-themes p {
    font-size:11.5px;
  }

  .tts-compact .tts-day-rail {
    gap:7px;
  }

  .tts-compact .tts-day-btn {
    flex:0 0 50px;
    width:50px;
    min-height:36px;
    padding:5px 6px;
  }

  .tts-compact .tts-day-btn span {
    font-size:5.8px;
  }

  .tts-compact .tts-day-btn b {
    font-size:9px;
  }

  .tts-compact .tts-day-stage {
    margin-top:17px;
  }

  .tts-compact .tts-day-stage-item {
    grid-template-columns:1fr;
    min-height:0;
  }

  .tts-compact .tts-day-stage-hint {
    justify-content:center;
    margin-top:7px;
    font-size:7.8px;
  }

  .tts-compact .tts-day-image-wrap {
    min-height:220px;
    height:clamp(220px,57vw,255px);
  }

  .tts-compact .tts-day-copy {
    min-height:260px;
    padding:29px 21px 23px;
    border-top:1px solid var(--line);
    border-left:0;
  }

  .tts-compact .tts-day-copy::before {
    right:12px;
    top:6px;
    font-size:70px;
  }

  .tts-compact .tts-day-lineart {
    width:180px;
    opacity:.12;
  }

  .tts-compact .tts-day-experiences {
    font-size:9px;
  }

  .tts-compact .tts-day-nav {
    margin-top:18px;
  }

  .tts-compact .tts-notes-intro strong {
    font-size:23px;
  }

  .tts-compact .tts-notes {
    grid-template-columns:1fr;
  }

  .tts-compact .tts-notes article {
    min-height:0;
    padding:18px 4px;
    border-right:0;
    border-bottom:1px solid var(--line);
  }

  .tts-compact .tts-notes article:last-child {
    border-bottom:0;
  }

  .tts-compact .tts-notes h3 {
    font-size:18px;
  }

  .tts-compact .tts-footer-cta {
    gap:13px;
    padding:17px 15px;
  }


  .tts-compact .tts-footer-cta span {
    font-size:8px;
  }

  .tts-compact .tts-footer-cta strong {
    max-width:220px;
    font-size:15px;
  }

  .tts-compact .tts-footer-cta .tts-enquire {
    flex:0 0 auto;
    padding-inline:12px;
    font-size:8px;
  }
}

@media (max-width:390px) {
  .tts-compact .tts-hero {
    height:230px;
  }

  .tts-compact .tts-hero-copy {
    padding:29px 15px 49px;
  }

  .tts-compact .tts-hero h1 {
    font-size:33px;
  }

  .tts-compact .tts-hero-meta span:last-child,
  .tts-compact .tts-hero-meta i:last-of-type {
    display:none;
  }

  .tts-compact .tts-footer-cta {
    align-items:flex-start;
    flex-wrap:wrap;
  }

  .tts-compact .tts-footer-actions {
    display:grid;
    grid-template-columns:1fr;
  }

  .tts-compact .tts-footer-actions .tts-view-itinerary,
  .tts-compact .tts-footer-actions .tts-enquire {
    width:100%;
  }
}

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

  .tts-compact .tts-day-copy::after,
  .tts-compact .tts-enquire::after,
  .tts-compact .tts-live-particles,
  .tts-compact .tts-overview-live-sheen,
  .tts-compact .tts-route-line i {
    display:none!important;
  }
}


.tts-itinerary-config-error {
  padding:18px 20px;
  border:1px solid rgba(170,84,50,.28);
  border-radius:12px;
  background:#FFF8F3;
  color:#4C2017;
  font-family:Montserrat,sans-serif;
  font-size:12px;
  line-height:1.6;
}
.tts-itinerary-config-error strong {display:block;margin-bottom:4px;font-family:"Expletus Sans",sans-serif;font-size:16px;}

/* =========================================================
   MULTI-DURATION ITINERARIES
========================================================= */

.tts-duration-shell {
  width:100%;
  max-width:100%;
}

.tts-duration-view[hidden] {
  display:none!important;
}

.tts-compact .tts-duration-switcher {
  position:relative;
  z-index:6;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:10px clamp(16px,3.6vw,42px);
  overflow:hidden;
  border-top:1px solid rgba(185,133,50,.16);
  border-bottom:1px solid rgba(185,133,50,.22);
  background:
    radial-gradient(
      circle at 82% 18%,
      rgba(170,84,50,.18),
      transparent 36%
    ),
    linear-gradient(
      122deg,
      #170203 0%,
      #300505 47%,
      #4a0a13 100%
    );
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.035),
    inset 0 -1px 0 rgba(0,0,0,.22);
}

.tts-compact .tts-duration-switcher::before {
  content:"";
  position:absolute;
  top:0;
  left:clamp(16px,3.6vw,42px);
  width:54px;
  height:1px;
  background:linear-gradient(
    90deg,
    rgba(185,133,50,.92),
    transparent
  );
  pointer-events:none;
}

.tts-compact .tts-duration-switcher-copy {
  position:relative;
  z-index:1;
  display:grid;
  gap:1px;
  min-width:138px;
}

.tts-compact .tts-duration-switcher-copy > span {
  color:rgba(221,185,112,.84);
  font-family:"Montserrat",sans-serif;
  font-size:7px;
  font-weight:700;
  line-height:1.2;
  letter-spacing:1.2px;
  text-transform:uppercase;
}

.tts-compact .tts-duration-switcher-copy > strong {
  color:#f7f0e5;
  font-family:"Expletus Sans",sans-serif;
  font-size:14px;
  font-weight:500;
  line-height:1.15;
  letter-spacing:.05px;
}

.tts-compact .tts-duration-options {
  position:relative;
  z-index:1;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:5px;
  min-width:0;
}

.tts-compact .tts-duration-option {
  position:relative;
  display:grid;
  align-content:center;
  gap:1px;
  min-width:84px;
  min-height:34px;
  padding:5px 10px;
  overflow:hidden;
  border:1px solid rgba(226,201,151,.20);
  border-radius:7px;
  background:rgba(255,248,237,.035);
  color:rgba(251,244,233,.78);
  font-family:"Montserrat",sans-serif;
  text-align:left;
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
  backdrop-filter:blur(5px);
  -webkit-backdrop-filter:blur(5px);
  transition:
    transform .18s ease,
    border-color .18s ease,
    background .18s ease,
    color .18s ease,
    box-shadow .18s ease;
}

.tts-compact .tts-duration-option:hover {
  transform:translateY(-1px);
  border-color:rgba(221,185,112,.48);
  background:rgba(255,248,237,.07);
  color:#fffaf2;
}

.tts-compact .tts-duration-option:focus-visible {
  outline:1px solid rgba(221,185,112,.88);
  outline-offset:2px;
}

.tts-compact .tts-duration-option > span {
  font-size:9px;
  font-weight:700;
  line-height:1.1;
  letter-spacing:.28px;
  white-space:nowrap;
}

.tts-compact .tts-duration-option > small {
  color:inherit;
  font-size:6.8px;
  font-weight:500;
  line-height:1.1;
  letter-spacing:.12px;
  opacity:.62;
  white-space:nowrap;
}

.tts-compact .tts-duration-option.is-active {
  border-color:rgba(221,185,112,.66);
  background:
    linear-gradient(
      135deg,
      rgba(255,248,237,.15),
      rgba(185,133,50,.12)
    );
  color:#fffaf2;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.08),
    0 4px 12px rgba(0,0,0,.16);
}

.tts-compact .tts-duration-option.is-active::after {
  content:"";
  position:absolute;
  right:8px;
  bottom:4px;
  width:13px;
  height:1px;
  background:linear-gradient(
    90deg,
    transparent,
    rgba(221,185,112,.92)
  );
  opacity:.78;
}

@media (max-width:767px) {
  .tts-compact .tts-duration-switcher {
    align-items:flex-start;
    flex-direction:column;
    gap:8px;
    padding:10px 14px 11px;
  }

  .tts-compact .tts-duration-switcher::before {
    left:14px;
    width:42px;
  }

  .tts-compact .tts-duration-switcher-copy {
    min-width:0;
  }

  .tts-compact .tts-duration-switcher-copy > strong {
    font-size:13px;
  }

  .tts-compact .tts-duration-options {
    width:100%;
    justify-content:flex-start;
    gap:5px;
    overflow-x:auto;
    padding:1px 1px 2px;
    scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
  }

  .tts-compact .tts-duration-options::-webkit-scrollbar {
    display:none;
  }

  .tts-compact .tts-duration-option {
    flex:0 0 auto;
    min-width:80px;
    min-height:33px;
    padding:5px 9px;
  }

}

@media (prefers-reduced-motion:reduce) {
  .tts-compact .tts-duration-option {
    transition:none!important;
  }
}

/* =========================================================
   VERSION 2.0.0 — DURATION BAR, HERO SAFETY AND STICKY FLOW
========================================================= */

/*
 * Sticky descendants cannot reliably follow the viewport inside
 * paint-clipped ancestors. Edge children receive their own radii,
 * while the widget allows the duration bar to remain sticky.
 */
.tts-compact {
  overflow:visible;
  contain:layout style;
}

.tts-compact .tts-hero {
  height:auto;
  min-height:clamp(390px,34vw,470px);
  border-radius:13px 13px 0 0;
}

.tts-compact .tts-hero-copy {
  display:flex;
  flex-direction:column;
  justify-content:center;
  width:min(820px,78%);
  min-height:inherit;
  padding:64px 68px 94px;
}

.tts-compact .tts-hero h1 {
  max-width:760px;
  text-wrap:balance;
  overflow-wrap:anywhere;
}

.tts-compact .tts-hero h1.tts-title-long {
  max-width:760px;
  font-size:clamp(42px,4.45vw,62px);
  line-height:1.03;
  letter-spacing:-.028em;
}

.tts-compact .tts-hero h1.tts-title-very-long {
  max-width:780px;
  font-size:clamp(36px,3.9vw,54px);
  line-height:1.06;
  letter-spacing:-.022em;
}

.tts-compact .tts-footer-cta {
  border-radius:0 0 13px 13px;
}

.tts-duration-shell,
.tts-duration-view,
.tts-duration-view.is-active {
  overflow:visible;
}

.tts-compact .tts-duration-switcher {
  position:-webkit-sticky;
  position:sticky;
  top:var(--tts-duration-sticky-top,0px);
  z-index:70;
  overflow:hidden;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.04),
    inset 0 -1px 0 rgba(0,0,0,.28),
    0 8px 18px rgba(29,2,5,.16);
}

.tts-compact .tts-duration-switcher::after {
  content:"";
  position:absolute;
  z-index:0;
  top:-85%;
  bottom:-85%;
  left:-42%;
  width:26%;
  background:
    linear-gradient(
      105deg,
      transparent 0%,
      rgba(255,244,218,.02) 18%,
      rgba(255,233,186,.24) 49%,
      rgba(255,244,218,.045) 72%,
      transparent 100%
    );
  filter:blur(.2px);
  transform:translate3d(-190%,0,0) skewX(-17deg);
  pointer-events:none;
}

.tts-compact.is-effects-active
.tts-duration-switcher::after {
  animation:ttsDurationInternalSheen 5.4s ease-in-out infinite;
}

.tts-compact .tts-duration-switcher-copy,
.tts-compact .tts-duration-options,
.tts-compact .tts-duration-divider-line {
  position:relative;
  z-index:1;
}

.tts-compact .tts-duration-switcher.is-divider-only {
  display:block;
  min-height:10px;
  height:10px;
  padding:0;
  border-top:1px solid rgba(185,133,50,.12);
  border-bottom:1px solid rgba(185,133,50,.20);
  background:
    radial-gradient(
      circle at 73% 0,
      rgba(170,84,50,.13),
      transparent 36%
    ),
    linear-gradient(
      122deg,
      #170203 0%,
      #300505 51%,
      #430911 100%
    );
}

.tts-compact .tts-duration-divider-line {
  display:block;
  width:100%;
  height:100%;
}

.tts-compact .tts-duration-divider-line::before {
  content:"";
  position:absolute;
  top:50%;
  left:clamp(16px,4vw,52px);
  right:clamp(16px,4vw,52px);
  height:1px;
  background:
    linear-gradient(
      90deg,
      transparent,
      rgba(221,185,112,.30) 22%,
      rgba(221,185,112,.10) 70%,
      transparent
    );
  transform:translateY(-50%);
}

.tts-compact.is-enquiry-unavailable
.tts-open-enquiry[data-enquiry-auto="true"] {
  opacity:.72;
}

/* Larger, better-proportioned duration selector on desktop. */
@media (min-width:1025px) {
  .tts-compact .tts-duration-switcher:not(.is-divider-only) {
    gap:28px;
    min-height:72px;
    padding:13px clamp(30px,4.2vw,58px);
  }

  .tts-compact .tts-duration-switcher::before {
    left:clamp(30px,4.2vw,58px);
    width:74px;
  }

  .tts-compact .tts-duration-switcher-copy {
    gap:3px;
    min-width:190px;
  }

  .tts-compact .tts-duration-switcher-copy > span {
    font-size:9px;
    letter-spacing:1.45px;
  }

  .tts-compact .tts-duration-switcher-copy > strong {
    font-size:18px;
    line-height:1.18;
  }

  .tts-compact .tts-duration-options {
    gap:8px;
  }

  .tts-compact .tts-duration-option {
    gap:2px;
    min-width:112px;
    min-height:45px;
    padding:8px 14px;
    border-radius:8px;
  }

  .tts-compact .tts-duration-option > span {
    font-size:11px;
    letter-spacing:.34px;
  }

  .tts-compact .tts-duration-option > small {
    font-size:8.5px;
    line-height:1.16;
    letter-spacing:.17px;
  }

  .tts-compact .tts-duration-option.is-active::after {
    right:11px;
    bottom:6px;
    width:18px;
  }
}

@media (min-width:768px) and (max-width:1024px) {
  .tts-compact .tts-hero {
    height:auto;
    min-height:360px;
  }

  .tts-compact .tts-hero-copy {
    width:min(760px,78%);
    min-height:inherit;
    padding:54px 42px 82px;
  }

  .tts-compact .tts-hero h1.tts-title-long {
    font-size:clamp(38px,5.5vw,53px);
  }

  .tts-compact .tts-hero h1.tts-title-very-long {
    font-size:clamp(33px,4.8vw,46px);
  }
}

@media (max-width:767px) {
  .tts-compact .tts-hero {
    height:auto;
    min-height:clamp(245px,65vw,315px);
  }

  .tts-compact .tts-hero-copy {
    width:100%;
    min-height:inherit;
    padding:32px 18px 70px;
  }

  .tts-compact .tts-hero h1 {
    max-width:min(330px,88vw);
  }

  .tts-compact .tts-hero h1.tts-title-long {
    max-width:min(340px,90vw);
    font-size:clamp(29px,8.4vw,37px);
    line-height:1.04;
  }

  .tts-compact .tts-hero h1.tts-title-very-long {
    max-width:min(345px,92vw);
    font-size:clamp(25px,7.3vw,33px);
    line-height:1.07;
  }

  .tts-compact .tts-duration-switcher {
    top:var(--tts-duration-sticky-top,0px);
  }

  .tts-compact .tts-duration-switcher.is-divider-only {
    min-height:8px;
    height:8px;
  }
}

@media (max-width:390px) {
  .tts-compact .tts-hero {
    height:auto;
    min-height:238px;
  }

  .tts-compact .tts-hero-copy {
    padding:28px 15px 66px;
  }
}

@keyframes ttsDurationInternalSheen {
  0%,24% {
    transform:translate3d(-190%,0,0) skewX(-17deg);
    opacity:0;
  }

  34% {
    opacity:.82;
  }

  58% {
    transform:translate3d(610%,0,0) skewX(-17deg);
    opacity:.36;
  }

  66%,100% {
    transform:translate3d(610%,0,0) skewX(-17deg);
    opacity:0;
  }
}

@media (prefers-reduced-motion:reduce) {
  .tts-compact .tts-duration-switcher::after {
    display:none!important;
  }
}



.tts-compact a.tts-enquire {
  text-decoration:none;
}

/* =========================================================
   VERSION 2.0.1 — VIEWPORT-LEVEL DURATION BAR
========================================================= */

/*
 * Elementor, theme and animation containers may create overflow
 * or transform containing blocks that prevent native sticky
 * positioning. The original bar remains in normal document flow;
 * JavaScript displays this viewport-level styled clone only while
 * the itinerary itself remains in view.
 */
.tts-compact:not(.tts-duration-fixed-host)
> .tts-duration-switcher {
  position:relative!important;
  top:auto!important;
}

.tts-duration-fixed-host {
  position:fixed!important;
  z-index:2147482000!important;
  width:auto;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  overflow:visible!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  isolation:isolate;
  contain:layout style!important;
  pointer-events:none;
  opacity:0;
  transform:translate3d(0,-6px,0);
  transition:
    opacity .18s ease,
    transform .18s ease;
}

.tts-duration-fixed-host[hidden] {
  display:none!important;
}

.tts-duration-fixed-host.is-visible {
  opacity:1;
  transform:translate3d(0,0,0);
}

.tts-duration-fixed-host
> .tts-duration-switcher {
  position:relative!important;
  top:auto!important;
  width:100%;
  margin:0;
  pointer-events:auto;
  border-radius:0 0 10px 10px;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.05),
    inset 0 -1px 0 rgba(0,0,0,.30),
    0 10px 24px rgba(24,1,4,.28);
}

.tts-duration-fixed-host
> .tts-duration-switcher.is-divider-only {
  border-radius:0 0 7px 7px;
}

body.admin-bar
.tts-duration-fixed-host {
  /*
   * JavaScript calculates the exact admin-bar bottom.
   * This fallback avoids a first-frame overlap before measurement.
   */
  top:32px;
}

@media (max-width:782px) {
  body.admin-bar
  .tts-duration-fixed-host {
    top:46px;
  }
}

@media (prefers-reduced-motion:reduce) {
  .tts-duration-fixed-host {
    transition:none!important;
    transform:none!important;
  }
}

