/* ============================================================
   SINGLE TOUR (doc maestro §8.3)
   ============================================================ */
.emt-single-tour { padding-block: var(--emt-spacing-lg) var(--emt-spacing-3xl); }

/* Hero de la ficha: mismo formato que el header de destino
   (foto de fondo + overlay + heading serape sobre sección oscura). */
.emt-tour-hero {
  position: relative;
  color: var(--emt-on-dark);
  padding-block: clamp(2.75rem, 6vw, 4.5rem);
  overflow: hidden;
  margin-bottom: var(--emt-spacing-xl);
  background: var(--emt-surface-dark);
}
.emt-tour-hero--plain { background: var(--emt-surface-dark); }
.emt-tour-hero--photo { background: var(--emt-azul-profundo); }
.emt-tour-hero__media { position: absolute; inset: 0; z-index: 0; }
.emt-tour-hero__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.emt-tour-hero--photo::after {
  content: ''; position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(180deg, rgba(0, 20, 45, 0.55) 0%, rgba(0, 20, 45, 0.42) 42%, rgba(0, 20, 45, 0.85) 100%);
}
.emt-tour-hero__inner { position: relative; z-index: 2; }
.emt-tour-hero .emt-breadcrumbs { margin-top: 0; margin-bottom: var(--emt-spacing-md); }
.emt-tour-hero__heading { margin-bottom: var(--emt-spacing-md); gap: 0.5rem; }
.emt-tour-hero .emt-eyebrow { color: var(--emt-turquesa); }
.emt-tour-hero .emt-breadcrumbs__item,
.emt-tour-hero .emt-breadcrumbs__item:not(:first-child)::before,
.emt-tour-hero .emt-breadcrumbs [aria-current="page"] { color: rgba(233, 241, 248, 0.72); }
.emt-tour-hero .emt-breadcrumbs__item a { color: var(--emt-blanco); }
.emt-tour-hero .emt-breadcrumbs__item a:hover { color: var(--emt-turquesa); }
.emt-tour-hero__gallery { margin-top: var(--emt-spacing-md); }
.emt-tour-hero__gallery-btn { cursor: zoom-in; }

