/*
Theme Name: Hello Elementor Child
Theme URI: https://virtual-year.com/
Description: Tema hijo de Hello Elementor para Virtual Year.
Author: Virtual Year
Author URI: https://virtual-year.com/
Template: hello-elementor
Version: 1.0.0
Text Domain: hello-elementor-child
*/

/* =====================================================
   CSS GLOBAL DE VIRTUAL YEAR
   ===================================================== */

/*
Pega a partir de aquí todo el CSS personalizado actual.

No borres la cabecera anterior, porque WordPress la necesita
para reconocer este tema como hijo de Hello Elementor.
*/

.rth-hero-price-buttons {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 18px;
	margin: 20px 0;
}

.rth-hero-price-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	padding: 14px 22px;
	border-radius: 8px;
	background: #ffffff;
	color: #002f6f;
	font-family: "Montserrat", sans-serif;
	font-size: 18px;
	font-weight: 700;
	text-decoration: none;
	box-shadow: 0 8px 22px rgba(0, 0, 0, 0.14);
	transition: all 0.25s ease;
}

.rth-hero-price-button:hover {
	transform: translateY(-2px);
	background: #f2f6ff;
	color: #002f6f;
}

.rth-hero-price-label {
	display: inline-block;
}

.rth-hero-price-value {
	display: inline-block;
	color: #004aad;
	font-weight: 800;
}

@media (max-width: 767px) {
	.rth-hero-price-buttons {
		flex-direction: column;
		align-items: stretch;
		gap: 12px;
	}

	.rth-hero-price-button {
		width: 100%;
		font-size: 16px;
		padding: 13px 16px;
		text-align: center;
	}
}

.rth-tarifa-cta-button {
	display: inline-block;
	margin-top: 14px;
	background: #ffffff;
	color: #002f6f;
	padding: 15px 28px;
	border-radius: 8px;
	font-family: "Montserrat", sans-serif;
	font-weight: 800;
	text-decoration: none;
	transition: all 0.25s ease;
}

.rth-tarifa-cta-button:hover {
	background: #eaf1fb;
	color: #002f6f;
	transform: translateY(-2px);
}


.rth-tarifa-intro {
    margin: 28px 0 36px;
    padding: 34px 32px;
    background: #ffffff;
    border-radius: 16px;
    box-shadow: 0 10px 28px rgba(0,0,0,0.08);
    text-align: center;
}

.rth-tarifa-intro h2 {
    margin: 0 0 16px;
    font-size: 30px;
    line-height: 1.25;
    font-weight: 800;
    color: #111111;
}

.rth-tarifa-intro-main {
    max-width: 850px;
    margin: 0 auto 24px;
    font-size: 18px;
    line-height: 1.65;
    color: #333333;
}

.rth-tarifa-intro-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
    margin: 26px 0 22px;
}

.rth-tarifa-intro-item {
    padding: 18px 14px;
    background: #f5f8fc;
    border-radius: 12px;
    border: 1px solid #e2e9f2;
}

.rth-tarifa-intro-item span {
    display: block;
    margin-bottom: 8px;
    font-size: 15px;
    line-height: 1.35;
    color: #333333;
}

.rth-tarifa-intro-item strong {
    display: block;
    font-size: 24px;
    line-height: 1.2;
    font-weight: 800;
    color: #004aad;
}

.rth-tarifa-intro-note {
    margin: 0;
    font-size: 15px;
    line-height: 1.5;
    color: #555555;
}

@media (max-width: 1024px) {
    .rth-tarifa-intro-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 767px) {
    .rth-tarifa-intro {
        margin: 24px 0 30px;
        padding: 26px 20px;
    }

    .rth-tarifa-intro h2 {
        font-size: 24px;
    }

    .rth-tarifa-intro-main {
        font-size: 16px;
        line-height: 1.6;
    }

    .rth-tarifa-intro-grid {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .rth-tarifa-intro-item strong {
        font-size: 22px;
    }
}
.rth-reserva-info {
    margin: 28px auto 36px;
    padding: 18px 22px;
    max-width: 900px;
    background: #f5f8fc;
    border: 1px solid #e2e9f2;
    border-radius: 12px;
    font-size: 16px;
    line-height: 1.6;
    color: #333333;
    text-align: center;
}


/* =========================================================
   RADIO TAXI HUELVA
   SISTEMA GLOBAL PARA PÁGINAS HUB COMERCIALES

   Prefijo general:
   .rth-hub-...

   Este CSS está preparado para:
   - Hero
   - Introducciones
   - Ventajas
   - Vehículos
   - Tarifas
   - Ida y vuelta
   - Equipaje y sillas
   - Proceso de reserva
   - Red operativa
   - Preguntas frecuentes
   - CTA final
   - Autoría corporativa
   - Bloques informativos

   Las tarjetas existentes de rutas NO están incluidas.

   Añadir una sola vez en:
   Elementor > Ajustes del sitio > CSS personalizado
   o
   Apariencia > Personalizar > CSS adicional
========================================================= */


/* =========================================================
   1. VARIABLES GLOBALES
========================================================= */

:root {

	/* Identidad corporativa */
	--rth-hub-primary: #004aad;
	--rth-hub-primary-dark: #00367f;
	--rth-hub-primary-deep: #06264f;
	--rth-hub-secondary: #1c93e2;
	--rth-hub-secondary-dark: #1179bd;
	--rth-hub-secondary-soft: #eaf6fd;

	/* Fondos */
	--rth-hub-white: #ffffff;
	--rth-hub-light: #f4f8fc;
	--rth-hub-light-blue: #edf6fc;
	--rth-hub-soft-grey: #f7f9fb;
	--rth-hub-dark: #06264f;
	--rth-hub-dark-soft: #0b3d78;

	/* Textos */
	--rth-hub-text: #27323b;
	--rth-hub-text-dark: #101820;
	--rth-hub-muted: #65717c;
	--rth-hub-muted-light: #86939e;

	/* Bordes */
	--rth-hub-border: #dce8f2;
	--rth-hub-border-strong: #bfd8ea;

	/* Estados */
	--rth-hub-success: #198754;
	--rth-hub-warning: #b36b00;
	--rth-hub-warning-soft: #fff5df;
	--rth-hub-info-soft: #edf7fd;

	/* Sombras */
	--rth-hub-shadow-sm:
		0 10px 28px rgba(6, 38, 79, 0.08);

	--rth-hub-shadow:
		0 22px 60px rgba(6, 38, 79, 0.12);

	--rth-hub-shadow-lg:
		0 32px 90px rgba(6, 38, 79, 0.18);

	/* Radios */
	--rth-hub-radius-xs: 8px;
	--rth-hub-radius-sm: 12px;
	--rth-hub-radius-md: 18px;
	--rth-hub-radius-lg: 28px;
	--rth-hub-radius-xl: 38px;

	/* Anchos */
	--rth-hub-container: 1220px;
	--rth-hub-container-narrow: 1080px;
	--rth-hub-reading-width: 760px;

}


/* =========================================================
   2. RESET INTERNO DEL SISTEMA
========================================================= */

.rth-hub,
.rth-hub *,
.rth-hub *::before,
.rth-hub *::after {
	box-sizing: border-box;
}

.rth-hub {
	width: 100%;
	overflow: hidden;
	color: var(--rth-hub-text);
	font-family: inherit;
}

.rth-hub img,
.rth-hub svg {
	display: block;
	max-width: 100%;
}

.rth-hub a {
	text-decoration: none;
}

.rth-hub button,
.rth-hub input,
.rth-hub select,
.rth-hub textarea {
	font: inherit;
}

.rth-hub p,
.rth-hub ul,
.rth-hub ol,
.rth-hub h1,
.rth-hub h2,
.rth-hub h3,
.rth-hub h4 {
	overflow-wrap: break-word;
}


/* =========================================================
   3. CONTENEDORES
========================================================= */

.rth-hub-container {
	width: min(
		calc(100% - 40px),
		var(--rth-hub-container)
	);
	margin-inline: auto;
}

.rth-hub-container--narrow {
	width: min(
		calc(100% - 40px),
		var(--rth-hub-container-narrow)
	);
	margin-inline: auto;
}

.rth-hub-container--reading {
	width: min(
		calc(100% - 40px),
		var(--rth-hub-reading-width)
	);
	margin-inline: auto;
}


/* =========================================================
   4. SECCIONES GENERALES
========================================================= */

.rth-hub-section {
	position: relative;
	padding: clamp(72px, 9vw, 120px) 0;
	background: var(--rth-hub-white);
}

.rth-hub-section--light {
	background: var(--rth-hub-light);
}

.rth-hub-section--blue-light {
	background: var(--rth-hub-light-blue);
}

.rth-hub-section--dark {
	background:
		radial-gradient(
			circle at 88% 12%,
			rgba(28, 147, 226, 0.22) 0,
			rgba(28, 147, 226, 0) 36%
		),
		linear-gradient(
			135deg,
			var(--rth-hub-primary-deep) 0%,
			var(--rth-hub-primary) 100%
		);
	color: var(--rth-hub-white);
}

.rth-hub-section--compact {
	padding: clamp(52px, 7vw, 82px) 0;
}

.rth-hub-section--no-top {
	padding-top: 0;
}

.rth-hub-section--no-bottom {
	padding-bottom: 0;
}


/* =========================================================
   5. EYEBROW, CABECERAS Y TEXTOS
========================================================= */

.rth-hub-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 18px;
	color: var(--rth-hub-secondary);
	font-size: 0.82rem;
	font-weight: 800;
	line-height: 1.3;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.rth-hub-eyebrow::before {
	content: "";
	width: 34px;
	height: 2px;
	flex: 0 0 auto;
	border-radius: 999px;
	background: currentColor;
}

.rth-hub-eyebrow--dark {
	color: var(--rth-hub-primary);
}

.rth-hub-eyebrow--white {
	color: var(--rth-hub-white);
}

.rth-hub-section-heading {
	max-width: 820px;
	margin-bottom: clamp(38px, 5vw, 60px);
}

.rth-hub-section-heading--center {
	margin-right: auto;
	margin-left: auto;
	text-align: center;
}

.rth-hub-section-heading--center .rth-hub-eyebrow {
	justify-content: center;
}

.rth-hub-heading {
	margin: 0;
	color: var(--rth-hub-text-dark);
	font-size: clamp(2rem, 4vw, 3.45rem);
	font-weight: 800;
	line-height: 1.08;
	letter-spacing: -0.038em;
	text-wrap: balance;
}

.rth-hub-section--dark .rth-hub-heading {
	color: var(--rth-hub-white);
}

.rth-hub-subheading {
	margin: 18px 0 0;
	color: var(--rth-hub-muted);
	font-size: clamp(1rem, 1.6vw, 1.14rem);
	line-height: 1.75;
}

.rth-hub-section--dark .rth-hub-subheading {
	color: rgba(255, 255, 255, 0.77);
}

.rth-hub-lead {
	margin: 0;
	color: var(--rth-hub-text-dark);
	font-size: clamp(1.12rem, 2vw, 1.34rem);
	font-weight: 650;
	line-height: 1.72;
}

.rth-hub-copy {
	color: var(--rth-hub-text);
	font-size: clamp(1rem, 1.4vw, 1.08rem);
	line-height: 1.82;
}

.rth-hub-copy p {
	margin: 0 0 22px;
}

.rth-hub-copy p:last-child {
	margin-bottom: 0;
}

.rth-hub-copy strong {
	color: var(--rth-hub-text-dark);
	font-weight: 750;
}

.rth-hub-copy a {
	color: var(--rth-hub-primary);
	font-weight: 750;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}

.rth-hub-copy a:hover {
	color: var(--rth-hub-secondary-dark);
}


/* =========================================================
   6. HERO
========================================================= */

.rth-hub-hero {
	position: relative;
	overflow: hidden;
	padding: clamp(72px, 9vw, 132px) 0;
	background:
		radial-gradient(
			circle at 88% 12%,
			rgba(28, 147, 226, 0.25) 0,
			rgba(28, 147, 226, 0) 36%
		),
		linear-gradient(
			135deg,
			var(--rth-hub-primary-deep) 0%,
			var(--rth-hub-primary) 100%
		);
	isolation: isolate;
}

.rth-hub-hero::before {
	content: "";
	position: absolute;
	z-index: -1;
	top: -170px;
	right: -130px;
	width: 440px;
	height: 440px;
	border: 1px solid rgba(255, 255, 255, 0.08);
	border-radius: 50%;
}

.rth-hub-hero::after {
	content: "";
	position: absolute;
	z-index: -1;
	right: 8%;
	bottom: -240px;
	width: 560px;
	height: 560px;
	border: 1px solid rgba(28, 147, 226, 0.22);
	border-radius: 50%;
}

.rth-hub-hero .rth-hub-container {
	display: grid;
	grid-template-columns:
		minmax(0, 1.2fr)
		minmax(320px, 0.8fr);
	gap: clamp(42px, 7vw, 90px);
	align-items: center;
}

.rth-hub-hero__content {
	max-width: 760px;
}

.rth-hub-title {
	max-width: 850px;
	margin: 0;
	color: var(--rth-hub-white);
	font-size: clamp(2.45rem, 5.3vw, 4.9rem);
	font-weight: 800;
	line-height: 0.99;
	letter-spacing: -0.045em;
	text-wrap: balance;
}

.rth-hub-hero__text {
	max-width: 720px;
	margin: 28px 0 0;
	color: rgba(255, 255, 255, 0.82);
	font-size: clamp(1.05rem, 1.8vw, 1.22rem);
	line-height: 1.75;
}

.rth-hub-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin-top: 34px;
}


/* =========================================================
   7. BOTONES
========================================================= */

.rth-hub-button {
	display: inline-flex;
	min-height: 54px;
	align-items: center;
	justify-content: center;
	gap: 12px;
	padding: 14px 23px;
	border: 1px solid transparent;
	border-radius: 999px;
	font-size: 0.98rem;
	font-weight: 800;
	line-height: 1.2;
	transition:
		transform 180ms ease,
		background-color 180ms ease,
		border-color 180ms ease,
		color 180ms ease,
		box-shadow 180ms ease;
}

.rth-hub-button:hover,
.rth-hub-button:focus-visible {
	transform: translateY(-2px);
}

.rth-hub-button:focus-visible,
.rth-hub-text-link:focus-visible {
	outline: 3px solid rgba(28, 147, 226, 0.42);
	outline-offset: 4px;
}

.rth-hub-button--primary,
.rth-hub-button--primary:link,
.rth-hub-button--primary:visited {
	background: var(--rth-hub-white);
	color: var(--rth-hub-primary) !important;
	box-shadow: 0 14px 34px rgba(0, 0, 0, 0.14);
}

.rth-hub-button--primary:hover,
.rth-hub-button--primary:focus-visible {
	background: var(--rth-hub-secondary-soft);
	color: var(--rth-hub-primary-dark) !important;
	box-shadow: 0 18px 42px rgba(0, 0, 0, 0.19);
}

.rth-hub-button--secondary,
.rth-hub-button--secondary:link,
.rth-hub-button--secondary:visited {
	border-color: rgba(255, 255, 255, 0.55);
	background: rgba(0, 0, 0, 0.14);
	color: var(--rth-hub-white) !important;
	backdrop-filter: blur(8px);
}

.rth-hub-button--secondary:hover,
.rth-hub-button--secondary:focus-visible {
	border-color: var(--rth-hub-white);
	background: var(--rth-hub-white);
	color: var(--rth-hub-primary) !important;
}

.rth-hub-button--blue,
.rth-hub-button--blue:link,
.rth-hub-button--blue:visited {
	background: var(--rth-hub-primary);
	color: var(--rth-hub-white) !important;
	box-shadow:
		0 14px 34px rgba(0, 74, 173, 0.2);
}

.rth-hub-button--blue:hover,
.rth-hub-button--blue:focus-visible {
	background: var(--rth-hub-primary-dark);
	color: var(--rth-hub-white) !important;
	box-shadow:
		0 18px 40px rgba(0, 74, 173, 0.28);
}

.rth-hub-button--outline-blue,
.rth-hub-button--outline-blue:link,
.rth-hub-button--outline-blue:visited {
	border-color: var(--rth-hub-primary);
	background: transparent;
	color: var(--rth-hub-primary) !important;
}

.rth-hub-button--outline-blue:hover,
.rth-hub-button--outline-blue:focus-visible {
	background: var(--rth-hub-primary);
	color: var(--rth-hub-white) !important;
}

.rth-hub-button__icon {
	width: 19px;
	height: 19px;
	flex: 0 0 auto;
	transition: transform 180ms ease;
}

