:root {
	--speed-blue: #001489;
	--speed-blue-soft: #1a2fa1;
	--speed-yellow: #f6b21f;
	--speed-orange: #f6a40f;
	--speed-text: #1f2430;
	--speed-muted: #6a7285;
	--speed-bg: #efefef;
	--speed-nav-grey: #999999;
	--speed-nav-link: #4a5262;
	--speed-topbar-soft: #aab4c7;
	--speed-contact-valid: #198754;
	--speed-contact-invalid: #dc3545;
}

* {
	box-sizing: border-box;
}

body.speed-layout {
	margin: 0;
	font-family: "Red Hat Text", sans-serif;
	font-weight: 400;
	line-height: 1.4;
	color: var(--speed-text);
	background: var(--speed-bg);
}

a {
	text-decoration: none;
}

.speed-topbar {
	background: #f5f5f5;
	border-bottom: 1px solid #e4e7ee;
	font-size: 0.85rem;
}

.topbar-links {
	row-gap: 0.25rem;
}

.topbar-link {
	color: var(--speed-nav-link);
	font-weight: 600;
	font-size: 0.85rem;
	letter-spacing: 0.01em;
	white-space: nowrap;
	transition: color 0.15s ease;
}

.topbar-link:hover,
.topbar-link:focus,
.topbar-link:active {
	color: var(--speed-blue);
}

/* Etiqueta no clicable junto al menú institucional (solo speed) */
.topbar-inst-label {
	color: var(--speed-topbar-soft);
	font-weight: 600;
	font-size: 0.85rem;
	letter-spacing: 0.01em;
	white-space: nowrap;
	cursor: default;
	user-select: none;
}

.topbar-search-group {
	max-width: 320px;
}

.search-suggest-wrap {
	position: relative;
}

.search-suggest-top {
	min-width: 320px;
}

.search-suggest-panel {
	position: absolute;
	z-index: 1050;
	top: calc(100% + 0.35rem);
	left: 0;
	right: 0;
	background: #fff;
	border: 1px solid #dfe3ee;
	border-radius: 0.6rem;
	box-shadow: 0 16px 32px rgba(15, 24, 45, 0.16);
	max-height: 360px;
	overflow-y: auto;
}

.search-suggest-item {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	padding: 0.6rem;
	color: #2e3650;
	border-bottom: 1px solid #eef1f6;
}

.search-suggest-item:last-child {
	border-bottom: 0;
}

.search-suggest-item:hover {
	background: #f7f9fc;
	color: #1f2a48;
}

.search-suggest-item.is-active {
	background: #eef3ff;
	color: #1f2a48;
}

.search-suggest-thumb {
	width: 64px;
	height: 48px;
	border-radius: 0.45rem;
	object-fit: cover;
	flex-shrink: 0;
}

.search-suggest-text {
	font-size: 0.84rem;
	font-weight: 600;
	line-height: 1.25;
	text-transform: uppercase;
}

.search-suggest-empty {
	padding: 0.75rem;
	font-size: 0.8rem;
	color: #6d7485;
}

.topbar-search-group .form-control {
	border-radius: 0.4rem 0 0 0.4rem;
	border-color: #d4d8e3;
}

.topbar-search-group .btn {
	border-radius: 0 0.4rem 0.4rem 0;
	border-color: #d4d8e3;
}

.speed-main-nav {
	background: #fff;
}

.brand-link img {
	max-width: 220px;
	height: auto;
}

.speed-main-nav-links {
	column-gap: 0.65rem !important;
	row-gap: 0.25rem !important;
}

@media (min-width: 992px) and (max-width: 1399.98px) {
	.speed-main-nav .brand-link img {
		max-width: 196px;
	}

	.speed-main-nav .btn-contactanos {
		font-size: 0.86rem;
		padding: 0.52rem 1.1rem;
	}

	.speed-main-nav-links .nav-link:not(.social-link) {
		font-size: 0.9rem;
		padding-left: 0.12rem;
		padding-right: 0.12rem;
	}
}

@media (min-width: 1200px) {
	.speed-main-nav-links {
		column-gap: 0.75rem !important;
	}
}

@media (min-width: 1400px) {
	.speed-main-nav-links {
		column-gap: 1rem !important;
	}
}

.speed-main-nav .navbar-nav > .nav-item > .nav-link:not(.social-link) {
	color: var(--speed-nav-link);
	font-weight: 600;
	font-size: 16px;
	padding: 0.4rem 0.2rem;
	transition: color 0.15s ease;
}

.speed-main-nav .navbar-nav > .nav-item > .nav-link:not(.social-link):hover,
.speed-main-nav .navbar-nav > .nav-item > .nav-link:not(.social-link):focus,
.speed-main-nav .navbar-nav > .nav-item > .nav-link:not(.social-link):active {
	color: var(--speed-blue);
}

.speed-main-nav .navbar-nav .nav-link.social-link {
	color: var(--speed-nav-grey);
	font-weight: 400;
}

