/**
 * TNL Tienda — Sistema de diseño "Editorial Premium"
 * ---------------------------------------------------
 * Dirección: una librería privada, no una tienda de descuentos.
 * Tinta profunda + papel cálido + un solo acento de latón envejecido
 * usado con moderación (precios, estados activos, el sello "premium").
 * El elemento firma: una línea de "foil" en degradado de latón bajo
 * el precio de cada tarjeta — un guiño al estampado de libros de tapa dura.
 *
 * Las fuentes se HEREDAN del tema activo (no se fuerzan aquí), por
 * portabilidad entre los sitios de clientes. Solo se define una pila
 * de respaldo con carácter editorial si el tema no define nada.
 */

:root {
	/* Color */
	--tnl-ink:        #14213D; /* tinta profunda — headers, texto fuerte, botones primarios */
	--tnl-paper:       #F3EFE4; /* papel cálido — fondos de sección */
	--tnl-paper-dim:   #E7E1D2; /* bordes/divisores sobre papel */
	--tnl-brass:       #A6822F; /* acento único: latón envejecido — precios, foil, badges */
	--tnl-brass-light: #C9A857;
	--tnl-wine:        #6E2C36; /* segundo acento, muy escaso: urgencia/agotado */
	--tnl-text:        #1A1A1A;
	--tnl-text-dim:    #5B584E;
	--tnl-white:       #FFFFFF;

	/* Tipografía (hereda del tema; esta es la pila de respaldo) */
	--tnl-font-display: var(--tnl-theme-font-display, Georgia, 'Iowan Old Style', 'Times New Roman', serif);
	--tnl-font-body:    var(--tnl-theme-font-body, -apple-system, 'Segoe UI', Roboto, sans-serif);
	--tnl-font-mono:    var(--tnl-theme-font-mono, 'Courier New', monospace);

	/* Escala tipográfica */
	--tnl-text-xs:   0.75rem;
	--tnl-text-sm:   0.875rem;
	--tnl-text-base: 1rem;
	--tnl-text-lg:   1.125rem;
	--tnl-text-xl:   1.5rem;
	--tnl-text-2xl:  2rem;

	/* Espaciado */
	--tnl-space-1: 4px;
	--tnl-space-2: 8px;
	--tnl-space-3: 12px;
	--tnl-space-4: 16px;
	--tnl-space-6: 24px;
	--tnl-space-8: 32px;

	/* Elevación — sutil, nunca sombras genéricas de card-shadow por defecto */
	--tnl-shadow-sm: 0 1px 2px rgba(20, 33, 61, 0.06);
	--tnl-shadow-md: 0 4px 16px rgba(20, 33, 61, 0.08);
	--tnl-shadow-lg: 0 12px 32px rgba(20, 33, 61, 0.12);

	--tnl-radius: 6px;
	--tnl-radius-sm: 4px;

	--tnl-transition: 180ms cubic-bezier(0.4, 0, 0.2, 1);
}

/* ---------- Reset local (scoped, no toca el resto del tema) ---------- */
.tnl-scope * {
	box-sizing: border-box;
}
.tnl-scope {
	color: var(--tnl-text);
	font-family: var(--tnl-font-body);
}

/* ---------- Eyebrow / etiqueta editorial ---------- */
.tnl-eyebrow {
	font-family: var(--tnl-font-mono);
	font-size: var(--tnl-text-xs);
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--tnl-brass);
}

/* ---------- Botones ---------- */
.tnl-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--tnl-space-2);
	padding: 12px 24px;
	border-radius: var(--tnl-radius-sm);
	font-size: var(--tnl-text-sm);
	font-weight: 600;
	letter-spacing: 0.01em;
	border: 1px solid transparent;
	cursor: pointer;
	transition: transform var(--tnl-transition), box-shadow var(--tnl-transition), background var(--tnl-transition);
	text-decoration: none;
}
.tnl-btn:focus-visible {
	outline: 2px solid var(--tnl-brass);
	outline-offset: 2px;
}
.tnl-btn--primary {
	background: var(--tnl-ink);
	color: var(--tnl-paper);
}
.tnl-btn--primary:hover {
	transform: translateY(-1px);
	box-shadow: var(--tnl-shadow-md);
}
.tnl-btn--outline {
	background: transparent;
	border-color: var(--tnl-ink);
	color: var(--tnl-ink);
}
.tnl-btn--outline:hover {
	background: var(--tnl-ink);
	color: var(--tnl-paper);
}

