/* ==============================================================
   Visa Premium — overrides de marca sobre el template Visaco
   Colores tomados del logo: azul #011F5B / rojo #EB0313
================================================================= */
:root {
	--dark: #011F5B;
	--dark-secondary: #001848;
	--dark-optional: #011F5B;
	--color-primary: #EB0313;
	--color-secondary: #011F5B;
	--color-heading: #011F5B;
	/* Sin el tercer tono rosado (#FF3B47): con texto blanco daba 3.5:1 */
	--bg-gradient: linear-gradient(135deg, #EB0313, #C4020F);
	/* Rojo claro para hover de enlaces sobre fondo azul oscuro (contraste 6.9:1;
	   el rojo de marca sobre azul solo da 3.4:1) */
	--color-primary-light: #ff8a93;
}

/* ---------- Logo ---------- */
.navbar-brand > img.logo,
nav.navbar.validnavs .navbar-brand img.logo {
	height: 46px;
	width: auto;
	max-width: none;
}

.navbar-collapse > img {
	height: 40px;
	width: auto;
}

.footer-logo img {
	height: 52px;
	width: auto;
}

@media (max-width: 575px) {
	.navbar-brand > img.logo,
	nav.navbar.validnavs .navbar-brand img.logo {
		height: 36px;
	}
}

/* ---------- About: collage de fotos más alto, sin hueco blanco ---------- */
@media (min-width: 992px) {
	.about-style-one-area .thumb-style-one {
		min-height: 620px;
		/* Evita que z-index:-1 de la foto secundaria se meta detrás del fondo */
		isolation: isolate;
	}

	.about-style-one-area .thumb-style-one img:first-child {
		position: relative;
		z-index: 1;
		width: 100%;
		height: 560px;
		object-fit: cover;
		object-position: center 35%;
	}

	.about-style-one-area .thumb-style-one img:nth-child(2) {
		z-index: 0;
		width: 45%;
		max-width: 45%;
		height: calc(100% - 210px);
		object-fit: cover;
		/* Sujeto a la derecha del original; con espejo queda bien centrado */
		object-position: 78% 22%;
	}
}

.vp-img-mirror {
	transform: scaleX(-1);
}

/* ---------- Destinos de turismo ---------- */
.destination-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}

.destination-card {
	display: flex;
	align-items: center;
	gap: 18px;
	padding: 24px 26px;
	border-radius: 12px;
	background: var(--dark-secondary);
	border: 1px solid rgba(255, 255, 255, 0.1);
	transition: all 0.3s ease;
}

.destination-card:hover {
	background: var(--color-primary);
	border-color: var(--color-primary);
	transform: translateY(-4px);
}

.destination-card .flag {
	flex: 0 0 64px;
	height: 44px;
	border-radius: 6px;
	overflow: hidden;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);
}

.destination-card .flag img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.destination-card h5 {
	margin: 0 0 4px;
	color: var(--white);
	font-weight: 700;
}

.destination-card span {
	font-size: 15px;
	color: rgba(255, 255, 255, 0.75);
}

.destination-note {
	margin-top: 40px;
	text-align: center;
	color: rgba(255, 255, 255, 0.8);
}

@media (max-width: 991px) {
	.destination-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 575px) {
	.destination-grid {
		grid-template-columns: 1fr;
	}
}

/* ---------- Tarjetas de trabajo / waiver ---------- */
.choose-us-style-one-item .flag-inline {
	width: 28px;
	height: 20px;
	object-fit: cover;
	border-radius: 3px;
	margin-right: 8px;
	vertical-align: -3px;
}

/* ---------- Ciudades de pasaporte ---------- */
.city-list {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 25px 0 10px;
	padding: 0;
	list-style: none;
}

.city-list li {
	padding: 6px 16px;
	border-radius: 30px;
	background: rgba(255, 255, 255, 0.1);
	border: 1px solid rgba(255, 255, 255, 0.2);
	font-size: 15px;
	color: var(--white);
}

.city-list li.more {
	background: var(--color-primary);
	border-color: var(--color-primary);
}

.call-action-info p {
	color: rgba(255, 255, 255, 0.85);
}

/* ---------- Botón flotante WhatsApp ---------- */
.whatsapp-float {
	position: fixed;
	right: 24px;
	bottom: 24px;
	z-index: 999;
	width: 60px;
	height: 60px;
	border-radius: 50%;
	background: #25D366;
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 32px;
	box-shadow: 0 8px 24px rgba(37, 211, 102, 0.45);
	transition: transform 0.3s ease;
}

.whatsapp-float:hover {
	color: #fff;
	transform: scale(1.08);
}

/* Anclas: compensar la barra fija */
section[id],
div[id].anchor {
	scroll-margin-top: 100px;
}

/* Header minimalista: sin pestaña de fondo, logo a color en todas las pantallas */
.navbar-style-one a.navbar-brand::after {
	display: none !important;
}

.navbar-style-one a.navbar-brand {
	padding-left: 0 !important;
}

.navbar-style-one a.navbar-brand img {
	left: 0 !important;
}

nav.navbar.navbar-style-one a.navbar-brand img.logo.logo-display {
	display: none !important;
}

nav.navbar.navbar-style-one a.navbar-brand img.logo.logo-scrolled {
	display: block !important;
}

/* Header: logo más compacto y contacto solo en pantallas anchas */
@media (min-width: 1024px) {
	nav.navbar.validnavs .navbar-brand img.logo {
		height: 40px;
	}
}

@media (max-width: 1399px) {
	.navbar.navbar-style-one .attr-right {
		display: none !important;
	}
}

/* Pantallas anchas: logo, menú y contacto en una sola fila */
@media (min-width: 1400px) {
	nav.navbar.navbar-style-one > .container {
		flex-wrap: nowrap;
	}

	nav.navbar.navbar-style-one .navbar-brand {
		padding-right: 0 !important;
	}

	nav.navbar.navbar-style-one #navbar-menu {
		margin-left: auto;
	}

	nav.navbar.validnavs.navbar-default.navbar-style-one .navbar-nav > li > a {
		padding-left: 10px !important;
		padding-right: 10px !important;
	}

	nav.navbar.navbar-style-one .attr-right {
		flex-shrink: 0;
		margin-left: 24px;
	}
}

/* Pasaportes va seguido de una sección blanca: quitar franja gris inferior */
#pasaportes.call-to-action-area::after {
	display: none;
}

.footer-style-one .f-item.link ul li i {
	margin-right: 8px;
	color: var(--color-primary);
}

/* ==============================================================
   Menú fijo (ver assets/js/visapremium.js)
   - Al bajar, el menú sale de pantalla con el scroll normal y queda
     fijo pero oculto; al subir se desliza suavemente con efecto glass.
   - Al volver arriba, el menú fijo coincide con la posición del menú
     normal, por lo que el cambio es imperceptible.
================================================================= */
nav.navbar.validnavs.vp-sticky.sticked {
	animation: none;
	background-color: rgba(255, 255, 255, 0.72) !important;
	-webkit-backdrop-filter: blur(14px) saturate(160%);
	backdrop-filter: blur(14px) saturate(160%);
	border: 0 !important;
	box-shadow: 0 8px 30px rgba(1, 31, 91, 0.08);
	transform: translateY(0);
	transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1),
		background-color 0.3s ease, box-shadow 0.3s ease;
}