.speed-main-nav .navbar-nav .nav-link.social-link:hover,
.speed-main-nav .navbar-nav .nav-link.social-link:focus,
.speed-main-nav .navbar-nav .nav-link.social-link:active {
	color: var(--speed-blue);
}

.btn-contactanos {
	background: var(--speed-blue);
	color: #fff;
	font-weight: 600;
	font-size: 0.92rem;
	letter-spacing: 0.02em;
	padding: 0.55rem 1.35rem;
	border-radius: 2rem;
	border: 1px solid var(--speed-blue);
	transition: background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease, color 0.15s ease;
	box-shadow: 0 6px 14px rgba(0, 20, 137, 0.18);
}

.btn-contactanos:hover,
.btn-contactanos:focus,
.btn-contactanos:active {
	background: var(--speed-blue-soft);
	border-color: var(--speed-blue-soft);
	color: #fff;
	box-shadow: 0 8px 18px rgba(0, 20, 137, 0.28);
}

.social-link i {
	font-size: 1.1rem;
}

/* ----- Layout speed: logo más compacto y menú tipo drawer en móvil ----- */
.speed-brand-logo-img {
	display: block;
	max-width: 220px;
	height: auto;
}

.speed-navbar-toggler {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 0.4rem;
	border: 1px solid rgba(31, 36, 48, 0.15);
	box-shadow: none;
	background: transparent;
	color: var(--speed-blue);
	line-height: 1;
	vertical-align: middle;
}

.speed-navbar-hamburger-icon {
	font-size: 1.85rem;
	line-height: 1;
	color: currentColor;
}

.speed-navbar-toggler:focus-visible {
	box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--speed-blue);
	outline: none;
}

.speed-drawer-section-label {
	margin: 0;
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--speed-muted);
}

.speed-drawer-link {
	display: block;
	padding: 0.55rem 0.95rem;
	font-weight: 600;
	font-size: 0.9rem;
	color: var(--speed-nav-link);
	border-radius: 0.35rem;
	transition: color 0.15s ease, background 0.15s ease;
}

.speed-drawer-link:hover,
.speed-drawer-link:focus,
.speed-drawer-link:active {
	color: var(--speed-blue);
	background: rgba(0, 20, 137, 0.05);
}

.speed-drawer-inst-label {
	display: block;
	padding: 0.55rem 0.95rem;
	font-weight: 600;
	font-size: 0.9rem;
	color: var(--speed-topbar-soft);
	cursor: default;
	user-select: none;
}

.btn-contactanos--drawer {
	width: 100%;
	max-width: 100%;
	justify-content: center;
	gap: 0.35rem;
}

.speed-main-nav-drawer .speed-drawer-institutional {
	margin-top: 0.5rem;
	padding-top: 0.85rem;
	border-top: 1px solid #eaebef;
}

/* Desktop lg+: una sola fila logo | enlaces centrados | Contáctanos (sin flex-wrap forzando salto). */
@media (min-width: 992px) {
	.speed-main-nav-inner {
		flex-wrap: nowrap;
		align-items: center;
	}

	.speed-main-nav-inner > #speedMenu.speed-main-nav-drawer.navbar-collapse {
		flex: 1 1 0%;
		min-width: 0;
		width: auto;
		max-width: none;
		flex-direction: row;
		align-items: center !important;
		margin-top: 0 !important;
		padding-top: 0 !important;
		border-top: none;
	}
}

@media (max-width: 991.98px) {
	.speed-brand-logo-img {
		max-width: 152px;
	}

	.speed-main-nav-drawer.navbar-collapse {
		flex-basis: 100%;
		flex-direction: column;
		align-items: stretch !important;
		width: 100%;
		margin-top: 0.35rem !important;
		padding-top: 0.25rem !important;
		border-top: 1px solid #eaebef;
	}

	.speed-main-nav-drawer .speed-main-nav-links {
		flex-direction: column;
		flex-wrap: nowrap !important;
		align-items: stretch !important;
		width: 100%;
		row-gap: 0;
	}

	.speed-main-nav-drawer .speed-main-nav-links .nav-item:not(:last-child) {
		border-bottom: 1px solid #eceef5;
	}

	.speed-main-nav-drawer .speed-main-nav-links .social-links {
		border-bottom: 0;
		padding-left: 0.35rem !important;
		padding-right: 0.35rem !important;
		padding-bottom: 0.45rem !important;
		justify-content: flex-start;
	}

	.speed-main-nav-drawer .nav-link:not(.social-link) {
		padding-left: 0.85rem !important;
		padding-right: 0.85rem !important;
		padding-top: 0.65rem !important;
		padding-bottom: 0.65rem !important;
		font-size: 0.93rem !important;
	}

	.speed-main-nav-drawer .btn-contactanos--drawer {
		flex-shrink: 0;
	}
}

.speed-subnav {
	background: var(--speed-yellow);
}

.speed-subnav-toggle {
	color: #fff;
	font-weight: 600;
	letter-spacing: 0.03em;
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	padding: 0.65rem 0.15rem;
}