.rth-hub-button:hover .rth-hub-button__icon {
	transform: translateX(3px);
}


/* =========================================================
   8. DESTACADOS DEL HERO
========================================================= */

.rth-hub-highlights {
	display: flex;
	flex-wrap: wrap;
	gap: 13px 22px;
	margin: 30px 0 0;
	padding: 0;
	list-style: none;
}

.rth-hub-highlights li {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: rgba(255, 255, 255, 0.82);
	font-size: 0.92rem;
	font-weight: 650;
}

.rth-hub-highlights svg {
	width: 18px;
	height: 18px;
	flex: 0 0 auto;
	color: var(--rth-hub-secondary);
}


/* =========================================================
   9. PANEL DE RUTA DEL HERO
========================================================= */

.rth-hub-hero__panel {
	position: relative;
	padding: clamp(26px, 4vw, 38px);
	border: 1px solid rgba(255, 255, 255, 0.16);
	border-radius: var(--rth-hub-radius-lg);
	background: rgba(255, 255, 255, 0.1);
	box-shadow:
		0 28px 80px rgba(0, 0, 0, 0.22);
	backdrop-filter: blur(16px);
}

.rth-hub-panel__label {
	margin: 0 0 10px;
	color: var(--rth-hub-secondary);
	font-size: 0.76rem;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.rth-hub-panel__title {
	margin: 0;
	color: var(--rth-hub-white);
	font-size: clamp(1.45rem, 2.4vw, 2rem);
	font-weight: 800;
	line-height: 1.2;
	letter-spacing: -0.025em;
}

.rth-hub-panel__title span {
	color: var(--rth-hub-secondary);
}

.rth-hub-panel__route {
	margin-top: 32px;
}

.rth-hub-panel__point {
	display: flex;
	align-items: center;
	gap: 16px;
}

.rth-hub-panel__marker {
	width: 17px;
	height: 17px;
	flex: 0 0 auto;
	border: 4px solid var(--rth-hub-secondary);
	border-radius: 50%;
	background: var(--rth-hub-primary-deep);
	box-shadow:
		0 0 0 5px rgba(28, 147, 226, 0.15);
}

.rth-hub-panel__marker--destination {
	background: var(--rth-hub-secondary);
}

.rth-hub-panel__small {
	display: block;
	margin-bottom: 3px;
	color: rgba(255, 255, 255, 0.6);
	font-size: 0.77rem;
	font-weight: 650;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.rth-hub-panel__point strong {
	display: block;
	color: var(--rth-hub-white);
	font-size: 1rem;
	line-height: 1.35;
}

.rth-hub-panel__line {
	width: 2px;
	height: 36px;
	margin: 5px 0 5px 8px;
	background:
		linear-gradient(
			to bottom,
			var(--rth-hub-secondary),
			rgba(28, 147, 226, 0.18)
		);
}

.rth-hub-panel__vehicles {
	display: grid;
	grid-template-columns:
		repeat(2, minmax(0, 1fr));
	gap: 12px;
	margin-top: 30px;
}

.rth-hub-panel__vehicles > div {
	padding: 15px;
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: var(--rth-hub-radius-sm);
	background: rgba(0, 0, 0, 0.14);
}

.rth-hub-panel__vehicles span {
	display: block;
	margin-bottom: 4px;
	color: var(--rth-hub-secondary);
	font-size: 0.78rem;
	font-weight: 800;
	text-transform: uppercase;
}

.rth-hub-panel__vehicles strong {
	display: block;
	color: var(--rth-hub-white);
	font-size: 0.88rem;
	line-height: 1.35;
}


/* =========================================================
   10. INTRODUCCIÓN
========================================================= */

.rth-hub-intro {
	padding: clamp(72px, 9vw, 120px) 0;
	background: var(--rth-hub-white);
}

.rth-hub-intro__grid {
	display: grid;
	grid-template-columns:
		minmax(0, 1.45fr)
		minmax(300px, 0.75fr);
	gap: clamp(40px, 7vw, 82px);
	align-items: start;
}

.rth-hub-intro__content {
	max-width: 720px;
}

.rth-hub-intro__content p {
	margin: 0 0 22px;
	color: var(--rth-hub-text);
	font-size: clamp(1rem, 1.5vw, 1.1rem);
	line-height: 1.85;
}

.rth-hub-intro__content p:first-child {
	color: var(--rth-hub-text-dark);
	font-size: clamp(1.13rem, 1.9vw, 1.32rem);
	font-weight: 650;
	line-height: 1.7;
}

.rth-hub-intro__content p:last-child {
	margin-bottom: 0;
}

.rth-hub-intro__card {
	position: sticky;
	top: 110px;
	padding: clamp(25px, 4vw, 34px);
	border: 1px solid var(--rth-hub-border);
	border-radius: var(--rth-hub-radius-md);
	background: var(--rth-hub-light);
	box-shadow: var(--rth-hub-shadow);
}

.rth-hub-intro__card h3 {
	margin: 0 0 24px;
	color: var(--rth-hub-text-dark);
	font-size: 1.35rem;
	font-weight: 800;
	line-height: 1.3;
	letter-spacing: -0.02em;
}

.rth-hub-intro__card ul {
	display: grid;
	gap: 18px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.rth-hub-intro__card li {
	display: grid;
	grid-template-columns:
		38px minmax(0, 1fr);
	gap: 13px;
	align-items: start;
	color: var(--rth-hub-text);
	font-size: 0.95rem;
	line-height: 1.55;
}

.rth-hub-intro__card li span {
	display: inline-flex;
	width: 38px;
	height: 38px;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: var(--rth-hub-primary);
	color: var(--rth-hub-white);
	font-size: 0.74rem;
	font-weight: 900;
}


/* =========================================================
   11. ENLACES DE TEXTO
========================================================= */

.rth-hub-text-link {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	margin-top: 27px;
	color: var(--rth-hub-primary) !important;
	font-size: 0.94rem;
	font-weight: 800;
}

.rth-hub-text-link:hover {
	color: var(--rth-hub-secondary-dark) !important;
}

.rth-hub-text-link svg {
	width: 18px;
	height: 18px;
	flex: 0 0 auto;
	transition: transform 180ms ease;
}

.rth-hub-text-link:hover svg {
	transform: translateX(4px);
}


/* =========================================================
   12. GRIDS REUTILIZABLES
========================================================= */

.rth-hub-grid {
	display: grid;
	gap: 24px;
}

.rth-hub-grid--2 {
	grid-template-columns:
		repeat(2, minmax(0, 1fr));
}

.rth-hub-grid--3 {
	grid-template-columns:
		repeat(3, minmax(0, 1fr));
}

.rth-hub-grid--4 {
	grid-template-columns:
		repeat(4, minmax(0, 1fr));
}

.rth-hub-grid--sidebar {
	grid-template-columns:
		minmax(0, 1.4fr)
		minmax(300px, 0.6fr);
	gap: clamp(36px, 6vw, 72px);
	align-items: start;
}


/* =========================================================
   13. TARJETAS GENERALES
========================================================= */

.rth-hub-card {
	position: relative;
	height: 100%;
	padding: clamp(24px, 3vw, 32px);
	border: 1px solid var(--rth-hub-border);
	border-radius: var(--rth-hub-radius-md);
	background: var(--rth-hub-white);
	box-shadow: var(--rth-hub-shadow-sm);
	transition:
		transform 180ms ease,
		box-shadow 180ms ease,
		border-color 180ms ease;
}

.rth-hub-card:hover {
	transform: translateY(-3px);
	border-color: var(--rth-hub-border-strong);
	box-shadow: var(--rth-hub-shadow);
}

.rth-hub-card--flat {
	box-shadow: none;
}

.rth-hub-card--blue {
	border-color: rgba(28, 147, 226, 0.22);
	background: var(--rth-hub-secondary-soft);
}

.rth-hub-card--dark {
	border-color: rgba(255, 255, 255, 0.12);
	background:
		linear-gradient(
			135deg,
			var(--rth-hub-primary-deep),
			var(--rth-hub-primary)
		);
	color: var(--rth-hub-white);
}

.rth-hub-card__icon {
	display: inline-flex;
	width: 48px;
	height: 48px;
	align-items: center;
	justify-content: center;
	margin-bottom: 20px;
	border-radius: 14px;
	background: var(--rth-hub-secondary-soft);
	color: var(--rth-hub-primary);
}

.rth-hub-card__icon svg {
	width: 24px;
	height: 24px;
}

.rth-hub-card--dark .rth-hub-card__icon {
	background: rgba(255, 255, 255, 0.12);
	color: var(--rth-hub-white);
}

.rth-hub-card__title {
	margin: 0 0 12px;
	color: var(--rth-hub-text-dark);
	font-size: 1.25rem;
	font-weight: 800;
	line-height: 1.3;
	letter-spacing: -0.02em;
}

.rth-hub-card--dark .rth-hub-card__title {
	color: var(--rth-hub-white);
}

.rth-hub-card__text {
	margin: 0;
	color: var(--rth-hub-muted);
	font-size: 0.98rem;
	line-height: 1.72;
}

.rth-hub-card--dark .rth-hub-card__text {
	color: rgba(255, 255, 255, 0.78);
}


/* =========================================================
   14. BLOQUE DE VENTAJAS
========================================================= */

.rth-hub-benefits {
	display: grid;
	grid-template-columns:
		repeat(3, minmax(0, 1fr));
	gap: 22px;
}

.rth-hub-benefit {
	position: relative;
	padding: 28px;
	border: 1px solid var(--rth-hub-border);
	border-radius: var(--rth-hub-radius-md);
	background: var(--rth-hub-white);
}

.rth-hub-benefit__number {
	display: inline-flex;
	width: 38px;
	height: 38px;
	align-items: center;
	justify-content: center;
	margin-bottom: 20px;
	border-radius: 50%;
	background: var(--rth-hub-secondary-soft);
	color: var(--rth-hub-primary);
	font-size: 0.78rem;
	font-weight: 900;
}

.rth-hub-benefit h3 {
	margin: 0 0 10px;
	color: var(--rth-hub-text-dark);
	font-size: 1.18rem;
	font-weight: 800;
	line-height: 1.35;
}

.rth-hub-benefit p {
	margin: 0;
	color: var(--rth-hub-muted);
	font-size: 0.96rem;
	line-height: 1.7;
}


/* =========================================================
   15. VEHÍCULOS
========================================================= */

.rth-hub-vehicles {
	display: grid;
	grid-template-columns:
		repeat(2, minmax(0, 1fr));
	gap: 26px;
}

.rth-hub-vehicle {
	position: relative;
	overflow: hidden;
	padding: clamp(28px, 4vw, 40px);
	border: 1px solid var(--rth-hub-border);
	border-radius: var(--rth-hub-radius-lg);
	background: var(--rth-hub-white);
	box-shadow: var(--rth-hub-shadow-sm);
}

.rth-hub-vehicle::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 5px;
	background:
		linear-gradient(
			90deg,
			var(--rth-hub-primary),
			var(--rth-hub-secondary)
		);
}

.rth-hub-vehicle__label {
	display: inline-flex;
	margin-bottom: 18px;
	padding: 7px 12px;
	border-radius: 999px;
	background: var(--rth-hub-secondary-soft);
	color: var(--rth-hub-primary);
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.rth-hub-vehicle h3 {
	margin: 0 0 13px;
	color: var(--rth-hub-text-dark);
	font-size: clamp(1.5rem, 2.5vw, 2rem);
	font-weight: 800;
	line-height: 1.2;
	letter-spacing: -0.03em;
}

.rth-hub-vehicle p {
	margin: 0;
	color: var(--rth-hub-muted);
	font-size: 0.99rem;
	line-height: 1.72;
}

.rth-hub-vehicle__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 22px;
}

.rth-hub-vehicle__meta span {
	display: inline-flex;
	align-items: center;
	padding: 8px 12px;
	border-radius: 999px;
	background: var(--rth-hub-light);
	color: var(--rth-hub-text);
	font-size: 0.84rem;
	font-weight: 700;
}


/* =========================================================
   16. BLOQUES DE TARIFAS Y DATOS
========================================================= */

.rth-hub-fare-box {
	position: relative;
	padding: clamp(30px, 5vw, 48px);
	border: 1px solid var(--rth-hub-border);
	border-radius: var(--rth-hub-radius-lg);
	background:
		linear-gradient(
			135deg,
			var(--rth-hub-light-blue),
			var(--rth-hub-white)
		);
	box-shadow: var(--rth-hub-shadow-sm);
}

.rth-hub-fare-box__grid {
	display: grid;
	grid-template-columns:
		minmax(0, 1.35fr)
		minmax(250px, 0.65fr);
	gap: clamp(32px, 6vw, 70px);
	align-items: center;
}

.rth-hub-fare-box h3 {
	margin: 0 0 16px;
	color: var(--rth-hub-text-dark);
	font-size: clamp(1.7rem, 3vw, 2.5rem);
	font-weight: 800;
	line-height: 1.2;
	letter-spacing: -0.03em;
}

.rth-hub-fare-box p {
	margin: 0;
	color: var(--rth-hub-muted);
	font-size: 1rem;
	line-height: 1.75;
}

.rth-hub-fare-box__actions {
	display: flex;
	flex-direction: column;
	gap: 12px;
	align-items: stretch;
}


/* =========================================================
   17. LISTAS CON ICONOS
========================================================= */

.rth-hub-check-list {
	display: grid;
	gap: 14px;
	margin: 24px 0 0;
	padding: 0;
	list-style: none;
}

.rth-hub-check-list li {
	position: relative;
	padding-left: 32px;
	color: var(--rth-hub-text);
	font-size: 0.98rem;
	line-height: 1.65;
}

.rth-hub-check-list li::before {
	content: "✓";
	position: absolute;
	top: 1px;
	left: 0;
	display: inline-flex;
	width: 22px;
	height: 22px;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: var(--rth-hub-secondary-soft);
	color: var(--rth-hub-primary);
	font-size: 0.78rem;
	font-weight: 900;
}

.rth-hub-number-list {
	display: grid;
	gap: 18px;
	margin: 0;
	padding: 0;
	counter-reset: rth-hub-steps;
	list-style: none;
}

.rth-hub-number-list li {
	position: relative;
	min-height: 42px;
	padding-left: 58px;
	color: var(--rth-hub-text);
	font-size: 0.98rem;
	line-height: 1.65;
	counter-increment: rth-hub-steps;
}

.rth-hub-number-list li::before {
	content: counter(rth-hub-steps, decimal-leading-zero);
	position: absolute;
	top: 0;
	left: 0;
	display: inline-flex;
	width: 42px;
	height: 42px;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: var(--rth-hub-primary);
	color: var(--rth-hub-white);
	font-size: 0.76rem;
	font-weight: 900;
}


/* =========================================================
   18. CAJAS INFORMATIVAS
========================================================= */

.rth-hub-notice {
	position: relative;
	padding: 22px 24px 22px 58px;
	border: 1px solid var(--rth-hub-border);
	border-radius: var(--rth-hub-radius-sm);
	background: var(--rth-hub-info-soft);
	color: var(--rth-hub-text);
	font-size: 0.95rem;
	line-height: 1.68;
}

.rth-hub-notice::before {
	content: "i";
	position: absolute;
	top: 22px;
	left: 22px;
	display: inline-flex;
	width: 24px;
	height: 24px;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: var(--rth-hub-primary);
	color: var(--rth-hub-white);
	font-size: 0.8rem;
	font-weight: 900;
	font-style: normal;
}

.rth-hub-notice--warning {
	border-color: #f1d89c;
	background: var(--rth-hub-warning-soft);
}

.rth-hub-notice--warning::before {
	content: "!";
	background: var(--rth-hub-warning);
}


/* =========================================================
   19. BLOQUE IDA Y VUELTA
========================================================= */

.rth-hub-return {
	position: relative;
	overflow: hidden;
	padding: clamp(32px, 5vw, 50px);
	border-radius: var(--rth-hub-radius-lg);
	background:
		linear-gradient(
			135deg,
			var(--rth-hub-primary-deep),
			var(--rth-hub-primary)
		);
	color: var(--rth-hub-white);
	box-shadow: var(--rth-hub-shadow-lg);
}

.rth-hub-return::after {
	content: "↔";
	position: absolute;
	right: 30px;
	bottom: -34px;
	color: rgba(255, 255, 255, 0.08);
	font-size: 11rem;
	font-weight: 900;
	line-height: 1;
}

.rth-hub-return__content {
	position: relative;
	z-index: 1;
	max-width: 760px;
}

.rth-hub-return h2,
.rth-hub-return h3 {
	margin: 0 0 16px;
	color: var(--rth-hub-white);
	font-size: clamp(1.8rem, 3.5vw, 2.8rem);
	font-weight: 800;
	line-height: 1.15;
	letter-spacing: -0.035em;
}

.rth-hub-return p {
	margin: 0;
	color: rgba(255, 255, 255, 0.8);
	font-size: 1rem;
	line-height: 1.75;
}

.rth-hub-return .rth-hub-actions {
	margin-top: 28px;
}


/* =========================================================
   20. PROCESO DE RESERVA
========================================================= */

.rth-hub-process {
	display: grid;
	grid-template-columns:
		repeat(4, minmax(0, 1fr));
	gap: 18px;
	counter-reset: rth-hub-process;
}

.rth-hub-process__item {
	position: relative;
	padding: 26px 22px;
	border: 1px solid var(--rth-hub-border);
	border-radius: var(--rth-hub-radius-md);
	background: var(--rth-hub-white);
	counter-increment: rth-hub-process;
}

.rth-hub-process__item::before {
	content: counter(rth-hub-process, decimal-leading-zero);
	display: inline-flex;
	width: 42px;
	height: 42px;
	align-items: center;
	justify-content: center;
	margin-bottom: 19px;
	border-radius: 50%;
	background: var(--rth-hub-secondary-soft);
	color: var(--rth-hub-primary);
	font-size: 0.76rem;
	font-weight: 900;
}

.rth-hub-process__item h3 {
	margin: 0 0 10px;
	color: var(--rth-hub-text-dark);
	font-size: 1.08rem;
	font-weight: 800;
	line-height: 1.35;
}

.rth-hub-process__item p {
	margin: 0;
	color: var(--rth-hub-muted);
	font-size: 0.92rem;
	line-height: 1.65;
}


/* =========================================================
   21. RED OPERATIVA
========================================================= */

.rth-hub-network {
	position: relative;
	overflow: hidden;
	padding: clamp(36px, 6vw, 62px);
	border: 1px solid rgba(28, 147, 226, 0.18);
	border-radius: var(--rth-hub-radius-lg);
	background:
		linear-gradient(
			135deg,
			var(--rth-hub-light-blue),
			var(--rth-hub-white)
		);
}

.rth-hub-network__grid {
	display: grid;
	grid-template-columns:
		minmax(0, 1.2fr)
		minmax(300px, 0.8fr);
	gap: clamp(36px, 6vw, 70px);
	align-items: center;
}

.rth-hub-network h2,
.rth-hub-network h3 {
	margin: 0 0 17px;
	color: var(--rth-hub-text-dark);
	font-size: clamp(1.8rem, 3vw, 2.6rem);
	font-weight: 800;
	line-height: 1.18;
	letter-spacing: -0.03em;
}

.rth-hub-network p {
	margin: 0;
	color: var(--rth-hub-muted);
	font-size: 1rem;
	line-height: 1.78;
}

.rth-hub-network__areas {
	display: grid;
	gap: 12px;
}

.rth-hub-network__area {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 15px 17px;
	border: 1px solid var(--rth-hub-border);
	border-radius: var(--rth-hub-radius-sm);
	background: var(--rth-hub-white);
	color: var(--rth-hub-text-dark);
	font-size: 0.94rem;
	font-weight: 800;
}

.rth-hub-network__area:hover {
	border-color: var(--rth-hub-secondary);
	color: var(--rth-hub-primary);
}

.rth-hub-network__area::after {
	content: "→";
	color: var(--rth-hub-secondary);
	font-size: 1.1rem;
}


/* =========================================================
   22. PREGUNTAS FRECUENTES
========================================================= */

.rth-hub-faq {
	display: grid;
	gap: 14px;
}

.rth-hub-faq details {
	overflow: hidden;
	border: 1px solid var(--rth-hub-border);
	border-radius: var(--rth-hub-radius-sm);
	background: var(--rth-hub-white);
	transition:
		border-color 180ms ease,
		box-shadow 180ms ease;
}

.rth-hub-faq details[open] {
	border-color: var(--rth-hub-border-strong);
	box-shadow: var(--rth-hub-shadow-sm);
}

.rth-hub-faq summary {
	position: relative;
	padding: 21px 58px 21px 22px;
	color: var(--rth-hub-text-dark);
	font-size: 1rem;
	font-weight: 800;
	line-height: 1.45;
	cursor: pointer;
	list-style: none;
}

.rth-hub-faq summary::-webkit-details-marker {
	display: none;
}

.rth-hub-faq summary::after {
	content: "+";
	position: absolute;
	top: 50%;
	right: 22px;
	display: inline-flex;
	width: 28px;
	height: 28px;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: var(--rth-hub-secondary-soft);
	color: var(--rth-hub-primary);
	font-size: 1.2rem;
	font-weight: 700;
	line-height: 1;
	transform: translateY(-50%);
}

.rth-hub-faq details[open] summary::after {
	content: "−";
}

.rth-hub-faq__answer {
	padding: 0 22px 22px;
	color: var(--rth-hub-muted);
	font-size: 0.97rem;
	line-height: 1.75;
}

.rth-hub-faq__answer p {
	margin: 0 0 14px;
}

.rth-hub-faq__answer p:last-child {
	margin-bottom: 0;
}


/* =========================================================
   23. CTA FINAL
========================================================= */

.rth-hub-final-cta {
	position: relative;
	overflow: hidden;
	padding: clamp(52px, 8vw, 88px);
	border-radius: var(--rth-hub-radius-xl);
	background:
		radial-gradient(
			circle at 85% 15%,
			rgba(28, 147, 226, 0.34) 0,
			rgba(28, 147, 226, 0) 34%
		),
		linear-gradient(
			135deg,
			var(--rth-hub-primary-deep),
			var(--rth-hub-primary)
		);
	color: var(--rth-hub-white);
	text-align: center;
	box-shadow: var(--rth-hub-shadow-lg);
}

.rth-hub-final-cta__content {
	position: relative;
	z-index: 1;
	max-width: 820px;
	margin-inline: auto;
}

.rth-hub-final-cta h2 {
	margin: 0;
	color: var(--rth-hub-white);
	font-size: clamp(2rem, 4vw, 3.5rem);
	font-weight: 800;
	line-height: 1.08;
	letter-spacing: -0.04em;
	text-wrap: balance;
}

.rth-hub-final-cta p {
	max-width: 700px;
	margin: 22px auto 0;
	color: rgba(255, 255, 255, 0.8);
	font-size: clamp(1rem, 1.6vw, 1.14rem);
	line-height: 1.75;
}

.rth-hub-final-cta .rth-hub-actions {
	justify-content: center;
	margin-top: 30px;
}


/* =========================================================
   24. AUTORÍA CORPORATIVA
========================================================= */

.rth-hub-authority {
	display: flex;
	align-items: flex-start;
	gap: 18px;
	padding: 24px;
	border-top: 1px solid var(--rth-hub-border);
	color: var(--rth-hub-muted);
}

.rth-hub-authority__icon {
	display: inline-flex;
	width: 42px;
	height: 42px;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: var(--rth-hub-secondary-soft);
	color: var(--rth-hub-primary);
}

.rth-hub-authority__icon svg {
	width: 21px;
	height: 21px;
}

.rth-hub-authority h2,
.rth-hub-authority h3,
.rth-hub-authority strong {
	display: block;
	margin: 0 0 6px;
	color: var(--rth-hub-text-dark);
	font-size: 0.98rem;
	font-weight: 800;
	line-height: 1.4;
}

.rth-hub-authority p {
	margin: 0;
	font-size: 0.9rem;
	line-height: 1.65;
}


/* =========================================================
   25. SEPARADORES
========================================================= */

.rth-hub-divider {
	width: 100%;
	height: 1px;
	margin: clamp(44px, 7vw, 76px) 0;
	border: 0;
	background: var(--rth-hub-border);
}

.rth-hub-divider--short {
	width: 80px;
	height: 3px;
	margin: 22px 0;
	border-radius: 999px;
	background:
		linear-gradient(
			90deg,
			var(--rth-hub-primary),
			var(--rth-hub-secondary)
		);
}


/* =========================================================
   26. UTILIDADES
========================================================= */

.rth-hub-align-center {
	text-align: center;
}

.rth-hub-max-text {
	max-width: var(--rth-hub-reading-width);
}

.rth-hub-margin-auto {
	margin-inline: auto;
}

.rth-hub-mt-0 {
	margin-top: 0 !important;
}

.rth-hub-mt-sm {
	margin-top: 18px !important;
}

.rth-hub-mt-md {
	margin-top: 30px !important;
}

.rth-hub-mt-lg {
	margin-top: 46px !important;
}

.rth-hub-mb-0 {
	margin-bottom: 0 !important;
}

.rth-hub-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;
}


/* =========================================================
   27. TABLET
========================================================= */

@media (max-width: 1024px) {

	.rth-hub-hero .rth-hub-container {
		grid-template-columns: minmax(0, 1fr);
	}

	.rth-hub-hero__content {
		max-width: 820px;
	}

	.rth-hub-hero__panel {
		max-width: 680px;
	}

	.rth-hub-intro__grid,
	.rth-hub-grid--sidebar,
	.rth-hub-network__grid,
	.rth-hub-fare-box__grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.rth-hub-intro__content {
		max-width: 820px;
	}

	.rth-hub-intro__card {
		position: static;
		max-width: 680px;
	}

	.rth-hub-grid--4,
	.rth-hub-process {
		grid-template-columns:
			repeat(2, minmax(0, 1fr));
	}

	.rth-hub-benefits {
		grid-template-columns:
			repeat(2, minmax(0, 1fr));
	}

	.rth-hub-fare-box__actions {
		max-width: 420px;
	}

}


/* =========================================================
   28. MÓVIL
========================================================= */

@media (max-width: 767px) {

	.rth-hub-container,
	.rth-hub-container--narrow,
	.rth-hub-container--reading {
		width: min(
			calc(100% - 28px),
			var(--rth-hub-container)
		);
	}

	.rth-hub-section {
		padding: 68px 0;
	}

	.rth-hub-section--compact {
		padding: 52px 0;
	}

	.rth-hub-hero {
		padding: 66px 0;
	}

	.rth-hub-title {
		font-size: clamp(2.2rem, 11vw, 3.3rem);
		line-height: 1.03;
	}

	.rth-hub-hero__text {
		margin-top: 23px;
		font-size: 1rem;
		line-height: 1.7;
	}

	.rth-hub-actions {
		display: grid;
		grid-template-columns: minmax(0, 1fr);
		margin-top: 29px;
	}

	.rth-hub-button {
		width: 100%;
	}

	.rth-hub-highlights {
		display: grid;
		grid-template-columns: minmax(0, 1fr);
		gap: 11px;
	}

	.rth-hub-hero__panel {
		padding: 24px 20px;
		border-radius: 22px;
	}

	.rth-hub-panel__vehicles {
		grid-template-columns: minmax(0, 1fr);
	}

	.rth-hub-heading {
		font-size: clamp(1.85rem, 9vw, 2.65rem);
	}

	.rth-hub-section-heading {
		margin-bottom: 34px;
	}

	.rth-hub-intro {
		padding: 68px 0;
	}

	.rth-hub-intro__grid {
		gap: 38px;
	}

	.rth-hub-intro__content p {
		font-size: 1rem;
		line-height: 1.75;
	}

	.rth-hub-intro__content p:first-child {
		font-size: 1.08rem;
	}

	.rth-hub-intro__card {
		padding: 24px 20px;
	}

	.rth-hub-grid--2,
	.rth-hub-grid--3,
	.rth-hub-grid--4,
	.rth-hub-benefits,
	.rth-hub-vehicles,
	.rth-hub-process {
		grid-template-columns: minmax(0, 1fr);
	}

	.rth-hub-card,
	.rth-hub-benefit,
	.rth-hub-process__item {
		padding: 24px 20px;
	}

	.rth-hub-vehicle {
		padding: 28px 22px;
	}

	.rth-hub-fare-box {
		padding: 28px 22px;
	}

	.rth-hub-return {
		padding: 34px 24px;
	}

	.rth-hub-return::after {
		right: 5px;
		bottom: -15px;
		font-size: 7rem;
	}

	.rth-hub-network {
		padding: 30px 22px;
	}

	.rth-hub-final-cta {
		padding: 48px 22px;
		border-radius: 24px;
	}

	.rth-hub-faq summary {
		padding:
			19px 54px
			19px 18px;
	}

	.rth-hub-faq summary::after {
		right: 18px;
	}

	.rth-hub-faq__answer {
		padding:
			0 18px
			20px;
	}

	.rth-hub-authority {
		padding: 22px 0;
	}

}


/* =========================================================
   29. PANTALLAS MUY PEQUEÑAS
========================================================= */

@media (max-width: 420px) {

	.rth-hub-panel__title {
		font-size: 1.35rem;
	}

	.rth-hub-panel__point {
		align-items: flex-start;
	}

	.rth-hub-network__area {
		align-items: flex-start;
	}

}


/* =========================================================
   30. ACCESIBILIDAD
========================================================= */

@media (prefers-reduced-motion: reduce) {

	.rth-hub-button,
	.rth-hub-button__icon,
	.rth-hub-text-link svg,
	.rth-hub-card,
	.rth-hub-faq details {
		transition: none;
	}

	.rth-hub-button:hover,
	.rth-hub-button:focus-visible,
	.rth-hub-card:hover {
		transform: none;
	}

}


/* =========================================================
   31. IMPRESIÓN
========================================================= */

@media print {

	.rth-hub-hero,
	.rth-hub-section--dark,
	.rth-hub-return,
	.rth-hub-final-cta {
		background: var(--rth-hub-white) !important;
		color: var(--rth-hub-text-dark) !important;
		box-shadow: none !important;
	}

	.rth-hub-title,
	.rth-hub-section--dark .rth-hub-heading,
	.rth-hub-return h2,
	.rth-hub-final-cta h2 {
		color: var(--rth-hub-text-dark) !important;
	}

	.rth-hub-button,
	.rth-hub-actions {
		display: none !important;
	}

}

/* Corrección de contraste en tarjetas oscuras */

.rth-hub-card--dark .rth-hub-card__title,
.rth-hub-card--dark .rth-hub-card__text,
.rth-hub-card--dark .rth-hub-check-list li,
.rth-hub-card--dark p,
.rth-hub-card--dark strong {
	color: #ffffff;
}

.rth-hub-card--dark .rth-hub-check-list li::before {
	background: rgba(255, 255, 255, 0.16);
	color: #ffffff;
}

.rth-hub-card--dark .rth-hub-card__icon {
	background: rgba(255, 255, 255, 0.14);
	color: #ffffff;
}

/* =========================================================
   MAPA DE RUTA EN LANDINGS
========================================================= */

.rth-hub-route-map {
	align-items: center;
}

.rth-hub-route-map__content {
	max-width: 620px;
}

.rth-hub-route-map__map {
	padding: 12px;
	overflow: hidden;
}

.rth-hub-route-map__map iframe {
	display: block;
	width: 100%;
	min-height: 480px;
	border: 0;
	border-radius: 16px;
}

@media (max-width: 1024px) {

	.rth-hub-route-map {
		grid-template-columns: minmax(0, 1fr);
	}

	.rth-hub-route-map__content {
		max-width: 820px;
	}

}

@media (max-width: 767px) {

	.rth-hub-route-map__map {
		padding: 8px;
	}

	.rth-hub-route-map__map iframe {
		min-height: 360px;
		height: 360px;
	}

}

/* =========================================================
   RADIO TAXI HUELVA
   HOME ESPAÑOL 2026
   Prefijo exclusivo: .rth-home-es
========================================================= */

:root {
	--rth-es-primary: #004aad;
	--rth-es-primary-dark: #00367f;
	--rth-es-deep: #06264f;
	--rth-es-secondary: #1c93e2;
	--rth-es-secondary-dark: #1179bd;
	--rth-es-secondary-soft: #eaf6fd;
	--rth-es-white: #ffffff;
	--rth-es-light: #f4f8fc;
	--rth-es-light-blue: #edf6fc;
	--rth-es-soft-grey: #f3f6fa;
	--rth-es-text: #27323b;
	--rth-es-dark: #101820;
	--rth-es-muted: #65717c;
	--rth-es-border: #dce8f2;
	--rth-es-border-strong: #bfd8ea;
	--rth-es-whatsapp: #168a49;
	--rth-es-whatsapp-dark: #11713b;
	--rth-es-warning-bg: #fff7e6;
	--rth-es-warning-border: #f0d39a;
	--rth-es-warning-text: #6d4700;
	--rth-es-shadow-sm: 0 10px 28px rgba(6, 38, 79, 0.08);
	--rth-es-shadow: 0 22px 60px rgba(6, 38, 79, 0.12);
	--rth-es-shadow-lg: 0 32px 90px rgba(6, 38, 79, 0.18);
	--rth-es-radius-sm: 12px;
	--rth-es-radius-md: 18px;
	--rth-es-radius-lg: 28px;
	--rth-es-radius-xl: 38px;
	--rth-es-container: 1220px;
}

.rth-home-es,
.rth-home-es *,
.rth-home-es *::before,
.rth-home-es *::after {
	box-sizing: border-box;
}


.rth-home-es {
	width: 100%;
	overflow: hidden;
	color: var(--rth-es-text);
	font-family: inherit;
}

.rth-home-es img,
.rth-home-es svg {
	display: block;
	max-width: 100%;
}

.rth-home-es a {
	text-decoration: none;
}

.rth-home-es h1,
.rth-home-es h2,
.rth-home-es h3,
.rth-home-es p,
.rth-home-es ul {
	overflow-wrap: break-word;
}

.rth-es-container {
	width: min(calc(100% - 40px), var(--rth-es-container));
	margin-inline: auto;
}

.rth-es-section {
	position: relative;
	padding: clamp(72px, 9vw, 118px) 0;
	background: var(--rth-es-white);
}

.rth-es-section--light {
	background: var(--rth-es-light);
}

.rth-es-section--blue {
	background: var(--rth-es-light-blue);
}

.rth-es-section--compact {
	padding: clamp(52px, 7vw, 80px) 0;
}

.rth-es-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 17px;
	color: var(--rth-es-secondary-dark);
	font-size: 0.8rem;
	font-weight: 800;
	line-height: 1.3;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.rth-es-eyebrow::before {
	content: "";
	width: 32px;
	height: 2px;
	border-radius: 999px;
	background: currentColor;
}

.rth-es-eyebrow--white {
	color: #ffffff;
}

.rth-es-heading-wrap {
	max-width: 840px;
	margin-bottom: clamp(36px, 5vw, 58px);
}

.rth-es-heading-wrap--center {
	margin-right: auto;
	margin-left: auto;
	text-align: center;
}

.rth-es-heading-wrap--center .rth-es-eyebrow {
	justify-content: center;
}

.rth-es-heading {
	margin: 0;
	color: var(--rth-es-dark);
	font-size: clamp(2rem, 4vw, 3.45rem);
	font-weight: 800;
	line-height: 1.08;
	letter-spacing: -0.038em;
	text-wrap: balance;
}

.rth-es-subheading {
	margin: 18px 0 0;
	color: var(--rth-es-muted);
	font-size: clamp(1rem, 1.55vw, 1.13rem);
	line-height: 1.75;
}

.rth-es-button {
	display: inline-flex;
	min-height: 54px;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 14px 23px;
	border: 1px solid transparent;
	border-radius: 999px;
	font-size: 0.97rem;
	font-weight: 800;
	line-height: 1.2;
	transition:
		transform 180ms ease,
		background-color 180ms ease,
		border-color 180ms ease,
		color 180ms ease,
		box-shadow 180ms ease;
}

.rth-es-button:hover,
.rth-es-button:focus-visible {
	transform: translateY(-2px);
}

.rth-es-button--white,
.rth-es-button--white:link,
.rth-es-button--white:visited {
	background: #ffffff;
	color: var(--rth-es-primary) !important;
	box-shadow: 0 14px 34px rgba(0, 0, 0, 0.15);
}

.rth-es-button--white:hover {
	background: var(--rth-es-secondary-soft);
	color: var(--rth-es-primary-dark) !important;
}

.rth-es-button--blue,
.rth-es-button--blue:link,
.rth-es-button--blue:visited {
	background: var(--rth-es-primary);
	color: #ffffff !important;
	box-shadow: 0 14px 34px rgba(0, 74, 173, 0.2);
}

.rth-es-button--blue:hover {
	background: var(--rth-es-primary-dark);
	color: #ffffff !important;
}

.rth-es-button--outline,
.rth-es-button--outline:link,
.rth-es-button--outline:visited {
	border-color: var(--rth-es-primary);
	background: transparent;
	color: var(--rth-es-primary) !important;
}

.rth-es-button--outline:hover {
	background: var(--rth-es-primary);
	color: #ffffff !important;
}

.rth-es-button--ghost,
.rth-es-button--ghost:link,
.rth-es-button--ghost:visited {
	border-color: rgba(255, 255, 255, 0.52);
	background: rgba(0, 0, 0, 0.12);
	color: #ffffff !important;
}

.rth-es-button--ghost:hover {
	border-color: #ffffff;
	background: #ffffff;
	color: var(--rth-es-primary) !important;
}

.rth-es-button--whatsapp,
.rth-es-button--whatsapp:link,
.rth-es-button--whatsapp:visited {
	background: var(--rth-es-whatsapp);
	color: #ffffff !important;
	box-shadow: 0 13px 30px rgba(22, 138, 73, 0.22);
}

.rth-es-button--whatsapp:hover {
	background: var(--rth-es-whatsapp-dark);
	color: #ffffff !important;
}

.rth-es-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 13px;
	margin-top: 28px;
}

