/* ===== Home (front-page) ===== */

/* Botones del home */
.btn--glass { background: rgba(255, 255, 255, .14); color: #fff; border: 1px solid rgba(255, 255, 255, .28); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.btn--glass:hover { background: rgba(255, 255, 255, .26); color: #fff; }
.btn--whatsapp { background: #25d366; color: #fff; border: 0; box-shadow: 0 6px 18px rgba(37, 211, 102, .28); transition: background .2s, transform .2s, box-shadow .2s; }
.btn--whatsapp:hover { background: #128c7e; color: #fff; transform: translateY(-3px); box-shadow: 0 12px 26px rgba(18, 140, 126, .45); }
.btn--whatsapp::before { content: ""; flex: none; width: 22px; height: 22px; background-color: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413z'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413z'/%3E%3C/svg%3E") center / contain no-repeat; }

/* Hero */
.hero-home { position: relative; isolation: isolate; display: flex; align-items: center; min-height: 90vh; min-height: 90svh; padding: 80px 0; background: var(--c-secondary); color: #fff; overflow: hidden; }
.hero-home__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.hero-home__video { position: absolute; inset: 0; z-index: -2; overflow: hidden; pointer-events: none; }
.hero-home__video video { width: 100%; height: 100%; max-width: none; object-fit: cover; }
.hero-home__video iframe { max-width: none; max-height: none; position: absolute; top: 50%; left: 50%; width: max(100vw, 177.78vh); height: max(56.25vw, 100vh); transform: translate(-50%, -50%); border: 0; }
.hero-home::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(0, 0, 0, .62) 0%, rgba(0, 0, 0, .38) 55%, rgba(0, 0, 0, .12) 100%), linear-gradient(0deg, rgba(0, 0, 0, .35), rgba(0, 0, 0, 0) 45%); }
.hero-home__inner { position: relative; }
.hero-home__tagline { display: inline-flex; align-items: center; gap: 12px; margin: 0 0 16px; font-family: var(--font-heading); font-weight: 600; font-size: .85rem; letter-spacing: .16em; text-transform: uppercase; color: var(--c-primary); }
.hero-home__tagline::before { content: ""; width: 38px; height: 2px; background: var(--c-primary); }
.hero-home__title { color: #fff; font-size: var(--fs-2xl); line-height: 1.12; max-width: 14em; margin: 0 0 var(--space-4); text-shadow: 0 2px 18px rgba(0, 0, 0, .35); }
.hero-home__text { max-width: 40em; margin: 0 0 30px; font-size: clamp(1.02rem, 1.6vw, 1.2rem); line-height: 1.65; color: rgba(255, 255, 255, .94); }
.hero-home__text p { margin: 0 0 .8em; }
.hero-home__text p:last-child { margin-bottom: 0; }
.hero-home__text strong { color: #fff; }
.hero-home__actions { display: flex; flex-wrap: wrap; gap: 14px; margin-bottom: 26px; }
.hero-home__actions .btn { padding: 14px 28px; display: inline-flex; align-items: center; gap: 8px; }
.hero-home__link { color: #fff; font-size: .95rem; text-decoration: none; opacity: .92; }
.hero-home__link:hover { color: var(--c-primary); opacity: 1; text-decoration: none; }

@media (max-width: 640px) {
	.hero-home { padding: 48px 0 40px; min-height: 90svh; }
	.hero-home::after { background: linear-gradient(0deg, rgba(0, 0, 0, .78) 0%, rgba(0, 0, 0, .58) 55%, rgba(0, 0, 0, .5) 100%); }
	.hero-home__tagline { font-size: .74rem; letter-spacing: .12em; margin-bottom: 12px; }
	.hero-home__title { font-size: clamp(1.9rem, 8.4vw, 2.3rem); margin-bottom: 14px; }
	.hero-home__text { font-size: .98rem; line-height: 1.55; margin-bottom: 22px; }
	.hero-home__actions { gap: 12px; margin-bottom: 20px; }
	.hero-home__actions .btn { width: 100%; justify-content: center; }
	.hero-home__link { display: block; font-size: .9rem; line-height: 1.5; }
}

/* Secciones del home */
.home .section, .section--soft, .section--dark { padding-top: var(--space-8); padding-bottom: var(--space-8); }

/* Slider (Swiper): cards de la misma altura y puntos de paginación */
/* Sin relleno lateral: Swiper recorta en el borde del contenido y no asoman los cards vecinos.
   Los cards no llevan sombra (borde fino) para que Swiper no la recorte. El espacio de arriba es para el salto del hover. */
.js-swiper { padding: var(--space-2) 0 var(--space-2); }
.js-swiper .swiper-slide { height: auto; }
.js-swiper .swiper-pagination { position: static; margin-top: var(--space-5); line-height: 1; }
.js-swiper .swiper-pagination-bullet { width: 10px; height: 10px; margin: 0 5px !important; background: #cfc8b8; opacity: 1; transition: width .25s, background .25s; }
.js-swiper .swiper-pagination-bullet-active { width: 28px; border-radius: 6px; background: var(--c-primary); }

/* Operador local */
.operator__grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: var(--space-8); align-items: center; }
.operator__title { margin: 0 0 var(--space-5); font-size: var(--fs-xl); line-height: 1.2; }
.operator__text p { margin: 0 0 var(--space-4); font-size: var(--fs-base); line-height: 1.7; }
.operator__text p:last-child { margin-bottom: 0; }
.operator__text strong { color: var(--c-secondary); }
.operator__boxes { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: var(--space-4); margin-top: var(--space-6); }
.operator__media img { display: block; width: 100%; aspect-ratio: 1 / 1; object-fit: cover; border-radius: 20px; box-shadow: 0 28px 48px -26px rgba(0, 0, 0, .4); }

/* Equipo, flota y seguridad */
.safety__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-5); }
@media (max-width: 1100px) { .safety__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .safety__grid { grid-template-columns: 1fr; gap: var(--space-4); } }

/* Equipo */
.team__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-6); }
@media (max-width: 1000px) { .team__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-5); } }
@media (max-width: 640px) { .team__grid { grid-template-columns: 1fr; } }