/* ---------- Tarjeta de producto ---------- */
.tnl-card {
	background: var(--tnl-white);
	border: 1px solid var(--tnl-paper-dim);
	border-radius: var(--tnl-radius);
	overflow: hidden;
	transition: box-shadow var(--tnl-transition), transform var(--tnl-transition);
}
.tnl-card:hover {
	box-shadow: var(--tnl-shadow-lg);
	transform: translateY(-2px);
}
.tnl-card__media {
	aspect-ratio: 3 / 4; /* proporción de portada de libro */
	background: var(--tnl-paper);
	overflow: hidden;
}
.tnl-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.tnl-card__body {
	padding: var(--tnl-space-4);
}
.tnl-card__title {
	font-family: var(--tnl-font-display);
	font-size: var(--tnl-text-lg);
	line-height: 1.3;
	margin: var(--tnl-space-2) 0;
}

/* Elemento firma: la línea "foil" de latón bajo el precio */
.tnl-card__price-row {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	padding-top: var(--tnl-space-3);
	position: relative;
}
.tnl-card__price-row::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 1px;
	background: linear-gradient(90deg, transparent, var(--tnl-brass-light) 30%, var(--tnl-brass) 50%, var(--tnl-brass-light) 70%, transparent);
}
.tnl-card__price {
	font-family: var(--tnl-font-display);
	font-size: var(--tnl-text-xl);
	color: var(--tnl-brass);
}
.tnl-card__price-note {
	font-size: var(--tnl-text-xs);
	color: var(--tnl-text-dim);
}
.tnl-price-group {
	display: flex;
	align-items: baseline;
	gap: var(--tnl-space-2);
}
.tnl-card__price-regular {
	font-size: var(--tnl-text-sm);
	color: var(--tnl-text-dim);
	text-decoration: line-through;
	text-decoration-color: var(--tnl-wine);
}

/* ==================== Listón de descuento — 3 variantes ==================== */

.tnl-card {
	position: relative; /* ancla para el listón */
}

/* Variante 1: 'esquina' — banda diagonal clásica */
.tnl-ribbon--esquina {
	position: absolute;
	top: 14px;
	left: -34px;
	width: 130px;
	transform: rotate(-45deg);
	background: var(--tnl-wine);
	color: var(--tnl-white);
	text-align: center;
	font-size: var(--tnl-text-xs);
	font-weight: 700;
	letter-spacing: 0.04em;
	padding: 4px 0;
	box-shadow: var(--tnl-shadow-sm);
	z-index: 2;
}

/* Variante 2: 'pildora' — badge redondeado, esquina superior derecha */
.tnl-ribbon--pildora {
	position: absolute;
	top: var(--tnl-space-3);
	right: var(--tnl-space-3);
	background: var(--tnl-wine);
	color: var(--tnl-white);
	font-size: var(--tnl-text-xs);
	font-weight: 700;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	padding: 5px 12px;
	border-radius: 999px;
	z-index: 2;
}

/* Variante 3: 'sello' — estampa circular, tono latón/editorial (firma del sistema) */
.tnl-ribbon--sello {
	position: absolute;
	top: var(--tnl-space-3);
	right: var(--tnl-space-3);
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: var(--tnl-brass);
	color: var(--tnl-ink);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	line-height: 1.1;
	box-shadow: var(--tnl-shadow-md);
	z-index: 2;
	border: 2px solid var(--tnl-paper);
}
.tnl-ribbon--sello::before {
	content: '';
	position: absolute;
	inset: -4px;
	border-radius: 50%;
	border: 1px dashed rgba(20, 33, 61, 0.35);
}
.tnl-ribbon__pct {
	font-family: var(--tnl-font-display);
	font-size: var(--tnl-text-sm);
	font-weight: 700;
}
.tnl-ribbon__label {
	font-size: 10px;
	text-transform: uppercase;
	letter-spacing: 0.06em;
}

/* ---------- Foco visible consistente (accesibilidad) ---------- */
.tnl-scope a:focus-visible,
.tnl-scope summary:focus-visible,
.tnl-tabs__label:focus-visible,
.tnl-scope input:focus-visible,
.tnl-scope select:focus-visible,
.tnl-scope textarea:focus-visible {
	outline: 2px solid var(--tnl-brass);
	outline-offset: 2px;
	border-radius: 2px;
}