nav.navbar.validnavs.vp-sticky.sticked.nav-hidden {
	transform: translateY(-100%);
	box-shadow: none;
}

/* Servicios: todas las cards con la misma altura, botón alineado abajo */
.visa-category-carousel .swiper-wrapper {
	align-items: stretch;
}

.visa-category-carousel .swiper-slide {
	height: auto;
	display: flex;
}

.visa-category-carousel .visa-cat-style-one {
	display: flex;
	flex-direction: column;
	width: 100%;
}

.visa-category-carousel .visa-cat-style-one .info {
	flex: 1 1 auto;
}

.visa-category-carousel .visa-cat-style-one .thumb > img {
	width: 100%;
	aspect-ratio: 3 / 2;
	height: auto;
	object-fit: cover;
	object-position: center 35%;
	display: block;
}

/* Visas de trabajo: tarjetas con la misma altura */
.choose-us-style-one-items .row > [class*="col-"] {
	display: flex;
}

.choose-us-style-one-items .choose-us-style-one-item {
	width: 100%;
	height: 100%;
}

/* Visas de trabajo: más aire entre cajas (mobile + tablet) */
@media (max-width: 1199px) {
	.choose-us-style-one-items {
		padding: 0 12px;
		margin-top: 10px;
	}

	.choose-us-style-one-items .row {
		--bs-gutter-x: 1.75rem;
		--bs-gutter-y: 1.75rem;
	}

	.choose-us-style-one-item {
		margin-top: 0;
		padding: 32px 26px;
	}
}

@media (max-width: 767px) {
	.choose-us-style-one-items {
		padding: 0 16px;
		margin-top: 0;
	}

	.choose-us-style-one-items .row {
		--bs-gutter-x: 1.5rem;
		--bs-gutter-y: 1.25rem;
	}

	.choose-us-style-one-item {
		padding: 28px 22px;
	}

	/* Imagen de trabajo más baja para menos scroll */
	.choose-us-style-one-frame .thumb {
		max-height: 200px;
		margin-bottom: 20px;
		overflow: hidden;
		border-radius: 12px;
	}

	.choose-us-style-one-frame .thumb img {
		height: 200px;
		width: 100%;
		object-fit: cover;
		object-position: center 25%;
	}
}

/* ==============================================================
   Páginas internas
================================================================= */

/* Menú: sección actual */
nav.navbar.validnavs ul.nav > li > a.active {
	color: var(--color-primary) !important;
}

/* Encabezado de página + breadcrumb */
.vp-page-hero {
	position: relative;
	padding: 110px 0 100px;
	text-align: center;
	background-position: center;
}

.vp-page-hero-content h1 {
	color: var(--white);
	font-size: 52px;
	font-weight: 800;
	margin-bottom: 15px;
}

.vp-page-hero-content p {
	max-width: 620px;
	margin: 0 auto 25px;
	color: rgba(255, 255, 255, 0.85);
}

.vp-breadcrumb {
	display: inline-flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 6px 0;
	margin: 0;
	padding: 10px 26px;
	list-style: none;
	border-radius: 30px;
	background: rgba(255, 255, 255, 0.08);
	border: 1px solid rgba(255, 255, 255, 0.15);
	font-size: 15px;
}

.vp-breadcrumb li {
	color: rgba(255, 255, 255, 0.8);
}

.vp-breadcrumb li + li::before {
	content: "\f105";
	font-family: "Font Awesome 5 Pro";
	font-weight: 400;
	margin: 0 12px;
	color: rgba(255, 255, 255, 0.5);
}

.vp-breadcrumb a {
	color: var(--white);
}

.vp-breadcrumb a:hover {
	color: var(--color-primary-light);
}

.vp-breadcrumb li.active {
	color: var(--color-primary);
	font-weight: 600;
}

@media (max-width: 767px) {
	.vp-page-hero {
		padding: 70px 0 60px;
	}

	.vp-page-hero-content h1 {
		font-size: 36px;
	}
}

/* Pasaportes como página propia: separación con el footer */
#pasaportes.call-to-action-area {
	padding-top: 120px;
	padding-bottom: 120px;
}

@media (max-width: 991px) {
	#pasaportes.call-to-action-area {
		padding-top: 60px;
		padding-bottom: 60px;
	}
}

/* Perdón migratorio: imagen principal */
.vp-rounded-thumb img {
	width: 100%;
	border-radius: 30px;
	object-fit: cover;
}

@media (max-width: 991px) {
	.vp-rounded-thumb {
		margin-bottom: 50px;
	}
}

/* Tours: cuadrícula en lugar de carrusel */
.vp-tour-grid .course-style-one-item {
	display: flex;
	flex-direction: column;
	height: 100%;
}

/* Tours: capa de hover compacta para que el texto quepa en la tarjeta */
.vp-tour-grid .course-style-one-item .overlay {
	right: 0;
	padding: 28px 26px;
	border-radius: 24px;
}

.vp-tour-grid .course-style-one-item .overlay img {
	max-height: 44px;
	margin-bottom: 14px;
}

.vp-tour-grid .course-style-one-item .overlay h4 {
	margin-bottom: 8px;
	font-size: 20px;
	line-height: 1.3;
}

.vp-tour-grid .course-style-one-item .overlay p {
	margin: 0;
	font-size: 15px;
	line-height: 1.5;
}

.vp-tour-grid .course-style-one-item img,
.vp-tour-grid .course-style-one-item > img {
	width: 100%;
	aspect-ratio: 3 / 4;
	height: auto;
	object-fit: cover;
	object-position: center;
	display: block;
}

/* Contacto: mapa */
.vp-map iframe {
	display: block;
	height: 450px;
	border: 0;
	margin: 0;
}

@media (max-width: 767px) {
	.vp-map iframe {
		height: 320px;
	}
}

/* ==============================================================
   Efectos hover en elementos con enlace
================================================================= */

/* Enlaces de texto: transición suave en todo el sitio */
a {
	transition: color 0.3s ease, background-color 0.3s ease, border-color 0.3s ease,
		transform 0.3s ease, box-shadow 0.3s ease, padding 0.3s ease;
}

/* Barra superior: correo y redes */
.top-bar-area .address-info a:hover {
	color: var(--color-primary-light);
}

.top-bar-area .social li a:hover {
	background: var(--color-primary);
	border-color: var(--color-primary);
	color: var(--white);
	transform: translateY(-3px);
}

/* Menú: submenú con desplazamiento */
nav.navbar.validnavs ul.dropdown-menu li a {
	transition: color 0.3s ease, padding-left 0.3s ease;
}

nav.navbar.validnavs ul.dropdown-menu li a:hover {
	color: var(--color-primary) !important;
	padding-left: 32px !important;
}

nav.navbar.validnavs ul.nav > li > a:hover {
	color: var(--color-primary) !important;
}

/* Teléfono del menú */
.attr-nav li.contact .call .icon {
	transition: transform 0.35s ease;
}

.attr-nav li.contact:hover .call .icon {
	transform: rotate(-12deg) scale(1.08);
}

.attr-nav li.contact h5 a:hover {
	color: var(--color-primary);
}

/* Logo */
.navbar-brand img,
.footer-logo img {
	transition: opacity 0.3s ease, transform 0.3s ease;
}

.navbar-brand:hover img {
	opacity: 0.85;
}

/* Tarjetas de servicios (inicio) */
.visa-cat-style-one {
	transition: transform 0.4s ease, box-shadow 0.4s ease;
}