/* =========================================================
   HERO
========================================================= */

.rth-es-hero {
	position: relative;
	overflow: visible;
	padding: clamp(68px, 9vw, 118px) 0 0;
	background:
		radial-gradient(
			circle at 88% 10%,
			rgba(28, 147, 226, 0.28) 0,
			rgba(28, 147, 226, 0) 34%
		),
		linear-gradient(
			135deg,
			var(--rth-es-deep) 0%,
			var(--rth-es-primary) 100%
		);
	color: #ffffff;
	isolation: isolate;
}

.rth-es-hero::before {
	content: "";
	position: absolute;
	z-index: -1;
	top: -170px;
	right: -130px;
	width: 440px;
	height: 440px;
	border: 1px solid rgba(255, 255, 255, 0.08);
	border-radius: 50%;
}

.rth-es-hero::after {
	content: "";
	position: absolute;
	z-index: -1;
	right: 8%;
	bottom: -250px;
	width: 560px;
	height: 560px;
	border: 1px solid rgba(28, 147, 226, 0.22);
	border-radius: 50%;
}

.rth-es-hero__copy {
	max-width: 980px;
	margin-inline: auto;
	text-align: center;
}

.rth-es-title {
	margin: 0;
	color: #ffffff;
	font-size: clamp(2.5rem, 5.5vw, 4.95rem);
	font-weight: 800;
	line-height: 0.99;
	letter-spacing: -0.048em;
	text-wrap: balance;
}