/* ---------- Badge (gratis / suscripción / agotado) ---------- */
.tnl-badge {
	display: inline-block;
	font-size: var(--tnl-text-xs);
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	padding: 3px 10px;
	border-radius: 999px;
}
.tnl-badge--brass {
	background: rgba(166, 130, 47, 0.12);
	color: var(--tnl-brass);
}
.tnl-badge--wine {
	background: rgba(110, 44, 54, 0.1);
	color: var(--tnl-wine);
}

/* ---------- Formularios (checkout, mi cuenta) ---------- */
.tnl-field {
	margin-bottom: var(--tnl-space-4);
}
.tnl-field label {
	display: block;
	font-size: var(--tnl-text-sm);
	color: var(--tnl-text-dim);
	margin-bottom: var(--tnl-space-2);
}
.tnl-field input,
.tnl-field select {
	width: 100%;
	padding: 11px 14px;
	font-size: var(--tnl-text-base);
	border: 1px solid var(--tnl-paper-dim);
	border-radius: var(--tnl-radius-sm);
	background: var(--tnl-white);
	transition: border-color var(--tnl-transition), box-shadow var(--tnl-transition);
}
.tnl-field input:focus,
.tnl-field select:focus {
	outline: none;
	border-color: var(--tnl-brass);
	box-shadow: 0 0 0 3px rgba(166, 130, 47, 0.15);
}

/* ---------- Accesibilidad: respeta reduced-motion ---------- */
@media (prefers-reduced-motion: reduce) {
	.tnl-scope * {
		transition: none !important;
	}
}

/* ==================== Mi cuenta ==================== */

.tnl-login,
.tnl-cuenta {
	max-width: 640px;
	margin: 0 auto;
	padding: var(--tnl-space-8) var(--tnl-space-4);
}
.tnl-login__title,
.tnl-cuenta__title {
	font-family: var(--tnl-font-display);
	font-size: var(--tnl-text-2xl);
	margin: var(--tnl-space-2) 0 var(--tnl-space-6);
}
.tnl-login__intro {
	color: var(--tnl-text-dim);
	font-size: var(--tnl-text-sm);
	margin: 0 0 var(--tnl-space-6);
}
.tnl-login form p {
	margin-bottom: var(--tnl-space-4);
}
.tnl-login form label {
	display: block;
	font-size: var(--tnl-text-sm);
	color: var(--tnl-text-dim);
	margin-bottom: var(--tnl-space-2);
}
.tnl-login input[type="text"],
.tnl-login input[type="password"] {
	width: 100%;
	padding: 11px 14px;
	border: 1px solid var(--tnl-paper-dim);
	border-radius: var(--tnl-radius-sm);
}
.tnl-login input[type="submit"] {
	background: var(--tnl-ink);
	color: var(--tnl-paper);
	border: none;
	padding: 12px 24px;
	border-radius: var(--tnl-radius-sm);
	font-weight: 600;
	cursor: pointer;
}

/* Tabs sin JS: radio oculto + label como pestaña */
.tnl-tabs__input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}
.tnl-tabs__nav {
	display: flex;
	gap: var(--tnl-space-6);
	border-bottom: 1px solid var(--tnl-paper-dim);
	margin-bottom: var(--tnl-space-6);
}
.tnl-tabs__label {
	padding: var(--tnl-space-2) 0 var(--tnl-space-3);
	font-size: var(--tnl-text-sm);
	font-weight: 600;
	color: var(--tnl-text-dim);
	cursor: pointer;
	border-bottom: 2px solid transparent;
	transition: color var(--tnl-transition), border-color var(--tnl-transition);
}
.tnl-tabs__panel {
	display: none;
}
#tnl-tab-compras:checked ~ .tnl-tabs__panel--compras,
#tnl-tab-suscripcion:checked ~ .tnl-tabs__panel--suscripcion,
#tnl-tab-cuenta:checked ~ .tnl-tabs__panel--cuenta {
	display: block;
}
#tnl-tab-compras:checked ~ .tnl-tabs__nav label[for="tnl-tab-compras"],
#tnl-tab-suscripcion:checked ~ .tnl-tabs__nav label[for="tnl-tab-suscripcion"],
#tnl-tab-cuenta:checked ~ .tnl-tabs__nav label[for="tnl-tab-cuenta"] {
	color: var(--tnl-ink);
	border-color: var(--tnl-brass);
}