.visa-cat-style-one:hover {
	transform: translateY(-8px);
	box-shadow: 0 20px 45px rgba(1, 31, 91, 0.15);
}

/* Mismo rojo que la imagen del botón: evita que asome el fondo azul
   en el borde superior cuando la tarjeta se eleva */
.visa-cat-style-one .button a {
	transition: background-color 0.35s ease;
}

.visa-cat-style-one:hover .button a,
.swiper-slide-active .visa-cat-style-one .button a {
	background: #991F23;
}

.visa-cat-style-one .info h4 a:hover {
	color: var(--color-primary);
}

.visa-cat-style-one .button a i {
	transition: transform 0.3s ease, background-color 0.3s ease;
}

.visa-cat-style-one .button a:hover i {
	transform: translateX(4px);
	background: var(--color-primary);
	border-color: var(--color-primary);
}

/* Tours: zoom de la imagen */
.course-style-one-item > img {
	transition: transform 0.7s ease;
}

.course-style-one-item:hover > img {
	transform: scale(1.08);
}

/* Tours: misma altura en todas las tarjetas (también en mobile) */
.course-style-one-carousel .swiper-slide {
	height: auto;
	display: flex;
}

.course-style-one-carousel .course-style-one-item {
	display: flex;
	flex-direction: column;
	width: 100%;
	height: 100%;
}

.course-style-one-carousel .course-style-one-item > img {
	width: 100%;
	aspect-ratio: 3 / 4;
	height: auto;
	object-fit: cover;
	object-position: center;
	display: block;
}

.course-style-one-carousel .course-style-one-item .overlay {
	flex: 1 1 auto;
}


/* Visas de trabajo: tarjeta de WhatsApp */
.choose-us-style-one-item.active {
	transition: transform 0.4s ease, box-shadow 0.4s ease;
}

.choose-us-style-one-item.active:hover {
	transform: translateY(-6px);
	box-shadow: 0 20px 45px rgba(235, 3, 19, 0.3);
}

.call-card a h6 {
	display: inline-block;
	transition: transform 0.3s ease;
}

.call-card a:hover h6 {
	transform: translateX(5px);
}

/* Botones: leve elevación */
.btn-style-one {
	transition: all 0.35s ease;
}

.btn-style-one:hover {
	transform: translateY(-3px);
	box-shadow: 0 12px 25px rgba(235, 3, 19, 0.25);
}

/* Franja de contacto del footer */
ul.address-list li i {
	transition: all 0.35s ease;
}

ul.address-list li:hover i {
	background: var(--color-primary);
	border-color: var(--color-primary);
	transform: scale(1.08);
}

ul.address-list li a:hover {
	color: var(--color-primary-light);
}

/* Footer: enlaces con desplazamiento */
footer .f-item.link li a {
	display: inline-block;
}

footer.bg-dark .f-item.link li a:hover {
	color: var(--white);
	transform: translateX(6px);
}

.footer-style-one .f-item.link ul li a:hover i {
	color: var(--white);
}

.bg-dark ul.footer-social-regular li a:hover {
	transform: translateY(-3px);
	color: var(--white);
}

/* Breadcrumb */
.vp-breadcrumb a:hover {
	text-decoration: underline;
	text-underline-offset: 4px;
}

/* Sin animaciones para quien las desactiva en su sistema */
@media (prefers-reduced-motion: reduce) {
	a,
	.btn-style-one,
	.visa-cat-style-one,
	.course-style-one-item > img,
	.choose-us-style-one-item.active {
		transition: none !important;
	}

	a:hover,
	.btn-style-one:hover,
	.visa-cat-style-one:hover,
	.course-style-one-item:hover > img,
	.choose-us-style-one-item.active:hover {
		transform: none !important;
	}
}

/* Espacio para que el carrusel no recorte la tarjeta elevada ni su sombra */
.visa-category-carousel {
	padding-top: 12px;
	padding-bottom: 40px;
	margin-top: -12px;
	margin-bottom: -40px;
}

/* ==============================================================
   Página de contacto
================================================================= */
.vp-contact-area {
	position: relative;
	background: linear-gradient(180deg, #f5f7fb 0%, var(--white) 100%);
}

.vp-contact-area::before {
	content: "";
	position: absolute;
	inset: 40px 0 auto;
	height: 70%;
	background: url(../img/shape/map.png) center / contain no-repeat;
	opacity: 0.7;
	pointer-events: none;
}

.vp-contact-area .container {
	position: relative;
}

.vp-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 16px;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--color-primary);
}

.vp-eyebrow::before {
	content: "";
	width: 28px;
	height: 2px;
	background: currentColor;
}

/* Tarjeta de datos */
.vp-contact-card {
	position: relative;
	overflow: hidden;
	isolation: isolate;
	height: 100%;
	padding: 50px 44px;
	border-radius: 24px;
	color: rgba(255, 255, 255, 0.8);
	background:
		radial-gradient(circle at 100% 0%, rgba(235, 3, 19, 0.32), transparent 38%),
		radial-gradient(circle at 0% 100%, rgba(40, 90, 200, 0.35), transparent 45%),
		linear-gradient(160deg, #0a2c72 0%, var(--dark) 55%, #001543 100%);
	box-shadow: 0 30px 60px -20px rgba(1, 31, 91, 0.45);
}

/* Textura: mapa del mundo (América a la vista) */
.vp-contact-card::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background:
		url(../img/shape/globe.webp) 18% 102% / 210% auto no-repeat;
	filter: brightness(0) invert(1); /* continentes en blanco */
	opacity: 0.045;
	pointer-events: none;
}

