/**
 * Página: Franquicia (page-templates/template-franquicia.php).
 * Réplica de app/[locale]/franquicia/ (page.tsx + franquicia-calculator.tsx +
 * franquicia-form.tsx + source-tooltip.tsx). Scoped bajo .tpl-franquicia.
 */

/* ---------- Utilidades de color del dossier ---------- */
.tpl-franquicia .tf-c-yellow { color: var(--bj-yellow); }
.tpl-franquicia .tf-c-cyan { color: var(--bj-cyan); }
.tpl-franquicia .tf-c-magenta { color: var(--bj-magenta); }
.tpl-franquicia .tf-c-white { color: var(--bj-white); }
.tpl-franquicia .tf-c-gradient {
	background: linear-gradient(to bottom right, var(--bj-magenta), var(--bj-yellow));
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

/* ---------- Secciones y ornamentos comunes ---------- */
.tpl-franquicia .tf-section {
	position: relative;
	padding: 6rem 1.5rem;
	background: var(--bj-black);
	border-top: 1px solid rgba(255, 255, 255, 0.05);
	overflow: hidden;
}
.tpl-franquicia .tf-section--charcoal { background: var(--bj-charcoal); }
.tpl-franquicia .tf-section--gallery { padding: 5rem 1.5rem; }

.tpl-franquicia .tf-secnum {
	position: absolute;
	right: 1.5rem;
	top: 3rem;
	font-family: var(--font-display);
	font-size: 100px;
	line-height: 1;
	color: rgba(255, 255, 255, 0.015);
	pointer-events: none;
	user-select: none;
}

.tpl-franquicia .tf-label {
	display: flex;
	align-items: center;
	gap: 1rem;
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: 6px;
	margin-bottom: 1rem;
}
.tpl-franquicia .tf-label--yellow { color: var(--bj-yellow); }
.tpl-franquicia .tf-label--cyan { color: var(--bj-cyan); }
.tpl-franquicia .tf-label--magenta { color: var(--bj-magenta); }
.tpl-franquicia .tf-label--center { justify-content: center; }
.tpl-franquicia .tf-label__dot {
	width: 0.5rem;
	height: 0.5rem;
	border-radius: 9999px;
	background: currentColor;
	flex-shrink: 0;
}

.tpl-franquicia .tf-title {
	font-family: var(--font-display);
	font-size: 2.25rem;
	text-transform: uppercase;
	line-height: 1.05;
	max-width: 48rem;
	color: var(--bj-white);
}
.tpl-franquicia .tf-title--center {
	text-align: center;
	margin-inline: auto;
}

/* Manchas de pintura (SplatterSVG: xl = 12rem, lg = 8rem) */
.tpl-franquicia .tf-splat {
	position: absolute;
	pointer-events: none;
}
.tpl-franquicia .tf-splat--hero-1 {
	top: 6rem;
	left: 2rem;
	width: 12rem;
	height: 12rem;
	fill: var(--bj-yellow);
	opacity: 0.25;
	transform: rotate(-25deg);
}
.tpl-franquicia .tf-splat--hero-2 {
	bottom: 8rem;
	right: 2rem;
	width: 8rem;
	height: 8rem;
	fill: var(--bj-magenta);
	opacity: 0.25;
	transform: rotate(20deg);
}

/* ---------- Hero ---------- */
.tpl-franquicia .tf-hero {
	position: relative;
	min-height: 100vh;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	overflow: hidden;
	padding: 8rem 1.5rem 5rem;
}
.tpl-franquicia .tf-hero__bg,
.tpl-franquicia .tf-hero__bg img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.tpl-franquicia .tf-hero__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(to bottom, rgba(10, 10, 10, 0.75), rgba(10, 10, 10, 0.85), var(--bj-black));
}
.tpl-franquicia .tf-hero__inner {
	position: relative;
	z-index: 10;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 2rem;
	max-width: 56rem;
}
.tpl-franquicia .tf-hero__badge {
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: 5px;
	color: var(--bj-cyan);
	border: 1px solid rgba(8, 217, 214, 0.3);
	border-radius: 9999px;
	padding: 0.625rem 1.75rem;
}
.tpl-franquicia .tf-hero__title {
	font-family: var(--font-display);
	font-size: 3.75rem;
	color: var(--bj-white);
	text-transform: uppercase;
	letter-spacing: -0.025em;
	line-height: 0.95;
}
.tpl-franquicia .tf-hero__tagline {
	font-family: var(--font-display);
	font-size: 1.25rem;
	text-transform: uppercase;
	letter-spacing: 6px;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	column-gap: 0.75rem;
}
.tpl-franquicia .tf-hero__dot { color: var(--bj-gray-soft); }
.tpl-franquicia .tf-hero__subtitle {
	font-size: 0.875rem;
	text-transform: uppercase;
	letter-spacing: 3px;
	color: var(--bj-gray-soft);
	max-width: 42rem;
}
.tpl-franquicia .tf-hero__scroll {
	position: absolute;
	bottom: 2.5rem;
	left: 50%;
	transform: translateX(-50%);
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.625rem;
	font-size: 10px;
	text-transform: uppercase;
	letter-spacing: 3px;
	color: var(--bj-gray-soft);
}
.tpl-franquicia .tf-hero__scroll-line {
	width: 1px;
	height: 2.75rem;
	background: linear-gradient(to bottom, var(--bj-cyan), transparent);
}

/* ---------- Nav de secciones (sticky) ---------- */
.tpl-franquicia .tf-nav {
	position: sticky;
	top: var(--header-h);
	z-index: 30;
	background: rgba(10, 10, 10, 0.85);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	border-top: 1px solid rgba(255, 255, 255, 0.05);
	border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}
.tpl-franquicia .tf-nav__list {
	display: flex;
	gap: 1.5rem;
	padding: 1rem 0;
	overflow-x: auto;
	list-style: none;
	margin: 0;
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: 2px;
	color: var(--bj-gray-soft);
}
.tpl-franquicia .tf-nav__list li { flex-shrink: 0; }
.tpl-franquicia .tf-nav__list a {
	color: inherit;
	text-decoration: none;
	white-space: nowrap;
	transition: color 0.2s;
}
.tpl-franquicia .tf-nav__list a:hover { color: var(--bj-yellow); }