/* Lightbox */
.emt-lightbox { position: fixed; inset: 0; z-index: 99999; display: flex; align-items: center; justify-content: center; background: rgba(0, 0, 0, 0.9); padding: 4vh 4vw; }
.emt-lightbox[hidden] { display: none; }
.emt-lightbox__stage { margin: 0; max-width: 100%; max-height: 100%; display: flex; align-items: center; justify-content: center; }
.emt-lightbox__img { max-width: 92vw; max-height: 86vh; width: auto; height: auto; object-fit: contain; border-radius: var(--emt-radius-md); box-shadow: 0 12px 48px rgba(0, 0, 0, 0.55); }
.emt-lightbox__close, .emt-lightbox__nav { position: absolute; display: flex; align-items: center; justify-content: center; border: 0; cursor: pointer; color: #fff; background: rgba(0, 0, 0, 0.45); border-radius: 50%; line-height: 1; transition: background 0.15s ease; }
.emt-lightbox__close:hover, .emt-lightbox__nav:hover, .emt-lightbox__close:focus-visible, .emt-lightbox__nav:focus-visible { background: rgba(255, 255, 255, 0.25); outline: none; }
.emt-lightbox__close { top: 16px; right: 20px; width: 48px; height: 48px; font-size: 32px; }
.emt-lightbox__nav { top: 50%; transform: translateY(-50%); width: 56px; height: 56px; font-size: 40px; }
.emt-lightbox__nav--prev { left: 12px; }
.emt-lightbox__nav--next { right: 12px; }
.emt-lightbox__counter { position: absolute; bottom: 18px; left: 50%; transform: translateX(-50%); color: #fff; font-size: var(--emt-fs-sm); background: rgba(0, 0, 0, 0.45); padding: 4px 14px; border-radius: var(--emt-radius-pill); }
@media (max-width: 719px) {
  .emt-lightbox__nav { width: 46px; height: 46px; font-size: 32px; }
  .emt-lightbox__close { width: 44px; height: 44px; }
}
.emt-tour-hero__title { color: var(--emt-blanco); margin: 0; }
.emt-tour-hero__meta { list-style: none; display: flex; flex-wrap: wrap; gap: var(--emt-spacing-md); padding: 0; margin: 0 0 var(--emt-spacing-md); color: rgba(233, 241, 248, 0.9); font-size: var(--emt-fs-sm); }
.emt-tour-hero__meta li { display: inline-flex; align-items: center; gap: 0.4rem; }
.emt-tour-hero__flags { display: flex; gap: var(--emt-spacing-sm); flex-wrap: wrap; }
.emt-flag { font-size: var(--emt-fs-xs); font-weight: var(--emt-fw-semibold); color: var(--emt-blanco); padding: 0.2rem 0.6rem; border-radius: var(--emt-radius-pill); }
.emt-flag--ok { background: var(--emt-verde); }
.emt-flag--pickup { background: var(--emt-naranja); }

.emt-tour-body { display: grid; grid-template-columns: 1fr; gap: var(--emt-spacing-xl); }
@media (min-width: 1024px) { .emt-tour-body { grid-template-columns: 2fr 1fr; align-items: start; } }

.emt-tour-main > section { margin-top: var(--emt-spacing-xl); }
.emt-tour-main h2 { font-family: var(--emt-font-display); font-size: var(--emt-fs-lg); font-weight: var(--emt-fw-bold); color: var(--emt-azul-profundo); margin: 0 0 var(--emt-spacing-md); position: relative; padding-bottom: 0.55rem; }
.emt-tour-main h2::after { content: ""; position: absolute; left: 0; bottom: 0; width: 44px; height: 4px; border-radius: 2px; background: var(--emt-serape); }
.emt-tour-main > section { padding-top: var(--emt-spacing-lg); border-top: 1px solid var(--emt-color-border); }
.emt-tour-politica__details { border: 1px solid var(--emt-color-border); border-radius: var(--emt-radius-md); background: var(--emt-gris-claro); }
.emt-tour-politica__details summary { cursor: pointer; padding: 0.85rem 1.1rem; font-weight: var(--emt-fw-semibold); color: var(--emt-azul-brillante); list-style: none; display: flex; align-items: center; gap: 0.5rem; }
.emt-tour-politica__details summary::-webkit-details-marker { display: none; }
.emt-tour-politica__details summary::before { content: "+"; font-family: var(--emt-font-display); font-weight: var(--emt-fw-bold); width: 1.35rem; height: 1.35rem; border-radius: 50%; background: var(--emt-azul-brillante); color: #fff; display: inline-flex; align-items: center; justify-content: center; font-size: 0.95rem; flex-shrink: 0; }
.emt-tour-politica__details[open] summary::before { content: "\2212"; }
.emt-tour-politica__body { padding: 0 1.1rem 1rem; color: var(--emt-color-text); font-size: var(--emt-fs-sm); line-height: 1.75; }
.emt-tour-politica__body p { margin-top: 0; }
.emt-tour-desc { font-size: var(--emt-fs-base); line-height: var(--emt-lh-relaxed); }
.emt-list, .emt-itin__item summary { font-size: var(--emt-fs-base); }
.emt-itin__item { border: 1px solid var(--emt-color-border); border-radius: var(--emt-radius-md); padding: var(--emt-spacing-md); margin-bottom: var(--emt-spacing-sm); }
.emt-itin__item summary { cursor: pointer; font-weight: var(--emt-fw-semibold); color: var(--emt-azul-profundo); }
.emt-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: var(--emt-spacing-sm); }
.emt-list li { padding-left: 1.6rem; position: relative; }
.emt-list--ok li::before { content: "✓"; position: absolute; left: 0; color: var(--emt-verde); font-weight: var(--emt-fw-bold); }
.emt-list--no li::before { content: "✕"; position: absolute; left: 0; color: var(--emt-color-danger); font-weight: var(--emt-fw-bold); }
.emt-tour-map__embed { aspect-ratio: 16 / 9; border-radius: var(--emt-radius-md); overflow: hidden; }
.emt-tour-map__embed iframe { width: 100%; height: 100%; border: 0; }

/* Sidebar de reserva (sticky en desktop; barra fija en móvil) */
.emt-reserve-card {
  background: var(--emt-blanco);
  border: 1px solid var(--emt-color-border);
  border-radius: var(--emt-radius-lg);
  box-shadow: var(--emt-shadow-md);
  padding: var(--emt-spacing-lg);
  display: flex;
  flex-direction: column;
  gap: var(--emt-spacing-md);
}
@media (min-width: 1024px) { .emt-tour-aside { position: sticky; top: 90px; } }
.emt-reserve-card__price { display: flex; flex-direction: column; margin: 0; }
.emt-reserve-card__price span { font-size: var(--emt-fs-sm); color: var(--emt-color-text-muted); }
.emt-reserve-card__price strong { font-family: var(--emt-font-display); font-size: var(--emt-fs-xl); color: var(--emt-azul-profundo); }
.emt-btn--peek { width: 100%; }

@media (max-width: 1023px) {
  .emt-reserve-card {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: var(--emt-z-float);
    flex-direction: row; align-items: center; justify-content: space-between;
    flex-wrap: wrap; row-gap: var(--emt-spacing-sm);
    border-radius: var(--emt-radius-lg) var(--emt-radius-lg) 0 0;
    box-shadow: var(--emt-shadow-xl);
  }
  .emt-reserve-card .emt-btn { width: auto; }
  /* CTA primario (WhatsApp) a lo ancho en su propia fila, amigable al pulgar. */
  .emt-reserve-card__wa { order: 5; flex: 1 1 100%; text-align: center; }
  /* Aire al final del contenido para que la barra fija no lo tape. */
  .emt-single-tour { padding-bottom: 220px; }
  /* El float de WhatsApp es redundante en la ficha móvil (la barra fija ya
     tiene el CTA de WhatsApp) y se encimaba sobre él. */
  body.single-tour .emt-wa-float { display: none; }
}

.emt-tour-related { margin-top: var(--emt-spacing-3xl); }
.emt-tour-related h2 { font-family: var(--emt-font-display); font-size: var(--emt-fs-lg); color: var(--emt-azul-profundo); margin: 0 0 var(--emt-spacing-lg); text-align: center; }

/* Tabla de precios por ocupación */
.emt-precios-tabla { width: 100%; border-collapse: collapse; font-size: var(--emt-fs-sm); }
.emt-precios-tabla th,
.emt-precios-tabla td { text-align: left; padding: var(--emt-spacing-sm) var(--emt-spacing-md); border-bottom: 1px solid var(--emt-color-border); }
.emt-precios-tabla thead th { font-family: var(--emt-font-display); font-weight: var(--emt-fw-semibold); color: var(--emt-azul-profundo); font-size: var(--emt-fs-xs); text-transform: uppercase; letter-spacing: 0.04em; }
.emt-precios-tabla tbody tr:last-child td { border-bottom: 0; }
.emt-precios-tabla__precio { font-weight: var(--emt-fw-semibold); color: var(--emt-azul-profundo); white-space: nowrap; }
.emt-precios-nota { font-size: var(--emt-fs-sm); color: var(--emt-color-text-muted); margin-top: var(--emt-spacing-sm); }

/* Galería en la columna de reserva: foto principal + fila de miniaturas, arriba de "Consultar precio". */
.emt-tour-side-gallery { margin-bottom: var(--emt-spacing-md); }
.emt-tour-side-gallery__main { display: block; width: 100%; aspect-ratio: 4 / 3; border: 0; padding: 0; margin: 0 0 var(--emt-spacing-sm); border-radius: var(--emt-radius-lg); overflow: hidden; cursor: zoom-in; background: var(--emt-surface-tint); }
.emt-tour-side-gallery__main img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.35s ease; }
.emt-tour-side-gallery__main:hover img, .emt-tour-side-gallery__main:focus-visible img { transform: scale(1.04); }
.emt-tour-side-gallery__thumbs { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; }
.emt-tour-side-gallery__thumb { display: block; width: 100%; aspect-ratio: 1 / 1; border: 0; padding: 0; margin: 0; border-radius: var(--emt-radius-sm); overflow: hidden; cursor: zoom-in; background: var(--emt-surface-tint); }
.emt-tour-side-gallery__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.35s ease; }
.emt-tour-side-gallery__thumb:hover img, .emt-tour-side-gallery__thumb:focus-visible img { transform: scale(1.08); }
.emt-tour-side-gallery__main:focus-visible, .emt-tour-side-gallery__thumb:focus-visible { outline: 3px solid var(--emt-turquesa); outline-offset: 2px; }

