/*
 * AdventureApp para WordPress — estilos.
 * Todo vive bajo .aa: nada toca *, body, :root ni las clases del tema.
 * La tipografía se hereda del tema (Astra), así los bloques se ven nativos.
 * Colores: --aa-c (principal) y --aa-a (acento), por bloque o desde Ajustes.
 */

.aa {
	--aa-c: #0f4d91;
	--aa-a: #f59e0b;
	--aa-tinta: #0b1b2b;
	--aa-suave: #51606f;
	--aa-linea: #e3e8ee;
	--aa-arena: #f7f4ee;
	--aa-blanco: #fff;
	--aa-radio: 20px;
	--aa-sombra: 0 1px 2px rgba(11, 27, 43, .06), 0 8px 24px -12px rgba(11, 27, 43, .18);
	--aa-sombra-alta: 0 2px 4px rgba(11, 27, 43, .06), 0 22px 44px -18px rgba(11, 27, 43, .32);
	color: var(--aa-tinta);
	font-family: inherit;
	line-height: 1.5;
	box-sizing: border-box;
}
.aa *, .aa *::before, .aa *::after { box-sizing: inherit; }
.aa :where(h2, h3, p, ul, blockquote, figure) { margin: 0; }
.aa :where(ul) { list-style: none; padding: 0; }
.aa .aa-ico { flex: none; display: inline-block; vertical-align: -3px; }
/* El tema (Astra: .entry-content ul/p/h2…) pesa más que un :where(); se reinicia
   con dos clases para que listas, títulos y párrafos del bloque no hereden
   viñetas, sangrías ni márgenes ajenos. */
.aa .aa-pista, .aa .aa-incluye, .aa .aa-resenas-lista { list-style: none; margin: 0; padding: 0; }
.aa .aa-pista > li, .aa .aa-incluye > li, .aa .aa-resenas-lista > li { margin: 0; list-style: none; }
.aa .aa-pista > li::marker, .aa .aa-incluye > li::marker { content: none; }
.aa .aa-h2, .aa .aa-titulo, .aa .aa-bajada, .aa .aa-meta, .aa .aa-resumen, .aa .aa-chips,
.aa .aa-estrellas, .aa .aa-resena-t, .aa .aa-autor, .aa .aa-detalles-h, .aa .aa-resena blockquote { margin: 0; }
.aa .aa-resena blockquote::before, .aa .aa-resena blockquote::after { content: none; }

/* ── Encabezado de sección ─────────────────────────────────────────────── */
.aa .aa-encabezado { display: grid; gap: 8px; margin-bottom: 22px; max-width: 62ch; }
.aa .aa-h2 {
	font-size: clamp(1.5rem, 1.1rem + 1.6vw, 2.25rem);
	line-height: 1.12; letter-spacing: -.02em; font-weight: 800; color: var(--aa-tinta);
	text-wrap: balance;
}
.aa .aa-bajada { color: var(--aa-suave); font-size: 1.02rem; text-wrap: pretty; }

/* ── Pista: carrusel / cuadrícula / lista ─────────────────────────────── */
.aa .aa-marco { position: relative; }
.aa .aa-pista { display: grid; gap: 20px; margin: 0; padding: 0; }
.aa.aa--cuadricula .aa-pista { grid-template-columns: repeat(auto-fill, minmax(min(100%, 290px), 1fr)); }
.aa.aa--lista .aa-pista { grid-template-columns: 1fr; }
.aa.aa--carrusel .aa-pista {
	display: flex; overflow-x: auto; overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory; scroll-padding-inline: 2px;
	padding: 6px 2px 18px; margin: -6px -2px 0;
	scrollbar-width: none; -webkit-overflow-scrolling: touch;
}
.aa.aa--carrusel .aa-pista::-webkit-scrollbar { display: none; }
.aa.aa--carrusel .aa-item { flex: 0 0 clamp(272px, 31.5%, 380px); scroll-snap-align: start; display: flex; }
.aa .aa-pista:focus-visible { outline: 3px solid var(--aa-c); outline-offset: 4px; border-radius: 12px; }
.aa .aa-item { display: flex; min-width: 0; }

/* Flechas a media altura de las tarjetas, sobre las orillas; la barrita de
   avance va abajo, corta y centrada. En celular se desliza con el dedo. */
