/* ==========================================================================
   tour.php — destination detail (scoped under .page-tour, tokens only)
   ========================================================================== */

/* ---------- Cinematic hero ---------- */
.page-tour .tour-hero {
  position: relative;
  isolation: isolate;
  overflow: clip;
  display: flex;
  align-items: flex-end;
  min-height: min(92svh, 760px);
  padding-block: 11rem clamp(6.5rem, 5rem + 5vw, 8.5rem);
  background: var(--teal-950);
}
.page-tour .tour-hero__backdrop { position: absolute; inset: 0; z-index: -3; overflow: hidden; }
.page-tour .tour-hero__backdrop img { width: 100%; height: 100%; object-fit: cover; object-position: center 30%; }
.page-tour .tour-hero__shade {
  position: absolute; inset: 0; z-index: -2; pointer-events: none;
  /* fallback for browsers without color-mix() (values = --teal-950 at the same alphas) */
  background: linear-gradient(to top, rgb(7 37 42) 0%, rgb(7 37 42 / .9) 36%, rgb(7 37 42 / .3) 68%, rgb(7 37 42 / .18) 86%, rgb(7 37 42 / .4) 100%);
  background: linear-gradient(to top,
    var(--teal-950) 0%,
    color-mix(in srgb, var(--teal-950) 90%, transparent) 36%,
    color-mix(in srgb, var(--teal-950) 30%, transparent) 68%,
    color-mix(in srgb, var(--teal-950) 18%, transparent) 86%,
    color-mix(in srgb, var(--teal-950) 40%, transparent) 100%);
}
.page-tour .tour-hero::after {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  display: none;
  background-image: radial-gradient(rgba(255, 255, 255, .14) 1px, transparent 1px);
  background-size: 26px 26px;
  mask-image: linear-gradient(to left, #000 0%, transparent 50%);
  -webkit-mask-image: linear-gradient(to left, #000 0%, transparent 50%);
  opacity: .7;
}
.page-tour .tour-hero__inner { position: relative; z-index: 2; width: 100%; }
.page-tour .tour-hero__content { max-width: 680px; }
.page-tour .tour-hero .breadcrumb { margin-bottom: 1.25rem; }
.page-tour .tour-hero__title {
  margin: 0;
  font-size: var(--fs-5xl);
  line-height: 1.2;
  color: var(--white);
  text-shadow: 0 8px 36px rgba(0, 0, 0, .28);
}
.page-tour .tour-hero__lead { margin: 1rem 0 0; max-width: 54ch; font-size: var(--fs-lg); line-height: 1.85; color: rgba(255, 255, 255, .88); }
.page-tour .tour-hero__chips { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1.5rem 0 0; padding: 0; list-style: none; }
.page-tour .tour-hero__chips .badge { padding: .35em 1em; border: 1px solid rgba(255, 255, 255, .16); }
.page-tour .tour-hero__chips .icon { color: var(--gold-300); }
.page-tour .tour-hero__actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 2rem; }
@media (max-width: 479.98px) {
  .page-tour .tour-hero__actions .btn--gold { flex: 1 1 100%; }
  .page-tour .tour-hero__actions .btn--outline-white { display: none; }
}
.page-tour .tour-hero__path { top: 12%; inset-inline-end: 30%; width: clamp(240px, 30vw, 460px); opacity: .5; }
.page-tour .tour-hero__curve {
  position: absolute; inset-inline: 0; bottom: -1px; z-index: 1;
  width: 100%; height: clamp(34px, 5vw, 80px);
  fill: var(--sand-100);
}

/* Arch photo + stamp + price (desktop only) */
.page-tour .tour-hero__media {
  display: none;
  position: relative;
  container-type: inline-size;
  width: clamp(270px, 24vw, 350px);
  margin-inline-end: clamp(.5rem, 2vw, 2.5rem);
}
.page-tour .tour-hero__media::before {
  content: ""; position: absolute; inset: -16px; pointer-events: none;
  border: 1.5px dashed color-mix(in srgb, var(--gold-300) 60%, transparent);
  border-radius: calc(50cqi + 16px) calc(50cqi + 16px) calc(var(--r-xl) + 16px) calc(var(--r-xl) + 16px);
}
.page-tour .tour-hero__arch {
  overflow: hidden;
  border-radius: 200px 200px var(--r-xl) var(--r-xl);
  border-radius: 50cqi 50cqi var(--r-xl) var(--r-xl);
  box-shadow: 0 0 0 8px rgba(255, 255, 255, .08), 0 0 0 9px rgba(255, 255, 255, .16), var(--shadow-lg);
}
.page-tour .tour-hero__arch img { width: 100%; aspect-ratio: 500 / 689; object-fit: cover; }
.page-tour .tour-hero__stamp {
  position: absolute; z-index: 2;
  top: 14%; inset-inline-end: -2.5rem;
  display: grid; place-items: center; align-content: center; gap: .1rem;
  width: 112px; height: 112px;
  border-radius: 50%;
  background: var(--gold-500);
  color: var(--ink);
  text-align: center;
  line-height: 1.15;
  box-shadow: 0 0 0 6px color-mix(in srgb, var(--gold-500) 25%, transparent), var(--shadow-gold);
  transform: rotate(-10deg);
}
.page-tour .tour-hero__stamp::before {
  content: ""; position: absolute; inset: 6px; border-radius: 50%;
  border: 1.5px dashed color-mix(in srgb, var(--ink) 45%, transparent);
}
.page-tour .tour-hero__stamp strong { font-family: var(--font-display); font-size: 2.1rem; font-weight: 800; line-height: 1; }
.page-tour .tour-hero__stamp span { font-size: var(--fs-sm); font-weight: 800; }
.page-tour .tour-hero__stamp small { font-size: var(--fs-2xs); font-weight: 700; opacity: .85; }
@media (max-width: 1199.98px) {
  .page-tour .tour-hero__stamp { inset-inline-end: -1rem; width: 96px; height: 96px; }
  .page-tour .tour-hero__stamp strong { font-size: 1.75rem; }
  .page-tour .tour-hero__note { inset-inline-start: -2.5rem; }
}
.page-tour .tour-hero__note {
  position: absolute; z-index: 2;
  bottom: 2.25rem; inset-inline-start: -3.5rem;
  display: flex; align-items: center; gap: .75rem;
  width: max-content; max-width: 250px;
  padding: .8rem 1rem .8rem 1.1rem;
  border-radius: var(--r-md);
  background: rgba(255, 255, 255, .9);
}
.page-tour .tour-hero__note .icon-circle { background: var(--gold-100); color: var(--gold-700); }
.page-tour .tour-hero__note-body { display: grid; min-width: 0; }
.page-tour .tour-hero__note-label { font-size: var(--fs-2xs); font-weight: 800; color: var(--gold-700); line-height: 1.5; }
.page-tour .tour-hero__note-text { font-size: var(--fs-sm); font-weight: 800; color: var(--ink); line-height: 1.55; }
@media (prefers-reduced-motion: no-preference) {
  .page-tour .tour-hero__note { animation: tour-float 6s var(--ease-in-out) infinite; }
}
@keyframes tour-float { 0%, 100% { translate: 0 0; } 50% { translate: 0 -8px; } }

@media (min-width: 900px) {
  .page-tour .tour-hero {
    display: block;
    min-height: 0;
    padding-block: clamp(2.5rem, 1rem + 3vw, 4rem) clamp(8.5rem, 6rem + 4vw, 11rem);
  }
  .page-tour .tour-hero__backdrop img { filter: blur(20px) saturate(1.35); opacity: .8; }
  .page-tour .tour-hero__shade {
    background:
      radial-gradient(640px 420px at 16% 45%, color-mix(in srgb, var(--teal-500) 18%, transparent), transparent 70%),
      linear-gradient(to left,
        color-mix(in srgb, var(--teal-950) 93%, transparent) 0%,
        color-mix(in srgb, var(--teal-950) 74%, transparent) 50%,
        color-mix(in srgb, var(--teal-950) 38%, transparent) 100%);
  }
  .page-tour .tour-hero__inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: clamp(2.5rem, 1rem + 5vw, 6rem);
  }
  .page-tour .tour-hero__media { display: block; }
  .page-tour .tour-hero__chip-duration { display: none !important; }
  .page-tour .tour-hero::after { display: block; }
}