/* Textura: patrón de cruces (retícula de mapa) que se desvanece en diagonal */
.vp-contact-card::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28'%3E%3Cpath d='M14 10v8M10 14h8' stroke='white' stroke-width='1.2' stroke-linecap='round'/%3E%3C/svg%3E") 0 0 / 28px 28px repeat;
	opacity: 0.07;
	-webkit-mask-image: linear-gradient(200deg, #000 0%, rgba(0, 0, 0, 0.5) 40%, transparent 75%);
	mask-image: linear-gradient(200deg, #000 0%, rgba(0, 0, 0, 0.5) 40%, transparent 75%);
	pointer-events: none;
}

.vp-contact-card > * {
	position: relative;
	z-index: 1;
}

.vp-contact-card .vp-eyebrow {
	color: #ff6b74;
}

.vp-contact-card h2 {
	color: var(--white);
	font-size: 38px;
	font-weight: 800;
	line-height: 1.15;
	margin-bottom: 14px;
}

.vp-contact-card > p {
	margin-bottom: 30px;
	color: rgba(255, 255, 255, 0.75);
}

.vp-contact-list {
	display: grid;
	gap: 12px;
	margin: 0 0 34px;
	padding: 0;
	list-style: none;
}

.vp-contact-list li > a,
.vp-contact-list li > div {
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 14px 16px;
	border-radius: 16px;
	background: rgba(255, 255, 255, 0.05);
	border: 1px solid rgba(255, 255, 255, 0.08);
	color: var(--white);
}

.vp-contact-list li > a:hover {
	background: rgba(255, 255, 255, 0.1);
	border-color: rgba(255, 255, 255, 0.2);
	color: var(--white);
	transform: translateX(6px);
}

.vp-contact-list .icon {
	flex: 0 0 48px;
	height: 48px;
	border-radius: 14px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 19px;
	color: var(--white);
	background: var(--color-primary);
	box-shadow: 0 8px 18px -6px rgba(235, 3, 19, 0.6);
	transition: transform 0.3s ease;
}

.vp-contact-list .icon.whatsapp {
	background: #25D366;
	font-size: 23px;
	box-shadow: 0 8px 18px -6px rgba(37, 211, 102, 0.6);
}

.vp-contact-list li > a:hover .icon {
	transform: scale(1.08) rotate(-6deg);
}

.vp-contact-list .text {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.vp-contact-list small {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.55);
}

.vp-contact-list strong {
	font-size: 16px;
	font-weight: 600;
	line-height: 1.4;
	overflow-wrap: anywhere;
}

.vp-contact-social {
	display: flex;
	align-items: center;
	gap: 16px;
	padding-top: 26px;
	border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.vp-contact-social span {
	font-weight: 600;
	color: var(--white);
}

.vp-contact-social ul {
	display: flex;
	gap: 10px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.vp-contact-social a {
	width: 42px;
	height: 42px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--white);
	border: 1px solid rgba(255, 255, 255, 0.25);
}

.vp-contact-social a:hover {
	color: var(--white);
	background: var(--color-primary);
	border-color: var(--color-primary);
	transform: translateY(-3px);
}

/* Tarjeta del formulario */
.vp-contact-form-card {
	height: 100%;
	padding: 50px 48px;
	border-radius: 24px;
	background: var(--white);
	border: 1px solid rgba(1, 31, 91, 0.06);
	box-shadow: 0 30px 60px -25px rgba(1, 31, 91, 0.2);
}

.vp-contact-form-card h2 {
	font-size: 38px;
	font-weight: 800;
	line-height: 1.15;
	margin-bottom: 14px;
}

.vp-form-note {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 30px;
	padding: 12px 16px;
	border-radius: 12px;
	font-size: 15px;
	color: #1a7f43;
	background: rgba(37, 211, 102, 0.1);
}

.vp-form-note i {
	font-size: 20px;
	color: #25D366;
}

.vp-field {
	display: block;
	width: 100%;
	margin: 0;
}

.vp-field > span:first-child {
	display: block;
	margin-bottom: 8px;
	font-size: 14px;
	font-weight: 600;
	color: var(--color-heading);
}

.vp-field em {
	font-style: normal;
	color: var(--color-primary);
}

.vp-input {
	position: relative;
	display: block;
}

.vp-input > i {
	position: absolute;
	left: 18px;
	top: 50%;
	transform: translateY(-50%);
	font-size: 15px;
	color: #9aa6bf;
	pointer-events: none;
	transition: color 0.25s ease;
}

.vp-input-textarea > i {
	top: 20px;
	transform: none;
}

.vp-form input,
.vp-form select,
.vp-form textarea {
	display: block;
	width: 100%;
	height: 54px;
	padding: 0 18px 0 48px;
	border-radius: 12px;
	border: 1px solid #e3e8f1;
	background: #f6f8fc;
	font-size: 15px;
	color: var(--color-heading);
	box-shadow: none;
	outline: none;
	transition: border-color 0.25s ease, background-color 0.25s ease, box-shadow 0.25s ease;
}

.vp-form textarea {
	height: auto;
	min-height: 140px;
	padding-top: 15px;
	padding-bottom: 15px;
	resize: vertical;
}

.vp-form select {
	appearance: none;
	-webkit-appearance: none;
	cursor: pointer;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23011F5B' stroke-width='2'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 18px center;
	padding-right: 44px;
}

.vp-form input::placeholder,
.vp-form textarea::placeholder {
	color: #a3adc2;
}

.vp-form input:hover,
.vp-form select:hover,
.vp-form textarea:hover {
	border-color: #cdd5e4;
}

.vp-form input:focus,
.vp-form select:focus,
.vp-form textarea:focus {
	background-color: var(--white);
	border-color: var(--color-secondary);
	box-shadow: 0 0 0 4px rgba(1, 31, 91, 0.08);
}

.vp-input:focus-within > i {
	color: var(--color-primary);
}

.vp-submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	width: 100%;
	height: 58px;
	margin-top: 6px;
	border: 0;
	border-radius: 14px;
	font-size: 16px;
	font-weight: 700;
	color: var(--white);
	/* Verdes oscuros de WhatsApp: el verde claro (#25D366) con texto blanco
	   solo da 2:1 de contraste */
	background: linear-gradient(135deg, #0f7a6e, #075E54);
	box-shadow: 0 14px 28px -12px rgba(7, 94, 84, 0.7);
	transition: transform 0.3s ease, box-shadow 0.3s ease, filter 0.3s ease;
}

.vp-submit i {
	font-size: 22px;
}

.vp-submit:hover {
	transform: translateY(-3px);
	filter: brightness(1.05);
	box-shadow: 0 18px 32px -12px rgba(18, 140, 126, 0.8);
}

.vp-submit:focus-visible {
	outline: 3px solid rgba(37, 211, 102, 0.4);
	outline-offset: 3px;
}

@media (max-width: 991px) {
	.vp-contact-card,
	.vp-contact-form-card {
		height: auto;
	}
}

@media (max-width: 575px) {
	.vp-contact-card,
	.vp-contact-form-card {
		padding: 36px 22px;
		border-radius: 18px;
	}

	.vp-contact-card h2,
	.vp-contact-form-card h2 {
		font-size: 30px;
	}
}

/* ==============================================================
   Inicio: secciones resumen con enlace a su página
================================================================= */
.vp-section-actions {
	margin-top: 40px;
	text-align: center;
}

a.destination-card,
a.destination-card:hover {
	color: inherit;
}

.vp-more-link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: 18px;
	font-weight: 700;
	color: var(--color-primary);
}

.vp-more-link i {
	font-size: 13px;
	transition: transform 0.3s ease;
}

.vp-more-link:hover {
	color: var(--color-secondary);
}

.vp-more-link:hover i {
	transform: translateX(5px);
}

/* Pasaportes en el inicio: sin franja gris inferior */
.vp-home-pasaportes.call-to-action-area::after {
	display: none;
}

/* Pasaportes: en mobile la foto no se corta (sin margen negativo ni overflow) */
@media (max-width: 991px) {
	.call-to-action-style-one .thumb {
		padding: 28px 24px 0;
		overflow: visible;
	}

	.call-to-action-style-one .thumb > img {
		margin-top: 0;
		padding: 0 12px;
		width: 100%;
		max-width: 100%;
		height: auto;
		object-fit: contain;
	}
}

/* Footer: ilustración de ruta de viaje (reemplaza la figura del template) */
footer .shape img.vp-footer-travel {
	left: 0;
	bottom: 70px;
	width: 260px;
	max-width: 18%;
	filter: brightness(1.9); /* azul más claro para que resalte sobre el footer */
	opacity: 0.85;
	pointer-events: none;
}

@media (max-width: 991px) {
	footer .shape img.vp-footer-travel {
		display: none;
	}
}

/* Tours: en tarjetas angostas el título se come el ancho y el ícono se aplastaba */
.course-style-one-item .overlay-title {
	left: 28px;
	right: 28px;
	gap: 14px;
	padding: 14px 20px;
}

.course-style-one-item .overlay-title h4 {
	font-size: 18px;
	line-height: 1.3;
}

.course-style-one-item .overlay-title .icon {
	flex: 0 0 auto;
	padding-left: 14px;
}

.course-style-one-item .overlay-title img,
.course-style-one-item .overlay .icon img {
	width: auto;
	max-width: none;
	flex-shrink: 0;
	object-fit: contain;
}

.course-style-one-item .overlay-title img {
	height: 42px;
}

/* ==============================================================
   Carruseles del inicio: flechas
================================================================= */
.vp-carousel-btn {
	width: 52px;
	height: 52px;
	flex: 0 0 52px;
	border-radius: 50%;
	border: 1px solid rgba(1, 31, 91, 0.18);
	background: var(--white);
	color: var(--color-secondary);
	font-size: 17px;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 10px 24px -12px rgba(1, 31, 91, 0.35);
	transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease, transform 0.3s ease;
}

.vp-carousel-btn:hover {
	background: var(--color-primary);
	border-color: var(--color-primary);
	color: var(--white);
}

.vp-carousel-btn:focus-visible {
	outline: 3px solid rgba(235, 3, 19, 0.35);
	outline-offset: 3px;
}

/* Preguntas frecuentes: la imagen lleva width/height (evita saltos al cargar) */
.faq-style-one-thumb img {
	height: auto;
}

/* FAQ: en mobile/tablet la asesora más compacta y pegada al fondo de la sección */
@media (max-width: 1199px) {
	.faq-style-one-area.default-padding {
		padding-bottom: 0 !important;
	}

	.faq-style-one-area .row {
		display: flex;
		flex-direction: column;
	}

	/* Preguntas primero, asesora al final pegada al borde inferior */
	.faq-style-one-area .faq-style-one-items {
		order: 1;
	}

	.faq-style-one-area .col-xl-5 {
		order: 2;
		width: 100%;
		max-width: 100%;
	}

	.faq-style-one-area .col-xl-6 {
		order: 1;
		width: 100%;
		max-width: 100%;
	}

	.faq-style-one-thumb {
		display: flex !important;
		margin-top: 28px;
		margin-bottom: 0;
		justify-content: flex-end;
		align-items: center;
		text-align: center;
		height: auto;
	}

	.faq-style-one-thumb img {
		display: block;
		max-width: 220px;
		width: 55%;
		margin: 0 auto;
		margin-bottom: 0 !important;
	}
}

@media (max-width: 575px) {
	.faq-style-one-thumb img {
		max-width: 180px;
		width: 48%;
	}
}

/* Preguntas frecuentes: la asesora crece hasta alinear su cabeza con el título.
   Altura fija (no depende del acordeón, así no salta al abrir preguntas);
   crece hacia la derecha, en el espacio libre antes de las preguntas */
@media (min-width: 1200px) {
	.faq-style-one-thumb {
		align-items: flex-start;
	}

	.faq-style-one-thumb img {
		width: auto;
		max-width: none;
		height: 735px;
	}
}

/* 1200–1399 px: columnas más angostas; un poco más baja y corrida a la izquierda
   para no invadir la columna de preguntas */
@media (min-width: 1200px) and (max-width: 1399px) {
	.faq-style-one-thumb img {
		height: 700px;
		margin-left: -25px;
	}
}

/* ==============================================================
   Testimonios (reseñas de Google) — inicio
================================================================= */
.vp-reviews-area {
	position: relative;
	background: linear-gradient(180deg, var(--white) 0%, #f5f7fb 100%);
}

.vp-stars {
	display: inline-flex;
	gap: 3px;
	color: #FBBC05; /* amarillo de las estrellas de Google */
	font-size: 15px;
}

/* Testimonios: espacio bajo el título */
.vp-reviews-area .site-heading {
	margin-bottom: 50px;
}

/* Testimonios: tarjeta de video */
.vp-video-card {
	position: relative;
	display: block;
	overflow: hidden;
	height: 100%;
	min-height: 360px;
	border-radius: 24px;
	box-shadow:
		0 1px 2px rgba(16, 24, 40, 0.04),
		0 8px 20px -6px rgba(16, 24, 40, 0.1);
}

.vp-video-card img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 50% 45%; /* centra el texto "Experiencias que hablan por nosotros" */
	transition: transform 0.7s ease;
}

.vp-video-card::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(1, 21, 67, 0) 40%, rgba(1, 21, 67, 0.75) 72%, rgba(1, 21, 67, 0.95) 100%);
	pointer-events: none;
}

