/* ============================================================
   Página: Portada (front-page.php)
   Todos los selectores van bajo .tpl-home.
   Réplica de app/[locale]/page.tsx y sus componentes:
   hero, why-section, services-grid, stats-counter, media-logos,
   split lifestyle, city-grid, faq, testimonial-carousel,
   cta-fullwidth y newsletter-inline.
   ============================================================ */

/* ---------- Utilidades de acento ---------- */
.tpl-home .hl-yellow { color: var(--bj-yellow); }
.tpl-home .hl-orange { color: var(--bj-orange); }

/* ---------- Manchas de pintura (SplatterSVG) ---------- */
.tpl-home .home-splat {
	position: absolute;
	pointer-events: none;
	z-index: 0;
}
.tpl-home .home-splat--sm { width: 4rem; height: 4rem; }
.tpl-home .home-splat--md { width: 6rem; height: 6rem; }
.tpl-home .home-splat--lg { width: 8rem; height: 8rem; }
.tpl-home .home-splat--xl { width: 12rem; height: 12rem; }

/* ============================================================
   Hero (components/hero.tsx)
   ============================================================ */
.tpl-home .home-hero {
	justify-content: center;
	background: var(--bj-black);
}
/* Overlay del original: gradiente vertical negro 60% → 80%. */
.tpl-home .home-hero .bj-hero__bg::after {
	background: linear-gradient(to bottom, rgba(10, 10, 10, 0.6), rgba(10, 10, 10, 0.8));
}
/* Las manchas van por encima del overlay (orden del original). */
.tpl-home .home-hero .home-splat { z-index: 1; }
.tpl-home .home-hero__splat-1 { top: 5rem; left: 2.5rem; opacity: 0.3; }
.tpl-home .home-hero__splat-2 { top: 33.333%; right: 5rem; opacity: 0.25; }
.tpl-home .home-hero__splat-3 { bottom: 33.333%; left: 25%; opacity: 0.2; }
.tpl-home .home-hero__splat-4 { bottom: 5rem; right: 33.333%; opacity: 0.25; }

.tpl-home .home-hero__content {
	position: relative;
	z-index: 1;
	padding-block: 3rem 5rem;
	text-align: center;
}
.tpl-home .home-hero__title {
	font-size: 3rem;
	line-height: 1.05;
	letter-spacing: -0.025em;
	color: var(--bj-white);
	margin-bottom: 1.5rem;
}
.tpl-home .home-hero__line { display: block; }
.tpl-home .home-hero__line + .home-hero__line { margin-top: 0.5rem; }
.tpl-home .home-hero__title .strike-through { color: var(--bj-gray-soft); }
.tpl-home .home-hero__word {
	display: inline-block;
	color: var(--bj-yellow);
}
/* Entrada de la palabra rotatoria (framer-motion: y 20 → 0, opacity 0 → 1). */
@keyframes home-word-in {
	from { opacity: 0; transform: translateY(20px); }
	to { opacity: 1; transform: translateY(0); }
}
.tpl-home .home-hero__word.is-entering {
	animation: home-word-in 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}

.tpl-home .home-hero__subtitle {
	font-size: 1.25rem;
	color: var(--bj-gray-soft);
	max-width: 42rem;
	margin: 0 auto 2.5rem;
}
.tpl-home .home-hero__actions {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 1rem;
	margin-bottom: 3rem;
}

.tpl-home .home-hero__trust {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 1.5rem;
	color: rgba(255, 255, 255, 0.8);
	font-size: 0.875rem;
	font-weight: 500;
}
.tpl-home .home-hero__trust-item {
	display: flex;
	align-items: center;
	gap: 0.5rem;
}
.tpl-home .home-hero__stars { display: flex; }
.tpl-home .home-hero__star {
	width: 1rem;
	height: 1rem;
	color: var(--bj-yellow);
}
.tpl-home .home-hero__trust-icon { width: 1rem; height: 1rem; flex-shrink: 0; }
.tpl-home .home-hero__trust-icon--cyan { color: var(--bj-cyan); }
.tpl-home .home-hero__trust-icon--magenta { color: var(--bj-magenta); }
.tpl-home .home-hero__divider {
	display: none;
	width: 1px;
	height: 1rem;
	background: rgba(255, 255, 255, 0.3);
}