.speed-subnav-toggle:hover,
.speed-subnav-toggle:focus,
.speed-subnav-toggle:active {
	color: #fff;
	border-color: transparent;
}

.speed-subnav-toggle i {
	font-size: 1.35rem;
	line-height: 1;
}

.speed-subnav-inner {
	display: flex;
	gap: 1rem;
	justify-content: center;
	flex-wrap: wrap;
	padding: 0.85rem 0.5rem;
}

.speed-subnav-inner a {
	color: #fff;
	font-size: 0.82rem;
	font-weight: 600;
	letter-spacing: 0.02em;
	display: inline-flex;
	align-items: center;
}

.speed-subnav-inner a:not(:last-child)::after {
	content: "|";
	color: rgba(255, 255, 255, 0.95);
	margin-left: 1rem;
}

.speed-hero {
	background: #fff;
}

.hero-media {
	height: 500px;
	overflow: hidden;
	background: #fff;
}

.hero-media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.hero-media .speed-hero-slide-link {
	display: block;
	height: 100%;
	text-decoration: none;
	color: inherit;
}

.hero-media .speed-hero-slide-link:focus-visible {
	outline: 3px solid rgba(36, 47, 98, 0.95);
	outline-offset: -3px;
}

.speed-hero-carousel .carousel-inner.hero-media {
	height: 500px;
}

.speed-hero-carousel .carousel-item {
	height: 100%;
}

.speed-hero-carousel .carousel-item .speed-hero-slide-link,
.speed-hero-carousel .carousel-item > img {
	height: 100%;
}

.speed-hero-carousel .carousel-indicators button {
	height: 0.55rem;
	border-radius: 999px;
}

.speed-hero-carousel .carousel-control-prev,
.speed-hero-carousel .carousel-control-next {
	width: 3rem;
	opacity: 0.92;
}

.speed-hero-carousel .carousel-control-prev-icon,
.speed-hero-carousel .carousel-control-next-icon {
	filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.45));
	width: 2.25rem;
	height: 2.25rem;
}

@media (max-width: 991.98px) {
	.speed-hero-carousel .carousel-inner.hero-media {
		height: 370px;
	}
}

@media (max-width: 767.98px) {
	.speed-hero-carousel .carousel-inner.hero-media {
		height: auto;
	}

	.speed-hero-carousel .carousel-item .speed-hero-slide-link {
		height: auto;
	}

	.speed-hero-carousel .carousel-item img {
		height: auto;
		object-fit: contain;
	}
}

.speed-home-search {
	background: #fff;
}

.speed-home-title {
	color: var(--speed-blue);
	font-size: clamp(2.2rem, 4vw, 3.2rem);
	font-weight: 600;
	letter-spacing: 0.03em;
}

.speed-home-subtitle {
	color: #8590a7;
	font-size: 0.95rem;
}

.home-search-panel {
	max-width: 720px;
}

.home-search-panel .form-control,
.home-search-panel .form-select {
	border: 1px solid #d8dce6;
	border-radius: 0.45rem;
}

.pack-card {
	position: relative;
	display: block;
	min-height: 300px;
	border-radius: 0.6rem;
	overflow: hidden;
	color: #fff;
	box-shadow: 0 10px 24px rgba(12, 22, 46, 0.18);
}

.pack-card img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.35s ease;
}

.pack-card:hover img {
	transform: scale(1.04);
}

.pack-overlay {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	min-height: 300px;
	padding: 1.1rem;
	background: linear-gradient(to top, rgba(0, 0, 0, 0.88), rgba(0, 0, 0, 0.22));
}

.pack-overlay h3 {
	font-size: 1.45rem;
	line-height: 1.2;
	font-weight: 600;
	margin-bottom: 0.4rem;
	text-shadow: 0 2px 8px rgba(0, 0, 0, 0.35);
}

.pack-price {
	font-size: 1rem;
	font-weight: 600;
	margin-bottom: 0.2rem;
}

.pack-meta {
	font-size: 0.8rem;
	font-weight: 400;
	margin-bottom: 0.7rem;
}

.pack-btn {
	align-self: flex-end;
	background: #fff;
	color: #2e3446;
	font-size: 0.75rem;
	font-weight: 600;
	padding: 0.35rem 0.75rem;
	border-radius: 0.35rem;
}

.pack-badge {
	position: absolute;
	z-index: 2;
	top: 0.75rem;
	left: 0.75rem;
	background: rgba(246, 178, 31, 0.95);
	color: #fff;
	font-size: 0.72rem;
	font-weight: 600;
	border-radius: 1rem;
	padding: 0.25rem 0.55rem;
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
}

.pack-badge i {
	font-size: 0.78rem;
	line-height: 1;
}

.pack-badge--air i,
.pack-badge--bus i,
.pack-badge--hotel i,
.pack-badge--ship i {
	filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.25));
}

.promo-banner-link,
.promo-banner-link img {
	display: block;
	width: 100%;
	border-radius: 0.55rem;
	overflow: hidden;
}

