/**
 * Home 1 (Tourm) — estilos propios del port.
 *
 * Solo el lightbox de la galería y pequeños ajustes que el CSS del template no
 * cubre. No se toca assets/css/style.css para poder actualizarlo sin perder
 * cambios.
 */

/* Lightbox de la galería (sustituye al modal de React). */
.tc-lightbox {
	position: fixed;
	inset: 0;
	z-index: 999999;
	display: none;
	align-items: center;
	justify-content: center;
	background: rgba(0, 0, 0, 0.85);
}

/* ==================================================================
 * NOSOTROS — adaptación editorial de la página About de Tourm
 *
 * La estructura conserva el lenguaje visual de la demo (breadcrumb
 * fotográfico, collage, servicios y bloque de confianza), pero usa la paleta,
 * el contenido y los destinos reales de 40 Millas.
 * ================================================================== */
.tc-about-page {
	overflow: hidden;
	background: #fff;
}

.tc-about-hero {
	position: relative;
	isolation: isolate;
	display: grid;
	min-height: 410px;
	place-items: center;
	background-image: var(--tc-about-hero-image);
	background-position: center 54%;
	background-size: cover;
	color: #fff;
}

.tc-about-hero::before {
	content: '';
	position: absolute;
	inset: 0;
	z-index: -1;
	background:
		linear-gradient(90deg, rgba(1, 52, 96, 0.84), rgba(4, 28, 48, 0.58)),
		linear-gradient(180deg, rgba(4, 28, 48, 0.08), rgba(4, 28, 48, 0.34));
}

.tc-about-hero__content {
	padding: 72px 0;
	text-align: center;
}

.tc-about-hero .sub-title {
	margin-bottom: 8px;
	color: var(--subtitle-accent-on-dark);
	font-size: clamp(28px, 3vw, 38px);
}

.tc-about-hero h1 {
	margin: 0;
	color: #fff;
	font-size: clamp(44px, 5vw, 68px);
	line-height: 1.05;
	letter-spacing: -0.035em;
}

.tc-about-breadcrumb {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	margin-top: 20px;
	color: rgba(255, 255, 255, 0.84);
	font-size: 15px;
	font-weight: 600;
}

.tc-about-breadcrumb a {
	color: #fff;
}

.tc-about-breadcrumb a:hover {
	color: var(--subtitle-accent-on-dark);
}

.tc-about-intro {
	position: relative;
	padding: 120px 0;
	background:
		radial-gradient(circle at 96% 8%, rgba(225, 118, 78, 0.1), transparent 24%),
		#fff;
}

.tc-about-intro__layout {
	display: grid;
	grid-template-columns: minmax(0, 1.02fr) minmax(0, 0.98fr);
	gap: clamp(56px, 7vw, 104px);
	align-items: center;
}

.tc-about-collage {
	position: relative;
	min-height: 610px;
}

.tc-about-collage::before {
	content: '';
	position: absolute;
	top: 28px;
	left: 7%;
	width: 56%;
	aspect-ratio: 1;
	border-radius: 50%;
	background: rgba(54, 153, 185, 0.12);
}

.tc-about-collage__item {
	position: absolute;
	margin: 0;
	overflow: hidden;
	border: 8px solid #fff;
	border-radius: 28px;
	background: #e8f2f7;
	box-shadow: 0 22px 54px rgba(1, 52, 96, 0.15);
}

.tc-about-collage__item img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.tc-about-collage__item--one {
	top: 0;
	left: 0;
	width: 67%;
	height: 430px;
}

.tc-about-collage__item--two {
	top: 168px;
	right: 0;
	width: 56%;
	height: 355px;
}

.tc-about-collage__item--three {
	bottom: 0;
	left: 12%;
	width: 45%;
	height: 220px;
}

.tc-about-collage__stamp {
	position: absolute;
	top: 44px;
	right: 9%;
	display: grid;
	width: 86px;
	height: 86px;
	place-items: center;
	border: 8px solid #fff;
	border-radius: 50%;
	background: var(--yellow-color);
	box-shadow: 0 14px 34px rgba(1, 52, 96, 0.18);
	color: #fff;
	font-size: 34px;
}

.tc-about-intro__content .sec-title {
	max-width: 13ch;
	margin-bottom: 22px;
}

.tc-about-intro__content > p {
	max-width: 61ch;
	color: #5f6f7d;
	font-size: 16px;
	line-height: 1.75;
}

.tc-about-intro__lead {
	margin-bottom: 12px;
	color: #263e51 !important;
	font-size: 18px !important;
	font-weight: 600;
}

.tc-about-features {
	display: grid;
	gap: 14px;
	margin: 30px 0 34px;
}

.tc-about-feature {
	display: grid;
	grid-template-columns: 54px minmax(0, 1fr);
	gap: 16px;
	align-items: start;
	padding: 17px 18px;
	border: 1px solid rgba(54, 153, 185, 0.15);
	border-radius: 16px;
	background: #fff;
	box-shadow: 0 10px 28px rgba(1, 52, 96, 0.07);
}

.tc-about-feature__icon {
	display: grid;
	width: 54px;
	height: 54px;
	place-items: center;
	border-radius: 15px;
	background: #e9f6f9;
	color: var(--theme-color);
	font-size: 23px;
}

.tc-about-feature h3,
.tc-about-feature p {
	margin: 0;
}

.tc-about-feature h3 {
	font-size: 18px;
	line-height: 1.3;
}

.tc-about-feature p {
	margin-top: 4px;
	color: #687985;
	font-size: 14px;
	line-height: 1.55;
}

.tc-about-services {
	position: relative;
	padding: 112px 0;
	background:
		radial-gradient(circle at 7% 18%, rgba(54, 153, 185, 0.13), transparent 25%),
		linear-gradient(135deg, #f4f9fb 0%, #e8f2f7 100%);
}

.tc-about-services .title-area {
	max-width: 760px;
	margin-right: auto;
	margin-left: auto;
}

.tc-about-services .sec-text {
	margin-right: auto;
	margin-left: auto;
}

.tc-about-services__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 22px;
}

.tc-about-service {
	position: relative;
	display: grid;
	grid-template-columns: 62px minmax(0, 1fr) 42px;
	gap: 18px;
	align-items: center;
	min-height: 168px;
	padding: 28px 24px;
	border: 1px solid rgba(54, 153, 185, 0.15);
	border-radius: 20px;
	background: rgba(255, 255, 255, 0.9);
	box-shadow: 0 16px 40px rgba(1, 52, 96, 0.08);
	transition: transform 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
}

.tc-about-service:hover {
	transform: translateY(-5px);
	border-color: rgba(54, 153, 185, 0.35);
	box-shadow: 0 22px 48px rgba(1, 52, 96, 0.13);
}

.tc-about-service__icon {
	display: grid;
	width: 62px;
	height: 62px;
	place-items: center;
	border-radius: 18px;
	background: #e9f6f9;
	color: var(--theme-color);
	font-size: 27px;
}

.tc-about-service h3,
.tc-about-service p {
	margin: 0;
}

.tc-about-service h3 {
	font-size: 19px;
	line-height: 1.3;
}

.tc-about-service p {
	margin-top: 7px;
	color: #687985;
	font-size: 14px;
	line-height: 1.55;
}

.tc-about-service > a {
	display: grid;
	width: 42px;
	height: 42px;
	place-items: center;
	border: 1px solid rgba(54, 153, 185, 0.28);
	border-radius: 50%;
	color: var(--title-color);
}

.tc-about-service > a:hover {
	border-color: var(--theme-color);
	background: var(--theme-color);
	color: #fff;
}