/* Indicador de scroll (ratón con punto amarillo). */
.tpl-home .home-hero__scroll {
	position: absolute;
	bottom: 2.5rem;
	left: 50%;
	transform: translateX(-50%);
	z-index: 1;
}
@keyframes home-scroll-bob {
	0%, 100% { transform: translateY(0); }
	50% { transform: translateY(10px); }
}
.tpl-home .home-hero__mouse {
	width: 1.5rem;
	height: 2.5rem;
	border: 2px solid rgba(255, 255, 255, 0.3);
	border-radius: 999px;
	display: flex;
	justify-content: center;
	padding-top: 0.5rem;
	animation: home-scroll-bob 1.5s ease-in-out infinite;
}
.tpl-home .home-hero__mouse span {
	width: 0.375rem;
	height: 0.375rem;
	background: var(--bj-yellow);
	border-radius: 50%;
}
@media (prefers-reduced-motion: reduce) {
	.tpl-home .home-hero__scroll { display: none; }
}

@media (min-width: 640px) {
	.tpl-home .home-hero__title { font-size: 3.75rem; }
	.tpl-home .home-hero__actions { flex-direction: row; }
	.tpl-home .home-hero__divider { display: block; }
}
@media (min-width: 768px) {
	.tpl-home .home-hero__title { font-size: 4.5rem; }
	.tpl-home .home-hero__subtitle { font-size: 1.5rem; }
}
@media (min-width: 1024px) {
	.tpl-home .home-hero__title { font-size: 6rem; }
}
@media (min-width: 1280px) {
	.tpl-home .home-hero__title { font-size: 8rem; }
}

/* ============================================================
   ¿Por qué Break&Joy? (components/why-section.tsx)
   ============================================================ */
.tpl-home .home-why {
	position: relative;
	overflow: hidden;
	padding-block: 5rem;
	background: var(--bj-charcoal);
}
.tpl-home .home-why__splat-1 { top: -5rem; right: -5rem; opacity: 0.1; }
.tpl-home .home-why__splat-2 { bottom: -2.5rem; left: -2.5rem; opacity: 0.1; }
.tpl-home .home-why__inner { position: relative; z-index: 1; }
.tpl-home .home-why .bj-section-head { margin-bottom: 4rem; }
.tpl-home .home-why .bj-section-head__title {
	font-size: clamp(2.25rem, 5vw, 3.75rem);
	transform: rotate(-1deg);
}

.tpl-home .home-why__grid {
	display: grid;
	gap: 2rem;
}
.tpl-home .home-why__item { text-align: center; }
.tpl-home .home-why__num {
	font-family: var(--font-display);
	font-size: 6rem;
	line-height: 1.1;
	opacity: 0.2;
}
.tpl-home .home-why__item--yellow .home-why__num { color: var(--bj-yellow); }
.tpl-home .home-why__item--magenta .home-why__num { color: var(--bj-magenta); }
.tpl-home .home-why__item--cyan .home-why__num { color: var(--bj-cyan); }
.tpl-home .home-why__icon {
	width: 4rem;
	height: 4rem;
	margin: -3rem auto 1.5rem;
	border-radius: 1rem;
	background: rgba(10, 10, 10, 0.5);
	display: flex;
	align-items: center;
	justify-content: center;
}
.tpl-home .home-why__icon svg { width: 2rem; height: 2rem; }
.tpl-home .home-why__item--yellow .home-why__icon { color: var(--bj-yellow); }
.tpl-home .home-why__item--magenta .home-why__icon { color: var(--bj-magenta); }
.tpl-home .home-why__item--cyan .home-why__icon { color: var(--bj-cyan); }
.tpl-home .home-why__title { font-size: 1.5rem; margin-bottom: 1rem; }
.tpl-home .home-why__text {
	color: var(--bj-gray-soft);
	line-height: 1.625;
	margin: 0;
}