.speed-promo-banner {
	background: #fff;
}

.speed-categories {
	background: #fff;
}

.category-card {
	position: relative;
	display: block;
	border-radius: 0.4rem;
	overflow: hidden;
	min-height: 165px;
}

.category-card img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.category-card::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0.06));
}

.category-card span {
	position: absolute;
	z-index: 1;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	color: #fff;
	font-weight: 600;
	font-size: 0.95rem;
	line-height: 1.2;
	text-align: center;
	max-width: 90%;
}

/* Listado (promociones, internacionales, exoticos, nacionales) */
.speed-listado-header {
	background: #6a7285;
	color: #fff;
	padding: 0.9rem 0;
}

.speed-listado-title {
	margin: 0;
	font-size: 1.1rem;
	font-weight: 600;
	letter-spacing: 0.03em;
}

.speed-listado-content {
	background: #fff;
}

.speed-listado-subtitle {
	color: var(--speed-blue);
	font-size: clamp(1.6rem, 3vw, 2.2rem);
	font-weight: 600;
}

.speed-listado-bajada {
	color: var(--speed-muted);
	font-size: 0.95rem;
	line-height: 1.6;
}

.speed-listado-content .form-select {
	border: 1px solid #d8dce6;
	border-radius: 0.45rem;
}

.speed-listado-categorias {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.listado-strip {
	position: relative;
	display: flex;
	align-items: center;
	min-height: 120px;
	border-radius: 0.5rem;
	overflow: hidden;
	background-size: cover;
	background-position: center;
	text-decoration: none;
	transition: opacity 0.25s ease;
}

.listado-strip:hover {
	opacity: 0.95;
}

.listado-strip::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(to right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.15));
}

.listado-strip-text {
	position: relative;
	z-index: 1;
	color: #fff;
	font-size: 1.15rem;
	font-weight: 600;
	padding-left: 1.25rem;
	text-shadow: 0 2px 6px rgba(0, 0, 0, 0.4);
}

.speed-listado-banner {
	background: #fff;
	overflow: hidden;
}

.speed-listado-banner img {
	display: block;
	width: 100%;
	height: auto;
}

/* Detalle pack */
.speed-detail {
	background: #fff;
}

.speed-detail-title {
	color: var(--speed-blue);
	font-size: clamp(1.1rem, 2.1vw, 1.95rem);
	font-weight: 600;
	letter-spacing: 0.01em;
	text-transform: uppercase;
}

.speed-detail-panel {
	color: #2f3550;
}

.speed-detail-block h2,
.speed-detail-pricing h2 {
	font-size: 1.05rem;
	font-weight: 600;
	color: var(--speed-blue);
	margin-bottom: 0.35rem;
}

.speed-detail-text {
	font-size: 0.96rem;
	line-height: 1.6;
	color: #4b536a;
}

.speed-detail-main-price,
.speed-detail-secondary-price {
	font-size: clamp(2rem, 5vw, 3rem);
	line-height: 1;
	font-weight: 600;
	color: var(--speed-blue);
	margin: 0.45rem 0 0.8rem;
}

.speed-detail-secondary-price {
	font-size: clamp(1.45rem, 4vw, 2.1rem);
}

.speed-detail-financing {
	background: #f3f5f9;
	border: 1px solid #e0e4ee;
	border-radius: 0.6rem;
	padding: 0.85rem;
	margin-bottom: 0.85rem;
}

.speed-detail-financing p {
	margin: 0 0 0.35rem;
	font-weight: 600;
	color: #2f3550;
}

.speed-detail-financing small {
	color: #5d657b;
	display: block;
	line-height: 1.45;
}

.speed-detail-legales {
	font-size: 0.8rem;
	color: #4e5568;
	line-height: 1.5;
	margin-top: 0.55rem;
}

.speed-detail-links {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
}

.speed-detail-links a {
	color: #2f3550;
	font-size: 0.86rem;
	font-weight: 600;
	letter-spacing: 0.02em;
}

.speed-detail-form-wrap .formulario-consulta-destino {
	background: #f5f6f8;
	border: 1px solid #e3e6ee;
	border-radius: 0.75rem;
	padding: 1rem;
}

.speed-detail-form-wrap .formulario-consulta-destino h3 {
	font-size: 0.95rem;
	font-weight: 600;
	color: #50586e;
	margin-bottom: 0.95rem;
}

.speed-detail-form-wrap .form-label {
	font-size: 0.73rem;
	font-weight: 600;
	color: #6a7285;
	letter-spacing: 0.03em;
	text-transform: uppercase;
}

.speed-detail-form-wrap .form-control,
.speed-detail-form-wrap .form-select {
	border: 1px solid #d8dce6;
	border-radius: 0.35rem;
}

.speed-share {
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 0.35rem;
	min-height: 2.25rem;
	font-size: 0.8rem;
	font-weight: 600;
	color: #fff;
}

.speed-share--facebook {
	background: #1877f2;
}

.speed-share--x {
	background: #000;
}

