/* Homepage discovery routes retain the v9 visual language and simple links. */
.hp-start { padding-block: 68px; }
.hp-start .tk-section-intro-row { margin-bottom: 30px; }
.hp-route-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 32px; }
.hp-route { display: flex; flex-direction: column; position: relative; padding: 24px 0 10px; border-top: 1px solid var(--tk-border); min-width: 0; }
.hp-route-index { color: var(--tk-lotus-600); font-size: 9px; letter-spacing: 1px; font-weight: 600; padding-right: 28px; }
.hp-route-icon { position: absolute; right: 0; top: 25px; font-size: 17px; color: var(--tk-lotus-600); }
.hp-route h3 { font: 500 31px/1.1 Newsreader,Georgia,serif; letter-spacing: -.4px; color: var(--tk-plum-800); margin: 22px 0 14px; }
.hp-route p { font-size: 13px; line-height: 1.8; color: var(--tk-charcoal-700); margin: 0 0 22px; }
.hp-route .tk-text-link { font-size: 12px; margin-top: auto; align-self: flex-start; min-height: 44px; }
.hp-route:hover { border-color: var(--tk-lotus-600); }
.hp-route:hover .tk-text-link { color: var(--tk-plum-800); }
.hp-route:hover .tk-text-link i { transform: translateX(3px); }
.hp-route .tk-text-link i { transition: transform .18s ease; }
@media(max-width:850px) {
  .hp-start { padding-block: 48px; }
  .hp-route-grid { gap: 24px; }
  .hp-route h3 { font-size: 27px; }
}
@media(max-width:600px) {
  .hp-start { padding-block: 40px; }
  .hp-route-grid { grid-template-columns: minmax(0,1fr); gap: 12px; }
  .hp-route { padding-top: 22px; }
  .hp-route h3 { margin-top: 16px; }
  .hp-route p { margin-bottom: 10px; }
}
@media(prefers-reduced-motion:reduce) {
  .hp-route .tk-text-link i { transition: none; }
  .hp-route:hover .tk-text-link i { transform: none; }
  .tb-package { opacity: 1 !important; transform: none !important; transition: none !important; }
}

/* ==========================================================================
   Interactive Packages List: Scroll Reveal & Dynamic Active Highlighting
   ========================================================================== */
.tb-packages .tb-package-list {
  display: flex;
  flex-direction: column;
  gap: 16px;
  position: relative;
  isolation: isolate;
}

.tb-packages .tb-package {
  position: relative;
  overflow: hidden;
  border-top: none !important;
  border: 1px solid rgba(83, 16, 83, 0.1) !important;
  border-radius: 14px;
  padding: 24px 28px 26px !important;
  margin: 0 !important;
  background: rgba(255, 255, 255, 0.65) !important;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  cursor: pointer;
  transition: opacity 0.55s ease, transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), background 0.35s ease, border-color 0.35s ease, box-shadow 0.35s ease;
  will-change: transform, box-shadow, opacity;
  opacity: 1;
  transform: translateY(0);
}

/* Left accent bar on active card */
.tb-packages .tb-package::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 5px;
  background: linear-gradient(180deg, #c867a8 0%, #531053 100%);
  opacity: 0;
  transform: scaleY(0.3);
  transition: opacity 0.35s ease, transform 0.35s ease;
  pointer-events: none;
}

/* Stagger reveal delays */
.tb-packages .tb-package:nth-child(1) { transition-delay: 0.05s; }
.tb-packages .tb-package:nth-child(2) { transition-delay: 0.16s; }
.tb-packages .tb-package:nth-child(3) { transition-delay: 0.28s; }

/* Revealed State */
.tb-packages .tb-package.is-revealed {
  opacity: 1;
  transform: translateY(0);
}

/* Dynamic Active State & Hover Enhancement */
.tb-packages .tb-package.is-revealed.is-active,
.tb-packages .tb-package.is-revealed:hover {
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.98) 0%, rgba(246, 236, 248, 0.96) 100%) !important;
  border-color: rgba(157, 77, 147, 0.45) !important;
  box-shadow: 0 16px 36px -10px rgba(83, 16, 83, 0.15), 0 0 0 1.5px rgba(200, 103, 168, 0.3) !important;
  transform: translateY(-4px) !important;
  z-index: 2;
}

.tb-packages .tb-package.is-active::before,
.tb-packages .tb-package:hover::before {
  opacity: 1;
  transform: scaleY(1);
}

.tb-packages .tb-package.is-active .tb-package-duration strong,
.tb-packages .tb-package:hover .tb-package-duration strong {
  color: var(--tk-lotus-600);
  transform: scale(1.05);
  display: inline-block;
  transition: transform 0.3s ease, color 0.3s ease;
}

.tb-packages .tb-package.is-active .tk-text-link,
.tb-packages .tb-package:hover .tk-text-link {
  color: var(--tk-plum-800);
}

.tb-packages .tb-package.is-active .tk-text-link i,
.tb-packages .tb-package:hover .tk-text-link i {
  transform: translateX(6px);
  color: var(--tk-lotus-600);
}

.tb-packages .tb-package .tk-text-link i {
  transition: transform 0.22s ease, color 0.22s ease;
}

.tb-packages .tb-package-duration strong {
  transition: transform 0.3s ease, color 0.3s ease;
}

@media(max-width:850px) {
  .tb-packages .tb-package {
    padding: 20px 22px !important;
  }
}

/* ==========================================================================
   Desktop Sticky-Split Native Enforcements
   ========================================================================== */
@media (min-width: 851px) {
  [data-sticky-split],
  .tb-packages .tk-services-grid,
  .tb-venue-grid,
  .tb-dining-grid,
  .tb-proof-grid,
  .tb-film-grid,
  .tk-testimonial-grid,
  .ti-split {
    align-items: start !important;
  }

  [data-sticky-split] > div:first-child,
  [data-sticky-split] > .tb-venue-media,
  [data-sticky-split] > .tb-dining-media,
  .tb-packages .tk-services-grid > div:first-child,
  .is-sticky {
    position: -webkit-sticky !important;
    position: sticky !important;
    top: var(--sticky-offset, 104px) !important;
    align-self: start !important;
  }
}