@media (min-width: 768px) {
	.tpl-home .home-why__grid { grid-template-columns: repeat(3, 1fr); }
}

/* ============================================================
   Experiencias (components/services-grid.tsx + service-card.tsx)
   ============================================================ */
.tpl-home .home-services { padding-block: 5rem; }
.tpl-home .home-services .bj-section-head { margin-bottom: 4rem; }
.tpl-home .home-services .bj-section-head__title {
	font-size: clamp(2.25rem, 5vw, 3.75rem);
	transform: rotate(1deg);
}

.tpl-home .home-services__grid {
	display: grid;
	gap: 1.5rem;
}

.tpl-home .home-service-card {
	display: block;
	text-decoration: none;
	color: inherit;
}
.tpl-home .home-service-card__box {
	position: relative;
	background: var(--bj-charcoal);
	border-radius: 1rem;
	overflow: hidden;
	transition: background 0.3s ease, transform 0.3s ease;
}
.tpl-home .home-service-card--yellow:hover .home-service-card__box { background: rgba(255, 214, 10, 0.1); }
.tpl-home .home-service-card--magenta:hover .home-service-card__box { background: rgba(255, 46, 99, 0.1); }
.tpl-home .home-service-card--cyan:hover .home-service-card__box { background: rgba(8, 217, 214, 0.1); }
.tpl-home .home-service-card--orange:hover .home-service-card__box { background: rgba(255, 107, 53, 0.1); }

.tpl-home .home-service-card__media {
	position: relative;
	height: 16rem;
	overflow: hidden;
}
.tpl-home .home-service-card__bg {
	position: absolute;
	inset: 0;
	background-color: var(--bj-charcoal);
	background-size: cover;
	transition: transform 0.5s ease;
}
.tpl-home .home-service-card:hover .home-service-card__bg { transform: scale(1.1); }
.tpl-home .home-service-card__fade {
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, var(--bj-charcoal), transparent 50%);
}
/* Manchas que aparecen al hacer hover (animate-splatter del original). */
.tpl-home .home-service-card__splash {
	opacity: 0;
	transition: opacity 0.3s ease;
}
.tpl-home .home-service-card__splash--1 { top: -2.5rem; right: -2.5rem; }
.tpl-home .home-service-card__splash--2 { bottom: 2.5rem; left: -1.25rem; }
.tpl-home .home-service-card:hover .home-service-card__splash {
	opacity: 1;
	animation: splatter-in 0.5s ease-out;
}
.tpl-home .home-service-card__badge {
	position: absolute;
	top: 1rem;
	right: 1rem;
	z-index: 2;
	padding: 0.25rem 0.75rem;
	background: var(--bj-magenta);
	color: var(--bj-white);
	font-size: 0.75rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.025em;
	border-radius: 999px;
}