.speed-share--whatsapp {
	background: #25d366;
}

.speed-related {
	background: #fff;
}

.speed-shortcuts {
	background: #fff;
	border-top: 1px solid #eceef3;
}

.shortcut-item {
	display: flex;
	align-items: center;
	flex-direction: column;
	gap: 0.55rem;
	color: #6d7485;
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.03em;
}

.shortcut-item i {
	font-size: 2rem;
	color: var(--speed-blue-soft);
}

.speed-footer {
	background: var(--speed-blue);
	color: #fff;
}

.footer-newsletter {
	border-top: 1px solid rgba(255, 255, 255, 0.16);
	border-bottom: 1px solid rgba(255, 255, 255, 0.16);
}

.footer-newsletter input {
	border-radius: 999px;
	border: 0;
	padding-left: 1.25rem;
}

.footer-title {
	font-size: 1.45rem;
	font-weight: 600;
	margin: 0;
}

.footer-link-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(150px, 1fr));
	gap: 0.6rem 1rem;
	margin-top: 1rem;
}

.footer-link-grid a {
	color: #f5f6ff;
	font-size: 0.9rem;
}

.footer-contact-banner {
	border-top: 1px solid rgba(255, 255, 255, 0.16);
	border-bottom: 1px solid rgba(255, 255, 255, 0.16);
}

.footer-contact-link {
	color: #fff;
	font-size: 2.1rem;
	font-weight: 600;
	letter-spacing: 0.02em;
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	line-height: 1.05;
}

.footer-contact-icon {
	font-size: 3.2rem;
	margin-bottom: 0.65rem;
}

.footer-offices {
	background: #f3f4f6;
	color: #2f3550;
}

.footer-offices .footer-title {
	color: #2f3550;
	font-size: 1.2rem;
}

.office-grid a {
	color: #2f3550;
}

.office-grid div {
	font-size: 0.9rem;
	line-height: 1.55;
}

.footer-legal {
	background: #e9eaed;
	color: #4f5567;
	font-size: 0.72rem;
}

.footer-developer {
	border-top: 1px solid rgba(47, 53, 80, 0.1);
	background: #e3e5ea;
	font-size: 0.68rem;
	line-height: 1.25;
}

.footer-developer-inner {
	display: flex;
	justify-content: center;
	align-items: center;
	padding: 0.45rem 0.5rem 0.55rem;
	text-align: center;
}

.footer-developer-link {
	display: inline-flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 0.25rem 0.45rem;
	color: #484e63;
	text-decoration: none;
	font-weight: 500;
	transition: color 0.18s ease, opacity 0.18s ease;
}

.footer-developer-link:hover {
	color: #24305f;
	opacity: 0.95;
}

.footer-developer-phrase {
	white-space: nowrap;
}

@media (max-width: 575.98px) {
	.footer-developer-phrase {
		white-space: normal;
		text-align: center;
		flex: 1 1 100%;
	}
}

.footer-developer-by {
	font-weight: 400;
	opacity: 0.88;
	letter-spacing: 0.02em;
}

.footer-developer-name {
	font-weight: 600;
	letter-spacing: 0.01em;
	margin-left: 0.22em;
}

.footer-developer-logo {
	height: 22px;
	width: auto;
	max-width: min(112px, 38vw);
	display: block;
	object-fit: contain;
	opacity: 0.98;
}

@media (max-width: 991.98px) {
	.topbar-right {
	width: 100%;
	justify-content: flex-end;
	}

	.hero-media {
		height: 370px;
	}

	.pack-overlay h3 {
		font-size: 1.2rem;
	}
}

@media (max-width: 767.98px) {
	.speed-subnav-inner {
		flex-direction: column;
		align-items: flex-start;
		gap: 0.45rem;
		padding: 0 0 0.9rem;
	}

	.speed-subnav-inner a:not(:last-child)::after {
		content: "";
		margin-left: 0;
	}

	.topbar-left {
		width: 100%;
		justify-content: flex-start;
	}

	.topbar-search-group {
		max-width: none;
	}

	.search-suggest-top {
		min-width: 0;
		width: 100%;
	}

	.hero-media {
		height: auto;
		overflow: visible;
	}

	.hero-media img {
		height: auto;
		object-fit: contain;
	}

	.pack-card,
	.pack-overlay {
		min-height: 240px;
	}

	.pack-overlay h3 {
		font-size: 1rem;
	}

	.footer-link-grid {
		grid-template-columns: 1fr;
	}

	.footer-contact-link {
		font-size: 1.6rem;
	}

	.footer-contact-icon {
		font-size: 2.5rem;
	}

	.speed-detail-title {
		font-size: 1.25rem;
	}

	.speed-detail-main-price {
		font-size: 2.15rem;
	}
}

/* ===== Viajes a medida (speed) ===== */
.speed-vam-hero {
	position: relative;
	background: #fff;
}

.speed-vam-hero .hero-media {
	height: 500px;
}