.rth-es-hero__lead {
	max-width: 820px;
	margin: 26px auto 0;
	color: rgba(255, 255, 255, 0.85);
	font-size: clamp(1.05rem, 1.8vw, 1.23rem);
	line-height: 1.75;
}

.rth-es-hero__highlights {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 12px 22px;
	margin: 28px 0 0;
	padding: 0;
	list-style: none;
}

.rth-es-hero__highlights li {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: rgba(255, 255, 255, 0.9);
	font-size: 0.92rem;
	font-weight: 700;
}

.rth-es-hero__highlights li::before {
	content: "✓";
	display: inline-flex;
	width: 20px;
	height: 20px;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.14);
	color: #ffffff;
	font-size: 0.72rem;
	font-weight: 900;
}

.rth-es-immediate {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 24px;
	align-items: center;
	max-width: 980px;
	margin: 36px auto 0;
	padding: 21px 23px;
	border: 1px solid rgba(255, 255, 255, 0.22);
	border-radius: var(--rth-es-radius-md);
	background: rgba(0, 0, 0, 0.17);
	text-align: left;
	backdrop-filter: blur(10px);
}

.rth-es-immediate__content {
	display: grid;
	grid-template-columns: 42px minmax(0, 1fr);
	gap: 15px;
	align-items: start;
}

.rth-es-immediate__icon {
	display: inline-flex;
	width: 42px;
	height: 42px;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.15);
	color: #ffffff;
	font-size: 1.1rem;
	font-weight: 900;
}

.rth-es-immediate strong {
	display: block;
	margin-bottom: 5px;
	color: #ffffff;
	font-size: 1rem;
	font-weight: 800;
	line-height: 1.4;
}

.rth-es-immediate p {
	margin: 0;
	color: rgba(255, 255, 255, 0.78);
	font-size: 0.9rem;
	line-height: 1.6;
}

.rth-es-hero__finder {
	position: relative;
	z-index: 5;
	max-width: 1080px;
	margin: clamp(38px, 6vw, 62px) auto -78px;
	padding: clamp(22px, 3vw, 35px);
	border: 1px solid rgba(255, 255, 255, 0.28);
	border-radius: var(--rth-es-radius-lg);
	background: var(--rth-es-soft-grey);
	box-shadow: 0 30px 80px rgba(6, 38, 79, 0.28);
	color: var(--rth-es-text);
}

.rth-es-hero__finder-label {
	margin: 0 0 15px;
	color: var(--rth-es-primary);
	font-size: 0.8rem;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-align: center;
	text-transform: uppercase;
}

.rth-es-hero__finder-note {
	max-width: 760px;
	margin: 17px auto 0;
	color: var(--rth-es-muted);
	font-size: 0.85rem;
	line-height: 1.55;
	text-align: center;
}

.rth-es-hero__finder .buscador-tarifas-taxi {
	width: 100%;
	max-width: 760px;
	margin-right: auto !important;
	margin-left: auto !important;
}

.rth-es-hero__finder .buscador-title,
.rth-es-hero__finder .buscador-subtitle {
	text-align: center;
}

.rth-es-hero__finder .buscador-tarifas-grid {
	width: 100%;
	max-width: 680px;
	margin-right: auto;
	margin-left: auto;
}

.rth-es-hero__finder .taxi-field-row {
	background: #ffffff;
	box-shadow: 0 7px 20px rgba(6, 38, 79, 0.07);
}

/* =========================================================
   TRUST BAR
========================================================= */

.rth-es-trustbar {
	padding: 118px 0 34px;
	background: #ffffff;
}

.rth-es-trustbar__grid {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	border: 1px solid var(--rth-es-border);
	border-radius: var(--rth-es-radius-md);
	background: #ffffff;
	box-shadow: var(--rth-es-shadow-sm);
}

.rth-es-trustbar__item {
	display: flex;
	min-height: 90px;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 18px 15px;
	color: var(--rth-es-dark);
	font-size: 0.89rem;
	font-weight: 750;
	line-height: 1.45;
	text-align: center;
}

.rth-es-trustbar__item + .rth-es-trustbar__item {
	border-left: 1px solid var(--rth-es-border);
}

.rth-es-trustbar__icon {
	display: inline-flex;
	width: 34px;
	height: 34px;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: var(--rth-es-secondary-soft);
	color: var(--rth-es-primary);
	font-size: 0.78rem;
	font-weight: 900;
}

/* =========================================================
   TAXI URBANO
========================================================= */

.rth-es-local-layout {
	display: grid;
	grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
	gap: clamp(42px, 7vw, 82px);
	align-items: center;
}

.rth-es-local-copy h2 {
	margin: 0;
	color: var(--rth-es-dark);
	font-size: clamp(2rem, 4vw, 3.35rem);
	font-weight: 800;
	line-height: 1.08;
	letter-spacing: -0.038em;
}

.rth-es-local-copy p {
	margin: 21px 0 0;
	color: var(--rth-es-muted);
	font-size: 1.04rem;
	line-height: 1.8;
}

.rth-es-local-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 17px;
}

.rth-es-local-card {
	padding: 22px 20px;
	border: 1px solid var(--rth-es-border);
	border-radius: var(--rth-es-radius-md);
	background: #ffffff;
}

.rth-es-local-card__icon {
	display: inline-flex;
	width: 36px;
	height: 36px;
	align-items: center;
	justify-content: center;
	margin-bottom: 16px;
	border-radius: 50%;
	background: var(--rth-es-secondary-soft);
	color: var(--rth-es-primary);
	font-size: 0.76rem;
	font-weight: 900;
}

.rth-es-local-card h3 {
	margin: 0 0 8px;
	color: var(--rth-es-dark);
	font-size: 1rem;
	font-weight: 800;
	line-height: 1.4;
}

.rth-es-local-card p {
	margin: 0;
	color: var(--rth-es-muted);
	font-size: 0.89rem;
	line-height: 1.65;
}

/* =========================================================
   SERVICIOS
========================================================= */

.rth-es-services {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 22px;
}

.rth-es-service {
	position: relative;
	display: flex;
	min-height: 100%;
	flex-direction: column;
	padding: 29px 26px;
	border: 1px solid var(--rth-es-border);
	border-radius: var(--rth-es-radius-md);
	background: #ffffff;
	box-shadow: var(--rth-es-shadow-sm);
	transition:
		transform 180ms ease,
		box-shadow 180ms ease,
		border-color 180ms ease;
}

.rth-es-service:hover {
	transform: translateY(-4px);
	border-color: var(--rth-es-border-strong);
	box-shadow: var(--rth-es-shadow);
}

.rth-es-service__icon {
	display: inline-flex;
	width: 50px;
	height: 50px;
	align-items: center;
	justify-content: center;
	margin-bottom: 21px;
	border-radius: 15px;
	background: var(--rth-es-secondary-soft);
	color: var(--rth-es-primary);
}

.rth-es-service__icon svg {
	width: 25px;
	height: 25px;
}

.rth-es-service h3 {
	margin: 0 0 12px;
	color: var(--rth-es-dark);
	font-size: 1.22rem;
	font-weight: 800;
	line-height: 1.3;
	letter-spacing: -0.02em;
}

.rth-es-service p {
	margin: 0 0 23px;
	color: var(--rth-es-muted);
	font-size: 0.96rem;
	line-height: 1.72;
}

.rth-es-service__link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: auto;
	color: var(--rth-es-primary) !important;
	font-size: 0.9rem;
	font-weight: 800;
}

.rth-es-service__link::after {
	content: "→";
	font-size: 1rem;
	transition: transform 180ms ease;
}

.rth-es-service__link:hover::after {
	transform: translateX(4px);
}

/* =========================================================
   RUTAS
========================================================= */

.rth-es-routes {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
}

.rth-es-route {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 20px;
	align-items: center;
	padding: 24px 25px;
	border: 1px solid var(--rth-es-border);
	border-radius: var(--rth-es-radius-md);
	background: #ffffff;
	box-shadow: var(--rth-es-shadow-sm);
	transition:
		transform 180ms ease,
		border-color 180ms ease,
		box-shadow 180ms ease;
}

.rth-es-route:hover {
	transform: translateY(-3px);
	border-color: var(--rth-es-secondary);
	box-shadow: var(--rth-es-shadow);
}

.rth-es-route__label {
	display: block;
	margin-bottom: 7px;
	color: var(--rth-es-secondary-dark);
	font-size: 0.75rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.rth-es-route h3 {
	margin: 0;
	color: var(--rth-es-dark);
	font-size: 1.1rem;
	font-weight: 800;
	line-height: 1.35;
}

.rth-es-route p {
	margin: 8px 0 0;
	color: var(--rth-es-muted);
	font-size: 0.88rem;
	line-height: 1.55;
}

.rth-es-route__arrow {
	display: inline-flex;
	width: 42px;
	height: 42px;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: var(--rth-es-secondary-soft);
	color: var(--rth-es-primary);
	font-size: 1.15rem;
	font-weight: 800;
	transition:
		background-color 180ms ease,
		color 180ms ease;
}

.rth-es-route:hover .rth-es-route__arrow {
	background: var(--rth-es-primary);
	color: #ffffff;
}

.rth-es-routes__footer {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 13px;
	margin-top: 34px;
}

/* =========================================================
   VEHÍCULOS
========================================================= */

.rth-es-vehicles {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 25px;
}

.rth-es-vehicle {
	position: relative;
	overflow: hidden;
	padding: clamp(30px, 4vw, 42px);
	border: 1px solid var(--rth-es-border);
	border-radius: var(--rth-es-radius-lg);
	background: #ffffff;
	box-shadow: var(--rth-es-shadow-sm);
}

.rth-es-vehicle::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 5px;
	background: linear-gradient(
		90deg,
		var(--rth-es-primary),
		var(--rth-es-secondary)
	);
}