.tc-about-destinations {
	position: relative;
	isolation: isolate;
	padding: 112px 0 120px;
	background:
		radial-gradient(circle at 90% 10%, rgba(54, 153, 185, 0.25), transparent 30%),
		linear-gradient(135deg, #013460 0%, #07293f 100%);
}

.tc-about-destinations__heading {
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 30px;
	margin-bottom: 44px;
}

.tc-about-destinations .sub-title {
	color: var(--subtitle-accent-on-dark);
}

.tc-about-destinations .sec-title {
	max-width: 15ch;
	margin: 0;
	color: #fff;
}

.tc-about-destinations .th-btn {
	flex: none;
	border-color: rgba(255, 255, 255, 0.42);
	background: transparent;
	color: #fff;
}

.tc-about-destinations .th-btn:hover {
	border-color: var(--theme-color);
	background: var(--theme-color);
}

.tc-about-destinations__grid {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 16px;
}

.tc-about-destination {
	position: relative;
	min-height: 390px;
	overflow: hidden;
	border: 1px solid rgba(255, 255, 255, 0.15);
	border-radius: 22px;
	background: #0d3a55;
	color: #fff;
	transition: transform 0.3s ease;
}

.tc-about-destination:hover {
	transform: translateY(-6px);
	color: #fff;
}

.tc-about-destination img,
.tc-about-destination__shade {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}

.tc-about-destination img {
	object-fit: cover;
	transition: transform 0.6s ease;
}

.tc-about-destination:hover img {
	transform: scale(1.06);
}

.tc-about-destination__shade {
	background: linear-gradient(180deg, rgba(4, 28, 48, 0.04) 35%, rgba(4, 28, 48, 0.9) 100%);
}

.tc-about-destination__copy {
	position: absolute;
	right: 22px;
	bottom: 24px;
	left: 22px;
	display: grid;
	gap: 4px;
}

.tc-about-destination__copy strong {
	font-size: 22px;
	line-height: 1.2;
}

.tc-about-destination__copy small {
	color: rgba(255, 255, 255, 0.76);
	font-size: 13px;
}

.tc-about-destination__arrow {
	position: absolute;
	top: 18px;
	right: 18px;
	display: grid;
	width: 42px;
	height: 42px;
	place-items: center;
	border: 1px solid rgba(255, 255, 255, 0.34);
	border-radius: 50%;
	background: rgba(4, 28, 48, 0.35);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
}

.tc-about-cta {
	padding: 104px 0;
	background: #fff;
}

.tc-about-cta__box {
	position: relative;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 42px;
	padding: clamp(38px, 5vw, 64px);
	border-radius: 28px;
	background:
		radial-gradient(circle at 86% 0%, rgba(54, 153, 185, 0.4), transparent 32%),
		linear-gradient(135deg, #013460 0%, #062b43 100%);
	box-shadow: 0 22px 60px rgba(1, 52, 96, 0.18);
	color: #fff;
}

.tc-about-cta__box::after {
	content: '';
	position: absolute;
	right: -70px;
	bottom: -100px;
	width: 270px;
	height: 270px;
	border: 1px solid rgba(255, 255, 255, 0.16);
	border-radius: 50%;
}

.tc-about-cta .sub-title {
	color: var(--subtitle-accent-on-dark);
}

.tc-about-cta h2 {
	max-width: 18ch;
	margin: 2px 0 12px;
	color: #fff;
	font-size: clamp(34px, 4vw, 52px);
	line-height: 1.12;
	letter-spacing: -0.03em;
}

.tc-about-cta p {
	max-width: 58ch;
	margin: 0;
	color: rgba(255, 255, 255, 0.8);
}

.tc-about-cta .th-btn {
	z-index: 1;
	flex: none;
	background: #fff;
	color: var(--title-color);
}

.tc-about-cta .th-btn:hover {
	background: var(--yellow-color);
	color: #fff;
}

@media (max-width: 1199px) {
	.tc-about-services__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.tc-about-destinations__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 991px) {
	.tc-about-intro {
		padding: 96px 0;
	}

	.tc-about-intro__layout {
		grid-template-columns: 1fr;
		gap: 64px;
	}

	.tc-about-collage {
		width: min(100%, 690px);
		margin: 0 auto;
	}

	.tc-about-intro__content .sec-title {
		max-width: 17ch;
	}

	.tc-about-services,
	.tc-about-destinations {
		padding: 96px 0;
	}
}

@media (max-width: 767px) {
	.tc-about-hero {
		min-height: 330px;
		background-position: 62% center;
	}

	.tc-about-hero__content {
		padding: 58px 0;
	}

	.tc-about-intro {
		padding: 76px 0;
	}

	.tc-about-collage {
		min-height: 470px;
	}

	.tc-about-collage__item {
		border-width: 5px;
		border-radius: 20px;
	}

	.tc-about-collage__item--one {
		width: 74%;
		height: 330px;
	}

	.tc-about-collage__item--two {
		top: 130px;
		width: 54%;
		height: 280px;
	}

	.tc-about-collage__item--three {
		left: 5%;
		width: 48%;
		height: 170px;
	}

	.tc-about-collage__stamp {
		top: 24px;
		right: 5%;
		width: 68px;
		height: 68px;
		border-width: 5px;
		font-size: 27px;
	}

	.tc-about-feature {
		grid-template-columns: 48px minmax(0, 1fr);
		padding: 15px;
	}

	.tc-about-feature__icon {
		width: 48px;
		height: 48px;
		font-size: 20px;
	}

	.tc-about-services,
	.tc-about-destinations {
		padding: 76px 0;
	}

	.tc-about-services__grid,
	.tc-about-destinations__grid {
		grid-template-columns: 1fr;
	}

	.tc-about-service {
		grid-template-columns: 54px minmax(0, 1fr) 40px;
		min-height: 0;
		padding: 22px 18px;
	}

	.tc-about-service__icon {
		width: 54px;
		height: 54px;
		font-size: 23px;
	}

	.tc-about-destinations__heading {
		align-items: flex-start;
		flex-direction: column;
		margin-bottom: 32px;
	}

	.tc-about-destination {
		min-height: 310px;
	}

	.tc-about-cta {
		padding: 76px 0;
	}

	.tc-about-cta__box {
		align-items: flex-start;
		flex-direction: column;
		gap: 28px;
		border-radius: 22px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.tc-about-service,
	.tc-about-destination,
	.tc-about-destination img {
		transition: none;
	}
}

.tc-lightbox.is-open {
	display: flex;
}

.tc-lightbox img {
	max-width: 90vw;
	max-height: 85vh;
	border-radius: 8px;
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5);
}

.tc-lightbox__close,
.tc-lightbox__nav {
	position: absolute;
	border: 0;
	background: rgba(255, 255, 255, 0.15);
	color: #fff;
	cursor: pointer;
	line-height: 1;
	transition: background 0.2s ease;
}

.tc-lightbox__close:hover,
.tc-lightbox__nav:hover {
	background: rgba(255, 255, 255, 0.3);
}

.tc-lightbox__close {
	top: 24px;
	right: 28px;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	font-size: 26px;
}

.tc-lightbox__nav {
	top: 50%;
	transform: translateY(-50%);
	width: 52px;
	height: 52px;
	border-radius: 50%;
	font-size: 32px;
}

.tc-lightbox__prev {
	left: 24px;
}

.tc-lightbox__next {
	right: 24px;
}

/* El submenú del menú móvil se anima desde JS cambiando la altura. */
.th-mobile-menu .th-submenu {
	overflow: hidden;
	transition: height 0.3s ease-in-out;
}

/* La cabecera fija no debe tapar el contenido al anclar. */
body.tc-home-tourm .th-header.sticky-active .sticky-wrapper {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 999;
	background: #fff;
	box-shadow: 0 6px 24px rgba(0, 0, 0, 0.08);
	animation: tcHeaderDown 0.35s ease;
}

body.tc-home-tourm.admin-bar .th-header.sticky-active .sticky-wrapper {
	top: 32px;
}

@media screen and (max-width: 782px) {
	body.tc-home-tourm.admin-bar .th-header.sticky-active .sticky-wrapper {
		top: 46px;
	}
}

@keyframes tcHeaderDown {
	from {
		transform: translateY(-100%);
	}
	to {
		transform: translateY(0);
	}
}

/* ------------------------------------------------------------------
 * Logo de 40 Millas.
 * El lockup del template medía 197x56 (ratio 3,52:1); el nuestro es
 * horizontal de 1455x407 (3,57:1), así que se ajusta por altura y el
 * ancho sale solo. Sin estas reglas el SVG se pintaría a tamaño natural.
 * ------------------------------------------------------------------ */
body.tc-home-tourm .header-layout1 .header-logo img {
	height: 64px;
	width: auto;
	max-width: 100%;
	/* Si la columna se estrecha, la imagen se encoge sin deformarse. */
	object-fit: contain;
}

body.tc-home-tourm .th-menu-wrapper .mobile-logo img {
	height: 46px;
	width: auto;
	max-width: 100%;
}

body.tc-home-tourm .footer-widget .about-logo img {
	height: 52px;
	width: auto;
	max-width: 100%;
}

@media (max-width: 1199px) {
	body.tc-home-tourm .header-layout1 .header-logo img {
		height: 56px;
	}
}

@media (max-width: 991px) {
	body.tc-home-tourm .header-layout1 .header-logo img {
		height: 50px;
	}
}

@media (max-width: 575px) {
	body.tc-home-tourm .header-layout1 .header-logo img {
		height: 40px;
	}

	body.tc-home-tourm .th-menu-wrapper .mobile-logo img {
		height: 40px;
	}
}

/* ------------------------------------------------------------------
 * Menú centrado en la barra.
 *
 * El logo se queda a la izquierda y el botón de reserva a la derecha;
 * las dos columnas laterales crecen a partes iguales, así el menú queda
 * centrado en el contenedor sin depender del ancho del logo ni del
 * botón (que no miden lo mismo) y sin tocar nada en móvil, donde el
 * menú está colapsado.
 * ------------------------------------------------------------------ */
@media (min-width: 1200px) {
	body.tc-home-tourm .header-layout1 .tc-header-logo-col,
	body.tc-home-tourm .header-layout1 .tc-header-cta-col {
		-webkit-flex: 1 1 0;
		-ms-flex: 1 1 0;
		flex: 1 1 0;
		min-width: 0;
	}

	/* El botón se pega al borde derecho de su columna. */
	body.tc-home-tourm .header-layout1 .tc-header-cta-col .header-button {
		-webkit-justify-content: flex-end;
		-ms-flex-pack: end;
		justify-content: flex-end;
	}

	/* Este relleno separaba el menú del logo cuando iba a su lado;
	   ahora descentraría todo el bloque. */
	body.tc-home-tourm .header-layout1 .main-menu {
		padding-left: 0;
	}
}

/* ------------------------------------------------------------------
 * Redes sociales y botón de acceso de la barra superior.
 *
 * El tema trae `.th-social` pensado para el pie: círculos de 32 px con
 * fondo cian claro (--smoke-color) e icono en color de marca. Aquí se
 * reutiliza ese mismo lenguaje en la barra superior: cada red y el botón
 * de acceso son un círculo de 34 px con fondo y esquinas redondeadas.
 * El bloque del pie no se toca: todo va bajo `.tc-top-social`.
 *
 * La barra mide 47 px (34 de contenido + 6 de relleno arriba y abajo + el
 * borde). Los círculos miden justo 34 px, así que la barra conserva su
 * altura sin margen negativo.
 * ------------------------------------------------------------------ */
body.tc-home-tourm .header-layout1 .tc-top-social {
	display: flex;
	align-items: center;
	gap: 8px;
}

body.tc-home-tourm .header-layout1 .tc-top-social a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	min-width: 34px;
	min-height: 34px;
	margin: 0;
	padding: 0;
	line-height: 1;
	background: var(--smoke-color, #e9f6f9);
	border-radius: 50%;
	color: var(--theme-color);
	font-size: 15px;
	transition: background-color 0.3s ease, color 0.3s ease;
}

body.tc-home-tourm .header-layout1 .tc-top-social a:last-child {
	margin-right: 0;
}

body.tc-home-tourm .header-layout1 .tc-top-social a:hover {
	background: var(--theme-color);
	color: var(--white-color);
}

/* El tema desliza el <i> al pasar el ratón; con el círculo de fondo el
   icono se saldría del mismo, así que aquí se desactiva. */
body.tc-home-tourm .header-layout1 .tc-top-social a:hover i {
	animation: none;
}

/* El tema pone margen y 14 px a cualquier <i> de la barra superior. */
body.tc-home-tourm .header-layout1 .tc-top-social i {
	margin-left: 0;
	font-size: 15px;
	line-height: 1;
}

/* Iconos incrustados como SVG (TripAdvisor), que heredan el color del enlace. */
body.tc-home-tourm .header-layout1 .tc-social-icon {
	display: block;
	height: 1em;
	font-size: 15px;
	line-height: 1;
}

body.tc-home-tourm .header-layout1 .tc-social-icon svg {
	display: block;
	height: 1em;
	width: auto;
	fill: currentColor;
}

/* El botón de acceso lleva el mismo círculo que las redes sociales. */
body.tc-home-tourm .header-layout1 .header-right .header-links li button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	min-width: 34px;
	min-height: 34px;
	margin: 0;
	padding: 0;
	background: var(--smoke-color, #e9f6f9);
	border: 0;
	border-radius: 50%;
	color: var(--theme-color);
	cursor: pointer;
	transition: background-color 0.3s ease, color 0.3s ease;
}

body.tc-home-tourm .header-layout1 .header-right .header-links li button:hover {
	background: var(--theme-color);
	color: var(--white-color);
}

body.tc-home-tourm .header-layout1 .header-right .header-links li button i {
	margin-left: 0;
	font-size: 16px;
}

/* ------------------------------------------------------------------
 * Botón de WhatsApp de la cabecera.
 *
 * Sustituye al antiguo «Reservar ahora»: es el mismo botón redondeado del
 * tema, pero en verde de WhatsApp (#25D366) con el icono de la marca. El
 * tema rellena el fondo del hover con un `::before`; aquí se tiñe de un
 * verde más oscuro para no salir de la paleta de WhatsApp.
 * ------------------------------------------------------------------ */
body.tc-home-tourm .header-layout1 .header-button .th-btn.tc-btn-whatsapp {
	background-color: #25d366;
	color: #fff;
	text-transform: none;
}

body.tc-home-tourm .header-layout1 .header-button .th-btn.tc-btn-whatsapp:before {
	background-color: #1ebe5d;
}

body.tc-home-tourm .header-layout1 .header-button .th-btn.tc-btn-whatsapp:hover,
body.tc-home-tourm .header-layout1 .header-button .th-btn.tc-btn-whatsapp:focus {
	color: #fff;
}

body.tc-home-tourm .header-layout1 .header-button .th-btn.tc-btn-whatsapp i {
	font-size: 20px;
	line-height: 1;
}

/* ------------------------------------------------------------------
 * Navegación principal 2026: clara, compacta y orientada a encontrar tours.
 * ------------------------------------------------------------------ */
.tc-visually-hidden {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

body.tc-home-tourm .header-layout1 .menu-area {
	z-index: 42;
	background: rgba(255, 255, 255, 0.98);
	border-bottom: 1px solid #e5edf2;
	box-shadow: 0 8px 28px rgba(5, 43, 71, 0.055);
	backdrop-filter: blur(14px);
}

body.tc-home-tourm .header-layout1 .tc-header-nav {
	display: flex;
	align-items: center;
	gap: 24px;
	min-height: 88px;
}

body.tc-home-tourm .header-layout1 .tc-header-logo-col {
	flex: 0 0 auto;
}

body.tc-home-tourm .header-layout1 .tc-header-menu-col {
	display: flex;
	flex: 1 1 auto;
	align-items: center;
	justify-content: center;
	min-width: 0;
}

body.tc-home-tourm .header-layout1 .main-menu {
	padding-left: 0;
}

body.tc-home-tourm .header-layout1 .main-menu > ul {
	display: flex;
	align-items: center;
	gap: 5px;
}

body.tc-home-tourm .header-layout1 .main-menu > ul > li {
	margin: 0;
}

body.tc-home-tourm .header-layout1 .main-menu > ul > li > a {
	padding: 12px 13px;
	border-radius: 12px;
	font-size: 15px;
	font-weight: 650;
	line-height: 1.2;
	letter-spacing: -0.01em;
	color: #17324d;
	transition: color 0.2s ease, background-color 0.2s ease, transform 0.2s ease;
}

body.tc-home-tourm .header-layout1 .main-menu > ul > li > a:before {
	display: none;
}

body.tc-home-tourm .header-layout1 .main-menu > ul > li > a:hover,
body.tc-home-tourm .header-layout1 .main-menu > ul > li > a:focus-visible,
body.tc-home-tourm .header-layout1 .main-menu > ul > li > a.active,
body.tc-home-tourm .header-layout1 .main-menu > ul > li.current-menu-item > a,
body.tc-home-tourm .header-layout1 .main-menu > ul > li.current-menu-ancestor > a {
	background: #edf8fb;
	color: #087fa6;
	transform: translateY(-1px);
}

body.tc-home-tourm .header-layout1 .main-menu ul.sub-menu {
	top: calc(100% - 1px);
	left: 0;
	min-width: 244px;
	padding: 10px;
	border: 1px solid #e1edf2;
	border-bottom: 1px solid #e1edf2;
	border-radius: 16px;
	box-shadow: 0 18px 48px rgba(5, 43, 71, 0.14);
	transform: translateY(8px);
	transform-origin: top center;
	transition: opacity 0.22s ease, transform 0.22s ease, visibility 0.22s ease;
}

body.tc-home-tourm .header-layout1 .main-menu ul li:hover > ul.sub-menu,
body.tc-home-tourm .header-layout1 .main-menu ul li:focus-within > ul.sub-menu {
	transform: translateY(0);
}

body.tc-home-tourm .header-layout1 .main-menu ul.sub-menu li {
	padding: 0;
}

body.tc-home-tourm .header-layout1 .main-menu ul.sub-menu li a {
	padding: 10px 12px;
	border-radius: 10px;
	font-size: 14px;
	font-weight: 550;
	line-height: 1.35;
}

body.tc-home-tourm .header-layout1 .main-menu ul.sub-menu li a:hover,
body.tc-home-tourm .header-layout1 .main-menu ul.sub-menu li a:focus-visible {
	padding-left: 12px;
	background: #edf8fb;
	color: #087fa6;
}

body.tc-home-tourm .header-layout1 .main-menu ul.sub-menu li a:before {
	display: none;
}

body.tc-home-tourm .header-layout1 .tc-header-actions {
	display: flex;
	flex: 0 0 auto;
	align-items: center;
	gap: 10px;
}

body.tc-home-tourm .header-layout1 .header-button {
	display: flex;
}

body.tc-home-tourm .header-layout1 .tc-header-actions .tc-header-cta-col {
	flex: 0 0 auto;
	min-width: auto;
}

body.tc-home-tourm .header-layout1 .header-button .th-btn.tc-btn-whatsapp {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 50px;
	padding: 12px 18px;
	border-radius: 15px;
	font-size: 14px;
	font-weight: 700;
}

/* Buscador reutilizable del encabezado. */
.tc-tour-search {
	position: relative;
	width: 270px;
	margin: 0;
}

.tc-tour-search__field {
	position: relative;
	display: flex;
	align-items: center;
	height: 50px;
	background: #f6fafc;
	border: 1px solid #d8e7ed;
	border-radius: 15px;
	transition: border-color 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}

.tc-tour-search:focus-within .tc-tour-search__field {
	background: #fff;
	border-color: #23a9ce;
	box-shadow: 0 0 0 4px rgba(35, 169, 206, 0.12);
}

.tc-tour-search__leading {
	position: absolute;
	left: 16px;
	top: 50%;
	transform: translateY(-50%);
	color: #1495bc;
	font-size: 16px;
	pointer-events: none;
}

.tc-tour-search__input {
	width: 100%;
	height: 100%;
	padding: 0 50px 0 43px;
	border: 0 !important;
	outline: 0;
	background: transparent !important;
	box-shadow: none !important;
	font: 600 14px/1.2 var(--body-font, "Manrope", sans-serif);
	color: #0b2d4f;
	appearance: none;
}

.tc-tour-search__input::-webkit-search-cancel-button {
	display: none;
}

.tc-tour-search__input::placeholder {
	color: #72879a;
	opacity: 1;
}

.tc-tour-search__submit {
	position: absolute;
	right: 5px;
	top: 5px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	padding: 0;
	border: 0;
	border-radius: 11px;
	background: #063f6d;
	color: #fff;
	cursor: pointer;
	transition: background-color 0.2s ease, transform 0.2s ease;
}

.tc-tour-search__submit:hover,
.tc-tour-search__submit:focus-visible {
	background: #12a5cc;
	color: #fff;
	transform: translateX(1px);
}

.tc-tour-search__results {
	position: absolute;
	top: calc(100% + 10px);
	right: 0;
	z-index: 999;
	width: 360px;
	max-height: min(430px, 70vh);
	padding: 8px;
	overflow-y: auto;
	background: #fff;
	border: 1px solid #dfeaf0;
	border-radius: 18px;
	box-shadow: 0 22px 55px rgba(5, 43, 71, 0.18);
}

.tc-tour-search__results[hidden] {
	display: none;
}

.tc-tour-search__result {
	display: flex;
	align-items: center;
	gap: 12px;
	min-height: 64px;
	padding: 8px;
	border-radius: 12px;
	color: #153450;
	text-decoration: none;
	transition: background-color 0.18s ease, color 0.18s ease;
}

.tc-tour-search__result:hover,
.tc-tour-search__result:focus-visible {
	background: #eef8fb;
	color: #087fa6;
	outline: none;
}

.tc-tour-search__thumb {
	display: inline-flex;
	flex: 0 0 50px;
	align-items: center;
	justify-content: center;
	width: 50px;
	height: 48px;
	overflow: hidden;
	background: #e9f6f9;
	border-radius: 10px;
	color: #169bc1;
}

.tc-tour-search__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.tc-tour-search__copy {
	display: flex;
	min-width: 0;
	flex-direction: column;
	gap: 3px;
}

.tc-tour-search__copy strong {
	display: -webkit-box;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	font-size: 13px;
	font-weight: 750;
	line-height: 1.28;
}

.tc-tour-search__copy small {
	font-size: 11px;
	font-weight: 650;
	color: #6f8799;
}

.tc-tour-search__empty {
	margin: 0;
	padding: 15px 13px;
	font-size: 13px;
	line-height: 1.5;
	color: #657d90;
}

/* Panel móvil: mismo buscador, navegación táctil y jerarquía más clara. */
body.tc-menu-open {
	overflow: hidden;
}

body.tc-home-tourm .tc-mobile-menu-open {
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border-radius: 14px;
	background: #063f6d;
	box-shadow: 0 10px 25px rgba(6, 63, 109, 0.18);
}

body.tc-home-tourm .th-menu-wrapper {
	background: rgba(3, 22, 38, 0.58);
	backdrop-filter: blur(5px);
	transition: opacity 0.28s ease, visibility 0.28s ease;
}

body.tc-home-tourm .th-menu-wrapper .th-menu-area {
	display: flex;
	flex-direction: column;
	width: min(420px, calc(100vw - 20px));
	max-width: none;
	height: 100vh;
	height: 100dvh;
	overflow: hidden;
	background: #fff;
	border: 0;
	border-radius: 0 22px 22px 0;
	box-shadow: 18px 0 60px rgba(2, 31, 52, 0.2);
	transition: transform 0.32s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.24s ease, visibility 0.24s ease;
	transform: translateX(-102%);
	left: 0;
}

body.tc-home-tourm .th-menu-wrapper.th-body-visible .th-menu-area {
	transform: translateX(0);
}

body.tc-home-tourm .tc-mobile-menu-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 18px 20px 14px;
	border-bottom: 1px solid #e8eff3;
}

body.tc-home-tourm .th-menu-wrapper .mobile-logo {
	padding: 0;
	background: transparent;
	text-align: left;
}

body.tc-home-tourm .th-menu-wrapper .mobile-logo a {
	display: inline-flex;
}

body.tc-home-tourm .th-menu-wrapper .th-menu-toggle.tc-mobile-menu-close {
	position: static;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 44px;
	width: 44px;
	height: 44px;
	border: 1px solid #dce8ee;
	border-radius: 13px;
	background: #f4f9fb;
	color: #173650;
	font-size: 18px;
}

body.tc-home-tourm .th-menu-wrapper .th-menu-toggle.tc-mobile-menu-close:hover,
body.tc-home-tourm .th-menu-wrapper .th-menu-toggle.tc-mobile-menu-close:focus-visible {
	background: #063f6d;
	color: #fff;
}

.tc-mobile-search-wrap {
	padding: 20px 20px 16px;
}

.tc-mobile-search-label {
	display: block;
	margin-bottom: 9px;
	font-size: 12px;
	font-weight: 750;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: #597387;
}

.tc-tour-search--mobile {
	width: 100%;
}

.tc-tour-search--mobile .tc-tour-search__field {
	height: 54px;
	border-radius: 15px;
}

.tc-tour-search--mobile .tc-tour-search__submit {
	width: 44px;
	height: 44px;
}

.tc-tour-search--mobile .tc-tour-search__results {
	position: relative;
	top: auto;
	right: auto;
	width: 100%;
	max-height: 260px;
	margin-top: 9px;
	border-radius: 14px;
	box-shadow: 0 14px 36px rgba(5, 43, 71, 0.13);
}

body.tc-home-tourm .th-menu-wrapper .th-mobile-menu {
	flex: 1 1 auto;
	max-height: none;
	margin: 0;
	padding: 0 20px 20px;
	overflow-y: auto;
	text-align: left;
}

body.tc-home-tourm .th-mobile-menu > ul {
	padding: 0;
}

body.tc-home-tourm .th-mobile-menu ul li {
	border-bottom: 1px solid #e8eff3;
}

body.tc-home-tourm .th-mobile-menu ul li a {
	min-height: 52px;
	padding: 15px 12px;
	border-radius: 11px;
	font-size: 15px;
	font-weight: 650;
	color: #163550;
}

body.tc-home-tourm .th-mobile-menu ul li a:hover,
body.tc-home-tourm .th-mobile-menu ul li a:focus-visible,
body.tc-home-tourm .th-mobile-menu ul li.current-menu-item > a,
body.tc-home-tourm .th-mobile-menu ul li.current-menu-ancestor > a {
	background: #eef8fb;
	color: #087fa6;
}

body.tc-home-tourm .th-mobile-menu ul .menu-item-has-children > a:after {
	width: 28px;
	height: 28px;
	line-height: 28px;
	margin-top: -3px;
	background: #edf6f9;
	color: #087fa6;
}

body.tc-home-tourm .th-mobile-menu .sub-menu {
	padding: 0 0 0 14px;
	overflow: hidden;
}

body.tc-home-tourm .th-mobile-menu .sub-menu a {
	min-height: 46px;
	padding-top: 12px;
	padding-bottom: 12px;
	font-size: 14px;
}

.tc-mobile-menu-footer {
	padding: 15px 20px max(18px, env(safe-area-inset-bottom));
	border-top: 1px solid #e5edf2;
	background: #f8fbfc;
}

.tc-mobile-contact {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 9px;
	min-height: 50px;
	padding: 12px 18px;
	border-radius: 14px;
	background: #25d366;
	color: #fff;
	font-size: 14px;
	font-weight: 750;
}

.tc-mobile-contact:hover,
.tc-mobile-contact:focus-visible {
	background: #1ebe5d;
	color: #fff;
}

@media (min-width: 1200px) and (max-width: 1399px) {
	body.tc-home-tourm .header-layout1 .tc-header-nav {
		gap: 16px;
	}

	body.tc-home-tourm .header-layout1 .header-logo img {
		height: 52px;
	}

	body.tc-home-tourm .header-layout1 .main-menu > ul > li > a {
		padding-inline: 9px;
		font-size: 14px;
	}

	.tc-tour-search--desktop {
		width: 218px;
	}

	body.tc-home-tourm .header-layout1 .header-button .th-btn.tc-btn-whatsapp {
		width: 50px;
		padding-inline: 0;
	}

	body.tc-home-tourm .header-layout1 .header-button .th-btn.tc-btn-whatsapp span {
		display: none;
	}
}

@media (max-width: 1199px) {
	body.tc-home-tourm .header-layout1 .menu-area {
		padding: 0;
	}

	body.tc-home-tourm .header-layout1 .tc-header-nav {
		justify-content: space-between;
		min-height: 76px;
	}

	body.tc-home-tourm .header-layout1 .tc-header-menu-col {
		flex: 0 0 auto;
	}
}

@media (max-width: 575px) {
	body.tc-home-tourm .header-layout1 .tc-header-nav {
		min-height: 68px;
	}

	body.tc-home-tourm .tc-mobile-menu-open {
		width: 46px;
		height: 46px;
	}

	body.tc-home-tourm .tc-mobile-menu-head,
	.tc-mobile-search-wrap,
	body.tc-home-tourm .th-menu-wrapper .th-mobile-menu,
	.tc-mobile-menu-footer {
		padding-left: 16px;
		padding-right: 16px;
	}
}

@media (prefers-reduced-motion: reduce) {
	body.tc-home-tourm .th-menu-wrapper,
	body.tc-home-tourm .th-menu-wrapper .th-menu-area,
	.tc-tour-search__result,
	.tc-tour-search__submit {
		transition: none;
	}
}

/* Crédito de las fotografías en el pie (lo piden los términos de Unsplash). */
.tc-photo-credit {
	display: block;
	margin-top: 4px;
	font-size: 13px;
	opacity: 0.85;
}

/* ------------------------------------------------------------------
 * Contenido de las páginas del menú (Nosotros, FAQ, Contacto).
 * Se escribe en HTML simple, sin constructor de páginas.
 * ---------------------------------------------------------------- */
.tc-lead {
	font-size: 19px;
	line-height: 1.7;
	color: var(--title-color, #0b2c3d);
	max-width: 820px;
}
.tc-list {
	list-style: none;
	padding-left: 0;
	margin: 0 0 24px;
}
.tc-list li {
	position: relative;
	padding-left: 26px;
	margin-bottom: 8px;
}
.tc-list li:before {
	content: "\f00c";
	font-family: "Font Awesome 6 Free";
	font-weight: 900;
	position: absolute;
	left: 0;
	color: var(--theme-color, #1ba8c4);
}

/* Preguntas frecuentes */
.tc-faq details {
	border: 1px solid #e3e8ec;
	border-radius: 10px;
	padding: 0;
	margin-bottom: 12px;
	background: #fff;
}
.tc-faq summary {
	cursor: pointer;
	padding: 16px 20px;
	font-weight: 600;
	font-size: 17px;
	list-style: none;
	position: relative;
	padding-right: 44px;
}
.tc-faq summary::-webkit-details-marker {
	display: none;
}
.tc-faq summary:after {
	content: "+";
	position: absolute;
	right: 20px;
	top: 50%;
	transform: translateY(-50%);
	font-size: 22px;
	line-height: 1;
	color: var(--theme-color, #1ba8c4);
}
.tc-faq details[open] summary:after {
	content: "\2013";
}
.tc-faq details p {
	margin: 0;
	padding: 0 20px 18px;
	color: #4a5b66;
}

/* Llamada a la acción */
.tc-cta {
	margin-top: 36px;
	padding: 26px 28px;
	border-radius: 12px;
	background: #f4f9fb;
	border-left: 4px solid var(--theme-color, #1ba8c4);
}
.tc-cta p {
	margin-bottom: 10px;
}
.tc-cta p:last-child {
	margin-bottom: 0;
}

/* Datos de contacto */
.tc-contacto h3 {
	font-size: 18px;
	margin-bottom: 6px;
}

/* ------------------------------------------------------------------
 * Formulario de búsqueda del hero (Home 1).
 *
 * El CSS del template aplica el círculo de los iconos solo a
 * `.info-box_text .icon`, pero el formulario usa `.form-group .icon`, así
 * que los iconos salían como glifos sueltos. Se añade el círculo azul claro
 * y se alinea la flecha del desplegable (la regla base la sitúa a 21px,
 * pensada para selects de 56px, no para los de 16px del formulario).
 * ---------------------------------------------------------------- */
.booking-form .input-wrap .form-group .icon {
	display: -webkit-box;
	display: -webkit-flex;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-align: center;
	-webkit-align-items: center;
	-ms-flex-align: center;
	align-items: center;
	-webkit-box-pack: center;
	-webkit-justify-content: center;
	-ms-flex-pack: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background-color: #E9F6F9;
	color: var(--theme-color);
	-webkit-box-flex: 0;
	-webkit-flex: none;
	-ms-flex: none;
	flex: none;
}
.booking-form .input-wrap .form-group .icon i {
	font-size: 18px;
}
.booking-form .nice-select {
	display: -webkit-box;
	display: -webkit-flex;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-align: center;
	-webkit-align-items: center;
	-ms-flex-align: center;
	align-items: center;
}
.booking-form .nice-select:after {
	top: 50%;
	-webkit-transform: translateY(-50%) rotate(45deg);
	-ms-transform: translateY(-50%) rotate(45deg);
	transform: translateY(-50%) rotate(45deg);
}
.booking-form .nice-select.open:after {
	-webkit-transform: translateY(-50%) rotate(-135deg);
	-ms-transform: translateY(-50%) rotate(-135deg);
	transform: translateY(-50%) rotate(-135deg);
}

/*
 * Menús del buscador: superficie elevada, opciones táctiles y estados claros.
 * Se acota al booking del hero para no alterar los selects de Traveler.
 */
.booking-form .nice-select-wrapper {
	position: relative;
}

.booking-form .nice-select {
	min-width: 146px;
	border-radius: 8px;
	outline: none;
	transition: color .18s ease, background-color .18s ease, box-shadow .18s ease;
}

.booking-form .nice-select:hover {
	color: #087fa5;
}

.booking-form .nice-select:focus-visible {
	box-shadow: 0 0 0 3px rgba(31, 162, 201, .22);
}

.booking-form .nice-select.open {
	z-index: 30;
	color: #0c7899;
}

.booking-form .form-group:has(.nice-select.open) {
	position: relative;
	z-index: 31;
}

.booking-form .input-wrap .form-group .nice-select .list,
.booking-form .input-wrap .form-group .nice-select.open .list {
	top: calc(100% + 10px);
	left: -10px;
	width: max-content;
	min-width: 220px;
	max-width: min(280px, calc(100vw - 32px));
	max-height: 278px;
	margin: 0;
	padding: 8px;
	overflow-x: hidden;
	overflow-y: auto;
	background: #fff;
	border: 1px solid #dce9ee;
	border-radius: 14px;
	box-shadow: 0 18px 45px rgba(15, 52, 67, .16), 0 4px 12px rgba(15, 52, 67, .08);
	transform-origin: top center;
	transition: opacity .16s ease, transform .16s ease, visibility .16s ease;
	scrollbar-width: thin;
	scrollbar-color: #b9dce7 transparent;
}

.booking-form .input-wrap .form-group .nice-select .list {
	visibility: hidden;
	opacity: 0;
	transform: translateY(-6px) scale(.98);
}

.booking-form .input-wrap .form-group .nice-select.open .list {
	visibility: visible;
	opacity: 1;
	transform: translateY(0) scale(1);
	animation: none;
}

.booking-form .input-wrap .form-group .nice-select .list::-webkit-scrollbar {
	width: 7px;
}

.booking-form .input-wrap .form-group .nice-select .list::-webkit-scrollbar-thumb {
	background: #b9dce7;
	border: 2px solid #fff;
	border-radius: 999px;
}

.booking-form .input-wrap .form-group .nice-select .option {
	position: relative;
	display: flex;
	align-items: center;
	min-height: 44px;
	padding: 9px 42px 9px 13px;
	border-radius: 9px;
	color: #173f54;
	font-size: 15px;
	font-weight: 500;
	line-height: 1.35;
	white-space: normal;
	transition: color .16s ease, background-color .16s ease;
}

.booking-form .input-wrap .form-group .nice-select .option[hidden] {
	display: none !important;
}

.tc-booking-status {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

.booking-form .input-wrap .form-group .nice-select .option:has(small) {
	justify-content: space-between;
	gap: 18px;
}

.booking-form .input-wrap .form-group .nice-select .option small {
	color: #6c8794;
	font-size: 11px;
	font-weight: 600;
	line-height: 1.2;
	white-space: nowrap;
}

.booking-form .input-wrap .form-group .nice-select .list:hover .option:not(:hover):not(.selected):not(.focus) {
	background-color: transparent !important;
}

.booking-form .input-wrap .form-group .nice-select .option:hover,
.booking-form .input-wrap .form-group .nice-select .option.focus,
.booking-form .input-wrap .form-group .nice-select .option.selected.focus {
	color: #086f91 !important;
	background: #eaf7fb !important;
}

.booking-form .input-wrap .form-group .nice-select .option.selected {
	color: #086f91 !important;
	background: #f0f9fc !important;
	font-weight: 700;
}

.booking-form .input-wrap .form-group .nice-select .option.selected small,
.booking-form .input-wrap .form-group .nice-select .option:hover small,
.booking-form .input-wrap .form-group .nice-select .option.focus small {
	color: #37859d;
}

.booking-form .form-btn .th-btn i {
	margin-right: 9px;
	font-size: 17px;
}

.booking-form .input-wrap .form-group .nice-select .option.selected::after {
	content: "\2713";
	position: absolute;
	right: 14px;
	top: 50%;
	color: #159bc3;
	font-size: 15px;
	font-weight: 800;
	transform: translateY(-50%);
}

@media (max-width: 991px) {
	.booking-form .nice-select {
		width: 100%;
		min-height: 32px;
	}

	.booking-form .input-wrap .form-group .nice-select .list,
	.booking-form .input-wrap .form-group .nice-select.open .list {
		left: -8px;
		width: calc(100% + 8px);
		min-width: 0;
	}
}

@media (prefers-reduced-motion: reduce) {
	.booking-form .nice-select,
	.booking-form .nice-select .list,
	.booking-form .nice-select .option {
		transition-duration: .01ms !important;
	}
}

/* ------------------------------------------------------------------
 * El hero de la demo usa un título corto (1 línea), así que el formulario
 * queda justo en la frontera entre el hero y la sección de abajo. Al usar
 * nombres de tour largos el hero se estiraba y el formulario acababa al fondo
 * de una franja oscura. El buscador sigue a caballo entre ambas secciones, pero
 * se reserva un colchón claro después de los CTA para que no compita con ellos.
 *
 * El relleno se recorta más que antes porque el bloque de texto ahora lleva
 * descripción, datos rápidos y puntuación: con los valores originales el banner
 * pasaba de 780 a ~900 px de alto.
 * ---------------------------------------------------------------- */
.hero-1 .hero-style1 {
	padding-bottom: 96px;
}

@media (min-width: 768px) {
	.hero-1 .hero-style1 {
		padding-top: 110px;
	}
}

@media (max-width: 767px) {
	.hero-1 .hero-style1 {
		padding-top: 80px;
		padding-bottom: 88px;
	}
}

/* ------------------------------------------------------------------
 * Banner del hero: todas las diapositivas al mismo alto.
 *
 * Con el efecto «fade», Swiper apila todas las diapositivas en el mismo
 * sitio. Cada una medía lo que su texto (685, 780, 457 px…), así que la
 * foto de fondo (background-size: cover) se recortaba a una altura
 * distinta en cada banner y al pasar de una a otra se veía cortada.
 * Al estirarlas todas al alto del banner, el recorte es el mismo.
 * ---------------------------------------------------------------- */
.hero-1 .swiper-wrapper {
	align-items: stretch;
}

.hero-1 .swiper-slide {
	height: auto;
	align-self: stretch;
}

/* ------------------------------------------------------------------
 * El tema define `.swiper-fade .swiper-slide { transition: 0.6s ease-in-out }`,
 * que sustituye el `transition-property: opacity` de Swiper y hace que también
 * se animen los `transform`: al cambiar de banner se veían deslizarse unos
 * sobre otros. Se restaura el comportamiento del efecto «fade».
 * ---------------------------------------------------------------- */
.hero-1 .swiper-fade .swiper-slide {
	transition-property: opacity;
}

/* ------------------------------------------------------------------
 * Degradado del banner: de izquierda (oscuro) a derecha (limpio).
 *
 * Va en `.hero-1 .hero-inner:after` con z-index 5: por encima de las piezas del
 * puzzle (3) y del canvas 3D (4) y por debajo de los textos (9). Esa capa es
 * importante: como las piezas van por encima de la foto, un degradado dentro de
 * `.th-hero-bg` quedaría tapado mientras se arma el puzzle y «aparecería» al
 * terminar. Puesto aquí está desde el primer fotograma.
 *
 * Y el velo plano al 50 % que trae el tema (`:before` del fondo, más abajo,
 * anulado) SÍ se veía, porque un hijo con z-index negativo se pinta por encima
 * del fondo de su padre: era el que oscurecía de golpe al acabar el puzzle.
 * ---------------------------------------------------------------- */
.hero-1 .hero-inner:after {
	content: '';
	position: absolute;
	inset: 0;
	z-index: 5;
	pointer-events: none;
	background: linear-gradient(
		90deg,
		rgba(4, 28, 48, 0.9) 0%,
		rgba(4, 28, 48, 0.74) 24%,
		rgba(4, 28, 48, 0.46) 50%,
		rgba(4, 28, 48, 0.16) 74%,
		rgba(4, 28, 48, 0) 100%
	);
}

/* En móvil el texto va centrado: el velo se reparte arriba y abajo. */
@media (max-width: 767px) {
	.hero-1 .hero-inner:after {
		background: linear-gradient(
			180deg,
			rgba(4, 28, 48, 0.55) 0%,
			rgba(4, 28, 48, 0.7) 45%,
			rgba(4, 28, 48, 0.82) 100%
		);
	}
}

/* ------------------------------------------------------------------
 * Velo plano del tema: ANULADO.
 *
 * `.hero-1 .th-hero-bg:before` trae `background: rgba(13,13,12,.5)` y
 * `z-index: -1`, que parece inofensivo pero NO lo es: un hijo con z-index
 * negativo se pinta por encima del fondo de su padre. Vive dentro de la capa de
 * la foto, así que las piezas del puzzle lo tapaban mientras se armaba y el
 * banner oscurecía de golpe al terminar. Con `content: none` la caja ni se
 * genera (y deja de interceptar clics). El degradado de arriba lo sustituye.
 * ---------------------------------------------------------------- */
.hero-1 .th-hero-bg:before {
	content: none;
}

/* Un poco de sombra en los textos: ayuda sobre las zonas claras. */
.hero-1 .hero-style1 .sub-title,
.hero-1 .hero-style1 .hero-title,
.hero-1 .hero-desc {
	text-shadow: 0 2px 20px rgba(4, 28, 48, 0.5);
}

/* ------------------------------------------------------------------
 * Contenido del banner: descripción, datos rápidos y puntuación.
 *
 * Sigue la guía de la skill «banner-design» para un hero Photo-Based:
 *   - jerarquía en 3 zonas → arriba el antetítulo (propuesta de valor),
 *     en medio el título + descripción + datos, y abajo la llamada a la acción;
 *   - estilo Glassmorphism en los «chips» (cristal esmerilado translúcido);
 *   - contraste alto: texto casi blanco sobre el degradado oscuro de la
 *     izquierda, con la sombra de arriba;
 *   - cuerpo mínimo de 14 px y titular grande (ya lo trae el diseño).
 * Todo es opcional desde los campos: si están vacíos, no se imprime nada.
 * ---------------------------------------------------------------- */
.hero-1 .hero-style1 .hero-title {
	margin-bottom: 18px;
}

.hero-1 .hero-desc {
	max-width: 48ch;
	margin: 0 0 20px;
	color: rgba(255, 255, 255, 0.92);
	font-size: 17px;
	line-height: 1.65;
}

.hero-1 .hero-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 0 0 22px;
}

.hero-1 .hero-chip {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 15px;
	border: 1px solid rgba(255, 255, 255, 0.26);
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.13);
	-webkit-backdrop-filter: blur(7px) saturate(1.2);
	backdrop-filter: blur(7px) saturate(1.2);
	color: #fff;
	font-size: 13.5px;
	font-weight: 600;
	line-height: 1;
	letter-spacing: 0.01em;
	white-space: nowrap;
}

.hero-1 .hero-chip .hero-ico {
	flex: none;
	opacity: 0.92;
}

/* `flex` y no `inline-flex`: como bloque, la puntuación ocupa su propia línea.
   Con `inline-flex` compartía línea con los botones (que también son
   inline-flex) y el texto de las reseñas chocaba con el botón. */
.hero-1 .hero-rating {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 10px;
	margin: 0 0 24px;
	color: #fff;
}

.hero-1 .hero-stars {
	display: inline-flex;
	gap: 2px;
	color: var(--yellow-color, #E1764E);
}

.hero-1 .hero-nota {
	font-size: 15px;
	font-weight: 700;
}

.hero-1 .hero-resenas {
	font-size: 14px;
	color: rgba(255, 255, 255, 0.75);
}

/* En móvil el texto del hero va centrado: los datos acompañan. */
@media (max-width: 767px) {
	.hero-1 .hero-desc {
		max-width: none;
		margin-inline: auto;
		font-size: 16px;
	}

	.hero-1 .hero-chips,
	.hero-1 .hero-rating {
		justify-content: center;
	}

	.hero-1 .hero-chip {
		padding: 7px 13px;
		font-size: 13px;
	}
}

/* ------------------------------------------------------------------
 * Puzzle del banner: piezas que arman la foto al cambiar de diapositiva.
 * Las crea assets/js/hero-banner.js; sin JS no existen y no molesta.
 * ---------------------------------------------------------------- */
.hero-1 .tc-puzzle {
	position: absolute;
	inset: 0;
	z-index: 3;
	display: none;
	overflow: hidden;
	pointer-events: none;
}

.hero-1 .tc-puzzle.is-on {
	display: block;
}

.hero-1 .tc-tile {
	position: absolute;
	display: block;
	background-repeat: no-repeat;
	will-change: transform, opacity;
	backface-visibility: hidden;
}

/* Capa ambiental de three.js (polvo tenue) por encima de la foto. */
.hero-1 .tc-hero-gl {
	position: absolute;
	inset: 0;
	z-index: 4;
	width: 100%;
	height: 100%;
	pointer-events: none;
	opacity: 0;
	transition: opacity 1.2s ease;
}

.hero-1 .tc-hero-gl.is-ready {
	opacity: 1;
}

/* Letras del titular partidas por anime.js. */
.hero-1 .hero-title span {
	display: inline-block;
	will-change: transform, opacity;
}

/* Mientras el JS está activo, los textos esperan a su animación.
   Si el JS no llega a ejecutarse, la clase no se añade y se ven siempre. */
.tc-anim .hero-1 .hero-style1 > * {
	opacity: 0;
}

/* ==================================================================
 * PALETA CORPORATIVA 40 MILLAS (extraída del logo)
 *
 *   Azul marino  #013460  — títulos, textos oscuros, pie de página
 *   Cian         #3699B9  — color principal (botones, enlaces, activos)
 *   Naranja      #E1764E  — acento (estrellas, destacados)
 * ================================================================== */
:root {
	--theme-color: #3699B9;
	--primary-color: #3699B9;
	--title-color: #013460;
	--black-color2: #0D2438;
	--yellow-color: #E1764E;
	--subtitle-accent-color: #FF8559;
	--subtitle-accent-on-dark: #F1A184;
	--smoke-color: #E8F2F7;
}

/* Jerarquía cromática global: todos los subtítulos usan el acento cálido
 * de la marca y dejan el azul marino para el título principal. */
.sub-title {
	color: var(--subtitle-accent-color);
	font-family: "Dancing Script", sans-serif;
}

/* En el hero se emplea el mismo matiz en una luminosidad mayor para mantener
 * la lectura sobre fotografías oscurecidas. */
.hero-style1 .sub-title {
	color: var(--subtitle-accent-on-dark);
}

/* ==================================================================
 * LO QUE HACEMOS — bloques narrativos imagen + contenido
 *
 * Dos capítulos con la misma estructura y composición alternada. La imagen
 * conserva una relación estable para evitar saltos de maquetación y el texto
 * queda limitado a una medida cómoda de lectura.
 * ================================================================== */
.tc-service-story {
	position: relative;
	padding: 112px 0;
	background: #fff;
}

.tc-service-story--reverse {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	background:
		radial-gradient(circle at 0% 0%, rgba(255, 181, 57, 0.16), transparent 34%),
		radial-gradient(circle at 100% 88%, rgba(28, 168, 203, 0.32), transparent 38%),
		linear-gradient(135deg, #052b3a 0%, #093f51 54%, #052736 100%);
	color: #fff;
}

.tc-service-story--reverse::before {
	content: '';
	position: absolute;
	top: -18%;
	right: -8%;
	z-index: -1;
	width: clamp(320px, 46vw, 680px);
	aspect-ratio: 1;
	border: 1px solid rgba(255, 255, 255, 0.09);
	border-radius: 50%;
	box-shadow:
		0 0 0 64px rgba(255, 255, 255, 0.025),
		0 0 0 128px rgba(255, 255, 255, 0.018);
	pointer-events: none;
}

.tc-service-story--reverse .sub-title {
	color: var(--yellow-color, #ffb539);
}

.tc-service-story--reverse .tc-service-story__content .sec-title {
	color: #fff;
}

.tc-service-story--reverse .tc-service-story__text {
	color: rgba(255, 255, 255, 0.72);
}

.tc-service-story--reverse .tc-service-story__list strong {
	color: #fff;
}

.tc-service-story--reverse .tc-service-story__list li > span:last-child > span {
	color: rgba(255, 255, 255, 0.72);
}

.tc-service-story--reverse .tc-service-story__media img {
	box-shadow: 0 24px 60px rgba(0, 0, 0, 0.34);
}

.tc-service-story__media {
	position: relative;
	z-index: 0;
	max-width: 620px;
	margin: 0;
	padding: 18px 18px 0 0;
}

.tc-service-story--reverse .tc-service-story__media {
	margin-left: auto;
	padding: 18px 0 0 18px;
}

.tc-service-story__media::before {
	content: '';
	position: absolute;
	top: 0;
	right: 0;
	z-index: -1;
	width: 42%;
	aspect-ratio: 1;
	border-radius: 50%;
	background: rgba(225, 118, 78, 0.18);
}

.tc-service-story--reverse .tc-service-story__media::before {
	right: auto;
	left: 0;
	background: rgba(255, 181, 57, 0.16);
}

.tc-service-story__media img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: 30px 10px 30px 10px;
	box-shadow: 0 24px 60px rgba(1, 52, 96, 0.16);
}

.tc-service-story--reverse .tc-service-story__media img {
	border-radius: 10px 30px 10px 30px;
}

.tc-service-story__content {
	max-width: 610px;
}

.tc-service-story__content .sec-title {
	margin: 8px 0 20px;
	text-wrap: balance;
}

.tc-service-story__text {
	max-width: 62ch;
	margin: 0 0 28px;
	color: var(--body-color, #687179);
	font-size: 17px;
	line-height: 1.75;
}

.tc-service-story__list {
	display: grid;
	gap: 16px;
	margin: 0 0 32px;
	padding: 0;
	list-style: none;
}

.tc-service-story__list li {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	min-width: 0;
}

.tc-service-story__check {
	display: inline-flex;
	flex: 0 0 42px;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	border-radius: 50%;
	background: rgba(54, 153, 185, 0.12);
	color: var(--theme-color);
	font-size: 16px;
}

.tc-service-story--reverse .tc-service-story__check {
	background: rgba(255, 181, 57, 0.16);
	color: var(--yellow-color);
}

.tc-service-story__list strong,
.tc-service-story__list li > span:last-child > span {
	display: block;
}

.tc-service-story__list strong {
	margin-bottom: 3px;
	color: var(--title-color);
	font-family: var(--title-font, "Manrope", sans-serif);
	font-size: 17px;
	font-weight: 700;
	line-height: 1.35;
}

.tc-service-story__list li > span:last-child > span {
	color: var(--body-color, #687179);
	font-size: 15px;
	line-height: 1.55;
	overflow-wrap: anywhere;
}

@media (max-width: 991px) {
	.tc-service-story {
		padding: 78px 0;
	}

	.tc-service-story__media,
	.tc-service-story--reverse .tc-service-story__media,
	.tc-service-story__content {
		max-width: 680px;
		margin-inline: auto;
	}
}

@media (max-width: 575px) {
	.tc-service-story {
		padding: 64px 0;
	}

	.tc-service-story__media,
	.tc-service-story--reverse .tc-service-story__media {
		padding: 10px 10px 0 0;
	}

	.tc-service-story--reverse .tc-service-story__media {
		padding: 10px 0 0 10px;
	}

	.tc-service-story__media img,
	.tc-service-story--reverse .tc-service-story__media img {
		border-radius: 20px 8px 20px 8px;
	}

	.tc-service-story__content .sec-title {
		font-size: clamp(30px, 9vw, 40px);
	}

	.tc-service-story__text {
		font-size: 16px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.tc-service-story *,
	.tc-service-story *::before,
	.tc-service-story *::after {
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
	}
}

/* ==================================================================
 * PLANIFICA TU VIAJE
 *
 * Mosaico estable y bloque de beneficios legible. Las proporciones reservan
 * espacio antes de cargar las imágenes para evitar saltos de diseño.
 * ================================================================== */
.tc-trip-planner {
	position: relative;
	overflow: hidden;
	scroll-margin-top: 125px;
	padding: 112px 0;
	background:
		radial-gradient(circle at 92% 14%, rgba(225, 118, 78, 0.1), transparent 24%),
		linear-gradient(180deg, #fff 0%, #f7fbfc 100%);
}

.tc-trip-planner::before {
	content: '';
	position: absolute;
	top: 72px;
	left: -84px;
	width: 220px;
	height: 220px;
	border: 1px solid rgba(54, 153, 185, 0.22);
	border-radius: 50%;
	pointer-events: none;
}

.tc-trip-planner__gallery {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1.5fr) minmax(150px, 0.85fr);
	grid-template-rows: repeat(2, minmax(0, 1fr));
	gap: 14px;
	min-height: 560px;
	padding: 14px;
	border: 1px solid rgba(54, 153, 185, 0.16);
	border-radius: 30px;
	background: rgba(255, 255, 255, 0.84);
	box-shadow: 0 28px 70px rgba(1, 52, 96, 0.14);
}

.tc-trip-planner__gallery::after {
	content: '';
	position: absolute;
	right: -22px;
	bottom: -22px;
	z-index: -1;
	width: 42%;
	aspect-ratio: 1;
	border-radius: 50%;
	background: rgba(54, 153, 185, 0.14);
}

.tc-trip-planner__photo {
	position: relative;
	overflow: hidden;
	min-width: 0;
	margin: 0;
	border-radius: 20px;
	background: #e8f2f7;
}

.tc-trip-planner__photo--main {
	grid-row: 1 / 3;
}

.tc-trip-planner__photo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.5s ease;
}

.tc-trip-planner__photo:hover img {
	transform: scale(1.035);
}

.tc-trip-planner__content {
	max-width: 620px;
	padding-left: clamp(0px, 2.2vw, 34px);
}

.tc-trip-planner__content .sec-title {
	max-width: 13ch;
	margin: 8px 0 20px;
	text-wrap: balance;
}

.tc-trip-planner__intro {
	max-width: 62ch;
	margin: 0 0 28px;
	color: var(--body-color, #687179);
	font-size: 17px;
	line-height: 1.75;
}

.tc-trip-planner__benefits {
	display: grid;
	gap: 14px;
	margin-bottom: 30px;
}

.tc-trip-planner__benefit {
	display: flex;
	align-items: flex-start;
	gap: 16px;
	padding: 18px;
	border: 1px solid rgba(54, 153, 185, 0.14);
	border-radius: 18px;
	background: #fff;
	box-shadow: 0 10px 30px rgba(1, 52, 96, 0.06);
}

.tc-trip-planner__icon {
	display: inline-flex;
	flex: 0 0 56px;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	border-radius: 16px;
	background: var(--theme-color);
	color: #fff;
	font-size: 18px;
}

.tc-trip-planner__icon img {
	width: 30px;
	height: 30px;
	object-fit: contain;
}

.tc-trip-planner__benefit h3 {
	margin: 0 0 5px;
	color: var(--title-color);
	font-family: var(--title-font, "Manrope", sans-serif);
	font-size: 18px;
	font-weight: 700;
	line-height: 1.35;
}

.tc-trip-planner__benefit p {
	margin: 0;
	color: var(--body-color, #687179);
	font-size: 15px;
	line-height: 1.55;
	overflow-wrap: anywhere;
}

@media (max-width: 1199px) {
	.tc-trip-planner__gallery {
		min-height: 500px;
	}

	.tc-trip-planner__content {
		padding-left: 0;
	}
}

@media (max-width: 991px) {
	.tc-trip-planner {
		padding: 78px 0;
	}

	.tc-trip-planner__gallery,
	.tc-trip-planner__content {
		max-width: 720px;
		margin-inline: auto;
	}

	.tc-trip-planner__content .sec-title {
		max-width: 16ch;
	}
}

@media (max-width: 575px) {
	.tc-trip-planner {
		padding: 64px 0;
	}

	.tc-trip-planner::before {
		display: none;
	}

	.tc-trip-planner__gallery {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		grid-template-rows: auto auto;
		gap: 10px;
		min-height: 0;
		padding: 10px;
		border-radius: 22px;
	}

	.tc-trip-planner__photo {
		border-radius: 14px;
	}

	.tc-trip-planner__photo--main {
		grid-column: 1 / -1;
		grid-row: auto;
		aspect-ratio: 16 / 10;
	}

	.tc-trip-planner__photo--small {
		aspect-ratio: 4 / 3;
	}

	.tc-trip-planner__content .sec-title {
		font-size: clamp(30px, 9vw, 40px);
	}

	.tc-trip-planner__intro {
		font-size: 16px;
	}

	.tc-trip-planner__benefit {
		gap: 13px;
		padding: 15px;
	}

	.tc-trip-planner__icon {
		flex-basis: 48px;
		width: 48px;
		height: 48px;
		border-radius: 14px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.tc-trip-planner__photo img {
		transition: none;
	}
}

/* ==================================================================
 * GALERÍA RECIENTE
 * ================================================================== */
.tc-home-gallery {
	position: relative;
	padding: 112px 0;
	scroll-margin-top: 125px;
	background: #fff;
}

.tc-home-gallery__heading {
	max-width: 680px;
	margin: 0 auto 48px;
}

.tc-home-gallery__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	grid-auto-flow: dense;
	grid-auto-rows: 220px;
	gap: 16px;
}

.tc-home-gallery__item {
	position: relative;
	overflow: hidden;
	min-width: 0;
	margin: 0;
	border-radius: 24px;
	background: #e8f2f7;
	box-shadow: 0 14px 36px rgba(1, 52, 96, 0.1);
}

.tc-home-gallery__item:nth-child(1) {
	grid-column: span 2;
	grid-row: span 2;
}

.tc-home-gallery__item:nth-child(4),
.tc-home-gallery__item:nth-child(6) {
	grid-column: span 2;
}

.tc-home-gallery__link {
	position: relative;
	display: block;
	width: 100%;
	height: 100%;
}

.tc-home-gallery__link::after {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, transparent 55%, rgba(1, 52, 96, 0.28));
	opacity: 0.7;
	transition: opacity 0.35s ease;
}

.tc-home-gallery__link img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.55s ease;
}

.tc-home-gallery__zoom {
	position: absolute;
	right: 18px;
	bottom: 18px;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border: 1px solid rgba(255, 255, 255, 0.58);
	border-radius: 50%;
	background: rgba(1, 52, 96, 0.74);
	color: #fff;
	font-size: 18px;
	backdrop-filter: blur(8px);
	transition: background 0.25s ease, transform 0.25s ease;
}

.tc-home-gallery__link:hover img {
	transform: scale(1.045);
}

.tc-home-gallery__link:hover::after {
	opacity: 1;
}

.tc-home-gallery__link:hover .tc-home-gallery__zoom {
	background: var(--theme-color);
	transform: translateY(-2px);
}

.tc-home-gallery__link:focus-visible,
.tc-recent-tour-card a:focus-visible,
.tc-lightbox button:focus-visible {
	outline: 3px solid var(--theme-color);
	outline-offset: 3px;
}

/* ==================================================================
 * TOURS RECIENTES
 * ================================================================== */
.tc-tour-catalog-hero {
	position: relative;
	display: flex;
	overflow: hidden;
	isolation: isolate;
	align-items: center;
	min-height: clamp(430px, 36vw, 580px);
	background: #013460;
}

.tc-tour-catalog-hero__image,
.tc-tour-catalog-hero__overlay {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}

.tc-tour-catalog-hero__image {
	z-index: -2;
	object-fit: cover;
	object-position: center 48%;
}

.tc-tour-catalog-hero__overlay {
	z-index: -1;
	background:
		linear-gradient(90deg, rgba(1, 28, 53, 0.94) 0%, rgba(1, 39, 72, 0.82) 42%, rgba(1, 39, 72, 0.22) 76%, rgba(1, 39, 72, 0.1) 100%),
		linear-gradient(0deg, rgba(1, 28, 53, 0.32), rgba(1, 28, 53, 0.05));
}

.tc-tour-catalog-hero__container {
	width: 100%;
	padding-top: 82px;
	padding-bottom: 82px;
}

.tc-tour-catalog-hero__content {
	max-width: 760px;
}

.tc-tour-catalog-hero__eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 14px;
	color: #ffd2bd;
	font-family: "Dancing Script", sans-serif;
	font-size: clamp(25px, 2vw, 34px);
	font-weight: 600;
	line-height: 1.2;
}

.tc-tour-catalog-hero__eyebrow i {
	font-family: "Font Awesome 6 Pro";
	font-size: 20px;
}

.tc-tour-catalog-hero h1 {
	max-width: 14ch;
	margin: 0;
	color: #fff;
	font-family: var(--title-font, "Manrope", sans-serif);
	font-size: clamp(40px, 5vw, 70px);
	font-weight: 800;
	letter-spacing: -0.04em;
	line-height: 1.05;
	text-wrap: balance;
}

.tc-tour-catalog-hero p {
	max-width: 62ch;
	margin: 22px 0 0;
	color: rgba(255, 255, 255, 0.91);
	font-size: clamp(16px, 1.25vw, 19px);
	line-height: 1.7;
}

.tc-tour-catalog-hero__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 14px;
	margin-top: 30px;
}

.tc-tour-catalog-hero__cta,
.tc-tour-catalog-hero__languages {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 48px;
	border-radius: 999px;
	font-size: 14px;
	font-weight: 700;
}

.tc-tour-catalog-hero__cta {
	padding: 0 22px;
	background: #fff;
	color: #013460;
	box-shadow: 0 12px 28px rgba(1, 20, 39, 0.2);
	transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease;
}

.tc-tour-catalog-hero__cta:hover {
	background: var(--theme-color);
	color: #fff;
	transform: translateY(-2px);
}

.tc-tour-catalog-hero__cta:focus-visible {
	outline: 3px solid #fff;
	outline-offset: 4px;
}

.tc-tour-catalog-hero__languages {
	padding: 0 18px;
	border: 1px solid rgba(255, 255, 255, 0.4);
	background: rgba(1, 39, 72, 0.36);
	color: #fff;
	backdrop-filter: blur(8px);
}

@media (max-width: 991px) {
	.tc-tour-catalog-hero {
		min-height: 440px;
	}

	.tc-tour-catalog-hero__overlay {
		background: linear-gradient(90deg, rgba(1, 28, 53, 0.94) 0%, rgba(1, 39, 72, 0.76) 68%, rgba(1, 39, 72, 0.32) 100%);
	}

	.tc-tour-catalog-hero__container {
		padding-top: 72px;
		padding-bottom: 72px;
	}

	.tc-tour-catalog-hero__content {
		max-width: 650px;
	}
}

@media (max-width: 575px) {
	.tc-tour-catalog-hero {
		min-height: 480px;
	}

	.tc-tour-catalog-hero__image {
		object-position: 62% center;
	}

	.tc-tour-catalog-hero__overlay {
		background: linear-gradient(180deg, rgba(1, 28, 53, 0.72) 0%, rgba(1, 28, 53, 0.94) 74%, rgba(1, 28, 53, 0.97) 100%);
	}

	.tc-tour-catalog-hero__container {
		display: flex;
		align-items: flex-end;
		min-height: 480px;
		padding-top: 88px;
		padding-bottom: 40px;
	}

	.tc-tour-catalog-hero h1 {
		max-width: 12ch;
		font-size: clamp(36px, 11vw, 48px);
	}

	.tc-tour-catalog-hero p {
		margin-top: 16px;
		font-size: 16px;
		line-height: 1.6;
	}

	.tc-tour-catalog-hero__actions {
		align-items: stretch;
		flex-direction: column;
		margin-top: 24px;
	}

	.tc-tour-catalog-hero__cta,
	.tc-tour-catalog-hero__languages {
		width: 100%;
	}
}

.tc-recent-tours {
	position: relative;
	overflow: hidden;
	padding: 112px 0;
	scroll-margin-top: 125px;
	background:
		radial-gradient(circle at 100% 0, rgba(225, 118, 78, 0.11), transparent 24%),
		linear-gradient(180deg, #f7fbfc 0%, #eef7fa 100%);
}

.tc-recent-tours__heading {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 32px;
	margin-bottom: 46px;
}

.tc-recent-tours__heading .title-area {
	max-width: 720px;
}

.tc-recent-tours__intro {
	max-width: 64ch;
	margin: 14px 0 0;
	color: var(--body-color, #687179);
	font-size: 17px;
	line-height: 1.7;
}

.tc-recent-tours__all {
	flex: 0 0 auto;
	text-transform: none;
}

.tc-recent-tours__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 22px;
}

/* ==================================================================
 * TARJETA DE TOUR COMPACTA
 *
 * Componente compartido por Tours populares y Tours recientes. Mantiene la
 * información de decisión visible sin convertir la tarjeta en una ficha larga.
 * ================================================================== */
.tour-slider .swiper-wrapper {
	align-items: stretch;
}

.tour-slider .swiper-slide {
	display: flex;
	height: auto;
}

.tc-tour-card {
	display: flex;
	overflow: hidden;
	flex: 1;
	flex-direction: column;
	min-width: 0;
	height: 100%;
	border: 1px solid rgba(54, 153, 185, 0.18);
	border-radius: 20px;
	background: #fff;
	box-shadow: 0 12px 34px rgba(1, 52, 96, 0.08);
	transition: transform 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
}

.tc-tour-card:hover {
	border-color: rgba(54, 153, 185, 0.34);
	box-shadow: 0 20px 44px rgba(1, 52, 96, 0.13);
	transform: translateY(-4px);
}

.tc-tour-card__media {
	position: relative;
	display: block;
	overflow: hidden;
	aspect-ratio: 16 / 10;
	background: var(--smoke-color);
}

.tc-tour-card__media::after {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(1, 25, 47, 0.04) 42%, rgba(1, 25, 47, 0.48) 100%);
	content: "";
	pointer-events: none;
}

.tc-tour-card__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.45s ease;
}

.tc-tour-card:hover .tc-tour-card__media img {
	transform: scale(1.045);
}

.tc-tour-card__category,
.tc-tour-card__availability {
	position: absolute;
	z-index: 1;
	left: 12px;
	display: inline-flex;
	align-items: center;
	gap: 5px;
	max-width: calc(100% - 24px);
	padding: 7px 10px;
	border-radius: 999px;
	font-size: 11px;
	font-weight: 700;
	line-height: 1.15;
	white-space: nowrap;
}

.tc-tour-card__category {
	top: 12px;
	overflow: hidden;
	background: rgba(1, 52, 96, 0.9);
	color: #fff;
	text-overflow: ellipsis;
	text-transform: uppercase;
	letter-spacing: 0.035em;
	backdrop-filter: blur(8px);
}

.tc-tour-card__availability {
	bottom: 12px;
	border: 1px solid rgba(255, 255, 255, 0.7);
	background: rgba(255, 255, 255, 0.94);
	color: var(--title-color);
	box-shadow: 0 6px 18px rgba(1, 25, 47, 0.14);
	backdrop-filter: blur(8px);
}

.tc-tour-card__availability.is-instant {
	color: #17633a;
}

.tc-tour-card__content {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: 17px 18px 18px;
}

.tc-tour-card__rating {
	display: flex;
	align-items: center;
	min-height: 22px;
	margin-bottom: 7px;
	color: var(--body-color, #687179);
	font-size: 13px;
}

.tc-tour-card__rating > span {
	display: inline-flex;
	align-items: center;
	gap: 5px;
}

.tc-tour-card__rating i {
	color: var(--yellow-color);
}

.tc-tour-card__rating strong {
	color: var(--title-color);
	font-size: 14px;
}

.tc-tour-card__rating small {
	color: var(--body-color, #687179);
	font-size: 12px;
}

.tc-tour-card__rating .is-new {
	color: var(--subtitle-accent-color);
	font-weight: 700;
}

.tc-tour-card__title {
	min-height: 48px;
	margin: 0 0 13px;
	font-family: var(--title-font, "Manrope", sans-serif);
	font-size: 18px;
	font-weight: 700;
	line-height: 1.33;
}

.tc-tour-card__title a {
	display: -webkit-box;
	overflow: hidden;
	color: var(--title-color);
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	transition: color 0.2s ease;
}

.tc-tour-card__title a:hover {
	color: var(--theme-color);
}

.tc-tour-card__meta {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	overflow: hidden;
	margin: 0 0 15px;
	padding: 0;
	border: 1px solid rgba(54, 153, 185, 0.14);
	border-radius: 15px;
	background: linear-gradient(145deg, rgba(247, 251, 253, 0.96), rgba(237, 247, 250, 0.82));
	list-style: none;
}

.tc-tour-card__meta li {
	display: flex;
	align-items: center;
	gap: 6px;
	min-width: 0;
	min-height: 46px;
	padding: 7px;
	border: 0;
	border-bottom: 1px solid rgba(54, 153, 185, 0.12);
	border-radius: 0;
	background: transparent;
	color: var(--body-color, #687179);
	font-size: 12px;
	line-height: 1.25;
}

.tc-tour-card__meta li.is-duration {
	border-right: 1px solid rgba(54, 153, 185, 0.12);
}

.tc-tour-card__meta li.is-language,
.tc-tour-card__meta li.is-location {
	grid-column: 1 / -1;
}

.tc-tour-card__meta li.is-location {
	border-bottom: 0;
}

.tc-tour-card__meta i {
	display: grid;
	flex: 0 0 24px;
	width: 24px;
	height: 24px;
	border-radius: 7px;
	background: #fff;
	color: var(--theme-color);
	box-shadow: 0 4px 12px rgba(1, 52, 96, 0.08);
	font-size: 12px;
	place-items: center;
}

.tc-tour-card__meta-copy {
	display: flex;
	overflow: hidden;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
	line-height: 1.2;
}

.tc-tour-card__meta-copy small {
	color: #78909f;
	font-size: 10px;
	font-weight: 750;
	letter-spacing: 0.04em;
	line-height: 1.15;
	text-transform: uppercase;
}

.tc-tour-card__meta-copy strong {
	display: -webkit-box;
	overflow: hidden;
	color: var(--title-color);
	font-size: 11.5px;
	font-weight: 650;
	line-height: 1.2;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

.tc-tour-card__footer {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 12px;
	margin-top: auto;
	padding-top: 14px;
	border-top: 1px solid rgba(54, 153, 185, 0.14);
}

.tc-tour-card__price {
	display: grid;
	grid-template-columns: auto auto;
	align-items: baseline;
	gap: 0 6px;
	min-width: 0;
	margin: 0;
}

.tc-tour-card__price > span {
	grid-column: 1 / -1;
	color: var(--body-color, #687179);
	font-size: 11px;
	line-height: 1.1;
}

.tc-tour-card__price strong {
	color: var(--title-color);
	font-family: var(--title-font, "Manrope", sans-serif);
	font-size: 20px;
	font-weight: 800;
	line-height: 1.2;
}

.tc-tour-card__price small {
	overflow: hidden;
	color: var(--body-color, #687179);
	font-size: 10.5px;
	line-height: 1.2;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.tc-tour-card__cta {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 44px;
	padding: 0 14px;
	border: 1px solid var(--theme-color);
	border-radius: 999px;
	background: var(--theme-color);
	color: #fff;
	font-size: 13px;
	font-weight: 700;
	line-height: 1;
	white-space: nowrap;
	transition: background 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

.tc-tour-card__cta:hover {
	border-color: var(--title-color);
	background: var(--title-color);
	color: #fff;
	transform: translateY(-1px);
}

.tc-tour-card a:focus-visible {
	outline: 3px solid var(--theme-color);
	outline-offset: 3px;
}

/* El mismo componente también es la única tarjeta de los loops de Traveler. */
.st-tours .service-list-wrapper > .item-service,
.st-tours .row-wrapper > .item-service,
.tc-catalog-tour-card {
	display: flex;
}

.st-tours .service-list-wrapper > .item-service,
.st-tours .row-wrapper > .item-service {
	margin-bottom: 24px;
}

/*
 * El loop de Elementor neutraliza el margen de las columnas con una regla
 * posterior. El gap pertenece al contenedor para que sea constante aun cuando
 * las tarjetas de una misma fila tengan alturas distintas.
 */
#modern-search-result .service-list-wrapper.service-tour.row {
	row-gap: 28px;
}

#modern-search-result .service-list-wrapper.service-tour.row > .item-service {
	margin-bottom: 0 !important;
}

#modern-search-result .pagination {
	margin-top: 8px;
}

.tc-catalog-tour-card {
	width: 100%;
	min-width: 0;
	height: 100%;
}

.tc-catalog-tour-card .tc-tour-card {
	width: 100%;
}

/* La opción “lista” cambia la composición, no el lenguaje visual del card. */
.service-list-wrapper.list-style .tc-catalog-tour-card .tc-tour-card,
.row.style-list .tc-catalog-tour-card .tc-tour-card {
	display: grid;
	grid-template-columns: minmax(240px, 34%) minmax(0, 1fr);
}

.service-list-wrapper.list-style .tc-tour-card__media,
.row.style-list .tc-tour-card__media {
	min-height: 100%;
	aspect-ratio: auto;
}

.service-list-wrapper.list-style .tc-tour-card__content,
.row.style-list .tc-tour-card__content {
	padding: 22px 24px;
}

.service-list-wrapper.list-style .tc-tour-card__title,
.row.style-list .tc-tour-card__title {
	min-height: 0;
	font-size: 20px;
}

.service-list-wrapper.list-style .tc-tour-card__meta,
.row.style-list .tc-tour-card__meta {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.service-list-wrapper.list-style .tc-tour-card__meta li.is-location,
.row.style-list .tc-tour-card__meta li.is-location {
	grid-column: auto;
}

@media (max-width: 767px) {
	#modern-search-result .service-list-wrapper.service-tour.row {
		row-gap: 20px;
	}

	.service-list-wrapper.list-style .tc-catalog-tour-card .tc-tour-card,
	.row.style-list .tc-catalog-tour-card .tc-tour-card {
		display: flex;
	}

	.service-list-wrapper.list-style .tc-tour-card__media,
	.row.style-list .tc-tour-card__media {
		min-height: 0;
		aspect-ratio: 16 / 10;
	}

	.service-list-wrapper.list-style .tc-tour-card__content,
	.row.style-list .tc-tour-card__content {
		padding: 17px 18px 18px;
	}

	.service-list-wrapper.list-style .tc-tour-card__meta,
	.row.style-list .tc-tour-card__meta {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.service-list-wrapper.list-style .tc-tour-card__meta li.is-location,
	.row.style-list .tc-tour-card__meta li.is-location {
		grid-column: 1 / -1;
	}
}

/* Catálogo: panel de filtros más claro, compacto y táctil. */
.tc-tour-filters {
	--tc-filter-accent: var(--theme-color, #3699b9);
	--tc-filter-ink: var(--title-color, #0b2942);
	--tc-filter-line: rgba(54, 153, 185, 0.18);
}

.tc-tour-filters__intro {
	position: relative;
	overflow: hidden;
	margin-bottom: 16px;
	padding: 23px 22px 24px;
	border-radius: 22px;
	background:
		radial-gradient(circle at 95% 5%, rgba(255, 255, 255, 0.2), transparent 34%),
		linear-gradient(145deg, #013460 0%, #075a82 100%);
	box-shadow: 0 15px 35px rgba(1, 52, 96, 0.18);
	color: #fff;
}

.tc-tour-filters__intro::after {
	position: absolute;
	right: -30px;
	bottom: -54px;
	width: 130px;
	height: 130px;
	border: 1px solid rgba(255, 255, 255, 0.18);
	border-radius: 50%;
	content: "";
}

.tc-tour-filters__eyebrow {
	display: inline-flex;
	position: relative;
	z-index: 1;
	align-items: center;
	gap: 8px;
	margin-bottom: 10px;
	color: #aee9f4;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: 0.08em;
	line-height: 1.3;
	text-transform: uppercase;
}

.tc-tour-filters__eyebrow .stt-icon {
	font-size: 14px;
}

.tc-tour-filters__intro h2 {
	position: relative;
	z-index: 1;
	margin: 0 0 8px;
	color: #fff;
	font-family: var(--title-font, "Manrope", sans-serif);
	font-size: clamp(20px, 1.5vw, 24px);
	font-weight: 750;
	letter-spacing: -0.025em;
	line-height: 1.2;
}

.tc-tour-filters__intro p {
	position: relative;
	z-index: 1;
	margin: 0;
	color: rgba(255, 255, 255, 0.78);
	font-size: 13px;
	line-height: 1.6;
}

.st-style-elementor .tc-tour-filters .sidebar-item {
	overflow: hidden;
	margin-bottom: 14px;
	padding: 0;
	border: 1px solid var(--tc-filter-line);
	border-radius: 18px;
	background: #fff;
	box-shadow: 0 10px 30px rgba(11, 41, 66, 0.07);
}

.st-style-elementor .tc-tour-filters .sidebar-item .item-title {
	min-height: 60px;
	padding: 0 17px;
	cursor: pointer;
}

.st-style-elementor .tc-tour-filters .sidebar-item .item-title > div {
	color: var(--tc-filter-ink);
	font-size: 15px;
	font-weight: 750;
	line-height: 1.35;
}

.st-style-elementor .tc-tour-filters .sidebar-item .item-title .fa {
	display: grid;
	flex: 0 0 32px;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: rgba(54, 153, 185, 0.1);
	color: var(--tc-filter-accent);
	font-size: 11px;
	place-items: center;
}

.st-style-elementor .tc-tour-filters .sidebar-item .item-content {
	margin: 0 17px;
	padding: 16px 0 18px;
	border-top: 1px solid var(--tc-filter-line);
}

.st-style-elementor .tc-tour-filters .sidebar-item .item-content > ul {
	margin: 0;
	padding: 0;
}

.st-style-elementor .tc-tour-filters .sidebar-item .item-content .st-icheck-item {
	min-height: 44px;
	margin: 3px 0;
	padding: 0;
	border-radius: 12px;
	color: #4f6474;
	font-size: 14px;
	line-height: 1.4;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.st-style-elementor .tc-tour-filters .sidebar-item .item-content .st-icheck-item:hover {
	background: rgba(54, 153, 185, 0.08);
	color: var(--tc-filter-ink);
}

.st-style-elementor .tc-tour-filters .sidebar-item .item-content .st-icheck-item label {
	display: flex;
	position: relative;
	align-items: center;
	width: 100%;
	min-height: 44px;
	margin: 0;
	padding: 8px 10px 8px 42px;
	cursor: pointer;
}

.st-style-elementor .tc-tour-filters .sidebar-item .item-content .st-icheck-item label .checkmark {
	top: 50%;
	left: 10px;
	width: 20px;
	height: 20px;
	border-color: #9aabb7;
	border-radius: 6px;
	transform: translateY(-50%);
}

.st-style-elementor .tc-tour-filters .sidebar-item .item-content .btn-more-item {
	justify-content: center;
	width: 100%;
	min-height: 42px;
	margin-top: 8px;
	padding: 8px 12px;
	border-radius: 12px;
	background: rgba(54, 153, 185, 0.09);
	color: var(--tc-filter-accent);
	font-size: 14px;
	font-weight: 700;
	text-decoration: none;
}

.st-style-elementor .tc-tour-filters .sidebar-item .item-content.range-slider .min-max-value {
	gap: 22px;
}

.st-style-elementor .tc-tour-filters .sidebar-item .item-content.range-slider .min-max-value .item-value {
	width: calc(50% - 11px);
	padding: 8px 10px;
	border-color: var(--tc-filter-line);
	border-radius: 12px;
	background: #f8fbfc;
	font-size: 11px;
	line-height: 1.35;
}

.st-style-elementor .tc-tour-filters .sidebar-item .item-content.range-slider .min-max-value .item-value span {
	margin-top: 3px;
	color: var(--tc-filter-ink);
	font-size: 14px;
	font-weight: 750;
}

.st-style-elementor .tc-tour-filters .sidebar-item .item-content.range-slider .price-action {
	gap: 12px;
	margin-top: 16px;
	padding-top: 16px;
	border-color: var(--tc-filter-line);
}

.st-style-elementor .tc-tour-filters .sidebar-item .item-content.range-slider .price-action a {
	min-height: 40px;
	padding: 10px 2px;
	color: #607786;
	font-size: 13px;
	font-weight: 650;
}

.st-style-elementor .tc-tour-filters .sidebar-item .item-content.range-slider .price-action button {
	min-height: 42px;
	padding: 10px 18px;
	border: 0;
	background: var(--tc-filter-accent);
	box-shadow: 0 8px 18px rgba(54, 153, 185, 0.2);
	font-size: 14px;
	font-weight: 750;
}

.st-style-elementor .tc-tour-filters .sidebar-item .item-content.range-slider .irs .irs-bar {
	background: var(--tc-filter-accent);
}

.st-style-elementor .tc-tour-filters .sidebar-item .item-content.range-slider .irs .irs-handle {
	border: 2px solid var(--tc-filter-accent);
	box-shadow: 0 2px 7px rgba(1, 52, 96, 0.18);
}

@media (max-width: 991px) {
	.tc-tour-filters__intro {
		margin-top: 48px;
		border-radius: 18px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.st-style-elementor .tc-tour-filters .sidebar-item .item-content .st-icheck-item {
		transition: none;
	}
}

.tc-recent-tour-card {
	display: flex;
	overflow: hidden;
	flex-direction: column;
	min-width: 0;
	border: 1px solid rgba(54, 153, 185, 0.14);
	border-radius: 22px;
	background: #fff;
	box-shadow: 0 16px 40px rgba(1, 52, 96, 0.08);
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.tc-recent-tour-card:hover {
	transform: translateY(-6px);
	box-shadow: 0 24px 52px rgba(1, 52, 96, 0.14);
}

.tc-recent-tour-card__image {
	position: relative;
	display: block;
	overflow: hidden;
	aspect-ratio: 4 / 3;
	background: #e8f2f7;
}

.tc-recent-tour-card__image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.5s ease;
}

.tc-recent-tour-card:hover .tc-recent-tour-card__image img {
	transform: scale(1.045);
}

.tc-recent-tour-card__category {
	position: absolute;
	top: 16px;
	left: 16px;
	max-width: calc(100% - 32px);
	padding: 7px 12px;
	border-radius: 999px;
	background: rgba(1, 52, 96, 0.88);
	color: #fff;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.2;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	backdrop-filter: blur(8px);
}

.tc-recent-tour-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: 22px;
}

.tc-recent-tour-card__body h3 {
	margin: 0 0 16px;
	font-family: var(--title-font, "Manrope", sans-serif);
	font-size: 20px;
	font-weight: 700;
	line-height: 1.35;
}

.tc-recent-tour-card__body h3 a {
	display: -webkit-box;
	overflow: hidden;
	color: var(--title-color);
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	transition: color 0.2s ease;
}

.tc-recent-tour-card__body h3 a:hover {
	color: var(--theme-color);
}

.tc-recent-tour-card__meta {
	display: grid;
	gap: 9px;
	margin: 0 0 22px;
	padding: 0;
	list-style: none;
}

.tc-recent-tour-card__meta li {
	display: flex;
	align-items: flex-start;
	gap: 9px;
	min-width: 0;
	color: var(--body-color, #687179);
	font-size: 14px;
	line-height: 1.45;
}

.tc-recent-tour-card__meta i {
	flex: 0 0 auto;
	margin-top: 3px;
	color: var(--theme-color);
}

.tc-recent-tour-card__meta span {
	overflow-wrap: anywhere;
}

.tc-recent-tour-card__footer {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 14px;
	margin-top: auto;
	padding-top: 17px;
	border-top: 1px solid rgba(54, 153, 185, 0.14);
}

.tc-recent-tour-card__price {
	display: grid;
	gap: 1px;
	margin: 0;
}

.tc-recent-tour-card__price span {
	color: var(--body-color, #687179);
	font-size: 12px;
	line-height: 1.2;
}

.tc-recent-tour-card__price strong {
	color: var(--title-color);
	font-family: var(--title-font, "Manrope", sans-serif);
	font-size: 19px;
	line-height: 1.25;
}

.tc-recent-tour-card__cta {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 44px;
	color: var(--theme-color);
	font-size: 14px;
	font-weight: 700;
	white-space: nowrap;
}

.tc-recent-tour-card__cta i {
	transition: transform 0.2s ease;
}

.tc-recent-tour-card__cta:hover {
	color: var(--title-color);
}

.tc-recent-tour-card__cta:hover i {
	transform: translateX(3px);
}

/* Certificaciones: bloque institucional propio de 40 Millas. */
.tc-certifications {
	position: relative;
	overflow: hidden;
	padding: 104px 0;
	background:
		radial-gradient(circle at 8% 16%, rgba(54, 153, 185, 0.13), transparent 25%),
		radial-gradient(circle at 92% 82%, rgba(1, 52, 96, 0.08), transparent 28%),
		#f5fafc;
}

.tc-certifications::before {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-image: radial-gradient(rgba(54, 153, 185, 0.2) 0.7px, transparent 0.7px);
	background-size: 18px 18px;
	content: "";
	opacity: 0.32;
	pointer-events: none;
}

.tc-certifications .container {
	position: relative;
	z-index: 1;
}

.tc-certifications__layout {
	display: grid;
	grid-template-columns: minmax(300px, 0.82fr) minmax(0, 1.58fr);
	gap: 24px;
}

.tc-certifications__intro {
	display: flex;
	position: relative;
	overflow: hidden;
	flex-direction: column;
	justify-content: center;
	min-height: 100%;
	padding: clamp(34px, 4.2vw, 58px);
	border-radius: 30px;
	background:
		radial-gradient(circle at 100% 0, rgba(92, 202, 221, 0.26), transparent 34%),
		linear-gradient(145deg, #013460 0%, #07567d 100%);
	box-shadow: 0 24px 60px rgba(1, 52, 96, 0.18);
}

.tc-certifications__intro::after {
	position: absolute;
	right: -80px;
	bottom: -120px;
	width: 270px;
	height: 270px;
	border: 1px solid rgba(255, 255, 255, 0.14);
	border-radius: 50%;
	box-shadow: 0 0 0 35px rgba(255, 255, 255, 0.025), 0 0 0 70px rgba(255, 255, 255, 0.02);
	content: "";
}

.tc-certifications__subtitle {
	position: relative;
	z-index: 1;
	margin-bottom: 12px;
	color: #8de1ef;
}

.tc-certifications__intro h2 {
	position: relative;
	z-index: 1;
	margin: 0 0 20px;
	color: #fff;
	font-family: var(--title-font, "Manrope", sans-serif);
	font-size: clamp(32px, 3.1vw, 48px);
	font-weight: 750;
	letter-spacing: -0.04em;
	line-height: 1.12;
}

.tc-certifications__intro > p {
	position: relative;
	z-index: 1;
	max-width: 520px;
	margin: 0;
	color: rgba(255, 255, 255, 0.78);
	font-size: 16px;
	line-height: 1.75;
}

.tc-certifications__assurance {
	display: flex;
	position: relative;
	z-index: 1;
	align-items: center;
	gap: 13px;
	margin-top: 32px;
	padding: 14px 16px;
	border: 1px solid rgba(255, 255, 255, 0.16);
	border-radius: 17px;
	background: rgba(255, 255, 255, 0.08);
	backdrop-filter: blur(8px);
}

.tc-certifications__assurance-icon {
	display: grid;
	flex: 0 0 46px;
	width: 46px;
	height: 46px;
	border-radius: 14px;
	background: #fff;
	color: var(--theme-color);
	font-size: 20px;
	place-items: center;
}

.tc-certifications__assurance > span:last-child {
	display: grid;
	gap: 3px;
}

.tc-certifications__assurance strong {
	color: #fff;
	font-size: 15px;
	font-weight: 750;
}

.tc-certifications__assurance small {
	color: rgba(255, 255, 255, 0.68);
	font-size: 12px;
	line-height: 1.4;
}

.tc-certifications__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
}

.tc-certifications__card {
	display: flex;
	position: relative;
	overflow: hidden;
	flex-direction: column;
	justify-content: space-between;
	min-width: 0;
	min-height: 248px;
	padding: 23px 24px 25px;
	border: 1px solid rgba(54, 153, 185, 0.16);
	border-radius: 24px;
	background: rgba(255, 255, 255, 0.94);
	box-shadow: 0 16px 42px rgba(1, 52, 96, 0.08);
}

.tc-certifications__card::after {
	position: absolute;
	right: -34px;
	bottom: -50px;
	width: 120px;
	height: 120px;
	border-radius: 50%;
	background: rgba(54, 153, 185, 0.055);
	content: "";
}

.tc-certifications__number {
	position: absolute;
	top: 17px;
	right: 19px;
	color: rgba(1, 52, 96, 0.17);
	font-family: var(--title-font, "Manrope", sans-serif);
	font-size: 30px;
	font-weight: 800;
	letter-spacing: -0.05em;
	line-height: 1;
}

.tc-certifications__logo {
	display: flex;
	position: relative;
	z-index: 1;
	align-items: center;
	justify-content: flex-start;
	width: calc(100% - 44px);
	height: 92px;
	margin: 0 0 18px;
}

.tc-certifications__logo img {
	display: block;
	width: auto;
	max-width: 100%;
	height: auto;
	max-height: 78px;
	object-fit: contain;
	object-position: left center;
}

.tc-certifications__copy {
	position: relative;
	z-index: 1;
	padding-top: 17px;
	border-top: 1px solid rgba(54, 153, 185, 0.13);
}

.tc-certifications__copy h3 {
	margin: 0 0 7px;
	color: var(--title-color);
	font-family: var(--title-font, "Manrope", sans-serif);
	font-size: 17px;
	font-weight: 750;
	line-height: 1.3;
}

.tc-certifications__copy p {
	margin: 0;
	color: var(--body-color, #687179);
	font-size: 13px;
	line-height: 1.55;
}

@media (max-width: 991px) {
	.tc-certifications {
		padding: 82px 0;
	}

	.tc-certifications__layout {
		grid-template-columns: 1fr;
	}

	.tc-certifications__intro {
		min-height: 420px;
	}
}

@media (max-width: 575px) {
	.tc-certifications {
		padding: 64px 0;
	}

	.tc-certifications__layout {
		gap: 16px;
	}

	.tc-certifications__intro {
		min-height: auto;
		padding: 32px 24px;
		border-radius: 23px;
	}

	.tc-certifications__intro h2 {
		font-size: 32px;
	}

	.tc-certifications__grid {
		grid-template-columns: 1fr;
		gap: 14px;
	}

	.tc-certifications__card {
		display: grid;
		grid-template-columns: minmax(90px, 0.65fr) minmax(0, 1.35fr);
		align-items: center;
		min-height: 154px;
		padding: 21px 20px;
		border-radius: 20px;
	}

	.tc-certifications__logo {
		width: calc(100% - 8px);
		height: 82px;
		margin: 0;
	}

	.tc-certifications__logo img {
		max-height: 66px;
	}

	.tc-certifications__copy {
		padding: 0 0 0 17px;
		border-top: 0;
		border-left: 1px solid rgba(54, 153, 185, 0.13);
	}

	.tc-certifications__copy h3 {
		font-size: 15px;
	}

	.tc-certifications__copy p {
		font-size: 12.5px;
	}

	.tc-certifications__number {
		top: 14px;
		right: 16px;
		font-size: 24px;
	}
}

@media (max-width: 1199px) {
	.tc-recent-tours__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 991px) {
	.tc-home-gallery,
	.tc-recent-tours {
		padding: 78px 0;
	}

	.tc-home-gallery__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		grid-auto-rows: 210px;
	}

	.tc-recent-tours__heading {
		align-items: flex-start;
		flex-direction: column;
	}
}

@media (max-width: 575px) {
	.tc-home-gallery,
	.tc-recent-tours {
		padding: 64px 0;
	}

	.tc-home-gallery__heading {
		margin-bottom: 32px;
	}

	.tc-home-gallery__grid {
		grid-template-columns: 1fr;
		grid-auto-rows: 230px;
		gap: 12px;
	}

	.tc-home-gallery__item:nth-child(1),
	.tc-home-gallery__item:nth-child(4),
	.tc-home-gallery__item:nth-child(6) {
		grid-column: auto;
		grid-row: auto;
	}

	.tc-home-gallery__item:nth-child(1) {
		min-height: 300px;
	}

	.tc-home-gallery__item {
		border-radius: 18px;
	}

	.tc-home-gallery__zoom {
		right: 14px;
		bottom: 14px;
		width: 44px;
		height: 44px;
	}

	.tc-recent-tours__heading {
		gap: 24px;
		margin-bottom: 34px;
	}

	.tc-recent-tours__intro {
		font-size: 16px;
	}

	.tc-recent-tours__grid {
		grid-template-columns: 1fr;
		gap: 18px;
	}

	.tc-recent-tour-card__body {
		padding: 20px;
	}

	.tc-tour-card__media {
		aspect-ratio: 16 / 9;
	}

	.tc-tour-card__content {
		padding: 16px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.tc-home-gallery__link img,
	.tc-home-gallery__link::after,
	.tc-home-gallery__zoom,
	.tc-tour-card,
	.tc-tour-card__media img,
	.tc-tour-card__title a,
	.tc-tour-card__cta,
	.tc-recent-tour-card,
	.tc-recent-tour-card__image img,
	.tc-recent-tour-card__cta i {
		transition: none;
	}

	.tc-tour-card:hover,
	.tc-tour-card:hover .tc-tour-card__media img,
	.tc-tour-card__cta:hover,
	.tc-recent-tour-card:hover,
	.tc-home-gallery__link:hover .tc-home-gallery__zoom {
		transform: none;
	}
}

/* Pie de página: barra de copyright en azul marino corporativo. */
.footer-wrapper .copyright-wrap {
	background-color: #013460;
}

/* Categorías: toda la tarjeta enlaza al catálogo y usa una portada de tour. */
.categorySlider .tc-category-card {
	display: block;
	color: inherit;
	text-decoration: none;
	/* El giro se calcula cuadro a cuadro. La transición global de los enlaces
	 * retrasaba cada transform y producía un movimiento elástico que no existe
	 * en el componente original (allí la tarjeta es un div). */
	-webkit-transition: none;
	transition: none;
}

.categorySlider .tc-category-card .box-img {
	aspect-ratio: 1 / 1;
	overflow: hidden;
}

.categorySlider .tc-category-card .box-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.categorySlider .tc-category-card .box-title {
	color: var(--title-color);
}

.categorySlider .tc-category-card:focus-visible {
	border-radius: 24px;
	outline: 3px solid var(--theme-color);
	outline-offset: 5px;
}

/*
 * Destinos: en coverflow Swiper asigna z-index 0/-1 a las tarjetas laterales.
 * La caja del wrapper quedaba por encima en el hit testing: las tarjetas se
 * veían, pero el clic terminaba en el contenedor. El wrapper conserva el gesto
 * de arrastre y cada slide recupera su propia superficie interactiva.
 */
.destination-slider .swiper-wrapper {
	pointer-events: none;
}

.destination-slider .swiper-slide,
.destination-slider .destination-box,
.destination-slider .destination-box a {
	pointer-events: auto;
}

.destination-slider .destination-box a:focus-visible {
	outline: 3px solid var(--theme-color);
	outline-offset: 4px;
}

/* ================================================================
   Single tour — ficha moderna, clara y enfocada en la reserva
   ================================================================ */
.single-st_tours {
	background: #fff;
}

.tc-single-tour {
	--tc-tour-navy: #013460;
	--tc-tour-navy-deep: #062641;
	--tc-tour-cyan: #3699b9;
	--tc-tour-cyan-soft: #eaf6fa;
	--tc-tour-orange: #e1764e;
	--tc-tour-ink: #183247;
	--tc-tour-muted: #607687;
	--tc-tour-line: #dbe9ef;
	--tc-tour-control-line: #7895a4;
	--tc-tour-surface: #f5fafc;
	--tc-tour-radius: 24px;
	background: #fff;
	color: var(--tc-tour-ink);
	font-family: "Manrope", sans-serif;
	overflow: clip;
}

.tc-single-tour *,
.tc-single-tour *::before,
.tc-single-tour *::after {
	box-sizing: border-box;
}

.tc-single-tour :is(#descripcion, #itinerario, #incluye, #informacion, #reserva) {
	scroll-margin-top: 132px;
}

.tc-single-tour a {
	text-decoration: none;
}

.tc-tour-hero {
	position: relative;
	min-height: 620px;
	display: flex;
	align-items: flex-end;
	background-image:
		linear-gradient(90deg, rgba(2, 32, 56, .94) 0%, rgba(2, 32, 56, .75) 48%, rgba(2, 32, 56, .2) 100%),
		linear-gradient(0deg, rgba(1, 52, 96, .42), transparent 46%),
		var(--tc-tour-hero-image);
	background-position: center;
	background-size: cover;
	color: #fff;
}

.tc-tour-hero::after {
	content: "";
	position: absolute;
	inset: auto 0 0;
	height: 120px;
	background: linear-gradient(0deg, rgba(1, 30, 52, .48), transparent);
	pointer-events: none;
}

.tc-tour-hero > .container {
	position: relative;
	z-index: 1;
	width: 100%;
	padding-top: 142px;
	padding-bottom: 98px;
}

.tc-tour-breadcrumb {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 46px;
	font-size: 13px;
	font-weight: 650;
	color: rgba(255, 255, 255, .76);
}

.tc-tour-breadcrumb a {
	color: #fff;
}

.tc-tour-breadcrumb a:hover {
	color: #8ed6ed;
}

.tc-tour-breadcrumb i {
	font-size: 9px;
}

.tc-tour-breadcrumb span {
	max-width: 38ch;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.tc-tour-hero__content {
	max-width: 910px;
}

.tc-tour-hero__badges,
.tc-tour-hero__meta,
.tc-tour-hero__actions {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
}

.tc-tour-hero__badges {
	gap: 10px;
	margin-bottom: 18px;
}

.tc-tour-pill {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 34px;
	padding: 7px 13px;
	border: 1px solid rgba(255, 255, 255, .4);
	border-radius: 999px;
	background: rgba(54, 153, 185, .88);
	backdrop-filter: blur(8px);
	font-size: 12px;
	font-weight: 750;
	letter-spacing: .025em;
	line-height: 1;
}

.tc-tour-pill--light {
	background: rgba(255, 255, 255, .13);
}

.tc-tour-hero h1 {
	max-width: 16ch;
	margin: 0 0 24px;
	color: #fff;
	font-size: clamp(44px, 5.2vw, 72px);
	font-weight: 750;
	line-height: 1.04;
	letter-spacing: -.045em;
	text-wrap: balance;
}

.tc-tour-hero__meta {
	gap: 12px 28px;
	margin-bottom: 30px;
	font-size: 15px;
	font-weight: 600;
}

.tc-tour-hero__meta > span {
	display: inline-flex;
	align-items: center;
	gap: 9px;
}

.tc-tour-hero__meta i {
	color: #80d2ed;
	font-size: 16px;
}

.tc-tour-hero__meta .fa-star {
	color: #ffb260;
}

.tc-tour-hero__meta small {
	font-size: 12px;
	font-weight: 500;
	opacity: .75;
}

.tc-tour-hero__actions {
	gap: 12px;
}

.tc-tour-hero__actions .th-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 54px;
	padding: 14px 22px;
	border: 1px solid transparent;
	border-radius: 999px;
	font-size: 14px;
	font-weight: 750;
}

.tc-tour-primary-cta {
	background: var(--tc-tour-orange) !important;
	color: #fff !important;
}

.tc-tour-primary-cta:hover {
	background: #ce633d !important;
}

.tc-tour-secondary-cta {
	border-color: rgba(255, 255, 255, .5) !important;
	background: rgba(255, 255, 255, .11) !important;
	color: #fff !important;
	backdrop-filter: blur(10px);
}

.tc-tour-secondary-cta:hover {
	background: #fff !important;
	color: var(--tc-tour-navy) !important;
}

.tc-tour-gallery {
	position: relative;
	z-index: 2;
	margin-top: -54px;
}

.tc-tour-gallery__grid {
	display: grid;
	grid-template-columns: 2fr 1fr 1fr;
	grid-template-rows: repeat(2, 205px);
	gap: 10px;
	padding: 10px;
	border: 1px solid rgba(219, 233, 239, .8);
	border-radius: 28px;
	background: #fff;
	box-shadow: 0 20px 55px rgba(1, 52, 96, .13);
	overflow: hidden;
}

.tc-tour-gallery__item {
	position: relative;
	display: block;
	border-radius: 17px;
	background: var(--tc-tour-surface);
	overflow: hidden;
}

.tc-tour-gallery__item--main {
	grid-row: 1 / span 2;
}

.tc-tour-gallery__item img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .45s ease;
}

.tc-tour-gallery__item::after {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(1, 52, 96, .12);
	opacity: 0;
	transition: opacity .25s ease;
}

.tc-tour-gallery__item:hover img {
	transform: scale(1.035);
}

.tc-tour-gallery__item:hover::after {
	opacity: 1;
}

.tc-tour-gallery__more {
	position: absolute;
	right: 15px;
	bottom: 15px;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 13px;
	border-radius: 999px;
	background: rgba(2, 38, 65, .88);
	color: #fff;
	font-size: 12px;
	font-weight: 700;
	backdrop-filter: blur(8px);
}

.tc-tour-main {
	padding: 88px 0 108px;
}

.tc-tour-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 390px;
	gap: 52px;
	align-items: start;
}

.tc-tour-content {
	min-width: 0;
}

.tc-tour-facts {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0;
	margin-bottom: 56px;
	padding: 8px;
	border: 1px solid rgba(255, 255, 255, .08);
	border-radius: 24px;
	background:
		radial-gradient(circle at 100% 0, rgba(54, 153, 185, .3), transparent 36%),
		linear-gradient(135deg, var(--tc-tour-navy-deep), var(--tc-tour-navy));
	box-shadow: 0 18px 42px rgba(1, 52, 96, .16);
	overflow: hidden;
}

.tc-tour-fact {
	position: relative;
	display: flex;
	align-items: center;
	gap: 14px;
	min-width: 0;
	min-height: 96px;
	padding: 18px 20px;
}

.tc-tour-fact:not(:last-child)::after {
	content: "";
	position: absolute;
	top: 18px;
	right: 0;
	bottom: 18px;
	width: 1px;
	background: rgba(255, 255, 255, .16);
}

.tc-tour-fact > span {
	flex: 0 0 44px;
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border: 1px solid rgba(128, 210, 237, .28);
	border-radius: 50%;
	background: rgba(54, 153, 185, .15);
	color: #80d2ed;
	font-size: 18px;
}

.tc-tour-fact div {
	min-width: 0;
}

.tc-tour-fact small,
.tc-tour-location small {
	display: block;
	margin-bottom: 3px;
	color: var(--tc-tour-muted);
	font-size: 10px;
	font-weight: 750;
	letter-spacing: .08em;
	line-height: 1.2;
	text-transform: uppercase;
}

.tc-tour-fact small {
	margin-bottom: 5px;
	color: rgba(255, 255, 255, .62);
	font-size: 10px;
	letter-spacing: .11em;
}

.tc-tour-fact strong {
	display: block;
	color: #fff;
	font-size: 14px;
	font-weight: 750;
	line-height: 1.4;
	overflow-wrap: anywhere;
}

.tc-tour-section {
	padding: 0 0 72px;
}

.tc-tour-section + .tc-tour-section,
.tc-tour-location + .tc-tour-section {
	padding-top: 70px;
	border-top: 1px solid var(--tc-tour-line);
}

.tc-tour-section__eyebrow {
	display: block;
	margin-bottom: 8px;
	color: var(--tc-tour-cyan);
	font-family: "Dancing Script", sans-serif;
	font-size: 25px;
	font-weight: 700;
	line-height: 1.2;
}

.tc-tour-section > h2,
.tc-tour-location h2 {
	margin: 0 0 25px;
	color: var(--tc-tour-navy-deep);
	font-size: clamp(29px, 3vw, 40px);
	font-weight: 750;
	line-height: 1.2;
	letter-spacing: -.035em;
	text-wrap: balance;
}

.tc-tour-prose {
	max-width: 74ch;
	color: #506778;
	font-size: 16px;
	line-height: 1.8;
}

.tc-tour-prose :is(p, ul, ol) {
	margin: 0 0 17px;
}

.tc-tour-prose :last-child {
	margin-bottom: 0;
}

.tc-tour-prose a {
	color: var(--tc-tour-navy);
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.tc-tour-highlights ul,
.tc-tour-inclusions ul,
.tc-tour-booking__trust {
	margin: 0;
	padding: 0;
	list-style: none;
}

.tc-tour-highlights ul {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
}

.tc-tour-highlights li {
	display: flex;
	align-items: flex-start;
	gap: 11px;
	min-height: 58px;
	padding: 15px 17px;
	border-radius: 15px;
	background: var(--tc-tour-cyan-soft);
	color: var(--tc-tour-ink);
	font-size: 14px;
	font-weight: 650;
	line-height: 1.55;
}

.tc-tour-highlights li i {
	flex: 0 0 22px;
	display: grid;
	place-items: center;
	width: 22px;
	height: 22px;
	margin-top: 1px;
	border-radius: 50%;
	background: var(--tc-tour-cyan);
	color: #fff;
	font-size: 10px;
}

.tc-tour-timeline {
	position: relative;
}

.tc-tour-timeline::before {
	content: "";
	position: absolute;
	top: 25px;
	bottom: 25px;
	left: 25px;
	width: 1px;
	background: linear-gradient(var(--tc-tour-cyan), var(--tc-tour-line));
}

.tc-tour-timeline__item {
	position: relative;
	display: grid;
	grid-template-columns: 52px minmax(0, 1fr);
	gap: 21px;
	padding-bottom: 30px;
}

.tc-tour-timeline__item:last-child {
	padding-bottom: 0;
}

.tc-tour-timeline__number {
	position: relative;
	z-index: 1;
	display: grid;
	place-items: center;
	width: 52px;
	height: 52px;
	border: 5px solid #fff;
	border-radius: 50%;
	background: var(--tc-tour-navy);
	color: #fff;
	box-shadow: 0 6px 20px rgba(1, 52, 96, .18);
	font-size: 12px;
	font-weight: 800;
}

.tc-tour-timeline__item > div {
	padding: 6px 0 25px;
	border-bottom: 1px solid var(--tc-tour-line);
}

.tc-tour-timeline__item:last-child > div {
	border-bottom: 0;
}

.tc-tour-timeline h3 {
	margin: 0 0 10px;
	color: var(--tc-tour-navy-deep);
	font-size: 18px;
	font-weight: 750;
	line-height: 1.4;
}

.tc-tour-inclusions {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
}

.tc-tour-inclusions__card {
	padding: 25px;
	border: 1px solid;
	border-radius: 20px;
}

.tc-tour-inclusions__card--yes {
	border-color: #ccebdc;
	background: #f0fbf6;
}

.tc-tour-inclusions__card--no {
	border-color: #f1dad3;
	background: #fff7f4;
}

.tc-tour-inclusions__card h3 {
	display: flex;
	align-items: center;
	gap: 9px;
	margin: 0 0 18px;
	color: var(--tc-tour-navy-deep);
	font-size: 16px;
	font-weight: 800;
}

.tc-tour-inclusions__card--yes h3 i,
.tc-tour-inclusions__card--yes li i {
	color: #178557;
}

.tc-tour-inclusions__card--no h3 i,
.tc-tour-inclusions__card--no li i {
	color: #cc6042;
}

.tc-tour-inclusions li {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin-bottom: 12px;
	color: #516676;
	font-size: 14px;
	line-height: 1.55;
}

.tc-tour-inclusions li:last-child {
	margin-bottom: 0;
}

.tc-tour-inclusions li i {
	flex: 0 0 14px;
	margin-top: 5px;
	font-size: 11px;
}

.tc-tour-location {
	display: grid;
	grid-template-columns: 62px minmax(0, 1fr) auto;
	gap: 20px;
	align-items: center;
	margin: 0 0 72px;
	padding: 27px;
	border-radius: var(--tc-tour-radius);
	background:
		radial-gradient(circle at 100% 0, rgba(54, 153, 185, .36), transparent 38%),
		var(--tc-tour-navy-deep);
	color: #fff;
}

.tc-tour-location__icon {
	display: grid;
	place-items: center;
	width: 62px;
	height: 62px;
	border-radius: 18px;
	background: rgba(255, 255, 255, .12);
	color: #8ed6ed;
	font-size: 26px;
}

.tc-tour-location small {
	color: #8ed6ed;
}

.tc-tour-location h2 {
	margin: 0 0 4px;
	color: #fff;
	font-size: 23px;
}

.tc-tour-location p {
	margin: 0;
	color: rgba(255, 255, 255, .7);
	font-size: 13px;
	line-height: 1.55;
}

.tc-tour-location > a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 45px;
	padding: 11px 16px;
	border: 1px solid rgba(255, 255, 255, .28);
	border-radius: 999px;
	color: #fff;
	font-size: 12px;
	font-weight: 750;
	white-space: nowrap;
}

.tc-tour-location > a:hover {
	background: #fff;
	color: var(--tc-tour-navy);
}

.tc-tour-accordions {
	border-top: 1px solid var(--tc-tour-line);
}

.tc-tour-accordion {
	border-bottom: 1px solid var(--tc-tour-line);
}

.tc-tour-accordion summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	min-height: 72px;
	padding: 16px 4px;
	cursor: pointer;
	color: var(--tc-tour-navy-deep);
	font-size: 15px;
	font-weight: 750;
	list-style: none;
}

.tc-tour-accordion summary::-webkit-details-marker {
	display: none;
}

.tc-tour-accordion summary span {
	display: flex;
	align-items: center;
	gap: 11px;
}

.tc-tour-accordion summary span i {
	color: var(--tc-tour-cyan);
	font-size: 18px;
}

.tc-tour-accordion summary > i {
	transition: transform .2s ease;
}

.tc-tour-accordion[open] summary > i {
	transform: rotate(180deg);
}

.tc-tour-accordion > .tc-tour-prose {
	padding: 0 42px 24px;
	font-size: 14px;
}

.tc-tour-booking {
	position: sticky;
	top: 112px;
}

.tc-tour-theme-booking {
	--main-color: var(--tc-tour-navy);
}

.tc-tour-booking__support {
	margin-top: 18px;
	padding: 22px;
	border: 1px solid var(--tc-tour-line);
	border-radius: 20px;
	background: #fff;
	box-shadow: 0 12px 35px rgba(1, 52, 96, .08);
}

.tc-tour-booking__support .tc-tour-booking__or {
	margin-top: 0;
}

.tc-tour-booking__inner {
	position: relative;
	padding: 29px;
	border: 1px solid var(--tc-tour-line);
	border-radius: 26px;
	background: #fff;
	box-shadow: 0 22px 65px rgba(1, 52, 96, .13);
	overflow: hidden;
}

.tc-tour-booking__inner::before {
	content: "";
	position: absolute;
	inset: 0 0 auto;
	height: 5px;
	background: linear-gradient(90deg, var(--tc-tour-cyan), #7ccce4, var(--tc-tour-orange));
}

.tc-tour-booking__head {
	display: flex;
	align-items: baseline;
	gap: 7px;
	margin-bottom: 23px;
	padding-bottom: 22px;
	border-bottom: 1px solid var(--tc-tour-line);
}

.tc-tour-booking__head span,
.tc-tour-booking__head small {
	color: var(--tc-tour-muted);
	font-size: 12px;
	font-weight: 650;
}

.tc-tour-booking__head strong {
	color: var(--tc-tour-navy);
	font-size: 34px;
	font-weight: 800;
	line-height: 1;
	letter-spacing: -.035em;
}

.tc-tour-booking__inner > h2 {
	margin: 0 0 8px;
	color: var(--tc-tour-navy-deep);
	font-size: 22px;
	font-weight: 800;
	line-height: 1.25;
}

.tc-tour-booking__inner > p {
	margin: 0 0 22px;
	color: var(--tc-tour-muted);
	font-size: 13px;
	line-height: 1.6;
}

.tc-tour-native-form,
.tc-tour-native-form .owner-info,
.tc-tour-native-form .media,
.tc-tour-native-form .form-st-send-mail,
.tc-tour-native-form .st_send-mail-form,
.tc-tour-native-form .form-wrapper {
	position: relative;
	display: block;
	width: 100%;
	margin: 0;
}

.tc-tour-native-form .form-wrapper > .row {
	display: block;
	margin: 0;
}

.tc-tour-native-form .form-wrapper > .row > [class*="col-"] {
	float: none;
	width: 100%;
	padding: 0;
}

.tc-tour-native-form .form-group {
	margin: 0 0 13px;
}

.tc-tour-native-form .form-control {
	display: block;
	width: 100%;
	height: 49px;
	margin: 0;
	padding: 11px 14px;
	border: 1px solid var(--tc-tour-control-line);
	border-radius: 12px;
	background: #fff;
	color: var(--tc-tour-ink);
	box-shadow: none;
	font-family: inherit;
	font-size: 13px;
	line-height: 1.4;
	transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}

.tc-tour-native-form textarea.form-control {
	height: auto;
	min-height: 92px;
	resize: vertical;
}

.tc-tour-native-form .form-control:focus {
	border-color: var(--tc-tour-cyan);
	background: #fff;
	box-shadow: 0 0 0 3px rgba(54, 153, 185, .16);
	outline: 0;
}

.tc-tour-native-form .form-control::placeholder {
	color: #7d909e;
	opacity: 1;
}

.tc-tour-native-form .text-center {
	text-align: initial !important;
}

.tc-tour-native-form #submit.sent-email-st,
.tc-tour-native-form .sent-email-st {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 53px;
	margin: 2px 0 0;
	padding: 13px 18px;
	border: 0;
	border-radius: 999px;
	background: var(--tc-tour-navy);
	color: #fff;
	cursor: pointer;
	font-family: inherit;
	font-size: 13px;
	font-weight: 800;
	line-height: 1.2;
	text-transform: none;
	transition: background .2s ease, transform .2s ease;
}

.tc-tour-native-form #submit.sent-email-st:hover,
.tc-tour-native-form .sent-email-st:hover {
	background: #075180;
	color: #fff;
	transform: translateY(-1px);
}

.tc-tour-native-form .loader-wrapper {
	border-radius: 16px;
	background: rgba(255, 255, 255, .84);
	backdrop-filter: blur(3px);
}

.tc-tour-native-form .message-wrapper-sendemail {
	margin-top: 10px;
	font-size: 12px;
	font-weight: 650;
	line-height: 1.5;
}

.tc-tour-native-form .message-wrapper-sendemail:empty {
	display: none;
}

.tc-tour-native-form .alert {
	margin: 12px 0 0;
	padding: 11px 13px;
	border-radius: 10px;
	font-size: 12px;
}

/* Reserva inmediata: conserva el flujo nativo de Traveler dentro del nuevo card. */
.tc-tour-native-booking,
.tc-tour-native-booking .tour-booking-form {
	position: relative;
	width: 100%;
	margin: 0;
}

.tc-tour-native-booking .tour-booking-form > .form-group {
	position: relative;
	margin: 0 0 12px;
	border: 1px solid var(--tc-tour-control-line);
	border-radius: 14px;
	background: #fff;
	transition: border-color .2s ease, box-shadow .2s ease, background-color .2s ease;
}

.tc-tour-native-booking .tour-booking-form > .form-group:focus-within {
	border-color: var(--tc-tour-cyan);
	background: #fff;
	box-shadow: 0 0 0 3px rgba(54, 153, 185, .14);
}

.tc-tour-native-booking .form-date-field {
	min-height: 66px;
	overflow: visible;
}

.tc-tour-native-booking .date-wrapper,
.tc-tour-native-booking .tc-tour-booking-select {
	position: relative;
	display: grid;
	grid-template-columns: 34px minmax(0, 1fr) 18px;
	align-items: center;
	gap: 10px;
	min-height: 64px;
	padding: 10px 15px 10px 12px;
	cursor: pointer;
}

.tc-tour-native-booking .date-wrapper::before,
.tc-tour-native-booking .date-wrapper::after {
	display: none;
	content: none;
}

.tc-tour-native-booking .tc-tour-booking-field__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	border-radius: 10px;
	background: rgba(54, 153, 185, .1);
	color: var(--tc-tour-cyan);
	font-size: 14px;
}

.tc-tour-native-booking .check-in-wrapper {
	float: none;
	width: 100%;
	min-width: 0;
}

.tc-tour-native-booking .check-in-wrapper label,
.tc-tour-native-booking #starttime_box > label {
	display: block;
	margin: 0 0 3px;
	color: var(--tc-tour-muted);
	font-family: inherit;
	font-size: 10px;
	font-weight: 800;
	line-height: 1.2;
	letter-spacing: .075em;
	text-transform: uppercase;
}

.tc-tour-native-booking .check-in-wrapper .render,
.tc-tour-native-booking .sts-tour-checkout-label {
	display: inline;
	color: var(--tc-tour-navy-deep);
	font-size: 13px;
	font-weight: 750;
	line-height: 1.35;
}

.tc-tour-native-booking .date-wrapper > .arrow,
.tc-tour-native-booking .tc-tour-booking-select > .arrow {
	color: #7a8c98;
	font-size: 14px;
	text-align: right;
}

.tc-tour-native-booking .form-date-search .check-in-input {
	position: absolute;
	z-index: -1;
	bottom: 0;
	left: 0;
	width: 100%;
	opacity: 0;
	pointer-events: none;
}

.tc-tour-native-booking .form-date-search .check-in-out-input {
	position: absolute;
	z-index: 2;
	inset: 0;
	width: 100%;
	height: 100%;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: inherit;
	background: transparent;
	color: transparent;
	cursor: pointer;
	caret-color: transparent;
	opacity: .01;
}

.tc-tour-native-booking .form-date-search .check-in-out-input:focus-visible {
	opacity: 1;
	outline: 3px solid rgba(54, 153, 185, .34);
	outline-offset: 2px;
}

.tc-tour-native-booking .st-form-starttime {
	padding: 10px 12px 12px;
}

.tc-tour-native-booking #starttime_box > label {
	margin: 0 0 7px 3px;
}

.tc-tour-native-booking .tc-tour-booking-select {
	min-height: 52px;
	padding: 0 3px 0 0;
}

.tc-tour-native-booking .tc-tour-booking-select .form-control {
	position: relative;
	z-index: 1;
	width: 100%;
	height: 48px;
	margin: 0;
	padding: 0 28px 0 0;
	border: 0;
	background: transparent;
	color: var(--tc-tour-navy-deep);
	box-shadow: none;
	font-family: inherit;
	font-size: 13px;
	font-weight: 750;
	line-height: 1.35;
	appearance: none;
}

.tc-tour-native-booking .tc-tour-booking-select .form-control:focus {
	outline: 0;
}

.tc-tour-native-booking .tc-tour-booking-select > .arrow {
	position: absolute;
	z-index: 0;
	right: 3px;
}

.tc-tour-native-booking .form-guest-search {
	padding: 0;
	overflow: hidden;
}

.tc-tour-native-booking .guest-wrapper {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	min-height: 68px;
	padding: 11px 13px 11px 15px;
}

.tc-tour-native-booking .guest-wrapper + .guest-wrapper {
	border-top: 1px solid #dbe7ec;
}

.tc-tour-native-booking .guest-wrapper .check-in-wrapper label {
	margin-bottom: 4px;
	color: var(--tc-tour-navy-deep);
	font-size: 12px;
	letter-spacing: 0;
	text-transform: none;
}

.tc-tour-native-booking .guest-wrapper .check-in-wrapper {
	flex: 1;
	width: auto;
}

.tc-tour-native-booking .guest-wrapper .check-in-wrapper .render {
	color: var(--tc-tour-muted);
	font-size: 11px;
	font-weight: 550;
}

.tc-tour-native-booking .select-wrapper,
.tc-tour-native-booking .st-number-wrapper {
	display: flex;
	align-items: center;
}

.tc-tour-native-booking .st-number-wrapper {
	gap: 5px;
}

.tc-tour-native-booking .st-number-wrapper span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	float: none;
	width: 38px;
	height: 38px;
	border: 1px solid #c9dce4;
	border-radius: 11px;
	background: #fff;
	color: var(--tc-tour-navy);
	cursor: pointer;
	transition: border-color .2s ease, background-color .2s ease;
}

.tc-tour-native-booking .st-number-wrapper span:hover,
.tc-tour-native-booking .st-number-wrapper span:focus-visible {
	border-color: var(--tc-tour-cyan);
	background: rgba(54, 153, 185, .08);
	outline: 0;
}

.tc-tour-native-booking .st-number-wrapper span svg {
	width: 14px;
	height: 14px;
}

.tc-tour-native-booking .st-number-wrapper input.form-control {
	float: none;
	width: 28px !important;
	height: 38px;
	margin: 0 !important;
	padding: 0;
	border: 0;
	background: transparent !important;
	color: var(--tc-tour-navy-deep);
	box-shadow: none;
	font-family: inherit;
	font-size: 14px !important;
	font-weight: 800;
	text-align: center;
}

.tc-tour-native-booking .st-form-package,
.tc-tour-native-booking .form-more-extra:not(.st-form-starttime) {
	padding: 14px;
}

.tc-tour-native-booking .form-more-extra .dropdown {
	display: flex;
	align-items: center;
	justify-content: space-between;
	color: var(--tc-tour-navy-deep);
	font-size: 12px;
	font-weight: 750;
}

.tc-tour-native-booking .extras {
	margin: 12px 0 0;
	padding: 12px 0 0;
	border-top: 1px solid #dbe7ec;
	list-style: none;
}

.tc-tour-native-booking .submit-group {
	margin-top: 4px;
}

.tc-tour-native-booking .btn-book-ajax,
.tc-tour-native-booking .tc-tour-external-booking .btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	width: 100%;
	min-height: 54px;
	margin: 0;
	padding: 14px 20px;
	border: 0;
	border-radius: 999px;
	background: var(--tc-tour-navy);
	color: #fff;
	box-shadow: 0 12px 24px rgba(1, 52, 96, .18);
	cursor: pointer;
	font-family: inherit;
	font-size: 13px;
	font-weight: 800;
	line-height: 1.2;
	text-transform: none;
	transition: background-color .2s ease, box-shadow .2s ease;
}

.tc-tour-native-booking .btn-book-ajax:hover,
.tc-tour-native-booking .btn-book-ajax:focus-visible,
.tc-tour-native-booking .tc-tour-external-booking .btn:hover,
.tc-tour-native-booking .tc-tour-external-booking .btn:focus-visible {
	background: #075180;
	color: #fff;
	box-shadow: 0 14px 28px rgba(1, 52, 96, .24);
	outline: 0;
}

.tc-tour-native-booking .btn-book-ajax > .fa-arrow-right {
	transition: transform .2s ease;
}

.tc-tour-native-booking .btn-book-ajax:hover > .fa-arrow-right {
	transform: translateX(3px);
}

.tc-tour-native-booking .btn-book-ajax .fa-spinner.hide,
.tc-tour-native-booking .btn-book-ajax .fa-spinner:not(.d-block) {
	display: none;
}

.tc-tour-native-booking .message-wrapper {
	margin: 12px 0 0;
	font-size: 12px;
	line-height: 1.5;
}

.tc-tour-native-booking .message-wrapper:empty {
	display: none;
}

.tc-tour-native-booking .message-wrapper .alert {
	margin: 0;
	padding: 11px 13px;
	border-radius: 10px;
}

.tc-tour-native-booking .guest_name_input:not(.hidden) {
	display: block;
	margin: 0 0 12px;
	padding: 14px;
	border: 1px solid var(--tc-tour-control-line);
	border-radius: 14px;
	background: #fff;
}

.tc-tour-native-booking .guest_name_input .control-item {
	display: grid;
	grid-template-columns: 88px 1fr;
	gap: 8px;
	margin-top: 8px;
}

.tc-tour-native-booking .guest_name_input .form-control {
	height: 44px;
	border: 1px solid var(--tc-tour-control-line);
	border-radius: 10px;
	background: #fff;
	box-shadow: none;
}

@media (prefers-reduced-motion: reduce) {
	.tc-tour-native-booking *,
	.tc-tour-native-booking *::before,
	.tc-tour-native-booking *::after {
		scroll-behavior: auto !important;
		transition-duration: .01ms !important;
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
	}
}

.tc-tour-booking__or {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 20px 0 14px;
	color: #81939f;
	font-size: 10px;
	font-weight: 700;
	text-transform: uppercase;
}

.tc-tour-booking__or::before,
.tc-tour-booking__or::after {
	content: "";
	flex: 1;
	height: 1px;
	background: var(--tc-tour-line);
}

.tc-tour-booking__or span {
	white-space: nowrap;
}

.tc-tour-whatsapp {
	display: flex;
	align-items: center;
	gap: 12px;
	min-height: 58px;
	padding: 10px 14px;
	border: 1px solid #bfe6cd;
	border-radius: 15px;
	background: #f0faf4;
	color: #16673c;
	transition: border-color .2s ease, background .2s ease;
}

.tc-tour-whatsapp:hover {
	border-color: #78ca96;
	background: #e5f7ec;
	color: #125b34;
}

.tc-tour-whatsapp > i {
	font-size: 28px;
}

.tc-tour-whatsapp span {
	display: flex;
	flex-direction: column;
	gap: 1px;
}

.tc-tour-whatsapp strong {
	font-size: 13px;
	font-weight: 800;
}

.tc-tour-whatsapp small {
	color: #618b70;
	font-size: 10px;
}

.tc-tour-booking__trust {
	display: grid;
	gap: 9px;
	margin-top: 19px;
	padding-top: 18px;
	border-top: 1px solid var(--tc-tour-line);
}

.tc-tour-booking__trust li {
	display: flex;
	align-items: center;
	gap: 9px;
	color: var(--tc-tour-muted);
	font-size: 11px;
	font-weight: 650;
}

.tc-tour-booking__trust i {
	width: 15px;
	color: var(--tc-tour-cyan);
	font-size: 13px;
	text-align: center;
}

.tc-tour-related {
	padding: 105px 0 118px;
	background:
		radial-gradient(circle at 10% 10%, rgba(54, 153, 185, .13), transparent 30%),
		linear-gradient(180deg, #f6fbfd 0%, #eef7fa 100%);
}

.tc-tour-related__heading {
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 30px;
	margin-bottom: 40px;
}

.tc-tour-related__heading .sub-title {
	color: var(--tc-tour-cyan);
}

.tc-tour-related__heading .sec-title {
	max-width: 720px;
	margin-bottom: 0;
}

.tc-tour-related__heading > a {
	flex: 0 0 auto;
}

.tc-tour-related__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 26px;
}

.tc-tour-related__grid .tc-tour-card {
	height: 100%;
}

.tc-tour-mobile-bar {
	display: none;
}

.tc-single-tour :is(a, button, input, textarea, summary):focus-visible {
	outline: 3px solid rgba(54, 153, 185, .48);
	outline-offset: 3px;
}

@media (max-width: 1199px) {
	.tc-tour-layout {
		grid-template-columns: minmax(0, 1fr) 350px;
		gap: 34px;
	}

	.tc-tour-facts {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.tc-tour-fact:nth-child(2n)::after {
		display: none;
	}

	.tc-tour-fact:nth-child(-n + 2) {
		border-bottom: 1px solid rgba(255, 255, 255, .16);
	}

	.tc-tour-location {
		grid-template-columns: 55px minmax(0, 1fr);
	}

	.tc-tour-location > a {
		grid-column: 2;
		justify-self: start;
	}
}

@media (max-width: 991px) {
	.single-st_tours {
		padding-bottom: 78px;
	}

	.tc-tour-hero {
		min-height: 570px;
	}

	.tc-tour-hero > .container {
		padding-top: 118px;
		padding-bottom: 85px;
	}

	.tc-tour-gallery__grid {
		grid-template-rows: repeat(2, 160px);
	}

	.tc-tour-layout {
		grid-template-columns: 1fr;
		gap: 64px;
	}

	.tc-tour-booking {
		position: static;
		max-width: 620px;
	}

	.tc-tour-booking__inner {
		padding: 34px;
	}

	.tc-tour-related__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.tc-tour-mobile-bar {
		position: fixed;
		z-index: 9998;
		right: 0;
		bottom: 0;
		left: 0;
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 18px;
		min-height: 72px;
		padding: 9px 18px calc(9px + env(safe-area-inset-bottom));
		border-top: 1px solid var(--tc-tour-line);
		background: rgba(255, 255, 255, .96);
		box-shadow: 0 -8px 28px rgba(1, 52, 96, .12);
		backdrop-filter: blur(12px);
	}

	.tc-tour-mobile-bar > div {
		display: flex;
		flex-direction: column;
	}

	.tc-tour-mobile-bar small {
		color: var(--tc-tour-muted);
		font-size: 10px;
		font-weight: 700;
	}

	.tc-tour-mobile-bar strong {
		color: var(--tc-tour-navy);
		font-size: 20px;
		font-weight: 800;
	}

	.tc-tour-mobile-bar a {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		gap: 8px;
		min-height: 48px;
		padding: 11px 21px;
		border-radius: 999px;
		background: #18864b;
		color: #fff;
		font-size: 13px;
		font-weight: 800;
	}
}

@media (max-width: 767px) {
	.tc-tour-hero {
		min-height: 540px;
		background-image:
			linear-gradient(90deg, rgba(2, 32, 56, .94) 0%, rgba(2, 32, 56, .68) 100%),
			var(--tc-tour-hero-image);
	}

	.tc-tour-hero > .container {
		padding-top: 108px;
		padding-bottom: 70px;
	}

	.tc-tour-breadcrumb {
		margin-bottom: 34px;
	}

	.tc-tour-breadcrumb span {
		display: none;
	}

	.tc-tour-hero h1 {
		max-width: 18ch;
		font-size: clamp(36px, 10.5vw, 48px);
		line-height: 1.08;
	}

	.tc-tour-hero__actions .th-btn {
		width: 100%;
	}

	.tc-tour-gallery {
		margin-top: -30px;
	}

	.tc-tour-gallery__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		grid-template-rows: 230px 130px 130px;
		gap: 7px;
		padding: 7px;
		border-radius: 21px;
	}

	.tc-tour-gallery__item--main {
		grid-column: 1 / -1;
		grid-row: auto;
	}

	.tc-tour-gallery__grid--1 {
		grid-template-columns: 1fr;
		grid-template-rows: 270px;
	}

	.tc-tour-gallery__item {
		border-radius: 14px;
	}

	.tc-tour-main {
		padding: 62px 0 80px;
	}

	.tc-tour-facts {
		gap: 0;
	}

	.tc-tour-fact {
		align-items: center;
		min-height: 92px;
		padding: 16px;
	}

	.tc-tour-fact > span {
		flex-basis: 42px;
		width: 42px;
		height: 42px;
		font-size: 17px;
	}

	.tc-tour-section {
		padding-bottom: 58px;
	}

	.tc-tour-section + .tc-tour-section,
	.tc-tour-location + .tc-tour-section {
		padding-top: 56px;
	}

	.tc-tour-section__eyebrow {
		font-size: 23px;
	}

	.tc-tour-section > h2 {
		font-size: 30px;
	}

	.tc-tour-highlights ul,
	.tc-tour-inclusions {
		grid-template-columns: 1fr;
	}

	.tc-tour-location {
		grid-template-columns: 48px minmax(0, 1fr);
		gap: 15px;
		padding: 21px;
		border-radius: 20px;
	}

	.tc-tour-location__icon {
		width: 48px;
		height: 48px;
		border-radius: 14px;
		font-size: 20px;
	}

	.tc-tour-location h2 {
		font-size: 19px;
	}

	.tc-tour-location > a {
		grid-column: 1 / -1;
		justify-self: stretch;
	}

	.tc-tour-booking__inner {
		padding: 26px 20px;
		border-radius: 21px;
	}

	.tc-tour-related {
		padding: 78px 0 92px;
	}

	.tc-tour-related__heading {
		align-items: flex-start;
		flex-direction: column;
		margin-bottom: 32px;
	}

	.tc-tour-related__grid {
		grid-template-columns: 1fr;
		gap: 20px;
	}
}

@media (max-width: 430px) {
	.tc-tour-pill--light {
		display: none;
	}

	.tc-tour-hero__meta {
		align-items: flex-start;
		flex-direction: column;
	}

	.tc-tour-gallery__grid {
		grid-template-rows: 210px 112px 112px;
	}

	.tc-tour-facts {
		grid-template-columns: 1fr;
		margin-bottom: 44px;
		padding: 7px 14px;
		border-radius: 20px;
	}

	.tc-tour-fact {
		align-items: center;
		min-height: 78px;
		padding: 14px 4px;
		border-bottom: 1px solid rgba(255, 255, 255, .16);
	}

	.tc-tour-fact:last-child {
		border-bottom: 0;
	}

	.tc-tour-fact::after {
		display: none;
	}

	.tc-tour-mobile-bar {
		padding-inline: 12px;
	}

	.tc-tour-mobile-bar a {
		padding-inline: 17px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.tc-single-tour *,
	.tc-single-tour *::before,
	.tc-single-tour *::after {
		scroll-behavior: auto !important;
		transition-duration: .01ms !important;
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
	}
}

/* --------------------------------------------------------------------------
   WhatsApp flotante global
   -------------------------------------------------------------------------- */
.tc-whatsapp-float {
	position: fixed;
	z-index: 9997;
	right: max(18px, env(safe-area-inset-right));
	bottom: max(96px, calc(92px + env(safe-area-inset-bottom)));
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-width: 56px;
	min-height: 56px;
	padding: 12px 19px;
	border: 2px solid rgba(255, 255, 255, .9);
	border-radius: 999px;
	background: #18864b;
	box-shadow: 0 10px 28px rgba(0, 50, 27, .28);
	color: #fff !important;
	font-family: "Manrope", sans-serif;
	font-size: 14px;
	font-weight: 800;
	line-height: 1;
	text-decoration: none !important;
	transition: background-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.tc-whatsapp-float:hover {
	background: #126f3d;
	box-shadow: 0 13px 32px rgba(0, 50, 27, .34);
	color: #fff !important;
	transform: translateY(-2px);
}

.tc-whatsapp-float:focus-visible {
	outline: 3px solid #1a9dca;
	outline-offset: 4px;
}

.tc-whatsapp-float__icon {
	flex: 0 0 auto;
	width: 28px;
	height: 28px;
}

@media (max-width: 575px) {
	.tc-whatsapp-float {
		right: max(14px, env(safe-area-inset-right));
		bottom: max(92px, calc(88px + env(safe-area-inset-bottom)));
		width: 58px;
		height: 58px;
		padding: 0;
	}

	.tc-whatsapp-float__label {
		position: absolute;
		width: 1px;
		height: 1px;
		padding: 0;
		margin: -1px;
		overflow: hidden;
		clip: rect(0, 0, 0, 0);
		white-space: nowrap;
		border: 0;
	}
}

@media (max-width: 991px) {
	.single-st_tours .tc-whatsapp-float {
		bottom: calc(88px + env(safe-area-inset-bottom));
	}
}

@media (prefers-reduced-motion: reduce) {
	.tc-whatsapp-float {
		transition: none;
	}

	.tc-whatsapp-float:hover {
		transform: none;
	}
}

/* --------------------------------------------------------------------------
	Single tour · cabecera editorial y galería sincronizada (v2)
   -------------------------------------------------------------------------- */
body.single-st_tours.tc-home-tourm .th-header.header-layout1 .sticky-wrapper {
	position: relative;
	z-index: 42;
	border-bottom: 1px solid #c9dbe3;
	background: #fff;
	box-shadow: 0 8px 24px rgba(1, 52, 96, .08);
}

body.single-st_tours.tc-home-tourm .th-header.header-layout1 .sticky-wrapper .menu-area {
	background: #fff;
}

body.single-st_tours.tc-home-tourm .th-header.sticky-active .sticky-wrapper {
	position: fixed;
	box-shadow: 0 10px 30px rgba(1, 52, 96, .13);
}

.tc-single-tour .tc-tour-hero {
	display: block;
	min-height: 0;
	background: #fff !important;
	color: var(--tc-tour-ink);
}

.tc-single-tour .tc-tour-hero::after {
	display: none;
}

.tc-single-tour .tc-tour-hero > .container {
	padding-top: 52px;
	padding-bottom: 38px;
}

.tc-single-tour .tc-tour-breadcrumb {
	gap: 9px;
	margin: 0 0 22px;
	color: var(--tc-tour-muted);
	font-size: 12px;
}

.tc-single-tour .tc-tour-breadcrumb a {
	color: var(--tc-tour-navy);
	font-weight: 750;
}

.tc-single-tour .tc-tour-breadcrumb a:hover,
.tc-single-tour .tc-tour-breadcrumb a:focus-visible {
	color: var(--tc-tour-cyan);
}

.tc-single-tour .tc-tour-breadcrumb i {
	color: #9aadba;
}

.tc-single-tour .tc-tour-breadcrumb span {
	max-width: 52ch;
}

.tc-single-tour .tc-tour-hero__content {
	max-width: none;
}

.tc-single-tour .tc-tour-hero h1 {
	max-width: 23ch;
	margin: 0 0 20px;
	color: var(--tc-tour-navy-deep);
	font-size: clamp(38px, 4vw, 58px);
	font-weight: 800;
	line-height: 1.08;
	letter-spacing: -.042em;
}

.tc-single-tour .tc-tour-hero__badges {
	gap: 8px;
	margin: 0 0 22px;
}

.tc-single-tour .tc-tour-pill {
	min-height: 36px;
	padding: 8px 13px;
	border: 1px solid #d9e5ea;
	border-radius: 999px;
	background: #fff;
	color: #4f6070;
	box-shadow: 0 5px 16px rgba(1, 52, 96, .04);
	font-size: 12px;
	font-weight: 650;
	letter-spacing: 0;
	backdrop-filter: none;
}

.tc-single-tour .tc-tour-pill i {
	color: var(--tc-tour-cyan);
	font-size: 13px;
}

.tc-single-tour .tc-tour-hero__row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
}

.tc-single-tour .tc-tour-hero__meta {
	gap: 12px 24px;
	margin: 0;
	color: #4f6070;
	font-size: 13px;
	font-weight: 650;
}

.tc-single-tour .tc-tour-hero__meta i {
	color: var(--tc-tour-orange);
}

.tc-single-tour .tc-tour-hero__meta .fa-star {
	color: #f4a340;
}

.tc-single-tour .tc-tour-hero__meta small {
	color: var(--tc-tour-muted);
	opacity: 1;
}

.tc-single-tour .tc-tour-hero__actions {
	position: relative;
	flex: 0 0 auto;
	gap: 10px;
}

.tc-single-tour .tc-tour-share,
.tc-single-tour .tc-tour-hero .tc-tour-primary-cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 9px;
	min-height: 46px;
	padding: 11px 17px;
	border: 1px solid #d5e2e8;
	border-radius: 999px;
	background: #fff;
	color: var(--tc-tour-navy-deep);
	cursor: pointer;
	font-family: inherit;
	font-size: 12px;
	font-weight: 750;
	line-height: 1;
	transition: border-color .2s ease, background-color .2s ease, color .2s ease, box-shadow .2s ease;
}

.tc-single-tour .tc-tour-share:hover,
.tc-single-tour .tc-tour-share:focus-visible {
	border-color: var(--tc-tour-cyan);
	background: rgba(54, 153, 185, .07);
	color: var(--tc-tour-navy);
	outline: 0;
}

.tc-single-tour .tc-tour-hero .tc-tour-primary-cta {
	border-color: var(--tc-tour-navy);
	background: var(--tc-tour-navy) !important;
	color: #fff !important;
	box-shadow: 0 10px 24px rgba(1, 52, 96, .15);
}

.tc-single-tour .tc-tour-hero .tc-tour-primary-cta:hover,
.tc-single-tour .tc-tour-hero .tc-tour-primary-cta:focus-visible {
	border-color: #075180;
	background: #075180 !important;
	box-shadow: 0 12px 28px rgba(1, 52, 96, .22);
	outline: 0;
}

.tc-tour-share-status {
	position: absolute;
	top: calc(100% + 7px);
	right: 0;
	color: var(--tc-tour-muted);
	font-size: 11px;
	font-weight: 650;
	white-space: nowrap;
}

.tc-single-tour .tc-tour-gallery {
	position: relative;
	z-index: 1;
	margin: 38px 0 0;
}

.tc-tour-gallery__media {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 188px;
	gap: 12px;
	height: clamp(480px, 46vw, 630px);
}

.tc-tour-gallery.is-single .tc-tour-gallery__media {
	grid-template-columns: 1fr;
}

.tc-tour-gallery__main,
.tc-tour-gallery__thumbs {
	width: 100%;
	height: 100%;
	min-width: 0;
	border-radius: 24px;
}

.tc-tour-gallery__main {
	background: #eaf3f6;
	box-shadow: 0 18px 46px rgba(1, 52, 96, .11);
}

.tc-tour-gallery__main .swiper-wrapper,
.tc-tour-gallery__main .swiper-slide,
.tc-tour-gallery__item {
	height: 100%;
}

.tc-tour-gallery__item {
	display: block;
	border-radius: 24px;
	background: #eaf3f6;
	overflow: hidden;
}

.tc-tour-gallery__item::after {
	display: none;
}

.tc-tour-gallery__item img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .55s ease;
}

.tc-tour-gallery__item:hover img {
	transform: scale(1.018);
}

.tc-tour-gallery__thumbs {
	border-radius: 20px;
}

.tc-tour-gallery__thumb {
	position: relative;
	display: block;
	width: 100%;
	margin: 0;
	padding: 0;
	border: 2px solid transparent;
	border-radius: 17px;
	background: #eaf3f6;
	cursor: pointer;
	overflow: hidden;
	opacity: .72;
	transition: opacity .2s ease, box-shadow .2s ease;
}

.tc-tour-gallery__thumb img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.tc-tour-gallery__thumb:hover {
	border-color: transparent;
	opacity: 1;
	outline: 0;
}

.tc-tour-gallery__thumb.swiper-slide-thumb-active {
	border-color: transparent;
	opacity: 1;
	box-shadow: inset 0 0 0 2px rgba(255, 255, 255, .88);
}

.tc-tour-gallery__thumb:focus-visible {
	border-color: transparent;
	opacity: 1;
	outline: 3px solid rgba(54, 153, 185, .58);
	outline-offset: 3px;
}

.tc-tour-gallery__nav {
	position: absolute;
	z-index: 5;
	top: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 50px;
	height: 50px;
	margin: 0;
	padding: 0;
	border: 1px solid rgba(255, 255, 255, .72);
	border-radius: 50%;
	background: rgba(255, 255, 255, .94);
	color: var(--tc-tour-navy-deep);
	box-shadow: 0 9px 24px rgba(1, 52, 96, .16);
	cursor: pointer;
	transform: translateY(-50%);
	transition: background-color .2s ease, color .2s ease, box-shadow .2s ease;
}

.tc-tour-gallery__prev {
	left: 22px;
}

.tc-tour-gallery__next {
	right: 22px;
}

.tc-tour-gallery__nav:hover,
.tc-tour-gallery__nav:focus-visible {
	background: var(--tc-tour-navy);
	color: #fff;
	box-shadow: 0 12px 28px rgba(1, 52, 96, .25);
	outline: 0;
}

.tc-tour-gallery__controls {
	position: absolute;
	z-index: 6;
	right: 18px;
	bottom: 18px;
	left: 18px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	pointer-events: none;
}

.tc-tour-gallery__toggle,
.tc-tour-gallery__all {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 42px;
	padding: 10px 13px;
	border: 1px solid rgba(255, 255, 255, .24);
	border-radius: 999px;
	background: rgba(2, 38, 65, .84);
	color: #fff;
	backdrop-filter: blur(10px);
	cursor: pointer;
	font-family: inherit;
	font-size: 11px;
	font-weight: 750;
	pointer-events: auto;
	transition: background-color .2s ease, border-color .2s ease;
}

.tc-tour-gallery__toggle:hover,
.tc-tour-gallery__toggle:focus-visible,
.tc-tour-gallery__all:hover,
.tc-tour-gallery__all:focus-visible {
	border-color: rgba(255, 255, 255, .72);
	background: rgba(2, 38, 65, .96);
	outline: 2px solid rgba(255, 255, 255, .9);
	outline-offset: 2px;
}

.tc-tour-gallery__pagination {
	position: absolute;
	z-index: 5;
	right: auto !important;
	bottom: 24px !important;
	left: 50% !important;
	display: none;
	width: auto !important;
	transform: translateX(-50%);
}

.tc-tour-gallery__pagination .swiper-pagination-bullet {
	width: 7px;
	height: 7px;
	background: #fff;
	opacity: .6;
}

.tc-tour-gallery__pagination .swiper-pagination-bullet-active {
	width: 20px;
	border-radius: 99px;
	opacity: 1;
}

.tc-single-tour .tc-tour-main {
	padding-top: 62px;
}

@media (max-width: 1199px) {
	.tc-tour-gallery__media {
		grid-template-columns: minmax(0, 1fr) 158px;
		height: clamp(440px, 52vw, 560px);
	}
}

@media (max-width: 991px) {
	.tc-single-tour .tc-tour-hero > .container {
		padding-top: 44px;
		padding-bottom: 32px;
	}

	.tc-single-tour .tc-tour-hero h1 {
		font-size: clamp(36px, 5.8vw, 50px);
	}

	.tc-single-tour .tc-tour-hero__row {
		align-items: flex-start;
		flex-direction: column;
		gap: 20px;
	}

	.tc-tour-gallery__media {
		grid-template-columns: minmax(0, 1fr) 132px;
		height: clamp(400px, 58vw, 500px);
	}
}

@media (max-width: 767px) {
	.tc-single-tour .tc-tour-hero {
		min-height: 0;
		background: #fff !important;
	}

	.tc-single-tour .tc-tour-hero > .container {
		padding-top: 30px;
		padding-bottom: 26px;
	}

	.tc-single-tour .tc-tour-breadcrumb {
		margin-bottom: 18px;
	}

	.tc-single-tour .tc-tour-breadcrumb span {
		display: none;
	}

	.tc-single-tour .tc-tour-hero h1 {
		max-width: 20ch;
		margin-bottom: 17px;
		font-size: clamp(32px, 9vw, 42px);
		line-height: 1.1;
	}

	.tc-single-tour .tc-tour-hero__badges {
		gap: 7px;
		margin-bottom: 18px;
	}

	.tc-single-tour .tc-tour-pill {
		min-height: 34px;
		padding: 7px 11px;
		font-size: 11px;
	}

	.tc-single-tour .tc-tour-hero__meta {
		align-items: flex-start;
		flex-direction: column;
		gap: 9px;
	}

	.tc-single-tour .tc-tour-hero__actions {
		width: 100%;
	}

	.tc-single-tour .tc-tour-share,
	.tc-single-tour .tc-tour-hero .tc-tour-primary-cta {
		flex: 1 1 auto;
		min-height: 48px;
	}

	.tc-single-tour .tc-tour-gallery {
		margin-top: 28px;
	}

	.tc-tour-gallery__media {
		display: block;
		height: auto;
	}

	.tc-tour-gallery__main,
	.tc-tour-gallery__item {
		border-radius: 19px;
	}

	.tc-tour-gallery__main {
		width: 100%;
		height: auto;
		aspect-ratio: 4 / 3;
	}

	.tc-tour-gallery__thumbs {
		display: none;
	}

	.tc-tour-gallery__nav {
		width: 44px;
		height: 44px;
	}

	.tc-tour-gallery__prev {
		left: 12px;
	}

	.tc-tour-gallery__next {
		right: 12px;
	}

	.tc-tour-gallery__controls {
		right: 12px;
		bottom: 12px;
		left: 12px;
	}

	.tc-tour-gallery__toggle,
	.tc-tour-gallery__all {
		min-height: 44px;
		padding: 9px 11px;
	}

	.tc-single-tour .tc-tour-main {
		padding-top: 48px;
	}
}

@media (max-width: 430px) {
	.tc-single-tour .tc-tour-hero__actions {
		align-items: stretch;
		flex-direction: column;
	}

	.tc-single-tour .tc-tour-share-status {
		position: static;
		width: 100%;
		text-align: center;
	}

	.tc-tour-gallery__toggle span {
		display: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	.tc-tour-gallery__item img {
		transition: none;
	}

	.tc-tour-gallery__item:hover img {
		transform: none;
	}
}

/* ========================================================================== 
   Carrito, checkout y contacto · flujo de conversión 40 Millas
   ========================================================================== */
body:is(.woocommerce-cart, .page-template-template-checkout, .page-id-313).tc-home-tourm .th-header.header-layout1 .sticky-wrapper {
	border-bottom: 1px solid #c9dbe3;
	background: #fff;
	box-shadow: 0 8px 24px rgba(1, 52, 96, .08);
}

.tc-commerce-page,
.tc-contact-page {
	--tc-flow-navy: #013460;
	--tc-flow-navy-deep: #062641;
	--tc-flow-cyan: #3699b9;
	--tc-flow-orange: #e1764e;
	--tc-flow-ink: #183247;
	--tc-flow-muted: #607687;
	--tc-flow-line: #d5e4ea;
	background: #fff;
	color: var(--tc-flow-ink);
	font-family: "Manrope", sans-serif;
}

.tc-commerce-page *,
.tc-commerce-page *::before,
.tc-commerce-page *::after,
.tc-contact-page *,
.tc-contact-page *::before,
.tc-contact-page *::after {
	box-sizing: border-box;
}

.tc-commerce-hero {
	padding: 58px 0 48px;
	border-bottom: 1px solid var(--tc-flow-line);
	background: #fff;
}

.tc-commerce-eyebrow {
	display: block;
	margin-bottom: 8px;
	color: var(--tc-flow-cyan);
	font-family: "Dancing Script", sans-serif;
	font-size: 28px;
	font-weight: 650;
	line-height: 1.1;
}

.tc-commerce-hero h1,
.tc-contact-hero h1 {
	max-width: 18ch;
	margin: 0;
	color: var(--tc-flow-navy-deep);
	font-size: clamp(40px, 4.6vw, 62px);
	font-weight: 800;
	letter-spacing: -.045em;
	line-height: 1.07;
	text-wrap: balance;
}

.tc-commerce-hero > .container > p {
	max-width: 66ch;
	margin: 15px 0 0;
	color: var(--tc-flow-muted);
	font-size: 16px;
	line-height: 1.7;
}

.tc-booking-steps {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	max-width: 820px;
	margin: 34px 0 0;
	padding: 0;
	border: 1px solid var(--tc-flow-line);
	border-radius: 20px;
	background: #fff;
	box-shadow: 0 12px 32px rgba(1, 52, 96, .06);
	list-style: none;
	overflow: hidden;
}

.tc-booking-steps li {
	position: relative;
	display: flex;
	align-items: center;
	gap: 12px;
	min-width: 0;
	padding: 15px 18px;
}

.tc-booking-steps li + li {
	border-left: 1px solid var(--tc-flow-line);
}

.tc-booking-steps li > span {
	flex: 0 0 38px;
	display: grid;
	place-items: center;
	width: 38px;
	height: 38px;
	border: 1px solid #aec5cf;
	border-radius: 50%;
	background: #fff;
	color: var(--tc-flow-muted);
	font-size: 13px;
	font-weight: 800;
}

.tc-booking-steps li.is-active > span,
.tc-booking-steps li.is-complete > span {
	border-color: var(--tc-flow-navy);
	background: var(--tc-flow-navy);
	color: #fff;
}

.tc-booking-steps li.is-active::after {
	content: "";
	position: absolute;
	right: 18px;
	bottom: 0;
	left: 18px;
	height: 3px;
	border-radius: 999px 999px 0 0;
	background: var(--tc-flow-cyan);
}

.tc-booking-steps div {
	min-width: 0;
}

.tc-booking-steps strong,
.tc-booking-steps small {
	display: block;
}

.tc-booking-steps strong {
	color: var(--tc-flow-navy-deep);
	font-size: 13px;
	font-weight: 800;
	line-height: 1.35;
}

.tc-booking-steps small {
	margin-top: 2px;
	color: var(--tc-flow-muted);
	font-size: 11px;
	line-height: 1.35;
}

.tc-commerce-content {
	min-height: 420px;
	padding: 72px 0 96px;
}

.tc-commerce-content > .container > .woocommerce {
	width: 100%;
}

.tc-empty-state {
	max-width: 760px;
	margin: 0 auto;
	padding: 56px 40px;
	border: 1px solid var(--tc-flow-line, #d5e4ea);
	border-radius: 28px;
	background: #fff;
	box-shadow: 0 20px 52px rgba(1, 52, 96, .09);
	text-align: center;
}

.tc-empty-state__icon {
	display: grid;
	place-items: center;
	width: 72px;
	height: 72px;
	margin: 0 auto 24px;
	border-radius: 50%;
	background: var(--tc-flow-navy, #013460);
	color: #fff;
	box-shadow: 0 12px 28px rgba(1, 52, 96, .2);
	font-size: 28px;
}

.tc-empty-state h2 {
	margin: 0;
	color: var(--tc-flow-navy-deep, #062641);
	font-size: clamp(28px, 3.2vw, 40px);
	font-weight: 800;
	letter-spacing: -.035em;
	line-height: 1.15;
}

.tc-empty-state p {
	max-width: 54ch;
	margin: 16px auto 26px;
	color: var(--tc-flow-muted, #607687);
	font-size: 15px;
	line-height: 1.7;
}

.tc-commerce-button,
.tc-commerce-page .checkout-button,
.tc-commerce-page button.button,
.tc-commerce-page input[type="submit"] {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 50px;
	padding: 13px 22px !important;
	border: 1px solid var(--tc-flow-navy) !important;
	border-radius: 999px !important;
	background: var(--tc-flow-navy) !important;
	color: #fff !important;
	box-shadow: 0 12px 24px rgba(1, 52, 96, .16);
	font-family: inherit;
	font-size: 13px !important;
	font-weight: 800 !important;
	line-height: 1.2;
	text-decoration: none !important;
	text-transform: none !important;
}

.tc-commerce-button:hover,
.tc-commerce-button:focus-visible,
.tc-commerce-page .checkout-button:hover,
.tc-commerce-page .checkout-button:focus-visible,
.tc-commerce-page button.button:hover,
.tc-commerce-page button.button:focus-visible,
.tc-commerce-page input[type="submit"]:hover,
.tc-commerce-page input[type="submit"]:focus-visible {
	border-color: #075180 !important;
	background: #075180 !important;
	color: #fff !important;
	outline: 3px solid rgba(54, 153, 185, .28);
	outline-offset: 3px;
}

.tc-cart-page .woocommerce-notices-wrapper:empty,
.tc-cart-page .return-to-shop {
	display: none;
}

/* Carrito con productos. */
.tc-cart-page .st-woo-cartpage {
	display: flex;
	align-items: flex-start;
	gap: 30px;
	margin: 0;
}

.tc-cart-page .st-woo-cartpage > .col-left {
	flex: 1 1 auto;
	width: auto;
	padding: 0;
}

.tc-cart-page .st-woo-cartpage > .col-right {
	flex: 0 0 360px;
	width: 360px;
	padding: 0;
}

.tc-cart-page .st-woo-heading {
	margin: 0 0 18px;
	color: var(--tc-flow-navy-deep);
	font-size: 24px;
	font-weight: 800;
}

.tc-cart-page table.shop_table {
	width: 100%;
	margin: 0;
	border: 1px solid var(--tc-flow-line);
	border-collapse: separate;
	border-spacing: 0;
	border-radius: 22px;
	background: #fff;
	box-shadow: 0 16px 40px rgba(1, 52, 96, .07);
	overflow: hidden;
}

.tc-cart-page table.shop_table th {
	padding: 14px 12px;
	border: 0;
	border-bottom: 1px solid var(--tc-flow-line);
	background: #fff;
	color: var(--tc-flow-muted);
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .09em;
	text-transform: uppercase;
}

.tc-cart-page table.shop_table td {
	padding: 20px 12px;
	border: 0;
	border-bottom: 1px solid var(--tc-flow-line);
	vertical-align: middle;
}

.tc-cart-page table.shop_table .product-thumbnail img {
	display: block;
	width: 92px;
	height: 76px;
	border-radius: 14px;
	object-fit: cover;
}

.tc-cart-page .booking-item-title,
.tc-cart-page .booking-item-title a {
	color: var(--tc-flow-navy-deep);
	font-size: 15px;
	font-weight: 800;
	line-height: 1.4;
}

.tc-cart-page .booking-item-address,
.tc-cart-page .variation,
.tc-cart-page .wc-item-meta {
	color: var(--tc-flow-muted);
	font-size: 12px;
	line-height: 1.55;
}

.tc-cart-page .product-remove a {
	display: grid;
	place-items: center;
	width: 36px;
	height: 36px;
	border: 1px solid #e4c9c9;
	border-radius: 50%;
	color: #aa4141 !important;
	font-size: 13px;
}

.tc-cart-page .product-remove a:hover,
.tc-cart-page .product-remove a:focus-visible {
	border-color: #aa4141;
	background: #fff5f5;
	outline: 2px solid rgba(170, 65, 65, .2);
}

.tc-cart-page .product-price,
.tc-cart-page .booking-item-price {
	color: var(--tc-flow-navy);
	font-weight: 800;
}

.tc-cart-page .quantity input,
.tc-cart-page .coupon .input-text {
	min-height: 46px;
	border: 1px solid #7895a4 !important;
	border-radius: 12px !important;
	background: #fff !important;
	color: var(--tc-flow-ink);
	box-shadow: none !important;
}

.tc-cart-page table.shop_table td.actions {
	padding: 18px;
	border-bottom: 0;
}

.tc-cart-page .actions .coupon {
	display: flex;
	gap: 10px;
	max-width: 460px;
}

.tc-cart-page .cart-collaterals,
.tc-cart-page .cart_totals {
	width: 100% !important;
}

.tc-cart-page .cart-collaterals {
	position: sticky;
	top: 112px;
	padding: 26px;
	border: 1px solid var(--tc-flow-line);
	border-radius: 22px;
	background: #fff;
	box-shadow: 0 16px 40px rgba(1, 52, 96, .09);
}

.tc-cart-page .cart_totals h2 {
	display: none;
}

.tc-cart-page .cart_totals table {
	border: 0;
	box-shadow: none;
}

.tc-cart-page .cart_totals table th,
.tc-cart-page .cart_totals table td {
	padding: 14px 0;
	border-bottom: 1px solid var(--tc-flow-line);
	background: #fff;
	font-size: 13px;
}

.tc-cart-page .wc-proceed-to-checkout {
	padding: 22px 0 0;
}

.tc-cart-page .wc-proceed-to-checkout .checkout-button {
	width: 100%;
}

/* Checkout Traveler. */
.tc-checkout-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 380px;
	gap: 34px;
	align-items: start;
}

.tc-checkout-card,
.tc-checkout-summary {
	padding: 32px;
	border: 1px solid var(--tc-flow-line);
	border-radius: 26px;
	background: #fff;
	box-shadow: 0 18px 48px rgba(1, 52, 96, .08);
}

.tc-checkout-summary {
	position: sticky;
	top: 112px;
}

.tc-checkout-card h2,
.tc-checkout-summary h2,
.tc-contact-details h2,
.tc-contact-form-card h2 {
	margin: 0;
	color: var(--tc-flow-navy-deep);
	font-size: clamp(26px, 3vw, 36px);
	font-weight: 800;
	letter-spacing: -.035em;
	line-height: 1.16;
}

.tc-checkout-card__intro,
.tc-contact-form-card > p,
.tc-contact-details > p {
	margin: 12px 0 26px;
	color: var(--tc-flow-muted);
	font-size: 14px;
	line-height: 1.7;
}

.tc-checkout-page :is(input[type="text"], input[type="email"], input[type="tel"], input[type="password"], input[type="number"], select, textarea) {
	width: 100%;
	min-height: 52px;
	padding: 12px 14px;
	border: 1px solid #7895a4;
	border-radius: 12px;
	background: #fff;
	color: var(--tc-flow-ink);
	box-shadow: none;
	font-family: inherit;
	font-size: 16px;
}

.tc-checkout-page textarea {
	min-height: 120px;
	resize: vertical;
}

.tc-checkout-page :is(input, select, textarea):focus {
	border-color: var(--tc-flow-cyan);
	box-shadow: 0 0 0 3px rgba(54, 153, 185, .16);
	outline: 0;
}

.tc-checkout-page label {
	display: block;
	margin-bottom: 7px;
	color: var(--tc-flow-navy-deep);
	font-size: 13px;
	font-weight: 750;
}

.tc-checkout-page .form-group,
.tc-checkout-page .form-row {
	margin-bottom: 18px;
}

.tc-checkout-summary .booking-item-payment {
	margin-top: 22px;
	border: 0;
	box-shadow: none;
}

.tc-checkout-trust {
	display: grid;
	gap: 10px;
	margin: 24px 0 0;
	padding: 22px 0 0;
	border-top: 1px solid var(--tc-flow-line);
	list-style: none;
}

.tc-checkout-trust li {
	display: flex;
	align-items: center;
	gap: 9px;
	color: var(--tc-flow-muted);
	font-size: 12px;
	font-weight: 650;
}

.tc-checkout-trust i {
	color: var(--tc-flow-cyan);
	font-size: 15px;
}

/* Contacto. */
.tc-contact-hero {
	padding: 58px 0 72px;
	border-bottom: 1px solid var(--tc-flow-line);
	background: #fff;
}

.tc-contact-hero__grid {
	display: grid;
	grid-template-columns: minmax(0, .95fr) minmax(380px, 1.05fr);
	gap: 64px;
	align-items: center;
}

.tc-contact-hero__copy > p {
	max-width: 58ch;
	margin: 20px 0 28px;
	color: var(--tc-flow-muted);
	font-size: 16px;
	line-height: 1.75;
}

.tc-contact-response {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	padding: 12px 16px;
	border: 1px solid var(--tc-flow-line);
	border-radius: 16px;
	background: #fff;
}

.tc-contact-response > i {
	color: var(--tc-flow-cyan);
	font-size: 20px;
}

.tc-contact-response strong,
.tc-contact-response small {
	display: block;
}

.tc-contact-response strong {
	color: var(--tc-flow-navy-deep);
	font-size: 13px;
}

.tc-contact-response small {
	margin-top: 2px;
	color: var(--tc-flow-muted);
	font-size: 11px;
}

.tc-contact-hero__image {
	position: relative;
	min-height: 390px;
	border-radius: 30px;
	box-shadow: 0 22px 54px rgba(1, 52, 96, .14);
	overflow: hidden;
}

.tc-contact-hero__image::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(135deg, rgba(1, 52, 96, .06), rgba(1, 52, 96, .28));
	pointer-events: none;
}

.tc-contact-hero__image img {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 390px;
	object-fit: cover;
}

.tc-contact-main {
	padding: 88px 0 104px;
}

.tc-contact-layout {
	display: grid;
	grid-template-columns: 390px minmax(0, 1fr);
	gap: 44px;
	align-items: start;
}

.tc-contact-details {
	padding: 32px;
	border-radius: 26px;
	background:
		radial-gradient(circle at 100% 0, rgba(54, 153, 185, .3), transparent 38%),
		linear-gradient(145deg, var(--tc-flow-navy-deep), var(--tc-flow-navy));
	color: #fff;
	box-shadow: 0 20px 52px rgba(1, 52, 96, .16);
}

.tc-contact-details .tc-commerce-eyebrow {
	color: #80d2ed;
}

.tc-contact-details h2 {
	color: #fff;
}

.tc-contact-details > p {
	color: rgba(255, 255, 255, .72);
}

.tc-contact-details ul {
	display: grid;
	gap: 0;
	margin: 0;
	padding: 0;
	list-style: none;
}

.tc-contact-details li {
	display: grid;
	grid-template-columns: 46px minmax(0, 1fr);
	gap: 14px;
	align-items: center;
	padding: 18px 0;
	border-top: 1px solid rgba(255, 255, 255, .16);
}

.tc-contact-details li > span {
	display: grid;
	place-items: center;
	width: 46px;
	height: 46px;
	border: 1px solid rgba(128, 210, 237, .3);
	border-radius: 50%;
	background: rgba(54, 153, 185, .16);
	color: #80d2ed;
	font-size: 18px;
}

.tc-contact-details li small,
.tc-contact-details li a,
.tc-contact-details li strong {
	display: block;
}

.tc-contact-details li small {
	margin-bottom: 4px;
	color: rgba(255, 255, 255, .62);
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .1em;
	text-transform: uppercase;
}

.tc-contact-details li a,
.tc-contact-details li strong {
	color: #fff;
	font-size: 14px;
	font-weight: 750;
	line-height: 1.45;
	overflow-wrap: anywhere;
}

.tc-contact-details li a:hover,
.tc-contact-details li a:focus-visible {
	color: #a9e5f6;
	outline: 0;
	text-decoration: underline;
	text-underline-offset: 4px;
}

.tc-contact-form-card {
	padding: 38px;
	border: 1px solid var(--tc-flow-line);
	border-radius: 28px;
	background: #fff;
	box-shadow: 0 20px 52px rgba(1, 52, 96, .09);
}

.tc-contact-form-card .st-contact-form {
	padding: 0;
	border: 0;
	box-shadow: none;
}

.tc-contact-form-card .st-contact-form > h3 {
	display: none;
}

.tc-contact-form-card .st-contact-form .mt30 {
	margin-top: 0;
}

.tc-contact-form-card .form-group {
	margin-bottom: 18px;
}

.tc-contact-form-card label {
	display: block;
	margin: 0 0 7px;
	color: var(--tc-flow-navy-deep);
	font-size: 13px;
	font-weight: 750;
}

.tc-contact-form-card label .tc-required {
	color: #b44d3f;
}

.tc-contact-form-card :is(input[type="text"], input[type="email"], input[type="tel"], textarea) {
	display: block;
	width: 100%;
	height: 54px;
	margin: 0;
	padding: 13px 14px;
	border: 1px solid #7895a4;
	border-radius: 12px;
	background: #fff;
	color: var(--tc-flow-ink);
	box-shadow: none;
	font-family: inherit;
	font-size: 16px;
	line-height: 1.4;
}

.tc-contact-form-card textarea {
	height: auto;
	min-height: 150px;
	resize: vertical;
}

.tc-contact-form-card :is(input, textarea):focus {
	border-color: var(--tc-flow-cyan);
	box-shadow: 0 0 0 3px rgba(54, 153, 185, .16);
	outline: 0;
}

.tc-contact-form-card .wpcf7-not-valid {
	border-color: #b44d3f !important;
}

.tc-contact-form-card .wpcf7-not-valid-tip {
	margin-top: 6px;
	color: #9f3327;
	font-size: 12px;
	font-weight: 650;
}

.tc-contact-form-card .wpcf7-response-output {
	margin: 18px 0 0 !important;
	padding: 13px 15px !important;
	border-radius: 12px;
	font-size: 13px;
	line-height: 1.55;
}

.tc-contact-form-card input[type="submit"] {
	display: inline-flex;
	min-height: 52px;
	padding: 13px 24px;
	border: 1px solid var(--tc-flow-navy);
	border-radius: 999px;
	background: var(--tc-flow-navy);
	color: #fff;
	box-shadow: 0 12px 24px rgba(1, 52, 96, .16);
	cursor: pointer;
	font-family: inherit;
	font-size: 13px;
	font-weight: 800;
}

.tc-contact-form-card input[type="submit"]:hover,
.tc-contact-form-card input[type="submit"]:focus-visible {
	border-color: #075180;
	background: #075180;
	outline: 3px solid rgba(54, 153, 185, .28);
	outline-offset: 3px;
}

@media (max-width: 1199px) {
	.tc-checkout-layout {
		grid-template-columns: minmax(0, 1fr) 340px;
		gap: 26px;
	}

	.tc-contact-hero__grid {
		gap: 40px;
	}

	.tc-contact-layout {
		grid-template-columns: 340px minmax(0, 1fr);
		gap: 30px;
	}
}

@media (max-width: 991px) {
	.tc-cart-page .st-woo-cartpage,
	.tc-checkout-layout,
	.tc-contact-layout {
		display: grid;
		grid-template-columns: 1fr;
	}

	.tc-cart-page .st-woo-cartpage > .col-right,
	.tc-cart-page .st-woo-cartpage > .col-left {
		width: 100%;
	}

	.tc-cart-page .cart-collaterals,
	.tc-checkout-summary {
		position: static;
	}

	.tc-contact-hero__grid {
		grid-template-columns: 1fr 1fr;
		gap: 28px;
	}

	.tc-contact-hero__image,
	.tc-contact-hero__image img {
		min-height: 330px;
	}
}

@media (max-width: 767px) {
	.tc-commerce-hero {
		padding: 42px 0 36px;
	}

	.tc-commerce-hero h1,
	.tc-contact-hero h1 {
		font-size: clamp(34px, 10vw, 46px);
	}

	.tc-booking-steps li {
		gap: 8px;
		padding: 12px 10px;
	}

	.tc-booking-steps li > span {
		flex-basis: 34px;
		width: 34px;
		height: 34px;
	}

	.tc-booking-steps small {
		display: none;
	}

	.tc-commerce-content {
		padding: 54px 0 76px;
	}

	.tc-empty-state {
		padding: 42px 24px;
		border-radius: 22px;
	}

	.tc-cart-page table.shop_table_responsive {
		border: 0;
		box-shadow: none;
	}

	.tc-cart-page table.shop_table_responsive thead {
		display: none;
	}

	.tc-cart-page table.shop_table_responsive tr.cart_item {
		display: block;
		margin-bottom: 18px;
		padding: 16px;
		border: 1px solid var(--tc-flow-line);
		border-radius: 20px;
		box-shadow: 0 12px 30px rgba(1, 52, 96, .06);
	}

	.tc-cart-page table.shop_table_responsive tr.cart_item td {
		display: grid;
		grid-template-columns: 110px minmax(0, 1fr);
		gap: 12px;
		align-items: center;
		padding: 10px 0;
		border-bottom: 1px solid var(--tc-flow-line);
		text-align: left !important;
	}

	.tc-cart-page table.shop_table_responsive tr.cart_item td:last-child {
		border-bottom: 0;
	}

	.tc-cart-page table.shop_table_responsive tr.cart_item td::before {
		color: var(--tc-flow-muted);
		font-size: 11px;
		font-weight: 800;
		text-transform: uppercase;
	}

	.tc-cart-page table.shop_table_responsive .product-remove {
		display: flex;
		justify-content: flex-end;
		border-bottom: 0;
	}

	.tc-cart-page table.shop_table_responsive .product-thumbnail {
		display: block;
	}

	.tc-cart-page table.shop_table_responsive .product-thumbnail img {
		width: 100%;
		height: 180px;
	}

	.tc-cart-page table.shop_table td.actions,
	.tc-cart-page .actions .coupon {
		display: grid;
		grid-template-columns: 1fr;
		max-width: none;
		gap: 10px;
	}

	.tc-checkout-card,
	.tc-checkout-summary,
	.tc-contact-form-card,
	.tc-contact-details {
		padding: 26px 22px;
		border-radius: 22px;
	}

	.tc-contact-hero {
		padding: 42px 0 56px;
	}

	.tc-contact-hero__grid {
		grid-template-columns: 1fr;
	}

	.tc-contact-hero__image {
		order: -1;
		border-radius: 22px;
	}

	.tc-contact-hero__image,
	.tc-contact-hero__image img {
		min-height: 260px;
	}

	.tc-contact-main {
		padding: 64px 0 82px;
	}
}

@media (max-width: 480px) {
	.tc-booking-steps {
		grid-template-columns: 1fr;
		border-radius: 17px;
	}

	.tc-booking-steps li + li {
		border-top: 1px solid var(--tc-flow-line);
		border-left: 0;
	}

	.tc-booking-steps li.is-active::after {
		top: 10px;
		right: auto;
		bottom: 10px;
		left: 0;
		width: 3px;
		height: auto;
		border-radius: 0 999px 999px 0;
	}

	.tc-booking-steps small {
		display: block;
	}
}

/* --------------------------------------------------------------------------
 * Blog editorial
 * -------------------------------------------------------------------------- */

.tc-blog-page {
	--tc-blog-navy: #073456;
	--tc-blog-navy-deep: #042844;
	--tc-blog-cyan: #3a9fbe;
	--tc-blog-cyan-light: #dff1f6;
	--tc-blog-ink: #0e293f;
	--tc-blog-muted: #5f7180;
	--tc-blog-line: #d7e3e8;
	background: #fff;
	color: var(--tc-blog-ink);
}

.tc-blog-page *,
.tc-blog-page *::before,
.tc-blog-page *::after {
	box-sizing: border-box;
}

.tc-blog-hero {
	position: relative;
	overflow: hidden;
	padding: 68px 0 72px;
	background:
		radial-gradient(circle at 78% 18%, rgba(78, 174, 202, .3), transparent 34%),
		linear-gradient(135deg, var(--tc-blog-navy-deep), var(--tc-blog-navy));
	color: #fff;
}

.tc-blog-hero::before {
	position: absolute;
	top: -110px;
	left: -80px;
	width: 310px;
	height: 310px;
	border: 1px solid rgba(255, 255, 255, .1);
	border-radius: 50%;
	content: "";
}

.tc-blog-hero__grid {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(380px, .95fr);
	gap: 72px;
	align-items: center;
}

.tc-blog-kicker {
	display: block;
	margin-bottom: 10px;
	color: var(--tc-blog-cyan);
	font-family: "Dancing Script", sans-serif;
	font-size: clamp(25px, 2.3vw, 34px);
	font-weight: 700;
	line-height: 1.15;
}

.tc-blog-hero .tc-blog-kicker,
.tc-blog-cta .tc-blog-kicker {
	color: #7dc7dc;
}

.tc-blog-hero h1 {
	max-width: 720px;
	margin: 0;
	color: #fff;
	font-size: clamp(44px, 5.25vw, 72px);
	font-weight: 800;
	letter-spacing: -.045em;
	line-height: 1.02;
}

.tc-blog-hero__content > p {
	max-width: 660px;
	margin: 22px 0 0;
	color: rgba(255, 255, 255, .78);
	font-size: 17px;
	line-height: 1.75;
}

.tc-blog-search {
	display: grid;
	grid-template-columns: 24px minmax(0, 1fr) auto;
	gap: 10px;
	align-items: center;
	max-width: 620px;
	min-height: 62px;
	margin-top: 32px;
	padding: 7px 7px 7px 20px;
	border: 1px solid rgba(255, 255, 255, .24);
	border-radius: 999px;
	background: #fff;
	box-shadow: 0 20px 45px rgba(0, 18, 32, .2);
}

.tc-blog-search > i {
	color: var(--tc-blog-cyan);
	font-size: 17px;
}

.tc-blog-search input[type="search"] {
	width: 100%;
	height: 46px;
	padding: 0 4px;
	border: 0;
	background: transparent;
	color: var(--tc-blog-ink);
	font-family: inherit;
	font-size: 15px;
	box-shadow: none;
	outline: 0;
}

.tc-blog-search input[type="search"]::placeholder {
	color: #6b7d89;
	opacity: 1;
}

.tc-blog-search button {
	min-width: 112px;
	min-height: 48px;
	padding: 0 22px;
	border: 1px solid var(--tc-blog-cyan);
	border-radius: 999px;
	background: var(--tc-blog-cyan);
	color: #fff;
	cursor: pointer;
	font-family: inherit;
	font-size: 14px;
	font-weight: 800;
	transition: background-color .2s ease, border-color .2s ease, transform .2s ease;
}

.tc-blog-search button:hover {
	border-color: var(--tc-blog-navy);
	background: var(--tc-blog-navy);
}

.tc-blog-hero__collage {
	display: grid;
	grid-template-columns: 1.25fr .75fr;
	grid-template-rows: repeat(2, 180px);
	gap: 14px;
	min-width: 0;
}

.tc-blog-hero__photo {
	position: relative;
	display: block;
	overflow: hidden;
	border: 1px solid rgba(255, 255, 255, .2);
	border-radius: 20px;
	background: rgba(255, 255, 255, .08);
}

.tc-blog-hero__photo--1 {
	grid-row: 1 / span 2;
	border-radius: 28px;
}

.tc-blog-hero__photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .45s ease;
}

.tc-blog-hero__photo:hover img {
	transform: scale(1.035);
}

.tc-blog-categories {
	border-bottom: 1px solid var(--tc-blog-line);
	background: #fff;
}

.tc-blog-categories__scroll {
	display: flex;
	gap: 10px;
	overflow-x: auto;
	padding: 18px 0;
	scrollbar-width: thin;
}

.tc-blog-categories a {
	display: inline-flex;
	flex: 0 0 auto;
	gap: 9px;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 10px 17px;
	border: 1px solid var(--tc-blog-line);
	border-radius: 999px;
	background: #fff;
	color: var(--tc-blog-ink);
	font-size: 13px;
	font-weight: 750;
	line-height: 1;
	transition: border-color .2s ease, background-color .2s ease, color .2s ease;
}

.tc-blog-categories a span {
	display: inline-grid;
	place-items: center;
	min-width: 24px;
	height: 24px;
	padding: 0 6px;
	border-radius: 999px;
	background: var(--tc-blog-cyan-light);
	color: var(--tc-blog-navy);
	font-size: 11px;
}

.tc-blog-categories a:hover,
.tc-blog-categories a:focus-visible,
.tc-blog-categories a.is-current {
	border-color: var(--tc-blog-navy);
	background: var(--tc-blog-navy);
	color: #fff;
}

.tc-blog-content {
	padding: 88px 0 98px;
	background: #fff;
}

.tc-blog-section-heading {
	display: flex;
	gap: 40px;
	align-items: flex-end;
	justify-content: space-between;
	margin-bottom: 38px;
}

.tc-blog-section-heading .tc-blog-kicker {
	font-size: 29px;
}

.tc-blog-section-heading h2 {
	margin: 0;
	color: var(--tc-blog-ink);
	font-size: clamp(36px, 4vw, 54px);
	font-weight: 800;
	letter-spacing: -.035em;
	line-height: 1.05;
}

.tc-blog-section-heading > p {
	max-width: 420px;
	margin: 0 0 4px;
	color: var(--tc-blog-muted);
	font-size: 15px;
	line-height: 1.65;
}

.tc-blog-featured {
	display: grid;
	grid-template-columns: minmax(0, 1.12fr) minmax(380px, .88fr);
	overflow: hidden;
	margin-bottom: 34px;
	border: 1px solid var(--tc-blog-line);
	border-radius: 28px;
	background: #fff;
}

.tc-blog-featured__image {
	display: block;
	min-height: 470px;
	overflow: hidden;
	background: #edf3f5;
}

.tc-blog-featured__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .45s ease;
}

.tc-blog-featured:hover .tc-blog-featured__image img {
	transform: scale(1.025);
}

.tc-blog-featured__content {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 52px;
}

.tc-blog-card__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 12px;
	align-items: center;
	min-height: 26px;
	color: var(--tc-blog-muted);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .02em;
	text-transform: uppercase;
}

.tc-blog-card__category {
	display: inline-flex;
	align-items: center;
	min-height: 28px;
	padding: 6px 10px;
	border-radius: 999px;
	background: var(--tc-blog-cyan-light);
	color: var(--tc-blog-navy);
	font-size: 11px;
	font-weight: 800;
	line-height: 1;
}

.tc-blog-card__category:hover,
.tc-blog-card__category:focus-visible {
	background: var(--tc-blog-cyan);
	color: #fff;
}

.tc-blog-featured h3 {
	margin: 22px 0 16px;
	font-size: clamp(30px, 3vw, 43px);
	font-weight: 800;
	letter-spacing: -.035em;
	line-height: 1.12;
}

.tc-blog-featured h3 a,
.tc-blog-card h3 a {
	color: var(--tc-blog-ink);
	text-decoration: none;
}

.tc-blog-featured h3 a:hover,
.tc-blog-card h3 a:hover {
	color: var(--tc-blog-cyan);
}

.tc-blog-featured__content > p,
.tc-blog-card__body > p {
	color: var(--tc-blog-muted);
	font-size: 15px;
	line-height: 1.7;
}

.tc-blog-featured__content > p {
	margin: 0 0 30px;
	font-size: 16px;
}

.tc-blog-card__footer {
	display: flex;
	gap: 18px;
	align-items: center;
	justify-content: space-between;
	margin-top: auto;
	padding-top: 20px;
	border-top: 1px solid var(--tc-blog-line);
	color: var(--tc-blog-muted);
	font-size: 12px;
	font-weight: 650;
}

.tc-blog-card__footer > div {
	display: flex;
	flex-wrap: wrap;
	gap: 7px;
	align-items: center;
}

.tc-blog-read-more {
	display: inline-flex;
	gap: 9px;
	align-items: center;
	min-height: 44px;
	color: var(--tc-blog-navy);
	font-size: 13px;
	font-weight: 800;
}

.tc-blog-read-more i,
.tc-blog-card__arrow i {
	transition: transform .2s ease;
}

.tc-blog-read-more:hover i,
.tc-blog-card__arrow:hover i {
	transform: translateX(3px);
}

.tc-blog-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 28px;
}

.tc-blog-card {
	display: flex;
	min-width: 0;
	overflow: hidden;
	flex-direction: column;
	border: 1px solid var(--tc-blog-line);
	border-radius: 22px;
	background: #fff;
	transition: border-color .22s ease, transform .22s ease, box-shadow .22s ease;
}

.tc-blog-card:hover {
	border-color: #a9c8d4;
	box-shadow: 0 18px 38px rgba(5, 52, 85, .09);
	transform: translateY(-4px);
}

.tc-blog-card__image {
	display: block;
	overflow: hidden;
	aspect-ratio: 4 / 3;
	background: #edf3f5;
}

.tc-blog-card__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .4s ease;
}

.tc-blog-card:hover .tc-blog-card__image img {
	transform: scale(1.03);
}

.tc-blog-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: 24px;
}

.tc-blog-card h3 {
	margin: 16px 0 11px;
	font-size: 22px;
	font-weight: 800;
	letter-spacing: -.025em;
	line-height: 1.25;
}

.tc-blog-card__body > p {
	display: -webkit-box;
	overflow: hidden;
	margin: 0 0 22px;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
}

.tc-blog-card__arrow {
	display: inline-grid;
	flex: 0 0 44px;
	place-items: center;
	width: 44px;
	height: 44px;
	border: 1px solid var(--tc-blog-line);
	border-radius: 50%;
	color: var(--tc-blog-navy);
}

.tc-blog-card__arrow:hover,
.tc-blog-card__arrow:focus-visible {
	border-color: var(--tc-blog-navy);
	background: var(--tc-blog-navy);
	color: #fff;
}

.tc-blog-pagination {
	display: flex;
	gap: 8px;
	align-items: center;
	justify-content: center;
	margin-top: 50px;
}

.tc-blog-pagination .page-numbers {
	display: inline-grid;
	place-items: center;
	min-width: 44px;
	height: 44px;
	padding: 0 12px;
	border: 1px solid var(--tc-blog-line);
	border-radius: 50%;
	background: #fff;
	color: var(--tc-blog-ink);
	font-size: 13px;
	font-weight: 750;
}

.tc-blog-pagination .page-numbers.current,
.tc-blog-pagination .page-numbers:hover,
.tc-blog-pagination .page-numbers:focus-visible {
	border-color: var(--tc-blog-navy);
	background: var(--tc-blog-navy);
	color: #fff;
}

.tc-blog-cta {
	padding: 0 0 96px;
	background: #fff;
}

.tc-blog-cta__inner {
	position: relative;
	display: flex;
	gap: 40px;
	align-items: center;
	justify-content: space-between;
	overflow: hidden;
	padding: 48px 54px;
	border-radius: 26px;
	background: var(--tc-blog-navy);
	color: #fff;
}

.tc-blog-cta__inner::after {
	position: absolute;
	top: -80px;
	right: 15%;
	width: 230px;
	height: 230px;
	border: 1px solid rgba(255, 255, 255, .1);
	border-radius: 50%;
	content: "";
}

.tc-blog-cta h2 {
	position: relative;
	z-index: 1;
	margin: 0;
	color: #fff;
	font-size: clamp(30px, 3.4vw, 46px);
	font-weight: 800;
	letter-spacing: -.035em;
}

.tc-blog-cta p {
	position: relative;
	z-index: 1;
	margin: 12px 0 0;
	color: rgba(255, 255, 255, .74);
	font-size: 15px;
}

.tc-blog-cta__button {
	position: relative;
	z-index: 1;
	display: inline-flex;
	flex: 0 0 auto;
	gap: 10px;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	padding: 14px 24px;
	border: 1px solid #fff;
	border-radius: 999px;
	background: #fff;
	color: var(--tc-blog-navy) !important;
	font-size: 13px;
	font-weight: 800;
}

.tc-blog-cta__button:hover,
.tc-blog-cta__button:focus-visible {
	border-color: var(--tc-blog-cyan);
	background: var(--tc-blog-cyan);
	color: #fff !important;
}

.tc-blog-page :is(a, button, input):focus-visible {
	outline: 3px solid #74c5dd;
	outline-offset: 3px;
}

@media (max-width: 1199px) {
	.tc-blog-hero__grid {
		grid-template-columns: minmax(0, 1fr) 430px;
		gap: 48px;
	}

	.tc-blog-featured__content {
		padding: 40px;
	}
}

@media (max-width: 991px) {
	.tc-blog-hero__grid {
		grid-template-columns: 1fr;
	}

	.tc-blog-hero__content {
		max-width: 760px;
	}

	.tc-blog-hero__collage {
		grid-template-rows: repeat(2, 155px);
	}

	.tc-blog-featured {
		grid-template-columns: 1fr;
	}

	.tc-blog-featured__image {
		min-height: 390px;
	}

	.tc-blog-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 767px) {
	.tc-blog-hero {
		padding: 48px 0 52px;
	}

	.tc-blog-hero__grid {
		gap: 34px;
	}

	.tc-blog-hero h1 {
		font-size: clamp(39px, 12vw, 52px);
	}

	.tc-blog-hero__content > p {
		font-size: 16px;
	}

	.tc-blog-search {
		grid-template-columns: 22px minmax(0, 1fr) 48px;
		min-height: 58px;
		padding: 5px 5px 5px 16px;
	}

	.tc-blog-search button {
		min-width: 48px;
		width: 48px;
		padding: 0;
		font-size: 0;
	}

	.tc-blog-search button::before {
		font-family: "Font Awesome 6 Pro";
		font-size: 16px;
		font-weight: 400;
		content: "\f002";
	}

	.tc-blog-hero__collage {
		grid-template-columns: 1.3fr .7fr;
		grid-template-rows: repeat(2, 118px);
		gap: 9px;
	}

	.tc-blog-hero__photo,
	.tc-blog-hero__photo--1 {
		border-radius: 16px;
	}

	.tc-blog-categories__scroll {
		flex-wrap: wrap;
		overflow-x: visible;
	}

	.tc-blog-content {
		padding: 64px 0 72px;
	}

	.tc-blog-section-heading {
		display: block;
		margin-bottom: 28px;
	}

	.tc-blog-section-heading > p {
		margin-top: 14px;
	}

	.tc-blog-featured {
		border-radius: 22px;
	}

	.tc-blog-featured__image {
		min-height: 270px;
	}

	.tc-blog-featured__content {
		padding: 28px 24px;
	}

	.tc-blog-featured h3 {
		font-size: 30px;
	}

	.tc-blog-featured .tc-blog-card__footer {
		align-items: flex-start;
		flex-direction: column;
	}

	.tc-blog-grid {
		grid-template-columns: 1fr;
		gap: 22px;
	}

	.tc-blog-card__body > p {
		font-size: 16px;
	}

	.tc-blog-cta {
		padding-bottom: 72px;
	}

	.tc-blog-cta__inner {
		align-items: flex-start;
		flex-direction: column;
		padding: 34px 26px;
		border-radius: 22px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.tc-blog-page *,
	.tc-blog-page *::before,
	.tc-blog-page *::after {
		scroll-behavior: auto !important;
		transition-duration: .01ms !important;
	}
}

/* --------------------------------------------------------------------------
 * Artículo editorial
 * -------------------------------------------------------------------------- */

.tc-article-page {
	--tc-article-navy: #073456;
	--tc-article-navy-deep: #042844;
	--tc-article-cyan: #177d9e;
	--tc-article-orange: #b84f25;
	--tc-article-ink: #102d44;
	--tc-article-muted: #5c7180;
	--tc-article-line: #d8e3e8;
	background: #fff;
	color: var(--tc-article-ink);
}

.tc-article-page *,
.tc-article-page *::before,
.tc-article-page *::after {
	box-sizing: border-box;
}

.tc-article-progress {
	position: fixed;
	top: 0;
	left: 0;
	z-index: 100000;
	width: 100%;
	height: 4px;
	pointer-events: none;
}

.tc-article-progress span {
	display: block;
	width: 0;
	height: 100%;
	background: linear-gradient(90deg, var(--tc-article-cyan, #3699b9), var(--tc-article-orange, #e77a45));
}

.tc-article-hero {
	position: relative;
	overflow: hidden;
	padding: 64px 0 178px;
	background:
		radial-gradient(circle at 86% 20%, rgba(75, 180, 210, .3), transparent 29%),
		linear-gradient(135deg, var(--tc-article-navy-deep), var(--tc-article-navy));
	color: #fff;
}

.tc-article-hero::before,
.tc-article-hero::after {
	position: absolute;
	border: 1px solid rgba(255, 255, 255, .1);
	border-radius: 50%;
	content: "";
}

.tc-article-hero::before {
	top: -180px;
	right: 8%;
	width: 430px;
	height: 430px;
}

.tc-article-hero::after {
	bottom: -210px;
	left: -90px;
	width: 390px;
	height: 390px;
}

.tc-article-breadcrumb {
	position: relative;
	z-index: 1;
	display: flex;
	flex-wrap: wrap;
	gap: 9px;
	align-items: center;
	margin-bottom: 44px;
	color: rgba(255, 255, 255, .68);
	font-size: 12px;
	font-weight: 650;
}

.tc-article-breadcrumb a {
	color: rgba(255, 255, 255, .78);
}

.tc-article-breadcrumb a:hover,
.tc-article-breadcrumb a:focus-visible {
	color: #fff;
}

.tc-article-breadcrumb i {
	font-size: 9px;
}

.tc-article-hero__copy {
	position: relative;
	z-index: 1;
	max-width: 1050px;
}

.tc-article-category {
	display: inline-flex;
	align-items: center;
	min-height: 36px;
	margin-bottom: 22px;
	padding: 8px 14px;
	border: 1px solid rgba(255, 255, 255, .28);
	border-radius: 999px;
	background: rgba(255, 255, 255, .1);
	color: #fff;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.tc-article-category:hover,
.tc-article-category:focus-visible {
	border-color: #fff;
	background: #fff;
	color: var(--tc-article-navy);
}

.tc-article-hero h1 {
	max-width: 1000px;
	margin: 0;
	color: #fff;
	font-family: "Manrope", sans-serif;
	font-size: clamp(44px, 5.3vw, 72px);
	font-weight: 800;
	letter-spacing: -.048em;
	line-height: 1.04;
	text-wrap: balance;
}

.tc-article-deck {
	max-width: 790px;
	margin: 25px 0 0;
	color: rgba(255, 255, 255, .78);
	font-size: 18px;
	line-height: 1.72;
}

.tc-article-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 12px 24px;
	align-items: center;
	margin-top: 32px;
	color: rgba(255, 255, 255, .74);
	font-size: 12px;
	font-weight: 650;
}

.tc-article-meta span {
	display: inline-flex;
	gap: 8px;
	align-items: center;
}

.tc-article-meta i {
	color: #79c6dc;
	font-size: 14px;
}

.tc-article-featured-wrap {
	position: relative;
	z-index: 2;
	margin-top: -115px;
}

.tc-article-featured {
	overflow: hidden;
	margin: 0;
	border: 6px solid #fff;
	border-radius: 30px;
	background: #e8f0f3;
	box-shadow: 0 28px 70px rgba(3, 41, 68, .18);
}

.tc-article-featured img {
	display: block;
	width: 100%;
	height: clamp(390px, 50vw, 650px);
	object-fit: cover;
}

.tc-article-reading {
	padding: 76px 0 66px;
}

.tc-article-layout {
	display: grid;
	grid-template-columns: 58px minmax(0, 760px) 290px;
	gap: 38px;
	align-items: start;
	justify-content: center;
}

.tc-article-share {
	position: sticky;
	top: 126px;
	display: flex;
	flex-direction: column;
	gap: 12px;
	align-items: center;
}

.tc-article-share > span {
	color: var(--tc-article-muted);
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
	writing-mode: vertical-rl;
}

.tc-article-share > div {
	display: grid;
	gap: 9px;
}

.tc-article-share a,
.tc-article-share button {
	display: inline-grid;
	place-items: center;
	width: 46px;
	height: 46px;
	padding: 0;
	border: 1px solid var(--tc-article-line);
	border-radius: 50%;
	background: #fff;
	color: var(--tc-article-navy);
	cursor: pointer;
	font-size: 15px;
	transition: border-color .2s ease, background-color .2s ease, color .2s ease, transform .2s ease;
}

.tc-article-share a:hover,
.tc-article-share button:hover,
.tc-article-share button.is-copied {
	border-color: var(--tc-article-navy);
	background: var(--tc-article-navy);
	color: #fff;
	transform: translateY(-2px);
}

.tc-article-copy-status {
	position: absolute;
	top: calc(100% + 8px);
	left: 50%;
	width: 94px;
	color: var(--tc-article-muted);
	font-size: 10px;
	font-weight: 700;
	line-height: 1.3;
	text-align: center;
	transform: translateX(-50%);
}

.tc-article-body {
	min-width: 0;
	max-width: 75ch;
	color: #294353;
	font-size: 18px;
	line-height: 1.85;
}

.tc-article-body > :first-child {
	margin-top: 0;
}

.tc-article-body > p:first-child {
	color: var(--tc-article-ink);
	font-size: 21px;
	font-weight: 500;
	line-height: 1.75;
}

.tc-article-body p,
.tc-article-body ul,
.tc-article-body ol,
.tc-article-body blockquote,
.tc-article-body figure,
.tc-article-body table {
	margin-top: 0;
	margin-bottom: 28px;
}

.tc-article-body h2,
.tc-article-body h3,
.tc-article-body h4 {
	color: var(--tc-article-navy-deep);
	font-family: "Manrope", sans-serif;
	font-weight: 800;
	letter-spacing: -.025em;
	line-height: 1.2;
	text-wrap: balance;
}

.tc-article-body h2 {
	margin: 58px 0 20px;
	font-size: clamp(30px, 3.2vw, 40px);
}

.tc-article-body h3 {
	margin: 42px 0 16px;
	font-size: 26px;
}

.tc-article-body h4 {
	margin: 32px 0 14px;
	font-size: 21px;
}

.tc-article-body strong {
	color: var(--tc-article-navy-deep);
	font-weight: 800;
}

.tc-article-body a {
	color: #177d9e;
	font-weight: 700;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 4px;
}

.tc-article-body ul,
.tc-article-body ol {
	display: grid;
	gap: 13px;
	padding-left: 25px;
}

.tc-article-body li {
	padding-left: 5px;
}

.tc-article-body li::marker {
	color: var(--tc-article-cyan);
	font-weight: 800;
}

.tc-article-body blockquote {
	position: relative;
	padding: 30px 34px 30px 78px;
	border: 1px solid var(--tc-article-line);
	border-left: 4px solid var(--tc-article-cyan);
	border-radius: 0 18px 18px 0;
	background: #fff;
	color: var(--tc-article-navy);
	font-size: 20px;
	font-weight: 650;
	line-height: 1.65;
}

.tc-article-body blockquote::before {
	position: absolute;
	top: 26px;
	left: 28px;
	color: var(--tc-article-cyan);
	font-family: "Font Awesome 6 Pro";
	font-size: 25px;
	font-weight: 300;
	content: "\f10d";
}

.tc-article-body img {
	max-width: 100%;
	height: auto;
	border-radius: 18px;
}

.tc-article-body figure figcaption {
	margin-top: 10px;
	color: var(--tc-article-muted);
	font-size: 12px;
	line-height: 1.5;
	text-align: center;
}

.tc-article-body table {
	display: block;
	overflow-x: auto;
	width: 100%;
	border-collapse: collapse;
}

.tc-article-body th,
.tc-article-body td {
	padding: 13px 15px;
	border: 1px solid var(--tc-article-line);
	text-align: left;
}

.tc-article-body th {
	background: var(--tc-article-navy);
	color: #fff;
}

.tc-article-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 50px;
	padding-top: 24px;
	border-top: 1px solid var(--tc-article-line);
}

.tc-article-tags a {
	display: inline-flex;
	align-items: center;
	min-height: 38px;
	padding: 8px 13px;
	border: 1px solid var(--tc-article-line);
	border-radius: 999px;
	color: var(--tc-article-muted);
	font-size: 12px;
	font-weight: 700;
	text-decoration: none;
}

.tc-article-tags a:hover {
	border-color: var(--tc-article-navy);
	color: var(--tc-article-navy);
}

.tc-article-sidecard {
	position: sticky;
	top: 126px;
	padding: 28px;
	border: 1px solid var(--tc-article-line);
	border-radius: 22px;
	background: #fff;
	box-shadow: 0 14px 38px rgba(5, 52, 85, .08);
}

.tc-article-sidecard__icon {
	display: inline-grid;
	place-items: center;
	width: 50px;
	height: 50px;
	margin-bottom: 23px;
	border-radius: 15px;
	background: #e4f3f7;
	color: var(--tc-article-cyan);
	font-size: 23px;
}

.tc-article-sidecard__eyebrow {
	display: block;
	margin-bottom: 9px;
	color: var(--tc-article-orange);
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .08em;
	line-height: 1.4;
	text-transform: uppercase;
}

.tc-article-sidecard h2 {
	margin: 0;
	color: var(--tc-article-navy-deep);
	font-size: 24px;
	font-weight: 800;
	letter-spacing: -.025em;
	line-height: 1.22;
}

.tc-article-sidecard p {
	margin: 15px 0 22px;
	color: var(--tc-article-muted);
	font-size: 13px;
	line-height: 1.7;
}

.tc-article-sidecard > a {
	display: inline-flex;
	gap: 9px;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 48px;
	padding: 12px 18px;
	border-radius: 999px;
	background: var(--tc-article-navy);
	color: #fff;
	font-size: 12px;
	font-weight: 800;
}

.tc-article-sidecard > a:hover,
.tc-article-sidecard > a:focus-visible {
	background: var(--tc-article-cyan);
	color: #fff;
}

.tc-article-sidecard > a i {
	transition: transform .2s ease;
}

.tc-article-sidecard > a:hover i {
	transform: translateX(3px);
}

.tc-article-author {
	display: grid;
	grid-template-columns: 86px minmax(0, 1fr);
	gap: 24px;
	align-items: center;
	max-width: 820px;
	margin: 0 auto;
	padding: 30px;
	border: 1px solid var(--tc-article-line);
	border-radius: 22px;
	background: #fff;
}

.tc-article-author__mark {
	display: grid;
	place-items: center;
	width: 82px;
	height: 82px;
	border-radius: 50%;
	background: var(--tc-article-navy);
	color: #fff;
	font-size: 27px;
	font-weight: 800;
}

.tc-article-author span {
	color: var(--tc-article-cyan);
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.tc-article-author h2 {
	margin: 3px 0 7px;
	color: var(--tc-article-navy-deep);
	font-size: 21px;
	font-weight: 800;
}

.tc-article-author p {
	margin: 0;
	color: var(--tc-article-muted);
	font-size: 14px;
	line-height: 1.7;
}

.tc-article-navigation {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
	max-width: 980px;
	margin: 34px auto 88px;
}

.tc-article-navigation__item {
	display: flex;
	gap: 18px;
	align-items: center;
	min-height: 116px;
	padding: 22px 24px;
	border: 1px solid var(--tc-article-line);
	border-radius: 20px;
	background: #fff;
	color: var(--tc-article-navy);
	transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.tc-article-navigation__item:hover {
	border-color: #a8cad5;
	box-shadow: 0 14px 32px rgba(5, 52, 85, .08);
	color: var(--tc-article-navy);
	transform: translateY(-2px);
}

.tc-article-navigation__item--next {
	justify-content: flex-end;
	text-align: right;
}

.tc-article-navigation__item i {
	flex: 0 0 auto;
	font-size: 18px;
}

.tc-article-navigation__item span {
	display: grid;
	gap: 5px;
}

.tc-article-navigation__item small {
	color: var(--tc-article-muted);
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .07em;
	text-transform: uppercase;
}

.tc-article-navigation__item strong {
	display: -webkit-box;
	overflow: hidden;
	font-size: 14px;
	font-weight: 800;
	line-height: 1.45;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

.tc-article-related {
	padding: 84px 0 94px;
	border-top: 1px solid var(--tc-article-line);
	background: #fff;
}

.tc-article-section-heading {
	display: flex;
	gap: 30px;
	align-items: flex-end;
	justify-content: space-between;
	margin-bottom: 34px;
}

.tc-article-section-heading .tc-blog-kicker {
	margin-bottom: 7px;
	font-size: 28px;
}

.tc-article-section-heading h2 {
	margin: 0;
	color: var(--tc-article-navy-deep);
	font-size: clamp(34px, 4vw, 50px);
	font-weight: 800;
	letter-spacing: -.035em;
	line-height: 1.08;
}

.tc-article-section-heading > a {
	display: inline-flex;
	gap: 9px;
	align-items: center;
	min-height: 44px;
	color: var(--tc-article-navy);
	font-size: 12px;
	font-weight: 800;
}

.tc-article-related__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 26px;
}

.tc-article-related-card {
	overflow: hidden;
	border: 1px solid var(--tc-article-line);
	border-radius: 22px;
	background: #fff;
	transition: border-color .22s ease, box-shadow .22s ease, transform .22s ease;
}

.tc-article-related-card:hover {
	border-color: #a9c8d4;
	box-shadow: 0 18px 38px rgba(5, 52, 85, .09);
	transform: translateY(-4px);
}

.tc-article-related-card__image {
	display: block;
	overflow: hidden;
	aspect-ratio: 16 / 10;
	background: #e8f0f3;
}

.tc-article-related-card__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .4s ease;
}

.tc-article-related-card:hover .tc-article-related-card__image img {
	transform: scale(1.035);
}

.tc-article-related-card__body {
	padding: 24px;
}

.tc-article-related-card__body > span {
	color: var(--tc-article-cyan);
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.tc-article-related-card h3 {
	margin: 11px 0 20px;
	font-size: 21px;
	font-weight: 800;
	letter-spacing: -.02em;
	line-height: 1.3;
}

.tc-article-related-card h3 a {
	color: var(--tc-article-navy-deep);
}

.tc-article-related-card h3 a:hover {
	color: var(--tc-article-cyan);
}

.tc-article-related-card__link {
	display: inline-flex;
	gap: 8px;
	align-items: center;
	min-height: 44px;
	color: var(--tc-article-navy);
	font-size: 12px;
	font-weight: 800;
}

.tc-article-comments-section {
	padding: 88px 0 100px;
	border-top: 1px solid var(--tc-article-line);
	background: #fff;
}

.tc-article-comments {
	max-width: 840px;
	margin: 0 auto;
	padding: 38px;
	border: 1px solid var(--tc-article-line);
	border-radius: 24px;
	background: #fff;
}

.tc-article-comments :is(h2, h3, .comment-reply-title) {
	color: var(--tc-article-navy-deep);
	font-weight: 800;
	letter-spacing: -.025em;
}

.tc-article-comments__intro {
	margin-bottom: 32px;
	padding-bottom: 28px;
	border-bottom: 1px solid var(--tc-article-line);
}

.tc-article-comments__intro > span {
	color: var(--tc-article-cyan);
	font-family: "Dancing Script", sans-serif;
	font-size: 28px;
	font-weight: 700;
}

.tc-article-comments__intro h2 {
	margin: 4px 0 8px;
	font-size: 32px;
}

.tc-article-comments__intro p,
.tc-article-comments .comment-notes {
	margin: 0;
	color: var(--tc-article-muted);
	font-size: 13px;
	line-height: 1.65;
}

.tc-article-comments .comments-title {
	margin: 0 0 24px;
	font-size: 20px;
}

.tc-article-comments .comment-list {
	margin: 0 0 36px;
	padding: 0 0 32px;
	border-bottom: 1px solid var(--tc-article-line);
	list-style: none;
}

.tc-article-comments .comment-list li {
	list-style: none;
}

.tc-article-comments .comment-body {
	position: relative;
	margin-bottom: 20px;
	padding: 22px;
	border: 1px solid var(--tc-article-line);
	border-radius: 16px;
}

.tc-article-comments .comment-author {
	display: flex;
	gap: 10px;
	align-items: center;
}

.tc-article-comments .comment-author img {
	border-radius: 50%;
}

.tc-article-comments .comment-metadata {
	margin: 7px 0 12px;
	font-size: 11px;
}

.tc-article-comments .comment-content {
	color: var(--tc-article-muted);
	font-size: 14px;
	line-height: 1.7;
}

.tc-article-comments .comment-reply-title {
	margin: 0 0 8px;
	font-size: 25px;
}

.tc-article-comments .comment-form {
	margin-top: 24px;
}

.tc-article-comments .comment-form label {
	display: block;
	margin-bottom: 8px;
	color: var(--tc-article-ink);
	font-size: 12px;
	font-weight: 750;
}

.tc-article-comments .tc-comment-fields {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
}

.tc-article-comments .comment-form :is(p, .form-submit) {
	margin: 0 0 18px;
}

.tc-article-comments .comment-form-cookies-consent {
	display: flex;
	gap: 9px;
	align-items: flex-start;
}

.tc-article-comments .comment-form-cookies-consent input {
	flex: 0 0 auto;
	width: 17px;
	height: 17px;
	margin-top: 2px;
}

.tc-article-comments .comment-form-cookies-consent label {
	margin: 0;
	color: var(--tc-article-muted);
	font-size: 12px;
	font-weight: 500;
	line-height: 1.5;
}

.tc-article-comments :is(input[type="text"], input[type="email"], input[type="url"], textarea) {
	width: 100%;
	min-height: 50px;
	padding: 12px 15px;
	border: 1px solid var(--tc-article-line);
	border-radius: 12px;
	background: #fff;
	color: var(--tc-article-ink);
	box-shadow: none;
}

.tc-article-comments textarea {
	min-height: 150px;
	resize: vertical;
}

.tc-article-comments :is(input, textarea):focus {
	border-color: var(--tc-article-cyan);
	box-shadow: 0 0 0 3px rgba(54, 153, 185, .15);
	outline: 0;
}

.tc-article-comments :is(input[type="submit"], button[type="submit"]) {
	min-height: 50px;
	padding: 12px 24px;
	border: 0;
	border-radius: 999px;
	background: var(--tc-article-navy);
	color: #fff;
	cursor: pointer;
	font-weight: 800;
}

.tc-article-comments :is(input[type="submit"], button[type="submit"]):hover {
	background: var(--tc-article-cyan);
}

.tc-article-page :is(a, button, input, textarea):focus-visible {
	outline: 3px solid #69bfd8;
	outline-offset: 3px;
}

@media (max-width: 1199px) {
	.tc-article-layout {
		grid-template-columns: 52px minmax(0, 690px) 260px;
		gap: 28px;
	}

	.tc-article-sidecard {
		padding: 24px;
	}
}

@media (max-width: 991px) {
	.tc-article-hero {
		padding-bottom: 150px;
	}

	.tc-article-layout {
		grid-template-columns: minmax(0, 760px);
	}

	.tc-article-share {
		position: static;
		flex-direction: row;
		justify-content: space-between;
		padding-bottom: 20px;
		border-bottom: 1px solid var(--tc-article-line);
	}

	.tc-article-share > span {
		writing-mode: initial;
	}

	.tc-article-share > div {
		display: flex;
	}

	.tc-article-copy-status {
		top: 100%;
		left: auto;
		right: 0;
		transform: none;
	}

	.tc-article-sidecard {
		position: static;
		display: grid;
		grid-template-columns: 56px minmax(0, 1fr) auto;
		gap: 8px 20px;
		align-items: center;
	}

	.tc-article-sidecard__icon {
		grid-row: 1 / span 3;
		margin: 0;
	}

	.tc-article-sidecard__eyebrow,
	.tc-article-sidecard h2,
	.tc-article-sidecard p {
		grid-column: 2;
	}

	.tc-article-sidecard p {
		margin: 4px 0 0;
	}

	.tc-article-sidecard > a {
		grid-column: 3;
		grid-row: 1 / span 3;
		width: auto;
	}

	.tc-article-related__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.tc-article-related-card:last-child {
		display: none;
	}
}

@media (max-width: 767px) {
	.tc-article-hero {
		padding: 42px 0 112px;
	}

	.tc-article-breadcrumb {
		margin-bottom: 30px;
	}

	.tc-article-hero h1 {
		font-size: clamp(34px, 10.4vw, 46px);
		line-height: 1.08;
		overflow-wrap: anywhere;
		white-space: normal;
		text-wrap: wrap;
	}

	.tc-article-deck {
		font-size: 16px;
		overflow-wrap: anywhere;
	}

	.tc-article-meta {
		align-items: flex-start;
		flex-direction: column;
		gap: 10px;
	}

	.tc-article-featured-wrap {
		margin-top: -74px;
		padding-right: 16px;
		padding-left: 16px;
	}

	.tc-article-featured {
		border-width: 4px;
		border-radius: 20px;
	}

	.tc-article-featured img {
		height: clamp(240px, 68vw, 390px);
	}

	.tc-article-reading {
		padding: 52px 0 50px;
	}

	.tc-article-layout {
		gap: 30px;
	}

	.tc-article-body,
	.tc-article-body ul,
	.tc-article-body ol {
		font-size: 17px;
	}

	.tc-article-body > p:first-child {
		font-size: 19px;
	}

	.tc-article-body blockquote {
		padding: 26px 24px 26px 56px;
		font-size: 18px;
	}

	.tc-article-body blockquote::before {
		left: 20px;
	}

	.tc-article-sidecard {
		display: block;
	}

	.tc-article-sidecard__icon {
		margin-bottom: 20px;
	}

	.tc-article-sidecard p {
		margin: 14px 0 21px;
	}

	.tc-article-sidecard > a {
		width: 100%;
	}

	.tc-article-author {
		grid-template-columns: 64px minmax(0, 1fr);
		gap: 18px;
		padding: 24px 20px;
	}

	.tc-article-author__mark {
		width: 62px;
		height: 62px;
		font-size: 21px;
	}

	.tc-article-navigation {
		grid-template-columns: 1fr;
		margin-bottom: 68px;
	}

	.tc-article-section-heading {
		align-items: flex-start;
		flex-direction: column;
	}

	.tc-article-related {
		padding: 64px 0 72px;
	}

	.tc-article-related__grid {
		grid-template-columns: 1fr;
	}

	.tc-article-related-card:last-child {
		display: block;
	}

	.tc-article-comments-section {
		padding: 64px 0 72px;
	}

	.tc-article-comments {
		padding: 25px 20px;
		border-radius: 20px;
	}

	.tc-article-comments .tc-comment-fields {
		grid-template-columns: 1fr;
		gap: 0;
	}
}

@media (prefers-reduced-motion: reduce) {
	.tc-article-page *,
	.tc-article-page *::before,
	.tc-article-page *::after {
		scroll-behavior: auto !important;
		transition-duration: .01ms !important;
	}
}

/*
 * Formularios de reserva del single tour.
 * Solo redefine la capa visual del markup nativo de Traveler: sus nombres,
 * eventos, disponibilidad, cálculo de precios y envío permanecen intactos.
 */
.tc-tour-theme-booking .st-form-book-wrapper {
	position: relative;
	padding: 0 !important;
	border: 1px solid rgba(1, 52, 96, .1) !important;
	border-radius: 26px !important;
	background: #fff !important;
	box-shadow: 0 24px 64px rgba(1, 52, 96, .14) !important;
	overflow: hidden;
}

.tc-tour-theme-booking .form-booking-price {
	position: relative;
	min-height: 112px;
	margin: 0 !important;
	padding: 24px 26px !important;
	border: 0 !important;
	background:
		radial-gradient(circle at 91% 8%, rgba(99, 202, 227, .24) 0 62px, transparent 63px),
		linear-gradient(135deg, var(--tc-tour-navy-deep) 0%, var(--tc-tour-navy) 68%, #07577b 100%) !important;
	color: #fff;
}

.tc-tour-theme-booking .form-booking-price::after {
	content: "";
	position: absolute;
	right: 26px;
	bottom: 0;
	left: 26px;
	height: 1px;
	background: rgba(255, 255, 255, .14);
}

.tc-tour-theme-booking .st-form-head-book {
	position: relative;
	z-index: 1;
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	gap: 16px;
	min-height: 64px;
}

.tc-tour-theme-booking .st-price-origin {
	display: flex !important;
	align-items: flex-start !important;
	flex-direction: column;
	gap: 5px;
}

.tc-tour-theme-booking .form-booking-price .st-unit {
	color: #9bd8e9 !important;
	font-size: 10px !important;
	font-weight: 800 !important;
	line-height: 1.2;
	letter-spacing: .11em;
	text-transform: uppercase;
}

.tc-tour-theme-booking .form-booking-price .price,
.tc-tour-theme-booking .form-booking-price .price .item {
	color: #fff !important;
}

.tc-tour-theme-booking .form-booking-price .price .item {
	font-size: 32px !important;
	font-weight: 850 !important;
	line-height: 1 !important;
	letter-spacing: -.035em;
}

.tc-tour-theme-booking .st-review-score .reviews {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	min-height: 40px;
	padding: 9px 12px;
	border: 1px solid rgba(255, 255, 255, .18);
	border-radius: 999px;
	background: rgba(255, 255, 255, .1);
	color: rgba(255, 255, 255, .78) !important;
	font-size: 11px !important;
	line-height: 1.2;
	white-space: nowrap;
	backdrop-filter: blur(5px);
}

.tc-tour-theme-booking .st-review-score .stt-icon-star1 {
	color: #ffc05b !important;
	font-size: 14px !important;
}

.tc-tour-theme-booking .st-review-score .rate {
	color: #fff !important;
	font-size: 13px !important;
	font-weight: 800 !important;
}

.tc-tour-theme-booking .st-review-score .summary {
	color: rgba(255, 255, 255, .72) !important;
}

/* Consulta por correo. */
.tc-tour-theme-booking .inquiry-v2 {
	padding: 24px 26px 28px !important;
	background: linear-gradient(180deg, #f5fafc 0%, #fff 46%);
}

.tc-tour-theme-booking .inquiry-v2 .owner-info,
.tc-tour-theme-booking .inquiry-v2 .media,
.tc-tour-theme-booking .inquiry-v2 .form-st-send-mail,
.tc-tour-theme-booking .inquiry-v2 .st_send-mail-form,
.tc-tour-theme-booking .inquiry-v2 .form-wrapper {
	display: block;
	width: 100%;
	margin: 0 !important;
	padding: 0 !important;
}

.tc-tour-theme-booking .inquiry-v2 .form-wrapper > .row {
	display: block;
	margin: 0 !important;
}

.tc-tour-theme-booking .inquiry-v2 .form-wrapper > .row > [class*="col-"] {
	float: none;
	width: 100%;
	padding: 0 !important;
}

.tc-tour-theme-booking .inquiry-v2 .form-group {
	margin: 0 0 12px !important;
}

.tc-tour-theme-booking .inquiry-v2 .form-control {
	display: block;
	width: 100%;
	height: 54px;
	margin: 0;
	padding: 13px 16px;
	border: 1px solid #d8e7ed !important;
	border-radius: 14px !important;
	background: #fff !important;
	color: var(--tc-tour-ink) !important;
	box-shadow: 0 5px 16px rgba(1, 52, 96, .035) !important;
	font-family: inherit;
	font-size: 14px;
	line-height: 1.45;
	transition: border-color .18s ease, box-shadow .18s ease, background-color .18s ease;
}

.tc-tour-theme-booking .inquiry-v2 textarea.form-control {
	height: auto;
	min-height: 118px;
	resize: vertical;
}

.tc-tour-theme-booking .inquiry-v2 .form-control::placeholder {
	color: #667d8d;
	opacity: 1;
}

.tc-tour-theme-booking .inquiry-v2 .form-control:hover {
	border-color: #a9cbd8 !important;
}

.tc-tour-theme-booking .inquiry-v2 .form-control:focus {
	border-color: var(--tc-tour-cyan) !important;
	background: #fff !important;
	box-shadow: 0 0 0 4px rgba(54, 153, 185, .15) !important;
	outline: 0;
}

.tc-tour-theme-booking .inquiry-v2 .text-center {
	text-align: initial !important;
}

.tc-tour-theme-booking .inquiry-v2 #submit.sent-email-st {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 56px;
	margin: 4px 0 0;
	padding: 14px 20px;
	border: 0 !important;
	border-radius: 15px !important;
	background: linear-gradient(135deg, var(--tc-tour-orange), #d9653b) !important;
	color: #fff !important;
	box-shadow: 0 12px 24px rgba(225, 118, 78, .24) !important;
	cursor: pointer;
	font-family: inherit;
	font-size: 14px;
	font-weight: 800;
	line-height: 1.2;
	text-transform: none;
	touch-action: manipulation;
	transition: background-color .18s ease, box-shadow .18s ease;
}

.tc-tour-theme-booking .inquiry-v2 #submit.sent-email-st:hover,
.tc-tour-theme-booking .inquiry-v2 #submit.sent-email-st:focus-visible {
	background: linear-gradient(135deg, #d96a42, #c95631) !important;
	box-shadow: 0 14px 28px rgba(201, 86, 49, .3) !important;
	outline: 3px solid rgba(54, 153, 185, .28);
	outline-offset: 3px;
}

/* Reserva inmediata: fecha, horario, pasajeros, total y CTA. */
.tc-tour-theme-booking .st-form-booking-action {
	padding: 24px 26px 28px !important;
	background: linear-gradient(180deg, #f5fafc 0%, #fff 48%);
}

.tc-tour-theme-booking .st-form-booking-action .tour-booking-form,
.tc-tour-theme-booking .st-form-booking-action .st-group-form {
	width: 100%;
	margin: 0 !important;
}

.tc-tour-theme-booking .st-form-booking-action .st-group-form {
	border: 1px solid #d8e7ed;
	border-radius: 18px;
	background: #fff;
	box-shadow: 0 8px 24px rgba(1, 52, 96, .055);
	overflow: hidden;
}

.tc-tour-theme-booking .st-group-form .form-group {
	position: relative;
	margin: 0 !important;
	border: 0 !important;
	border-bottom: 1px solid #dce9ee !important;
	border-radius: 0 !important;
	background: #fff !important;
	box-shadow: none !important;
}

.tc-tour-theme-booking .st-group-form .form-group:last-child {
	border-bottom: 0 !important;
}

.tc-tour-theme-booking .st-group-form .form-group:focus-within {
	z-index: 2;
	box-shadow: inset 4px 0 0 var(--tc-tour-cyan) !important;
}

.tc-tour-theme-booking .st-group-form .date-wrapper {
	position: relative;
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	min-height: 74px;
	padding: 14px 18px 14px 22px !important;
	cursor: pointer;
}

.tc-tour-theme-booking .st-group-form .date-wrapper::before {
	content: "";
	position: absolute;
	top: 18px;
	bottom: 18px;
	left: 0;
	width: 4px;
	border-radius: 0 4px 4px 0;
	background: var(--tc-tour-cyan);
}

.tc-tour-theme-booking .st-group-form .check-in-wrapper label,
.tc-tour-theme-booking .st-group-form #starttime_box > label {
	display: block;
	margin: 0 0 5px !important;
	color: var(--tc-tour-muted) !important;
	font-family: inherit;
	font-size: 10px !important;
	font-weight: 800 !important;
	line-height: 1.2;
	letter-spacing: .09em;
	text-transform: uppercase;
}

.tc-tour-theme-booking .st-group-form .check-in-wrapper .render {
	color: var(--tc-tour-navy-deep) !important;
	font-size: 14px !important;
	font-weight: 750 !important;
	line-height: 1.35;
}

.tc-tour-theme-booking .st-group-form .date-wrapper > i {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	border-radius: 10px;
	background: var(--tc-tour-cyan-soft);
	color: var(--tc-tour-cyan) !important;
	font-size: 12px;
}

.tc-tour-theme-booking .st-group-form .check-in-out-input {
	position: absolute;
	z-index: 3;
	inset: 0;
	width: 100%;
	height: 100%;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	color: transparent;
	cursor: pointer;
	caret-color: transparent;
	opacity: .01;
}

.tc-tour-theme-booking .st-group-form .check-in-out-input:focus-visible {
	opacity: 1;
	outline: 3px solid rgba(54, 153, 185, .32);
	outline-offset: -3px;
}

.tc-tour-theme-booking .st-group-form .st-form-starttime {
	padding: 14px 18px 16px !important;
}

.tc-tour-theme-booking .st-group-form #starttime_box .form-control {
	width: 100%;
	height: 48px;
	margin: 0;
	padding: 0 40px 0 13px;
	border: 1px solid #d8e7ed !important;
	border-radius: 12px !important;
	background: #f7fafb !important;
	color: var(--tc-tour-navy-deep) !important;
	box-shadow: none !important;
	font-family: inherit;
	font-size: 13px;
	font-weight: 700;
	cursor: pointer;
}

.tc-tour-theme-booking .st-group-form #starttime_box .form-control:hover {
	border-color: #a9cbd8 !important;
}

.tc-tour-theme-booking .st-group-form #starttime_box .form-control:focus {
	border-color: var(--tc-tour-cyan) !important;
	box-shadow: 0 0 0 4px rgba(54, 153, 185, .14) !important;
	outline: 0;
}

.tc-tour-theme-booking .st-group-form .guest-wrapper {
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	gap: 14px;
	min-height: 78px;
	padding: 15px 16px 15px 22px !important;
}

.tc-tour-theme-booking .st-group-form .guest-wrapper + .guest-wrapper {
	border-top: 1px solid #dce9ee;
}

.tc-tour-theme-booking .st-group-form .guest-wrapper .check-in-wrapper label {
	margin-bottom: 5px !important;
	color: var(--tc-tour-navy-deep) !important;
	font-size: 13px !important;
	letter-spacing: 0;
	text-transform: none;
}

.tc-tour-theme-booking .st-group-form .guest-wrapper .check-in-wrapper .render {
	color: var(--tc-tour-muted) !important;
	font-size: 11px !important;
	font-weight: 550 !important;
}

.tc-tour-theme-booking .st-group-form .st-number-wrapper {
	display: flex !important;
	align-items: center;
	gap: 6px;
}

.tc-tour-theme-booking .st-group-form .st-number-wrapper > span {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: 40px !important;
	height: 40px !important;
	border: 1px solid #c5dbe4 !important;
	border-radius: 12px !important;
	background: #fff !important;
	color: var(--tc-tour-navy) !important;
	cursor: pointer;
	touch-action: manipulation;
	transition: border-color .18s ease, background-color .18s ease, color .18s ease;
}

.tc-tour-theme-booking .st-group-form .st-number-wrapper > span:hover,
.tc-tour-theme-booking .st-group-form .st-number-wrapper > span:focus-visible {
	border-color: var(--tc-tour-cyan) !important;
	background: var(--tc-tour-cyan-soft) !important;
	color: var(--tc-tour-navy-deep) !important;
	outline: 3px solid rgba(54, 153, 185, .16);
	outline-offset: 2px;
}

.tc-tour-theme-booking .st-group-form .st-number-wrapper input.form-control {
	width: 28px !important;
	height: 40px !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: transparent !important;
	color: var(--tc-tour-navy-deep) !important;
	box-shadow: none !important;
	font-family: inherit;
	font-size: 14px !important;
	font-weight: 800 !important;
	text-align: center;
}

.tc-tour-theme-booking .total-price-book {
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	gap: 16px;
	min-height: 72px;
	margin: 18px 0 14px !important;
	padding: 15px 18px !important;
	border: 1px solid #cfe6ee;
	border-radius: 16px;
	background: var(--tc-tour-cyan-soft);
}

.tc-tour-theme-booking .total-price-book h5 {
	margin: 0 !important;
	color: var(--tc-tour-navy-deep) !important;
	font-size: 15px !important;
	font-weight: 800 !important;
	line-height: 1.2;
}

.tc-tour-theme-booking .total-price-book .price .item {
	color: var(--tc-tour-navy) !important;
	font-size: 25px !important;
	font-weight: 850 !important;
	letter-spacing: -.025em;
}

.tc-tour-theme-booking .st-form-booking-action .submit-group {
	margin: 0 !important;
}

.tc-tour-theme-booking .st-form-booking-action .btn-book-ajax {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	gap: 10px;
	width: 100%;
	min-height: 56px;
	margin: 0;
	padding: 14px 20px;
	border: 0 !important;
	border-radius: 15px !important;
	background: linear-gradient(135deg, var(--tc-tour-orange), #d9653b) !important;
	color: #fff !important;
	box-shadow: 0 12px 24px rgba(225, 118, 78, .24) !important;
	cursor: pointer;
	font-family: inherit;
	font-size: 14px;
	font-weight: 800;
	line-height: 1.2;
	text-transform: none;
	touch-action: manipulation;
	transition: background-color .18s ease, box-shadow .18s ease;
}

.tc-tour-theme-booking .st-form-booking-action .btn-book-ajax:hover,
.tc-tour-theme-booking .st-form-booking-action .btn-book-ajax:focus-visible {
	background: linear-gradient(135deg, #d96a42, #c95631) !important;
	box-shadow: 0 14px 28px rgba(201, 86, 49, .3) !important;
	outline: 3px solid rgba(54, 153, 185, .28);
	outline-offset: 3px;
}

.tc-tour-theme-booking .loader-wrapper {
	border-radius: 0 0 24px 24px;
	background: rgba(255, 255, 255, .86);
	backdrop-filter: blur(4px);
}

.tc-tour-theme-booking .message-wrapper:empty,
.tc-tour-theme-booking .message-wrapper-sendemail:empty {
	display: none;
}

@media (max-width: 767px) {
	.tc-tour-theme-booking .st-form-book-wrapper {
		border-radius: 22px !important;
	}

	.tc-tour-theme-booking .form-booking-price {
		min-height: 102px;
		padding: 20px !important;
	}

	.tc-tour-theme-booking .form-booking-price::after {
		right: 20px;
		left: 20px;
	}

	.tc-tour-theme-booking .form-booking-price .price .item {
		font-size: 29px !important;
	}

	.tc-tour-theme-booking .st-review-score .reviews {
		padding: 8px 10px;
	}

	.tc-tour-theme-booking .st-review-score .summary {
		display: none;
	}

	.tc-tour-theme-booking .inquiry-v2,
	.tc-tour-theme-booking .st-form-booking-action {
		padding: 20px !important;
	}
}

/* Evita que el acceso de volver arriba cubra el total o el CTA del sidebar. */
@media (min-width: 992px) {
	body.single-st_tours .scroll-top {
		right: auto;
		left: 24px;
	}
}

/* En formularios largos el control fijo puede tapar campos o acciones. */
body.woocommerce-cart .scroll-top,
body.page-template-template-checkout .scroll-top {
	display: none !important;
}

@media (prefers-reduced-motion: reduce) {
	.tc-tour-theme-booking *,
	.tc-tour-theme-booking *::before,
	.tc-tour-theme-booking *::after {
		transition-duration: .01ms !important;
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
	}
}

/* ========================================================================== 
   Carrito y checkout · ajuste de jerarquía, tarjetas y espaciado
   ========================================================================== */
.tc-commerce-page .woocommerce-message,
.tc-commerce-page .woocommerce-info,
.tc-commerce-page .woocommerce-error,
.tc-checkout-page .alert {
	margin: 0 0 20px !important;
	padding: 14px 16px !important;
	border: 1px solid var(--tc-flow-line) !important;
	border-radius: 14px !important;
	background: #f5fafc !important;
	color: var(--tc-flow-ink) !important;
	font-size: 13px !important;
	line-height: 1.55;
}

/* Carrito: cada bloque conserva aire y una jerarquía más compacta. */
.tc-cart-page .st-woo-cartpage {
	gap: 28px;
}

.tc-cart-page .st-woo-heading {
	margin-bottom: 16px;
	font-size: 21px;
	line-height: 1.25;
}

.tc-cart-page table.shop_table {
	border-radius: 20px;
	box-shadow: 0 14px 38px rgba(1, 52, 96, .065);
}

.tc-cart-page table.shop_table th {
	padding: 15px 16px;
}

.tc-cart-page table.shop_table td {
	padding: 18px 16px;
	font-size: 13px;
	line-height: 1.5;
}

.tc-cart-page table.shop_table .product-thumbnail img {
	width: 88px;
	height: 72px;
	border-radius: 12px;
}

.tc-cart-page .booking-item-title,
.tc-cart-page .booking-item-title a,
.tc-cart-page table.shop_table .product-name,
.tc-cart-page table.shop_table .product-name a {
	color: var(--tc-flow-navy-deep) !important;
	font-size: 14px !important;
	font-weight: 800 !important;
	line-height: 1.4;
}

.tc-cart-page .booking-item-address,
.tc-cart-page .variation,
.tc-cart-page .wc-item-meta,
.tc-cart-page .wc-item-meta li {
	margin: 5px 0 0;
	padding: 0;
	color: var(--tc-flow-muted);
	font-size: 11px;
	line-height: 1.55;
}

.tc-cart-page .cart-collaterals {
	padding: 24px;
	border-radius: 20px;
	box-shadow: 0 16px 42px rgba(1, 52, 96, .085);
}

.tc-cart-page .cart_totals h2 {
	display: block;
	margin: 0 0 12px;
	color: var(--tc-flow-navy-deep);
	font-size: 21px;
	font-weight: 800;
	line-height: 1.25;
}

.tc-cart-page .cart_totals table th,
.tc-cart-page .cart_totals table td {
	padding: 13px 0;
	font-size: 12px;
	line-height: 1.45;
}

.tc-cart-page .cart_totals table th {
	color: var(--tc-flow-muted);
	font-weight: 650;
}

.tc-cart-page .cart_totals table td {
	color: var(--tc-flow-navy-deep);
	font-weight: 800;
	text-align: right;
}

.tc-cart-page .cart_totals .order-total th,
.tc-cart-page .cart_totals .order-total td,
.tc-cart-page .cart_totals .order-total .amount {
	color: var(--tc-flow-navy) !important;
	font-size: 16px !important;
	font-weight: 850 !important;
}

.tc-cart-page .wc-proceed-to-checkout {
	padding-top: 18px;
}

.tc-cart-page .wc-proceed-to-checkout .checkout-button {
	min-height: 54px;
	border-radius: 14px !important;
	background: linear-gradient(135deg, var(--tc-flow-orange), #d9653b) !important;
	border-color: transparent !important;
	box-shadow: 0 12px 24px rgba(225, 118, 78, .24);
}

.tc-cart-page .wc-proceed-to-checkout .checkout-button:hover,
.tc-cart-page .wc-proceed-to-checkout .checkout-button:focus-visible {
	background: linear-gradient(135deg, #d96a42, #c95631) !important;
	border-color: transparent !important;
}

.tc-cart-page .actions .coupon {
	align-items: center;
}

.tc-cart-page .actions .coupon .input-text {
	flex: 1 1 auto;
	padding: 11px 14px !important;
	font-size: 13px;
}

.tc-cart-page .actions .coupon .button,
.tc-cart-page table.shop_table td.actions > .button {
	min-height: 46px;
	padding: 11px 17px !important;
	border-radius: 12px !important;
}

.tc-cart-page .tc-empty-state {
	padding: 48px 36px;
	border-radius: 24px;
}

.tc-cart-page .tc-empty-state h2 {
	font-size: clamp(27px, 3vw, 34px);
}

/* Checkout: formulario principal y resumen con escalas independientes. */
.tc-checkout-layout {
	grid-template-columns: minmax(0, 1fr) minmax(320px, 360px);
	gap: 28px;
}

.tc-checkout-card {
	padding: 30px;
	border-radius: 24px;
}

.tc-checkout-summary {
	padding: 24px;
	border-radius: 22px;
	box-shadow: 0 16px 44px rgba(1, 52, 96, .085);
}

.tc-checkout-card > .tc-commerce-eyebrow,
.tc-checkout-summary > .tc-commerce-eyebrow {
	margin-bottom: 6px;
	font-size: 23px;
}

.tc-checkout-card > h2 {
	font-size: clamp(25px, 2.5vw, 31px);
	line-height: 1.2;
}

.tc-checkout-summary > h2 {
	font-size: 25px;
	line-height: 1.22;
}

.tc-checkout-card__intro {
	max-width: 64ch;
	margin: 10px 0 24px;
	font-size: 13px;
	line-height: 1.65;
}

.tc-checkout-card #cc-form {
	margin-top: 0;
}

.tc-checkout-card #cc-form > .clearfix > .row {
	margin-right: -8px;
	margin-left: -8px;
}

.tc-checkout-card #cc-form > .clearfix > .row > [class*="col-"] {
	padding-right: 8px;
	padding-left: 8px;
}

.tc-checkout-page .form-group,
.tc-checkout-page .form-row {
	position: relative;
	margin-bottom: 15px;
}

.tc-checkout-page label {
	margin-bottom: 6px;
	font-size: 12px;
	line-height: 1.4;
}

.tc-checkout-page .require {
	color: #bd4d3d;
}

.tc-checkout-page :is(input[type="text"], input[type="email"], input[type="tel"], input[type="password"], input[type="number"], select, textarea) {
	min-height: 50px;
	padding: 11px 14px;
	border-color: #b7ccd5;
	border-radius: 12px;
	background: #fbfdfe;
	font-size: 14px;
	line-height: 1.45;
	transition: border-color .18s ease, box-shadow .18s ease, background-color .18s ease;
}

.tc-checkout-page :is(input[type="text"], input[type="email"], input[type="tel"], input[type="password"], input[type="number"]):hover,
.tc-checkout-page select:hover,
.tc-checkout-page textarea:hover {
	border-color: #91b6c5;
}

.tc-checkout-page :is(input, select, textarea):focus {
	border-color: var(--tc-flow-cyan) !important;
	background: #fff !important;
	box-shadow: 0 0 0 4px rgba(54, 153, 185, .14) !important;
	outline: 0 !important;
}

.tc-checkout-page textarea {
	min-height: 100px;
}

.tc-checkout-card .form-group-icon-left .input-icon {
	right: 14px;
	left: auto;
	color: #7292a1;
	font-size: 13px;
}

.tc-checkout-card .form-group-icon-left .form-control {
	padding-right: 42px;
	padding-left: 14px;
}

.tc-checkout-card .payment_gateways {
	margin: 3px 0 0;
}

.tc-checkout-card .payment_gateways .payment-item {
	margin: 0;
	border: 1px solid #d7e6ec;
	border-radius: 14px;
	background: #f7fbfc;
	overflow: hidden;
}

.tc-checkout-card .payment_gateways .st-icheck-item > label {
	display: flex;
	align-items: center;
	gap: 10px;
	min-height: 54px;
	margin: 0;
	padding: 10px 14px;
	cursor: pointer;
}

.tc-checkout-card .payment_gateways .payment-title {
	color: var(--tc-flow-navy-deep);
	font-size: 12px;
	font-weight: 800;
}

.tc-checkout-card .payment_gateways img {
	width: auto !important;
	max-width: 92px;
	height: 26px !important;
	margin-left: auto;
	object-fit: contain;
}

.tc-checkout-card .payment_gateways .dropdown-menu {
	padding: 14px;
	border: 0;
	border-top: 1px solid #d7e6ec;
	background: #fff;
	font-size: 12px;
	line-height: 1.55;
}

.tc-checkout-card :is(.st_check_create_account, .st_check_term_conditions) {
	margin: 10px 0 0;
	padding: 11px 13px;
	border: 1px solid #dce8ed;
	border-radius: 12px;
	background: #fff;
}

.tc-checkout-card :is(.st_check_create_account, .st_check_term_conditions) .st-icheck-item > label {
	display: flex;
	align-items: flex-start;
	min-height: 24px;
	margin: 0;
	cursor: pointer;
}

.tc-checkout-card :is(.st_check_create_account, .st_check_term_conditions) .payment-title {
	color: var(--tc-flow-ink);
	font-size: 11px;
	font-weight: 650;
	line-height: 1.5;
}

.tc-checkout-card :is(.st_check_create_account, .st_check_term_conditions) a {
	color: var(--tc-flow-cyan);
	font-weight: 800;
}

.tc-checkout-card .btn-st-checkout-submit {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	gap: 10px;
	width: 100%;
	min-height: 56px;
	margin-top: 16px;
	padding: 14px 20px !important;
	border: 0 !important;
	border-radius: 14px !important;
	background: linear-gradient(135deg, var(--tc-flow-orange), #d9653b) !important;
	color: #fff !important;
	box-shadow: 0 12px 24px rgba(225, 118, 78, .24);
	font-size: 14px !important;
	font-weight: 800 !important;
	line-height: 1.2;
	touch-action: manipulation;
}

.tc-checkout-card .btn-st-checkout-submit:hover,
.tc-checkout-card .btn-st-checkout-submit:focus-visible {
	background: linear-gradient(135deg, #d96a42, #c95631) !important;
	box-shadow: 0 14px 28px rgba(201, 86, 49, .3);
	outline: 3px solid rgba(54, 153, 185, .28);
	outline-offset: 3px;
}

/* Resumen: elimina viñetas heredadas y convierte cada dato en una fila legible. */
.tc-checkout-summary .booking-item-payment {
	margin-top: 18px;
}

.tc-checkout-summary .booking-item-payment .service-section {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 82px;
	gap: 14px;
	align-items: start;
	padding: 16px;
	border: 1px solid #d9e7ed;
	border-radius: 16px;
	background: #f7fbfc;
}

.tc-checkout-summary .service-left,
.tc-checkout-summary .service-right {
	float: none;
	width: auto;
	min-width: 0;
}

.tc-checkout-summary .service-left .title {
	margin: 0;
	font-size: 17px !important;
	font-weight: 800;
	line-height: 1.35;
	letter-spacing: -.015em;
}

.tc-checkout-summary .service-left .title a {
	color: var(--tc-flow-navy-deep) !important;
	font-size: inherit !important;
	line-height: inherit;
}

.tc-checkout-summary .service-left .address {
	display: flex;
	align-items: center;
	gap: 5px;
	margin: 9px 0 0;
	color: var(--tc-flow-muted);
	font-size: 11px;
	line-height: 1.45;
}

.tc-checkout-summary .service-left .address .input-icon {
	position: static;
	width: 14px;
	height: 14px;
	margin: 0;
}

.tc-checkout-summary .service-right img {
	display: block;
	width: 82px !important;
	height: 82px !important;
	border-radius: 12px;
	object-fit: cover;
}

.tc-checkout-summary .info-section {
	margin-top: 12px;
	padding: 0 2px;
}

.tc-checkout-summary .info-section ul,
.tc-checkout-summary .total-section ul,
.tc-checkout-summary .info-section li,
.tc-checkout-summary .total-section li {
	margin: 0;
	padding-left: 0;
	list-style: none;
}

.tc-checkout-summary .info-section > ul > li:not(.ad-info),
.tc-checkout-summary .info-section .ad-info > ul > li,
.tc-checkout-summary .total-section > ul > li {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 14px;
	padding: 10px 0;
	border-bottom: 1px solid #e3edf1;
}

.tc-checkout-summary .info-section .ad-info {
	padding: 0;
}

.tc-checkout-summary .info-section .ad-info > ul {
	margin: 0;
	padding: 0;
}

.tc-checkout-summary .info-section .label,
.tc-checkout-summary .total-section .label {
	flex: 1 1 auto;
	color: var(--tc-flow-muted);
	font-size: 11px;
	font-weight: 650;
	line-height: 1.45;
}

.tc-checkout-summary .info-section .value,
.tc-checkout-summary .total-section .value {
	flex: 0 1 auto;
	color: var(--tc-flow-navy-deep);
	font-size: 12px;
	font-weight: 800;
	line-height: 1.45;
	text-align: right;
}

.tc-checkout-summary .info-section .st-link {
	display: inline-flex;
	align-items: center;
	min-height: 28px;
	margin-left: 5px;
	padding: 4px 8px;
	border-radius: 8px;
	background: var(--tc-tour-cyan-soft);
	color: var(--tc-flow-cyan) !important;
	font-size: 10px !important;
	font-weight: 800;
}

.tc-checkout-summary .coupon-section {
	margin: 16px 0;
	padding: 15px;
	border: 1px solid #d7e7ed;
	border-radius: 14px;
	background: #f5fafc;
}

.tc-checkout-summary .coupon-section h5 {
	margin: 0 0 9px;
	color: var(--tc-flow-navy-deep);
	font-size: 12px !important;
	font-weight: 800;
	line-height: 1.35;
}

.tc-checkout-summary .coupon-section .form-group {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 8px;
	margin: 0;
}

.tc-checkout-summary .coupon-section input[type="text"] {
	min-width: 0;
	min-height: 44px;
	padding: 9px 11px;
	border-radius: 10px;
	font-size: 12px;
}

.tc-checkout-summary .coupon-section button {
	min-height: 44px;
	padding: 10px 14px !important;
	border-radius: 10px !important;
	background: var(--tc-flow-navy) !important;
	font-size: 11px !important;
}

.tc-checkout-summary .total-section {
	margin-top: 2px;
}

.tc-checkout-summary .total-section .payment-amount {
	align-items: center;
	margin-top: 10px;
	padding: 14px !important;
	border: 0 !important;
	border-radius: 13px;
	background: var(--tc-flow-navy);
}

.tc-checkout-summary .total-section .payment-amount .label {
	color: rgba(255, 255, 255, .72) !important;
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: .07em;
}

.tc-checkout-summary .total-section .payment-amount .value {
	color: #fff !important;
	font-size: 21px;
	font-weight: 850;
}

.tc-checkout-summary .tc-checkout-trust {
	gap: 9px;
	margin-top: 18px;
	padding-top: 18px;
}

.tc-checkout-summary .tc-checkout-trust li {
	font-size: 11px;
	line-height: 1.45;
}

@media (max-width: 991px) {
	.tc-checkout-layout {
		gap: 22px;
	}

	.tc-checkout-summary {
		order: -1;
	}
}

@media (max-width: 767px) {
	.tc-cart-page .tc-empty-state {
		padding: 38px 22px;
	}

	.tc-cart-page table.shop_table_responsive tr.cart_item {
		padding: 14px;
	}

	.tc-cart-page table.shop_table_responsive tr.cart_item td {
		grid-template-columns: 92px minmax(0, 1fr);
		padding: 9px 0;
	}

	.tc-cart-page .cart-collaterals,
	.tc-checkout-card,
	.tc-checkout-summary {
		padding: 20px;
		border-radius: 19px;
	}

	.tc-checkout-card > .tc-commerce-eyebrow,
	.tc-checkout-summary > .tc-commerce-eyebrow {
		font-size: 21px;
	}

	.tc-checkout-card > h2,
	.tc-checkout-summary > h2 {
		font-size: 23px;
	}

	.tc-checkout-card #cc-form > .clearfix > .row {
		margin-right: 0;
		margin-left: 0;
	}

	.tc-checkout-card #cc-form > .clearfix > .row > [class*="col-"] {
		padding-right: 0;
		padding-left: 0;
	}

	.tc-checkout-summary .booking-item-payment .service-section {
		grid-template-columns: minmax(0, 1fr) 72px;
		padding: 14px;
	}

	.tc-checkout-summary .service-right img {
		width: 72px !important;
		height: 72px !important;
	}

	.tc-checkout-summary .service-left .title {
		font-size: 15px !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	.tc-commerce-page *,
	.tc-commerce-page *::before,
	.tc-commerce-page *::after {
		transition-duration: .01ms !important;
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
	}
}

/* ========================================================================== 
   WooCommerce real · carrito y finalizar compra
   ========================================================================== */

/* Carrito: fuerza la composición principal sin competir con las columnas de Bootstrap. */
.tc-cart-page .st-woo-cartpage {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) minmax(300px, 340px) !important;
	gap: 28px !important;
	align-items: start;
	margin: 0 !important;
}

.tc-cart-page .st-woo-cartpage > .col-left,
.tc-cart-page .st-woo-cartpage > .col-right {
	flex: none !important;
	width: 100% !important;
	max-width: none !important;
	min-width: 0;
	padding: 0 !important;
}

.tc-cart-page .st-woo-heading {
	margin: 0 0 14px !important;
	color: var(--tc-flow-navy-deep, #062641) !important;
	font-size: 20px !important;
	font-weight: 800 !important;
	letter-spacing: -.02em;
	line-height: 1.3;
}

.tc-cart-page table.shop_table {
	table-layout: fixed;
}

.tc-cart-page table.shop_table thead th {
	padding: 14px 12px !important;
	border: 0 !important;
	border-bottom: 1px solid var(--tc-flow-line, #d5e4ea) !important;
	background: #f8fbfc !important;
	color: #607687 !important;
	font-size: 10px !important;
	letter-spacing: .08em;
}

.tc-cart-page table.shop_table thead .product-remove {
	width: 54px;
}

.tc-cart-page table.shop_table thead .product-thumbnail {
	width: 112px;
}

.tc-cart-page table.shop_table thead .product-price {
	width: 104px;
}

.tc-cart-page table.shop_table thead .product-quantity {
	width: 82px;
}

.tc-cart-page table.shop_table tr.cart_item td {
	padding: 18px 12px !important;
	border: 0 !important;
	border-bottom: 1px solid var(--tc-flow-line, #d5e4ea) !important;
	background: #fff !important;
}

.tc-cart-page table.shop_table .product-thumbnail > a {
	display: block;
}

.tc-cart-page table.shop_table .product-thumbnail > a:not(:has(img)) {
	display: grid;
	place-items: center;
	width: 92px;
	height: 76px;
	border-radius: 13px;
	background: #edf7fa;
	color: transparent !important;
	font-size: 0 !important;
}

.tc-cart-page table.shop_table .product-thumbnail > a:not(:has(img))::before {
	content: "\f03e";
	color: #78a9b9;
	font-family: "Font Awesome 5 Free", "FontAwesome", sans-serif;
	font-size: 19px;
	font-weight: 900;
}

.tc-cart-page table.shop_table .product-thumbnail img {
	width: 92px !important;
	height: 76px !important;
	border: 0 !important;
	border-radius: 13px !important;
	box-shadow: none !important;
	object-fit: cover;
}

.tc-cart-page table.shop_table .product-name {
	min-width: 250px;
}

.tc-cart-page table.shop_table .product-name .booking-item-title {
	margin: 0 0 7px;
}

.tc-cart-page table.shop_table .product-name :is(p, dl, ul) {
	margin-top: 7px;
	margin-bottom: 0;
}

.tc-cart-page table.shop_table .product-price,
.tc-cart-page table.shop_table .product-quantity {
	white-space: nowrap;
}

.tc-cart-page table.shop_table .product-price .amount {
	color: var(--tc-flow-cyan, #3699b9) !important;
	font-size: 17px !important;
	font-weight: 850 !important;
}

.tc-cart-page table.shop_table .product-quantity .quantity {
	display: inline-flex;
	justify-content: center;
}

.tc-cart-page table.shop_table .product-quantity input.qty {
	width: 58px !important;
	min-height: 42px !important;
	padding: 8px !important;
	text-align: center;
}

.tc-cart-page table.shop_table td.actions {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	padding: 16px !important;
	border: 0 !important;
	background: #f8fbfc !important;
}

.tc-cart-page table.shop_table td.actions .coupon {
	flex: 1 1 auto;
	max-width: 390px;
}

.tc-cart-page table.shop_table td.actions .coupon .input-text {
	width: auto !important;
	min-width: 0;
}

.tc-cart-page table.shop_table td.actions .button {
	min-height: 46px !important;
	border: 1px solid var(--tc-flow-navy, #013460) !important;
	border-radius: 12px !important;
	background: var(--tc-flow-navy, #013460) !important;
	color: #fff !important;
	box-shadow: none !important;
	font-size: 12px !important;
	font-weight: 800 !important;
	text-transform: none !important;
}

.tc-cart-page table.shop_table td.actions .button:hover,
.tc-cart-page table.shop_table td.actions .button:focus-visible {
	border-color: #075180 !important;
	background: #075180 !important;
	outline: 3px solid rgba(54, 153, 185, .2);
	outline-offset: 2px;
}

.tc-cart-page .cart-collaterals {
	position: sticky;
	top: 108px;
	padding: 22px !important;
	border: 1px solid var(--tc-flow-line, #d5e4ea) !important;
	border-radius: 20px !important;
	background: #fff !important;
	box-shadow: 0 16px 40px rgba(1, 52, 96, .085) !important;
}

.tc-cart-page .cart_totals table.shop_table {
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
}

.tc-cart-page .cart_totals table.shop_table :is(th, td) {
	padding: 13px 0 !important;
	border: 0 !important;
	border-bottom: 1px solid #e3edf1 !important;
	background: #fff !important;
}

.tc-cart-page .cart_totals .order-total :is(th, td) {
	padding-top: 16px !important;
	border-bottom: 0 !important;
}

.tc-cart-page .wc-proceed-to-checkout {
	padding: 18px 0 0 !important;
}

.tc-cart-page .wc-proceed-to-checkout .checkout-button {
	min-height: 54px !important;
	margin: 0 !important;
	border: 0 !important;
	border-radius: 14px !important;
	background: linear-gradient(135deg, var(--tc-flow-orange, #e1764e), #d9653b) !important;
	box-shadow: 0 12px 24px rgba(225, 118, 78, .24) !important;
	font-size: 13px !important;
	font-weight: 850 !important;
	text-transform: none !important;
}

/* Finalizar compra: diseño sobre el checkout nativo de WooCommerce. */
body.woocommerce-checkout #st-content-wrapper {
	padding-bottom: 92px;
	background: #f6fafc;
}

body.woocommerce-checkout #st-content-wrapper > .container {
	max-width: 1200px;
}

body.woocommerce-checkout .woocommerce-form-coupon-toggle {
	margin: 0 0 20px;
}

body.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info {
	margin: 0 !important;
	padding: 13px 16px !important;
	border: 1px solid #cfe2e9 !important;
	border-left: 4px solid var(--tc-flow-cyan, #3699b9) !important;
	border-radius: 13px !important;
	background: #edf7fa !important;
	color: var(--tc-flow-ink, #17344a) !important;
	font-size: 13px !important;
	line-height: 1.5;
}

body.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info::before {
	display: none !important;
}

body.woocommerce-checkout .woocommerce-form-coupon-toggle a {
	color: var(--tc-flow-navy, #013460) !important;
	font-weight: 800;
	text-underline-offset: 3px;
}

body.woocommerce-checkout form.checkout_coupon {
	margin: -8px 0 20px !important;
	padding: 18px !important;
	border: 1px solid #d5e4ea !important;
	border-radius: 14px !important;
	background: #fff !important;
}

body.woocommerce-checkout .st-woo-checkout-form > .row {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) minmax(310px, 360px) !important;
	gap: 28px;
	align-items: start;
	margin: 0 !important;
}

body.woocommerce-checkout .st-woo-checkout-form > .row > .col-sm-8,
body.woocommerce-checkout .st-woo-checkout-form > .row > .col-sm-4 {
	float: none !important;
	width: 100% !important;
	max-width: none !important;
	min-width: 0;
	padding: 0 !important;
}

body.woocommerce-checkout #customer_details,
body.woocommerce-checkout #order_review,
body.woocommerce-checkout .st-woo-checkout-form > .row > .col-sm-4 .booking-item-payment {
	border: 1px solid #d5e4ea;
	background: #fff;
	box-shadow: 0 16px 42px rgba(1, 52, 96, .075);
}

body.woocommerce-checkout #customer_details {
	margin: 0 !important;
	padding: 26px 28px 28px;
	border-radius: 22px;
}

body.woocommerce-checkout #customer_details h3 {
	margin: 0 0 22px !important;
	padding: 0 0 15px;
	border-bottom: 1px solid #e1ebef;
	color: var(--tc-flow-navy-deep, #062641) !important;
	font-size: 24px !important;
	font-weight: 850 !important;
	letter-spacing: -.025em;
	line-height: 1.25;
}

body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
	margin-top: 0 !important;
	padding-top: 0 !important;
	border-top: 0 !important;
}

body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper .form-row {
	float: none !important;
	width: auto !important;
	min-width: 0;
	margin: 0 !important;
	padding: 0 !important;
}

body.woocommerce-checkout #billing_country_field {
	grid-column: auto;
}

body.woocommerce-checkout .woocommerce-billing-fields label,
body.woocommerce-checkout form.checkout_coupon label {
	margin: 0 0 7px !important;
	color: var(--tc-flow-navy-deep, #062641) !important;
	font-size: 12px !important;
	font-weight: 750 !important;
	line-height: 1.4;
}

body.woocommerce-checkout .woocommerce-billing-fields .required {
	color: #b94b3d !important;
}

body.woocommerce-checkout :is(.woocommerce-billing-fields, form.checkout_coupon) :is(input.input-text, select:not(.select2-hidden-accessible), textarea),
body.woocommerce-checkout .select2-container .select2-selection--single {
	width: 100% !important;
	min-height: 50px !important;
	padding: 11px 13px !important;
	border: 1px solid #b7ccd5 !important;
	border-radius: 12px !important;
	background: #fbfdfe !important;
	color: var(--tc-flow-ink, #17344a) !important;
	box-shadow: none !important;
	font-size: 14px !important;
	line-height: 1.45 !important;
}

body.woocommerce-checkout .select2-container .select2-selection--single {
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}

body.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__rendered {
	padding: 14px 32px 12px 0 !important;
	color: var(--tc-flow-ink, #17344a) !important;
	line-height: 1.5 !important;
}

body.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow {
	top: 11px !important;
	right: 9px !important;
}

/* Traveler añadía un glifo encima del SVG de Select2 y generaba dos flechas. */
body.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow b {
	width: 16px !important;
	height: 16px !important;
	margin: 0 !important;
	border: 0 !important;
	background-position: center !important;
	background-repeat: no-repeat !important;
	background-size: 16px 16px !important;
}

body.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow b::before {
	display: none !important;
	content: none !important;
}

body.woocommerce-checkout select.select2-hidden-accessible {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	min-height: 0 !important;
	margin: -1px !important;
	padding: 0 !important;
	border: 0 !important;
	overflow: hidden !important;
	clip: rect(0 0 0 0) !important;
}

body.woocommerce-checkout :is(.woocommerce-billing-fields, form.checkout_coupon) :is(input.input-text, select:not(.select2-hidden-accessible), textarea):hover,
body.woocommerce-checkout .select2-container .select2-selection--single:hover {
	border-color: #8eb4c3 !important;
}

body.woocommerce-checkout :is(.woocommerce-billing-fields, form.checkout_coupon) :is(input.input-text, select:not(.select2-hidden-accessible), textarea):focus,
body.woocommerce-checkout .select2-container--open .select2-selection--single {
	border-color: var(--tc-flow-cyan, #3699b9) !important;
	background: #fff !important;
	box-shadow: 0 0 0 4px rgba(54, 153, 185, .14) !important;
	outline: 0 !important;
}

body.woocommerce-checkout #order_review {
	margin: 20px 0 0 !important;
	padding: 22px !important;
	border-radius: 20px;
}

body.woocommerce-checkout #payment {
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
}

body.woocommerce-checkout #payment ul.payment_methods {
	margin: 0 0 18px !important;
	padding: 0 !important;
	border: 0 !important;
}

body.woocommerce-checkout #payment ul.payment_methods li {
	margin: 0 !important;
	list-style: none;
}

body.woocommerce-checkout #payment .woocommerce-info {
	margin: 0 !important;
	padding: 14px 15px !important;
	border: 1px solid #d8e7ec !important;
	border-radius: 12px !important;
	background: #f4f9fb !important;
	color: #536d7d !important;
	font-size: 12px !important;
	line-height: 1.55;
}

body.woocommerce-checkout #payment .woocommerce-info::before {
	display: none !important;
}

body.woocommerce-checkout #payment .form-row.place-order {
	margin: 0 !important;
	padding: 0 !important;
}

body.woocommerce-checkout #place_order,
body.woocommerce-checkout form.checkout_coupon .button {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	min-height: 52px !important;
	padding: 13px 20px !important;
	border: 0 !important;
	border-radius: 13px !important;
	background: var(--tc-flow-navy, #013460) !important;
	color: #fff !important;
	box-shadow: 0 11px 22px rgba(1, 52, 96, .16) !important;
	font-size: 13px !important;
	font-weight: 850 !important;
	line-height: 1.2;
	text-transform: none !important;
}

body.woocommerce-checkout #place_order {
	float: none !important;
	width: 100% !important;
	background: linear-gradient(135deg, var(--tc-flow-orange, #e1764e), #d9653b) !important;
	box-shadow: 0 12px 24px rgba(225, 118, 78, .24) !important;
}

body.woocommerce-checkout :is(#place_order, form.checkout_coupon .button):hover,
body.woocommerce-checkout :is(#place_order, form.checkout_coupon .button):focus-visible {
	filter: brightness(.94);
	outline: 3px solid rgba(54, 153, 185, .24);
	outline-offset: 3px;
}

body.woocommerce-checkout .st-woo-checkout-form > .row > .col-sm-4 {
	position: sticky;
	top: 108px;
}

body.woocommerce-checkout .st-woo-checkout-form > .row > .col-sm-4 > .st-woo-heading {
	margin: 0 0 14px !important;
	color: var(--tc-flow-navy-deep, #062641) !important;
	font-size: 20px !important;
	font-weight: 850 !important;
	letter-spacing: -.02em;
	line-height: 1.3;
}

body.woocommerce-checkout .st-woo-checkout-form > .row > .col-sm-4 .booking-item-payment {
	margin: 0 !important;
	padding: 22px !important;
	border-radius: 20px !important;
}

body.woocommerce-checkout .booking-item-payment > header {
	display: grid;
	grid-template-columns: 82px minmax(0, 1fr);
	gap: 14px;
	align-items: start;
	padding: 0 0 18px;
	border-bottom: 1px solid #e1ebef;
}

body.woocommerce-checkout .booking-item-payment > header > .col-left {
	grid-column: 2;
	grid-row: 1;
	float: none !important;
	width: auto !important;
	min-width: 0;
	padding: 0 !important;
}

body.woocommerce-checkout .booking-item-payment-img {
	grid-column: 1;
	grid-row: 1 / span 2;
	float: none !important;
	width: 82px !important;
	margin: 0 !important;
}

body.woocommerce-checkout .booking-item-payment-img img {
	display: block;
	width: 82px !important;
	height: 82px !important;
	border: 0 !important;
	border-radius: 12px !important;
	box-shadow: none !important;
	object-fit: cover;
}

body.woocommerce-checkout .booking-item-payment-title {
	float: none !important;
	width: auto !important;
	margin: 2px 0 0 !important;
	padding: 0 !important;
	font-size: 14px !important;
	font-weight: 800 !important;
	line-height: 1.45 !important;
}

body.woocommerce-checkout .st-woo-checkout-form > .row > .col-sm-4 table.shop_table.booking-item-payment {
	width: 100%;
	margin: 18px 0 0 !important;
	border: 1px solid #dbe7ec !important;
	border-collapse: separate !important;
	border-spacing: 0 !important;
	border-radius: 13px !important;
	background: #fff !important;
	box-shadow: none !important;
	overflow: hidden;
}

body.woocommerce-checkout .st-woo-checkout-form > .row > .col-sm-4 table.shop_table.booking-item-payment :is(th, td) {
	padding: 13px 14px !important;
	border: 0 !important;
	border-bottom: 1px solid #e1ebef !important;
	background: #fff !important;
	color: var(--tc-flow-navy-deep, #062641) !important;
	font-size: 12px !important;
	font-weight: 750 !important;
	line-height: 1.45;
}

body.woocommerce-checkout .st-woo-checkout-form > .row > .col-sm-4 table.shop_table.booking-item-payment td {
	text-align: right;
}

body.woocommerce-checkout .st-woo-checkout-form > .row > .col-sm-4 table.shop_table.booking-item-payment .order-total :is(th, td) {
	border-bottom: 0 !important;
	background: #f2f8fa !important;
	font-size: 14px !important;
	font-weight: 850 !important;
}

body.woocommerce-checkout .st-woo-checkout-form > .row > .col-sm-4 table.shop_table.booking-item-payment .order-total .amount {
	color: var(--tc-flow-navy, #013460) !important;
	font-size: 16px !important;
}

body.woocommerce-checkout .booking-item-payment-title a {
	color: var(--tc-flow-navy-deep, #062641) !important;
}

body.woocommerce-checkout .booking-item-payment > header > .amount {
	grid-column: 2;
	color: var(--tc-flow-cyan, #3699b9) !important;
	font-size: 15px !important;
	font-weight: 850 !important;
}

body.woocommerce-checkout .booking-item-payment-details,
body.woocommerce-checkout .booking-item-payment-details ul {
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}

body.woocommerce-checkout .booking-item-payment-price > li {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 14px 0 !important;
	border-bottom: 1px solid #e3edf1;
}

body.woocommerce-checkout .booking-item-payment-price p {
	margin: 0 !important;
	font-size: 12px !important;
	line-height: 1.45;
}

body.woocommerce-checkout .booking-item-payment-price-title {
	color: var(--tc-flow-muted, #607687) !important;
	font-weight: 650;
}

body.woocommerce-checkout .booking-item-payment-price-amount {
	color: var(--tc-flow-navy-deep, #062641) !important;
	font-weight: 850 !important;
	text-align: right;
}

body.woocommerce-checkout .booking-item-payment-total {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	margin: 16px 0 0 !important;
	padding: 15px 16px !important;
	border-radius: 13px;
	background: var(--tc-flow-navy, #013460);
	color: rgba(255, 255, 255, .72) !important;
	font-size: 12px !important;
	font-weight: 750;
	text-transform: uppercase;
	letter-spacing: .06em;
}

body.woocommerce-checkout .booking-item-payment-total .amount {
	color: #fff !important;
	font-size: 20px !important;
	font-weight: 850 !important;
	letter-spacing: 0;
}

body.woocommerce-checkout .scroll-top {
	display: none !important;
}

@media (max-width: 991px) {
	.tc-cart-page .st-woo-cartpage,
	body.woocommerce-checkout .st-woo-checkout-form > .row {
		grid-template-columns: minmax(0, 1fr) !important;
	}

	.tc-cart-page .cart-collaterals,
	body.woocommerce-checkout .st-woo-checkout-form > .row > .col-sm-4 {
		position: static;
	}

	body.woocommerce-checkout .st-woo-checkout-form > .row > .col-sm-4 {
		order: -1;
	}
}

@media (max-width: 767px) {
	.tc-cart-page table.shop_table td.actions {
		display: grid;
		grid-template-columns: minmax(0, 1fr);
	}

	.tc-cart-page table.shop_table td.actions .coupon {
		display: grid;
		grid-template-columns: minmax(0, 1fr) auto;
		max-width: none;
	}

	.tc-cart-page table.shop_table td.actions > .button {
		width: 100%;
	}

	body.woocommerce-checkout #st-content-wrapper {
		padding-bottom: 64px;
	}

	body.woocommerce-checkout #customer_details,
	body.woocommerce-checkout #order_review,
	body.woocommerce-checkout .st-woo-checkout-form > .row > .col-sm-4 .booking-item-payment {
		padding: 20px !important;
		border-radius: 18px !important;
	}

	body.woocommerce-checkout #customer_details h3 {
		font-size: 21px !important;
	}

	body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper {
		grid-template-columns: minmax(0, 1fr);
	}

	body.woocommerce-checkout #billing_country_field {
		grid-column: auto;
	}
}

@media (prefers-reduced-motion: reduce) {
	body.woocommerce-checkout *,
	body.woocommerce-checkout *::before,
	body.woocommerce-checkout *::after {
		transition-duration: .01ms !important;
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
	}
}

/*
 * Pie de página: formulario de suscripción compacto.
 * El tema asigna 227 px mínimos y el padding de un CTA principal al botón;
 * aquí ambos controles comparten una altura más proporcionada sin perder la
 * zona táctil mínima recomendada.
 */
.footer-wrapper .newsletter-form {
	align-items: stretch;
	gap: 12px;
}

.footer-wrapper .newsletter-form .form-control {
	height: 56px;
	min-height: 56px;
	padding: 0 24px;
	border-color: #c9dce5;
	background-color: rgba(255, 255, 255, .48);
}

.footer-wrapper .newsletter-form .th-btn {
	width: auto;
	min-width: 176px;
	height: 56px;
	min-height: 56px;
	padding: 0 24px;
	font-size: 15px;
	line-height: 1;
	white-space: nowrap;
}

.footer-wrapper .newsletter-form .th-btn img {
	width: 18px;
	height: 18px;
	object-fit: contain;
}

@media (max-width: 480px) {
	.footer-wrapper .newsletter-form {
		display: grid;
		gap: 10px;
	}

	.footer-wrapper .newsletter-form .th-btn {
		width: 100%;
		min-width: 0;
		margin-top: 0;
	}
}

/* Testimonios de muestra: avatar neutro y etiqueta transparente. */
.testi-card_avater .tc-testi-avatar-placeholder {
	display: grid;
	place-items: center;
	width: 72px;
	height: 72px;
	border-radius: 50%;
	background: linear-gradient(145deg, #d8eef4, #bee0ea);
	color: var(--title-color, #013460);
	font-size: 24px;
	font-weight: 700;
	line-height: 1;
}

.tc-testi-sample-badge {
	display: inline-flex;
	align-items: center;
	min-height: 20px;
	margin-left: 6px;
	padding: 2px 7px;
	border: 1px solid rgba(1, 52, 96, .2);
	border-radius: 999px;
	background: rgba(255, 255, 255, .72);
	color: #34566f;
	font-size: 10px;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: .06em;
	text-transform: uppercase;
	white-space: nowrap;
	vertical-align: middle;
}

@media (max-width: 575px) {
	.testi-card_avater .tc-testi-avatar-placeholder {
		width: 48px;
		height: 48px;
		font-size: 19px;
	}
}

/* ========================================================================== 
   Carrito · correcciones finas de avisos, eliminación y resumen
   ========================================================================== */

/* Une visualmente todas las columnas del encabezado, incluidas las vacías. */
.tc-cart-page table.shop_table thead,
.tc-cart-page table.shop_table thead tr {
	background: #f8fbfc !important;
}

.tc-cart-page table.shop_table thead tr {
	box-shadow: inset 0 -1px 0 var(--tc-flow-line, #d5e4ea);
}

.tc-cart-page table.shop_table thead th {
	border-bottom: 0 !important;
	background: transparent !important;
}

/* Mantiene el pie de acciones como una celda real para respetar el colspan. */
.tc-cart-page table.shop_table td.actions {
	width: auto !important;
	border: 0 !important;
	background: #fff !important;
	box-shadow: none !important;
}

@media (min-width: 768px) {
	/* Las celdas tienen alturas distintas; el separador pertenece al pie completo. */
	.tc-cart-page table.shop_table tbody tr.cart_item > td {
		border-bottom: 0 !important;
	}

	.tc-cart-page table.shop_table td.actions {
		display: table-cell !important;
		text-align: right !important;
		vertical-align: middle;
		box-shadow: inset 0 1px 0 var(--tc-flow-line, #d5e4ea) !important;
	}

	.tc-cart-page table.shop_table td.actions .coupon {
		float: left;
		display: flex;
		align-items: center;
	}

	.tc-cart-page table.shop_table td.actions > button[name="update_cart"] {
		float: right;
	}
}

@media (max-width: 767px) {
	.tc-cart-page table.shop_table td.actions {
		width: 100% !important;
		box-shadow: none !important;
	}

	.tc-cart-page table.shop_table td.actions .coupon,
	.tc-cart-page table.shop_table td.actions > button[name="update_cart"] {
		float: none;
	}
}

/* Reserva el espacio del icono para que nunca se superponga con el mensaje. */
.tc-cart-page .woocommerce-notices-wrapper .woocommerce-message,
.tc-cart-page .woocommerce-message {
	position: relative !important;
	min-height: 54px;
	padding: 14px 18px 14px 54px !important;
	border: 1px solid #bddfd0 !important;
	border-radius: 16px !important;
	background: #f1faf6 !important;
	color: var(--tc-flow-ink, #183247) !important;
	line-height: 1.55 !important;
}

.tc-cart-page .woocommerce-notices-wrapper .woocommerce-message::before,
.tc-cart-page .woocommerce-message::before {
	position: absolute !important;
	top: 50% !important;
	left: 18px !important;
	display: grid !important;
	place-items: center;
	width: 24px;
	height: 24px;
	margin: 0 !important;
	padding: 0 !important;
	transform: translateY(-50%);
	border-radius: 50%;
	background: #2f7d5a;
	color: #fff !important;
	font-size: 12px !important;
	line-height: 1 !important;
}

.tc-cart-page .woocommerce-message .restore-item {
	color: var(--tc-flow-navy, #013460) !important;
	font-weight: 800;
	text-decoration: underline !important;
	text-underline-offset: 3px;
}

/* El fondo del control cubre el separador de la fila y mantiene la X legible. */
.tc-cart-page table.shop_table tr.cart_item td.product-remove {
	position: relative;
	isolation: isolate;
	overflow: visible;
}

.tc-cart-page table.shop_table td.product-remove a.remove {
	position: relative;
	z-index: 2;
	flex: 0 0 42px;
	width: 42px;
	height: 42px;
	margin-left: auto;
	padding: 0 !important;
	border: 1px solid #e4c9c9 !important;
	border-radius: 50% !important;
	background: #fff !important;
	box-shadow: 0 0 0 6px #fff;
	color: #a64242 !important;
	font-size: 14px !important;
	line-height: 1 !important;
}

.tc-cart-page table.shop_table td.product-remove a.remove:hover,
.tc-cart-page table.shop_table td.product-remove a.remove:focus-visible {
	border-color: #a64242 !important;
	background: #fff5f5 !important;
	color: #8b2f2f !important;
	outline: 3px solid rgba(166, 66, 66, .18);
	outline-offset: 2px;
}

/* La tarjeta exterior ya contiene el resumen: se elimina la segunda caja rígida. */
.tc-cart-page .cart-collaterals .cart_totals {
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
}

.tc-cart-page .cart-collaterals .cart_totals table.shop_table {
	width: 100% !important;
	margin: 0 !important;
	border: 0 !important;
	border-collapse: collapse !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	outline: 0 !important;
	overflow: visible !important;
}

.tc-cart-page .cart-collaterals .cart_totals table.shop_table :is(tbody, tr, th, td) {
	border-right: 0 !important;
	border-left: 0 !important;
	box-shadow: none !important;
	outline: 0 !important;
}

@media (max-width: 767px) {
	.tc-cart-page .woocommerce-notices-wrapper .woocommerce-message,
	.tc-cart-page .woocommerce-message {
		padding: 13px 14px 13px 50px !important;
	}

	.tc-cart-page .woocommerce-notices-wrapper .woocommerce-message::before,
	.tc-cart-page .woocommerce-message::before {
		left: 14px !important;
	}

	.tc-cart-page table.shop_table td.product-remove a.remove {
		flex-basis: 44px;
		width: 44px;
		height: 44px;
	}
}

/* ==================================================================
 * BARRA SUPERIOR (header-top) EN AZUL PRIMARIO
 *
 * La barra que va encima del menú se tiñe con el azul primario de la
 * marca (var(--theme-color)) y todos sus textos e iconos pasan a blanco.
 * Los círculos de redes y de acceso conservan el relleno claro para seguir
 * leyéndose sobre el fondo; solo cambia su hover, que con el tono de marca
 * quedaría invisible sobre el azul.
 * ================================================================== */
body.tc-home-tourm .header-layout1 .header-top {
	background-color: var(--theme-color);
	border-bottom-color: rgba(255, 255, 255, 0.22);
	color: var(--white-color, #fff);
}

/* Textos e iconos de contacto (ubicación y horario). */
body.tc-home-tourm .header-layout1 .header-top .header-links li,
body.tc-home-tourm .header-layout1 .header-top .header-links span,
body.tc-home-tourm .header-layout1 .header-top .header-links p,
body.tc-home-tourm .header-layout1 .header-top .header-links a,
body.tc-home-tourm .header-layout1 .header-top .header-links li > i {
	color: var(--white-color, #fff);
}

body.tc-home-tourm .header-layout1 .header-top .header-links a:hover {
	color: #dff3f9;
}

/* Separador vertical entre los datos de contacto. */
body.tc-home-tourm .header-layout1 .header-top .header-links li:not(:last-child):after {
	background-color: rgba(255, 255, 255, 0.45);
}

/* Redes sociales y botón de acceso: círculo claro con icono de marca,
   al revés que sobre fondo blanco. El hover pasa a azul marino. */
body.tc-home-tourm .header-layout1 .header-top .tc-top-social a,
body.tc-home-tourm .header-layout1 .header-top .header-right .header-links li button {
	background: var(--white-color, #fff);
	color: var(--theme-color);
}

body.tc-home-tourm .header-layout1 .header-top .tc-top-social a:hover,
body.tc-home-tourm .header-layout1 .header-top .header-right .header-links li button:hover {
	background: var(--title-color, #013460);
	color: var(--white-color, #fff);
}

/* ==================================================================
 * PRODUCTOS DESTACADOS — RAIL EDITORIAL
 *
 * Sección oscura entre «Lo que hacemos» y «Mejores destinos». El título
 * funciona como panel editorial y las tarjetas se recorren con scroll
 * nativo (scroll-snap), sin depender de Swiper. El contraste alto separa
 * esta selección del carrusel claro de «Lo mejor para ti».
 * ================================================================== */
.tc-products {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	padding: clamp(84px, 9vw, 124px) 0;
	scroll-margin-top: 120px;
	background:
		radial-gradient(circle at 0% 0%, rgba(255, 181, 57, 0.16), transparent 34%),
		radial-gradient(circle at 100% 88%, rgba(28, 168, 203, 0.32), transparent 38%),
		linear-gradient(135deg, #052b3a 0%, #093f51 54%, #052736 100%);
	color: #fff;
}

.tc-products::before {
	content: "";
	position: absolute;
	top: -18%;
	right: -8%;
	z-index: -1;
	width: clamp(320px, 46vw, 680px);
	aspect-ratio: 1;
	border: 1px solid rgba(255, 255, 255, 0.09);
	border-radius: 50%;
	box-shadow:
		0 0 0 64px rgba(255, 255, 255, 0.025),
		0 0 0 128px rgba(255, 255, 255, 0.018);
	pointer-events: none;
}

.tc-products__layout {
	display: grid;
	grid-template-columns: minmax(300px, 0.78fr) minmax(0, 1.22fr);
	gap: clamp(38px, 5vw, 72px);
	align-items: center;
}

.tc-products__intro {
	max-width: 470px;
}

.tc-products .sub-title {
	margin-bottom: 6px;
	color: var(--yellow-color, #ffb539);
	font-size: clamp(32px, 3.4vw, 44px);
	line-height: 1;
}

.tc-products .sec-title {
	max-width: 13ch;
	margin: 8px 0 20px;
	color: #fff;
	font-size: clamp(34px, 3.5vw, 52px);
	line-height: 1.07;
	letter-spacing: -0.035em;
}

.tc-products__text {
	max-width: 44ch;
	margin: 0;
	color: rgba(255, 255, 255, 0.72);
	font-size: 16px;
	line-height: 1.75;
}

.tc-products__notes {
	display: grid;
	gap: 11px;
	margin: 25px 0 0;
	padding: 0;
	list-style: none;
}

.tc-products__notes li {
	display: flex;
	align-items: center;
	gap: 10px;
	color: rgba(255, 255, 255, 0.86);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.4;
}

.tc-products__note-icon {
	display: grid;
	flex: 0 0 26px;
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background: rgba(255, 181, 57, 0.16);
	color: var(--yellow-color, #ffb539);
	font-size: 11px;
	place-items: center;
}

.tc-products__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 18px;
	margin-top: 30px;
}

.tc-products__actions .th-btn {
	padding: 15px 26px;
	font-size: 14px;
	text-transform: none;
}

.tc-products__controls {
	display: flex;
	gap: 9px;
}

.tc-products__control {
	display: grid;
	width: 46px;
	height: 46px;
	padding: 0;
	border: 1px solid rgba(255, 255, 255, 0.34);
	border-radius: 50%;
	background: transparent;
	color: #fff;
	cursor: pointer;
	transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease, opacity 0.2s ease;
	place-items: center;
}

.tc-products__control:hover:not(:disabled),
.tc-products__control:focus-visible {
	border-color: #fff;
	background: #fff;
	color: var(--title-color);
}

.tc-products__control:disabled {
	opacity: 0.32;
	cursor: default;
}

.tc-products__rail-wrap {
	min-width: 0;
}

.tc-products__slider {
	overflow: hidden;
	margin: -8px -8px 0;
	padding: 8px 8px 24px;
}

.tc-products__slider .swiper-wrapper {
	align-items: stretch;
	margin: 0;
	padding: 0;
	list-style: none;
}

.tc-products__slider:focus-visible {
	outline: 3px solid var(--yellow-color, #ffb539);
	outline-offset: 4px;
}

.tc-products__item {
	display: flex;
	flex: 0 0 auto;
	width: clamp(268px, 27vw, 340px);
	height: auto;
}

.tc-products__item .tc-product-card {
	width: 100%;
}

.tc-products__control.swiper-button-disabled {
	opacity: 0.32;
	cursor: default;
}

.tc-product-card {
	display: flex;
	overflow: hidden;
	flex-direction: column;
	height: 100%;
	border-radius: 24px;
	background: #fff;
	box-shadow: 0 26px 54px rgba(1, 25, 47, 0.3);
	transition: transform 0.28s ease, box-shadow 0.28s ease;
}

.tc-product-card:hover {
	box-shadow: 0 34px 64px rgba(1, 25, 47, 0.38);
	transform: translateY(-5px);
}

.tc-product-card__media {
	position: relative;
	display: block;
	overflow: hidden;
	aspect-ratio: 5 / 6;
	background: #dcebf1;
}

.tc-product-card__media::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(1, 25, 47, 0.06) 36%, rgba(1, 25, 47, 0.62) 100%);
	pointer-events: none;
}

.tc-product-card__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.5s ease;
}

.tc-product-card:hover .tc-product-card__media img {
	transform: scale(1.045);
}

.tc-product-card__tag,
.tc-product-card__status {
	position: absolute;
	z-index: 1;
	display: inline-flex;
	align-items: center;
	gap: 5px;
	max-width: calc(100% - 28px);
	padding: 7px 11px;
	border-radius: 999px;
	font-size: 10.5px;
	font-weight: 750;
	letter-spacing: 0.035em;
	line-height: 1.15;
	text-transform: uppercase;
	backdrop-filter: blur(8px);
}

.tc-product-card__tag {
	top: 14px;
	left: 14px;
	overflow: hidden;
	background: rgba(1, 35, 52, 0.84);
	color: #fff;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.tc-product-card__status {
	top: 14px;
	right: 14px;
	border: 1px solid rgba(255, 255, 255, 0.72);
	background: rgba(255, 255, 255, 0.94);
	color: #17633a;
	text-transform: none;
}

.tc-product-card__price {
	position: absolute;
	z-index: 1;
	bottom: 14px;
	left: 14px;
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0 6px;
	max-width: calc(100% - 28px);
	padding: 8px 12px;
	border: 1px solid rgba(255, 255, 255, 0.75);
	border-radius: 15px;
	background: rgba(255, 255, 255, 0.95);
	color: var(--title-color);
	box-shadow: 0 8px 20px rgba(1, 25, 47, 0.18);
	backdrop-filter: blur(9px);
}

.tc-product-card__price small {
	color: var(--body-color, #6e7070);
	font-size: 10px;
	font-weight: 650;
	line-height: 1.1;
}

.tc-product-card__price strong {
	font-family: var(--title-font, "Manrope", sans-serif);
	font-size: 19px;
	font-weight: 800;
	line-height: 1.1;
}

.tc-product-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: 19px 20px 20px;
}

.tc-product-card__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 14px;
	margin-bottom: 10px;
	color: var(--body-color, #6e7070);
	font-size: 11.5px;
	font-weight: 600;
	line-height: 1.3;
}

.tc-product-card__meta span {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	min-width: 0;
}

.tc-product-card__meta i {
	color: var(--theme-color);
	font-size: 12px;
}

.tc-product-card__title {
	min-height: 49px;
	margin: 0 0 15px;
	font-family: var(--title-font, "Manrope", sans-serif);
	font-size: 18px;
	font-weight: 750;
	line-height: 1.3;
}

.tc-product-card__title a {
	display: -webkit-box;
	overflow: hidden;
	color: var(--title-color);
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	transition: color 0.2s ease;
}

.tc-product-card__title a:hover {
	color: var(--theme-color);
}

.tc-product-card__footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-top: auto;
	padding-top: 14px;
	border-top: 1px solid rgba(54, 153, 185, 0.16);
}

.tc-product-card__rating {
	min-width: 0;
	color: var(--body-color, #6e7070);
	font-size: 12px;
}

.tc-product-card__rating > span {
	display: inline-flex;
	align-items: center;
	gap: 5px;
}

.tc-product-card__rating i {
	color: var(--yellow-color, #ffb539);
}

.tc-product-card__rating strong {
	color: var(--title-color);
	font-size: 13px;
}

.tc-product-card__rating small {
	font-size: 10.5px;
}

.tc-product-card__rating .is-new {
	color: #c05a2c;
	font-weight: 750;
}

.tc-product-card__cta {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	gap: 7px;
	min-height: 40px;
	padding: 0 13px;
	border-radius: 999px;
	background: var(--title-color);
	color: #fff;
	font-size: 12px;
	font-weight: 700;
	line-height: 1;
	white-space: nowrap;
	transition: background 0.2s ease, transform 0.2s ease;
}

.tc-product-card__cta:hover {
	background: var(--theme-color);
	color: #fff;
	transform: translateY(-1px);
}

.tc-product-card a:focus-visible,
.tc-products__control:focus-visible {
	outline: 3px solid var(--yellow-color, #ffb539);
	outline-offset: 3px;
}

.tc-products__hint {
	display: none;
	align-items: center;
	gap: 8px;
	margin: 2px 0 0;
	color: rgba(255, 255, 255, 0.62);
	font-size: 12px;
	font-weight: 600;
}

@media (max-width: 1199px) {
	.tc-products__layout {
		grid-template-columns: minmax(260px, 0.68fr) minmax(0, 1.32fr);
		gap: 36px;
	}

	.tc-products__item {
		width: clamp(250px, 30vw, 310px);
	}
}

@media (max-width: 991px) {
	.tc-products {
		padding: 88px 0;
	}

	.tc-products__layout {
		grid-template-columns: minmax(0, 1fr);
		gap: 38px;
	}

	.tc-products__intro {
		max-width: 640px;
	}

	.tc-products .sec-title {
		max-width: 18ch;
	}

	.tc-products__rail-wrap {
		margin-right: calc(50% - 50vw);
	}

	.tc-products__hint {
		display: flex;
	}

	.tc-products__item {
		width: clamp(260px, 42vw, 320px);
	}
}

@media (max-width: 767px) {
	.tc-products {
		padding: 72px 0;
		scroll-margin-top: 96px;
	}

	.tc-products .sub-title {
		font-size: 31px;
	}

	.tc-products .sec-title {
		font-size: clamp(31px, 8.4vw, 40px);
	}

	.tc-products__text {
		font-size: 15px;
	}

	.tc-products__actions {
		gap: 14px;
		margin-top: 24px;
	}

	.tc-products__item {
		width: min(78vw, 310px);
	}
}

@media (max-width: 480px) {
	.tc-products__item {
		width: 84vw;
	}

	.tc-product-card__body {
		padding: 17px 17px 18px;
	}

	.tc-product-card__title {
		font-size: 17px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.tc-product-card,
	.tc-product-card__media img {
		transition: none;
	}
}