.speed-vam-hero-overlay {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	background: linear-gradient(to bottom, rgba(36, 47, 98, 0.55), rgba(36, 47, 98, 0.7));
	padding: 1.5rem;
}

.speed-vam-hero-eyebrow {
	display: inline-block;
	background: var(--speed-yellow);
	color: #2f3550;
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	padding: 0.35rem 0.85rem;
	border-radius: 2rem;
	margin-bottom: 1rem;
}

.speed-vam-hero-title {
	color: #fff;
	font-size: clamp(2rem, 5vw, 3.6rem);
	font-weight: 600;
	letter-spacing: 0.01em;
	margin-bottom: 1rem;
	text-shadow: 0 4px 16px rgba(0, 0, 0, 0.35);
}

.speed-vam-hero-text {
	color: rgba(255, 255, 255, 0.95);
	font-size: clamp(0.95rem, 1.6vw, 1.15rem);
	line-height: 1.55;
	max-width: 760px;
	margin-left: auto;
	margin-right: auto;
}

.speed-vam-cta {
	background: #fff;
}

.speed-vam-cta-btn {
	font-weight: 600;
	letter-spacing: 0.05em;
	padding: 0.85rem 2rem;
	border-radius: 2.5rem;
	color: #2f3550;
	box-shadow: 0 10px 22px rgba(246, 178, 31, 0.35);
}

.speed-vam-cta-btn:hover,
.speed-vam-cta-btn:focus {
	color: #2f3550;
	box-shadow: 0 12px 26px rgba(246, 178, 31, 0.45);
}

.speed-vam-cta-chevron {
	transition: transform 0.25s ease;
}

.speed-vam-cta-btn[aria-expanded="true"] .speed-vam-cta-chevron {
	transform: rotate(180deg);
}

.speed-vam-form-wrap {
	max-width: 880px;
	background: #f5f6f8;
	border: 1px solid #e3e6ee;
	border-radius: 0.85rem;
	padding: 1.75rem;
	box-shadow: 0 12px 30px rgba(36, 47, 98, 0.08);
}

.speed-vam-form-title {
	color: var(--speed-blue);
	font-size: 1.2rem;
	font-weight: 600;
	margin-bottom: 0.35rem;
}

.speed-vam-form-help {
	color: #50586e;
	font-size: 0.92rem;
}

.speed-vam-form-wrap .form-label {
	font-size: 0.73rem;
	font-weight: 600;
	color: #6a7285;
	letter-spacing: 0.03em;
	text-transform: uppercase;
}

.speed-vam-form-wrap .form-control,
.speed-vam-form-wrap .form-select {
	border: 1px solid #d8dce6;
	border-radius: 0.4rem;
}

.speed-vam-divider {
	border: 0;
	border-top: 1px dashed #cdd2dd;
	margin: 0.5rem 0 0;
}

.speed-vam-porque {
	background: #f7f8fb;
}

.speed-vam-section-title {
	color: var(--speed-blue);
	font-size: clamp(1.6rem, 3vw, 2.2rem);
	font-weight: 600;
	margin-bottom: 1rem;
}

.speed-vam-section-text {
	color: #4b536a;
	font-size: 1rem;
	line-height: 1.65;
	margin-bottom: 1rem;
}

.speed-vam-features li {
	display: flex;
	align-items: flex-start;
	gap: 0.85rem;
	padding: 0.85rem 1rem;
	background: var(--speed-blue);
	border: 1px solid rgba(246, 178, 31, 0.35);
	border-left: 4px solid var(--speed-yellow);
	border-radius: 0.6rem;
	margin-bottom: 0.7rem;
	color: #fff;
	font-size: 0.95rem;
	line-height: 1.45;
}

.speed-vam-features li i {
	color: var(--speed-yellow);
	font-size: 1.4rem;
	line-height: 1;
	flex-shrink: 0;
	margin-top: 0.1rem;
}

.speed-vam-feature-icon {
	width: 1.75rem;
	height: 1.75rem;
	flex-shrink: 0;
	margin-top: 0.05rem;
	object-fit: contain;
	background: var(--speed-yellow);
	border-radius: 50%;
	padding: 0.3rem;
}

.speed-vam-pasos {
	background: #fff;
}