.tpl-home .home-service-card__body { padding: 1.5rem; }
.tpl-home .home-service-card__subtitle {
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--bj-gray-soft);
	margin: 0 0 0.5rem;
	transition: color 0.3s ease;
}
.tpl-home .home-service-card__title {
	font-size: 1.5rem;
	color: var(--bj-white);
	margin: 0 0 0.75rem;
	transition: color 0.3s ease;
}
.tpl-home .home-service-card__desc {
	font-size: 0.875rem;
	color: var(--bj-gray-soft);
	margin: 0 0 1rem;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.tpl-home .home-service-card__more {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 0.875rem;
	font-weight: 500;
	color: var(--bj-white);
	transition: color 0.3s ease;
}
.tpl-home .home-service-card__more svg {
	width: 1rem;
	height: 1rem;
	transition: transform 0.2s ease;
}
.tpl-home .home-service-card:hover .home-service-card__more svg { transform: translateX(0.5rem); }

.tpl-home .home-service-card--yellow:hover .home-service-card__subtitle,
.tpl-home .home-service-card--yellow:hover .home-service-card__title,
.tpl-home .home-service-card--yellow:hover .home-service-card__more { color: var(--bj-yellow); }
.tpl-home .home-service-card--magenta:hover .home-service-card__subtitle,
.tpl-home .home-service-card--magenta:hover .home-service-card__title,
.tpl-home .home-service-card--magenta:hover .home-service-card__more { color: var(--bj-magenta); }
.tpl-home .home-service-card--cyan:hover .home-service-card__subtitle,
.tpl-home .home-service-card--cyan:hover .home-service-card__title,
.tpl-home .home-service-card--cyan:hover .home-service-card__more { color: var(--bj-cyan); }
.tpl-home .home-service-card--orange:hover .home-service-card__subtitle,
.tpl-home .home-service-card--orange:hover .home-service-card__title,
.tpl-home .home-service-card--orange:hover .home-service-card__more { color: var(--bj-orange); }

@media (min-width: 640px) {
	.tpl-home .home-services__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 1024px) {
	.tpl-home .home-services__grid { grid-template-columns: repeat(3, 1fr); }
}

/* ============================================================
   Stats (components/stats-counter.tsx)
   ============================================================ */
.tpl-home .home-stats {
	padding-block: 4rem;
	background: var(--bj-charcoal);
	border-top: 1px solid rgba(255, 255, 255, 0.1);
	border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}
.tpl-home .home-stats .bj-stat__number {
	font-size: clamp(3rem, 6vw, 4.5rem);
	margin-bottom: 0.5rem;
}
.tpl-home .home-stats .bj-stat__label {
	font-size: 0.875rem;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	margin-top: 0;
}
@media (min-width: 768px) {
	.tpl-home .home-stats .bj-stat__label { font-size: 1rem; }
}

/* ============================================================
   Medios (components/media-logos.tsx)
   ============================================================ */
.tpl-home .home-media {
	padding-block: 4rem;
	border-top: 1px solid rgba(255, 255, 255, 0.1);
	border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}
.tpl-home .home-media__head {
	text-align: center;
	margin-bottom: 2.5rem;
}
.tpl-home .home-media__eyebrow {
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 0.2em;
	color: var(--bj-yellow);
	margin: 0 0 0.75rem;
}
.tpl-home .home-media__sub {
	color: var(--bj-gray-soft);
	font-size: 0.875rem;
	max-width: 36rem;
	margin: 0 auto;
}
.tpl-home .home-media__list {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	justify-content: center;
	gap: 0.75rem;
	list-style: none;
	margin: 0;
	padding: 0;
}
.tpl-home .home-media__list li { display: flex; }
.tpl-home .home-media__item {
	display: inline-flex;
	align-items: center;
	gap: 0.75rem;
	height: 100%;
	padding: 0.75rem 1.25rem;
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: 0.75rem;
	background: rgba(255, 255, 255, 0.03);
	text-decoration: none;
	transition: border-color 0.2s ease, background 0.2s ease;
}
.tpl-home a.home-media__item:hover {
	border-color: rgba(255, 214, 10, 0.5);
	background: rgba(255, 255, 255, 0.06);
}
.tpl-home .home-media__item img {
	height: 1.75rem;
	width: auto;
	object-fit: contain;
	opacity: 0.7;
	transition: opacity 0.2s ease;
}
.tpl-home a.home-media__item:hover img { opacity: 1; }
.tpl-home .home-media__name {
	font-family: var(--font-display);
	font-size: 1.125rem;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--bj-gray-soft);
	transition: color 0.2s ease;
}
.tpl-home a.home-media__item:hover .home-media__name { color: var(--bj-white); }

@media (min-width: 768px) {
	.tpl-home .home-media__sub { font-size: 1rem; }
	.tpl-home .home-media__list { gap: 1rem; }
	.tpl-home .home-media__item img { height: 2rem; }
	.tpl-home .home-media__name { font-size: 1.25rem; }
}

/* ============================================================
   Split lifestyle CTA (sección inline de page.tsx)
   ============================================================ */