.vp-video-play {
	position: absolute;
	z-index: 1;
	left: 24px;
	top: 24px;
	width: 64px;
	height: 64px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	padding-left: 4px;
	font-size: 20px;
	color: var(--white);
	background: var(--color-primary);
	box-shadow: 0 0 0 0 rgba(235, 3, 19, 0.55);
	animation: vp-video-pulse 2s ease-out infinite;
	transition: transform 0.3s ease;
}

.vp-video-label {
	position: absolute;
	z-index: 1;
	left: 26px;
	bottom: 22px;
	display: flex;
	flex-direction: column;
	font-size: 20px;
	font-weight: 700;
	line-height: 1.2;
	color: var(--white);
}

.vp-video-label small {
	margin-top: 4px;
	font-size: 14px;
	font-weight: 500;
	color: rgba(255, 255, 255, 0.8);
}

.vp-video-card:hover img {
	transform: scale(1.05);
}

.vp-video-card:hover .vp-video-play {
	transform: scale(1.1);
}

@keyframes vp-video-pulse {
	0% {
		box-shadow: 0 0 0 0 rgba(235, 3, 19, 0.55);
	}
	100% {
		box-shadow: 0 0 0 18px rgba(235, 3, 19, 0);
	}
}

@media (prefers-reduced-motion: reduce) {
	.vp-video-play {
		animation: none;
	}
}

/* Testimonios: carrusel de tarjetas con foto */
/* Margen interno para que la sombra de las tarjetas no quede recortada.
   Los laterales (24px) no superan el espacio entre tarjetas (spaceBetween),
   así no asoman las tarjetas vecinas */
.vp-testimonials-carousel {
	padding: 16px 16px 40px;
	margin: -16px -16px -40px;
}

/* cssMode: el que hace scroll (y recorta) es el .swiper-wrapper, así que el
   aire para la sombra va en él y no en el contenedor */
.vp-testimonials-carousel.swiper-css-mode {
	padding: 0;
	margin: 0;
	overflow: visible;
}

.vp-testimonials-carousel.swiper-css-mode > .swiper-wrapper {
	padding: 16px 16px 40px;
	margin: -16px -16px -40px;
	scroll-padding: 0 16px;
	scrollbar-width: none;
}

.vp-testimonials-carousel.swiper-css-mode > .swiper-wrapper::-webkit-scrollbar {
	display: none;
}

.vp-testimonials-carousel .swiper-slide {
	height: auto;
	display: flex;
}

.vp-testimonial-card {
	display: flex;
	flex-direction: column;
	width: 100%;
	/* overflow:hidden + border-radius hace la sombra de esquinas cuadrada */
	border-radius: 24px;
	background: var(--white);
	border: 1px solid rgba(1, 31, 91, 0.07);
	box-shadow: 0 12px 32px rgba(16, 24, 40, 0.08);
	transition: box-shadow 0.3s ease, transform 0.3s ease;
}

.vp-testimonials-carousel .swiper-slide:hover .vp-testimonial-card {
	transform: translateY(-3px);
	box-shadow: 0 16px 40px rgba(16, 24, 40, 0.12);
}