.tnl-empty {
	color: var(--tnl-text-dim);
	font-size: var(--tnl-text-sm);
	padding: var(--tnl-space-6) 0;
}

.tnl-order-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--tnl-space-4);
	padding: var(--tnl-space-4) 0;
	border-bottom: 1px solid var(--tnl-paper-dim);
}
.tnl-order-row__info {
	display: flex;
	flex-direction: column;
	gap: 2px;
}
.tnl-order-row__title {
	font-family: var(--tnl-font-display);
	font-size: var(--tnl-text-base);
}
.tnl-order-row__date {
	font-size: var(--tnl-text-xs);
	color: var(--tnl-text-dim);
}

.tnl-sub-card {
	background: var(--tnl-paper);
	border: 1px solid var(--tnl-paper-dim);
	border-radius: var(--tnl-radius);
	padding: var(--tnl-space-6);
}
.tnl-sub-card__plan {
	font-family: var(--tnl-font-display);
	font-size: var(--tnl-text-xl);
	margin: var(--tnl-space-2) 0 var(--tnl-space-1);
}
.tnl-sub-card__vigencia {
	color: var(--tnl-text-dim);
	font-size: var(--tnl-text-sm);
	margin: 0 0 var(--tnl-space-2);
}
.tnl-sub-card__nota {
	font-size: var(--tnl-text-xs);
	color: var(--tnl-text-dim);
}

@media (max-width: 480px) {
	.tnl-order-row {
		flex-direction: column;
		align-items: flex-start;
	}
}

.tnl-order-row__acciones {
	display: flex;
	align-items: center;
	gap: var(--tnl-space-2);
	flex-wrap: wrap;
}

.tnl-aviso {
	padding: var(--tnl-space-3) var(--tnl-space-4);
	border-radius: var(--tnl-radius-sm);
	font-size: var(--tnl-text-sm);
	margin-bottom: var(--tnl-space-4);
}
.tnl-aviso--ok {
	background: rgba(166, 130, 47, 0.12);
	color: var(--tnl-brass);
}
.tnl-aviso--error {
	background: rgba(110, 44, 54, 0.1);
	color: var(--tnl-wine);
}

.tnl-reembolso {
	position: relative;
}
.tnl-reembolso__abrir {
	list-style: none;
	cursor: pointer;
}
.tnl-reembolso__abrir::-webkit-details-marker {
	display: none;
}
.tnl-reembolso__form {
	position: absolute;
	right: 0;
	top: calc(100% + 8px);
	z-index: 5;
	width: 260px;
	background: var(--tnl-white);
	border: 1px solid var(--tnl-paper-dim);
	border-radius: var(--tnl-radius);
	box-shadow: var(--tnl-shadow-lg);
	padding: var(--tnl-space-4);
	display: flex;
	flex-direction: column;
	gap: var(--tnl-space-2);
}
.tnl-reembolso__form label {
	font-size: var(--tnl-text-xs);
	color: var(--tnl-text-dim);
}
.tnl-reembolso__form textarea {
	width: 100%;
	padding: 8px 10px;
	border: 1px solid var(--tnl-paper-dim);
	border-radius: var(--tnl-radius-sm);
	font-family: inherit;
	font-size: var(--tnl-text-sm);
	resize: vertical;
}

@media (max-width: 480px) {
	.tnl-reembolso__form {
		position: fixed;
		left: var(--tnl-space-4);
		right: var(--tnl-space-4);
		width: auto;
	}
}

/* ==================== Galería ==================== */

.tnl-galeria {
	max-width: 1200px;
	margin: 0 auto;
	padding: var(--tnl-space-6) var(--tnl-space-4);
}

.tnl-filtros {
	display: flex;
	flex-wrap: wrap;
	gap: var(--tnl-space-3);
	align-items: center;
	padding-bottom: var(--tnl-space-6);
	margin-bottom: var(--tnl-space-6);
	border-bottom: 1px solid var(--tnl-paper-dim);
}
.tnl-filtros__buscar {
	flex: 1 1 220px;
}
.tnl-filtros__buscar input,
.tnl-filtros__precio input,
.tnl-filtros__orden select {
	padding: 10px 14px;
	border: 1px solid var(--tnl-paper-dim);
	border-radius: var(--tnl-radius-sm);
	font-size: var(--tnl-text-sm);
	background: var(--tnl-white);
}
.tnl-filtros__buscar input {
	width: 100%;
}
.tnl-filtros__precio {
	display: flex;
	align-items: center;
	gap: var(--tnl-space-2);
}
.tnl-filtros__precio input {
	width: 90px;
}
.tnl-filtros__separador {
	color: var(--tnl-text-dim);
}