.tpl-home .home-split { padding-block: 5rem; }
.tpl-home .home-split__grid {
	display: grid;
	gap: 3rem;
	align-items: center;
}
.tpl-home .home-split__media { position: relative; }
.tpl-home .home-split__img {
	position: relative;
	aspect-ratio: 4 / 3;
	border-radius: 1rem;
	overflow: hidden;
}
.tpl-home .home-split__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.tpl-home .home-split__glow {
	position: absolute;
	border-radius: 50%;
	pointer-events: none;
}
.tpl-home .home-split__glow--yellow {
	bottom: -1rem;
	right: -1rem;
	width: 6rem;
	height: 6rem;
	background: rgba(255, 214, 10, 0.2);
	filter: blur(40px);
}
.tpl-home .home-split__glow--magenta {
	top: -1rem;
	left: -1rem;
	width: 4rem;
	height: 4rem;
	background: rgba(255, 46, 99, 0.2);
	filter: blur(24px);
}
.tpl-home .home-split__title {
	font-size: clamp(2.25rem, 5vw, 3.75rem);
	color: var(--bj-white);
	margin-bottom: 1.5rem;
	transform: rotate(-1deg);
}
.tpl-home .home-split__text {
	color: var(--bj-gray-soft);
	font-size: 1.125rem;
	line-height: 1.625;
	margin-bottom: 1.5rem;
}
.tpl-home .home-split__text:last-of-type { margin-bottom: 2rem; }
.tpl-home .home-split__text strong { color: var(--bj-white); }
.tpl-home .home-split__cta {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	background: var(--bj-orange);
	color: var(--bj-white);
	font-weight: 700;
	padding: 1rem 2rem;
	border-radius: 0.75rem;
	text-decoration: none;
	transition: background 0.2s ease, transform 0.2s ease;
}
.tpl-home .home-split__cta:hover {
	background: rgba(255, 107, 53, 0.9);
	transform: scale(1.05);
}
.tpl-home .home-split__cta svg { width: 1.25rem; height: 1.25rem; }

@media (min-width: 1024px) {
	.tpl-home .home-split__grid { grid-template-columns: repeat(2, 1fr); }
}

/* ============================================================
   Ciudades (components/city-grid.tsx)
   ============================================================ */
.tpl-home .home-cities { padding-block: 5rem; }
.tpl-home .home-cities__franchise-link {
	color: var(--bj-yellow);
	text-decoration: none;
}
.tpl-home .home-cities__franchise-link:hover { text-decoration: underline; }

.tpl-home .home-cities__total-wrap {
	text-align: center;
	margin: -1rem 0 3rem;
}
.tpl-home .home-cities__total {
	display: inline-flex;
	align-items: center;
	gap: 0.75rem;
	background: var(--bj-charcoal);
	border: 1px solid rgba(255, 214, 10, 0.4);
	border-radius: 1rem;
	padding: 1rem 1.5rem;
	text-align: left;
}
.tpl-home .home-cities__total > svg {
	width: 1.5rem;
	height: 1.5rem;
	flex-shrink: 0;
	color: var(--bj-yellow);
}
.tpl-home .home-cities__total-number {
	font-family: var(--font-display);
	font-size: 1.875rem;
	line-height: 1;
	color: var(--bj-yellow);
}
.tpl-home .home-cities__total-label {
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: rgba(255, 255, 255, 0.8);
	margin-top: 0.25rem;
}

.tpl-home .home-cities__grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1rem;
}
.tpl-home .home-city {
	display: block;
	height: 100%;
	padding: 1rem;
	border-radius: 0.75rem;
	text-decoration: none;
	transition: border-color 0.2s ease, background 0.2s ease;
}
.tpl-home .home-city--active,
.tpl-home .home-city--soon {
	background: var(--bj-charcoal);
	border: 1px solid rgba(255, 255, 255, 0.1);
}
.tpl-home .home-city--active:hover {
	border-color: rgba(255, 214, 10, 0.5);
	background: rgba(255, 214, 10, 0.05);
}
.tpl-home .home-city--soon:hover {
	border-color: rgba(255, 46, 99, 0.5);
	background: rgba(255, 46, 99, 0.05);
}
.tpl-home .home-city--featured {
	position: relative;
	background: rgba(255, 46, 99, 0.1);
	border: 2px solid rgba(255, 46, 99, 0.5);
}
.tpl-home .home-city--featured:hover { background: rgba(255, 46, 99, 0.2); }