.vp-testimonial-photo {
	position: relative;
	display: block;
	overflow: hidden;
	border-radius: 24px 24px 0 0;
	aspect-ratio: 5 / 4;
}

.vp-testimonial-photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Una sola tarjeta a lo ancho (celular/tablet): foto más baja */
@media (max-width: 767px) {
	.vp-testimonial-photo {
		aspect-ratio: 3 / 2;
	}
}

.vp-testimonial-photo::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(1, 21, 67, 0.35) 0%, rgba(1, 21, 67, 0) 35%);
	pointer-events: none;
}

.vp-testimonial-body {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	padding: 24px 26px 26px;
	border-radius: 0 0 24px 24px;
	background: var(--white);
}

.vp-testimonial-text {
	flex: 1 1 auto;
	margin: 14px 0 20px;
	font-size: 16px;
	line-height: 1.65;
	color: var(--color-heading);
}

.vp-testimonial-author {
	padding-top: 16px;
	border-top: 1px solid rgba(1, 31, 91, 0.08);
}

.vp-testimonial-author strong {
	display: block;
	font-weight: 700;
	color: var(--color-heading);
}

.vp-testimonial-author span {
	font-size: 14px;
	color: var(--color-paragraph);
}

.vp-approved-badge {
	position: absolute;
	z-index: 1;
	left: 16px;
	top: 16px;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 7px 13px;
	border-radius: 30px;
	font-size: 13px;
	font-weight: 700;
	color: var(--white);
	background: #1a9f53;
	box-shadow: 0 8px 18px -6px rgba(26, 159, 83, 0.6);
}

/* Carruseles del inicio: barra con contexto y navegación encima de las tarjetas */
.vp-carousel-toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 20px;
}

.vp-carousel-note {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin: 0;
	font-size: 16px;
	font-weight: 600;
	color: var(--color-heading);
}

.vp-carousel-note i {
	color: var(--color-primary);
	font-size: 18px;
}

/* Celular: el texto va en su propio renglón bajo el título y la navegación
   debajo, centrada y con espacio (en vez de apretarse en una sola fila) */
@media (max-width: 767px) {
	.vp-carousel-toolbar {
		flex-direction: column;
		gap: 14px;
		margin-bottom: 18px;
		text-align: center;
	}

	.vp-carousel-note {
		justify-content: center;
	}
}

/* Testimonios: check verde de "aprobada" */
.vp-reviews-area .vp-carousel-note i {
	color: #1a9f53;
}

.vp-carousel-nav {
	display: flex;
	align-items: center;
	gap: 14px;
}

.vp-carousel-nav .vp-carousel-btn {
	width: 46px;
	height: 46px;
	flex-basis: 46px;
	font-size: 15px;
}

/* Swiper pone position/width propios a la paginación: aquí va en línea */
.vp-carousel-count.swiper-pagination-fraction {
	position: static;
	width: auto;
	min-width: 64px;
	white-space: nowrap;
	text-align: center;
	font-size: 15px;
	font-weight: 600;
	letter-spacing: 0.04em;
	color: #98a2b3;
	font-variant-numeric: tabular-nums;
}

.vp-carousel-count .swiper-pagination-current {
	color: var(--color-heading);
	font-size: 18px;
	font-weight: 800;
}

@media (max-width: 575px) {
	.vp-carousel-note {
		font-size: 14px;
	}

	.vp-carousel-nav {
		gap: 8px;
	}

	.vp-carousel-count.swiper-pagination-fraction {
		min-width: 52px;
	}
}

/* Flechas de los carruseles: desplazamiento en hover */
.vp-carousel-btn[class*="-prev"]:hover {
	transform: translateX(-3px);
}

.vp-carousel-btn[class*="-next"]:hover {
	transform: translateX(3px);
}

/* El video empieza donde empiezan las tarjetas (debajo de la barra de
   navegación: botón de 46px + 20px de margen) y termina con ellas */
@media (min-width: 992px) {
	.vp-reviews-area .row > .col-lg-4 {
		padding-top: 66px;
	}

	.vp-reviews-area .vp-video-card {
		height: 100%;
	}
}

/* Tarjeta de video alta: miniatura completa (sin recortar el texto) sobre
   un fondo difuminado de la misma imagen */
.vp-video-card {
	background: var(--dark);
}

.vp-video-card img.vp-video-bg {
	object-fit: cover;
	filter: blur(22px) brightness(0.55) saturate(1.2);
	transform: scale(1.25);
}

.vp-video-card img.vp-video-thumb {
	object-fit: cover;
	object-position: center 30%;
}

.vp-video-card:hover img.vp-video-bg {
	transform: scale(1.3);
}

/* Pasaportes: la imagen lleva width/height (evita saltos al cargar) */
.call-to-action-style-one .thumb img {
	height: auto;
}

/* Hero: la foto lleva width/height (reserva su espacio al cargar) */
.banner-style-one-thumb > img:first-child {
	height: auto;
}

/* ==============================================================
   Bloques de contenido de las subpáginas
   (proceso paso a paso, qué incluye, documentos, avisos, FAQ)
================================================================= */
.vp-section .site-heading p {
	margin: 15px auto 0;
	max-width: 640px;
}

/* ---------- Proceso paso a paso ---------- */
.vp-steps {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
	counter-reset: vp-step;
}

.vp-steps.vp-steps-3 {
	grid-template-columns: repeat(3, 1fr);
}

.vp-step {
	position: relative;
	padding: 34px 28px 30px;
	border-radius: 12px;
	background: var(--white);
	box-shadow: 0 10px 35px rgba(1, 31, 91, 0.08);
	border-top: 4px solid var(--color-primary);
	transition: transform 0.3s ease;
}

.vp-step:hover {
	transform: translateY(-4px);
}

.vp-step::before {
	counter-increment: vp-step;
	content: counter(vp-step, decimal-leading-zero);
	display: block;
	margin-bottom: 14px;
	font-size: 38px;
	font-weight: 800;
	line-height: 1;
	color: var(--color-primary);
}

.vp-step h4 {
	margin-bottom: 10px;
	font-size: 20px;
}

.vp-step p {
	margin: 0;
	font-size: 16px;
}