.tnl-grid {
	display: grid;
	grid-template-columns: repeat(var(--tnl-grid-cols, 3), 1fr);
	gap: var(--tnl-space-6);
}
.tnl-card__media-placeholder {
	width: 100%;
	height: 100%;
	background: linear-gradient(135deg, var(--tnl-paper) 0%, var(--tnl-paper-dim) 100%);
}
.tnl-card__link {
	text-decoration: none;
	color: inherit;
}

@media (max-width: 900px) {
	.tnl-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}
@media (max-width: 560px) {
	.tnl-grid {
		grid-template-columns: 1fr;
	}
	.tnl-filtros {
		flex-direction: column;
		align-items: stretch;
	}
}

/* ==================== Checkout ==================== */

.tnl-checkout {
	max-width: 480px;
	margin: 0 auto;
	padding: var(--tnl-space-8) var(--tnl-space-4);
}
.tnl-checkout__title {
	font-family: var(--tnl-font-display);
	font-size: var(--tnl-text-2xl);
	margin: var(--tnl-space-2) 0 var(--tnl-space-6);
}
.tnl-checkout__gratis-aviso {
	background: var(--tnl-paper);
	border: 1px solid var(--tnl-paper-dim);
	border-radius: var(--tnl-radius);
	padding: var(--tnl-space-4);
	margin-bottom: var(--tnl-space-6);
}
.tnl-checkout__gratis-aviso p {
	margin: 0 0 var(--tnl-space-3);
	font-size: var(--tnl-text-sm);
	color: var(--tnl-text-dim);
}
.tnl-checkout__precio-fijo {
	font-family: var(--tnl-font-display);
	font-size: var(--tnl-text-xl);
	color: var(--tnl-brass);
}
.tnl-checkout__metodos {
	display: flex;
	gap: var(--tnl-space-4);
}
.tnl-checkout__metodo {
	display: flex;
	align-items: center;
	gap: var(--tnl-space-2);
	font-size: var(--tnl-text-sm);
	cursor: pointer;
}
.tnl-checkout__submit {
	width: 100%;
	margin-top: var(--tnl-space-2);
}

.tnl-trust {
	margin-top: var(--tnl-space-8);
	display: flex;
	flex-direction: column;
	gap: var(--tnl-space-3);
}
.tnl-trust__card {
	display: flex;
	gap: var(--tnl-space-3);
	align-items: flex-start;
	background: var(--tnl-paper);
	border: 1px solid var(--tnl-paper-dim);
	border-radius: var(--tnl-radius);
	padding: var(--tnl-space-4);
}
.tnl-trust__icon {
	flex: none;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(166, 130, 47, 0.12);
	color: var(--tnl-brass);
}
.tnl-trust__card--alerta {
	background: rgba(110, 44, 54, 0.05);
	border-color: rgba(110, 44, 54, 0.2);
}
.tnl-trust__icon--alerta {
	background: rgba(110, 44, 54, 0.12);
	color: var(--tnl-wine);
}
.tnl-trust__texto h4 {
	font-family: var(--tnl-font-display);
	font-size: var(--tnl-text-base);
	margin: 0 0 4px;
}
.tnl-trust__texto p {
	font-size: var(--tnl-text-sm);
	color: var(--tnl-text-dim);
	margin: 0;
	line-height: 1.5;
}

/* ==================== Ajustes de cuenta ==================== */