.rth-es-vehicle__label {
	display: inline-flex;
	margin-bottom: 18px;
	padding: 7px 12px;
	border-radius: 999px;
	background: var(--rth-es-secondary-soft);
	color: var(--rth-es-primary);
	font-size: 0.76rem;
	font-weight: 800;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.rth-es-vehicle h3 {
	margin: 0 0 14px;
	color: var(--rth-es-dark);
	font-size: clamp(1.55rem, 2.6vw, 2.05rem);
	font-weight: 800;
	line-height: 1.2;
	letter-spacing: -0.03em;
}

.rth-es-vehicle p {
	margin: 0;
	color: var(--rth-es-muted);
	font-size: 0.98rem;
	line-height: 1.75;
}

.rth-es-vehicle ul {
	display: grid;
	gap: 11px;
	margin: 23px 0 0;
	padding: 0;
	list-style: none;
}

.rth-es-vehicle li {
	position: relative;
	padding-left: 28px;
	color: var(--rth-es-text);
	font-size: 0.91rem;
	line-height: 1.55;

}

.rth-es-vehicle li::before {
	content: "✓";
	position: absolute;
	top: 1px;
	left: 0;
	display: inline-flex;
	width: 19px;
	height: 19px;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: var(--rth-es-secondary-soft);
	color: var(--rth-es-primary);
	font-size: 0.68rem;
	font-weight: 900;
}

/* =========================================================
   EMPRESAS
========================================================= */

.rth-es-business {
	position: relative;
	overflow: hidden;
	padding: clamp(38px, 6vw, 64px);
	border-radius: var(--rth-es-radius-xl);
	background:
		radial-gradient(
			circle at 90% 10%,
			rgba(28, 147, 226, 0.25) 0,
			rgba(28, 147, 226, 0) 34%
		),
		linear-gradient(
			135deg,
			var(--rth-es-deep),
			var(--rth-es-primary)
		);
	box-shadow: var(--rth-es-shadow-lg);
	color: #ffffff;
}

.rth-es-business__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(320px, 0.9fr);
	gap: clamp(38px, 7vw, 78px);
	align-items: center;
}

.rth-es-business h2 {
	margin: 0;
	color: #ffffff;
	font-size: clamp(2rem, 4vw, 3.35rem);
	font-weight: 800;
	line-height: 1.08;
	letter-spacing: -0.04em;
	text-wrap: balance;
}

.rth-es-business__lead {
	margin: 21px 0 0;
	color: rgba(255, 255, 255, 0.82);
	font-size: 1.04rem;
	line-height: 1.8;
}

.rth-es-business__uses {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
	margin-top: 26px;
}

.rth-es-business__use {
	padding: 15px 16px;
	border: 1px solid rgba(255, 255, 255, 0.14);
	border-radius: var(--rth-es-radius-sm);
	background: rgba(0, 0, 0, 0.13);
	color: #ffffff;
	font-size: 0.88rem;
	font-weight: 700;
	line-height: 1.5;
}

.rth-es-business__image {
	overflow: hidden;
	border: 1px solid rgba(255, 255, 255, 0.17);
	border-radius: var(--rth-es-radius-lg);
	background: rgba(255, 255, 255, 0.1);
	box-shadow: 0 24px 60px rgba(0, 0, 0, 0.22);
}

.rth-es-business__image img {
	width: 100%;
	min-height: 360px;
	object-fit: cover;
}

/* =========================================================
   PROCESO
========================================================= */

.rth-es-process {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 18px;
	counter-reset: rth-es-step;
}

.rth-es-process__item {
	padding: 27px 23px;
	border: 1px solid var(--rth-es-border);
	border-radius: var(--rth-es-radius-md);
	background: #ffffff;
	counter-increment: rth-es-step;
}

.rth-es-process__item::before {
	content: counter(rth-es-step, decimal-leading-zero);
	display: inline-flex;
	width: 43px;
	height: 43px;
	align-items: center;
	justify-content: center;
	margin-bottom: 19px;
	border-radius: 50%;
	background: var(--rth-es-secondary-soft);
	color: var(--rth-es-primary);
	font-size: 0.75rem;
	font-weight: 900;
}

.rth-es-process__item h3 {
	margin: 0 0 10px;
	color: var(--rth-es-dark);
	font-size: 1.06rem;
	font-weight: 800;
	line-height: 1.4;
}

.rth-es-process__item p {
	margin: 0;
	color: var(--rth-es-muted);
	font-size: 0.91rem;
	line-height: 1.65;
}

.rth-es-process-note {
	max-width: 900px;
	margin: 29px auto 0;
	padding: 19px 21px;
	border: 1px solid var(--rth-es-warning-border);
	border-radius: var(--rth-es-radius-sm);
	background: var(--rth-es-warning-bg);
	color: var(--rth-es-warning-text);
	font-size: 0.91rem;
	font-weight: 650;
	line-height: 1.65;
	text-align: center;
}

/* =========================================================
   RED OPERATIVA
========================================================= */

.rth-es-network {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(300px, 0.85fr);
	gap: clamp(40px, 7vw, 80px);
	align-items: center;
	padding: clamp(34px, 6vw, 58px);
	border: 1px solid rgba(28, 147, 226, 0.2);
	border-radius: var(--rth-es-radius-lg);
	background: linear-gradient(
		135deg,
		var(--rth-es-light-blue),
		#ffffff
	);
}

.rth-es-network h2 {
	margin: 0;
	color: var(--rth-es-dark);
	font-size: clamp(1.9rem, 3.5vw, 2.85rem);
	font-weight: 800;
	line-height: 1.12;
	letter-spacing: -0.035em;
}

.rth-es-network p {
	margin: 19px 0 0;
	color: var(--rth-es-muted);
	font-size: 1rem;
	line-height: 1.8;
}

.rth-es-network__areas {
	display: grid;
	gap: 12px;
}

.rth-es-network__area {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 16px 18px;
	border: 1px solid var(--rth-es-border);
	border-radius: var(--rth-es-radius-sm);
	background: #ffffff;
	color: var(--rth-es-dark) !important;
	font-size: 0.94rem;
	font-weight: 800;
}

.rth-es-network__area::after {
	content: "→";
	color: var(--rth-es-secondary);
	font-size: 1.1rem;
}

.rth-es-network__area:hover {
	border-color: var(--rth-es-secondary);
	color: var(--rth-es-primary) !important;
}

/* =========================================================
   RESEÑAS
========================================================= */

.rth-es-reviews {
	padding: clamp(30px, 5vw, 50px);
	border: 1px solid var(--rth-es-border);
	border-radius: var(--rth-es-radius-lg);
	background: #ffffff;
	box-shadow: var(--rth-es-shadow-sm);
}

.rth-es-reviews__shortcode {
	margin-top: 30px;
}

/* =========================================================
   FAQ
========================================================= */

.rth-es-faq {
	display: grid;
	gap: 14px;
	max-width: 940px;
	margin-inline: auto;
}

.rth-es-faq details {
	overflow: hidden;
	border: 1px solid var(--rth-es-border);
	border-radius: var(--rth-es-radius-sm);
	background: #ffffff;
	transition:
		border-color 180ms ease,
		box-shadow 180ms ease;
}

.rth-es-faq details[open] {
	border-color: var(--rth-es-border-strong);
	box-shadow: var(--rth-es-shadow-sm);
}

.rth-es-faq summary {
	position: relative;
	padding: 21px 58px 21px 22px;
	color: var(--rth-es-dark);
	font-size: 1rem;
	font-weight: 800;
	line-height: 1.45;
	cursor: pointer;
	list-style: none;
}

.rth-es-faq summary::-webkit-details-marker {
	display: none;
}

.rth-es-faq summary::after {
	content: "+";
	position: absolute;
	top: 50%;
	right: 22px;
	display: inline-flex;
	width: 28px;
	height: 28px;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: var(--rth-es-secondary-soft);
	color: var(--rth-es-primary);
	font-size: 1.2rem;
	font-weight: 700;
	transform: translateY(-50%);
}

.rth-es-faq details[open] summary::after {
	content: "−";
}

.rth-es-faq__answer {
	padding: 0 22px 22px;
	color: var(--rth-es-muted);
	font-size: 0.96rem;
	line-height: 1.75;
}

.rth-es-faq__answer p {
	margin: 0;
}

/* =========================================================
   CTA FINAL
========================================================= */

.rth-es-final {
	position: relative;
	overflow: hidden;
	padding: clamp(52px, 8vw, 88px);
	border-radius: var(--rth-es-radius-xl);
	background:
		radial-gradient(
			circle at 86% 12%,
			rgba(28, 147, 226, 0.34) 0,
			rgba(28, 147, 226, 0) 34%
		),
		linear-gradient(
			135deg,
			var(--rth-es-deep),
			var(--rth-es-primary)
		);
	color: #ffffff;
	text-align: center;
	box-shadow: var(--rth-es-shadow-lg);
}

.rth-es-final__content {
	max-width: 850px;
	margin-inline: auto;
}

.rth-es-final h2 {
	margin: 0;
	color: #ffffff;
	font-size: clamp(2rem, 4vw, 3.5rem);
	font-weight: 800;
	line-height: 1.08;
	letter-spacing: -0.04em;
	text-wrap: balance;
}

.rth-es-final p {
	max-width: 720px;
	margin: 21px auto 0;
	color: rgba(255, 255, 255, 0.82);
	font-size: 1.05rem;
	line-height: 1.75;
}

.rth-es-final .rth-es-actions {
	justify-content: center;
}