@media (max-width: 1199px) {
	.vp-steps,
	.vp-steps.vp-steps-3 {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 575px) {
	.vp-steps,
	.vp-steps.vp-steps-3 {
		grid-template-columns: 1fr;
	}
}

/* ---------- Cajas de información (qué incluye / documentos) ---------- */
.vp-info-box {
	height: 100%;
	padding: 40px;
	border-radius: 12px;
	background: var(--white);
	box-shadow: 0 10px 35px rgba(1, 31, 91, 0.08);
}

.vp-info-box.dark {
	background: var(--dark);
	color: rgba(255, 255, 255, 0.85);
}

.vp-info-box.dark h3 {
	color: var(--white);
}

.vp-info-box.dark p {
	color: rgba(255, 255, 255, 0.8);
}

.vp-info-box h3 .flag-inline {
	width: 34px;
	height: 24px;
	margin-right: 10px;
	object-fit: cover;
	border-radius: 4px;
	vertical-align: -2px;
}

.vp-info-box h3 {
	margin-bottom: 8px;
	font-size: 26px;
}

.vp-info-box > p {
	margin-bottom: 20px;
}

.vp-checklist {
	margin: 20px 0 0;
	padding: 0;
	list-style: none;
}

.vp-checklist li {
	position: relative;
	padding-left: 34px;
	margin-bottom: 14px;
	line-height: 1.5;
}

.vp-checklist li:last-child {
	margin-bottom: 0;
}

.vp-checklist li::before {
	content: "\f00c";
	font-family: "Font Awesome 6 Pro", "Font Awesome 5 Pro", "Font Awesome 5 Free";
	font-weight: 900;
	position: absolute;
	left: 0;
	top: 2px;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: var(--color-primary);
	color: var(--white);
	font-size: 11px;
	line-height: 22px;
	text-align: center;
}

@media (max-width: 575px) {
	.vp-info-box {
		padding: 30px 22px;
	}
}

/* ---------- Aviso / nota importante ---------- */
.vp-notice {
	display: flex;
	gap: 16px;
	align-items: flex-start;
	margin-top: 30px;
	padding: 20px 24px;
	border-radius: 10px;
	background: rgba(235, 3, 19, 0.06);
	border-left: 4px solid var(--color-primary);
	font-size: 16px;
	line-height: 1.6;
}

.vp-notice i {
	margin-top: 4px;
	color: var(--color-primary);
	font-size: 20px;
}

.vp-notice p {
	margin: 0;
}

.vp-info-box.dark .vp-notice {
	background: rgba(255, 255, 255, 0.08);
}

.vp-info-box.dark .vp-notice i {
	color: var(--white);
}

/* ---------- Preguntas frecuentes de subpáginas ---------- */
.vp-faq .faq-style-one-items .accordion {
	margin-top: 0;
}

/* Tarjetas de destino que abren WhatsApp */
a.destination-card {
	text-decoration: none;
}

/* ==============================================================
   Hero del inicio: mapa con rutas, textos, chips, botones y
   tarjetas flotantes
================================================================= */
/* ---------- Mapa punteado + rutas de vuelo ---------- */
/* Bogotá (27.4% del ancho del mapa) queda justo a la izquierda del centro,
   en el hueco entre el texto y la foto */
.vp-hero-map {
	position: absolute;
	left: 50%;
	bottom: 0;
	width: min(100%, 1600px);
	transform: translateX(calc(-27.4% - 20px));
	z-index: -1;
	pointer-events: none;
}

.vp-hero-map img {
	display: block;
	width: 100%;
	height: auto;
	opacity: 0.8;
}

.vp-hero-map svg {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	overflow: visible;
}

.vp-route {
	fill: none;
	stroke: rgba(255, 255, 255, 0.55);
	stroke-width: 2;
	stroke-dasharray: 6 7;
	stroke-linecap: round;
	vector-effect: non-scaling-stroke;
}

/* La máscara "dibuja" cada ruta una sola vez al cargar */
.vp-route-draw {
	fill: none;
	stroke: #fff;
	stroke-width: 12;
	stroke-dasharray: 1;
	stroke-dashoffset: 1;
	animation: vp-route-draw 1.6s ease-out forwards;
}

.vp-route-draw-0 { animation-delay: 0.6s; }
.vp-route-draw-1 { animation-delay: 0.9s; }
.vp-route-draw-2 { animation-delay: 1.2s; }

@keyframes vp-route-draw {
	to { stroke-dashoffset: 0; }
}

.vp-route-origin {
	fill: var(--color-primary);
	stroke: #fff;
	stroke-width: 2;
	vector-effect: non-scaling-stroke;
}

.vp-route-pulse {
	fill: var(--color-primary);
	transform-box: fill-box;
	transform-origin: center;
	animation: vp-route-pulse 2.4s ease-out infinite;
}

@keyframes vp-route-pulse {
	from { transform: scale(1); opacity: 0.7; }
	to { transform: scale(3.2); opacity: 0; }
}

.vp-route-dest {
	fill: #fff;
	opacity: 0;
	animation: vp-fade-in 0.4s ease forwards;
	animation-delay: 2.2s;
}

.vp-route-plane {
	fill: #fff;
	opacity: 0;
	/* mismo ciclo (5s) y mismo inicio (2.4s) que el animateMotion */
	animation: vp-route-plane 5s linear 2.4s infinite;
}

@keyframes vp-route-plane {
	0% { opacity: 0; }
	8%, 88% { opacity: 0.9; }
	100% { opacity: 0; }
}

@keyframes vp-fade-in {
	to { opacity: 1; }
}

/* ---------- Textos ---------- */
.vp-hero .banner-style-one-info {
	padding-bottom: 40px;
}

.vp-hero-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 22px;
	padding: 7px 16px;
	border-radius: 30px;
	background: rgba(255, 255, 255, 0.08);
	border: 1px solid rgba(255, 255, 255, 0.18);
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--white);
}

.vp-hero-eyebrow i {
	color: var(--color-primary);
}

.vp-hero .banner-style-one-info h2 {
	font-size: 58px;
	line-height: 1.1;
	margin-bottom: 22px;
}

/* La marca siempre completa y en su propia línea */
.vp-hero .banner-style-one-info h2 strong {
	display: block;
	white-space: nowrap;
}

.vp-hero-lead {
	max-width: 500px;
	margin-bottom: 26px;
	font-size: 18px;
	line-height: 1.6;
	color: rgba(255, 255, 255, 0.82);
}

/* ---------- Chips de servicios (reemplazan la lista del template) ---------- */
.banner-style-one-info ul.vp-hero-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 0 0 32px;
	padding: 0;
	border: 0;
	max-width: 540px;
}

.banner-style-one-info ul.vp-hero-chips li {
	margin: 0;
	padding: 0;
}

.banner-style-one-info ul.vp-hero-chips li::after {
	display: none;
}

.vp-hero-chips a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 14px;
	border-radius: 30px;
	background: rgba(255, 255, 255, 0.07);
	border: 1px solid rgba(255, 255, 255, 0.16);
	font-size: 14px;
	font-weight: 500;
	color: var(--white);
	transition: all 0.3s ease;
}

.vp-hero-chips a i {
	font-size: 13px;
	color: var(--color-primary);
	transition: color 0.3s ease;
}

.vp-hero-chips a:hover {
	background: var(--color-primary);
	border-color: var(--color-primary);
	color: var(--white);
	transform: translateY(-2px);
}

.vp-hero-chips a:hover i {
	color: var(--white);
}

/* ---------- Botones ---------- */
.vp-hero-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
}

.vp-hero-actions .btn-style-one i {
	margin-right: 6px;
	font-size: 18px;
	vertical-align: -2px;
}

/* ---------- Tarjetas flotantes sobre la foto ---------- */
.vp-hero-float {
	position: absolute;
	z-index: 2;
}

.vp-hero-float-inner {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 12px 18px 12px 12px;
	border-radius: 16px;
	background: rgba(255, 255, 255, 0.96);
	box-shadow: 0 18px 40px rgba(0, 10, 40, 0.28);
	color: var(--color-heading);
	animation: vp-hero-float 6s ease-in-out infinite;
}

.vp-hero-float-approved {
	left: 30px;
	top: 42%;
}

.vp-hero-float-clients {
	/* lejos de la esquina donde flota el botón de WhatsApp */
	right: 16%;
	bottom: 7%;
}

.vp-hero-float-clients .vp-hero-float-inner {
	padding-left: 18px;
	animation-delay: -3s;
}

@keyframes vp-hero-float {
	0%, 100% { transform: translateY(0); }
	50% { transform: translateY(-10px); }
}