.tpl-home .home-city__head {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin-bottom: 0.5rem;
}
.tpl-home .home-city__head svg {
	width: 1rem;
	height: 1rem;
	flex-shrink: 0;
}
.tpl-home .home-city--active .home-city__head svg { color: var(--bj-yellow); }
.tpl-home .home-city--soon .home-city__head svg { color: rgba(255, 255, 255, 0.4); }
.tpl-home .home-city--featured .home-city__head svg { color: var(--bj-magenta); }
.tpl-home .home-city__name {
	color: var(--bj-white);
	font-weight: 500;
	transition: color 0.2s ease;
}
.tpl-home .home-city--active:hover .home-city__name { color: var(--bj-yellow); }
.tpl-home .home-city--soon .home-city__name,
.tpl-home .home-city--featured .home-city__name { color: rgba(255, 255, 255, 0.9); }
.tpl-home .home-city--soon:hover .home-city__name,
.tpl-home .home-city--featured:hover .home-city__name { color: var(--bj-white); }

.tpl-home .home-city__meta {
	display: flex;
	align-items: center;
	justify-content: space-between;
}
.tpl-home .home-city__price {
	font-size: 0.75rem;
	color: var(--bj-gray-soft);
}
.tpl-home .home-city__arrow {
	width: 1rem;
	height: 1rem;
	margin-left: auto;
	color: var(--bj-yellow);
	opacity: 0;
	transition: opacity 0.2s ease;
}
.tpl-home .home-city--active:hover .home-city__arrow { opacity: 1; }

.tpl-home .home-city__badge {
	position: absolute;
	top: -0.5rem;
	right: -0.5rem;
	display: inline-flex;
	align-items: center;
	gap: 0.25rem;
	background: var(--bj-magenta);
	color: var(--bj-white);
	font-size: 0.625rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	padding: 0.125rem 0.5rem;
	border-radius: 999px;
}
.tpl-home .home-city__badge svg { width: 0.75rem; height: 0.75rem; }
.tpl-home .home-city__pop {
	display: block;
	font-size: 0.6875rem;
	color: rgba(255, 255, 255, 0.55);
	margin-bottom: 0.5rem;
}
.tpl-home .home-city__count {
	display: flex;
	align-items: center;
	gap: 0.375rem;
	background: rgba(255, 214, 10, 0.1);
	border: 1px solid rgba(255, 214, 10, 0.3);
	border-radius: 0.375rem;
	padding: 0.25rem 0.5rem;
}
.tpl-home .home-city__count svg {
	width: 0.875rem;
	height: 0.875rem;
	flex-shrink: 0;
	color: var(--bj-yellow);
}
.tpl-home .home-city__count-num {
	font-family: var(--font-display);
	font-size: 1rem;
	line-height: 1;
	color: var(--bj-yellow);
}
.tpl-home .home-city__count-label {
	font-size: 0.625rem;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: rgba(255, 214, 10, 0.8);
}
.tpl-home .home-city__soon-label {
	display: flex;
	align-items: center;
	gap: 0.25rem;
	font-size: 0.75rem;
	color: rgba(255, 46, 99, 0.85);
}
.tpl-home .home-city__soon-label svg { width: 0.75rem; height: 0.75rem; }

@media (min-width: 640px) {
	.tpl-home .home-cities__grid { grid-template-columns: repeat(3, 1fr); }
}
@media (min-width: 768px) {
	.tpl-home .home-cities__grid { grid-template-columns: repeat(4, 1fr); }
	.tpl-home .home-cities__total-number { font-size: 2.25rem; }
}
@media (min-width: 1024px) {
	.tpl-home .home-cities__grid { grid-template-columns: repeat(5, 1fr); }
}

/* ============================================================
   FAQ (components/faq.tsx — el acordeón es el global .bj-faq)
   ============================================================ */