/* ---------- Marquee ---------- */
.tpl-franquicia .tf-marquee {
	overflow: hidden;
	border-top: 1px solid rgba(255, 255, 255, 0.05);
	border-bottom: 1px solid rgba(255, 255, 255, 0.05);
	padding: 1.25rem 0;
	background: var(--bj-black);
}
.tpl-franquicia .tf-marquee__track {
	display: flex;
	white-space: nowrap;
	animation: tf-marquee 25s linear infinite;
}
.tpl-franquicia .tf-marquee__seq {
	display: flex;
	flex-shrink: 0;
}
.tpl-franquicia .tf-marquee__item {
	font-family: var(--font-display);
	font-size: 0.875rem;
	text-transform: uppercase;
	letter-spacing: 5px;
	color: rgba(255, 255, 255, 0.1);
	padding: 0 1.5rem;
}
.tpl-franquicia .tf-marquee__dot {
	display: inline-block;
	width: 0.375rem;
	height: 0.375rem;
	border-radius: 9999px;
	margin: 0 1.5rem;
	vertical-align: middle;
	opacity: 0.5;
}
.tpl-franquicia .tf-marquee__dot--yellow { background: var(--bj-yellow); }
.tpl-franquicia .tf-marquee__dot--magenta { background: var(--bj-magenta); }
.tpl-franquicia .tf-marquee__dot--cyan { background: var(--bj-cyan); }
@keyframes tf-marquee {
	from { transform: translateX(0); }
	to { transform: translateX(-50%); }
}

/* ---------- 01 · Concepto ---------- */
.tpl-franquicia .tf-concept__grid {
	display: grid;
	gap: 0.25rem;
	margin: 4rem auto 0;
	max-width: 72rem;
}
.tpl-franquicia .tf-concept-card {
	position: relative;
	overflow: hidden;
	min-height: 500px;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	transition: transform 0.3s;
}
.tpl-franquicia .tf-concept-card:hover { transform: scale(1.01); }
.tpl-franquicia .tf-concept-card__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.7s;
}
.tpl-franquicia .tf-concept-card:hover .tf-concept-card__img { transform: scale(1.05); }
.tpl-franquicia .tf-concept-card__overlay { position: absolute; inset: 0; }
.tpl-franquicia .tf-concept-card--yellow .tf-concept-card__overlay {
	background: linear-gradient(to top, rgba(10, 10, 10, 0.95), rgba(10, 10, 10, 0.6), rgba(255, 214, 10, 0.05));
}
.tpl-franquicia .tf-concept-card--magenta .tf-concept-card__overlay {
	background: linear-gradient(to top, rgba(10, 10, 10, 0.95), rgba(10, 10, 10, 0.6), rgba(255, 46, 99, 0.05));
}
.tpl-franquicia .tf-concept-card__content {
	position: relative;
	z-index: 10;
	padding: 3rem;
}
.tpl-franquicia .tf-concept-card__tag {
	display: inline-block;
	padding: 0.375rem 1rem;
	border-radius: 9999px;
	font-size: 10px;
	text-transform: uppercase;
	letter-spacing: 3px;
	font-weight: 600;
	margin-bottom: 1rem;
	backdrop-filter: blur(4px);
	border: 1px solid;
}
.tpl-franquicia .tf-concept-card--yellow .tf-concept-card__tag {
	background: rgba(255, 214, 10, 0.15);
	color: var(--bj-yellow);
	border-color: rgba(255, 214, 10, 0.3);
}
.tpl-franquicia .tf-concept-card--magenta .tf-concept-card__tag {
	background: rgba(255, 46, 99, 0.15);
	color: var(--bj-magenta);
	border-color: rgba(255, 46, 99, 0.3);
}
.tpl-franquicia .tf-concept-card__title {
	font-family: var(--font-display);
	font-size: 2.25rem;
	text-transform: uppercase;
	margin-bottom: 0.75rem;
}
.tpl-franquicia .tf-concept-card__desc {
	color: rgba(255, 255, 255, 0.85);
	max-width: 28rem;
	line-height: 1.625;
}

/* ---------- Statement ---------- */
.tpl-franquicia .tf-statement {
	position: relative;
	padding: 8rem 1.5rem;
	text-align: center;
	overflow: hidden;
	background: var(--bj-black);
}
.tpl-franquicia .tf-statement__bg {
	position: absolute;
	inset: 0;
	opacity: 0.1;
}
.tpl-franquicia .tf-statement__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.tpl-franquicia .tf-statement__text {
	position: relative;
	z-index: 10;
	font-family: var(--font-display);
	font-size: 1.5rem;
	color: var(--bj-white);
	max-width: 56rem;
	margin: 0 auto;
	line-height: 1.25;
}

/* ---------- Galería ---------- */
.tpl-franquicia .tf-gallery__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.25rem;
	margin: 3rem auto 0;
	max-width: 72rem;
}
.tpl-franquicia .tf-gallery__item {
	position: relative;
	aspect-ratio: 1 / 1;
	overflow: hidden;
}
.tpl-franquicia .tf-gallery__item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.7s, filter 0.7s;
}
.tpl-franquicia .tf-gallery__item:hover img {
	transform: scale(1.05);
	filter: brightness(1.1);
}
.tpl-franquicia .tf-gallery__caption {
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(10, 10, 10, 0.7), transparent);
	opacity: 0;
	transition: opacity 0.3s;
	display: flex;
	align-items: flex-end;
	padding: 1.25rem;
	font-family: var(--font-display);
	font-size: 0.875rem;
	text-transform: uppercase;
	letter-spacing: 0.05em;
}
.tpl-franquicia .tf-gallery__item:hover .tf-gallery__caption,
.tpl-franquicia .tf-gallery__item:focus-within .tf-gallery__caption { opacity: 1; }

/* ---------- Tarjetas de datos (02 · Oportunidad / 03 · Por qué funciona) ---------- */
.tpl-franquicia .tf-datacards {
	display: grid;
	gap: 1.5rem;
	margin: 3rem auto 0;
	max-width: 72rem;
}
.tpl-franquicia .tf-datacard {
	background: var(--bj-charcoal);
	border: 1px solid rgba(255, 255, 255, 0.05);
	padding: 2rem;
}
.tpl-franquicia .tf-section--charcoal .tf-datacard { background: var(--bj-black); }
.tpl-franquicia .tf-datacard__title {
	font-family: var(--font-display);
	font-size: 1.125rem;
	color: var(--bj-white);
	margin-bottom: 0.5rem;
}
.tpl-franquicia .tf-datacard__num {
	font-family: var(--font-display);
	font-size: 1.875rem;
	margin-bottom: 0.75rem;
}
.tpl-franquicia .tf-datacard__body {
	color: rgba(255, 255, 255, 0.75);
	line-height: 1.625;
}