/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width: 1024px) {

	.rth-es-services {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.rth-es-trustbar__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}


	.rth-es-trustbar__item + .rth-es-trustbar__item {
		border-left: 0;
	}

	.rth-es-trustbar__item {
		border-bottom: 1px solid var(--rth-es-border);
	}

	.rth-es-local-layout,
	.rth-es-business__grid,
	.rth-es-network {
		grid-template-columns: minmax(0, 1fr);
	}

	.rth-es-business__image {
		max-width: 680px;
	}

	.rth-es-process {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 767px) {

	.rth-es-container {
		width: min(calc(100% - 28px), var(--rth-es-container));
	}

	.rth-es-section {
		padding: 66px 0;
	}

	.rth-es-section--compact {
		padding: 50px 0;
	}

	.rth-es-hero {
		padding-top: 62px;
	}

	.rth-es-title {
		font-size: clamp(2.15rem, 10.8vw, 3.3rem);
		line-height: 1.02;
	}

	.rth-es-hero__lead {
		font-size: 1rem;
		line-height: 1.7;
	}

	.rth-es-hero__highlights {
		display: grid;
		grid-template-columns: minmax(0, 1fr);
		justify-items: center;
	}

	.rth-es-immediate {
		grid-template-columns: minmax(0, 1fr);
		padding: 20px 18px;
		text-align: left;
	}

	.rth-es-immediate__content {
		grid-template-columns: 36px minmax(0, 1fr);
	}

	.rth-es-immediate__icon {
		width: 36px;
		height: 36px;
	}

	.rth-es-immediate .rth-es-button {
		width: 100%;
	}

	.rth-es-hero__finder {
		margin-bottom: -62px;
		padding: 18px 14px;
		border-radius: 21px;
	}

	.rth-es-hero__finder .buscador-tarifas-taxi,
	.rth-es-hero__finder .buscador-tarifas-grid {
		max-width: none;
	}

	.rth-es-hero__finder .taxi-field-row {
		box-shadow: none;
	}

	.rth-es-trustbar {
		padding-top: 100px;
	}

	.rth-es-trustbar__grid,
	.rth-es-local-grid,
	.rth-es-services,
	.rth-es-routes,
	.rth-es-vehicles,
	.rth-es-process {
		grid-template-columns: minmax(0, 1fr);
	}

	.rth-es-trustbar__item {
		justify-content: flex-start;
		min-height: auto;
		text-align: left;
	}

	.rth-es-route {
		padding: 21px 19px;
	}

	.rth-es-business {
		padding: 35px 22px;
		border-radius: 24px;
	}

	.rth-es-business__uses {
		grid-template-columns: minmax(0, 1fr);
	}

	.rth-es-business__image img {
		min-height: 260px;
	}

	.rth-es-network {
		padding: 30px 21px;
	}

	.rth-es-actions {
		display: grid;
		grid-template-columns: minmax(0, 1fr);
	}

	.rth-es-button {
		width: 100%;
	}

	.rth-es-final {
		padding: 46px 21px;
		border-radius: 24px;
	}

	.rth-es-faq summary {
		padding: 19px 54px 19px 18px;
	}

	.rth-es-faq summary::after {
		right: 18px;
	}

	.rth-es-faq__answer {
		padding: 0 18px 20px;
	}
}

@media (prefers-reduced-motion: reduce) {

	.rth-es-button,
	.rth-es-service,
	.rth-es-route,
	.rth-es-route__arrow,
	.rth-es-faq details {
		transition: none;
	}

	.rth-es-button:hover,
	.rth-es-service:hover,
	.rth-es-route:hover {
		transform: none;
	}
}
/* =========================================================
   RADIO TAXI HUELVA
   SISTEMA EDITORIAL / BLOG 2026

   Prefijo exclusivo: .rth-blog-
   Reutilizable para artículos ES / EN
========================================================= */


/* =========================================================
   1. BASE Y CONTENEDORES
========================================================= */

.rth-blog,
.rth-blog *,
.rth-blog *::before,
.rth-blog *::after {
	box-sizing: border-box;
}

.rth-blog {
	width: 100%;
	overflow: hidden;
	background: #ffffff;
	color: var(--rth-hub-text);
	font-family: inherit;
}

.rth-blog img {
	display: block;
	width: 100%;
	max-width: 100%;
	height: auto;
}

.rth-blog a {
	color: var(--rth-hub-primary);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}

.rth-blog a:hover {
	color: var(--rth-hub-secondary-dark);
}

.rth-blog-container {
	width: min(
		calc(100% - 40px),
		1120px
	);
	margin-inline: auto;
}

.rth-blog-reading {
	width: min(
		calc(100% - 40px),
		780px
	);
	margin-inline: auto;
}


/* =========================================================
   2. HERO EDITORIAL

========================================================= */

.rth-blog-hero {
	position: relative;
	padding: clamp(58px, 8vw, 100px) 0 0;
	background:
		radial-gradient(
			circle at 88% 12%,
			rgba(28, 147, 226, 0.22) 0,
			rgba(28, 147, 226, 0) 35%
		),
		linear-gradient(
			135deg,
			var(--rth-hub-primary-deep) 0%,
			var(--rth-hub-primary) 100%
		);
	color: #ffffff;
}

.rth-blog-hero__content {
	max-width: 920px;
	margin-inline: auto;
	text-align: center;
}

.rth-blog-category {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	margin-bottom: 19px;
	color: #ffffff;
	font-size: 0.78rem;
	font-weight: 800;
	line-height: 1.3;
	letter-spacing: 0.11em;
	text-transform: uppercase;
}

.rth-blog-category::before {
	content: "";
	width: 30px;
	height: 2px;
	border-radius: 999px;
	background: var(--rth-hub-secondary);
}

.rth-blog-title {
	margin: 0;
	color: #ffffff;
	font-size: clamp(2.25rem, 5vw, 4.45rem);
	font-weight: 800;
	line-height: 1.02;
	letter-spacing: -0.045em;
	text-wrap: balance;
}

.rth-blog-lead {
	max-width: 790px;
	margin: 24px auto 0;
	color: rgba(255, 255, 255, 0.84);
	font-size: clamp(1.05rem, 1.8vw, 1.22rem);
	line-height: 1.72;
}

.rth-blog-meta {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px 22px;
	margin-top: 24px;
	color: rgba(255, 255, 255, 0.68);
	font-size: 0.87rem;
	font-weight: 650;
}


/* =========================================================
   3. IMAGEN DESTACADA
========================================================= */

.rth-blog-hero__image {
	position: relative;
	width: min(
		calc(100% - 40px),
		1120px
	);
	margin: clamp(38px, 6vw, 58px) auto -70px;
	overflow: hidden;
	border: 6px solid #ffffff;
	border-radius: 28px;
	background: #ffffff;
	box-shadow: var(--rth-hub-shadow-lg);
}

.rth-blog-hero__image img {
	width: 100%;
	height: clamp(340px, 52vw, 610px);
	object-fit: cover;
}


/* =========================================================
   4. CUERPO DEL ARTÍCULO
========================================================= */

.rth-blog-body {
	padding: clamp(118px, 13vw, 150px) 0
		clamp(72px, 9vw, 110px);
}

.rth-blog-content {
	color: var(--rth-hub-text);
	font-size: clamp(1rem, 1.4vw, 1.08rem);
	line-height: 1.85;
}

.rth-blog-content > p {
	margin: 0 0 25px;
}

.rth-blog-content > p:first-child {
	color: var(--rth-hub-text-dark);
	font-size: clamp(1.1rem, 1.8vw, 1.25rem);
	font-weight: 600;
	line-height: 1.75;
}

.rth-blog-content h2 {
	margin: clamp(48px, 7vw, 70px) 0 20px;
	color: var(--rth-hub-text-dark);
	font-size: clamp(1.75rem, 3.5vw, 2.65rem);
	font-weight: 800;
	line-height: 1.15;
	letter-spacing: -0.032em;
	text-wrap: balance;
}

.rth-blog-content h3 {
	margin: 38px 0 15px;
	color: var(--rth-hub-text-dark);
	font-size: clamp(1.3rem, 2.4vw, 1.7rem);
	font-weight: 800;
	line-height: 1.3;
	letter-spacing: -0.02em;
}

.rth-blog-content strong {
	color: var(--rth-hub-text-dark);
	font-weight: 750;
}

.rth-blog-content ul,
.rth-blog-content ol {
	margin: 0 0 27px;
	padding-left: 24px;
}

.rth-blog-content li {
	margin-bottom: 10px;
	padding-left: 4px;
}


/* =========================================================
   5. IMÁGENES EDITORIALES
========================================================= */

.rth-blog-figure {
	width: min(
		calc(100% - 40px),
		1000px
	);
	margin: clamp(48px, 7vw, 72px) auto;
}

.rth-blog-figure img {
	width: 100%;
	max-height: 620px;
	object-fit: cover;
	border-radius: 22px;
	box-shadow: var(--rth-hub-shadow);
}

.rth-blog-figure figcaption {
	max-width: 820px;
	margin: 12px auto 0;
	color: var(--rth-hub-muted);
	font-size: 0.83rem;
	line-height: 1.55;
	text-align: center;
}


/* Imagen + texto */

.rth-blog-media {
	display: grid;
	grid-template-columns:
		minmax(0, 0.95fr)
		minmax(0, 1.05fr);
	gap: clamp(30px, 5vw, 56px);
	align-items: center;
	width: min(
		calc(100% - 40px),
		1080px
	);
	margin: clamp(58px, 8vw, 86px) auto;
}

.rth-blog-media--reverse {
	grid-template-columns:
		minmax(0, 1.05fr)
		minmax(0, 0.95fr);
}

.rth-blog-media--reverse .rth-blog-media__image {
	order: 2;
}

.rth-blog-media__image {
	overflow: hidden;
	border-radius: 22px;
	box-shadow: var(--rth-hub-shadow);
}

.rth-blog-media__image img {
	width: 100%;
	height: clamp(300px, 38vw, 460px);
	object-fit: cover;
}

.rth-blog-media__content h2,
.rth-blog-media__content h3 {
	margin: 0 0 17px;
	color: var(--rth-hub-text-dark);
	font-size: clamp(1.65rem, 3vw, 2.35rem);
	font-weight: 800;
	line-height: 1.17;
	letter-spacing: -0.03em;
}

.rth-blog-media__content p {
	margin: 0 0 18px;
	font-size: 1rem;
	line-height: 1.78;
}

.rth-blog-media__content p:last-child {
	margin-bottom: 0;
}


/* =========================================================
   6. DATOS CLAVE
========================================================= */

.rth-blog-facts {
	width: min(
		calc(100% - 40px),
		1000px
	);
	margin: clamp(48px, 7vw, 70px) auto;
	padding: clamp(28px, 5vw, 42px);
	border: 1px solid var(--rth-hub-border);
	border-radius: 24px;
	background:
		linear-gradient(
			135deg,
			var(--rth-hub-light-blue),
			#ffffff
		);
	box-shadow: var(--rth-hub-shadow-sm);
}

.rth-blog-facts__title {
	margin: 0 0 25px;
	color: var(--rth-hub-text-dark);
	font-size: clamp(1.45rem, 2.8vw, 2rem);
	font-weight: 800;
	line-height: 1.25;
	text-align: center;
}

.rth-blog-facts__grid {
	display: grid;
	grid-template-columns:
		repeat(4, minmax(0, 1fr));
	gap: 14px;
}

.rth-blog-fact {
	padding: 20px 16px;
	border: 1px solid var(--rth-hub-border);
	border-radius: 14px;
	background: #ffffff;
	text-align: center;
}

.rth-blog-fact__label {
	display: block;
	margin-bottom: 7px;
	color: var(--rth-hub-muted);
	font-size: 0.78rem;
	font-weight: 750;
	line-height: 1.35;
	text-transform: uppercase;
}

.rth-blog-fact strong {
	display: block;
	color: var(--rth-hub-primary);
	font-size: 1rem;
	font-weight: 800;
	line-height: 1.4;
}


/* =========================================================
   7. BLOQUE DESTACADO / CONTEXTO
========================================================= */

.rth-blog-highlight {
	width: min(
		calc(100% - 40px),
		860px
	);
	margin: clamp(44px, 7vw, 66px) auto;
	padding: clamp(26px, 4vw, 36px);
	border-left: 5px solid var(--rth-hub-secondary);
	border-radius: 0 18px 18px 0;
	background: var(--rth-hub-light-blue);
}

.rth-blog-highlight p {
	margin: 0;
	color: var(--rth-hub-text-dark);
	font-size: clamp(1.05rem, 1.8vw, 1.18rem);
	font-weight: 650;
	line-height: 1.72;
}


/* =========================================================
   8. RUTAS RELACIONADAS
========================================================= */

.rth-blog-routes {
	width: min(
		calc(100% - 40px),
		1080px
	);
	margin: clamp(64px, 9vw, 96px) auto;
	padding: clamp(32px, 5vw, 50px);
	border-radius: 28px;
	background: var(--rth-hub-light);
}

.rth-blog-routes__header {
	max-width: 760px;
	margin: 0 auto 30px;
	text-align: center;
}

.rth-blog-routes__header span {
	display: block;
	margin-bottom: 9px;
	color: var(--rth-hub-secondary-dark);
	font-size: 0.76rem;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.rth-blog-routes__header h2 {
	margin: 0;
	color: var(--rth-hub-text-dark);
	font-size: clamp(1.7rem, 3.3vw, 2.5rem);
	font-weight: 800;
	line-height: 1.15;
	letter-spacing: -0.03em;
}

.rth-blog-routes__header p {
	margin: 15px 0 0;
	color: var(--rth-hub-muted);
	font-size: 0.98rem;
	line-height: 1.7;
}

.rth-blog-routes__grid {
	display: grid;
	grid-template-columns:
		repeat(2, minmax(0, 1fr));
	gap: 14px;
}

.rth-blog-route {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	padding: 18px 20px;
	border: 1px solid var(--rth-hub-border);
	border-radius: 14px;
	background: #ffffff;
	color: var(--rth-hub-text-dark) !important;
	font-size: 0.94rem;
	font-weight: 800;
	line-height: 1.4;
	text-decoration: none !important;
	transition:
		transform 180ms ease,
		border-color 180ms ease,
		box-shadow 180ms ease;
}

.rth-blog-route::after {
	content: "→";
	flex: 0 0 auto;
	color: var(--rth-hub-secondary);
	font-size: 1.1rem;
}

.rth-blog-route:hover {
	transform: translateY(-2px);
	border-color: var(--rth-hub-secondary);
	box-shadow: var(--rth-hub-shadow-sm);
	color: var(--rth-hub-primary) !important;
}


/* =========================================================
   9. CTA DEL ARTÍCULO
========================================================= */

.rth-blog-cta {
	width: min(
		calc(100% - 40px),
		1080px
	);
	margin: clamp(64px, 9vw, 96px) auto 0;
	padding: clamp(40px, 7vw, 68px);
	overflow: hidden;
	border-radius: 30px;
	background:
		radial-gradient(
			circle at 88% 12%,
			rgba(28, 147, 226, 0.34) 0,
			rgba(28, 147, 226, 0) 34%
		),
		linear-gradient(
			135deg,
			var(--rth-hub-primary-deep),
			var(--rth-hub-primary)
		);
	color: #ffffff;
	text-align: center;
	box-shadow: var(--rth-hub-shadow-lg);
}

.rth-blog-cta h2 {
	margin: 0;
	color: #ffffff;
	font-size: clamp(1.9rem, 4vw, 3rem);
	font-weight: 800;
	line-height: 1.1;
	letter-spacing: -0.035em;
	text-wrap: balance;
}

.rth-blog-cta p {
	max-width: 700px;
	margin: 18px auto 0;
	color: rgba(255, 255, 255, 0.82);
	font-size: 1rem;
	line-height: 1.75;
}

.rth-blog-cta__actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 13px;
	margin-top: 27px;
}


/* =========================================================
   10. FUENTES DEL ARTÍCULO
========================================================= */

.rth-blog-sources {
	width: min(
		calc(100% - 40px),
		780px
	);
	margin: clamp(52px, 7vw, 72px) auto 0;
	padding-top: 28px;
	border-top: 1px solid var(--rth-hub-border);
}

.rth-blog-sources h2,
.rth-blog-sources h3 {
	margin: 0 0 13px;
	color: var(--rth-hub-text-dark);
	font-size: 1rem;
	font-weight: 800;
}

.rth-blog-sources p,
.rth-blog-sources li {
	color: var(--rth-hub-muted);
	font-size: 0.84rem;
	line-height: 1.65;
}

.rth-blog-sources ul {
	margin: 0;
	padding-left: 19px;
}


/* =========================================================
   11. RESPONSIVE TABLET
========================================================= */

@media (max-width: 1024px) {

	.rth-blog-facts__grid {
		grid-template-columns:
			repeat(2, minmax(0, 1fr));
	}

	.rth-blog-media,
	.rth-blog-media--reverse {
		grid-template-columns: minmax(0, 1fr);
	}

	.rth-blog-media--reverse .rth-blog-media__image {
		order: 0;
	}

}


/* =========================================================
   12. RESPONSIVE MÓVIL
========================================================= */

@media (max-width: 767px) {

	.rth-blog-container,
	.rth-blog-reading,
	.rth-blog-hero__image,
	.rth-blog-figure,
	.rth-blog-media,
	.rth-blog-facts,
	.rth-blog-highlight,
	.rth-blog-routes,
	.rth-blog-cta,
	.rth-blog-sources {
		width: calc(100% - 28px);
	}

	.rth-blog-hero {
		padding-top: 52px;
	}

	.rth-blog-title {
		font-size: clamp(2rem, 10.5vw, 3rem);
		line-height: 1.04;
	}

	.rth-blog-lead {
		font-size: 1rem;
		line-height: 1.68;
	}

	.rth-blog-meta {
		gap: 7px 14px;
		font-size: 0.8rem;
	}

	.rth-blog-hero__image {
		margin-top: 32px;
		margin-bottom: -42px;
		border-width: 4px;
		border-radius: 20px;
	}

	.rth-blog-hero__image img {
		height: 270px;
	}

	.rth-blog-body {
		padding-top: 90px;
		padding-bottom: 68px;
	}

	.rth-blog-content {
		font-size: 1rem;
		line-height: 1.78;
	}

	.rth-blog-content h2 {
		margin-top: 44px;
	}

	.rth-blog-figure {
		margin-top: 42px;
		margin-bottom: 42px;
	}

	.rth-blog-figure img {
		border-radius: 16px;
	}

	.rth-blog-media {
		margin-top: 48px;
		margin-bottom: 48px;
		gap: 25px;
	}

	.rth-blog-media__image {
		border-radius: 17px;
	}

	.rth-blog-media__image img {
		height: 280px;
	}

	.rth-blog-facts {
		padding: 25px 18px;
		border-radius: 20px;
	}

	.rth-blog-facts__grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.rth-blog-highlight {
		padding: 23px 20px;
	}

	.rth-blog-routes {
		padding: 29px 18px;
		border-radius: 21px;
	}

	.rth-blog-routes__grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.rth-blog-route {
		padding: 17px 16px;
	}

	.rth-blog-cta {
		padding: 40px 20px;
		border-radius: 22px;
	}

	.rth-blog-cta__actions {
		display: grid;
		grid-template-columns: minmax(0, 1fr);
	}

	.rth-blog-cta__actions .rth-hub-button {
		width: 100%;
	}

}


/* =========================================================
   13. ACCESIBILIDAD
========================================================= */

@media (prefers-reduced-motion: reduce) {

	.rth-blog-route {
		transition: none;
	}

	.rth-blog-route:hover {
		transform: none;
	}

}

.rth-tourism-eyebrow {
	display: inline-block;
	margin-bottom: 12px;
	font-size: 0.82rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #06264f !important;
	background: transparent !important;
	-webkit-text-fill-color: #06264f !important;
}

/* =========================================================
   FIX HOME ES 24-08-2026
   Buscador dentro del flujo del hero, debajo del H1
   ========================================================= */

.rth-home-es .rth-es-hero {
	overflow: hidden !important;
	padding-bottom: clamp(56px, 7vw, 86px) !important;
}

.rth-home-es .rth-es-hero__copy {
	display: block !important;
	max-width: 980px;
	margin-inline: auto;
	text-align: center;
}

.rth-home-es .rth-es-hero__finder {
	position: static !important;
	inset: auto !important;
	display: block !important;
	float: none !important;
	clear: both !important;
	width: 100% !important;
	max-width: 980px !important;
	height: auto !important;
	margin: clamp(28px, 4vw, 40px) auto 0 !important;
	padding: clamp(22px, 3vw, 35px);
	transform: none !important;
	z-index: auto !important;
}

.rth-home-es .rth-es-hero__lead {
	position: static !important;
	display: block !important;
	clear: both !important;
	max-width: 820px;
	margin: 28px auto 0 !important;
	transform: none !important;
}

.rth-home-es .rth-es-hero__highlights,
.rth-home-es .rth-es-immediate {
	position: static !important;
	clear: both !important;
	transform: none !important;
}

.rth-home-es .rth-es-trustbar {
	padding-top: 34px !important;
}

@media (max-width: 767px) {

	.rth-home-es .rth-es-hero {
		padding: 62px 0 54px !important;
	}

	.rth-home-es .rth-es-hero__finder {
		margin: 24px auto 0 !important;
		padding: 18px 14px;
		border-radius: 21px;
	}

	.rth-home-es .rth-es-hero__lead {
		margin-top: 24px !important;
	}

	.rth-home-es .rth-es-trustbar {
		padding-top: 30px !important;
	}
}


/* =========================================================
   FIX CENTRADO IMÁGENES EDITORIALES
========================================================= */

.rth-blog .rth-blog-figure:not(.rth-blog-hero__image) {
	width: min(calc(100% - 40px), 1000px) !important;
	margin-left: auto !important;
	margin-right: auto !important;
}

@media (max-width: 767px) {
	.rth-blog .rth-blog-figure:not(.rth-blog-hero__image) {
		width: calc(100% - 28px) !important;
	}
}

/* =========================================================
   CSS chatbot Radio Taxi Huelva
   ========================================================= */

:root {
	--chat-window-height: 500px;
	--rth-chat-vh: 100dvh;
	--rth-chat-blue: #1c93e2;
	--rth-chat-blue-dark: #0878bd;
	--rth-chat-red: #e83d64;
	--rth-chat-red-dark: #d92f58;
}

/* =========================================================
   Botón ligero previo a la carga del chat
   ========================================================= */

.rth-light-chat-button {
	position: fixed;
	right: 18px;
	bottom: 82px;
	z-index: 2147482000;
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 62px;
	width: 62px;
	height: 62px;
	padding: 0;
	border: 2px solid rgba(255, 255, 255, 0.95);
	border-radius: 999px;
	background: var(--rth-chat-red);
	color: #ffffff;
	font-size: 0;
	line-height: 1;
	cursor: pointer;
	box-shadow:
		0 8px 22px rgba(232, 61, 100, 0.36),
		0 2px 8px rgba(0, 0, 0, 0.22);
	animation: rth-chat-mobile-idle 4s ease-in-out infinite;
	transform-origin: center;
}

.rth-light-chat-button:hover {
	background: var(--rth-chat-red-dark);
	color: #ffffff;
}

.rth-chat-icon {
	display: block;
	width: 30px;
	height: 30px;
	flex: 0 0 auto;
	color: #ffffff;
	pointer-events: none;
}

/* =========================================================
   Ventana chat escritorio
   ========================================================= */

.chat-window {
	height: 500px !important;
	max-height: 80vh !important;
	scroll-behavior: smooth;
}

.chat-header {
	position: relative;
	min-height: auto !important;
	padding: 4px 0 2px !important;
	background-color: #f2f2f2 !important;
	flex: 0 0 auto !important;
}

.chat-header h1,
.chat-header .title,
.chat-header .subtitle,
.chat-header p {
	display: none !important;
}

.chat-header::before {
	content: "";
	display: block;
	width: 165px;
	height: 50px;
	margin: 2px auto 0;
	background-image: url("https://radiotaxihuelva.com/wp-content/uploads/2025/11/cropped-radio-taxi-huelva-logo-menu.png");
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
}

.chat-messages {
	padding-top: 8px !important;
}

/* =========================================================
   Botones internos del chat
   ========================================================= */

#n8n-chat a[href="#reservar-ida"],
#n8n-chat a[href="#reservar-ida-y-vuelta"],
#n8n-chat a[href="#confirmar-reserva"],
#n8n-chat a[href="#modificar-datos"],
#n8n-chat a[href="#modificar-fecha-hora"],
#n8n-chat a[href="#modificar-recogida"],
#n8n-chat a[href="#modificar-pasajeros-maletas"],
#n8n-chat a[href="#modificar-observaciones"],
#n8n-chat a[href="#modificar-contacto"],
#n8n-chat a[href="#corregir-ruta"],
#n8n-chat a[href="#ruta-correcta-sin-tarifa"],
#n8n-chat a[href*="/reservar-taxi/"],
#n8n-chat a[href*="/en/book-a-taxi/"] {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 100% !important;
	max-width: 260px !important;
	min-height: 46px !important;
	margin-top: 10px !important;
	padding: 12px 18px !important;
	border-radius: 999px !important;
	background: var(--rth-chat-blue) !important;
	color: #ffffff !important;
	font-size: 15px !important;
	font-weight: 700 !important;
	line-height: 1.2 !important;
	text-align: center !important;
	text-decoration: none !important;
	box-shadow: 0 6px 16px rgba(28, 147, 226, 0.25) !important;
}