.tpl-home .home-faq {
	padding-block: 5rem;
	background: var(--bj-charcoal);
}
/* Sobre fondo charcoal las tarjetas del original son negro/50. */
.tpl-home .home-faq .bj-faq__item {
	background: rgba(10, 10, 10, 0.5);
	border-color: rgba(255, 255, 255, 0.1);
	margin-bottom: 1rem;
}

/* ============================================================
   Testimonios (components/testimonial-carousel.tsx)
   ============================================================ */
.tpl-home .home-testimonials {
	padding-block: 5rem;
	overflow: hidden;
}
/* Slides: 1 / 2 / 3 visibles como el embla original. */
.tpl-home .home-testimonials__carousel .bj-carousel__track {
	padding-top: 1rem;
}
.tpl-home .home-testimonials__carousel .bj-carousel__track > * {
	flex: 0 0 100%;
}
.tpl-home .home-testimonial-slot { padding-top: 0.25rem; }
.tpl-home .home-testimonial {
	position: relative;
	height: 100%;
	background: var(--bj-cream);
	color: var(--bj-black);
	padding: 1.5rem;
	border-radius: var(--radius);
}
.tpl-home .home-testimonial__tape {
	position: absolute;
	top: -0.75rem;
	left: 50%;
	width: 4rem;
	height: 1.5rem;
	opacity: 0.8;
}
.tpl-home .home-testimonial__tape--yellow { background: var(--bj-yellow); }
.tpl-home .home-testimonial__tape--magenta { background: var(--bj-magenta); }
.tpl-home .home-testimonial__tape--cyan { background: var(--bj-cyan); }
.tpl-home .home-testimonial__tape--orange { background: var(--bj-orange); }
.tpl-home .home-testimonial__quote {
	width: 2rem;
	height: 2rem;
	color: rgba(255, 214, 10, 0.4);
	margin-bottom: 0.75rem;
}
.tpl-home .home-testimonial__stars {
	display: flex;
	gap: 0.125rem;
	margin-bottom: 0.75rem;
	color: var(--bj-yellow);
}
.tpl-home .home-testimonial__stars svg { width: 1rem; height: 1rem; }
.tpl-home .home-testimonial__text {
	font-size: 0.875rem;
	line-height: 1.625;
	margin: 0 0 1rem;
}
.tpl-home .home-testimonial__footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding-top: 0.75rem;
	border-top: 1px solid rgba(10, 10, 10, 0.1);
}
.tpl-home .home-testimonial__name {
	font-size: 0.875rem;
	font-weight: 700;
	margin: 0;
}
.tpl-home .home-testimonial__location {
	font-size: 0.75rem;
	color: rgba(10, 10, 10, 0.6);
	margin: 0;
}
.tpl-home .home-testimonial__pack {
	font-size: 0.75rem;
	font-weight: 500;
	padding: 0.25rem 0.5rem;
	background: rgba(255, 214, 10, 0.2);
	border-radius: 999px;
	white-space: nowrap;
}

@media (min-width: 640px) {
	.tpl-home .home-testimonials__carousel .bj-carousel__track > * {
		flex: 0 0 calc(50% - 0.75rem);
	}
}
@media (min-width: 1024px) {
	.tpl-home .home-testimonials__carousel .bj-carousel__track > * {
		flex: 0 0 calc(33.333% - 1rem);
	}
}

/* ============================================================
   CTA final (components/cta-fullwidth.tsx, sobre .bj-cta-band --dark)
   ============================================================ */
.tpl-home .bj-cta-band--dark {
	background: linear-gradient(135deg, var(--bj-charcoal), var(--bj-black));
	padding-block: 6rem;
}
.tpl-home .bj-cta-band--dark .bj-cta-band__title {
	font-size: clamp(2.25rem, 5.5vw, 4.5rem);
	margin-bottom: 1.5rem;
}
.tpl-home .bj-cta-band--dark .bj-cta-band__subtitle {
	font-size: clamp(1.25rem, 2vw, 1.5rem);
	color: var(--bj-gray-soft);
	opacity: 1;
	margin-bottom: 2.5rem;
}
.tpl-home .home-cta-strike { color: var(--bj-gray-soft); }
.tpl-home .home-cta-tagline {
	display: block;
	font-family: var(--font-display);
	font-size: 1.875rem;
	text-transform: uppercase;
	letter-spacing: 0.02em;
	line-height: 1.1;
	color: var(--bj-yellow);
	margin-top: 1rem;
}
@media (min-width: 768px) {
	.tpl-home .home-cta-tagline { font-size: 2.25rem; }
}