/* Tooltip de fuentes (SourceTooltip, CSS-only) */
.tpl-franquicia .tf-tooltip {
	position: relative;
	display: inline;
}
.tpl-franquicia .tf-tooltip__trigger {
	display: inline;
	border: 0;
	border-bottom: 1px dotted var(--bj-yellow);
	color: var(--bj-white);
	cursor: help;
	background: transparent;
	padding: 0;
	font: inherit;
}
.tpl-franquicia .tf-tooltip__panel {
	display: none;
	position: absolute;
	bottom: calc(100% + 0.5rem);
	left: 50%;
	transform: translateX(-50%);
	width: max-content;
	max-width: 20rem;
	background: var(--bj-charcoal);
	color: var(--bj-gray-soft);
	border: 1px solid rgba(255, 214, 10, 0.25);
	padding: 0.75rem;
	font-size: 0.75rem;
	line-height: 1.625;
	text-transform: none;
	letter-spacing: normal;
	text-align: left;
	z-index: 40;
}
.tpl-franquicia .tf-tooltip:hover .tf-tooltip__panel,
.tpl-franquicia .tf-tooltip:focus-within .tf-tooltip__panel { display: block; }
.tpl-franquicia .tf-tooltip__body {
	display: block;
	color: rgba(255, 255, 255, 0.85);
	margin-bottom: 0.5rem;
}
.tpl-franquicia .tf-tooltip__sources {
	display: block;
	font-size: 11px;
	color: var(--bj-yellow);
}
.tpl-franquicia .tf-tooltip__sources a {
	color: inherit;
	text-decoration: underline;
}
.tpl-franquicia .tf-tooltip__sources a:hover { color: rgba(255, 214, 10, 0.8); }

/* ---------- 04 · Números ---------- */
.tpl-franquicia .tf-numbers {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 2px;
	margin: 4rem auto 0;
	max-width: 72rem;
}
.tpl-franquicia .tf-number {
	background: var(--bj-charcoal);
	border: 1px solid rgba(255, 255, 255, 0.05);
	padding: 2.5rem;
	text-align: center;
	transition: transform 0.3s, border-color 0.3s;
}
.tpl-franquicia .tf-number:hover {
	transform: translateY(-0.25rem);
	border-color: rgba(255, 255, 255, 0.1);
}
.tpl-franquicia .tf-number__value {
	font-family: var(--font-display);
	font-size: 2.25rem;
	margin-bottom: 0.75rem;
}
.tpl-franquicia .tf-number__label {
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 2px;
	color: var(--bj-gray-soft);
	line-height: 1.625;
}
.tpl-franquicia .tf-number__source {
	font-size: 10px;
	color: rgba(255, 255, 255, 0.2);
	margin-top: 0.375rem;
}

/* ---------- Calculadora ---------- */
.tpl-franquicia .tf-calc {
	max-width: 72rem;
	margin: 4rem auto 0;
}
.tpl-franquicia .tf-calc__box {
	position: relative;
	overflow: hidden;
	background: var(--bj-charcoal);
	border: 1px solid rgba(255, 255, 255, 0.05);
	padding: 2rem;
}
.tpl-franquicia .tf-calc__box::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 3px;
	background: linear-gradient(to right, var(--bj-yellow), var(--bj-cyan), var(--bj-magenta));
}
.tpl-franquicia .tf-calc__title {
	font-family: var(--font-display);
	font-size: 1.5rem;
	color: var(--bj-white);
	margin-bottom: 0.5rem;
}
.tpl-franquicia .tf-calc__subtitle {
	color: var(--bj-gray-soft);
	font-size: 0.875rem;
	margin-bottom: 2rem;
}
.tpl-franquicia .tf-calc__grid {
	display: grid;
	gap: 2rem;
	align-items: start;
}
.tpl-franquicia .tf-calc__inputs {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}
.tpl-franquicia .tf-calc__group-label {
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 2px;
	color: var(--bj-gray-soft);
	margin-bottom: 0.5rem;
}
.tpl-franquicia .tf-calc__group-label--mt {
	margin-top: 1rem;
	margin-bottom: 0;
}
.tpl-franquicia .tf-calc__row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
}
.tpl-franquicia .tf-calc__row-label {
	font-size: 0.875rem;
	color: rgba(255, 255, 255, 0.75);
}
.tpl-franquicia .tf-stepper {
	display: flex;
	align-items: center;
	border: 1px solid rgba(255, 255, 255, 0.1);
}
.tpl-franquicia .tf-stepper__btn {
	width: 2.5rem;
	height: 2.5rem;
	background: rgba(255, 255, 255, 0.05);
	border: 0;
	color: var(--bj-white);
	font-size: 1.125rem;
	cursor: pointer;
	transition: background 0.2s;
}
.tpl-franquicia .tf-stepper__btn:hover { background: rgba(255, 255, 255, 0.1); }
.tpl-franquicia .tf-stepper__value {
	width: 3rem;
	height: 2.5rem;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--font-display);
	font-size: 1.125rem;
	border-left: 1px solid rgba(255, 255, 255, 0.1);
	border-right: 1px solid rgba(255, 255, 255, 0.1);
}
.tpl-franquicia .tf-calc__events {
	width: 5rem;
	height: 2.5rem;
	background: rgba(255, 255, 255, 0.05);
	border: 1px solid rgba(255, 255, 255, 0.1);
	color: var(--bj-white);
	font-family: var(--font-display);
	text-align: center;
	outline: none;
}
.tpl-franquicia .tf-calc__events:focus { border-color: var(--bj-cyan); }
.tpl-franquicia .tf-calc__result {
	background: rgba(255, 255, 255, 0.02);
	border: 1px solid rgba(255, 255, 255, 0.05);
	padding: 2rem;
	text-align: center;
}
.tpl-franquicia .tf-calc__result-label {
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 3px;
	color: var(--bj-gray-soft);
	margin-bottom: 0.5rem;
}
.tpl-franquicia .tf-calc__total {
	font-family: var(--font-display);
	font-size: 2.25rem;
	margin-bottom: 1.25rem;
	background: linear-gradient(to bottom right, var(--bj-yellow), var(--bj-cyan));
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}
.tpl-franquicia .tf-calc__breakdown {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	font-size: 0.875rem;
	margin: 0;
}
.tpl-franquicia .tf-calc__breakdown > div {
	display: flex;
	justify-content: space-between;
	color: rgba(255, 255, 255, 0.75);
	border-bottom: 1px solid rgba(255, 255, 255, 0.05);
	padding: 0.375rem 0;
}
.tpl-franquicia .tf-calc__breakdown dd {
	color: var(--bj-white);
	font-weight: 600;
	margin: 0;
}
.tpl-franquicia .tf-calc__rates {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}
.tpl-franquicia .tf-rate { padding: 1.5rem; }
.tpl-franquicia .tf-rate--yellow {
	background: rgba(255, 214, 10, 0.05);
	border: 1px solid rgba(255, 214, 10, 0.15);
}
.tpl-franquicia .tf-rate--magenta {
	background: rgba(255, 46, 99, 0.05);
	border: 1px solid rgba(255, 46, 99, 0.15);
}
.tpl-franquicia .tf-rate--cyan {
	background: rgba(8, 217, 214, 0.05);
	border: 1px solid rgba(8, 217, 214, 0.15);
}
.tpl-franquicia .tf-rate__label {
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 2px;
	margin-bottom: 0.375rem;
}
.tpl-franquicia .tf-rate--yellow .tf-rate__label,
.tpl-franquicia .tf-rate--yellow .tf-rate__value { color: var(--bj-yellow); }
.tpl-franquicia .tf-rate--magenta .tf-rate__label,
.tpl-franquicia .tf-rate--magenta .tf-rate__value { color: var(--bj-magenta); }
.tpl-franquicia .tf-rate--cyan .tf-rate__label,
.tpl-franquicia .tf-rate--cyan .tf-rate__value { color: var(--bj-cyan); }
.tpl-franquicia .tf-rate__value {
	font-family: var(--font-display);
	font-size: 1.5rem;
}
.tpl-franquicia .tf-rate__value span {
	font-family: var(--font-body, inherit);
	font-size: 0.875rem;
	color: var(--bj-gray-soft);
	margin-left: 0.25rem;
}
.tpl-franquicia .tf-calc__disclaimer {
	margin-top: 1.5rem;
	padding: 1.25rem;
	background: rgba(255, 255, 255, 0.02);
	border: 1px solid rgba(255, 255, 255, 0.05);
	font-size: 0.75rem;
	color: var(--bj-gray-soft);
	line-height: 1.625;
}
.tpl-franquicia .tf-calc__disclaimer strong { color: var(--bj-white); }