#n8n-chat a[href="#reservar-ida"]:hover,
#n8n-chat a[href="#reservar-ida-y-vuelta"]:hover,
#n8n-chat a[href="#confirmar-reserva"]:hover,
#n8n-chat a[href="#modificar-datos"]:hover,
#n8n-chat a[href="#modificar-fecha-hora"]:hover,
#n8n-chat a[href="#modificar-recogida"]:hover,
#n8n-chat a[href="#modificar-pasajeros-maletas"]:hover,
#n8n-chat a[href="#modificar-observaciones"]:hover,
#n8n-chat a[href="#modificar-contacto"]:hover,
#n8n-chat a[href="#corregir-ruta"]:hover,
#n8n-chat a[href="#ruta-correcta-sin-tarifa"]:hover,
#n8n-chat a[href*="/reservar-taxi/"]:hover,
#n8n-chat a[href*="/en/book-a-taxi/"]:hover {
	background: var(--rth-chat-blue-dark) !important;
	color: #ffffff !important;
	text-decoration: none !important;
}

/* =========================================================
   Botón WhatsApp dentro del chat
   ========================================================= */

#n8n-chat a[href*="wa.me"] {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 100% !important;
	max-width: 260px !important;
	min-height: 46px !important;
	margin-top: 10px !important;
	padding: 12px 18px !important;
	border-radius: 999px !important;
	background: #25d366 !important;
	color: #ffffff !important;
	font-size: 15px !important;
	font-weight: 700 !important;
	line-height: 1.2 !important;
	text-align: center !important;
	text-decoration: none !important;
	box-shadow: 0 6px 16px rgba(37, 211, 102, 0.28) !important;
}

#n8n-chat a[href*="wa.me"]:hover {
	background: #1ebe5d !important;
	color: #ffffff !important;
	text-decoration: none !important;
}

/* =========================================================
   Botón cerrar móvil
   ========================================================= */

.rth-mobile-chat-close {
	display: none !important;
}

/* =========================================================
   Móvil
   ========================================================= */

@media (max-width: 767px) {
	.rth-light-chat-button,
	body .rth-light-chat-button,
	html body .rth-light-chat-button,
	#n8n-chat .chat-window-toggle,
	body #n8n-chat .chat-window-toggle,
	html body #n8n-chat .chat-window-toggle,
	#n8n-chat button.chat-window-toggle,
	body #n8n-chat button.chat-window-toggle,
	html body #n8n-chat button.chat-window-toggle,
	.chat-window-toggle,
	button.chat-window-toggle,
	.chat-window-toggle.rth-compact-chat-button,
	button.chat-window-toggle.rth-compact-chat-button {
		position: fixed !important;
		right: 18px !important;
		bottom: 27px !important;
		left: auto !important;
		top: auto !important;
		z-index: 2147482000 !important;

		display: flex !important;
		align-items: center !important;
		justify-content: center !important;

		width: 62px !important;
		min-width: 62px !important;
		max-width: 62px !important;
		height: 62px !important;
		min-height: 62px !important;
		max-height: 62px !important;

		padding: 0 !important;
		margin: 0 !important;

		border: 2px solid rgba(255, 255, 255, 0.95) !important;
		border-radius: 50% !important;

		background: var(--rth-chat-red) !important;
		color: #ffffff !important;

		cursor: pointer !important;
		overflow: visible !important;

		box-shadow:
			0 8px 22px rgba(232, 61, 100, 0.36),
			0 2px 8px rgba(0, 0, 0, 0.22) !important;

		animation: rth-chat-mobile-idle 4s ease-in-out infinite !important;
		transform-origin: center !important;
	}

	.rth-light-chat-button:hover,
	body .rth-light-chat-button:hover,
	html body .rth-light-chat-button:hover,
	#n8n-chat .chat-window-toggle:hover,
	body #n8n-chat .chat-window-toggle:hover,
	html body #n8n-chat .chat-window-toggle:hover,
	#n8n-chat button.chat-window-toggle:hover,
	body #n8n-chat button.chat-window-toggle:hover,
	html body #n8n-chat button.chat-window-toggle:hover,
	.chat-window-toggle:hover,
	button.chat-window-toggle:hover,
	.chat-window-toggle.rth-compact-chat-button:hover,
	button.chat-window-toggle.rth-compact-chat-button:hover {
		background: var(--rth-chat-red-dark) !important;
		color: #ffffff !important;
	}

	.rth-light-chat-button span,
	#n8n-chat .chat-window-toggle span,
	#n8n-chat .chat-window-toggle.rth-compact-chat-button span,
	.chat-window-toggle span,
	.chat-window-toggle.rth-compact-chat-button span {
		display: none !important;
	}

	.rth-light-chat-button .rth-chat-icon,
	#n8n-chat .chat-window-toggle .rth-chat-icon,
	#n8n-chat .chat-window-toggle.rth-compact-chat-button .rth-chat-icon,
	.chat-window-toggle .rth-chat-icon,
	.chat-window-toggle.rth-compact-chat-button .rth-chat-icon {
		display: block !important;
		width: 30px !important;
		height: 30px !important;
		color: #ffffff !important;
	}

	html.rth-chat-fullscreen .rth-light-chat-button,
	body.rth-chat-fullscreen .rth-light-chat-button,
	html.rth-chat-fullscreen #n8n-chat .chat-window-toggle,
	body.rth-chat-fullscreen #n8n-chat .chat-window-toggle,
	html.rth-chat-fullscreen .chat-window-toggle,
	body.rth-chat-fullscreen .chat-window-toggle,
	.chat-window-toggle.rth-chat-toggle-hidden {
		display: none !important;
		visibility: hidden !important;
		opacity: 0 !important;
		pointer-events: none !important;
	}

	html.rth-chat-fullscreen,
	body.rth-chat-fullscreen {
		position: fixed !important;
		inset: 0 !important;
		width: 100% !important;
		height: var(--rth-chat-vh) !important;
		max-height: var(--rth-chat-vh) !important;
		overflow: hidden !important;
	}

	body.rth-chat-fullscreen #n8n-chat {
		position: fixed !important;
		inset: 0 !important;
		z-index: 2147483000 !important;
		width: 100vw !important;
		height: var(--rth-chat-vh) !important;
		max-height: var(--rth-chat-vh) !important;
		margin: 0 !important;
		padding: 0 !important;
		overflow: hidden !important;
		background: #ffffff !important;
	}

	body.rth-chat-fullscreen .chat-window {
		position: fixed !important;
		inset: 0 !important;
		z-index: 2147483000 !important;
		display: flex !important;
		flex-direction: column !important;
		width: 100vw !important;
		max-width: 100vw !important;
		height: var(--rth-chat-vh) !important;
		min-height: var(--rth-chat-vh) !important;
		max-height: var(--rth-chat-vh) !important;
		margin: 0 !important;
		padding: 0 !important;
		border: 0 !important;
		border-radius: 0 !important;
		background: #ffffff !important;
		overflow: hidden !important;
		transform: none !important;
		box-shadow: none !important;
	}

	body.rth-chat-fullscreen .chat-layout,
	body.rth-chat-fullscreen .chat-body,
	body.rth-chat-fullscreen .chat-window .chat-body {
		display: flex !important;
		flex: 1 1 auto !important;
		flex-direction: column !important;
		min-height: 0 !important;
		height: auto !important;
		max-height: none !important;
		overflow: hidden !important;
	}

	body.rth-chat-fullscreen .chat-messages,
	body.rth-chat-fullscreen .chat-messages-list {
		flex: 1 1 auto !important;
		min-height: 0 !important;
		height: auto !important;
		max-height: none !important;
		overflow-x: hidden !important;
		overflow-y: auto !important;
		-webkit-overflow-scrolling: touch !important;
	}

	body.rth-chat-fullscreen .chat-input,
	body.rth-chat-fullscreen .chat-footer,
	body.rth-chat-fullscreen .chat-powered-by {
		flex: 0 0 auto !important;
	}

	body.rth-chat-fullscreen .chat-header {
		position: relative !important;
		display: block !important;
		flex: 0 0 auto !important;
		padding:
			calc(8px + env(safe-area-inset-top))
			56px
			6px
			0 !important;
		min-height: calc(64px + env(safe-area-inset-top)) !important;
		background-color: #f2f2f2 !important;
		border: 0 !important;
	}

	body.rth-chat-fullscreen .chat-header::before {
		content: "";
		display: block !important;
		width: 165px !important;
		height: 50px !important;
		margin: 2px auto 0 !important;
		background-image: url("https://radiotaxihuelva.com/wp-content/uploads/2025/11/cropped-radio-taxi-huelva-logo-menu.png");
		background-repeat: no-repeat;
		background-position: center;
		background-size: contain;
	}

	body.rth-chat-fullscreen .chat-header h1,
	body.rth-chat-fullscreen .chat-header .title,
	body.rth-chat-fullscreen .chat-header .subtitle,
	body.rth-chat-fullscreen .chat-header p {
		display: none !important;
	}

	body.rth-chat-fullscreen .chat-header button:not(.rth-mobile-chat-close) {
		display: none !important;
		visibility: hidden !important;
		opacity: 0 !important;
		pointer-events: none !important;
	}

	body.rth-chat-fullscreen .rth-mobile-chat-close {
		position: absolute !important;
		top: calc(12px + env(safe-area-inset-top)) !important;
		right: 12px !important;
		z-index: 2147483001 !important;
		display: flex !important;
		align-items: center !important;
		justify-content: center !important;
		width: 38px !important;
		height: 38px !important;
		padding: 0 !important;
		border: 0 !important;
		border-radius: 999px !important;
		background: #111111 !important;
		color: #ffffff !important;
		font-size: 30px !important;
		font-weight: 400 !important;
		line-height: 1 !important;
		cursor: pointer !important;
		touch-action: manipulation !important;
		box-shadow: 0 4px 12px rgba(0, 0, 0, 0.22) !important;
	}
}

/* =========================================================
   Animación botón móvil
   ========================================================= */

@keyframes rth-chat-mobile-idle {
	0% {
		transform: translateY(0) scale(1);
		box-shadow:
			0 8px 22px rgba(232, 61, 100, 0.36),
			0 2px 8px rgba(0, 0, 0, 0.22);
	}

	70% {
		transform: translateY(0) scale(1);
		box-shadow:
			0 8px 22px rgba(232, 61, 100, 0.36),
			0 2px 8px rgba(0, 0, 0, 0.22);
	}

	76% {
		transform: translateY(-5px) scale(1.06);
		box-shadow:
			0 0 0 0 rgba(232, 61, 100, 0.45),
			0 10px 25px rgba(232, 61, 100, 0.42);
	}

	82% {
		transform: translateY(0) scale(1);
		box-shadow:
			0 0 0 12px rgba(232, 61, 100, 0),
			0 8px 22px rgba(232, 61, 100, 0.36);
	}

	88% {
		transform: translateY(-3px) scale(1.04);
	}

	94% {
		transform: translateY(0) scale(1);
	}

	100% {
		transform: translateY(0) scale(1);
	}
}

@media (prefers-reduced-motion: reduce) {
	.rth-light-chat-button,
	#n8n-chat .chat-window-toggle,
	#n8n-chat .chat-window-toggle.rth-compact-chat-button,
	.chat-window-toggle,
	.chat-window-toggle.rth-compact-chat-button {
		animation: none !important;
	}
}

/* =========================================================
   Chat móvil abierto a media pantalla
   ========================================================= */

@media (max-width: 767px) {
	html.rth-chat-preview,
	body.rth-chat-preview {
		overflow: hidden !important;
	}

	body.rth-chat-preview .rth-light-chat-button,
	body.rth-chat-preview .chat-window-toggle,
	body.rth-chat-preview #n8n-chat .chat-window-toggle {
		display: none !important;
		visibility: hidden !important;
		opacity: 0 !important;
		pointer-events: none !important;
	}

	body.rth-chat-preview #n8n-chat {
		position: fixed !important;
		left: 0 !important;
		right: 0 !important;
		bottom: 0 !important;
		top: auto !important;
		z-index: 2147483000 !important;
		width: 100vw !important;
		height: 58vh !important;
		max-height: 58vh !important;
		margin: 0 !important;
		padding: 0 !important;
		overflow: hidden !important;
		background: #ffffff !important;
		border-radius: 22px 22px 0 0 !important;
		box-shadow: 0 -8px 28px rgba(0, 0, 0, 0.22) !important;
	}

	body.rth-chat-preview .chat-window {
		position: fixed !important;
		left: 0 !important;
		right: 0 !important;
		bottom: 0 !important;
		top: auto !important;
		z-index: 2147483000 !important;
		display: flex !important;
		flex-direction: column !important;
		width: 100vw !important;
		max-width: 100vw !important;
		height: 58vh !important;
		min-height: 58vh !important;
		max-height: 58vh !important;
		margin: 0 !important;
		padding: 0 !important;
		border: 0 !important;
		border-radius: 22px 22px 0 0 !important;
		background: #ffffff !important;
		overflow: hidden !important;
		transform: none !important;
		box-shadow: 0 -8px 28px rgba(0, 0, 0, 0.22) !important;
	}

	body.rth-chat-preview .chat-layout,
	body.rth-chat-preview .chat-body,
	body.rth-chat-preview .chat-window .chat-body {
		display: flex !important;
		flex: 1 1 auto !important;
		flex-direction: column !important;
		min-height: 0 !important;
		height: auto !important;
		max-height: none !important;
		overflow: hidden !important;
	}

	body.rth-chat-preview .chat-messages,
	body.rth-chat-preview .chat-messages-list {
		flex: 1 1 auto !important;
		min-height: 0 !important;
		height: auto !important;
		max-height: none !important;
		overflow-x: hidden !important;
		overflow-y: auto !important;
		-webkit-overflow-scrolling: touch !important;
	}

	body.rth-chat-preview .chat-input,
	body.rth-chat-preview .chat-footer,
	body.rth-chat-preview .chat-powered-by {
		flex: 0 0 auto !important;
	}

	body.rth-chat-preview .chat-header {
		position: relative !important;
		display: block !important;
		flex: 0 0 auto !important;
		padding:
			calc(8px + env(safe-area-inset-top))
			56px
			6px
			0 !important;
		min-height: calc(64px + env(safe-area-inset-top)) !important;
		background-color: #f2f2f2 !important;
		border: 0 !important;
	}

	body.rth-chat-preview .chat-header::before {
		content: "";
		display: block !important;
		width: 165px !important;
		height: 50px !important;
		margin: 2px auto 0 !important;
		background-image: url("https://radiotaxihuelva.com/wp-content/uploads/2025/11/cropped-radio-taxi-huelva-logo-menu.png");
		background-repeat: no-repeat;
		background-position: center;
		background-size: contain;
	}

	body.rth-chat-preview .chat-header h1,
	body.rth-chat-preview .chat-header .title,
	body.rth-chat-preview .chat-header .subtitle,
	body.rth-chat-preview .chat-header p {
		display: none !important;
	}

	body.rth-chat-preview .chat-header button:not(.rth-mobile-chat-close) {
		display: none !important;
		visibility: hidden !important;
		opacity: 0 !important;
		pointer-events: none !important;
	}

	body.rth-chat-preview .rth-mobile-chat-close {
		position: absolute !important;
		top: calc(12px + env(safe-area-inset-top)) !important;
		right: 12px !important;
		z-index: 2147483001 !important;
		display: flex !important;
		align-items: center !important;
		justify-content: center !important;
		width: 38px !important;
		height: 38px !important;
		padding: 0 !important;
		border: 0 !important;
		border-radius: 999px !important;
		background: #111111 !important;
		color: #ffffff !important;
		font-size: 30px !important;
		font-weight: 400 !important;
		line-height: 1 !important;
		cursor: pointer !important;
		touch-action: manipulation !important;
		box-shadow: 0 4px 12px rgba(0, 0, 0, 0.22) !important;
	}
}