/* ---------- Key facts bar (overlaps the hero) ---------- */
.page-tour .tour-facts-bar { position: relative; z-index: 3; margin-top: calc(-1 * clamp(3.25rem, 2.5rem + 3vw, 5.25rem)); }
.page-tour .tour-facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .25rem;
  margin: 0;
  padding: .5rem;
  list-style: none;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--r-xl);
  box-shadow: var(--shadow-lg);
}
.page-tour .tour-fact { position: relative; display: flex; align-items: center; gap: .75rem; min-width: 0; padding: .8rem .85rem; border-radius: var(--r-md); }
.page-tour .tour-fact .icon-circle { --size: 44px; }
.page-tour .tour-fact__label { display: block; font-size: var(--fs-xs); font-weight: 500; color: var(--muted); line-height: 1.5; }
.page-tour .tour-fact__value { display: flex; flex-wrap: wrap; align-items: center; gap: .1rem .5rem; font-weight: 800; color: var(--ink); line-height: 1.5; }
.page-tour .tour-fact__stars .icon { width: .9em; height: .9em; }
.page-tour .tour-fact__value--nowrap { white-space: nowrap; }
@media (max-width: 639.98px) {
  .page-tour .tour-fact { gap: .6rem; padding: .75rem .6rem; }
  .page-tour .tour-fact .icon-circle { --size: 38px; }
}
.page-tour .tour-fact--price { grid-column: 1 / -1; background: var(--gold-50); box-shadow: inset 0 0 0 1px var(--gold-100); }
.page-tour .tour-fact__money { font-family: var(--font-display); font-size: var(--fs-xl); font-weight: 800; white-space: nowrap; }
.page-tour .tour-fact__money small { font-family: var(--font-body); font-size: .62em; font-weight: 700; color: var(--gold-700); }
@media (min-width: 640px) {
  .page-tour .tour-facts { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .page-tour .tour-fact--price { grid-column: span 2; }
}
@media (min-width: 1000px) {
  .page-tour .tour-facts { grid-template-columns: repeat(4, minmax(0, 1fr)) minmax(0, 1.1fr); padding: .6rem; }
  .page-tour .tour-fact { padding: 1rem; }
  .page-tour .tour-fact--price { grid-column: auto; }
  .page-tour .tour-fact:not(:first-child):not(.tour-fact--price)::before {
    content: ""; position: absolute; inset-inline-start: -.125rem; top: 24%; bottom: 24%;
    width: 1px; background: var(--line);
  }
}

/* ---------- Body layout ---------- */
.page-tour .tour-main { padding-top: clamp(2.75rem, 1.75rem + 3vw, 4.75rem); }
.page-tour .tour-main__content { display: grid; gap: clamp(2.75rem, 2rem + 2.5vw, 4rem); min-width: 0; }
.page-tour .tour-block .eyebrow { margin-bottom: .5rem; }
.page-tour .tour-block__title { margin: 0 0 1.25rem; font-size: var(--fs-2xl); }
.page-tour .tour-block__hint { display: flex; align-items: center; gap: .4em; margin: -.5rem 0 1.25rem; font-size: var(--fs-sm); color: var(--muted); }
.page-tour .tour-block__hint .icon { color: var(--teal-600); }

/* Overview */
.page-tour .tour-prose { max-width: 70ch; }
.page-tour .tour-prose p { margin: 0 0 1.1em; }
.page-tour .tour-prose p:last-child { margin-bottom: 0; }
.page-tour .tour-prose__lead {
  padding-inline-start: 1.25rem;
  border-inline-start: 3px solid var(--gold-400);
  font-size: var(--fs-lg);
  line-height: 1.9;
  color: var(--ink);
}

/* Highlights */
.page-tour .tour-highlights { display: grid; gap: .75rem; margin: 0; padding: 0; list-style: none; }
@media (min-width: 640px) { .page-tour .tour-highlights { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.page-tour .tour-highlight {
  position: relative;
  display: flex; align-items: center; gap: .9rem;
  padding: .95rem 1.1rem;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  box-shadow: var(--shadow-xs);
  transition: transform var(--dur-2) var(--ease-out), box-shadow var(--dur-2) var(--ease-out), border-color var(--dur-2);
}
.page-tour .tour-highlight:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); border-color: var(--teal-100); }
.page-tour .tour-highlight__icon {
  display: grid; place-items: center; flex-shrink: 0;
  width: 48px; height: 48px;
  border-radius: 16px 16px 16px 6px;
  background: var(--teal-50); color: var(--teal-700);
}
.page-tour .tour-highlight:nth-child(4n+2) .tour-highlight__icon,
.page-tour .tour-highlight:nth-child(4n+3) .tour-highlight__icon { background: var(--gold-100); color: var(--gold-700); }
.page-tour .tour-highlight__icon .icon { width: 24px; height: 24px; }
.page-tour .tour-highlight__text { flex: 1; min-width: 0; font-weight: 700; color: var(--ink); line-height: 1.6; }
.page-tour .tour-highlight__num { align-self: flex-start; font-family: var(--font-display); font-size: 1.35rem; font-weight: 800; line-height: 1; color: var(--teal-100); }

/* Best time */
.page-tour .tour-besttime {
  position: relative; isolation: isolate; overflow: hidden;
  display: flex; align-items: flex-start; gap: 1.1rem;
  padding: clamp(1.25rem, 1rem + 1.2vw, 2rem);
  background: linear-gradient(135deg, var(--gold-50), var(--sand-200));
  border: 1px solid var(--gold-200);
  border-radius: var(--r-lg);
}
.page-tour .tour-besttime::after {
  content: ""; position: absolute; z-index: -1; pointer-events: none;
  inset-inline-end: -120px; top: -140px; width: 280px; height: 280px; border-radius: 50%;
  background: repeating-conic-gradient(from 0deg, color-mix(in srgb, var(--gold-400) 26%, transparent) 0deg 4deg, transparent 4deg 14deg);
  -webkit-mask-image: radial-gradient(circle, transparent 0 22%, #000 23% 45%, transparent 70%);
  mask-image: radial-gradient(circle, transparent 0 22%, #000 23% 45%, transparent 70%);
}
.page-tour .tour-besttime__icon {
  display: grid; place-items: center; flex-shrink: 0;
  width: 58px; height: 58px; border-radius: 50%;
  background: var(--gold-500); color: var(--ink);
  box-shadow: var(--shadow-gold);
}
.page-tour .tour-besttime__icon .icon { width: 28px; height: 28px; }
.page-tour .tour-besttime__title { display: flex; align-items: center; gap: .4em; margin: .2rem 0 .35rem; font-size: var(--fs-lg); }
.page-tour .tour-besttime__title .icon { color: var(--gold-700); }
.page-tour .tour-besttime__text { margin: 0; color: var(--text); }

/* Gallery */
.page-tour .tour-gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
.page-tour .tour-gallery__item {
  position: relative; display: block; overflow: hidden; isolation: isolate;
  border-radius: var(--r-lg);
  background: var(--teal-50);
}
.page-tour .tour-gallery__item img { width: 100%; height: 100%; aspect-ratio: 3 / 4; object-fit: cover; transition: transform .9s var(--ease-out); }
.page-tour .tour-gallery__item::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(to top, rgba(7, 37, 42, .35), transparent 40%);
  transition: opacity var(--dur-2);
}
.page-tour .tour-gallery__item:hover img { transform: scale(1.06); }
.page-tour .tour-gallery__zoom {
  position: absolute; z-index: 1; bottom: .75rem; inset-inline-end: .75rem;
  display: grid; place-items: center;
  width: 42px; height: 42px; border-radius: 50%;
  background: rgba(255, 255, 255, .92); color: var(--ink);
  box-shadow: var(--shadow-sm);
  transition: transform var(--dur-2) var(--ease-out), background-color var(--dur-2);
}
.page-tour .tour-gallery__zoom .icon { width: 20px; height: 20px; }
.page-tour .tour-gallery__item:hover .tour-gallery__zoom,
.page-tour .tour-gallery__item:focus-visible .tour-gallery__zoom { transform: scale(1.1); background: var(--gold-500); }
.page-tour .tour-gallery--odd .tour-gallery__item:first-child { grid-column: 1 / -1; }
.page-tour .tour-gallery--odd .tour-gallery__item:first-child img { aspect-ratio: 4 / 3; }
.page-tour .tour-gallery__cta {
  position: relative; isolation: isolate; overflow: hidden;
  grid-column: 1 / -1;
  display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: .6rem;
  padding: clamp(1.25rem, 1rem + 1.5vw, 2.25rem);
  background: var(--white);
  border: 1.5px dashed var(--gold-300);
  border-radius: var(--r-lg);
}
.page-tour .tour-gallery__cta::before {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: url("../../img/misc/map.png") center 40% / 170% auto no-repeat;
  opacity: .35;
}
.page-tour .tour-gallery__cta-body { display: grid; gap: .35rem; }
.page-tour .tour-gallery__cta-title { margin: .25rem 0 0; font-size: var(--fs-lg); }
.page-tour .tour-gallery__cta-text { margin: 0; font-size: var(--fs-sm); color: var(--muted); line-height: 1.8; max-width: 44ch; }
.page-tour .tour-gallery__cta-btn { margin-top: .4rem; background: var(--white); }
.page-tour .tour-gallery__cta-btn:hover { background: var(--teal-700); }
@media (min-width: 640px) {
  .page-tour .tour-gallery { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
  .page-tour .tour-gallery--odd .tour-gallery__item:first-child { grid-column: auto; }
  .page-tour .tour-gallery--odd .tour-gallery__item:first-child img { aspect-ratio: 3 / 4; }
  .page-tour .tour-gallery__cta { grid-column: span var(--span, 1); }
  .page-tour .tour-gallery--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .page-tour .tour-gallery--two .tour-gallery__item img { aspect-ratio: 4 / 4.2; }
  .page-tour .tour-gallery__cta--row { grid-column: 1 / -1; flex-direction: row; align-items: center; gap: 1.1rem; padding-block: 1.25rem; }
  .page-tour .tour-gallery__cta--row .tour-gallery__cta-body { flex: 1; min-width: 0; }
  .page-tour .tour-gallery__cta--row .tour-gallery__cta-title { margin: 0; }
  .page-tour .tour-gallery__cta--row .tour-gallery__cta-btn { margin: 0; flex-shrink: 0; }
}

/* Complementary services */
.page-tour .tour-extras { display: grid; gap: .75rem; margin: 0; padding: 0; list-style: none; }
@media (min-width: 640px) { .page-tour .tour-extras { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.page-tour .tour-extra {
  display: flex; align-items: center; gap: .9rem;
  height: 100%;
  padding: 1rem 1.1rem;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  color: inherit;
  text-decoration: none;
  transition: border-color var(--dur-2), box-shadow var(--dur-2), transform var(--dur-2) var(--ease-out);
}
.page-tour .tour-extra:hover { color: inherit; border-color: var(--teal-200); box-shadow: var(--shadow-sm); transform: translateY(-2px); }
.page-tour .tour-extra__icon {
  display: grid; place-items: center; flex-shrink: 0;
  width: 48px; height: 48px; border-radius: 50%;
  background: var(--gold-50); color: var(--gold-700);
  box-shadow: inset 0 0 0 1px var(--gold-100);
}
.page-tour .tour-extra__icon .icon { width: 22px; height: 22px; }
.page-tour .tour-extra__body { flex: 1; min-width: 0; }
.page-tour .tour-extra__title { display: block; font-weight: 800; color: var(--ink); line-height: 1.5; }
.page-tour .tour-extra__text { display: block; font-size: var(--fs-xs); color: var(--muted); line-height: 1.75; }
.page-tour .tour-extra__arrow { color: var(--teal-600); }
.page-tour .tour-extra:hover .tour-extra__arrow { transform: translateX(-4px); }

/* ---------- Booking card ---------- */
.page-tour .tour-aside { min-width: 0; }
@media (max-width: 999.98px), (max-height: 799.98px) {
  .page-tour .tour-aside.sticky-aside { position: static; }
}
.page-tour .booking-card {
  overflow: hidden;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--r-xl);
  box-shadow: var(--shadow-lg);
}
.page-tour .booking-card__head {
  position: relative; isolation: isolate; overflow: hidden;
  padding: 1.4rem 1.5rem 1.3rem;
  background:
    radial-gradient(420px 200px at 100% 0%, color-mix(in srgb, var(--teal-500) 38%, transparent), transparent 70%),
    radial-gradient(300px 160px at 0% 100%, color-mix(in srgb, var(--gold-500) 22%, transparent), transparent 70%),
    linear-gradient(150deg, var(--teal-800), var(--teal-950));
}
.page-tour .booking-card__bg {
  position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: url("../../img/misc/map.png") center / 190% auto no-repeat;
  opacity: .08;
}
.page-tour .booking-card__title { margin: 0 0 .75rem; font-size: var(--fs-lg); line-height: 1.5; color: var(--white); }
.page-tour .booking-card__price .price__label { font-size: var(--fs-sm); }
.page-tour .booking-card__price .price__value { font-size: var(--fs-3xl); color: var(--white); }
.page-tour .booking-card__body { display: grid; gap: 1rem; padding: 1.1rem 1.5rem 1.5rem; }
.page-tour .booking-card__list { display: grid; margin: 0; padding: 0; list-style: none; }
.page-tour .booking-card__list li { display: flex; align-items: center; gap: .6rem; padding-block: .65rem; border-bottom: 1px dashed var(--line-strong); }
.page-tour .booking-card__list li > .icon { color: var(--teal-600); width: 1.15em; height: 1.15em; }
.page-tour .booking-card__k { color: var(--muted); font-size: var(--fs-sm); font-weight: 500; }
.page-tour .booking-card__v { margin-inline-start: auto; font-weight: 800; color: var(--ink); text-align: end; }
.page-tour .booking-card__or {
  display: flex; align-items: center; gap: .75rem;
  margin: 0; font-size: var(--fs-xs); font-weight: 700; color: var(--muted);
}
.page-tour .booking-card__or::before, .page-tour .booking-card__or::after { content: ""; flex: 1; height: 1px; background: var(--line); }
.page-tour .booking-card__calls { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; }
.page-tour .booking-card__calls .btn { min-height: 46px; padding-inline: .5em; gap: .4em; font-size: .9375rem; }
@media (max-width: 359.98px) { .page-tour .booking-card__calls { grid-template-columns: 1fr; } }
.page-tour .booking-card__note {
  display: flex; align-items: flex-start; gap: .5rem;
  margin: 0; padding: .7rem .85rem;
  background: var(--sand-100);
  border-radius: var(--r-sm);
  font-size: var(--fs-xs); line-height: 1.8; color: var(--muted);
}
.page-tour .booking-card__note .icon { margin-top: .35em; color: var(--gold-700); }
.page-tour .booking-card__perks { gap: .45rem; font-size: var(--fs-sm); color: var(--text); }
.page-tour .booking-card__perks li { padding-inline-start: 1.8rem; }
.page-tour .booking-card__perks li::before { width: 1.15rem; height: 1.15rem; top: .3em; }

/* ---------- Related tours ---------- */
.page-tour .tour-card__cta { gap: .4em; padding-inline: 1.15em; }
.page-tour .tour-card:hover .tour-card__cta { background: var(--teal-800); box-shadow: var(--shadow-teal); }
.page-tour .tour-card:hover .tour-card__cta .icon-arrow-left { transform: translateX(-4px); }
.page-tour .tour-related__more { display: flex; justify-content: center; margin-top: clamp(2rem, 1.5rem + 2vw, 3rem); }
@media (max-width: 639.98px) {
  .page-tour .tour-card__media img { aspect-ratio: 4 / 3.5; }
  /* Related tours become a swipeable strip on phones */
  .page-tour .tour-related__grid {
    grid-template-columns: none;
    grid-auto-flow: column;
    grid-auto-columns: min(82%, 320px);
    gap: 1rem;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory;
    scroll-padding-inline: var(--gutter);
    scrollbar-width: none;
    margin-inline: calc(var(--gutter) * -1);
    padding: .5rem var(--gutter) 1.5rem;
    margin-block: -.5rem -1.5rem;
  }
  .page-tour .tour-related__grid::-webkit-scrollbar { display: none; }
  .page-tour .tour-related__grid > * { scroll-snap-align: start; min-width: 0; }
}

/* ---------- Not found (unknown slug) ---------- */
.page-tour .tour-missing { padding-top: calc(var(--section-y) * .6); }
.page-tour .tour-missing__card {
  position: relative; isolation: isolate; overflow: hidden;
  display: grid; justify-items: center; gap: .75rem;
  padding: clamp(2rem, 1.25rem + 3.5vw, 3.75rem) clamp(1.25rem, 1rem + 3vw, 3.5rem);
  text-align: center;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--r-2xl);
  box-shadow: var(--shadow-md);
}
.page-tour .tour-missing__card::before {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: url("../../img/misc/map.png") center 30% / 140% auto no-repeat;
  opacity: .45;
}
.page-tour .tour-missing__icon {
  display: grid; place-items: center;
  width: 92px; height: 92px; border-radius: 50%;
  background: var(--gold-50); color: var(--gold-600);
  box-shadow: 0 0 0 10px color-mix(in srgb, var(--gold-100) 60%, transparent), var(--shadow-sm);
}
.page-tour .tour-missing__icon .icon { width: 44px; height: 44px; }
@media (prefers-reduced-motion: no-preference) {
  .page-tour .tour-missing__icon .icon { animation: tour-needle 5s var(--ease-in-out) infinite; }
}
@keyframes tour-needle { 0%, 100% { transform: rotate(0); } 30% { transform: rotate(28deg); } 60% { transform: rotate(-18deg); } }
.page-tour .tour-missing__title { margin: 1rem 0 0; font-size: var(--fs-2xl); }
.page-tour .tour-missing__text { max-width: 52ch; margin: 0 0 .75rem; color: var(--muted); }
.page-tour .tour-missing__actions { gap: .75rem; }
@media (max-width: 479.98px) { .page-tour .tour-missing__actions .btn { flex: 1 1 100%; } }
.page-tour .tour-missing__home { margin-top: .75rem; }