.speed-vam-paso {
	background: #f5f6f8;
	border: 1px solid #e3e6ee;
	border-radius: 0.85rem;
	padding: 1.75rem 1.25rem;
	height: 100%;
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.speed-vam-paso:hover {
	transform: translateY(-4px);
	box-shadow: 0 14px 28px rgba(36, 47, 98, 0.1);
}

.speed-vam-paso-icon {
	width: 104px;
	height: 104px;
	margin: 0 auto 1rem;
	background: #fff;
	color: var(--speed-blue);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 2rem;
	box-shadow: 0 10px 20px rgba(0, 20, 137, 0.15);
}

.speed-vam-paso-icon img {
	width: 64%;
	height: 64%;
	object-fit: contain;
	display: block;
}

.speed-vam-paso-num {
	display: inline-block;
	color: var(--speed-yellow);
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	margin-bottom: 0.35rem;
}

.speed-vam-paso-title {
	color: var(--speed-blue);
	font-size: 1.2rem;
	font-weight: 600;
	margin-bottom: 0.6rem;
}

.speed-vam-paso-text {
	color: #4b536a;
	font-size: 0.93rem;
	line-height: 1.55;
	margin-bottom: 0;
}

@media (max-width: 767.98px) {
	.speed-vam-hero .hero-media {
		height: 420px;
	}

	.speed-vam-hero .hero-media img {
		height: 100%;
		object-fit: cover;
	}

	.speed-vam-form-wrap {
		padding: 1.25rem;
	}

	.speed-vam-features li {
		font-size: 0.9rem;
	}
}

/* Financiación (speed) */
.speed-fin-carousel-wrap {
	background: #fff;
}

.speed-fin-carousel .carousel-inner {
	border-radius: 0;
}

.speed-fin-carousel-img {
	max-height: 420px;
	object-fit: cover;
}

.speed-fin-intro {
	font-size: 0.98rem;
	line-height: 1.65;
	color: var(--speed-muted);
}

.speed-fin-intro p:last-child {
	margin-bottom: 0;
}

.speed-fin-table thead th {
	background: var(--speed-blue);
	color: #fff;
	font-size: 0.82rem;
	font-weight: 600;
	padding: 0.75rem 1rem;
	vertical-align: middle;
	border-bottom: none;
}

.speed-fin-table tbody td {
	font-size: 0.93rem;
	padding: 0.75rem 1rem;
	vertical-align: top;
	border-color: #e8eaf0;
	color: var(--speed-text);
}

.speed-fin-footer-inner {
	background: #fff;
	max-width: 100%;
}

.speed-fin-footer-img {
	max-height: 280px;
	object-fit: contain;
	object-position: center;
	margin: 0 auto;
}

.speed-fin-footer-slider .carousel-control-prev,
.speed-fin-footer-slider .carousel-control-next {
	width: 2.75rem;
	opacity: 1;
}

.speed-fin-footer-slider .carousel-control-prev-icon,
.speed-fin-footer-slider .carousel-control-next-icon {
	filter: invert(0.35);
}

.speed-inline-link {
	color: var(--speed-blue);
	text-decoration: underline;
	text-underline-offset: 0.12em;
}

.speed-inline-link:hover,
.speed-inline-link:focus {
	color: var(--speed-blue-soft);
}

.speed-olap-wrap {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

.speed-olap-wrap img.olap-img.ola-logo {
	display: none !important;
}

.speed-fin-carousel .carousel-control-prev,
.speed-fin-carousel .carousel-control-next {
	width: 3rem;
	opacity: 0.85;
}

.speed-fin-carousel .carousel-control-prev-icon,
.speed-fin-carousel .carousel-control-next-icon {
	filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.5));
}

@media (max-width: 575.98px) {
	.speed-fin-carousel-img {
		max-height: 220px;
	}
}

/* Alquiler de autos (speed) */
.speed-alq-hero {
	background: #fff;
	overflow: hidden;
}

.speed-alq-hero-link:focus-visible {
	outline: 3px solid var(--speed-yellow);
	outline-offset: 2px;
}

.speed-alq-hero-img {
	display: block;
	max-height: 420px;
	width: 100%;
	object-fit: cover;
}

.speed-alq-block {
	font-size: 0.98rem;
	line-height: 1.65;
	color: var(--speed-muted);
}

.speed-alq-block p:last-child {
	margin-bottom: 0;
}

.speed-alq-cta {
	font-weight: 600;
	color: #1f2430 !important;
	border: none;
}

.speed-alq-marcas {
	border-top: 1px solid #e8eaf0;
	border-bottom: 1px solid #e8eaf0;
	margin-top: 0.5rem;
	margin-bottom: 0.5rem;
}

.speed-alq-marca-img {
	max-height: 56px;
	width: auto;
	object-fit: contain;
}

@media (max-width: 575.98px) {
	.speed-alq-hero-img {
		max-height: 240px;
	}
}

/* Contacto turismo (speed) */
.speed-contact-lead {
	color: var(--speed-muted);
	font-size: 1rem;
	line-height: 1.55;
	margin-bottom: 0;
}

.speed-contact-form .form-label {
	font-weight: 600;
	color: var(--speed-text);
	font-size: 0.9rem;
}

.speed-contact-form .form-control,
.speed-contact-form .form-select {
	border: 1px solid #d8dce6;
	border-radius: 0.45rem;
}

.speed-contact-ada-panel {
	background-color: #d6f0ff;
	border: 1px solid rgba(0, 20, 137, 0.08);
}

.speed-contact-submit {
	font-weight: 600;
	color: #1f2430 !important;
	border: none;
}

.speed-contact-submit-wrap {
	width: 100%;
	max-width: 100%;
	text-align: center;
}

.speed-contact-submit-wrap > .btn {
	flex-shrink: 0;
}

/* Spinner botón enviar (contacto / consulta destino) */
.contact-submit-btn {
	position: relative;
	min-height: 2.75rem;
}