.vp-hero-float-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 40px;
	height: 40px;
	border-radius: 50%;
	background: #1a9f53;
	color: #fff;
	font-size: 16px;
	box-shadow: 0 8px 18px -6px rgba(26, 159, 83, 0.6);
}

.vp-hero-float-text {
	display: flex;
	flex-direction: column;
	line-height: 1.25;
}

.vp-hero-float-text strong {
	font-size: 16px;
	font-weight: 700;
	color: var(--color-heading);
}

.vp-hero-float-text small {
	font-size: 13px;
	color: #667085;
}

.vp-hero-float-num {
	font-size: 30px;
	font-weight: 800;
	line-height: 1;
	color: var(--color-primary);
}

.vp-hero-float .vp-stars,
.vp-hero-float .vp-stars i {
	color: #FBBC05;
}

.vp-hero-float .vp-stars {
	font-size: 12px;
	margin-bottom: 3px;
}

/* ---------- Responsive ---------- */
@media (max-width: 1399px) {
	.vp-hero .banner-style-one-info h2 {
		font-size: 54px;
	}
}

@media (max-width: 1199px) {
	.vp-hero .banner-style-one-info h2 {
		font-size: 48px;
	}
}

/* Por debajo de 1200px no hay hueco entre columnas: solo textura, sin rutas */
@media (max-width: 1199px) {
	.vp-hero-map {
		width: 1400px;
		transform: translateX(-50%);
	}

	.vp-hero-map svg {
		display: none;
	}
}

@media (max-width: 991px) {
	.vp-hero-map {
		top: 0;
		bottom: auto;
	}

	.vp-hero .banner-style-one-info {
		padding-bottom: 20px;
	}

	.vp-hero-float-approved {
		left: 10px;
	}

	.vp-hero-float-clients {
		right: 10px;
	}
}

@media (max-width: 575px) {
	.vp-hero .banner-style-one-info h2 {
		font-size: 38px;
	}

	.vp-hero-lead {
		font-size: 16px;
	}

	.vp-hero-actions .btn-style-one {
		width: 100%;
		text-align: center;
	}

	.vp-hero-float-inner {
		padding: 8px 12px 8px 8px;
		gap: 8px;
		border-radius: 12px;
	}

	.vp-hero-float-icon {
		flex-basis: 30px;
		height: 30px;
		font-size: 13px;
	}

	.vp-hero-float-text strong {
		font-size: 14px;
	}

	.vp-hero-float-text small {
		font-size: 11px;
	}

	.vp-hero-float-num {
		font-size: 22px;
	}

	.vp-hero-float-clients .vp-hero-float-inner {
		padding-left: 12px;
	}
}

/* Sin movimiento para quien lo desactiva en su sistema */
@media (prefers-reduced-motion: reduce) {
	.vp-route-draw {
		animation: none;
		stroke-dashoffset: 0;
	}

	.vp-route-dest {
		animation: none;
		opacity: 1;
	}

	.vp-route-pulse,
	.vp-route-plane {
		display: none;
	}

	.vp-hero-float-inner,
	.vp-hero-chips a {
		animation: none;
		transition: none;
	}

	.vp-hero-chips a:hover {
		transform: none;
	}
}

/* ==============================================================
   About del inicio en tablet/móvil: collage compacto
   (el template oculta la segunda foto y el contador en móvil)
================================================================= */
@media (max-width: 991px) {
	.about-style-one-area .thumb-style-one {
		position: relative;
		isolation: isolate;
		padding: 24px 0 70px;
		margin-bottom: 50px;
	}

	/* Foto principal arriba a la derecha */
	.about-style-one-area .thumb-style-one img:first-child {
		display: block;
		width: 80%;
		height: 420px;
		margin-left: auto;
		object-fit: cover;
		object-position: center 35%;
		border: 0;
		border-radius: 20px;
		box-shadow: 0 20px 40px -18px rgba(1, 31, 91, 0.45);
	}

	/* Viajero: se superpone abajo a la izquierda */
	.about-style-one-area .thumb-style-one img:nth-child(2) {
		display: block;
		position: absolute;
		left: 0;
		top: auto;
		bottom: 0;
		z-index: 1;
		width: 44%;
		max-width: 44%;
		height: 260px;
		object-fit: cover;
		object-position: 78% 22%;
		border: 5px solid var(--white);
		border-radius: 18px;
		box-shadow: 0 18px 36px -12px rgba(1, 31, 91, 0.45);
	}

	/* Puntos decorativos detrás, arriba a la izquierda */
	.about-style-one-area .thumb-style-one img:nth-child(3) {
		display: block;
		left: 0;
		right: auto;
		top: 0;
		max-width: 55%;
		z-index: -1;
	}

	/* Contador 700+: tarjeta flotante abajo a la derecha */
	.about-style-one-area .thumb-style-one .experience {
		display: block;
		position: absolute;
		left: auto;
		right: 16px;
		bottom: 30px;
		z-index: 2;
		max-width: none;
		margin: 0;
		padding: 18px 22px;
		border-radius: 16px;
		box-shadow: 0 18px 36px -10px rgba(235, 3, 19, 0.5);
	}

	.about-style-one-area .thumb-style-one .experience .counter {
		font-size: 52px;
		margin-bottom: 6px;
	}

	.about-style-one-area .thumb-style-one .experience h4 {
		font-size: 15px;
	}

	/* Características lado a lado */
	.about-style-one-area ul.card-style-one {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 16px;
		padding: 22px;
	}

	.about-style-one-area ul.card-style-one li {
		flex-direction: column;
		align-items: flex-start;
		gap: 10px;
	}

	.about-style-one-area ul.card-style-one li img {
		max-width: 46px;
	}

	.about-style-one-area ul.card-style-one li h4 {
		font-size: 16px;
		line-height: 1.3;
	}
}

@media (max-width: 575px) {
	.about-style-one-area .thumb-style-one {
		padding-bottom: 60px;
		margin-bottom: 40px;
	}

	.about-style-one-area .thumb-style-one img:first-child {
		width: 82%;
		height: 300px;
	}

	.about-style-one-area .thumb-style-one img:nth-child(2) {
		width: 46%;
		max-width: 46%;
		height: 190px;
		border-width: 4px;
	}

	.about-style-one-area .thumb-style-one .experience {
		right: 10px;
		bottom: 20px;
		padding: 14px 18px;
	}

	.about-style-one-area .thumb-style-one .experience .counter {
		font-size: 40px;
	}

	.about-style-one-area .thumb-style-one .experience h4 {
		font-size: 13px;
	}
}

/* Tarjetas de características: icono vectorial (mismo tamaño que los de imagen) */
ul.card-style-one li .icon i {
	display: block;
	width: 60px;
	font-size: 50px;
	line-height: 1;
	text-align: center;
	color: var(--color-primary);
}

@media (max-width: 991px) {
	.about-style-one-area ul.card-style-one li .icon i {
		width: 46px;
		font-size: 40px;
	}
}

/* Botón con borde claro sobre fondo oscuro (p. ej. "Ver servicios" del hero):
   en hover se rellena de blanco con texto azul, igual que el botón principal.
   El template lo rellenaba de rojo con texto azul (contraste 3.4:1). */
.text-light .btn-style-one.border-light::after {
	background-color: var(--white);
}

.text-light .btn-style-one.border-light:hover {
	color: var(--color-heading);
	border-color: var(--white) !important;
}
