/* =========================================================
   FIRST-PAINT STABILITY
========================================================= */
.tt-attractions-block.tt-at-awaiting-first-paint {
  visibility:hidden!important;
  opacity:0!important;
}

.tt-attractions-block.tt-at-first-paint-ready {
  visibility:visible!important;
  opacity:1!important;
}

.tt-attractions-block > .tt-at-modal {
  display:none!important;
}

body > .tt-at-modal:not(.tt-at-modal-portal-ready) {
  display:none!important;
}

.tt-attractions-block {
  --at-black:#070303;
  --at-deep:#100606;
  --at-wine:#300505;
  --at-wine-soft:#4A1110;
  --at-rust:#AA5432;
  --at-rust-light:#C8754F;
  --at-gold:#B98532;
  --at-gold-soft:#D3AE68;
  --at-ivory:#FFF8EA;
  --at-cream:#F3E3C6;
  --at-muted:#CBBDA9;

  position:relative;
  width:100%;
  margin:0!important;
  padding:0!important;
  overflow:hidden;
  border:1px solid rgba(185,133,50,.62);
  border-radius:16px;
  background:
    radial-gradient(circle at 10% 4%,rgba(170,84,50,.18),transparent 27%),
    radial-gradient(circle at 92% 8%,rgba(185,133,50,.14),transparent 26%),
    radial-gradient(circle at 52% 116%,rgba(120,28,22,.30),transparent 48%),
    linear-gradient(145deg,#090303 0%,#160707 49%,#0B0303 100%);
  box-shadow:
    0 30px 72px rgba(0,0,0,.34),
    0 8px 22px rgba(48,5,5,.24),
    inset 0 1px 0 rgba(255,248,234,.05);
  isolation:isolate;
  contain:layout paint style;
  box-sizing:border-box;
}

.tt-attractions-block * {
  box-sizing:border-box;
}

.tt-attractions-block .tt-at-shell {
  position:relative;
  padding:38px 0 42px;
  overflow:hidden;
}

.tt-attractions-block .tt-at-shell::before {
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  opacity:.28;
  background:
    repeating-radial-gradient(
      circle at 50% 0%,
      transparent 0 62px,
      rgba(185,133,50,.026) 63px 64px
    );
}

.tt-attractions-block .tt-at-shell::after {
  content:"";
  position:absolute;
  inset:11px;
  z-index:1;
  pointer-events:none;
  border:1px solid rgba(185,133,50,.15);
  border-radius:11px;
  box-shadow:inset 0 0 28px rgba(185,133,50,.035);
}

.tt-attractions-block .tt-at-glow {
  position:absolute;
  z-index:0;
  width:330px;
  height:330px;
  border-radius:50%;
  pointer-events:none;
  filter:blur(2px);
}

.tt-attractions-block .tt-at-glow-a {
  left:-150px;
  top:-55px;
  background:radial-gradient(circle,rgba(170,84,50,.16),transparent 68%);
}

.tt-attractions-block .tt-at-glow-b {
  right:-150px;
  bottom:-110px;
  background:radial-gradient(circle,rgba(185,133,50,.14),transparent 68%);
}

.tt-attractions-block .tt-at-header {
  position:relative;
  z-index:4;
  max-width:720px;
  margin:0 auto 24px;
  padding:0 28px;
  text-align:center;
}

.tt-attractions-block .tt-at-header::before {
  content:"";
  position:absolute;
  top:-18px;
  left:50%;
  width:240px;
  height:95px;
  transform:translateX(-50%);
  pointer-events:none;
  background:
    radial-gradient(ellipse at center,rgba(185,133,50,.11),transparent 69%);
}

.tt-attractions-block .tt-at-ornament {
  position:relative;
  z-index:2;
  display:flex;
  align-items:center;
  gap:11px;
  width:150px;
  margin:0 auto 11px;
}

.tt-attractions-block .tt-at-ornament span {
  flex:1;
  height:1px;
  background:linear-gradient(
    90deg,
    transparent,
    rgba(185,133,50,.9),
    transparent
  );
}

.tt-attractions-block .tt-at-ornament i {
  width:9px;
  height:9px;
  border:1px solid var(--at-rust-light);
  transform:rotate(45deg);
  box-shadow:
    0 0 0 4px rgba(170,84,50,.08),
    0 0 18px rgba(185,133,50,.24);
}

.tt-attractions-block .tt-at-eyebrow {
  position:relative;
  z-index:2;
  display:block;
  margin-bottom:6px;
  color:var(--at-gold-soft);
  font-family:"Montserrat",sans-serif;
  font-size:7.8px;
  font-weight:700;
  line-height:1.3;
  letter-spacing:1.9px;
  text-transform:uppercase;
}

.tt-attractions-block .tt-at-header h2 {
  position:relative;
  z-index:2;
  margin:0 0 8px;
  color:var(--at-ivory);
  font-family:"Expletus Sans",sans-serif;
  font-size:clamp(31px,4vw,48px);
  font-weight:600;
  line-height:.98;
  letter-spacing:-.55px;
  text-transform:uppercase;
  text-shadow:
    0 4px 24px rgba(0,0,0,.55),
    0 0 30px rgba(170,84,50,.12);
}

.tt-attractions-block .tt-at-header p {
  position:relative;
  z-index:2;
  max-width:560px;
  margin:0 auto;
  color:rgba(255,248,234,.74);
  font-family:"Montserrat",sans-serif;
  font-size:9.8px;
  line-height:1.58;
}

.tt-attractions-block .tt-at-rail-label {
  position:relative;
  z-index:4;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  margin:0 0 12px;
  padding:0 24px;
  color:rgba(211,174,104,.66);
  font-family:"Montserrat",sans-serif;
  font-size:7.3px;
  font-weight:700;
  letter-spacing:1.45px;
  text-transform:uppercase;
}

.tt-attractions-block .tt-at-rail-label i {
  width:4px;
  height:4px;
  border-radius:50%;
  background:var(--at-rust-light);
  box-shadow:
    0 0 0 4px rgba(170,84,50,.10),
    0 0 14px rgba(170,84,50,.35);
}

.tt-attractions-block .tt-at-viewport {
  position:relative;
  z-index:4;
  width:100%;
  overflow:hidden;
  cursor:grab;
  touch-action:pan-y pinch-zoom;
  user-select:none;
  -webkit-user-select:none;
  padding:12px 0 16px;
  -webkit-mask-image:linear-gradient(
    90deg,
    transparent 0,
    #000 4.5%,
    #000 95.5%,
    transparent 100%
  );
  mask-image:linear-gradient(
    90deg,
    transparent 0,
    #000 4.5%,
    #000 95.5%,
    transparent 100%
  );
}

.tt-attractions-block .tt-at-viewport::before,
.tt-attractions-block .tt-at-viewport::after {
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  z-index:8;
  width:9%;
  pointer-events:none;
}

.tt-attractions-block .tt-at-viewport::before {
  left:0;
  background:linear-gradient(90deg,rgba(9,3,3,.97),transparent);
}

.tt-attractions-block .tt-at-viewport::after {
  right:0;
  background:linear-gradient(270deg,rgba(11,3,3,.97),transparent);
}

.tt-attractions-block .tt-at-viewport.is-dragging {
  cursor:grabbing;
}

.tt-attractions-block .tt-at-track {
  display:flex;
  width:max-content;
  will-change:transform;
}

.tt-attractions-block .tt-at-group {
  display:flex;
  flex:0 0 auto;
  gap:18px;
  padding-right:18px;
}

.tt-attractions-block .tt-at-card {
  --at-accent:#D8A653;
  --at-accent-soft:rgba(216,166,83,.20);

  position:relative;
  flex:0 0 min(43vw,470px);
  height:auto;
  overflow:hidden;
  border:1px solid rgba(185,133,50,.23);
  border-radius:16px;
  background:
    linear-gradient(180deg,#1A0A09 0%,#120606 100%);
  box-shadow:
    0 18px 46px rgba(0,0,0,.35),
    inset 0 1px 0 rgba(255,248,234,.04);
  opacity:.58;
  transform:scale(.91);
  filter:saturate(.76) brightness(.76);
  transition:
    transform .45s cubic-bezier(.2,.72,.2,1),
    opacity .45s ease,
    filter .45s ease,
    border-color .45s ease,
    box-shadow .45s ease;
}

.tt-attractions-block .tt-at-group .tt-at-card:nth-child(1) {
  --at-accent:#E5B04A;
  --at-accent-soft:rgba(229,176,74,.23);
}

.tt-attractions-block .tt-at-group .tt-at-card:nth-child(2) {
  --at-accent:#D36A55;
  --at-accent-soft:rgba(211,106,85,.23);
}

.tt-attractions-block .tt-at-group .tt-at-card:nth-child(3) {
  --at-accent:#D88742;
  --at-accent-soft:rgba(216,135,66,.23);
}

.tt-attractions-block .tt-at-group .tt-at-card:nth-child(4) {
  --at-accent:#B85A91;
  --at-accent-soft:rgba(184,90,145,.22);
}

.tt-attractions-block .tt-at-group .tt-at-card:nth-child(5) {
  --at-accent:#C88745;
  --at-accent-soft:rgba(200,135,69,.22);
}

.tt-attractions-block .tt-at-group .tt-at-card:nth-child(6) {
  --at-accent:#D4B260;
  --at-accent-soft:rgba(212,178,96,.22);
}

.tt-attractions-block .tt-at-group .tt-at-card:nth-child(7) {
  --at-accent:#9E694C;
  --at-accent-soft:rgba(158,105,76,.22);
}

.tt-attractions-block .tt-at-card::before {
  content:"";
  position:absolute;
  top:0;
  left:18%;
  right:18%;
  z-index:9;
  height:1px;
  background:linear-gradient(
    90deg,
    transparent,
    var(--at-accent),
    transparent
  );
  box-shadow:0 0 16px var(--at-accent-soft);
}

.tt-attractions-block .tt-at-card::after {
  content:"";
  position:absolute;
  inset:6px;
  z-index:9;
  pointer-events:none;
  border:1px solid rgba(255,248,234,.055);
  border-radius:11px;
}

.tt-attractions-block .tt-at-card.is-centre {
  z-index:5;
  opacity:1;
  transform:scale(1);
  filter:saturate(1.04) brightness(1);
  border-color:color-mix(in srgb,var(--at-accent) 56%,#5E271A);
  box-shadow:
    0 28px 62px rgba(0,0,0,.48),
    0 0 0 1px var(--at-accent-soft),
    0 0 34px var(--at-accent-soft),
    inset 0 1px 0 rgba(255,248,234,.06);
}

.tt-attractions-block .tt-at-card.tt-at-linked-card {
  cursor:pointer;
}

.tt-attractions-block .tt-at-card.tt-at-linked-card:focus-visible {
  outline:2px solid var(--at-accent);
  outline-offset:4px;
}

.tt-attractions-block .tt-at-media-wrap {
  position:relative;
  width:100%;
  aspect-ratio:16/9;
  overflow:hidden;
  background:#070303;
  border-bottom:1px solid rgba(185,133,50,.18);
}

.tt-attractions-block .tt-at-media-wrap::before {
  content:"";
  position:absolute;
  inset:10px;
  z-index:4;
  pointer-events:none;
  border:1px solid rgba(255,248,234,.10);
  border-radius:8px;
}

.tt-attractions-block .tt-at-image {
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center;
  pointer-events:none;
  transform:scale(1.001);
  transition:transform 6s ease;
}

.tt-attractions-block .tt-at-card.is-centre .tt-at-image {
  transform:scale(1.018);
}

.tt-attractions-block .tt-at-image-shade {
  position:absolute;
  inset:0;
  z-index:2;
  background:
    linear-gradient(
      180deg,
      rgba(0,0,0,.02) 0%,
      rgba(0,0,0,.01) 72%,
      rgba(0,0,0,.18) 100%
    ),
    linear-gradient(
      90deg,
      color-mix(in srgb,var(--at-accent) 8%,transparent),
      transparent 40%
    );
  pointer-events:none;
}

.tt-attractions-block .tt-at-image-shade::after {
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:22%;
  background:linear-gradient(180deg,transparent,rgba(0,0,0,.15));
}

.tt-attractions-block .tt-at-card-number {
  display:none;
}

.tt-attractions-block .tt-at-copy {
  position:relative;
  z-index:5;
  min-height:130px;
  display:flex;
  flex-direction:column;
  padding:17px 20px 16px;
  color:var(--at-cream);
  background:
    radial-gradient(circle at 94% 10%,var(--at-accent-soft),transparent 35%),
    linear-gradient(145deg,#1A0A09 0%,#100505 100%);
}

.tt-attractions-block .tt-at-copy::before {
  content:"";
  position:absolute;
  top:0;
  left:20px;
  right:20px;
  height:1px;
  background:linear-gradient(
    90deg,
    transparent,
    var(--at-accent),
    transparent
  );
  opacity:.65;
}

.tt-attractions-block .tt-at-kicker {
  display:block;
  margin-bottom:6px;
  color:var(--at-accent);
  font-family:"Montserrat",sans-serif;
  font-size:7px;
  font-weight:700;
  line-height:1.3;
  letter-spacing:1.2px;
  text-transform:uppercase;
}

.tt-attractions-block .tt-at-copy h3 {
  max-width:430px;
  margin:0 0 7px;
  color:var(--at-ivory);
  font-family:"Expletus Sans",sans-serif;
  font-size:17px;
  font-weight:600;
  line-height:1.16;
  letter-spacing:-.28px;
  text-shadow:0 3px 18px rgba(0,0,0,.36);
}

.tt-attractions-block .tt-at-copy p {
  max-width:430px;
  margin:0;
  color:rgba(255,248,234,.72);
  font-family:"Montserrat",sans-serif;
  font-size:8.2px;
  line-height:1.48;
}

.tt-attractions-block .tt-at-link-cue {
  display:inline-flex;
  align-items:center;
  gap:7px;
  align-self:flex-start;
  margin-top:auto;
  padding:5px 8px 5px 9px;
  border:1px solid rgba(185,133,50,.27);
  border-radius:999px;
  background:rgba(255,248,234,.025);
  color:var(--at-gold-soft);
  font-family:"Montserrat",sans-serif;
  font-size:5.9px;
  font-weight:700;
  letter-spacing:.72px;
  text-transform:uppercase;
  opacity:0;
  transform:translateY(4px);
  transition:
    opacity .23s ease,
    transform .23s ease,
    color .23s ease,
    border-color .23s ease,
    background .23s ease;
}

.tt-attractions-block .tt-at-linked-card .tt-at-link-cue {
  opacity:.78;
  transform:translateY(0);
}

.tt-attractions-block .tt-at-linked-card:hover .tt-at-link-cue,
.tt-attractions-block .tt-at-linked-card:focus-visible .tt-at-link-cue {
  opacity:1;
  color:var(--at-ivory);
  border-color:color-mix(in srgb,var(--at-accent) 55%,transparent);
  background:color-mix(in srgb,var(--at-accent) 12%,transparent);
}

.tt-attractions-block .tt-at-link-cue svg {
  width:14px;
  height:14px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
  transition:transform .22s ease;
}

.tt-attractions-block .tt-at-linked-card:hover .tt-at-link-cue svg {
  transform:translateX(3px);
}

.tt-attractions-block .tt-at-footer {
  position:relative;
  z-index:4;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  margin-top:12px;
  padding:0 68px;
  color:rgba(211,174,104,.50);
  font-family:"Montserrat",sans-serif;
  font-size:7.2px;
  font-weight:600;
  letter-spacing:1.15px;
  text-align:center;
  text-transform:uppercase;
}

.tt-attractions-block .tt-at-footer-line {
  width:46px;
  height:1px;
  background:linear-gradient(
    90deg,
    transparent,
    rgba(185,133,50,.48),
    transparent
  );
}

.tt-attractions-block .tt-at-motion-toggle {
  position:absolute;
  right:14px;
  bottom:14px;
  z-index:20;
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  padding:0;
  border:1px solid rgba(185,133,50,.30);
  border-radius:50%;
  background:rgba(18,6,6,.88);
  color:var(--at-gold-soft);
  box-shadow:
    0 10px 22px rgba(0,0,0,.34),
    inset 0 1px 0 rgba(255,248,234,.05);
  cursor:pointer;
  transition:
    transform .22s ease,
    background .22s ease,
    color .22s ease,
    border-color .22s ease;
}

.tt-attractions-block .tt-at-motion-toggle:hover,
.tt-attractions-block .tt-at-motion-toggle:focus-visible {
  background:var(--at-rust);
  color:#fff;
  border-color:var(--at-rust-light);
  transform:translateY(-2px);
}

.tt-attractions-block .tt-at-motion-toggle:focus-visible {
  outline:2px solid rgba(185,133,50,.72);
  outline-offset:3px;
}

.tt-attractions-block .tt-at-motion-toggle svg {
  width:15px;
  height:15px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.9;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.tt-attractions-block .tt-at-play-icon {
  display:none;
}

.tt-attractions-block .tt-at-motion-toggle.is-stopped .tt-at-pause-icon {
  display:none;
}

.tt-attractions-block .tt-at-motion-toggle.is-stopped .tt-at-play-icon {
  display:block;
}

@media (max-width:1024px) {
  .tt-attractions-block .tt-at-shell {
    padding:34px 0 39px;
  }

  .tt-attractions-block .tt-at-header {
    margin-bottom:21px;
  }

  .tt-attractions-block .tt-at-card {
    flex-basis:calc((100vw - 54px) / 2);
    max-width:430px;
  }

  .tt-attractions-block .tt-at-copy {
    min-height:124px;
    padding:15px 17px 14px;
  }

  .tt-attractions-block .tt-at-copy::before {
    left:17px;
    right:17px;
  }

  .tt-attractions-block .tt-at-copy h3 {
    font-size:15px;
  }

  .tt-attractions-block .tt-at-copy p {
    font-size:7.5px;
  }
}

@media (max-width:767px) {
  .tt-attractions-block {
    border-radius:11px;
  }

  .tt-attractions-block .tt-at-shell {
    padding:28px 0 41px;
  }

  .tt-attractions-block .tt-at-shell::after {
    inset:7px;
    border-radius:7px;
  }

  .tt-attractions-block .tt-at-header {
    margin-bottom:19px;
    padding:0 18px;
  }

  .tt-attractions-block .tt-at-ornament {
    width:126px;
    margin-bottom:11px;
  }

  .tt-attractions-block .tt-at-eyebrow {
    margin-bottom:6px;
    font-size:7.5px;
    letter-spacing:1.7px;
  }

  .tt-attractions-block .tt-at-header h2 {
    margin-bottom:7px;
    font-size:26px;
  }

  .tt-attractions-block .tt-at-header p {
    max-width:360px;
    font-size:8.8px;
    line-height:1.5;
  }

  .tt-attractions-block .tt-at-rail-label {
    margin-bottom:9px;
    font-size:6.2px;
    letter-spacing:1px;
  }

  .tt-attractions-block .tt-at-viewport {
    padding:10px 0 14px;
    -webkit-mask-image:linear-gradient(
      90deg,
      transparent 0,
      #000 6%,
      #000 94%,
      transparent 100%
    );
    mask-image:linear-gradient(
      90deg,
      transparent 0,
      #000 6%,
      #000 94%,
      transparent 100%
    );
  }

  .tt-attractions-block .tt-at-group {
    gap:12px;
    padding-right:12px;
  }

  .tt-attractions-block .tt-at-card {
    flex-basis:292px;
    max-width:none;
    border-radius:13px;
    transform:scale(.92);
  }

  .tt-attractions-block .tt-at-card::after {
    inset:5px;
    border-radius:9px;
  }

  .tt-attractions-block .tt-at-media-wrap::before {
    inset:7px;
    border-radius:6px;
  }

  .tt-attractions-block .tt-at-copy {
    min-height:118px;
    padding:14px 16px 13px;
  }

  .tt-attractions-block .tt-at-copy::before {
    left:16px;
    right:16px;
  }

  .tt-attractions-block .tt-at-kicker {
    margin-bottom:5px;
    font-size:6.5px;
    letter-spacing:1.2px;
  }

  .tt-attractions-block .tt-at-copy h3 {
    margin-bottom:6px;
    font-size:14px;
    line-height:1.16;
  }

  .tt-attractions-block .tt-at-copy p {
    font-size:7.2px;
    line-height:1.42;
  }

  .tt-attractions-block .tt-at-link-cue {
    margin-top:auto;
    padding:5px 8px 5px 9px;
    font-size:5.8px;
  }

  .tt-attractions-block .tt-at-footer {
    gap:8px;
    margin-top:9px;
    padding:0 48px;
    font-size:6.4px;
    letter-spacing:.85px;
  }

  .tt-attractions-block .tt-at-footer-line {
    width:25px;
  }

  .tt-attractions-block .tt-at-motion-toggle {
    right:9px;
    bottom:9px;
    width:31px;
    height:31px;
  }
}

@media (max-width:390px) {
  .tt-attractions-block .tt-at-card {
    flex-basis:282px;
  }

  .tt-attractions-block .tt-at-copy {
    min-height:126px;
    padding:14px 15px 13px;
  }

  .tt-attractions-block .tt-at-copy::before {
    left:15px;
    right:15px;
  }

  .tt-attractions-block .tt-at-copy h3 {
    font-size:14.5px;
  }

  .tt-attractions-block .tt-at-copy p {
    display:none;
  }

  .tt-attractions-block .tt-at-link-cue {
    margin-top:auto;
  }
}

@media (prefers-reduced-motion:reduce) {
  .tt-attractions-block *,
  .tt-attractions-block *::before,
  .tt-attractions-block *::after {
    transition-duration:.01ms!important;
  }
}

@media (min-width:1025px) {
  .tt-attractions-block .tt-at-card {
    flex-basis:calc((100vw - 118px) / 2);
    max-width:470px;
  }
}


@media (min-width:1025px) {
  .tt-attractions-block .tt-at-shell {
    padding:24px 0 28px;
  }

  .tt-attractions-block .tt-at-header {
    max-width:650px;
    margin-bottom:14px;
    padding:0 24px;
  }

  .tt-attractions-block .tt-at-header::before {
    top:-12px;
    width:190px;
    height:68px;
  }

  .tt-attractions-block .tt-at-ornament {
    width:126px;
    margin-bottom:7px;
  }

  .tt-attractions-block .tt-at-ornament i {
    width:7px;
    height:7px;
  }

  .tt-attractions-block .tt-at-eyebrow {
    margin-bottom:4px;
    font-size:6.9px;
    letter-spacing:1.55px;
  }

  .tt-attractions-block .tt-at-header h2 {
    margin-bottom:5px;
    font-size:36px;
    line-height:1;
  }

  .tt-attractions-block .tt-at-header p {
    max-width:520px;
    font-size:8.5px;
    line-height:1.45;
  }

  .tt-attractions-block .tt-at-rail-label {
    margin-bottom:6px;
    font-size:6.4px;
    letter-spacing:1px;
  }

  .tt-attractions-block .tt-at-viewport {
    padding:7px 0 9px;
  }

  .tt-attractions-block .tt-at-group {
    gap:15px;
    padding-right:15px;
  }

  .tt-attractions-block .tt-at-card {
    flex-basis:370px;
    max-width:370px;
    border-radius:13px;
  }

  .tt-attractions-block .tt-at-card::after {
    inset:5px;
    border-radius:9px;
  }

  .tt-attractions-block .tt-at-media-wrap::before {
    inset:7px;
    border-radius:6px;
  }

  .tt-attractions-block .tt-at-copy {
    min-height:96px;
    padding:11px 15px 11px;
  }

  .tt-attractions-block .tt-at-copy::before {
    left:15px;
    right:15px;
  }

  .tt-attractions-block .tt-at-kicker {
    margin-bottom:4px;
    font-size:6.2px;
    letter-spacing:1px;
  }

  .tt-attractions-block .tt-at-copy h3 {
    max-width:340px;
    margin-bottom:4px;
    font-size:14px;
    line-height:1.14;
  }

  .tt-attractions-block .tt-at-copy p {
    max-width:340px;
    font-size:7px;
    line-height:1.38;
  }

  .tt-attractions-block .tt-at-link-cue {
    gap:6px;
    padding:4px 7px 4px 8px;
    font-size:5.3px;
  }

  .tt-attractions-block .tt-at-link-cue svg {
    width:11px;
    height:11px;
  }

  .tt-attractions-block .tt-at-footer {
    margin-top:7px;
    font-size:5.9px;
  }

  .tt-attractions-block .tt-at-footer-line {
    width:32px;
  }

  .tt-attractions-block .tt-at-motion-toggle {
    right:11px;
    bottom:11px;
    width:30px;
    height:30px;
  }
}


.tt-attractions-block .tt-at-cta-wrap {
  position:relative;
  z-index:5;
  display:flex;
  justify-content:center;
  margin-top:14px;
  padding:0 52px;
}

.tt-attractions-block .tt-at-cta {
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  min-height:36px;
  padding:9px 17px 9px 19px;
  overflow:hidden;
  border:1px solid rgba(185,133,50,.42);
  border-radius:8px;
  background:
    linear-gradient(135deg,rgba(170,84,50,.34),rgba(48,5,5,.82));
  color:#FFFFFF;
  box-shadow:
    0 10px 24px rgba(0,0,0,.24),
    inset 0 1px 0 rgba(255,248,234,.08);
  font-family:"Montserrat",sans-serif;
  font-size:8px;
  font-weight:700;
  letter-spacing:.45px;
  text-transform:uppercase;
  cursor:pointer;
  transition:
    transform .22s ease,
    background .22s ease,
    border-color .22s ease,
    box-shadow .22s ease;
}

.tt-attractions-block .tt-at-cta::before {
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  background:linear-gradient(135deg,var(--at-rust),var(--at-wine));
  opacity:0;
  transition:opacity .22s ease;
}

.tt-attractions-block .tt-at-cta span,
.tt-attractions-block .tt-at-cta svg {
  position:relative;
  z-index:1;
}

.tt-attractions-block .tt-at-cta svg {
  width:13px;
  height:13px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
  transition:transform .22s ease;
}

.tt-attractions-block .tt-at-cta:hover,
.tt-attractions-block .tt-at-cta:focus-visible {
  transform:translateY(-2px);
  border-color:var(--at-rust-light);
  box-shadow:
    0 14px 30px rgba(0,0,0,.31),
    0 0 22px rgba(170,84,50,.16);
}

.tt-attractions-block .tt-at-cta:hover::before,
.tt-attractions-block .tt-at-cta:focus-visible::before {
  opacity:1;
}

.tt-attractions-block .tt-at-cta:hover svg,
.tt-attractions-block .tt-at-cta:focus-visible svg {
  transform:translateX(3px);
}

.tt-attractions-block .tt-at-cta:focus-visible {
  outline:2px solid rgba(185,133,50,.72);
  outline-offset:3px;
}

@media (max-width:767px) {
  .tt-attractions-block .tt-at-cta-wrap {
    margin-top:11px;
    padding:0 42px;
  }

  .tt-attractions-block .tt-at-cta {
    min-height:34px;
    padding:8px 14px 8px 16px;
    border-radius:7px;
    font-size:7.2px;
    letter-spacing:.35px;
  }
}


.tt-attractions-block .tt-at-cta span {
  color:#FFFFFF;
  text-shadow:0 1px 2px rgba(0,0,0,.48);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}



.tt-attractions-block .tt-at-image {
  -webkit-user-drag:none;
  user-select:none;
}

.tt-attractions-block .tt-at-card {
  cursor:pointer;
}

.tt-attractions-block .tt-at-card:focus-visible {
  outline:2px solid var(--at-accent);
  outline-offset:4px;
}

/* ---------------------------------------------------------
   ATTRACTION DETAIL MODAL
---------------------------------------------------------- */
body > .tt-at-modal {
  --at-black:#070303;
  --at-deep:#100606;
  --at-wine:#300505;
  --at-wine-soft:#4A1110;
  --at-rust:#AA5432;
  --at-rust-light:#C8754F;
  --at-gold:#B98532;
  --at-gold-soft:#D3AE68;
  --at-ivory:#FFF8EA;
  --at-cream:#F3E3C6;
  --at-muted:#CBBDA9;

  position:fixed;
  inset:0;
  z-index:999999;
  display:grid;
  place-items:center;
  padding:24px;
  background:rgba(4,1,1,.82);
  -webkit-backdrop-filter:blur(12px);
  backdrop-filter:blur(12px);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .28s ease,visibility .28s ease;
}

body > .tt-at-modal.is-open {
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}

body > .tt-at-modal .tt-at-modal-dialog {
  position:relative;
  width:min(980px,100%);
  max-height:calc(100dvh - 48px);
  overflow:auto;
  display:grid;
  grid-template-columns:minmax(320px,44%) minmax(0,56%);
  border:1px solid rgba(185,133,50,.48);
  border-radius:17px;
  background:
    radial-gradient(circle at 12% 5%,rgba(170,84,50,.19),transparent 27%),
    linear-gradient(145deg,#160706 0%,#090303 100%);
  box-shadow:
    0 36px 90px rgba(0,0,0,.62),
    0 0 0 1px rgba(255,248,234,.035),
    inset 0 1px 0 rgba(255,248,234,.06);
  transform:translateY(18px) scale(.975);
  transition:transform .32s cubic-bezier(.2,.72,.2,1);
  scrollbar-width:thin;
  scrollbar-color:rgba(185,133,50,.45) transparent;
}

body > .tt-at-modal.is-open .tt-at-modal-dialog {
  transform:translateY(0) scale(1);
}

body > .tt-at-modal .tt-at-modal-media {
  position:relative;
  min-height:100%;
  overflow:hidden;
  background:#080303;
}

body > .tt-at-modal .tt-at-modal-media::after {
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(180deg,transparent 55%,rgba(7,2,2,.50)),
    linear-gradient(90deg,rgba(170,84,50,.14),transparent 42%);
}

body > .tt-at-modal .tt-at-modal-image {
  width:100%;
  height:100%;
  min-height:520px;
  display:block;
  object-fit:cover;
}

body > .tt-at-modal .tt-at-modal-content {
  position:relative;
  padding:46px 42px 38px;
  color:var(--at-cream);
}

body > .tt-at-modal .tt-at-modal-close {
  position:absolute;
  top:14px;
  right:14px;
  z-index:5;
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  padding:0;
  border:1px solid rgba(185,133,50,.36);
  border-radius:50%;
  background:rgba(12,4,4,.78);
  color:var(--at-ivory);
  box-shadow:0 8px 20px rgba(0,0,0,.28);
  cursor:pointer;
  transition:transform .2s ease,background .2s ease,border-color .2s ease;
}

body > .tt-at-modal .tt-at-modal-close:hover,
body > .tt-at-modal .tt-at-modal-close:focus-visible {
  transform:rotate(5deg) scale(1.05);
  background:var(--at-rust);
  border-color:var(--at-rust-light);
}

body > .tt-at-modal .tt-at-modal-close:focus-visible {
  outline:2px solid rgba(185,133,50,.75);
  outline-offset:3px;
}

body > .tt-at-modal .tt-at-modal-close svg {
  width:16px;
  height:16px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
}

body > .tt-at-modal .tt-at-modal-kicker {
  display:block;
  margin-bottom:10px;
  padding-right:34px;
  color:var(--at-gold-soft);
  font-family:"Montserrat",sans-serif;
  font-size:8px;
  font-weight:700;
  line-height:1.4;
  letter-spacing:1.55px;
  text-transform:uppercase;
}

body > .tt-at-modal .tt-at-modal-title {
  margin:0 0 20px;
  padding-right:28px;
  color:var(--at-ivory);
  font-family:"Expletus Sans",sans-serif;
  font-size:clamp(28px,3.2vw,42px);
  font-weight:600;
  line-height:1.04;
  letter-spacing:-.45px;
}

body > .tt-at-modal .tt-at-modal-divider {
  width:74px;
  height:1px;
  margin:0 0 20px;
  background:linear-gradient(90deg,var(--at-rust-light),var(--at-gold),transparent);
}

body > .tt-at-modal .tt-at-modal-text p {
  margin:0 0 13px;
  color:rgba(255,248,234,.76);
  font-family:"Montserrat",sans-serif;
  font-size:10px;
  line-height:1.72;
}

body > .tt-at-modal .tt-at-modal-text p:last-child {
  margin-bottom:0;
}

body > .tt-at-modal .tt-at-modal-highlights-title {
  display:block;
  margin:24px 0 10px;
  color:var(--at-gold-soft);
  font-family:"Montserrat",sans-serif;
  font-size:7.4px;
  font-weight:700;
  letter-spacing:1.45px;
  text-transform:uppercase;
}

body > .tt-at-modal .tt-at-modal-highlights {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  margin:0;
  padding:0;
  list-style:none;
}

body > .tt-at-modal .tt-at-modal-highlights li {
  position:relative;
  min-height:42px;
  display:flex;
  align-items:center;
  padding:9px 10px 9px 25px;
  border:1px solid rgba(185,133,50,.18);
  border-radius:8px;
  background:rgba(255,248,234,.025);
  color:rgba(255,248,234,.74);
  font-family:"Montserrat",sans-serif;
  font-size:7.6px;
  font-weight:500;
  line-height:1.4;
}

body > .tt-at-modal .tt-at-modal-highlights li::before {
  content:"";
  position:absolute;
  left:10px;
  width:6px;
  height:6px;
  border:1px solid var(--at-rust-light);
  transform:rotate(45deg);
}

@media (max-width:767px) {
  body > .tt-at-modal {
    align-items:end;
    padding:10px;
  }

  body > .tt-at-modal .tt-at-modal-dialog {
    max-height:92dvh;
    grid-template-columns:1fr;
    border-radius:14px;
  }

  body > .tt-at-modal .tt-at-modal-media {
    min-height:auto;
  }

  body > .tt-at-modal .tt-at-modal-image {
    width:100%;
    height:auto;
    min-height:0;
    aspect-ratio:16/10;
  }

  body > .tt-at-modal .tt-at-modal-content {
    padding:27px 20px 24px;
  }

  body > .tt-at-modal .tt-at-modal-close {
    top:10px;
    right:10px;
    width:32px;
    height:32px;
  }

  body > .tt-at-modal .tt-at-modal-kicker {
    margin-bottom:7px;
    font-size:7px;
  }

  body > .tt-at-modal .tt-at-modal-title {
    margin-bottom:14px;
    font-size:25px;
  }

  body > .tt-at-modal .tt-at-modal-divider {
    margin-bottom:15px;
  }

  body > .tt-at-modal .tt-at-modal-text p {
    margin-bottom:10px;
    font-size:8.7px;
    line-height:1.62;
  }

  body > .tt-at-modal .tt-at-modal-highlights-title {
    margin-top:18px;
  }

  body > .tt-at-modal .tt-at-modal-highlights {
    grid-template-columns:1fr;
    gap:6px;
  }

  body > .tt-at-modal .tt-at-modal-highlights li {
    min-height:36px;
    font-size:7px;
  }
}


/* =========================================================
   REQUESTED AGRA ATTRACTIONS REFINEMENTS
========================================================= */
.tt-attractions-block .tt-at-ornament,
.tt-attractions-block .tt-at-header p,
.tt-attractions-block .tt-at-cta-wrap {
  display:none!important;
}

.tt-attractions-block .tt-at-header {
  margin-bottom:18px;
}

.tt-attractions-block .tt-at-header h2 {
  margin-bottom:0;
  font-size:clamp(25px,3vw,36px);
  line-height:1.02;
}

.tt-attractions-block .tt-at-kicker {
  font-size:8px;
  line-height:1.35;
  letter-spacing:1.15px;
}

.tt-attractions-block .tt-at-copy p {
  font-size:9.2px;
  line-height:1.5;
}

@media (min-width:1025px) {
  .tt-attractions-block .tt-at-header {
    margin-bottom:10px;
  }

  .tt-attractions-block .tt-at-header h2 {
    font-size:29px;
  }

  .tt-attractions-block .tt-at-kicker {
    font-size:7.4px;
  }

  .tt-attractions-block .tt-at-copy p {
    font-size:8.2px;
    line-height:1.42;
  }
}

@media (min-width:768px) and (max-width:1024px) {
  .tt-attractions-block .tt-at-header h2 {
    font-size:27px;
  }

  .tt-attractions-block .tt-at-kicker {
    font-size:7.7px;
  }

  .tt-attractions-block .tt-at-copy p {
    font-size:8.4px;
  }
}

@media (max-width:767px) {
  .tt-attractions-block .tt-at-header {
    margin-bottom:14px;
  }

  .tt-attractions-block .tt-at-header h2 {
    font-size:22px;
  }

  .tt-attractions-block .tt-at-kicker {
    font-size:7.3px;
    letter-spacing:1px;
  }

  .tt-attractions-block .tt-at-copy p {
    display:block;
    font-size:8.1px;
    line-height:1.46;
  }
}

@media (max-width:390px) {
  .tt-attractions-block .tt-at-copy p {
    display:block;
  }
}


/* =========================================================
   AGRA ATTRACTIONS — TITLE, NUMBERING, PAGINATION & MOTION
========================================================= */

/* Remove the eyebrow line completely */
.tt-attractions-block .tt-at-eyebrow {
  display:none!important;
}

/* Smaller title, normal title case */
.tt-attractions-block .tt-at-header h2 {
  font-size:clamp(22px,2.35vw,31px)!important;
  line-height:1.04!important;
  letter-spacing:-.3px!important;
  text-transform:none!important;
}

/* Number stays inside each rail tile */
.tt-attractions-block .tt-at-card-number {
  position:absolute;
  top:14px;
  left:14px;
  z-index:6;
  display:inline-flex!important;
  align-items:center;
  justify-content:center;
  min-width:34px;
  height:24px;
  padding:0 8px;
  border:1px solid rgba(255,248,234,.24);
  border-radius:6px;
  background:rgba(10,3,3,.58);
  color:rgba(255,248,234,.9);
  box-shadow:
    0 8px 18px rgba(0,0,0,.20),
    inset 0 1px 0 rgba(255,255,255,.05);
  -webkit-backdrop-filter:blur(7px);
  backdrop-filter:blur(7px);
  font-family:"Montserrat",sans-serif;
  font-size:7px;
  font-weight:700;
  line-height:1;
  letter-spacing:1px;
}

/* Very slim, minimal pagination */
.tt-attractions-block .tt-at-pagination {
  position:relative;
  z-index:6;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  width:100%;
  min-height:12px;
  margin-top:3px;
  padding:0 22px;
}

.tt-attractions-block .tt-at-page {
  position:relative;
  flex:0 0 auto;
  width:18px;
  height:10px;
  display:grid;
  place-items:center;
  padding:0;
  border:0;
  background:transparent;
  cursor:pointer;
}

.tt-attractions-block .tt-at-page span {
  display:block;
  width:100%;
  height:1px;
  border-radius:999px;
  background:rgba(211,174,104,.25);
  transform:scaleX(.68);
  transform-origin:center;
  transition:
    transform .3s cubic-bezier(.2,.72,.2,1),
    background .3s ease,
    box-shadow .3s ease;
}

.tt-attractions-block .tt-at-page:hover span,
.tt-attractions-block .tt-at-page:focus-visible span {
  background:rgba(211,174,104,.62);
  transform:scaleX(.9);
}

.tt-attractions-block .tt-at-page.is-active span {
  background:linear-gradient(
    90deg,
    var(--at-rust-light),
    var(--at-gold-soft)
  );
  transform:scaleX(1);
  box-shadow:0 0 8px rgba(185,133,50,.30);
}

.tt-attractions-block .tt-at-page:focus-visible {
  outline:1px solid rgba(185,133,50,.55);
  outline-offset:2px;
  border-radius:4px;
}

/* Quiet premium entrance animation */
@keyframes ttAtHeaderReveal {
  from {
    opacity:0;
    transform:translateY(10px);
    letter-spacing:.8px;
  }
  to {
    opacity:1;
    transform:translateY(0);
    letter-spacing:-.3px;
  }
}

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

@keyframes ttAtNumberGlow {
  0%,100% {
    box-shadow:
      0 8px 18px rgba(0,0,0,.20),
      inset 0 1px 0 rgba(255,255,255,.05);
  }
  50% {
    box-shadow:
      0 8px 18px rgba(0,0,0,.20),
      0 0 13px var(--at-accent-soft),
      inset 0 1px 0 rgba(255,255,255,.05);
  }
}

.tt-attractions-block .tt-at-header h2 {
  animation:ttAtHeaderReveal .75s cubic-bezier(.2,.72,.2,1) both;
}

.tt-attractions-block .tt-at-viewport {
  animation:ttAtRailReveal .8s .12s cubic-bezier(.2,.72,.2,1) both;
}

/* Text inside the centred tile animates gently into focus */
.tt-attractions-block .tt-at-kicker,
.tt-attractions-block .tt-at-copy h3,
.tt-attractions-block .tt-at-copy p,
.tt-attractions-block .tt-at-link-cue {
  transition:
    opacity .42s ease,
    transform .42s cubic-bezier(.2,.72,.2,1),
    color .32s ease;
}

.tt-attractions-block .tt-at-card:not(.is-centre) .tt-at-kicker,
.tt-attractions-block .tt-at-card:not(.is-centre) .tt-at-copy h3,
.tt-attractions-block .tt-at-card:not(.is-centre) .tt-at-copy p,
.tt-attractions-block .tt-at-card:not(.is-centre) .tt-at-link-cue {
  opacity:.78;
  transform:translateY(3px);
}

.tt-attractions-block .tt-at-card.is-centre .tt-at-kicker,
.tt-attractions-block .tt-at-card.is-centre .tt-at-copy h3,
.tt-attractions-block .tt-at-card.is-centre .tt-at-copy p,
.tt-attractions-block .tt-at-card.is-centre .tt-at-link-cue {
  opacity:1;
  transform:translateY(0);
}

.tt-attractions-block .tt-at-card.is-centre .tt-at-card-number {
  animation:ttAtNumberGlow 2.8s ease-in-out infinite;
}

/* Elegant accent sweep only on the active card */
.tt-attractions-block .tt-at-card.is-centre::before {
  animation:ttAtAccentSweep 2.6s ease-in-out infinite;
}

@keyframes ttAtAccentSweep {
  0%,100% {
    opacity:.55;
    transform:scaleX(.72);
  }
  50% {
    opacity:1;
    transform:scaleX(1);
  }
}

@media (min-width:1025px) {
  .tt-attractions-block .tt-at-header h2 {
    font-size:25px!important;
  }

  .tt-attractions-block .tt-at-card-number {
    top:11px;
    left:11px;
    min-width:30px;
    height:21px;
    font-size:6.3px;
  }
}

@media (min-width:768px) and (max-width:1024px) {
  .tt-attractions-block .tt-at-header h2 {
    font-size:24px!important;
  }
}

@media (max-width:767px) {
  .tt-attractions-block .tt-at-header h2 {
    font-size:20px!important;
  }

  .tt-attractions-block .tt-at-card-number {
    top:10px;
    left:10px;
    min-width:29px;
    height:21px;
    font-size:6.2px;
  }

  .tt-attractions-block .tt-at-pagination {
    gap:4px;
    margin-top:1px;
  }

  .tt-attractions-block .tt-at-page {
    width:15px;
  }
}

@media (prefers-reduced-motion:reduce) {
  .tt-attractions-block .tt-at-header h2,
  .tt-attractions-block .tt-at-viewport,
  .tt-attractions-block .tt-at-card.is-centre .tt-at-card-number,
  .tt-attractions-block .tt-at-card.is-centre::before {
    animation:none!important;
  }
}


/* =========================================================
   SHORT TILE DESCRIPTION — VISIBILITY IMPROVEMENT
========================================================= */
.tt-attractions-block .tt-at-copy p {
  font-size:10.2px!important;
  line-height:1.55!important;
  color:rgba(255,248,234,.82)!important;
}

@media (min-width:1025px) {
  .tt-attractions-block .tt-at-copy p {
    font-size:9.2px!important;
    line-height:1.5!important;
  }
}

@media (min-width:768px) and (max-width:1024px) {
  .tt-attractions-block .tt-at-copy p {
    font-size:9.4px!important;
    line-height:1.52!important;
  }
}

@media (max-width:767px) {
  .tt-attractions-block .tt-at-copy p {
    display:block!important;
    font-size:8.8px!important;
    line-height:1.5!important;
  }
}


/* =========================================================
   RAIL FLICKER FIX — FIXED GEOMETRY / NO CENTRE RESIZING
========================================================= */
.tt-attractions-block .tt-at-card,
.tt-attractions-block .tt-at-card.is-centre {
  transform:none!important;
  transform-origin:center center!important;
}

.tt-attractions-block .tt-at-image,
.tt-attractions-block .tt-at-card.is-centre .tt-at-image {
  transform:none!important;
  transition:
    filter .42s ease,
    opacity .42s ease!important;
}

.tt-attractions-block .tt-at-kicker,
.tt-attractions-block .tt-at-copy h3,
.tt-attractions-block .tt-at-copy p,
.tt-attractions-block .tt-at-link-cue,
.tt-attractions-block .tt-at-card:not(.is-centre) .tt-at-kicker,
.tt-attractions-block .tt-at-card:not(.is-centre) .tt-at-copy h3,
.tt-attractions-block .tt-at-card:not(.is-centre) .tt-at-copy p,
.tt-attractions-block .tt-at-card:not(.is-centre) .tt-at-link-cue,
.tt-attractions-block .tt-at-card.is-centre .tt-at-kicker,
.tt-attractions-block .tt-at-card.is-centre .tt-at-copy h3,
.tt-attractions-block .tt-at-card.is-centre .tt-at-copy p,
.tt-attractions-block .tt-at-card.is-centre .tt-at-link-cue {
  transform:none!important;
}

.tt-attractions-block .tt-at-card {
  opacity:.66!important;
  filter:saturate(.82) brightness(.82)!important;
  transition:
    opacity .42s ease,
    filter .42s ease,
    border-color .42s ease,
    box-shadow .42s ease!important;
}

.tt-attractions-block .tt-at-card.is-centre {
  opacity:1!important;
  filter:saturate(1.03) brightness(1)!important;
}

.tt-attractions-block .tt-at-card.is-centre::before {
  animation:none!important;
  transform:none!important;
  opacity:1!important;
}

.tt-attractions-block .tt-at-card.is-centre .tt-at-card-number {
  animation:none!important;
  box-shadow:
    0 8px 18px rgba(0,0,0,.20),
    0 0 12px var(--at-accent-soft),
    inset 0 1px 0 rgba(255,255,255,.05)!important;
}

.tt-attractions-block .tt-at-track,
.tt-attractions-block .tt-at-group,
.tt-attractions-block .tt-at-card,
.tt-attractions-block .tt-at-media-wrap,
.tt-attractions-block .tt-at-image,
.tt-attractions-block .tt-at-copy {
  backface-visibility:hidden;
  -webkit-backface-visibility:hidden;
}

.tt-attractions-block .tt-at-track,
.tt-attractions-block .tt-at-card,
.tt-attractions-block .tt-at-image {
  will-change:transform;
}

.tt-attractions-block .tt-at-media-wrap {
  flex:0 0 auto;
  width:100%;
  aspect-ratio:16/9;
}

.tt-attractions-block .tt-at-copy {
  flex:0 0 auto;
  width:100%;
}

@media (min-width:1025px) {
  .tt-attractions-block .tt-at-copy {
    min-height:96px!important;
  }
}

@media (min-width:768px) and (max-width:1024px) {
  .tt-attractions-block .tt-at-copy {
    min-height:124px!important;
  }
}

@media (max-width:767px) {
  .tt-attractions-block .tt-at-copy {
    min-height:118px!important;
  }
}


/* =========================================================
   PERFORMANCE OPTIMISATION — NO VISUAL OR LAYOUT CHANGES
========================================================= */

/* Only the moving rail needs a permanent compositor hint. */
.tt-attractions-block .tt-at-track {
  will-change:transform!important;
  transform:translateZ(0);
  -webkit-transform:translateZ(0);
  backface-visibility:hidden;
  -webkit-backface-visibility:hidden;
}

/* Avoid creating a separate GPU layer for every image and card. */
.tt-attractions-block .tt-at-group,
.tt-attractions-block .tt-at-card,
.tt-attractions-block .tt-at-media-wrap,
.tt-attractions-block .tt-at-image,
.tt-attractions-block .tt-at-copy {
  will-change:auto!important;
}

/* Confine card repainting to each individual tile. */
.tt-attractions-block .tt-at-card {
  contain:layout paint style;
}

/* A hidden popup must not reserve an expensive blur layer. */
body > .tt-at-modal:not(.is-open) {
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
}

@media (max-width:767px) {
  /* Prevent browser touch heuristics from blocking vertical page scroll. */
  .tt-attractions-block .tt-at-viewport {
    touch-action:pan-y pinch-zoom;
    overscroll-behavior-x:contain;
  }
}


/* =========================================================
   PRESS-AND-HOLD SPEED CONTROL
========================================================= */
.tt-attractions-block .tt-at-speed-hold {
  position:absolute;
  left:11px;
  bottom:11px;
  z-index:20;
  display:grid;
  place-items:center;
  width:30px;
  height:30px;
  padding:0;
  border:1px solid rgba(185,133,50,.30);
  border-radius:50%;
  background:rgba(18,6,6,.88);
  color:var(--at-gold-soft);
  box-shadow:
    0 10px 22px rgba(0,0,0,.34),
    inset 0 1px 0 rgba(255,248,234,.05);
  cursor:pointer;
  touch-action:none;
  -webkit-user-select:none;
  user-select:none;
  transition:
    transform .18s ease,
    background .18s ease,
    color .18s ease,
    border-color .18s ease,
    box-shadow .18s ease;
}

.tt-attractions-block .tt-at-speed-hold svg {
  width:15px;
  height:15px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.tt-attractions-block .tt-at-speed-hold:hover,
.tt-attractions-block .tt-at-speed-hold:focus-visible,
.tt-attractions-block .tt-at-speed-hold.is-active {
  background:var(--at-rust);
  color:#fff;
  border-color:var(--at-rust-light);
}

.tt-attractions-block .tt-at-speed-hold:hover,
.tt-attractions-block .tt-at-speed-hold:focus-visible {
  transform:translateY(-2px);
}

.tt-attractions-block .tt-at-speed-hold.is-active {
  transform:scale(.94);
  box-shadow:
    0 6px 15px rgba(0,0,0,.30),
    0 0 18px rgba(170,84,50,.22),
    inset 0 1px 0 rgba(255,248,234,.08);
}

.tt-attractions-block .tt-at-speed-hold:focus-visible {
  outline:2px solid rgba(185,133,50,.72);
  outline-offset:3px;
}

@media (max-width:767px) {
  .tt-attractions-block .tt-at-speed-hold {
    left:9px;
    bottom:9px;
    width:31px;
    height:31px;
  }
}


/* =========================================================
   DEEP MOBILE SCROLL OPTIMISATION — VISUALS PRESERVED
========================================================= */
@media (max-width:767px) {
  /*
   * The viewport already has matching left/right gradient curtains.
   * Removing the additional CSS mask avoids an expensive live mask layer
   * while preserving the same edge fade.
   */
  .tt-attractions-block .tt-at-viewport {
    -webkit-mask-image:none!important;
    mask-image:none!important;
  }

  /*
   * Replace fourteen live backdrop-blur layers on number badges with
   * a visually matched translucent surface.
   */
  .tt-attractions-block .tt-at-card-number {
    -webkit-backdrop-filter:none!important;
    backdrop-filter:none!important;
    background:rgba(10,3,3,.74)!important;
  }

  /*
   * Keep the track as the sole promoted moving layer.
   */
  .tt-attractions-block .tt-at-card,
  .tt-attractions-block .tt-at-image,
  .tt-attractions-block .tt-at-copy,
  .tt-attractions-block .tt-at-media-wrap {
    transform:none!important;
    will-change:auto!important;
  }
}


/* =========================================================
   POPUP FLASH + MOBILE AUTO-SCROLL STABILITY FIX
========================================================= */

/*
 * A static dark overlay produces the same visual separation
 * without constructing a live backdrop-blur compositor layer.
 */
body > .tt-at-modal,
body > .tt-at-modal.is-open,
body > .tt-at-modal.is-preparing,
body > .tt-at-modal.is-closing,
body > .tt-at-modal:not(.is-open) {
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
}

body > .tt-at-modal {
  background:
    radial-gradient(
      circle at 50% 35%,
      rgba(48,5,5,.20),
      transparent 52%
    ),
    rgba(4,1,1,.91)!important;
  visibility:hidden;
  opacity:0;
  pointer-events:none;
  transform:translateZ(0);
  -webkit-transform:translateZ(0);
  backface-visibility:hidden;
  -webkit-backface-visibility:hidden;
  contain:layout paint style;
  transition:
    opacity .22s ease,
    visibility 0s linear .22s!important;
}

body > .tt-at-modal.is-preparing {
  visibility:visible;
  opacity:0;
  pointer-events:none;
  transition:none!important;
}

body > .tt-at-modal.is-open {
  visibility:visible;
  opacity:1;
  pointer-events:auto;
  transition:
    opacity .22s ease,
    visibility 0s linear 0s!important;
}

body > .tt-at-modal.is-closing {
  visibility:visible;
  opacity:0;
  pointer-events:none;
  transition:
    opacity .22s ease,
    visibility 0s linear .22s!important;
}

body.tt-at-modal-page-locked {
  overscroll-behavior:none;
}

body > .tt-at-modal .tt-at-modal-dialog {
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

body > .tt-at-modal .tt-at-modal-image {
  background:#090303;
}

/*
 * Whole-card CSS filters and animated box-shadows are expensive
 * while the parent track is moving. On mobile, preserve centre
 * emphasis through opacity and border only.
 */
@media (max-width:767px) {
  .tt-attractions-block .tt-at-card,
  .tt-attractions-block .tt-at-card.is-centre {
    filter:none!important;
    transition:
      opacity .32s ease,
      border-color .32s ease!important;
  }

  .tt-attractions-block .tt-at-card {
    opacity:.56!important;
    box-shadow:
      0 18px 46px rgba(0,0,0,.35),
      inset 0 1px 0 rgba(255,248,234,.04)!important;
  }

  .tt-attractions-block .tt-at-card.is-centre {
    opacity:1!important;
    box-shadow:
      0 28px 62px rgba(0,0,0,.48),
      0 0 0 1px var(--at-accent-soft),
      0 0 34px var(--at-accent-soft),
      inset 0 1px 0 rgba(255,248,234,.06)!important;
  }

  .tt-attractions-block .tt-at-image {
    filter:none!important;
    transition:none!important;
  }

  /*
   * Avoid background image repaint during the centre-state swap.
   * Text remains visually unchanged and fixed in place.
   */
  .tt-attractions-block .tt-at-kicker,
  .tt-attractions-block .tt-at-copy h3,
  .tt-attractions-block .tt-at-copy p,
  .tt-attractions-block .tt-at-link-cue {
    transition:
      opacity .28s ease,
      color .28s ease!important;
  }
}


/* =========================================================
   MOBILE — ALL RAIL ITEMS EQUALLY CLEAR / NO FOCUS OVERLAY
========================================================= */
@media (max-width:767px) {
  .tt-attractions-block .tt-at-card,
  .tt-attractions-block .tt-at-card.is-centre,
  .tt-attractions-block .tt-at-card:not(.is-centre) {
    opacity:1!important;
    filter:none!important;
    transition:
      border-color .24s ease!important;
  }

  .tt-attractions-block .tt-at-image,
  .tt-attractions-block .tt-at-card.is-centre .tt-at-image,
  .tt-attractions-block .tt-at-card:not(.is-centre) .tt-at-image {
    opacity:1!important;
    filter:none!important;
    transition:none!important;
  }

  .tt-attractions-block .tt-at-image-shade {
    display:none!important;
    opacity:0!important;
    background:none!important;
  }

  .tt-attractions-block .tt-at-kicker,
  .tt-attractions-block .tt-at-copy h3,
  .tt-attractions-block .tt-at-copy p,
  .tt-attractions-block .tt-at-link-cue,
  .tt-attractions-block .tt-at-card.is-centre .tt-at-kicker,
  .tt-attractions-block .tt-at-card.is-centre .tt-at-copy h3,
  .tt-attractions-block .tt-at-card.is-centre .tt-at-copy p,
  .tt-attractions-block .tt-at-card.is-centre .tt-at-link-cue,
  .tt-attractions-block .tt-at-card:not(.is-centre) .tt-at-kicker,
  .tt-attractions-block .tt-at-card:not(.is-centre) .tt-at-copy h3,
  .tt-attractions-block .tt-at-card:not(.is-centre) .tt-at-copy p,
  .tt-attractions-block .tt-at-card:not(.is-centre) .tt-at-link-cue {
    opacity:1!important;
    transform:none!important;
    transition:none!important;
  }

  .tt-attractions-block .tt-at-card.is-centre,
  .tt-attractions-block .tt-at-card:not(.is-centre) {
    box-shadow:
      0 18px 46px rgba(0,0,0,.35),
      inset 0 1px 0 rgba(255,248,234,.04)!important;
  }

  .tt-attractions-block .tt-at-card.is-centre::before,
  .tt-attractions-block .tt-at-card:not(.is-centre)::before {
    animation:none!important;
    transform:none!important;
    opacity:1!important;
  }
}


/* =========================================================
   MOBILE — ZERO CENTRE-FOCUS ANIMATION + FULL VELOCITY SWIPE
========================================================= */
@media (max-width:767px) {
  .tt-attractions-block .tt-at-card,
  .tt-attractions-block .tt-at-card *,
  .tt-attractions-block .tt-at-card::before,
  .tt-attractions-block .tt-at-card::after,
  .tt-attractions-block .tt-at-card.is-centre,
  .tt-attractions-block .tt-at-card.is-centre *,
  .tt-attractions-block .tt-at-card.is-centre::before,
  .tt-attractions-block .tt-at-card.is-centre::after,
  .tt-attractions-block .tt-at-card:not(.is-centre),
  .tt-attractions-block .tt-at-card:not(.is-centre) *,
  .tt-attractions-block .tt-at-card:not(.is-centre)::before,
  .tt-attractions-block .tt-at-card:not(.is-centre)::after {
    animation:none!important;
    transition:none!important;
  }

  .tt-attractions-block .tt-at-card,
  .tt-attractions-block .tt-at-card.is-centre,
  .tt-attractions-block .tt-at-card:not(.is-centre) {
    z-index:1!important;
    opacity:1!important;
    filter:none!important;
    transform:none!important;
    border-color:rgba(185,133,50,.23)!important;
    box-shadow:
      0 18px 46px rgba(0,0,0,.35),
      inset 0 1px 0 rgba(255,248,234,.04)!important;
  }

  .tt-attractions-block .tt-at-card-number,
  .tt-attractions-block .tt-at-card.is-centre .tt-at-card-number,
  .tt-attractions-block .tt-at-card:not(.is-centre) .tt-at-card-number {
    animation:none!important;
    transform:none!important;
    opacity:1!important;
    box-shadow:
      0 8px 18px rgba(0,0,0,.20),
      inset 0 1px 0 rgba(255,255,255,.05)!important;
  }

  .tt-attractions-block .tt-at-image,
  .tt-attractions-block .tt-at-image-shade,
  .tt-attractions-block .tt-at-copy,
  .tt-attractions-block .tt-at-kicker,
  .tt-attractions-block .tt-at-copy h3,
  .tt-attractions-block .tt-at-copy p,
  .tt-attractions-block .tt-at-link-cue {
    animation:none!important;
    transition:none!important;
    transform:none!important;
    filter:none!important;
    opacity:1!important;
  }

  .tt-attractions-block .tt-at-image-shade {
    display:none!important;
    background:none!important;
  }

  .tt-attractions-block .tt-at-viewport {
    touch-action:pan-y pinch-zoom!important;
  }
}


/* =========================================================
   MOBILE VELOCITY SWIPE — INPUT STABILITY ONLY
========================================================= */
@media (max-width:767px) {
  .tt-attractions-block .tt-at-viewport {
    touch-action:pan-y pinch-zoom!important;
    -webkit-user-select:none!important;
    user-select:none!important;
  }

  .tt-attractions-block .tt-at-track,
  .tt-attractions-block .tt-at-card,
  .tt-attractions-block .tt-at-image {
    -webkit-user-drag:none;
  }
}


/* =========================================================
   MOBILE SWIPE SENSITIVITY — INPUT ONLY
========================================================= */
@media (max-width:767px) {
  .tt-attractions-block .tt-at-viewport {
    touch-action:pan-y!important;
    -ms-touch-action:pan-y!important;
  }
}


/* =========================================================
   DESKTOP READABILITY — RAIL DESCRIPTION, CTA & POPUP
========================================================= */
@media (min-width:1025px) {
  /* Rail-item short description */
  .tt-attractions-block .tt-at-copy p {
    font-size:11.2px!important;
    line-height:1.58!important;
    color:rgba(255,248,234,.86)!important;
  }

  /* In-tile CTA: “Explore attraction” */
  .tt-attractions-block .tt-at-link-cue {
    min-height:30px;
    padding:7px 11px 7px 12px!important;
    gap:7px!important;
    font-size:8.4px!important;
    line-height:1.2!important;
    letter-spacing:.55px!important;
  }

  .tt-attractions-block .tt-at-link-cue svg {
    width:13px!important;
    height:13px!important;
  }

  /* Popup heading and supporting text */
  body > .tt-at-modal .tt-at-modal-kicker {
    margin-bottom:12px!important;
    font-size:10px!important;
    line-height:1.45!important;
    letter-spacing:1.65px!important;
  }

  body > .tt-at-modal .tt-at-modal-title {
    margin-bottom:22px!important;
    font-size:42px!important;
    line-height:1.08!important;
  }

  body > .tt-at-modal .tt-at-modal-divider {
    margin-bottom:23px!important;
  }

  body > .tt-at-modal .tt-at-modal-text p {
    margin-bottom:15px!important;
    font-size:13px!important;
    line-height:1.72!important;
    color:rgba(255,248,234,.84)!important;
  }

  body > .tt-at-modal .tt-at-modal-highlights-title {
    margin-top:28px!important;
    margin-bottom:12px!important;
    font-size:9.4px!important;
    line-height:1.4!important;
    letter-spacing:1.5px!important;
  }

  body > .tt-at-modal .tt-at-modal-highlights li {
    min-height:48px!important;
    padding:11px 12px 11px 29px!important;
    font-size:10.4px!important;
    line-height:1.48!important;
    color:rgba(255,248,234,.82)!important;
  }

  body > .tt-at-modal .tt-at-modal-highlights li::before {
    left:12px!important;
    width:7px!important;
    height:7px!important;
  }
}


/* =========================================================
   POPUP SCROLL DISCOVERY + BACK-BUTTON UX
========================================================= */
body > .tt-at-modal .tt-at-modal-scroll-cue {
  position:absolute;
  left:50%;
  bottom:max(16px,env(safe-area-inset-bottom));
  z-index:8;
  display:flex;
  align-items:center;
  gap:5px;
  min-height:25px;
  padding:5px 9px 5px 10px;
  border:1px solid rgba(185,133,50,.28);
  border-radius:999px;
  background:rgba(12,4,4,.88);
  color:rgba(255,248,234,.82);
  box-shadow:
    0 8px 22px rgba(0,0,0,.34),
    inset 0 1px 0 rgba(255,248,234,.05);
  font-family:"Montserrat",sans-serif;
  font-size:7px;
  font-weight:600;
  line-height:1;
  letter-spacing:.75px;
  text-transform:uppercase;
  pointer-events:none;
  opacity:0;
  visibility:hidden;
  transform:translate(-50%,6px);
  transition:
    opacity .2s ease,
    transform .2s ease,
    visibility .2s ease;
}

body > .tt-at-modal .tt-at-modal-scroll-cue svg {
  width:12px;
  height:12px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}

@media (max-width:1024px), (max-height:760px) {
  body > .tt-at-modal.is-open.has-scroll-more:not(.is-scroll-end)
  .tt-at-modal-scroll-cue {
    opacity:1;
    visibility:visible;
    transform:translate(-50%,0);
  }
}

@media (max-width:767px) {
  body > .tt-at-modal .tt-at-modal-scroll-cue {
    bottom:max(13px,env(safe-area-inset-bottom));
    min-height:24px;
    padding:5px 8px 5px 9px;
    font-size:6.5px;
  }
}

@media (prefers-reduced-motion:reduce) {
  body > .tt-at-modal .tt-at-modal-scroll-cue {
    transition:none!important;
  }
}