.contact-submit-btn .contact-submit-spinner {
	display: none;
	box-sizing: border-box;
	width: 1.15rem;
	height: 1.15rem;
	border: 2px solid transparent;
	border-top-color: currentColor;
	border-right-color: currentColor;
	border-radius: 50%;
	animation: contact-submit-spin 0.65s linear infinite;
	opacity: 0.85;
}

.contact-submit-btn.is-loading .contact-submit-spinner {
	display: block;
	position: absolute;
	left: 50%;
	top: 50%;
	margin-left: -0.575rem;
	margin-top: -0.575rem;
}

.contact-submit-btn.is-loading .contact-submit-btn-inner {
	opacity: 0;
}

@keyframes contact-submit-spin {
	to {
		transform: rotate(360deg);
	}
}

/* Indicador "consulta por pack" en contacto (?id producto) */
.speed-contact-pack-indicator {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	column-gap: 0.65rem;
	row-gap: 0.35rem;
}

.speed-contact-pack-check {
	color: var(--speed-contact-valid);
	font-size: 1.35rem;
	line-height: 1;
	flex-shrink: 0;
}

.speed-contact-pack-text {
	font-size: 0.95rem;
	font-weight: 600;
	line-height: 1.35;
	color: var(--speed-text);
	letter-spacing: 0.01em;
}

.speed-contact-pack-id-badge {
	display: inline-flex;
	align-items: center;
	gap: 0.38rem;
	padding: 0.35rem 0.75rem 0.35rem 0.55rem;
	border-radius: 2rem;
	background: rgba(25, 135, 84, 0.12);
	color: #13795b;
	border: 1px solid rgba(25, 135, 84, 0.45);
	font-size: 0.88rem;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 0.02em;
}

/* Estados de campo (feedback en vivo): verde válido / rojo inválido */
.speed-contact-form .form-control.speed-contact-field--valid,
.speed-contact-form .form-select.speed-contact-field--valid {
	outline: none;
	box-shadow: none;
	border: 1px solid var(--speed-contact-valid) !important;
}

.speed-contact-form .form-control.speed-contact-field--invalid,
.speed-contact-form .form-select.speed-contact-field--invalid {
	outline: none;
	box-shadow: none;
	border: 1px solid var(--speed-contact-invalid) !important;
}

/* Quiénes somos (speed — ?p=home&m=quienessomos) */
.speed-qs-section {
	background: #fff;
}

.speed-qs-section--alt {
	background: #f1f4f9;
	border-top: 1px solid #e4e7ee;
	border-bottom: 1px solid #e4e7ee;
}

.speed-qs-heading {
	margin: 0 0 1rem;
	font-size: clamp(1.35rem, 2.8vw, 1.85rem);
	font-weight: 700;
	color: var(--speed-blue);
	letter-spacing: 0.02em;
	line-height: 1.25;
}

.speed-qs-copy {
	max-width: 52rem;
	font-size: 1rem;
	line-height: 1.67;
	color: var(--speed-muted);
}

.speed-qs-copy p:last-child {
	margin-bottom: 0;
}

/* Dónde estamos (speed) */
.speed-donde-intro {
	max-width: 720px;
	color: var(--speed-muted);
	font-size: 0.98rem;
	line-height: 1.65;
	margin-bottom: 0;
}

/* Institucional (speed — ?p=home&m=pagina&site=institucional) */
.speed-inst-single-head-img {
	object-fit: cover;
	max-height: 280px;
}

.speed-inst-prose .speed-fin-intro img,
.speed-inst-texto img {
	max-width: 100%;
	height: auto;
}

.speed-inst-gallery-img {
	aspect-ratio: 1;
	object-fit: cover;
	vertical-align: middle;
}

.speed-inst-gallery-item:focus-visible {
	outline: 3px solid var(--speed-accent, #f5a623);
	outline-offset: 2px;
}

.speed-fed-link-thumb:focus-visible {
	outline: 3px solid var(--speed-accent, #f5a623);
	outline-offset: 3px;
}

/* Asistencia al viajero (speed) */
.speed-asist-subsidio {
	font-size: 0.93rem;
	vertical-align: top;
}

.speed-asist-subsidio p:last-child {
	margin-bottom: 0;
}

.speed-asist-pie-img {
	max-height: 420px;
	width: auto;
	object-fit: contain;
}

/* Aéreos (speed) */
.speed-aereos-logo {
	max-width: 160px;
	width: auto;
	height: auto;
	display: block;
}

.speed-aereos-logo-cell {
	vertical-align: middle;
	width: 1%;
	min-width: 120px;
}

.speed-aereos-intereses {
	font-size: 0.93rem;
	vertical-align: top;
}

.speed-aereos-intereses p:last-child {
	margin-bottom: 0;
}

/* Página CMS simple speed (`pagina_speed.tpl.php`; ej. condiciones del sorteo) */
.speed-pagina-prose img {
	max-width: 100%;
	height: auto;
}