/* ---------- 05 · Modelo (features) ---------- */
.tpl-franquicia .tf-features {
	display: grid;
	gap: 1.25rem;
	margin: 4rem auto 0;
	max-width: 72rem;
}
.tpl-franquicia .tf-feature {
	position: relative;
	padding: 2.5rem;
	background: var(--bj-black);
	border: 1px solid rgba(255, 255, 255, 0.05);
	transition: transform 0.3s, border-color 0.3s;
}
.tpl-franquicia .tf-feature:hover {
	transform: translateY(-0.375rem);
	border-color: rgba(255, 255, 255, 0.1);
}
.tpl-franquicia .tf-feature__badge {
	position: absolute;
	top: 1rem;
	right: 1rem;
	padding: 0.25rem 0.75rem;
	border-radius: 9999px;
	font-size: 9px;
	text-transform: uppercase;
	letter-spacing: 2px;
	border: 1px solid;
}
.tpl-franquicia .tf-feature__badge--free {
	background: rgba(8, 217, 214, 0.15);
	color: var(--bj-cyan);
	border-color: rgba(8, 217, 214, 0.3);
}
.tpl-franquicia .tf-feature__badge--exclusive {
	background: rgba(255, 46, 99, 0.15);
	color: var(--bj-magenta);
	border-color: rgba(255, 46, 99, 0.3);
}
.tpl-franquicia .tf-feature__badge--guaranteed {
	background: rgba(255, 214, 10, 0.15);
	color: var(--bj-yellow);
	border-color: rgba(255, 214, 10, 0.3);
}
.tpl-franquicia .tf-feature__num {
	font-family: var(--font-display);
	font-size: 3rem;
	color: rgba(255, 255, 255, 0.05);
	margin-bottom: 1rem;
}
.tpl-franquicia .tf-feature__title {
	font-family: var(--font-display);
	font-size: 1.125rem;
	margin-bottom: 0.625rem;
}
.tpl-franquicia .tf-feature__body {
	font-size: 0.875rem;
	color: rgba(255, 255, 255, 0.75);
	line-height: 1.625;
}

/* ---------- 06 · Proceso (timeline) ---------- */
.tpl-franquicia .tf-timeline {
	position: relative;
	margin: 5rem auto 0;
	max-width: 64rem;
	list-style: none;
	padding: 0;
}
.tpl-franquicia .tf-timeline::before {
	content: '';
	position: absolute;
	left: 7px;
	top: 0;
	bottom: 0;
	width: 1px;
	background: linear-gradient(to bottom, var(--bj-yellow), var(--bj-cyan), var(--bj-magenta));
	opacity: 0.3;
}
.tpl-franquicia .tf-timeline__item {
	position: relative;
	padding-left: 3rem;
	margin-bottom: 3rem;
}
.tpl-franquicia .tf-timeline__dot {
	position: absolute;
	left: 0;
	top: 0.5rem;
	width: 0.875rem;
	height: 0.875rem;
	border-radius: 9999px;
}
.tpl-franquicia .tf-timeline__dot--yellow { background: var(--bj-yellow); }
.tpl-franquicia .tf-timeline__dot--cyan { background: var(--bj-cyan); }
.tpl-franquicia .tf-timeline__dot--magenta { background: var(--bj-magenta); }
.tpl-franquicia .tf-timeline__card {
	background: var(--bj-charcoal);
	border: 1px solid rgba(255, 255, 255, 0.05);
	padding: 2rem;
	transition: transform 0.3s, border-color 0.3s;
}
.tpl-franquicia .tf-timeline__card:hover {
	transform: translateY(-0.25rem);
	border-color: rgba(255, 255, 255, 0.1);
}
.tpl-franquicia .tf-timeline__step {
	font-family: var(--font-display);
	font-size: 0.75rem;
	letter-spacing: 3px;
	margin-bottom: 0.5rem;
}
.tpl-franquicia .tf-timeline__title {
	font-family: var(--font-display);
	font-size: 1.125rem;
	color: var(--bj-white);
	margin-bottom: 0.5rem;
}
.tpl-franquicia .tf-timeline__body {
	font-size: 0.875rem;
	color: rgba(255, 255, 255, 0.75);
	line-height: 1.625;
}