.tnl-cuenta-ajustes {
	display: flex;
	flex-direction: column;
	gap: var(--tnl-space-8);
	max-width: 420px;
}
.tnl-cuenta-ajustes__bloque h3 {
	font-family: var(--tnl-font-display);
	font-size: var(--tnl-text-lg);
	margin: 0 0 var(--tnl-space-4);
}
.tnl-cuenta-ajustes__bloque--peligro {
	padding: var(--tnl-space-4);
	border: 1px solid rgba(110, 44, 54, 0.25);
	border-radius: var(--tnl-radius);
	background: rgba(110, 44, 54, 0.04);
}
.tnl-cuenta-ajustes__aviso {
	font-size: var(--tnl-text-sm);
	color: var(--tnl-wine);
	line-height: 1.6;
	margin-bottom: var(--tnl-space-4);
}
.tnl-cuenta-ajustes__checkbox {
	display: flex;
	align-items: flex-start;
	gap: var(--tnl-space-2);
	font-size: var(--tnl-text-sm);
	color: var(--tnl-text-dim);
	margin: var(--tnl-space-2) 0 var(--tnl-space-4);
	cursor: pointer;
}
.tnl-btn--peligro {
	background: var(--tnl-wine);
	color: var(--tnl-white);
}
.tnl-btn--peligro:hover {
	transform: translateY(-1px);
	box-shadow: var(--tnl-shadow-md);
}

/* ==================== Ficha de producto (single) ==================== */

.tnl-single {
	max-width: 1100px;
	margin: 0 auto;
	padding: var(--tnl-space-8) var(--tnl-space-4);
}

.tnl-single__media {
	position: relative;
	border-radius: var(--tnl-radius);
	overflow: hidden;
	background: var(--tnl-paper);
	box-shadow: var(--tnl-shadow-md);
}
.tnl-single__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.tnl-single__title {
	font-family: var(--tnl-font-display);
	font-size: var(--tnl-text-2xl);
	line-height: 1.2;
	margin: var(--tnl-space-3) 0;
}
.tnl-single__precio {
	margin: var(--tnl-space-4) 0;
}
.tnl-single__descripcion {
	color: var(--tnl-text);
	line-height: 1.7;
	margin-bottom: var(--tnl-space-6);
}
.tnl-single__comprar {
	display: inline-flex;
}

/* Variante 'editorial': dos columnas, portada a la izquierda */
.tnl-single--editorial .tnl-single__layout {
	display: grid;
	grid-template-columns: 0.9fr 1.1fr;
	gap: var(--tnl-space-8);
	align-items: start;
}
.tnl-single--editorial .tnl-single__media {
	aspect-ratio: 3 / 4;
	position: sticky;
	top: var(--tnl-space-6);
}

/* Variante 'portada-grande': portada ancha arriba, contenido centrado debajo */
.tnl-single--portada-grande .tnl-single__layout {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
}
.tnl-single--portada-grande .tnl-single__media {
	width: 100%;
	max-width: 480px;
	aspect-ratio: 3 / 4;
	margin-bottom: var(--tnl-space-6);
}
.tnl-single--portada-grande .tnl-single__info {
	max-width: 640px;
}
.tnl-single--portada-grande .tnl-single__precio,
.tnl-single--portada-grande .tnl-card__price-row {
	justify-content: center;
}
.tnl-single--portada-grande .tnl-single__descripcion {
	text-align: left;
}

/* Variante 'minimalista': una columna compacta, portada pequeña junto al título */
.tnl-single--minimalista .tnl-single__layout {
	display: flex;
	gap: var(--tnl-space-4);
	align-items: flex-start;
}
.tnl-single--minimalista .tnl-single__media {
	width: 140px;
	flex: none;
	aspect-ratio: 3 / 4;
	box-shadow: var(--tnl-shadow-sm);
}
.tnl-single--minimalista .tnl-single__title {
	font-size: var(--tnl-text-xl);
	margin-top: 0;
}

@media (max-width: 780px) {
	.tnl-single--editorial .tnl-single__layout {
		grid-template-columns: 1fr;
	}
	.tnl-single--editorial .tnl-single__media {
		position: static;
		max-width: 320px;
		margin: 0 auto var(--tnl-space-6);
	}
	.tnl-single--minimalista .tnl-single__layout {
		flex-direction: column;
		align-items: center;
		text-align: center;
	}
	.tnl-single--minimalista .tnl-single__media {
		width: 160px;
	}
}

/* ==================== Relacionados ==================== */

.tnl-relacionados {
	margin-top: var(--tnl-space-8);
	padding-top: var(--tnl-space-8);
	border-top: 1px solid var(--tnl-paper-dim);
}
.tnl-relacionados__titulo {
	font-family: var(--tnl-font-display);
	font-size: var(--tnl-text-xl);
	margin-bottom: var(--tnl-space-6);
}