/* En móvil la columna (galería) sube arriba, debajo del hero; el precio sigue como barra fija. */
@media (max-width: 1023px) {
  .emt-tour-body { display: flex; flex-direction: column; }
  .emt-tour-aside { order: -1; }
}

/* Responsive: las tablas de precios se desplazan horizontalmente si no caben
   (pantallas angostas), en vez de desbordar la página. */
.emt-tour-precios { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.emt-precios-tabla { min-width: 320px; }

/* ---------- Cotizador de la tarjeta de reserva ---------- */
.emt-cotizador { display: flex; flex-direction: column; gap: var(--emt-spacing-sm); }
.emt-cotizador__toggle { width: 100%; }
.emt-cotizador__form { display: flex; flex-direction: column; gap: var(--emt-spacing-sm); background: var(--emt-gris-claro); border: 1px solid var(--emt-color-border); border-radius: var(--emt-radius-md); padding: var(--emt-spacing-md); }
.emt-cotizador__form[hidden] { display: none; } /* cerrado hasta pulsar Cotizar / Consultar disponibilidad */
.emt-cotizador__row { display: grid; grid-template-columns: 1fr 1fr; gap: var(--emt-spacing-sm); }
.emt-cotizador__field label { display: block; font-size: var(--emt-fs-xs); font-weight: var(--emt-fw-semibold); color: var(--emt-azul-profundo); margin-bottom: 3px; }
.emt-cotizador__field input { width: 100%; padding: 0.5rem 0.65rem; border: 1px solid var(--emt-color-border); border-radius: var(--emt-radius-sm); font-size: var(--emt-fs-sm); font-family: var(--emt-font-body); background: #fff; }
.emt-cotizador__field input:focus { border-color: var(--emt-azul-brillante); outline: none; box-shadow: 0 0 0 3px rgba(0,87,184,0.12); }
.emt-cotizador__total { margin: 0; font-family: var(--emt-font-display); font-weight: var(--emt-fw-bold); color: var(--emt-azul-profundo); font-size: var(--emt-fs-base); }
.emt-cotizador__nota { margin: 0; font-size: var(--emt-fs-xs); color: var(--emt-color-text-muted); }
.emt-cotizador__enviar { width: 100%; }
.emt-tour-aside .emt-btn--whatsapp { background: #25D366; color: var(--emt-blanco); }
.emt-tour-aside .emt-btn--whatsapp:hover { background: #1da851; transform: translateY(-2px); }