/* ---------- 07 · Inversión ---------- */
.tpl-franquicia .tf-conditions {
	display: grid;
	gap: 1.25rem;
	margin: 4rem auto 0;
	max-width: 72rem;
}
.tpl-franquicia .tf-condition {
	padding: 2.25rem;
	background: var(--bj-black);
	border: 1px solid rgba(255, 255, 255, 0.05);
	text-align: center;
	transition: transform 0.3s, border-color 0.3s;
}
.tpl-franquicia .tf-condition:hover {
	transform: translateY(-0.25rem);
	border-color: rgba(255, 255, 255, 0.1);
}
.tpl-franquicia .tf-condition__value {
	font-family: var(--font-display);
	font-size: 1.875rem;
	margin-bottom: 0.5rem;
}
.tpl-franquicia .tf-condition__label {
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 2px;
	color: var(--bj-gray-soft);
	line-height: 1.625;
}
.tpl-franquicia .tf-packs {
	display: grid;
	gap: 2rem;
	margin: 3rem auto 0;
	max-width: 72rem;
}
.tpl-franquicia .tf-pack {
	position: relative;
	padding: 3rem;
	background: var(--bj-black);
	border: 1px solid rgba(255, 255, 255, 0.05);
	transition: transform 0.3s;
}
.tpl-franquicia .tf-pack:hover { transform: translateY(-0.375rem); }
.tpl-franquicia .tf-pack--featured {
	border-color: var(--bj-cyan);
	background: linear-gradient(to bottom, rgba(8, 217, 214, 0.04), var(--bj-black));
}
.tpl-franquicia .tf-pack__flag {
	position: absolute;
	top: -0.75rem;
	left: 3rem;
	background: var(--bj-cyan);
	color: var(--bj-black);
	font-family: var(--font-display);
	font-size: 10px;
	letter-spacing: 3px;
	padding: 0.375rem 1rem;
}
.tpl-franquicia .tf-pack__name {
	font-family: var(--font-display);
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 4px;
	color: var(--bj-gray-soft);
	margin-bottom: 0.5rem;
}
.tpl-franquicia .tf-pack__price {
	font-family: var(--font-display);
	font-size: 3rem;
	line-height: 1;
	margin-bottom: 0.75rem;
	color: var(--bj-yellow);
}
.tpl-franquicia .tf-pack--featured .tf-pack__price {
	background: linear-gradient(to bottom right, var(--bj-cyan), rgba(8, 217, 214, 0.8));
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}
.tpl-franquicia .tf-pack__target {
	font-size: 0.875rem;
	color: var(--bj-gray-soft);
	margin-bottom: 1.5rem;
}
.tpl-franquicia .tf-pack__list {
	display: flex;
	flex-direction: column;
	gap: 0.875rem;
	list-style: none;
	margin: 0;
	padding: 0;
}
.tpl-franquicia .tf-pack__list li {
	font-size: 0.875rem;
	color: rgba(255, 255, 255, 0.75);
	padding-left: 1.5rem;
	position: relative;
	line-height: 1.375;
}
.tpl-franquicia .tf-pack__list li::before {
	content: '→';
	position: absolute;
	left: 0;
	font-weight: 700;
	color: var(--bj-yellow);
}
.tpl-franquicia .tf-pack--featured .tf-pack__list li::before { color: var(--bj-cyan); }
.tpl-franquicia .tf-pack__list .tf-pack__highlight {
	font-weight: 600;
	color: var(--bj-yellow);
}
.tpl-franquicia .tf-pack--featured .tf-pack__list .tf-pack__highlight { color: var(--bj-cyan); }
.tpl-franquicia .tf-inv-disclaimer {
	max-width: 72rem;
	margin: 1.5rem auto 0;
	font-size: 0.75rem;
	color: var(--bj-gray-soft);
}

/* ---------- 08 · Precontrato ---------- */
.tpl-franquicia .tf-presteps {
	display: grid;
	gap: 1.5rem;
	margin: 3rem auto 0;
	max-width: 72rem;
}
.tpl-franquicia .tf-prestep {
	padding: 2.25rem;
	background: var(--bj-charcoal);
	border: 1px solid rgba(255, 255, 255, 0.05);
	text-align: center;
}
.tpl-franquicia .tf-prestep__num {
	font-family: var(--font-display);
	font-size: 3rem;
	color: rgba(255, 214, 10, 0.15);
	margin-bottom: 0.75rem;
}
.tpl-franquicia .tf-prestep__title {
	font-family: var(--font-display);
	font-size: 1.125rem;
	color: var(--bj-white);
	margin-bottom: 0.75rem;
}
.tpl-franquicia .tf-prestep__body {
	font-size: 0.875rem;
	color: rgba(255, 255, 255, 0.75);
	line-height: 1.625;
}
.tpl-franquicia .tf-prestep__note {
	font-size: 0.75rem;
	color: var(--bj-gray-soft);
	margin-top: 1rem;
}

/* ---------- 09 · Seguridad jurídica ---------- */
.tpl-franquicia .tf-legal {
	display: grid;
	gap: 1.5rem;
	margin: 3rem auto 0;
	max-width: 72rem;
}
.tpl-franquicia .tf-legal-card {
	padding: 2rem;
	background: var(--bj-black);
	border: 1px solid rgba(255, 255, 255, 0.05);
}
.tpl-franquicia .tf-legal-card__title {
	font-family: var(--font-display);
	font-size: 1rem;
	color: var(--bj-white);
	margin-bottom: 1rem;
}
.tpl-franquicia .tf-legal-card__list {
	list-style: none;
	margin: 0;
	padding: 0;
}
.tpl-franquicia .tf-legal-card__list li {
	padding: 0.625rem 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.05);
	font-size: 0.875rem;
	color: rgba(255, 255, 255, 0.75);
}
.tpl-franquicia .tf-legal-card__list li:last-child { border-bottom: 0; }
.tpl-franquicia .tf-legal-card__check {
	color: var(--bj-cyan);
	margin-right: 0.5rem;
}
.tpl-franquicia .tf-legal-card__list a {
	color: var(--bj-yellow);
	text-decoration: underline;
}
.tpl-franquicia .tf-legal-card__list a:hover { color: rgba(255, 214, 10, 0.8); }