.aa .aa-flecha--ant, .aa .aa-flecha--sig { position: absolute; top: calc(50% - 9px); translate: 0 -50%; z-index: 3; }
.aa .aa-flecha--ant { left: -22px; }
.aa .aa-flecha--sig { right: -22px; }
@media (max-width: 1100px) { .aa .aa-flecha--ant { left: 8px; } .aa .aa-flecha--sig { right: 8px; } }
.aa .aa-progreso { width: min(180px, 40%); margin: 14px auto 0; height: 4px; background: var(--aa-linea); border-radius: 4px; overflow: hidden; }
.aa .aa-progreso span { display: block; height: 100%; width: 20%; background: var(--aa-c); border-radius: 3px; transform-origin: left; transition: width .25s ease, margin .25s ease; }
.aa .aa-flecha {
	width: 52px; height: 52px; border-radius: 999px; display: grid; place-items: center;
	border: 1px solid rgba(11, 27, 43, .06); background: rgba(255, 255, 255, .96); color: var(--aa-tinta);
	box-shadow: 0 10px 28px -10px rgba(11, 27, 43, .45), 0 2px 6px rgba(11, 27, 43, .08);
	backdrop-filter: blur(6px);
	cursor: pointer; transition: background .2s, color .2s, opacity .25s, transform .2s, visibility .25s; padding: 0;
}
.aa .aa-flecha .aa-ico { width: 22px; height: 22px; }
.aa .aa-flecha:hover:not(:disabled) { transform: scale(1.06); }
.aa .aa-flecha:hover:not(:disabled) { background: var(--aa-c); border-color: var(--aa-c); color: #fff; }
.aa .aa-flecha:disabled { opacity: 0; visibility: hidden; }
.aa .aa-flecha:focus-visible { outline: 3px solid var(--aa-c); outline-offset: 2px; }

/* ── Tarjeta ───────────────────────────────────────────────────────────── */
.aa .aa-tarjeta {
	position: relative; display: flex; flex-direction: column; width: 100%;
	background: var(--aa-blanco); border: 1px solid var(--aa-linea); border-radius: var(--aa-radio);
	box-shadow: var(--aa-sombra); overflow: hidden;
	transition: transform .35s cubic-bezier(.2, .7, .2, 1), box-shadow .35s;
}
.aa .aa-tarjeta:hover { transform: translateY(-4px); box-shadow: var(--aa-sombra-alta); }
.aa .aa-tarjeta--destacada { border-color: color-mix(in srgb, var(--aa-a) 70%, white); box-shadow: 0 0 0 2px color-mix(in srgb, var(--aa-a) 55%, transparent), var(--aa-sombra); }

.aa .aa-fotos { position: relative; aspect-ratio: 4 / 3; background: var(--aa-arena); overflow: hidden; }
.aa .aa-fotos::after { content: ""; position: absolute; inset: auto 0 0; height: 38%; background: linear-gradient(to top, rgba(11, 27, 43, .35), transparent); pointer-events: none; }
.aa .aa-foto { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity .5s ease, transform 1.2s ease; }
.aa .aa-foto.is-activa { opacity: 1; }
.aa .aa-tarjeta:hover .aa-foto.is-activa { transform: scale(1.035); }
.aa .aa-foto-btn {
	position: absolute; top: 50%; translate: 0 -50%; z-index: 2;
	width: 34px; height: 34px; border-radius: 999px; border: 0; padding: 0; display: grid; place-items: center;
	background: rgba(255, 255, 255, .9); color: var(--aa-tinta); cursor: pointer;
	opacity: 0; transition: opacity .2s; box-shadow: 0 2px 8px rgba(0, 0, 0, .18);
}
.aa .aa-foto-btn--ant { left: 10px; } .aa .aa-foto-btn--sig { right: 10px; }
.aa .aa-fotos:hover .aa-foto-btn, .aa .aa-foto-btn:focus-visible { opacity: 1; }
@media (hover: none) { .aa .aa-foto-btn { opacity: .85; } }
.aa .aa-puntos { position: absolute; z-index: 2; left: 50%; bottom: 10px; translate: -50% 0; display: flex; gap: 5px; }
.aa .aa-puntos span { width: 6px; height: 6px; border-radius: 6px; background: rgba(255, 255, 255, .55); transition: width .25s, background .25s; }
.aa .aa-puntos span.is-activo { width: 16px; background: #fff; }
/* Sin fotos —o si ninguna carga—: el color de la marca con una brújula (y el nombre,
   si el tour no trae fotos) en vez de un hueco. :is() ignora :has() donde no existe. */
.aa :is(.aa-fotos--vacia, .aa-fotos:not(:has(.aa-foto:not([hidden])))) {
	display: grid; place-content: center; justify-items: center; gap: 12px; padding: 22px 26px 30px; color: #fff;
	background: radial-gradient(110% 80% at 100% 0%, rgba(255, 255, 255, .2), transparent 62%), radial-gradient(90% 70% at 0% 100%, rgba(0, 0, 0, .22), transparent 70%), var(--aa-c);
}
.aa :is(.aa-fotos--vacia, .aa-fotos:not(:has(.aa-foto:not([hidden]))))::before {
	content: ""; width: 44px; height: 44px; background: currentColor; opacity: .92;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9.3'/%3E%3Cpath d='m15.7 8.3-2.2 5.2-5.2 2.2 2.2-5.2z'/%3E%3Cpath d='M12 1.6v1.6M12 20.8v1.6M1.6 12h1.6M20.8 12h1.6'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9.3'/%3E%3Cpath d='m15.7 8.3-2.2 5.2-5.2 2.2 2.2-5.2z'/%3E%3Cpath d='M12 1.6v1.6M12 20.8v1.6M1.6 12h1.6M20.8 12h1.6'/%3E%3C/svg%3E") center / contain no-repeat;
}
.aa .aa-sin-foto {
	position: relative; z-index: 1; max-width: 24ch; text-align: center; font-size: 1.1rem; line-height: 1.25; font-weight: 750; letter-spacing: -.01em;
	text-wrap: balance; text-shadow: 0 1px 2px rgba(0, 0, 0, .2); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}

.aa .aa-cinta {
	position: absolute; z-index: 2; top: 12px; left: 12px; max-width: 70%;
	padding: 5px 11px; border-radius: 999px; font-size: .74rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
	background: var(--aa-cinta, var(--aa-a)); color: #fff; box-shadow: 0 4px 12px -4px rgba(0, 0, 0, .35);
	white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.aa .aa-sello {
	position: absolute; z-index: 2; top: 12px; right: 12px; display: inline-flex; align-items: center; gap: 4px;
	padding: 5px 10px 5px 8px; border-radius: 999px; font-size: .74rem; font-weight: 700;
	background: rgba(255, 255, 255, .92); color: var(--aa-tinta); backdrop-filter: blur(6px);
}
.aa .aa-sello .aa-ico { color: var(--aa-a); width: 14px; height: 14px; }

.aa .aa-cuerpo { display: flex; flex-direction: column; gap: 12px; padding: 18px 18px 18px; flex: 1; }
.aa .aa-meta { display: flex; flex-wrap: wrap; gap: 6px 14px; color: var(--aa-suave); font-size: .84rem; }
.aa .aa-meta span { display: inline-flex; align-items: center; gap: 5px; }
.aa .aa-rating .aa-ico { color: var(--aa-a); width: 15px; height: 15px; }
.aa .aa-rating { color: var(--aa-tinta); font-weight: 700; }
.aa .aa-rating small { color: var(--aa-suave); font-weight: 400; }
.aa .aa-titulo {
	font-size: 1.12rem; line-height: 1.28; font-weight: 750; letter-spacing: -.01em; color: var(--aa-tinta);
	display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; text-wrap: balance;
}
.aa .aa-resumen { color: var(--aa-suave); font-size: .92rem; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }

.aa .aa-incluye { display: grid; gap: 6px; font-size: .9rem; color: #2a3a4a; }
.aa .aa-incluye li { display: flex; gap: 8px; align-items: flex-start; line-height: 1.35; }
.aa .aa-incluye .aa-ico { color: var(--aa-c); width: 16px; height: 16px; margin-top: 1px; }
.aa .aa-incluye--no .aa-ico { color: #b42318; }
.aa .aa-incluye .aa-mas { color: var(--aa-suave); font-size: .82rem; padding-left: 24px; }

.aa .aa-detalles { border-top: 1px dashed var(--aa-linea); padding-top: 10px; }
.aa .aa-detalles summary {
	cursor: pointer; list-style: none; font-weight: 650; font-size: .9rem; color: var(--aa-c);
	display: inline-flex; align-items: center; gap: 6px;
}
.aa .aa-detalles summary::-webkit-details-marker { display: none; }
.aa .aa-detalles summary::after { content: ""; width: 7px; height: 7px; border: solid currentColor; border-width: 0 2px 2px 0; rotate: 45deg; translate: 0 -2px; transition: rotate .2s; }
.aa .aa-detalles[open] summary::after { rotate: -135deg; translate: 0 2px; }
.aa .aa-detalles-cuerpo { margin-top: 10px; font-size: .9rem; color: #2a3a4a; display: grid; gap: 8px; max-height: 320px; overflow: auto; padding-right: 4px; }
.aa .aa-detalles-cuerpo p { margin: 0; }
.aa .aa-detalles-h { font-weight: 700; color: var(--aa-tinta); }

.aa .aa-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.aa .aa-chips span { display: inline-flex; align-items: center; gap: 5px; font-size: .78rem; font-weight: 600; padding: 4px 9px; border-radius: 999px; background: color-mix(in srgb, var(--aa-c) 8%, white); color: var(--aa-c); }
.aa .aa-chips .aa-ico { width: 14px; height: 14px; }

.aa .aa-pie { margin-top: auto; padding-top: 14px; border-top: 1px solid var(--aa-linea); display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.aa .aa-precio { display: grid; gap: 1px; min-width: 0; }
.aa .aa-desde { font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; color: var(--aa-suave); font-weight: 600; }
.aa .aa-precio strong { font-size: 1.42rem; line-height: 1.1; font-weight: 800; letter-spacing: -.02em; color: var(--aa-tinta); font-variant-numeric: tabular-nums; }
.aa .aa-usd { font-size: .82rem; color: var(--aa-suave); font-variant-numeric: tabular-nums; }
.aa .aa-tarifas { font-size: .78rem; color: var(--aa-suave); font-variant-numeric: tabular-nums; }
.aa .aa-anticipo { margin-top: 4px; justify-self: start; font-size: .76rem; font-weight: 700; color: #7a4a00; background: color-mix(in srgb, var(--aa-a) 18%, white); padding: 3px 8px; border-radius: 6px; }

/* ── Botón ─────────────────────────────────────────────────────────────── */
.aa .aa-boton, .aa.aa-boton-envoltura .aa-boton {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	min-height: 46px; padding: 0 20px; border-radius: 999px; border: 2px solid var(--aa-c);
	background: var(--aa-c); color: #fff !important; text-decoration: none !important;
	font-weight: 700; font-size: .95rem; letter-spacing: .01em; white-space: nowrap;
	transition: background .2s, transform .2s, box-shadow .2s;
	box-shadow: 0 8px 18px -10px color-mix(in srgb, var(--aa-c) 80%, black);
}
.aa .aa-boton .aa-ico { transition: transform .2s; }
.aa .aa-boton:hover { background: color-mix(in srgb, var(--aa-c) 86%, black); transform: translateY(-1px); }
.aa .aa-boton:hover .aa-ico { transform: translateX(3px); }
.aa .aa-boton:focus-visible { outline: 3px solid var(--aa-a); outline-offset: 3px; }
.aa .aa-boton--contorno { background: transparent; color: var(--aa-c) !important; box-shadow: none; }
.aa .aa-boton--contorno:hover { background: var(--aa-c); color: #fff !important; }
.aa .aa-boton--grande { min-height: 58px; padding: 0 30px; font-size: 1.08rem; }
.aa.aa-boton-envoltura { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; }
.aa.aa-alinear-centro { justify-content: center; }
.aa.aa-alinear-fin { justify-content: flex-end; }
.aa .aa-boton-precio { font-weight: 700; font-variant-numeric: tabular-nums; }

/* Tarjeta manual suelta (en Columnas o una Cuadrícula): vertical como en el carrusel y a lo alto de su celda */
.aa.aa-tarjeta-suelta { display: flex; height: 100%; }

/* ── Lista horizontal ──────────────────────────────────────────────────── */
@media (min-width: 720px) {
	.aa.aa--lista .aa-tarjeta, .aa.aa-sola .aa-tarjeta { flex-direction: row; }
	.aa.aa--lista .aa-fotos, .aa.aa-sola .aa-fotos { flex: 0 0 42%; aspect-ratio: auto; min-height: 280px; }
	.aa.aa-sola .aa-cuerpo { padding: 26px; }
	.aa.aa-sola .aa-titulo { font-size: 1.5rem; }
}

/* ── Opiniones ─────────────────────────────────────────────────────────── */
.aa.aa-resenas { display: grid; gap: 22px; }
.aa .aa-resenas-lista { display: grid; gap: 18px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); }
.aa .aa-resena { background: var(--aa-arena); border-radius: var(--aa-radio); padding: 22px; display: grid; gap: 10px; align-content: start; }
.aa .aa-estrellas { color: var(--aa-a); display: flex; gap: 2px; }
.aa .aa-resena-t { font-weight: 750; }
.aa .aa-resena blockquote { font-size: .98rem; color: #2a3a4a; border: 0; padding: 0; font-style: normal; quotes: none; }
.aa .aa-autor { font-size: .86rem; color: var(--aa-suave); display: flex; flex-wrap: wrap; gap: 4px 8px; align-items: center; }
.aa .aa-autor strong { color: var(--aa-tinta); }
.aa .aa-autor small { flex-basis: 100%; }
.aa .aa-verificada { display: inline-flex; gap: 4px; align-items: center; color: #0f7a4a; font-weight: 650; font-size: .78rem; }
.aa .aa-verificada .aa-ico { width: 14px; height: 14px; }

/* ── Preguntas ─────────────────────────────────────────────────────────── */
.aa.aa-faq { display: grid; gap: 4px; max-width: 820px; }
.aa.aa-faq .aa-h2 { margin-bottom: 14px; }
.aa .aa-pregunta { border-bottom: 1px solid var(--aa-linea); }
.aa .aa-pregunta summary { cursor: pointer; list-style: none; padding: 18px 36px 18px 0; font-weight: 700; font-size: 1.02rem; position: relative; }
.aa .aa-pregunta summary::-webkit-details-marker { display: none; }
.aa .aa-pregunta summary::after { content: "+"; position: absolute; right: 4px; top: 50%; translate: 0 -50%; font-size: 1.5rem; font-weight: 400; color: var(--aa-c); transition: rotate .2s; }
.aa .aa-pregunta[open] summary::after { rotate: 45deg; }
.aa .aa-pregunta > div { padding: 0 0 18px; color: #2a3a4a; }
.aa .aa-pregunta > div p { margin: 0 0 8px; }

/* ── Piezas en línea ───────────────────────────────────────────────────── */
.aa.aa-precio-linea { display: inline-flex; align-items: baseline; gap: 6px; flex-wrap: wrap; }
.aa.aa-precio-linea strong { font-weight: 800; font-size: 1.2em; font-variant-numeric: tabular-nums; }
.aa.aa-tc { display: inline-flex; align-items: center; padding: 4px 10px; border-radius: 999px; background: var(--aa-arena); font-size: .86rem; font-variant-numeric: tabular-nums; }
.aa.aa-vacio { padding: 18px; border: 1px dashed #c4ccd6; border-radius: 12px; color: #51606f; font-size: .9rem; background: #fafbfc; }

/* ── Celular ───────────────────────────────────────────────────────────── */
@media (max-width: 640px) {
	.aa.aa--carrusel .aa-item { flex-basis: 86%; }
	.aa .aa-flecha--ant, .aa .aa-flecha--sig { display: none; }
	.aa .aa-cuerpo { padding: 16px; }
	.aa .aa-pie { align-items: stretch; flex-direction: column; }
	.aa .aa-pie .aa-boton { width: 100%; }
}

/* ── Selector de idioma ─────────────────────────────────────────────────── */
.aa.aa-idioma { display: inline-flex; align-items: center; padding: 3px; border-radius: 999px; background: rgba(11, 27, 43, .06); gap: 2px; line-height: 1; }
.aa.aa-idioma--oscuro { background: rgba(255, 255, 255, .12); color: #fff; }
.aa.aa-barra-sup .aa-idioma { color: inherit; }
.aa .aa-idioma-item { min-width: 38px; height: 30px; display: inline-flex; align-items: center; justify-content: center; gap: 6px; border-radius: 999px; font-size: .78rem; font-weight: 750; letter-spacing: .04em; color: inherit; text-decoration: none !important; opacity: .75; transition: opacity .2s, background .2s; }
.aa .aa-idioma-item:hover { opacity: 1; }
.aa .aa-idioma-item.is-actual { background: #fff; color: var(--aa-tinta); opacity: 1; box-shadow: 0 1px 3px rgba(0, 0, 0, .12); }
.aa .aa-bandera { width: 18px; height: 18px; flex: none; border-radius: 50%; overflow: hidden; display: inline-block; box-shadow: 0 0 0 1px rgba(11, 27, 43, .14); }
.aa .aa-bandera svg { width: 100%; height: 100%; display: block; }
.aa.aa-idioma--oscuro .aa-idioma-item:not(.is-actual) .aa-bandera { box-shadow: 0 0 0 1px rgba(255, 255, 255, .35); }
.aa.aa-idioma--banderas .aa-idioma-item { padding: 0 11px 0 5px; }
.aa.aa-idioma--solo-banderas .aa-idioma-item { min-width: 30px; width: 30px; padding: 0; }
.aa.aa-idioma--solo-banderas .aa-bandera { width: 20px; height: 20px; }
.aa.aa-idioma--solo-banderas .aa-idioma-item:not(.is-actual) { opacity: .6; filter: saturate(.6); }
.aa.aa-idioma--solo-banderas .aa-idioma-item:not(.is-actual):hover { opacity: 1; filter: none; }
.aa .aa-oculto { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
/* Menú: botón con la bandera del idioma actual que despliega los demás */
.aa.aa-idioma--menu { position: relative; display: inline-block; padding: 0; background: none; }
.aa.aa-idioma--menu summary { list-style: none; cursor: pointer; display: inline-flex; align-items: center; gap: 7px; height: 30px; padding: 0 10px 0 6px; border-radius: 999px; background: rgba(11, 27, 43, .06); font-size: .8rem; font-weight: 700; }
.aa.aa-idioma--menu summary::-webkit-details-marker { display: none; }
.aa.aa-idioma--menu.aa-idioma--oscuro summary { background: rgba(255, 255, 255, .12); }
.aa.aa-idioma--menu summary:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
.aa .aa-idioma-flecha { transition: transform .2s; opacity: .7; }
.aa.aa-idioma--menu[open] .aa-idioma-flecha { transform: rotate(180deg); }
.aa.aa-idioma--menu ul { position: absolute; z-index: 9999; right: 0; top: calc(100% + 6px); min-width: 150px; margin: 0; padding: 6px; list-style: none; background: #fff; color: var(--aa-tinta); border-radius: 12px; box-shadow: 0 14px 34px -12px rgba(11, 27, 43, .45), 0 0 0 1px rgba(11, 27, 43, .06); }
.aa.aa-idioma--menu li a { display: flex; align-items: center; gap: 9px; padding: 8px 10px; border-radius: 8px; color: inherit; text-decoration: none !important; font-size: .85rem; font-weight: 600; }
.aa.aa-idioma--menu li a:hover, .aa.aa-idioma--menu li a:focus-visible { background: rgba(11, 27, 43, .06); }

/* ── Barra superior (franja del encabezado) ─────────────────────────────── */
.aa.aa-barra-sup { --aa-bs-pad: var(--wp--style--root--padding-left, clamp(16px, 4vw, 32px)); background: var(--aa-bs-fondo, var(--wp--preset--color--tinta, #0b1b2b)); color: var(--aa-bs-texto, #fff); font-size: var(--wp--preset--font-size--pequena, .85rem); line-height: 1.4; }
.aa.aa-barra-sup:not(.aa-barra-sup--oscura) { color: var(--aa-bs-texto, var(--aa-tinta, #0b1b2b)); }
.aa .aa-bs-interior { box-sizing: border-box; max-width: calc(var(--aa-bs-ancho, 1360px) + var(--aa-bs-pad) * 2); margin: 0 auto; padding: .4rem var(--aa-bs-pad); min-height: 40px; display: flex; align-items: center; gap: 1.25rem; }
.aa .aa-bs-anuncios { flex: 1 1 auto; min-width: 0; }
.aa .aa-bs-anuncios .aa-anuncio + .aa-anuncio::before, .aa .aa-bs-anuncios .aa-anuncios-copia .aa-anuncio::before, .aa .aa-bs-anuncios .aa-anuncios--desplazar .aa-anuncio::after { color: var(--aa-bs-acento, var(--aa-a, #f59e0b)); opacity: 1; }
.aa .aa-bs-derecha { flex: none; display: flex; align-items: center; gap: 1rem; white-space: nowrap; }
.aa .aa-bs-wa { display: inline-flex; align-items: center; gap: 6px; color: inherit; font-weight: 650; text-decoration: none !important; }
.aa .aa-bs-wa svg { color: #25d366; flex: none; }
.aa .aa-bs-wa:hover span { text-decoration: underline; text-underline-offset: 3px; text-decoration-color: var(--aa-bs-acento, var(--aa-a, #f59e0b)); }
.aa.aa-barra-sup .aa-idioma-item { height: 28px; }
@media (max-width: 782px) {
	.aa .aa-bs-wa { display: none; }
	.aa .aa-bs-interior { gap: .75rem; min-height: 38px; }
	.aa.aa-barra-sup .aa-idioma-item { height: 26px; min-width: 32px; font-size: .72rem; }
	.aa.aa-barra-sup .aa-idioma--banderas .aa-idioma-item { padding: 0 8px 0 4px; gap: 5px; }
	.aa.aa-barra-sup .aa-bandera { width: 16px; height: 16px; }
}

/* ── Flotantes: chat de WhatsApp y barra de reservar ───────────────────── */
.aa.aa-flotantes { position: fixed; z-index: 9990; right: var(--aa-wa-margen, 18px); bottom: var(--aa-wa-abajo, 18px); display: flex; flex-direction: column; align-items: flex-end; gap: 10px; pointer-events: none; }
.aa.aa-flotantes--izquierda { right: auto; left: var(--aa-wa-margen, 18px); align-items: flex-start; }
.aa.aa-flotantes--izquierda .aa-wa { align-items: flex-start; }
.aa.aa-flotantes--izquierda .aa-wa-globo { right: auto; left: 74px; border-radius: 14px 14px 14px 4px; transform: translateX(-8px); }
.aa.aa-flotantes--izquierda .aa-wa-ventana { transform-origin: bottom left; }
.aa .aa-wa { position: relative; display: flex; flex-direction: column; align-items: flex-end; gap: 12px; pointer-events: auto; }
.aa .aa-wa-boton {
	position: relative; width: 62px; height: 62px; border-radius: 999px; display: grid; place-items: center;
	background: #25d366; color: #fff !important; text-decoration: none !important;
	box-shadow: 0 12px 28px -10px rgba(18, 140, 70, .65), 0 2px 6px rgba(0, 0, 0, .12);
	transition: transform .25s cubic-bezier(.34, 1.56, .64, 1), box-shadow .25s;
	animation: aa-wa-flota 3.2s ease-in-out infinite;
}
.aa .aa-wa-boton::before, .aa .aa-wa-boton::after {
	content: ""; position: absolute; inset: 0; border-radius: inherit; border: 2px solid #25d366; opacity: 0;
	animation: aa-wa-onda 2.4s cubic-bezier(.2, .6, .4, 1) infinite;
}
.aa .aa-wa-boton::after { animation-delay: 1.2s; }
.aa .aa-wa-boton:hover { transform: scale(1.07); }
.aa .aa-wa-boton:focus-visible { outline: 3px solid var(--aa-c); outline-offset: 3px; }
.aa .aa-wa-boton svg { position: relative; z-index: 1; }
.aa .aa-wa.is-abierto .aa-wa-boton { animation: none; }
.aa .aa-wa.is-abierto .aa-wa-boton::before, .aa .aa-wa.is-abierto .aa-wa-boton::after { animation: none; }
@keyframes aa-wa-flota { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-5px); } }
@keyframes aa-wa-onda { 0% { transform: scale(1); opacity: .55; } 100% { transform: scale(1.7); opacity: 0; } }

.aa .aa-wa-globo {
	position: absolute; right: 74px; bottom: 14px; white-space: nowrap; padding: 9px 14px; border-radius: 14px 14px 4px 14px;
	background: #fff; color: var(--aa-tinta); font-size: .88rem; font-weight: 650; box-shadow: 0 10px 28px -12px rgba(11, 27, 43, .4);
	opacity: 0; transform: translateX(8px); transition: opacity .3s, transform .3s; pointer-events: none;
}
.aa .aa-wa.is-pista .aa-wa-globo, .aa .aa-wa:hover .aa-wa-globo { opacity: 1; transform: none; }
.aa .aa-wa.is-abierto .aa-wa-globo { display: none; }

.aa .aa-wa-ventana {
	width: min(360px, calc(100vw - 32px)); border-radius: 20px; overflow: hidden; background: #efeae2;
	box-shadow: 0 24px 60px -18px rgba(11, 27, 43, .45), 0 2px 8px rgba(0, 0, 0, .08);
	transform-origin: bottom right; animation: aa-wa-abre .35s cubic-bezier(.34, 1.56, .64, 1);
}
.aa .aa-wa-ventana[hidden] { display: none; }
@keyframes aa-wa-abre { from { opacity: 0; transform: translateY(14px) scale(.92); } to { opacity: 1; transform: none; } }
.aa .aa-wa-cabeza { display: flex; align-items: center; gap: 12px; padding: 14px 14px 14px 16px; background: #075e54; color: #fff; }
.aa .aa-wa-avatar { position: relative; flex: none; width: 46px; height: 46px; border-radius: 999px; background: #128c7e; display: grid; place-items: center; }
.aa .aa-wa-avatar img { width: 46px; height: 46px; border-radius: 999px; object-fit: cover; }
.aa .aa-wa-avatar i { position: absolute; right: 1px; bottom: 1px; width: 11px; height: 11px; border-radius: 999px; background: #4ade80; border: 2px solid #075e54; }
.aa .aa-wa-quien { display: grid; line-height: 1.25; min-width: 0; flex: 1; }
.aa .aa-wa-quien strong { font-size: .98rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.aa .aa-wa-quien small { opacity: .85; font-size: .8rem; }
.aa .aa-wa-cerrar { flex: none; width: 34px; height: 34px; border-radius: 999px; border: 0; background: rgba(255, 255, 255, .14); color: #fff; font-size: 1.4rem; line-height: 1; cursor: pointer; }
.aa .aa-wa-cerrar:hover { background: rgba(255, 255, 255, .26); }
.aa .aa-wa-cuerpo { padding: 14px 14px 6px; min-height: 150px; display: flex; flex-direction: column; gap: 10px;
	background-image: radial-gradient(rgba(7, 94, 84, .06) 1px, transparent 1px); background-size: 14px 14px; }
.aa .aa-wa-dia { align-self: center; margin: 0; font-size: .72rem; padding: 3px 10px; border-radius: 8px; background: rgba(255, 255, 255, .85); color: #54656f; }
.aa .aa-wa-escribe { display: inline-flex; align-items: center; gap: 4px; align-self: flex-start; margin: 0; padding: 10px 14px; border-radius: 4px 14px 14px 14px; background: #fff; box-shadow: 0 1px 1px rgba(0, 0, 0, .08); }
.aa .aa-wa-escribe[hidden] { display: none; }
.aa .aa-wa-escribe span { width: 7px; height: 7px; border-radius: 999px; background: #8696a0; animation: aa-wa-punto 1.2s infinite ease-in-out; }
.aa .aa-wa-escribe span:nth-child(2) { animation-delay: .15s; } .aa .aa-wa-escribe span:nth-child(3) { animation-delay: .3s; }
.aa .aa-wa-escribe em { margin-left: 6px; font-style: normal; font-size: .76rem; color: #667781; }
@keyframes aa-wa-punto { 0%, 60%, 100% { transform: translateY(0); opacity: .5; } 30% { transform: translateY(-4px); opacity: 1; } }
.aa .aa-wa-burbuja { align-self: flex-start; max-width: 85%; padding: 8px 12px 18px; border-radius: 4px 14px 14px 14px; background: #fff; position: relative; box-shadow: 0 1px 1px rgba(0, 0, 0, .08); animation: aa-wa-abre .3s ease-out; }
.aa .aa-wa-burbuja[hidden] { display: none; }
.aa .aa-wa-burbuja b { display: block; font-size: .78rem; color: #075e54; }
.aa .aa-wa-burbuja p { margin: 2px 0 0; font-size: .92rem; color: #111b21; line-height: 1.4; }
.aa .aa-wa-burbuja time { position: absolute; right: 10px; bottom: 4px; font-size: .68rem; color: #667781; }
.aa .aa-wa-pie { display: flex; gap: 8px; padding: 10px; background: #f0f2f5; margin: 0; }
.aa .aa-wa-pie input { flex: 1; min-width: 0; border: 0; border-radius: 999px; padding: 11px 16px; font: inherit; font-size: .92rem; background: #fff; color: #111b21; }
.aa .aa-wa-pie input:focus { outline: 2px solid #25d366; }
.aa .aa-wa-pie button { flex: none; width: 44px; height: 44px; border-radius: 999px; border: 0; background: #25d366; color: #fff; display: grid; place-items: center; cursor: pointer; }
.aa .aa-wa-pie button:hover { background: #1ebe5d; }
.aa .screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

.aa .aa-barra { display: none; }
@media (max-width: 781px) {
	.aa.aa-flotantes { right: 0; left: 0; bottom: 0; align-items: stretch; gap: 0; }
	.aa .aa-wa { align-self: flex-end; margin: 0 var(--aa-wa-margen, 14px) var(--aa-wa-abajo-movil, 12px) 0; }
	.aa.aa-flotantes--izquierda .aa-wa { align-self: flex-start; margin: 0 0 var(--aa-wa-abajo-movil, 12px) var(--aa-wa-margen, 14px); }
	.aa.aa-flotantes--izquierda .aa-wa-globo { left: 66px; }
	.aa .aa-wa-boton { width: 56px; height: 56px; }
	.aa .aa-wa-globo { right: 66px; bottom: 10px; }
	.aa .aa-barra {
		pointer-events: auto; display: flex; align-items: center; justify-content: space-between; gap: 12px;
		padding: 10px 14px calc(10px + env(safe-area-inset-bottom)); background: rgba(255, 255, 255, .96);
		backdrop-filter: blur(10px); border-top: 1px solid var(--aa-linea); box-shadow: 0 -8px 24px -12px rgba(11, 27, 43, .25);
	}
	.aa .aa-barra-precio { font-weight: 800; font-variant-numeric: tabular-nums; font-size: .95rem; }
	.aa .aa-barra .aa-boton { flex: 1; max-width: 62%; }
	body:has(.aa-barra) { padding-bottom: 72px; }
}

/* ── Barra de anuncios ─────────────────────────────────────────────────── */
.aa.aa-anuncios { min-width: 0; flex: 1 1 auto; overflow: hidden; color: inherit; font-size: inherit; line-height: 1.4; }
.aa .aa-anuncios-pista { display: flex; align-items: center; white-space: nowrap; }
.aa .aa-anuncio { display: inline-flex; align-items: center; }
.aa .aa-anuncio + .aa-anuncio::before, .aa .aa-anuncios-copia .aa-anuncio::before { content: "•"; margin: 0 .9em; opacity: .55; }
.aa .aa-anuncios-copia { display: inline-flex; }
.aa.aa-anuncios--desplazar { -webkit-mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent); mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent); }
.aa.aa-anuncios--desplazar .aa-anuncios-pista { width: max-content; animation: aa-anun-cinta var(--aa-anun-seg) linear infinite; will-change: transform; }
/* En la cinta cada mensaje lleva su separador DESPUÉS: así las dos mitades (lista y copia) miden
   exactamente lo mismo y el salto de -50% al reiniciar no se nota. */
.aa.aa-anuncios--desplazar .aa-anuncio::before { content: none !important; }
.aa.aa-anuncios--desplazar .aa-anuncio::after { content: "•"; margin: 0 .9em; opacity: .55; }
.aa.aa-anuncios--desplazar:hover .aa-anuncios-pista { animation-play-state: paused; }
@keyframes aa-anun-cinta { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.aa.aa-anuncios--rotar .aa-anuncios-pista { display: grid; }
.aa.aa-anuncios--rotar .aa-anuncio { grid-area: 1 / 1; opacity: 0; transform: translateY(6px); transition: opacity .5s, transform .5s; }
.aa.aa-anuncios--rotar .aa-anuncio::before { content: none !important; }
.aa.aa-anuncios--rotar .aa-anuncio.is-activo, .aa.aa-anuncios--rotar:not([data-aa-listo]) .aa-anuncio:first-child { opacity: 1; transform: none; }
.aa.aa-anuncios--fijo .aa-anuncios-pista { flex-wrap: wrap; white-space: normal; }

/* ── Animaciones de marca ──────────────────────────────────────────────── */
.aa.aa-anim { position: relative; width: 100%; height: calc(var(--aa-anim-ancho) * .75); pointer-events: none; overflow: visible; }
.aa.aa-anim--capa { position: absolute; left: 0; right: 0; bottom: 0; height: 0; z-index: 0; }
.aa.aa-anim--sitio { position: fixed; left: 0; right: 0; bottom: 8px; height: 0; z-index: 9980; }
.aa .aa-anim-pista { position: absolute; bottom: 0; left: 0; display: block; width: var(--aa-anim-ancho); }
.aa .aa-anim-img { display: block; width: 100%; height: auto; filter: drop-shadow(0 2px 4px rgba(0, 0, 0, .18)); animation: aa-anim-bob 2.2s ease-in-out infinite; }
/* cruzar: va a la derecha y regresa, volteándose (la imagen original mira a la izquierda o a la derecha) */
.aa.aa-anim--cruzar .aa-anim-pista { animation: aa-anim-cruzar var(--aa-anim-seg) linear infinite; }
.aa.aa-anim--cruzar.aa-anim--mira-izquierda .aa-anim-pista { animation-name: aa-anim-cruzar, aa-anim-voltea-i; animation-duration: var(--aa-anim-seg), var(--aa-anim-seg); animation-timing-function: linear, step-end; animation-iteration-count: infinite, infinite; }
.aa.aa-anim--cruzar.aa-anim--mira-derecha .aa-anim-pista { animation-name: aa-anim-cruzar, aa-anim-voltea-d; animation-duration: var(--aa-anim-seg), var(--aa-anim-seg); animation-timing-function: linear, step-end; animation-iteration-count: infinite, infinite; }
.aa.aa-anim--recorrer .aa-anim-pista { animation: aa-anim-recorrer var(--aa-anim-seg) linear infinite; }
.aa.aa-anim--recorrer.aa-anim--mira-izquierda .aa-anim-img { transform: scaleX(-1); animation: none; }
.aa.aa-anim--flotar .aa-anim-pista { left: 50%; margin-left: calc(var(--aa-anim-ancho) / -2); animation: aa-anim-flotar var(--aa-anim-seg) ease-in-out infinite; }
@keyframes aa-anim-cruzar { 0% { left: 0; } 50% { left: calc(100% - var(--aa-anim-ancho)); } 100% { left: 0; } }
@keyframes aa-anim-voltea-i { 0% { transform: scaleX(-1); } 50% { transform: scaleX(1); } 100% { transform: scaleX(-1); } }
@keyframes aa-anim-voltea-d { 0% { transform: scaleX(1); } 50% { transform: scaleX(-1); } 100% { transform: scaleX(1); } }
@keyframes aa-anim-recorrer { from { left: calc(-1 * var(--aa-anim-ancho)); } to { left: 100%; } }
@keyframes aa-anim-flotar { 0%, 100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-10px) rotate(2deg); } }
@keyframes aa-anim-bob { 0%, 100% { translate: 0 0; } 50% { translate: 0 -3px; } }
*:hover > .aa.aa-anim .aa-anim-pista, *:hover > .aa.aa-anim .aa-anim-img { animation-play-state: paused; }
.aa.aa-anim--sitio .aa-anim-pista, .aa.aa-anim--sitio .aa-anim-img { animation-play-state: running !important; }
@media (max-width: 781px) { .aa.aa-anim--sin-celular { display: none; } .aa.aa-anim--sitio { bottom: 80px; } }

@media (prefers-reduced-motion: reduce) {
	.aa *, .aa *::before, .aa *::after { transition: none !important; animation: none !important; }
	.aa.aa-anim--sitio { display: none; }
	.aa .aa-tarjeta:hover { transform: none; }
	.aa.aa--carrusel .aa-pista { scroll-behavior: auto; }
}

/* Powered by Adventure Planet (pie de página) */
.aa.aa-credito { display: inline-flex; align-items: center; gap: 6px; font-size: .82rem; line-height: 1; color: var(--aa-tinta, #0b1b2b); text-decoration: none !important; opacity: .78; transition: opacity .2s; white-space: nowrap; }
.aa.aa-credito:hover, .aa.aa-credito:focus-visible { opacity: 1; }
.aa.aa-credito--oscuro { color: #fff; }
.aa .aa-credito-txt { font-weight: 450; }
.aa .aa-credito-marca { flex: none; width: 31px; height: 22px; background: currentColor; -webkit-mask: url(../logos/adventure-planet.svg) center / contain no-repeat; mask: url(../logos/adventure-planet.svg) center / contain no-repeat; transition: transform .5s cubic-bezier(.2, .8, .2, 1); }
.aa.aa-credito:hover .aa-credito-marca { transform: rotate(-10deg) scale(1.08); }
.aa.aa-credito strong { font-weight: 750; letter-spacing: .01em; }
.aa.aa-credito:hover strong { text-decoration: underline; text-underline-offset: 3px; }
@media (prefers-reduced-motion: reduce) { .aa .aa-credito-marca { transition: none; } }

/* Próxima salida en la tarjeta (la escribe assets/js/salidas.js) */
.aa .aa-salida { display: flex; align-items: center; gap: 6px; margin: 0; font-size: .84rem; font-weight: 600; color: var(--aa-c); animation: aa-salida-entra .3s ease both; }
.aa .aa-salida .aa-ico { width: 16px; height: 16px; vertical-align: 0; }
.aa .aa-salida--pocos { color: color-mix(in srgb, var(--aa-a) 62%, black); }
@keyframes aa-salida-entra { from { opacity: 0; } to { opacity: 1; } }

/* ── Pago seguro: formas de pago y sellos ───────────────────────────────── */
.aa.aa-confianza { display: grid; gap: 18px; justify-items: center; text-align: center; color: var(--aa-tinta); }
.aa.aa-confianza--izquierda { justify-items: start; text-align: left; }
.aa.aa-confianza--oscuro { color: #fff; }
.aa .aa-confianza-pagos { display: grid; gap: 10px; justify-items: inherit; }
.aa .aa-confianza-titulo { margin: 0; display: inline-flex; align-items: center; gap: 7px; font-size: .78rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; opacity: .85; }
.aa .aa-confianza-titulo svg { color: #16a34a; }
.aa.aa-confianza--oscuro .aa-confianza-titulo svg { color: #4ade80; }
.aa .aa-pagos { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; justify-content: inherit; }
.aa.aa-confianza--centro .aa-pagos { justify-content: center; }
.aa .aa-pago { height: 36px; min-width: 56px; padding: 0 11px; box-sizing: border-box; display: grid; place-items: center; background: #fff; border-radius: 7px; box-shadow: 0 0 0 1px rgba(11, 27, 43, .1), 0 1px 2px rgba(11, 27, 43, .06); }
.aa .aa-pago img { display: block; width: auto !important; max-width: 74px; }
.aa .aa-pago--amex { padding: 0 5px; min-width: 46px; }
.aa .aa-confianza-stripe { margin: 0; display: inline-flex; align-items: center; gap: 7px; font-size: .78rem; opacity: .8; }
.aa .aa-confianza-stripe img { display: block; width: auto; }
.aa.aa-confianza--oscuro .aa-confianza-stripe img { filter: brightness(0) invert(1); }
.aa .aa-sellos { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 14px 22px; justify-content: center; }
.aa.aa-confianza--izquierda .aa-sellos { justify-content: flex-start; }
.aa .aa-sellos li { height: 64px; padding: 8px 12px; box-sizing: border-box; display: grid; place-items: center; background: #fff; border-radius: 10px; box-shadow: 0 0 0 1px rgba(11, 27, 43, .08); }
.aa .aa-sellos img { display: block; max-height: 48px; max-width: 130px; width: auto; height: auto; object-fit: contain; }
/* Línea corta debajo del bloque Tour */
.aa .aa-pago-linea { margin-top: 12px; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 6px 10px; font-size: .76rem; font-weight: 650; color: var(--aa-gris, #5b6b7b); }
.aa .aa-pago-linea > svg { color: #16a34a; }
.aa .aa-pagos--mini { gap: 6px; }
.aa .aa-pagos--mini .aa-pago { height: 28px; min-width: 44px; padding: 0 8px; border-radius: 6px; }
.aa .aa-pagos--mini .aa-pago--amex { min-width: 36px; padding: 0 4px; }

/* ── Tarjeta: dos acciones y toda la tarjeta a la página del tour ─────────
   "More info" (secundario) + "Book now" (principal). Con página del tour, la foto y
   el título también llevan ahí: el título es el enlace y su ::after cubre el cuerpo;
   la foto lleva su propio enlace debajo de las flechas (así deslizar con el dedo
   sigue cambiando de foto). Los botones quedan encima de esos enlaces (z-index 2). */
.aa .aa-item[hidden] { display: none !important; }
.aa .aa-pie--acciones { display: grid; gap: 12px; align-items: stretch; justify-content: stretch; }
.aa .aa-acciones { position: relative; z-index: 2; display: grid; gap: 8px; grid-template-columns: minmax(0, 1fr); }
.aa .aa-acciones--dos { grid-template-columns: minmax(0, 1fr) minmax(0, 1.12fr); }
.aa .aa-acciones .aa-boton { width: 100%; min-height: 46px; padding: 0 12px; gap: 6px; font-size: .92rem; }
.aa .aa-acciones .aa-boton .aa-ico { width: 16px; height: 16px; }
.aa .aa-boton.aa-boton--sec { background: #fff; color: var(--aa-c) !important; border-color: color-mix(in srgb, var(--aa-c) 30%, white); box-shadow: none; }
.aa .aa-boton.aa-boton--sec:hover { background: color-mix(in srgb, var(--aa-c) 7%, white); border-color: var(--aa-c); }
/* Sin página del tour: el <summary> ES el botón y los detalles se abren encima de la tarjeta */
.aa .aa-detalles--boton { border-top: 0; padding-top: 0; min-width: 0; }
.aa .aa-detalles--boton > summary.aa-boton { display: flex; width: 100%; box-sizing: border-box; max-width: 100%; color: var(--aa-c) !important; font-weight: 700; font-size: .92rem; }
/* El botón «Ver detalles» es un <summary>: su caja NO heredaba border-box, y con width: 100% más el relleno y el borde se salía de su columna (~28 px) y se montaba sobre «Reservar». Explícito, y los dos botones siempre dentro de su columna. */
.aa .aa-acciones .aa-boton, .aa .aa-acciones > .aa-detalles { box-sizing: border-box; min-width: 0; max-width: 100%; }
.aa .aa-detalles--boton > .aa-detalles-cuerpo {
	position: absolute; left: 0; right: 0; bottom: calc(100% + 10px); z-index: 5; margin: 0;
	max-height: min(330px, 60vh); overflow: auto; padding: 16px 16px 14px; text-align: left;
	background: #fff; border: 1px solid var(--aa-linea); border-radius: 14px;
	box-shadow: 0 18px 40px -16px rgba(11, 27, 43, .42), 0 2px 6px rgba(11, 27, 43, .08);
	animation: aa-sube .22s ease both;
}
@keyframes aa-sube { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.aa .aa-detalles-t { margin: 0; font-weight: 750; color: var(--aa-tinta); line-height: 1.3; }
.aa .aa-tarjeta--enlace .aa-cuerpo { position: relative; }
.aa .aa-titulo-enlace { color: inherit !important; text-decoration: none !important; }
.aa .aa-titulo-enlace::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.aa .aa-tarjeta--enlace:hover .aa-titulo-enlace { text-decoration: underline !important; text-decoration-thickness: 2px !important; text-underline-offset: 4px; text-decoration-color: color-mix(in srgb, var(--aa-c) 45%, transparent) !important; }
.aa .aa-titulo-enlace:focus-visible { outline: none; }
.aa .aa-titulo-enlace:focus-visible::after { outline: 3px solid var(--aa-c); outline-offset: -4px; border-radius: 0 0 var(--aa-radio) var(--aa-radio); }
.aa .aa-fotos-enlace { position: absolute; inset: 0; z-index: 1; }
/* Pago seguro al pie de la tarjeta: una línea, en chico */
.aa .aa-pago-tarjeta { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 4px 6px; margin-top: -2px; font-size: .7rem; font-weight: 650; letter-spacing: .01em; color: var(--aa-suave); line-height: 1.2; }
.aa .aa-pago-tarjeta > svg { flex: none; width: 13px; height: 13px; color: #16a34a; }
.aa .aa-pagos--micro { gap: 4px; flex-wrap: nowrap; }
.aa .aa-pagos--micro .aa-pago { height: 22px; min-width: 34px; padding: 0 5px; border-radius: 5px; box-shadow: 0 0 0 1px rgba(11, 27, 43, .09); }
.aa .aa-pagos--micro .aa-pago img { max-width: 40px; }
.aa .aa-pagos--micro .aa-pago--amex { min-width: 26px; padding: 0 3px; }

/* ── Pago seguro compacto (panel de compra, Todos los tours) ───────────── */
.aa.aa-confianza--compacto { gap: 12px; }
.aa.aa-confianza--compacto .aa-confianza-pagos { gap: 8px; }
.aa.aa-confianza--compacto .aa-confianza-titulo { font-size: .72rem; }
.aa.aa-confianza--compacto .aa-pago { height: 30px; min-width: 46px; padding: 0 8px; border-radius: 6px; }
.aa.aa-confianza--compacto .aa-pago--amex { min-width: 36px; padding: 0 4px; }
.aa.aa-confianza--compacto .aa-confianza-stripe { font-size: .72rem; }
.aa.aa-confianza--compacto .aa-sellos { gap: 8px; }
.aa.aa-confianza--compacto .aa-sellos li { height: 48px; padding: 5px 8px; border-radius: 8px; }
.aa.aa-confianza--compacto .aa-sellos img { max-height: 36px; max-width: 88px; }

/* ── Todos los tours: filtro + rejilla ─────────────────────────────────── */
.aa.aa-todos { display: grid; gap: 22px; min-width: 0; }
/* Hijos de rejilla con min-width:0: si no, la tira de filtros del celular ensancha la página */
.aa.aa-todos > *, .aa .aa-filtros > * { min-width: 0; }
.aa.aa-todos .aa-encabezado { margin-bottom: 0; }
.aa .aa-filtros { display: grid; gap: 14px; padding: 18px 20px; background: var(--aa-arena); border-radius: var(--aa-radio); }
.aa .aa-filtro { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; min-width: 0; }
.aa .aa-filtro-t { flex: none; min-width: 92px; font-size: .74rem; font-weight: 750; text-transform: uppercase; letter-spacing: .08em; color: var(--aa-suave); }
.aa .aa-opciones { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; min-width: 0; }
.aa .aa-opciones > li { margin: 0; list-style: none; }
.aa .aa-opcion {
	display: inline-flex; align-items: center; gap: 7px; min-height: 40px; padding: 0 15px; border-radius: 999px;
	background: #fff; border: 1px solid var(--aa-linea); color: var(--aa-tinta) !important; text-decoration: none !important;
	font-size: .88rem; font-weight: 600; white-space: nowrap; transition: background .2s, border-color .2s, color .2s;
}
.aa .aa-opcion:hover { border-color: var(--aa-c); }
.aa .aa-opcion[aria-current="true"] { background: var(--aa-c); border-color: var(--aa-c); color: #fff !important; }
.aa .aa-opcion:focus-visible { outline: 3px solid var(--aa-a); outline-offset: 2px; }
.aa .aa-opcion-n { font-size: .72rem; font-weight: 700; min-width: 20px; text-align: center; padding: 1px 6px; border-radius: 999px; background: var(--aa-arena); color: var(--aa-suave); font-variant-numeric: tabular-nums; }
.aa .aa-opcion[aria-current="true"] .aa-opcion-n { background: rgba(255, 255, 255, .22); color: #fff; }
.aa .aa-filtros-total { margin: 0; font-size: .86rem; font-weight: 650; color: var(--aa-suave); }
.aa .aa-filtros-vacio { display: grid; justify-items: center; gap: 14px; padding: 44px 20px; text-align: center; color: var(--aa-suave); border: 1px dashed #c4ccd6; border-radius: var(--aa-radio); }
.aa .aa-filtros-vacio[hidden] { display: none; }
.aa .aa-filtros-vacio p { margin: 0; }
.aa.aa-todos > .aa-confianza { margin-top: 18px; }
@media (max-width: 640px) {
	.aa .aa-filtros { padding: 14px; gap: 12px; }
	/* nowrap: en columna con wrap, el ancho de la línea lo pondría la tira entera y ensancharía la página */
	.aa .aa-filtro { flex-direction: column; flex-wrap: nowrap; align-items: stretch; gap: 6px; }
	/* En el celular cada grupo es una tira que se desliza, no un muro de botones */
	.aa .aa-opciones { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin: 0 -14px; padding: 2px 14px 4px; scroll-padding-inline: 14px; }
	.aa .aa-opciones::-webkit-scrollbar { display: none; }
}

/* ── Página del tour (FichaTour) ───────────────────────────────────────── */
.aa.aa-ficha { display: grid; gap: 22px; padding: clamp(18px, 2.5vw, 34px) 0 clamp(40px, 6vw, 72px); }
.aa .aa-ficha-cabeza { display: grid; gap: 12px; }
.aa .aa-tour-titulo { margin: 0; font-size: clamp(1.85rem, 1.15rem + 2.3vw, 3.1rem); line-height: 1.08; letter-spacing: -.02em; text-wrap: balance; }
.aa .aa-ficha-meta { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 18px; color: var(--aa-suave); font-size: .92rem; }
.aa .aa-ficha-meta > li { display: inline-flex; align-items: center; gap: 6px; margin: 0; }
.aa .aa-ficha-meta .aa-ico { width: 17px; height: 17px; }
.aa .aa-ficha-meta .aa-rating a { display: inline-flex; align-items: center; gap: 5px; color: var(--aa-tinta) !important; font-weight: 700; text-decoration: none !important; }
.aa .aa-ficha-meta .aa-rating .aa-ico { color: var(--aa-a); }
.aa .aa-ficha-meta .aa-ficha-chip { padding: 4px 11px; border-radius: 999px; background: color-mix(in srgb, var(--aa-c) 8%, white); color: var(--aa-c); font-weight: 650; font-size: .84rem; }

.aa .aa-ficha-rejilla { display: grid; gap: 28px; grid-template-columns: minmax(0, 1fr); grid-template-areas: "galeria" "compra" "contenido"; }
.aa .aa-ficha-galeria { grid-area: galeria; min-width: 0; }
.aa .aa-compra { grid-area: compra; min-width: 0; }
.aa .aa-ficha-contenido { grid-area: contenido; min-width: 0; display: grid; gap: 0; }
.aa .aa-ficha-contenido > * + * { margin-top: clamp(28px, 4vw, 40px); padding-top: clamp(28px, 4vw, 40px); border-top: 1px solid var(--aa-linea); }

/* Galería: la foto grande con flechas siempre a la vista y las miniaturas debajo */
.aa .aa-galeria { display: grid; gap: 10px; }
.aa .aa-fotos--grande { aspect-ratio: 16 / 10; border-radius: var(--aa-radio); }
.aa .aa-fotos--grande::after { height: 22%; }
.aa .aa-fotos--grande .aa-foto-btn { width: 46px; height: 46px; opacity: .92; }
.aa .aa-fotos--grande .aa-foto-btn--ant { left: 14px; }
.aa .aa-fotos--grande .aa-foto-btn--sig { right: 14px; }
.aa .aa-fotos--grande .aa-puntos { bottom: 14px; }
.aa .aa-miniaturas { list-style: none; margin: 0; padding: 3px; display: flex; gap: 8px; overflow-x: auto; scrollbar-width: thin; }
.aa .aa-miniaturas > li { flex: 0 0 auto; margin: 0; list-style: none; }
.aa .aa-miniaturas button { display: block; width: 96px; height: 64px; padding: 0; border: 0; border-radius: 10px; overflow: hidden; cursor: pointer; background: var(--aa-arena); opacity: .6; outline: 2px solid transparent; outline-offset: 2px; transition: opacity .2s, outline-color .2s; }
.aa .aa-miniaturas button:hover { opacity: .9; }
.aa .aa-miniaturas button[aria-current="true"] { opacity: 1; outline-color: var(--aa-c); }
.aa .aa-miniaturas button:focus-visible { opacity: 1; outline-color: var(--aa-a); }
.aa .aa-miniaturas img { display: block; width: 100%; height: 100%; object-fit: cover; }

/* Información */
.aa .aa-ficha-seccion { display: grid; gap: 14px; align-content: start; min-width: 0; }
.aa .aa-ficha-h { margin: 0; font-size: clamp(1.3rem, 1.1rem + .7vw, 1.62rem); line-height: 1.2; letter-spacing: -.01em; font-weight: 750; color: var(--aa-tinta); text-wrap: balance; }
.aa .aa-ficha-h3 { margin: 0 0 10px; font-size: 1rem; line-height: 1.3; font-weight: 750; color: var(--aa-tinta); }
.aa .aa-ficha-entrada { margin: 0; font-size: 1.14rem; line-height: 1.55; color: var(--aa-tinta); text-wrap: pretty; }
.aa .aa-ficha-texto { display: grid; gap: 10px; color: #2a3a4a; font-size: 1rem; line-height: 1.65; }
.aa .aa-ficha-texto > * { margin: 0; }
.aa .aa-ficha-texto :where(ul, ol) { padding-left: 1.2em; list-style: revert; }
.aa .aa-ficha-lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.aa .aa-ficha-lista > li { display: flex; gap: 10px; align-items: flex-start; margin: 0; list-style: none; line-height: 1.45; color: #2a3a4a; }
.aa .aa-ficha-lista .aa-ico { width: 18px; height: 18px; margin-top: 2px; color: var(--aa-c); }
.aa .aa-ficha-lista--destacados .aa-ico { color: var(--aa-a); }
.aa .aa-ficha-lista--no .aa-ico { color: #b42318; }
.aa .aa-ficha-par { display: grid; gap: clamp(28px, 4vw, 40px); }
.aa .aa-ficha-bloques { display: grid; gap: 14px; }
.aa .aa-ficha-bloque { padding: 18px 20px; background: var(--aa-arena); border-radius: 14px; min-width: 0; }
.aa .aa-ficha-encuentro { display: grid; gap: 14px; }
.aa .aa-ficha-direccion { display: flex; gap: 10px; align-items: flex-start; }
.aa .aa-ficha-direccion > .aa-ico { margin-top: 4px; color: var(--aa-c); }
.aa .aa-mapa { aspect-ratio: 16 / 7; border-radius: 14px; overflow: hidden; border: 1px solid var(--aa-linea); background: var(--aa-arena); }
.aa .aa-mapa iframe { display: block; width: 100%; height: 100%; border: 0; }
.aa .aa-como-llegar { justify-self: start; }
.aa.aa-ficha .aa-resenas .aa-h2, .aa.aa-ficha .aa-faq .aa-h2 { font-size: clamp(1.3rem, 1.1rem + .7vw, 1.62rem); }
.aa.aa-ficha .aa-faq { max-width: none; }
@media (min-width: 720px) {
	.aa .aa-ficha-lista--dos { grid-template-columns: 1fr 1fr; column-gap: 28px; }
	.aa .aa-ficha-par { grid-template-columns: 1fr 1fr; }
	.aa .aa-ficha-bloques { grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); }
}
@media (max-width: 640px) {
	.aa .aa-fotos--grande { aspect-ratio: 4 / 3; border-radius: 14px; }
	.aa .aa-miniaturas button { width: 72px; height: 50px; }
	.aa .aa-mapa { aspect-ratio: 4 / 3; }
}

/* Panel de compra */
.aa .aa-compra-caja { background: #fff; border: 1px solid var(--aa-linea); border-radius: var(--aa-radio); box-shadow: var(--aa-sombra-alta); overflow: hidden; }
.aa .aa-compra-cuerpo { display: grid; gap: 12px; padding: 20px 20px 18px; }
.aa .aa-compra-cabeza { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 12px 14px; }
.aa .aa-compra-cabeza .aa-precio strong { font-size: 1.8rem; }
.aa .aa-compra-cabeza .aa-boton { flex: 1 1 150px; max-width: 230px; min-height: 52px; font-size: 1rem; }
.aa .aa-compra-tarifas { list-style: none; margin: 0; padding: 12px 0 0; border-top: 1px solid var(--aa-linea); display: grid; gap: 5px; font-size: .9rem; color: #2a3a4a; }
.aa .aa-compra-tarifas > li { display: flex; justify-content: space-between; gap: 10px; margin: 0; list-style: none; }
.aa .aa-compra-tarifas strong { color: var(--aa-tinta); font-variant-numeric: tabular-nums; }
.aa .aa-compra .aa-anticipo { margin: 0; justify-self: start; }
.aa .aa-compra .aa-salida { margin: 0; }
.aa .aa-compra-datos { list-style: none; margin: 0; padding: 12px 0 0; border-top: 1px solid var(--aa-linea); display: grid; gap: 8px; font-size: .9rem; color: #2a3a4a; }
.aa .aa-compra-datos > li { display: flex; gap: 10px; align-items: flex-start; margin: 0; list-style: none; line-height: 1.4; }
.aa .aa-compra-datos .aa-ico { width: 17px; height: 17px; margin-top: 1px; color: var(--aa-c); }
.aa .aa-compra-datos b { display: block; font-size: .7rem; font-weight: 750; text-transform: uppercase; letter-spacing: .08em; color: var(--aa-suave); }
.aa .aa-compra-marco:empty { display: none; }
/* La venta al lado se arma en dos tiempos (adventureapp.js): mientras carga, el esqueleto
   ocupa su lugar y el iframe se queda en 0 px (en el flujo, para que la venta pueda medirse);
   cuando avisa su altura, el iframe crece y aparece con un desvanecido corto. Sin aviso, nada. */
.aa .aa-compra-marco:not([data-aa-alto]):not([data-aa-cargando]) { display: none; }
.aa .aa-compra-marco { position: relative; border-top: 1px solid var(--aa-linea); background: #fff; }
.aa .aa-compra-marco iframe { display: block; width: 100%; height: 0; border: 0; background: #fff; overflow: hidden; opacity: 0; transition: opacity .2s ease; }
.aa .aa-compra-marco[data-aa-alto] iframe { opacity: 1; }
/* Esqueleto con la forma del formulario (fecha, personas, botón) y "Conectando con pago seguro". */
.aa .aa-compra-esqueleto { display: grid; gap: 10px; padding: 18px 18px 20px; background: #fff; }
.aa .aa-compra-esqueleto.is-saliendo { position: absolute; inset: 0 0 auto; z-index: 1; opacity: 0; transition: opacity .2s ease; pointer-events: none; }
.aa .aa-esq-conectando { display: flex; align-items: center; gap: 10px; margin: 0 0 4px; font-size: .92rem; font-weight: 650; color: var(--aa-tinta); }
.aa .aa-esq-candado { position: relative; flex: none; display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; color: var(--aa-c); background: color-mix(in srgb, var(--aa-c) 10%, white); }
.aa .aa-esq-candado::after { content: ""; position: absolute; inset: 0; border-radius: inherit; border: 2px solid color-mix(in srgb, var(--aa-c) 35%, white); animation: aa-esq-latido 1.6s ease-out infinite; }
.aa .aa-esq { display: block; border-radius: 8px; background: linear-gradient(90deg, #edf0f3 0%, #f7f9fb 40%, #edf0f3 80%) 0 0 / 300% 100%; animation: aa-esq-brillo 1.5s ease-in-out infinite; }
.aa .aa-esq--etiqueta { width: 34%; height: 11px; margin-top: 6px; }
.aa .aa-esq--campo { height: 46px; border-radius: 12px; }
.aa .aa-esq-fila { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 4px 0; }
.aa .aa-esq--texto { width: 45%; height: 14px; }
.aa .aa-esq--contador { width: 96px; height: 32px; border-radius: 999px; }
.aa .aa-esq--boton { height: 52px; margin-top: 8px; border-radius: 14px; background: color-mix(in srgb, var(--aa-c) 14%, white); animation: none; }
@keyframes aa-esq-latido { from { transform: scale(.85); opacity: .9; } to { transform: scale(1.4); opacity: 0; } }
@keyframes aa-esq-brillo { from { background-position: 100% 0; } to { background-position: 0 0; } }
.aa .aa-compra-confianza { padding: 14px 16px 16px; background: var(--aa-arena); border-top: 1px solid var(--aa-linea); }
@media (max-width: 1023px) { .aa .aa-compra-marco { display: none; } }
@media (min-width: 1024px) {
	.aa .aa-ficha-rejilla {
		grid-template-columns: minmax(0, 1fr) clamp(360px, 31vw, 430px);
		grid-template-areas: "galeria compra" "contenido compra";
		/* El panel de compra abarca las dos filas. Si es más alto que la columna de la izquierda (la venta
		   dentro de la página, en un tour con poca información), el sobrante tiene que ir al FINAL de la
		   segunda fila y no repartirse entre las dos: así no se abre un hueco entre la galería y el texto. */
		grid-template-rows: auto minmax(0, 1fr);
		column-gap: clamp(32px, 4vw, 56px); row-gap: 44px; align-items: start;
	}
	/* Fija al bajar, debajo del encabezado fijo del tema (un tema puede ajustar --aa-arriba). */
	.aa .aa-compra { --aa-arriba-real: var(--aa-arriba, calc(var(--wp-admin--admin-bar--height, 0px) + 96px)); position: sticky; top: var(--aa-arriba-real); align-self: start; }
	/* Con la venta dentro: crece a su tamaño (la altura la pone la venta) y el panel deja de ser
	   fijo. Un solo scroll, el de la página: nada de ventanita con scroll propio. */
	.aa .aa-compra--con-venta { position: static; }
	/* La pasarela ya está a la vista (o cargando en su lugar): «Reservar» abriría la misma
	   en un modal encima. Si la venta no llega, el botón vuelve (adventureapp.js). */
	.aa .aa-compra--con-venta .aa-compra-cabeza .aa-boton, .aa .aa-compra--cargando .aa-compra-cabeza .aa-boton { display: none; }
	.aa .aa-compra--con-venta .aa-compra-cuerpo { gap: 10px; padding: 16px 18px 14px; }
	.aa .aa-compra--con-venta .aa-compra-datos { grid-template-columns: 1fr 1fr; column-gap: 12px; }
}

/* Barra de abajo en la página del tour: celular Y tableta (la ficha es de una columna hasta 1024 px) */
@media (min-width: 782px) and (max-width: 1023px) {
	.aa.aa-flotantes--tour { right: 0; left: 0; bottom: 0; align-items: stretch; gap: 0; }
	.aa.aa-flotantes--tour .aa-wa { align-self: flex-end; margin: 0 var(--aa-wa-margen, 14px) var(--aa-wa-abajo-movil, 12px) 0; }
	.aa.aa-flotantes--tour.aa-flotantes--izquierda .aa-wa { align-self: flex-start; margin: 0 0 var(--aa-wa-abajo-movil, 12px) var(--aa-wa-margen, 14px); }
	.aa .aa-barra--tour {
		pointer-events: auto; display: flex; align-items: center; justify-content: space-between; gap: 12px;
		padding: 10px 18px calc(10px + env(safe-area-inset-bottom)); background: rgba(255, 255, 255, .96);
		backdrop-filter: blur(10px); border-top: 1px solid var(--aa-linea); box-shadow: 0 -8px 24px -12px rgba(11, 27, 43, .25);
	}
	.aa .aa-barra--tour .aa-boton { flex: 1; max-width: 340px; }
	body:has(.aa-barra--tour) { padding-bottom: 76px; }
}
.aa .aa-barra--tour .aa-barra-precio { display: grid; line-height: 1.15; font-size: 1.05rem; }
.aa .aa-barra--tour .aa-barra-precio small { font-size: .66rem; font-weight: 650; text-transform: uppercase; letter-spacing: .08em; color: var(--aa-suave); }