/* =========================================================
   RADIO TAXI HUELVA
   PÁGINA TARIFAS 2026

   URL:
   /tarifas-radio-taxi-huelva/

   Prefijo exclusivo:
   .rth-fares-
========================================================= */


/* =========================================================
   HERO
========================================================= */

.rth-fares-hero {
	position: relative;
	overflow: hidden;
	padding: clamp(68px, 8vw, 110px) 0 clamp(70px, 8vw, 100px);
	background:
		radial-gradient(
			circle at 88% 10%,
			rgba(28, 147, 226, 0.28) 0,
			rgba(28, 147, 226, 0) 34%
		),
		linear-gradient(
			135deg,
			var(--rth-hub-primary-deep) 0%,
			var(--rth-hub-primary) 100%
		);
	color: #ffffff;
	isolation: isolate;
}

.rth-fares-hero::before {
	content: "";
	position: absolute;
	z-index: -1;
	top: -180px;
	right: -130px;
	width: 450px;
	height: 450px;
	border: 1px solid rgba(255, 255, 255, 0.08);
	border-radius: 50%;
}

.rth-fares-hero::after {
	content: "";
	position: absolute;
	z-index: -1;
	right: 5%;
	bottom: -300px;
	width: 620px;
	height: 620px;
	border: 1px solid rgba(28, 147, 226, 0.24);
	border-radius: 50%;
}

.rth-fares-hero__content {
	max-width: 940px;
	margin-inline: auto;
	text-align: center;
}

.rth-fares-title {
	max-width: 980px;
	margin: 0 auto;
	color: #ffffff;
	font-size: clamp(2.4rem, 5.2vw, 4.75rem);
	font-weight: 800;
	line-height: 1;
	letter-spacing: -0.046em;
	text-wrap: balance;
}

.rth-fares-hero__lead {
	max-width: 820px;
	margin: 25px auto 0;
	color: rgba(255, 255, 255, 0.84);
	font-size: clamp(1.03rem, 1.7vw, 1.19rem);
	line-height: 1.75;
}

.rth-fares-hero__highlights {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 12px 22px;
	margin: 28px 0 0;
	padding: 0;
	list-style: none;
}

.rth-fares-hero__highlights li {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: rgba(255, 255, 255, 0.9);
	font-size: 0.91rem;
	font-weight: 700;
	line-height: 1.45;
}

.rth-fares-hero__highlights li::before {
	content: "✓";
	display: inline-flex;
	width: 20px;
	height: 20px;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.14);
	color: #ffffff;
	font-size: 0.7rem;
	font-weight: 900;
}


/* =========================================================
   BUSCADOR PRINCIPAL
========================================================= */

.rth-fares-finder {
	position: relative;
	z-index: 3;
	max-width: 980px;
	margin: clamp(34px, 5vw, 50px) auto 0;
	padding: clamp(25px, 4vw, 42px);
	border: 1px solid rgba(255, 255, 255, 0.24);
	border-radius: var(--rth-hub-radius-lg);
	background: #f4f7fa;
	box-shadow:
		0 30px 85px rgba(0, 0, 0, 0.24);
	color: var(--rth-hub-text);
	text-align: center;
}

.rth-fares-finder__eyebrow {
	margin: 0 0 9px;
	color: var(--rth-hub-primary);
	font-size: 0.76rem;
	font-weight: 800;
	letter-spacing: 0.11em;
	text-transform: uppercase;
}

.rth-fares-finder h2 {
	margin: 0;
	color: var(--rth-hub-text-dark);
	font-size: clamp(1.6rem, 3vw, 2.45rem);
	font-weight: 800;
	line-height: 1.18;
	letter-spacing: -0.03em;
}

.rth-fares-finder__text {
	max-width: 680px;
	margin: 14px auto 24px;
	color: var(--rth-hub-muted);
	font-size: 0.96rem;
	line-height: 1.7;
}

.rth-fares-finder__shortcode {
	max-width: 760px;
	margin-inline: auto;
}

.rth-fares-finder__shortcode .buscador-tarifas-taxi {
	width: 100%;
	max-width: 760px;
	margin-right: auto !important;
	margin-left: auto !important;
}

.rth-fares-finder__shortcode .buscador-title,
.rth-fares-finder__shortcode .buscador-subtitle {
	text-align: center;
}

.rth-fares-finder__shortcode .buscador-tarifas-grid {
	width: 100%;
	max-width: 690px;
	margin-right: auto;
	margin-left: auto;
}

.rth-fares-finder__shortcode .taxi-field-row {
	background: #ffffff;
	box-shadow: 0 7px 20px rgba(6, 38, 79, 0.08);
}

.rth-fares-finder__note {
	max-width: 680px;
	margin: 18px auto 0;
	color: var(--rth-hub-muted);
	font-size: 0.82rem;
	line-height: 1.55;
}


/* =========================================================
   TRUST BAR
========================================================= */

.rth-fares-trust {
	padding: 34px 0;
	background: #ffffff;
}

.rth-fares-trust__grid {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	overflow: hidden;
	border: 1px solid var(--rth-hub-border);
	border-radius: var(--rth-hub-radius-md);
	background: #ffffff;
	box-shadow: var(--rth-hub-shadow-sm);
}

.rth-fares-trust__item {
	min-height: 138px;
	padding: 22px 17px;
	text-align: center;
}

.rth-fares-trust__item + .rth-fares-trust__item {
	border-left: 1px solid var(--rth-hub-border);
}

.rth-fares-trust__item > span {
	display: inline-flex;
	min-width: 38px;
	height: 38px;
	align-items: center;
	justify-content: center;
	margin-bottom: 12px;
	padding-inline: 8px;
	border-radius: 999px;
	background: var(--rth-hub-secondary-soft);
	color: var(--rth-hub-primary);
	font-size: 0.78rem;
	font-weight: 900;
}

.rth-fares-trust__item strong {
	display: block;
	color: var(--rth-hub-text-dark);
	font-size: 0.91rem;
	font-weight: 800;
	line-height: 1.4;
}

.rth-fares-trust__item p {
	margin: 6px 0 0;
	color: var(--rth-hub-muted);
	font-size: 0.8rem;
	line-height: 1.5;
}


/* =========================================================
   PROCESO
========================================================= */

.rth-fares-process {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 22px;
	max-width: 1000px;
	margin-inline: auto;
}

.rth-fares-step {
	position: relative;
	padding: 29px 26px;
	border: 1px solid var(--rth-hub-border);
	border-radius: var(--rth-hub-radius-md);
	background: #ffffff;
	text-align: center;
}

.rth-fares-step__number {
	display: inline-flex;
	width: 44px;
	height: 44px;
	align-items: center;
	justify-content: center;
	margin-bottom: 18px;
	border-radius: 50%;
	background: var(--rth-hub-secondary-soft);
	color: var(--rth-hub-primary);
	font-size: 0.76rem;
	font-weight: 900;
}

.rth-fares-step h3 {
	margin: 0 0 10px;
	color: var(--rth-hub-text-dark);
	font-size: 1.08rem;
	font-weight: 800;
	line-height: 1.35;
}

.rth-fares-step p {
	margin: 0;
	color: var(--rth-hub-muted);
	font-size: 0.91rem;
	line-height: 1.65;
}


/* =========================================================
   RUTAS POPULARES
========================================================= */

.rth-fares-routes {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 21px;
}

.rth-fares-route {
	position: relative;
	display: flex;
	height: 100%;
	flex-direction: column;
	padding: clamp(24px, 3vw, 31px);
	border: 1px solid var(--rth-hub-border);
	border-radius: var(--rth-hub-radius-md);
	background: #ffffff;
	box-shadow: var(--rth-hub-shadow-sm);
	transition:
		transform 180ms ease,
		border-color 180ms ease,
		box-shadow 180ms ease;
}

.rth-fares-route:hover {
	transform: translateY(-3px);
	border-color: var(--rth-hub-border-strong);
	box-shadow: var(--rth-hub-shadow);
}

.rth-fares-route__top {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	margin-bottom: 18px;
}

.rth-fares-route__type {
	display: inline-flex;
	padding: 6px 10px;
	border-radius: 999px;
	background: var(--rth-hub-secondary-soft);
	color: var(--rth-hub-primary);
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.05em;
	text-transform: uppercase;
}

.rth-fares-route__time {
	color: var(--rth-hub-muted);
	font-size: 0.8rem;
	font-weight: 700;
}

.rth-fares-route h3 {
	margin: 0;
	color: var(--rth-hub-text-dark);
	font-size: clamp(1.25rem, 2vw, 1.52rem);
	font-weight: 800;
	line-height: 1.28;
	letter-spacing: -0.02em;
}

.rth-fares-route__prices {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 11px;
	margin-top: 22px;
}

.rth-fares-route__prices > div {
	padding: 16px 15px;
	border: 1px solid var(--rth-hub-border);
	border-radius: var(--rth-hub-radius-sm);
	background: var(--rth-hub-light);
}

.rth-fares-route__prices span {
	display: block;
	margin-bottom: 5px;
	color: var(--rth-hub-muted);
	font-size: 0.76rem;
	font-weight: 700;
	line-height: 1.4;
}

.rth-fares-route__prices strong {
	display: block;
	color: var(--rth-hub-primary);
	font-size: 1.46rem;
	font-weight: 900;
	line-height: 1.15;
}

.rth-fares-route__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 14px 18px;
	margin-top: auto;
	padding-top: 23px;
}

.rth-fares-route__actions .rth-hub-button {
	min-height: 46px;
	padding: 11px 20px;
	font-size: 0.89rem;
}

.rth-fares-route__link {
	color: var(--rth-hub-primary) !important;
	font-size: 0.87rem;
	font-weight: 800;
	line-height: 1.45;
}

.rth-fares-route__link:hover {
	color: var(--rth-hub-secondary-dark) !important;
}

.rth-fares-routes__footer {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 13px;
	margin-top: 35px;
}


/* =========================================================
   SIN TARIFA PUBLICADA
========================================================= */

.rth-fares-no-route {
	display: grid;
	grid-template-columns:
		minmax(0, 1.25fr)
		minmax(300px, 0.75fr);
	gap: clamp(36px, 6vw, 70px);
	align-items: center;
	padding: clamp(34px, 5vw, 55px);
	border: 1px solid var(--rth-hub-border);
	border-radius: var(--rth-hub-radius-lg);
	background: #ffffff;
	box-shadow: var(--rth-hub-shadow-sm);
}

.rth-fares-no-route__content h2 {
	margin: 0;
	color: var(--rth-hub-text-dark);
	font-size: clamp(1.8rem, 3.4vw, 2.8rem);
	font-weight: 800;
	line-height: 1.12;
	letter-spacing: -0.035em;
}

.rth-fares-no-route__content > p {
	margin: 19px 0 0;
	color: var(--rth-hub-muted);
	font-size: 1rem;
	line-height: 1.78;
}

.rth-fares-no-route__action {
	padding: 27px 25px;
	border-radius: var(--rth-hub-radius-md);
	background:
		linear-gradient(
			135deg,
			var(--rth-hub-primary-deep),
			var(--rth-hub-primary)
		);
	color: #ffffff;
}

.rth-fares-no-route__action strong {
	display: block;
	color: #ffffff;
	font-size: 1.2rem;
	font-weight: 800;
	line-height: 1.35;
}

.rth-fares-no-route__action p {
	margin: 11px 0 21px;
	color: rgba(255, 255, 255, 0.8);
	font-size: 0.9rem;
	line-height: 1.65;
}

.rth-fares-no-route__action .rth-hub-button {
	width: 100%;
	background: #ffffff;
	color: var(--rth-hub-primary) !important;
	box-shadow: none;
}


/* =========================================================
   EXTRAS
========================================================= */

.rth-fares-extras {
	display: flex;
	flex-wrap: wrap;
	gap: 12px 22px;
	margin-top: 27px;
	padding: 20px 22px;
	border: 1px solid var(--rth-hub-border);
	border-radius: var(--rth-hub-radius-sm);
	background: var(--rth-hub-light);
}

.rth-fares-extras p {
	margin: 0;
	color: var(--rth-hub-text);
	font-size: 0.9rem;
	line-height: 1.6;
}

.rth-fares-extras strong {
	color: var(--rth-hub-text-dark);
	font-weight: 800;
}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 1024px) {

	.rth-fares-trust__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.rth-fares-trust__item + .rth-fares-trust__item {
		border-left: 0;
	}

	.rth-fares-trust__item {
		border-bottom: 1px solid var(--rth-hub-border);
	}

	.rth-fares-no-route {
		grid-template-columns: minmax(0, 1fr);
	}

	.rth-fares-no-route__action {
		max-width: 560px;
	}

}


/* =========================================================
   MÓVIL
========================================================= */

@media (max-width: 767px) {

	.rth-fares-hero {
		padding: 58px 0 52px;
	}

	.rth-fares-title {
		font-size: clamp(2.08rem, 10.5vw, 3.2rem);
		line-height: 1.03;
	}

	.rth-fares-hero__lead {
		margin-top: 21px;
		font-size: 1rem;
		line-height: 1.68;
	}

	.rth-fares-hero__highlights {
		display: grid;
		grid-template-columns: minmax(0, 1fr);
		justify-items: start;
		max-width: 390px;
		margin-right: auto;
		margin-left: auto;
	}

	.rth-fares-finder {
		margin-top: 27px;
		padding: 20px 14px;
		border-radius: 21px;
	}

	.rth-fares-finder__text {
		font-size: 0.9rem;
	}

	.rth-fares-finder__shortcode .buscador-tarifas-taxi,
	.rth-fares-finder__shortcode .buscador-tarifas-grid {
		max-width: none;
	}

	.rth-fares-finder__shortcode .taxi-field-row {
		box-shadow: none;
	}

	.rth-fares-trust {
		padding: 26px 0;
	}

	.rth-fares-trust__grid,
	.rth-fares-process,
	.rth-fares-routes {
		grid-template-columns: minmax(0, 1fr);
	}

	.rth-fares-trust__item {
		display: grid;
		grid-template-columns: 42px minmax(0, 1fr);
		min-height: auto;
		gap: 3px 13px;
		align-items: center;
		padding: 16px 17px;
		text-align: left;
	}

	.rth-fares-trust__item > span {
		grid-row: 1 / 3;
		margin-bottom: 0;
	}

	.rth-fares-trust__item p {
		margin-top: 1px;
	}

	.rth-fares-step {
		padding: 24px 20px;
		text-align: left;
	}

	.rth-fares-step__number {
		margin-bottom: 14px;
	}

	.rth-fares-route {
		padding: 22px 19px;
	}

	.rth-fares-route__prices {
		grid-template-columns: minmax(0, 1fr);
	}

	.rth-fares-route__actions {
		display: grid;
		grid-template-columns: minmax(0, 1fr);
	}

	.rth-fares-route__actions .rth-hub-button {
		width: 100%;
	}

	.rth-fares-route__link {
		padding: 5px 0;
		text-align: center;
	}

	.rth-fares-routes__footer {
		display: grid;
		grid-template-columns: minmax(0, 1fr);
	}

	.rth-fares-routes__footer .rth-hub-button {
		width: 100%;
	}

	.rth-fares-no-route {
		padding: 27px 20px;
	}

	.rth-fares-no-route__action {
		padding: 24px 20px;
	}

	.rth-fares-extras {
		display: grid;
		grid-template-columns: minmax(0, 1fr);
		padding: 18px;
	}

}


/* =========================================================
   REDUCCIÓN DE MOVIMIENTO
========================================================= */

@media (prefers-reduced-motion: reduce) {

	.rth-fares-route {
		transition: none;
	}

	.rth-fares-route:hover {
		transform: none;
	}

}