/* ---------- CTA ---------- */
.tpl-franquicia .tf-cta {
	position: relative;
	padding: 8rem 1.5rem;
	text-align: center;
	overflow: hidden;
	border-top: 1px solid rgba(255, 255, 255, 0.05);
	background: var(--bj-black);
}
.tpl-franquicia .tf-cta__bg {
	position: absolute;
	inset: 0;
	opacity: 0.1;
}
.tpl-franquicia .tf-cta__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.tpl-franquicia .tf-cta__glow {
	position: absolute;
	inset: 0;
	background:
		radial-gradient(ellipse 60% 50% at 30% 50%, rgba(255, 214, 10, 0.06) 0%, transparent 70%),
		radial-gradient(ellipse 60% 50% at 70% 50%, rgba(255, 46, 99, 0.06) 0%, transparent 70%);
}
.tpl-franquicia .tf-cta__inner {
	position: relative;
	z-index: 10;
	max-width: 42rem;
	margin: 0 auto;
}
.tpl-franquicia .tf-cta__title {
	font-family: var(--font-display);
	font-size: 3rem;
	text-transform: uppercase;
	line-height: 0.95;
	margin-bottom: 2rem;
	background: linear-gradient(to bottom right, var(--bj-yellow), var(--bj-magenta), var(--bj-cyan));
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}
.tpl-franquicia .tf-cta__body {
	color: var(--bj-gray-soft);
	font-size: 1.125rem;
	margin-bottom: 2.75rem;
	line-height: 1.625;
}
.tpl-franquicia .tf-cta__btn {
	display: inline-flex;
	align-items: center;
	gap: 0.75rem;
	padding: 1.25rem 3.5rem;
	background: linear-gradient(to bottom right, var(--bj-yellow), var(--bj-cyan));
	color: var(--bj-black);
	font-family: var(--font-display);
	font-size: 0.875rem;
	text-transform: uppercase;
	letter-spacing: 3px;
	text-decoration: none;
	transition: transform 0.3s;
}
.tpl-franquicia .tf-cta__btn:hover { transform: translateY(-0.25rem); }
.tpl-franquicia .tf-icon {
	width: 1.25rem;
	height: 1.25rem;
	flex-shrink: 0;
}

/* ---------- 10 · Contacto (formulario) ---------- */
.tpl-franquicia .tf-contact__head {
	text-align: center;
	margin-bottom: 3rem;
}
.tpl-franquicia .tf-contact__body {
	max-width: 32rem;
	margin: 1rem auto 0;
	color: var(--bj-gray-soft);
}
.tpl-franquicia .tf-form-wrap {
	max-width: 48rem;
	margin: 0 auto;
}
.tpl-franquicia .tf-form__group { margin-bottom: 2rem; }
.tpl-franquicia .tf-form__group-title {
	font-family: var(--font-display);
	font-size: 1.125rem;
	color: var(--bj-white);
	margin-bottom: 1rem;
	padding-bottom: 0.75rem;
	border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}
.tpl-franquicia .tf-form__grid {
	display: grid;
	gap: 1rem;
}
.tpl-franquicia .tf-form__stack {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}
.tpl-franquicia .tf-form__label {
	display: block;
	font-size: 0.875rem;
	color: rgba(255, 255, 255, 0.8);
	letter-spacing: 0.5px;
	font-weight: 500;
	margin-bottom: 0.375rem;
}
.tpl-franquicia .tf-req { color: var(--bj-magenta); }
.tpl-franquicia .tf-form__choices {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem 1.5rem;
}
.tpl-franquicia .tf-choice {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 0.875rem;
	color: rgba(255, 255, 255, 0.75);
	cursor: pointer;
}
.tpl-franquicia .tf-choice input { accent-color: var(--bj-yellow); }
.tpl-franquicia .tf-form__submit {
	width: 100%;
	padding: 1.25rem;
	background: linear-gradient(to bottom right, var(--bj-yellow), var(--bj-cyan));
	color: var(--bj-black);
	border: 0;
	font-family: var(--font-display);
	font-size: 0.875rem;
	text-transform: uppercase;
	letter-spacing: 3px;
	cursor: pointer;
	transition: transform 0.3s;
	margin-top: 1.5rem;
}
.tpl-franquicia .tf-form__submit:hover { transform: translateY(-0.125rem); }

/* ---------- Breakpoints ---------- */
@media (min-width: 640px) {
	.tpl-franquicia .tf-hero__title { font-size: 4.5rem; }
}