/* Flota */
.fleet__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-6); }
.fleet__guarantees { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-4); margin-top: var(--space-7); }
@media (max-width: 1100px) { .fleet__guarantees { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 1000px) { .fleet__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-5); } }
@media (max-width: 640px) { .fleet__grid, .fleet__guarantees { grid-template-columns: 1fr; } .fleet__guarantees { margin-top: var(--space-6); } }

/* Video: iframe sin estilo propio; solo ocupa todo el ancho en 16:9 */
.video iframe, .video video { display: block; width: 100%; aspect-ratio: 16 / 9; height: auto; }

/* Garantías y certificaciones */
.certs__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-5); }
@media (max-width: 1000px) { .certs__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .certs__grid { grid-template-columns: 1fr; gap: var(--space-4); } }

/* Información del destino */
.destination__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(290px, 1fr)); gap: var(--space-6); }

/* Qué debes saber */
.know__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-6); }
@media (max-width: 900px) { .know__grid { grid-template-columns: 1fr; gap: var(--space-5); } }

/* Reviews (widget de Trustindex) */
.reviews__widget { max-width: 100%; }

/* Cómo reservar */
.book__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-5); }
.book__cta { margin: var(--space-7) 0 0; text-align: center; }
.book__cta .btn { padding: 15px 36px; }
@media (max-width: 900px) { .book__grid { grid-template-columns: 1fr; gap: var(--space-4); } .book__cta { margin-top: var(--space-6); } }

/* Operación para agencias */
.agencies__grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: var(--space-8); align-items: start; }
.agencies__title { margin: 0 0 var(--space-5); font-size: var(--fs-xl); line-height: 1.2; }
.agencies__text p { margin: 0 0 var(--space-4); font-size: var(--fs-base); line-height: 1.7; }
.agencies__text p:last-child { margin-bottom: 0; }
.agencies__features { margin-top: var(--space-5); border-top: 1px solid #efece6; }
.agencies__cta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-4) var(--space-5); margin-top: var(--space-5); }
.agencies__cta .btn { padding: 15px 32px; }
.agencies__note { font-size: var(--fs-xs); color: var(--c-muted); }
@media (max-width: 900px) { .agencies__grid { grid-template-columns: 1fr; gap: var(--space-6); } }

/* Preguntas frecuentes: doble columna con columnas independientes */
.faq__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4) var(--space-5); align-items: start; }
.faq__col { display: grid; gap: var(--space-4); }
@media (max-width: 900px) { .faq__grid { grid-template-columns: 1fr; } }

/* Consulta */
.contact__grid { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: var(--space-6); align-items: start; }
@media (max-width: 900px) { .contact__grid { grid-template-columns: 1fr; } }

@media (max-width: 900px) {
	.operator__grid { grid-template-columns: 1fr; gap: var(--space-6); }
	.operator__media img { aspect-ratio: 4 / 3; }
}

@media (max-width: 640px) {
	.home .section, .section--soft, .section--dark { padding-top: var(--space-7); padding-bottom: var(--space-7); }
	.section-head { margin-bottom: var(--space-6); }
}