/* ============================================================
   Newsletter / lista de espera (components/newsletter-inline.tsx)
   ============================================================ */
.tpl-home .home-newsletter {
	position: relative;
	overflow: hidden;
	padding-block: 4rem;
	background: var(--bj-charcoal);
}
.tpl-home .home-newsletter__splat-1 { top: 0; left: 2.5rem; opacity: 0.2; }
.tpl-home .home-newsletter__splat-2 { bottom: 0; right: 5rem; opacity: 0.15; }
.tpl-home .home-newsletter .bj-container {
	position: relative;
	z-index: 1;
}
.tpl-home .home-newsletter__inner {
	max-width: 42rem;
	margin-inline: auto;
	text-align: center;
}
.tpl-home .home-newsletter__title {
	font-size: 1.875rem;
	margin-bottom: 1rem;
}
.tpl-home .home-newsletter__subtitle {
	color: var(--bj-gray-soft);
	font-size: 1.125rem;
	margin-bottom: 1.5rem;
}
.tpl-home .home-newsletter__form {
	max-width: 36rem;
	margin-inline: auto;
	text-align: left;
}
.tpl-home .home-newsletter__form .bj-form__field label {
	font-size: 0.75rem;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--bj-gray-soft);
}
.tpl-home .home-newsletter__form .bj-input,
.tpl-home .home-newsletter__form .bj-select {
	height: 3rem;
	border-color: rgba(255, 255, 255, 0.2);
}
.tpl-home .home-newsletter__form .bj-input:focus,
.tpl-home .home-newsletter__form .bj-select:focus { border-color: var(--bj-yellow); }
.tpl-home .home-newsletter__form .bj-check { font-size: 0.75rem; }

/* Selector de experiencia (interest-selector.tsx) */
.tpl-home .home-newsletter__interest {
	border: 0;
	margin: 0;
	padding: 0;
}
.tpl-home .home-newsletter__interest legend {
	font-size: 0.75rem;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--bj-gray-soft);
	padding: 0;
	margin-bottom: 0.5rem;
}
.tpl-home .home-interest {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0.5rem;
}
.tpl-home .home-interest__option {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.25rem;
	padding: 0.75rem;
	border: 1px solid rgba(255, 255, 255, 0.15);
	border-radius: 0.75rem;
	background: var(--bj-charcoal);
	font-size: 0.75rem;
	font-weight: 500;
	color: var(--bj-gray-soft);
	text-align: center;
	cursor: pointer;
	transition: border-color 0.2s ease, background 0.2s ease, color 0.2s ease;
}
.tpl-home .home-interest__option:hover {
	border-color: rgba(255, 255, 255, 0.3);
	color: var(--bj-white);
}
.tpl-home .home-interest__option input {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
}
.tpl-home .home-interest__option input:checked + span { color: var(--bj-yellow); }
.tpl-home .home-interest__option:has(input:checked) {
	border-color: var(--bj-yellow);
	background: rgba(255, 214, 10, 0.1);
	color: var(--bj-yellow);
}
.tpl-home .home-interest__option:focus-within {
	outline: 2px solid var(--bj-yellow);
	outline-offset: 2px;
}

.tpl-home .home-newsletter__submit {
	display: flex;
	justify-content: center;
}
.tpl-home .home-newsletter__bell { width: 1rem; height: 1rem; }
.tpl-home .home-newsletter__nospam {
	font-size: 0.75rem;
	color: var(--bj-gray-soft);
	margin: 1.5rem 0 0;
}

@media (min-width: 768px) {
	.tpl-home .home-newsletter__title { font-size: 2.25rem; }
}