@media (min-width: 768px) {
	.tpl-franquicia .tf-section { padding: 8rem 1.5rem; }
	.tpl-franquicia .tf-secnum {
		right: 3rem;
		top: 4rem;
		font-size: 180px;
	}
	.tpl-franquicia .tf-title { font-size: 3.75rem; }
	.tpl-franquicia .tf-hero__title { font-size: 6rem; }
	.tpl-franquicia .tf-hero__tagline { font-size: 1.5rem; }
	.tpl-franquicia .tf-hero__subtitle { font-size: 1rem; }
	.tpl-franquicia .tf-nav__list { gap: 2.5rem; }
	.tpl-franquicia .tf-statement { padding: 10rem 1.5rem; }
	.tpl-franquicia .tf-statement__text { font-size: 2.25rem; }
	.tpl-franquicia .tf-concept__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tpl-franquicia .tf-concept-card__title { font-size: 3rem; }
	.tpl-franquicia .tf-gallery__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.tpl-franquicia .tf-datacards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tpl-franquicia .tf-datacard__num { font-size: 2.25rem; }
	.tpl-franquicia .tf-numbers { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.tpl-franquicia .tf-number__value { font-size: 3rem; }
	.tpl-franquicia .tf-calc__box { padding: 3rem; }
	.tpl-franquicia .tf-calc__total { font-size: 3rem; }
	.tpl-franquicia .tf-features { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tpl-franquicia .tf-conditions { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.tpl-franquicia .tf-packs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tpl-franquicia .tf-pack__price { font-size: 3.75rem; }
	.tpl-franquicia .tf-presteps { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.tpl-franquicia .tf-legal { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.tpl-franquicia .tf-cta { padding: 10rem 1.5rem; }
	.tpl-franquicia .tf-cta__title { font-size: 4.5rem; }
	.tpl-franquicia .tf-form__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tpl-franquicia .tf-span-2 { grid-column: span 2 / span 2; }

	/* Timeline alterna a dos columnas con la línea centrada */
	.tpl-franquicia .tf-timeline::before {
		left: 50%;
	}
	.tpl-franquicia .tf-timeline__item {
		padding-left: 0;
		display: flex;
		align-items: center;
	}
	.tpl-franquicia .tf-timeline__item--even { flex-direction: row-reverse; }
	.tpl-franquicia .tf-timeline__dot {
		left: 50%;
		top: 50%;
		transform: translate(-50%, -50%);
	}
	.tpl-franquicia .tf-timeline__card { width: 44%; }
}

@media (min-width: 1024px) {
	.tpl-franquicia .tf-secnum { font-size: 220px; }
	.tpl-franquicia .tf-hero__title { font-size: 8rem; }
	.tpl-franquicia .tf-statement__text { font-size: 3rem; }
	.tpl-franquicia .tf-features { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.tpl-franquicia .tf-calc__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.tpl-franquicia .tf-cta__title { font-size: 6rem; }
}

/* ---------- Movimiento reducido ---------- */
@media (prefers-reduced-motion: reduce) {
	.tpl-franquicia .tf-marquee__track { animation: none; }
	.tpl-franquicia .tf-concept-card,
	.tpl-franquicia .tf-concept-card__img,
	.tpl-franquicia .tf-gallery__item img,
	.tpl-franquicia .tf-number,
	.tpl-franquicia .tf-feature,
	.tpl-franquicia .tf-timeline__card,
	.tpl-franquicia .tf-condition,
	.tpl-franquicia .tf-pack,
	.tpl-franquicia .tf-cta__btn,
	.tpl-franquicia .tf-form__submit {
		transition: none;
	}
}

/* =========================================================================
   Zona de franquicia · brief v2 (12-08-2026)
   Secciones nuevas: datos propios, mercado con fuentes, escenario,
   calculadora de umbral, perfil, FAQ, consentimiento y aviso legal.
   ========================================================================= */

/* ---------- Texto de apoyo compartido ---------- */
.tpl-franquicia .tf-hero__note {
	margin-top: 0.75rem;
	font-size: 0.8125rem;
	line-height: 1.625;
	color: rgba(255, 255, 255, 0.55);
	max-width: 44rem;
}
.tpl-franquicia .tf-lede {
	max-width: 52rem;
	margin: 2rem 0 0;
	font-size: 1.0625rem;
	line-height: 1.75;
	color: rgba(255, 255, 255, 0.8);
}
.tpl-franquicia .tf-note {
	max-width: 52rem;
	margin: 2rem auto 0;
	font-size: 0.8125rem;
	line-height: 1.75;
	color: var(--bj-gray-soft);
}
.tpl-franquicia .tf-source {
	margin: 0.75rem 0 0;
	font-size: 0.75rem;
	color: var(--bj-gray-soft);
}
.tpl-franquicia .tf-source a {
	color: var(--bj-cyan);
	text-decoration: underline;
	text-underline-offset: 2px;
}
.tpl-franquicia .tf-source a:hover { color: var(--bj-white); }

/* ---------- 03 · Mercado con fuentes enlazadas ---------- */
.tpl-franquicia .tf-market {
	display: grid;
	gap: 1.25rem;
	margin: 3rem auto 0;
	max-width: 72rem;
}
.tpl-franquicia .tf-market__block {
	background: var(--bj-charcoal);
	border: 1px solid rgba(255, 255, 255, 0.05);
	border-left: 3px solid var(--bj-cyan);
	padding: 1.75rem;
}
.tpl-franquicia .tf-market__text {
	margin: 0;
	font-size: 1rem;
	line-height: 1.75;
	color: rgba(255, 255, 255, 0.85);
}

/* ---------- 05 · Nota de las condiciones de inversión ---------- */
.tpl-franquicia .tf-condition__note {
	margin-top: 0.75rem;
	font-size: 0.75rem;
	line-height: 1.625;
	color: var(--bj-gray-soft);
}

/* ---------- 06 · Escenario base ---------- */
.tpl-franquicia .tf-scenario {
	max-width: 72rem;
	margin: 3rem auto 0;
	background: var(--bj-black);
	border: 1px solid rgba(255, 214, 10, 0.25);
	padding: 2rem;
}
.tpl-franquicia .tf-scenario__tag {
	display: inline-block;
	background: var(--bj-yellow);
	color: var(--bj-black);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 2px;
	padding: 0.375rem 0.75rem;
	margin-bottom: 2rem;
}
.tpl-franquicia .tf-scenario__headline {
	display: grid;
	gap: 1.5rem;
	margin-bottom: 2.5rem;
}
.tpl-franquicia .tf-scenario__value {
	font-family: var(--font-display);
	font-size: 2.5rem;
	line-height: 1.1;
	margin-bottom: 0.5rem;
}
.tpl-franquicia .tf-scenario__label {
	margin: 0;
	font-size: 0.875rem;
	line-height: 1.625;
	color: rgba(255, 255, 255, 0.75);
}
.tpl-franquicia .tf-scenario__subtitle {
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 2px;
	color: var(--bj-yellow);
	margin-bottom: 1rem;
}
.tpl-franquicia .tf-scenario__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}
.tpl-franquicia .tf-scenario__list li {
	position: relative;
	padding-left: 1.25rem;
	font-size: 0.9375rem;
	line-height: 1.625;
	color: rgba(255, 255, 255, 0.8);
}
.tpl-franquicia .tf-scenario__list li::before {
	content: "·";
	position: absolute;
	left: 0;
	color: var(--bj-cyan);
	font-weight: 700;
}
.tpl-franquicia .tf-scenario__closing {
	margin: 1.5rem 0 0;
	font-size: 0.9375rem;
	line-height: 1.75;
	color: rgba(255, 255, 255, 0.85);
}
.tpl-franquicia .tf-scenario__season {
	margin-top: 2rem;
	padding-top: 2rem;
	border-top: 1px solid rgba(255, 255, 255, 0.08);
}
.tpl-franquicia .tf-scenario__season p {
	margin: 0;
	font-size: 0.9375rem;
	line-height: 1.75;
	color: rgba(255, 255, 255, 0.75);
}

/* ---------- 07 · Calculadora de umbral ---------- */
.tpl-franquicia .tf-calc__field {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}
.tpl-franquicia .tf-calc__field label {
	font-size: 0.8125rem;
	line-height: 1.5;
	color: rgba(255, 255, 255, 0.75);
}
.tpl-franquicia .tf-calc__output {
	font-family: var(--font-display);
	color: var(--bj-cyan);
}
.tpl-franquicia .tf-calc__input {
	width: 100%;
	height: 2.75rem;
	padding: 0 0.75rem;
	background: rgba(255, 255, 255, 0.05);
	border: 1px solid rgba(255, 255, 255, 0.1);
	color: var(--bj-white);
	font-family: var(--font-display);
	font-size: 1rem;
	outline: none;
}
.tpl-franquicia .tf-calc__input:focus { border-color: var(--bj-cyan); }
.tpl-franquicia .tf-calc__range {
	width: 100%;
	accent-color: var(--bj-cyan);
}
.tpl-franquicia .tf-calc__result-unit {
	margin: 0 0 1rem;
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 2px;
	color: var(--bj-gray-soft);
}
.tpl-franquicia .tf-calc__margin {
	margin: 0 0 1rem;
	font-size: 0.875rem;
	color: rgba(255, 255, 255, 0.75);
}
.tpl-franquicia .tf-calc__margin strong {
	font-family: var(--font-display);
	color: var(--bj-white);
}
.tpl-franquicia .tf-calc__compare {
	margin: 0;
	padding-top: 1rem;
	border-top: 1px solid rgba(255, 255, 255, 0.05);
	font-size: 0.75rem;
	line-height: 1.625;
	color: var(--bj-gray-soft);
	text-align: left;
}
.tpl-franquicia .tf-calc__constants {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	margin: 0;
	font-size: 0.8125rem;
}
.tpl-franquicia .tf-calc__constants > div {
	display: flex;
	flex-direction: column;
	gap: 0.125rem;
	padding: 0.625rem 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}
.tpl-franquicia .tf-calc__constants dt { color: rgba(255, 255, 255, 0.75); }
.tpl-franquicia .tf-calc__constants dd {
	margin: 0;
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.5rem;
}
.tpl-franquicia .tf-calc__constant-value {
	font-family: var(--font-display);
	color: var(--bj-white);
}
.tpl-franquicia .tf-calc__constant-note {
	font-size: 0.6875rem;
	color: var(--bj-gray-soft);
}
.tpl-franquicia .tf-calc__disclaimer p { margin: 0 0 0.75rem; }
.tpl-franquicia .tf-calc__disclaimer p:last-child { margin-bottom: 0; }

/* ---------- 08 · A quién buscamos ---------- */
.tpl-franquicia .tf-profile {
	display: grid;
	gap: 1rem;
	margin: 3rem auto 0;
	max-width: 72rem;
	list-style: none;
	padding: 0;
}
.tpl-franquicia .tf-profile__item {
	display: flex;
	gap: 1rem;
	align-items: flex-start;
	background: var(--bj-black);
	border: 1px solid rgba(255, 255, 255, 0.05);
	padding: 1.5rem;
}
.tpl-franquicia .tf-profile__num {
	font-family: var(--font-display);
	font-size: 1.5rem;
	line-height: 1;
	flex-shrink: 0;
}
.tpl-franquicia .tf-profile__text {
	font-size: 0.9375rem;
	line-height: 1.625;
	color: rgba(255, 255, 255, 0.8);
}

/* Cifra viva de la lista de espera dentro de la tarjeta del modelo. */
.tpl-franquicia .tf-feature__body--live {
	color: var(--bj-white);
	border-left: 2px solid var(--bj-cyan);
	padding-left: 0.75rem;
	margin-bottom: 0.75rem;
}

/* ---------- 12 · Preguntas frecuentes ---------- */
.tpl-franquicia .tf-faq {
	display: grid;
	gap: 1.25rem;
	margin: 3rem auto 0;
	max-width: 72rem;
}
.tpl-franquicia .tf-faq__item {
	background: var(--bj-black);
	border: 1px solid rgba(255, 255, 255, 0.05);
	border-top: 3px solid var(--bj-magenta);
	padding: 1.75rem;
}
.tpl-franquicia .tf-faq__q {
	font-family: var(--font-display);
	font-size: 1.125rem;
	color: var(--bj-white);
	margin: 0 0 0.75rem;
}
.tpl-franquicia .tf-faq__a {
	margin: 0;
	font-size: 0.9375rem;
	line-height: 1.75;
	color: rgba(255, 255, 255, 0.75);
}

/* ---------- 13 · Consentimiento e información en primera capa ---------- */
.tpl-franquicia .tf-consent {
	margin-top: 2rem;
	padding: 1.5rem;
	background: rgba(255, 255, 255, 0.02);
	border: 1px solid rgba(255, 255, 255, 0.08);
}
.tpl-franquicia .tf-consent__title {
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 2px;
	color: var(--bj-gray-soft);
	margin: 0 0 1rem;
}
.tpl-franquicia .tf-consent__info {
	margin: 0 0 1rem;
	font-size: 0.75rem;
	line-height: 1.625;
}
.tpl-franquicia .tf-consent__info > div { margin-bottom: 0.5rem; }
.tpl-franquicia .tf-consent__info dt {
	color: var(--bj-white);
	font-weight: 600;
	display: inline;
}
.tpl-franquicia .tf-consent__info dt::after { content: ":"; }
.tpl-franquicia .tf-consent__info dd {
	display: inline;
	margin: 0 0 0 0.25rem;
	color: var(--bj-gray-soft);
}
.tpl-franquicia .tf-consent__more {
	margin: 0 0 1.25rem;
	font-size: 0.75rem;
	color: var(--bj-gray-soft);
}
.tpl-franquicia .tf-consent__more a { color: var(--bj-cyan); }
.tpl-franquicia .tf-consent .bj-check { margin-bottom: 1rem; }
.tpl-franquicia .tf-consent .bj-check:last-child { margin-bottom: 0; }
.tpl-franquicia .tf-consent__mark {
	display: inline-block;
	margin-left: 0.375rem;
	font-size: 10px;
	font-style: normal;
	text-transform: uppercase;
	letter-spacing: 1px;
	color: var(--bj-gray-soft);
	border: 1px solid rgba(255, 255, 255, 0.15);
	padding: 0.0625rem 0.375rem;
}

/* ---------- 14 · Aviso legal visible ---------- */
.tpl-franquicia .tf-notice-section {
	padding-top: 4rem;
	padding-bottom: 4rem;
}
.tpl-franquicia .tf-notice {
	max-width: 60rem;
	margin: 0 auto;
	border-top: 1px solid rgba(255, 255, 255, 0.1);
	padding-top: 2rem;
}
.tpl-franquicia .tf-notice__title {
	font-family: var(--font-display);
	font-size: 1.125rem;
	color: var(--bj-white);
	margin: 0 0 1.25rem;
}
.tpl-franquicia .tf-notice p {
	margin: 0 0 1rem;
	font-size: 0.8125rem;
	line-height: 1.75;
	color: var(--bj-gray-soft);
}
.tpl-franquicia .tf-notice__footnote {
	margin-bottom: 0;
	color: rgba(255, 255, 255, 0.35);
}

/* ---------- Responsive de las secciones nuevas ---------- */
@media (min-width: 768px) {
	.tpl-franquicia .tf-market { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tpl-franquicia .tf-scenario { padding: 3rem; }
	.tpl-franquicia .tf-scenario__headline { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.tpl-franquicia .tf-scenario__value { font-size: 3rem; }
	.tpl-franquicia .tf-profile { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tpl-franquicia .tf-faq { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tpl-franquicia .tf-consent { padding: 2rem; }
}
