/*
Theme Name: CursosHub Premium
Theme URI: https://cursoshub.digital/
Author: CursosHub
Author URI: https://cursoshub.digital/
Description: Tema de bloques (Full Site Editing) oscuro y premium para la academia CursosHub. Portada editable con bloques nativos, encabezado y pie de página como partes de plantilla, y estilos de compatibilidad para Tutor LMS Pro. El tema solo aporta el diseño: cursos, lecciones, membresías y accesos siguen a cargo de Tutor LMS.
Requires at least: 6.6
Requires PHP: 7.4
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: cursoshub-premium
Tags: full-site-editing, block-patterns, block-styles, dark, education, one-column, wide-blocks, custom-colors, editor-style
*/

/* ==========================================================================
   1. Tokens
   ========================================================================== */
:root {
	--ch-bg: var(--wp--preset--color--base, #0B0D12);
	--ch-bg-2: var(--wp--preset--color--base-2, #11141B);
	--ch-card: var(--wp--preset--color--surface, #181B23);
	--ch-line: var(--wp--preset--color--border, #30343F);
	--ch-gold: var(--wp--preset--color--gold, #D9B65A);
	--ch-gold-2: var(--wp--preset--color--gold-light, #F0CE78);
	--ch-text: var(--wp--preset--color--contrast, #FFFFFF);
	--ch-muted: var(--wp--preset--color--muted, #B5B8C5);
	--ch-ink: var(--wp--preset--color--ink, #08090D);
	--ch-gold-grad: linear-gradient(180deg, var(--ch-gold-2) 0%, var(--ch-gold) 100%);
	--ch-display: var(--wp--preset--font-family--manrope, Manrope, sans-serif);
	--ch-body: var(--wp--preset--font-family--inter, Inter, sans-serif);
	--ch-pad: var(--wp--style--root--padding-left, clamp(20px, 4.5vw, 64px));
	--ch-sec: clamp(72px, 8.5vw, 128px);
	--ch-header-h: 76px;
	--ch-ease: cubic-bezier(.2, .7, .2, 1);

	/* Iconos (máscaras, toman el color con background-color) */
	--ch-m-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.5 12.5l4.5 4.5L19.5 7'/%3E%3C/svg%3E");
	--ch-m-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");
	--ch-m-crown: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 8l4.5 4L12 5l4.5 7L21 8l-2 11H5L3 8z'/%3E%3C/svg%3E");
	--ch-m-lock: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='11' width='14' height='10' rx='2'/%3E%3Cpath d='M8 11V8a4 4 0 0 1 8 0v3'/%3E%3C/svg%3E");
	--ch-m-info: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 11v5M12 8h.01'/%3E%3C/svg%3E");

	/* Iconos a color (imagen de fondo) */
	--ch-i-layers: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23F0CE78' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l9 5-9 5-9-5 9-5z'/%3E%3Cpath d='M3 13l9 5 9-5'/%3E%3C/svg%3E");
	--ch-i-sparkle: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23F0CE78' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3v4M12 17v4M3 12h4M17 12h4M6 6l2.5 2.5M15.5 15.5L18 18M6 18l2.5-2.5M15.5 8.5L18 6'/%3E%3C/svg%3E");
	--ch-i-crown: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23F0CE78' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 8l4.5 4L12 5l4.5 7L21 8l-2 11H5L3 8z'/%3E%3C/svg%3E");
	--ch-i-clock: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23F0CE78' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E");
	--ch-i-devices: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23F0CE78' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='5' width='14' height='10' rx='1.5'/%3E%3Cpath d='M6 19h6'/%3E%3Crect x='17' y='9' width='5' height='10' rx='1.2'/%3E%3C/svg%3E");
	--ch-i-chart: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23F0CE78' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 19V5M4 19h16M8 15l4-4 3 3 5-6'/%3E%3C/svg%3E");
	--ch-i-plus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23D9B65A' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E");
	--ch-i-minus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23D9B65A' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M5 12h14'/%3E%3C/svg%3E");
	--ch-i-check-gold: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23F0CE78' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.5 12.5l4.5 4.5L19.5 7'/%3E%3C/svg%3E");
	--ch-i-play-dark: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 4.5v15l12.5-7.5z' fill='%230B0D12'/%3E%3C/svg%3E");
	--ch-i-play-ring: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 76 76'%3E%3Ccircle cx='38' cy='38' r='37' fill='%230B0D12' fill-opacity='.6' stroke='%23F0CE78' stroke-opacity='.6'/%3E%3Cpath d='M32 26v24l19-12z' fill='%23F0CE78'/%3E%3C/svg%3E");
	--ch-i-play-white: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 4.5v15l12.5-7.5z' fill='%23fff'/%3E%3C/svg%3E");
	--ch-i-controls: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 56 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 9v6h4l5 4V5L8 9H4zM16.5 8.5a5 5 0 0 1 0 7'/%3E%3Cpath transform='translate(32 0)' d='M4 9V4h5M20 9V4h-5M4 15v5h5M20 15v5h-5'/%3E%3C/svg%3E");
}

@media (max-width: 781px) {
	:root { --ch-header-h: 64px; }
}

/* ==========================================================================
   2. Base
   ========================================================================== */
html {
	background-color: var(--ch-bg);
	scroll-behavior: smooth;
	scroll-padding-top: calc(var(--ch-header-h) + 16px);
}

body {
	overflow-x: clip;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}

::selection { background: var(--ch-gold); color: var(--ch-bg); }

img, video { max-width: 100%; height: auto; }

mark.has-inline-color { background-color: transparent; padding: 0; }

:where(a, button, summary, input, select, textarea):focus-visible {
	outline: 2px solid var(--ch-gold-2);
	outline-offset: 3px;
	border-radius: 6px;
}

body .wp-site-blocks {
	min-height: 100vh;
	min-height: 100dvh;
	display: flex;
	flex-direction: column;
}

body .wp-site-blocks > * { margin-block: 0; }
body .wp-site-blocks > main { flex: 1 0 auto; }

:where(h1, h2, h3, h4) { text-wrap: balance; }
:where(p, li) { text-wrap: pretty; }

/* Formularios genéricos (búsqueda, comentarios, login de WordPress, Tutor LMS) */
:where(input[type="text"], input[type="email"], input[type="password"], input[type="search"], input[type="url"], input[type="tel"], input[type="number"], textarea, select) {
	background-color: var(--ch-bg-2);
	color: var(--ch-text);
	border: 1px solid var(--ch-line);
	border-radius: 12px;
	padding: 12px 14px;
	font: inherit;
}

:where(input, textarea)::placeholder { color: #8A8E9C; }

/* ==========================================================================
   3. Encabezado y navegación
   ========================================================================== */
.wp-site-blocks > header.wp-block-template-part {
	position: sticky;
	top: 0;
	z-index: 100;
}

body.admin-bar .wp-site-blocks > header.wp-block-template-part {
	top: var(--wp-admin--admin-bar--height, 32px);
}

@media (max-width: 600px) {
	body.admin-bar .wp-site-blocks > header.wp-block-template-part { top: 0; }
}

body .ch-header {
	position: relative;
	min-height: var(--ch-header-h);
	gap: 24px;
	padding: 0 clamp(20px, 3.4vw, 56px);
	border-bottom: 1px solid rgba(255, 255, 255, .07);
}

/* El desenfoque va en un pseudo-elemento para no atrapar el menú móvil (position: fixed). */
.ch-header::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: rgba(11, 13, 18, .62);
	-webkit-backdrop-filter: blur(14px) saturate(1.2);
	backdrop-filter: blur(14px) saturate(1.2);
	transition: background-color .3s var(--ch-ease);
}

.is-scrolled .ch-header::before { background: rgba(11, 13, 18, .9); }

body .ch-logo {
	flex: none;
	margin: 0;
	font: 800 20px/1 var(--ch-display);
	letter-spacing: -.02em;
}

.ch-logo a {
	display: inline-block;
	color: var(--ch-text);
	text-decoration: none;
	white-space: nowrap;
}

.ch-logo a:hover { color: var(--ch-text); }

.ch-logo a::before {
	content: "CH";
	content: "CH" / "";
	display: inline-grid;
	place-items: center;
	width: 38px;
	height: 38px;
	margin-right: 12px;
	vertical-align: middle;
	border-radius: 11px;
	background: linear-gradient(145deg, var(--ch-gold-2), #C9A24A);
	color: var(--ch-bg);
	font: 800 15px/1 var(--ch-display);
	letter-spacing: -.04em;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .45);
}

body .ch-nav,
body .ch-nav .wp-block-navigation__container { gap: 32px; }

.ch-nav { font: 500 15px/1 var(--ch-body); }

.ch-nav .wp-block-navigation-item__content {
	color: var(--ch-muted);
	text-decoration: none;
	transition: color .2s ease;
}

.ch-nav .wp-block-navigation-item__content:hover,
.ch-nav .current-menu-item > .wp-block-navigation-item__content,
.ch-nav .wp-block-navigation-item__content[aria-current="page"] {
	color: var(--ch-text);
}

.ch-nav .ch-nav-cta { display: none; }

.ch-nav .wp-block-navigation__responsive-container-open,
.ch-nav .wp-block-navigation__responsive-container-close {
	width: 44px;
	height: 44px;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--ch-line);
	border-radius: 12px;
	background: rgba(255, 255, 255, .03);
	color: var(--ch-text);
}

/* Menú móvil abierto */
body .ch-nav .wp-block-navigation__responsive-container.is-menu-open {
	padding: 0;
	background:
		radial-gradient(ellipse 90% 40% at 50% 100%, rgba(217, 182, 90, .16), rgba(217, 182, 90, 0)),
		var(--ch-bg);
	color: var(--ch-text);
}

.ch-nav .is-menu-open .wp-block-navigation__responsive-container-close {
	display: flex;
	top: 10px;
	right: var(--ch-pad);
}

body .ch-nav .is-menu-open .wp-block-navigation__responsive-container-content {
	padding: 84px var(--ch-pad) 32px;
	align-items: stretch;
	gap: 0;
}

body .ch-nav .is-menu-open .wp-block-navigation__container {
	flex-direction: column;
	align-items: stretch;
	gap: 0;
	width: 100%;
}

.ch-nav .is-menu-open .wp-block-navigation-item { width: 100%; }

body .ch-nav .is-menu-open .wp-block-navigation-item__content {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	padding: 20px 0;
	border-bottom: 1px solid #1F232C;
	font: 700 24px/1.1 var(--ch-display);
	color: var(--ch-text);
}

.ch-nav .is-menu-open .wp-block-navigation-item__content::after {
	content: "";
	width: 20px;
	height: 20px;
	background-color: var(--ch-gold);
	-webkit-mask: var(--ch-m-arrow) center / contain no-repeat;
	mask: var(--ch-m-arrow) center / contain no-repeat;
}

.ch-nav .is-menu-open .ch-nav-cta { display: block; }

body .ch-nav .is-menu-open .ch-nav-cta .wp-block-navigation-item__content {
	justify-content: center;
	min-height: 54px;
	margin-top: 12px;
	padding: 0 24px;
	border: 1px solid rgba(255, 255, 255, .22);
	border-radius: 999px;
	font-size: 16px;
}

body .ch-nav .is-menu-open .ch-nav-cta--primary .wp-block-navigation-item__content {
	margin-top: 32px;
	border-color: transparent;
	background: var(--ch-gold-grad);
	color: var(--ch-bg);
	font-weight: 800;
}

.ch-nav .is-menu-open .ch-nav-cta .wp-block-navigation-item__content::after { display: none; }

body .ch-header__actions {
	flex: none;
	gap: 20px;
}

/* Entre 600 y 1099 px el menú pasa a hamburguesa (WordPress solo lo hace por debajo de 600 px). */
@media (min-width: 600px) and (max-width: 1099px) {
	body .ch-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	body .ch-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
}

@media (max-width: 1099px) {
	.ch-header .ch-nav { order: 3; }
	.ch-header .ch-header__actions { order: 2; margin-left: auto; }
	.ch-header__actions .ch-btn-text { display: none; }
}

@media (max-width: 599px) {
	.ch-header .ch-header__actions { display: none; }
}

/* ==========================================================================
   4. Botones
   ========================================================================== */
body .wp-block-button__link {
	box-sizing: border-box;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 52px;
	text-decoration: none;
	transition: transform .2s var(--ch-ease), box-shadow .2s ease, background-color .2s ease, border-color .2s ease, color .2s ease;
}

body .wp-block-button:not(.is-style-outline) .wp-block-button__link {
	background: var(--ch-gold-grad);
	color: var(--ch-bg);
	box-shadow: 0 10px 30px rgba(217, 182, 90, .24), inset 0 1px 0 rgba(255, 255, 255, .45);
}

body .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover,
body .wp-block-button:not(.is-style-outline) .wp-block-button__link:focus-visible {
	color: var(--ch-bg);
	transform: translateY(-2px);
	box-shadow: 0 16px 40px rgba(217, 182, 90, .38), inset 0 1px 0 rgba(255, 255, 255, .45);
}

body .wp-block-button.is-style-outline .wp-block-button__link {
	border: 1px solid rgba(255, 255, 255, .22);
	background: rgba(11, 13, 18, .5);
	color: var(--ch-text);
	font-weight: 700;
}

body .wp-block-button.is-style-outline .wp-block-button__link:hover {
	border-color: var(--ch-gold);
	background: rgba(217, 182, 90, .08);
	color: var(--ch-text);
}

.ch-btn-arrow .wp-block-button__link::after {
	content: "";
	flex: none;
	width: 18px;
	height: 18px;
	background-color: currentColor;
	-webkit-mask: var(--ch-m-arrow) center / contain no-repeat;
	mask: var(--ch-m-arrow) center / contain no-repeat;
}

body .wp-block-button.ch-btn-sm .wp-block-button__link {
	white-space: nowrap;
	min-height: 44px;
	padding: 0 22px;
	font-size: 14px;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .45);
}

body .wp-block-button.ch-btn-text .wp-block-button__link,
body .wp-block-button.ch-btn-link .wp-block-button__link {
	white-space: nowrap;
	min-height: 44px;
	padding: 0 2px;
	background: none;
	box-shadow: none;
	transform: none;
}

body .wp-block-button.ch-btn-text .wp-block-button__link {
	color: var(--ch-text);
	font: 500 15px/1 var(--ch-body);
}

body .wp-block-button.ch-btn-link .wp-block-button__link {
	color: var(--ch-gold-2);
	font: 700 15px/1 var(--ch-display);
}

body .wp-block-button.ch-btn-text .wp-block-button__link:hover,
body .wp-block-button.ch-btn-link .wp-block-button__link:hover {
	background: none;
	box-shadow: none;
	transform: none;
	color: var(--ch-text);
}

body .wp-block-button.ch-btn-text .wp-block-button__link:hover { color: var(--ch-gold-2); }

/* ==========================================================================
   5. Utilidades de sección
   ========================================================================== */
body .ch-section {
	position: relative;
	padding-top: var(--ch-sec);
	padding-bottom: var(--ch-sec);
	background-color: var(--ch-bg);
}

body .ch-section.ch-bg-alt {
	background-color: var(--ch-bg-2);
	border-top: 1px solid #1C1F27;
}

body .ch-section.ch-pt-0 { padding-top: 0; border-top: 0; }

/* Las secciones de la portada van pegadas: sin el espacio de bloque por defecto. */
body .ch-main--front > * { margin-block: 0; }

body .ch-section > .ch-head + * { margin-block-start: clamp(32px, 3.6vw, 56px); }

body .ch-head {
	display: flex;
	flex-direction: column;
	gap: 18px;
}

body .ch-head > * { margin: 0; max-width: 640px; }

body .ch-head--center { align-items: center; text-align: center; }
body .ch-head--center > * { max-width: 760px; }

body .ch-head--row {
	flex-direction: row;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px;
}

body .ch-head__text { display: flex; flex-direction: column; gap: 18px; }
body .ch-head__text > * { margin: 0; }

body .ch-eyebrow {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0;
	font: 600 12.5px/1 var(--ch-body);
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--ch-gold);
}

.ch-eyebrow::before,
.ch-head--center .ch-eyebrow::after {
	content: "";
	flex: none;
	width: 28px;
	height: 1px;
	background-color: currentColor;
}

.ch-head--center .ch-eyebrow { justify-content: center; }

.ch-eyebrow--crown::before {
	width: 18px;
	height: 18px;
	-webkit-mask: var(--ch-m-crown) center / contain no-repeat;
	mask: var(--ch-m-crown) center / contain no-repeat;
}

body .ch-lead {
	color: var(--ch-muted);
	font-size: var(--wp--preset--font-size--medium);
	line-height: 1.65;
}

body .ch-link { flex: none; margin: 0; font: 700 15px/1 var(--ch-display); }

.ch-link a {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	min-height: 44px;
	color: var(--ch-gold-2);
	text-decoration: none;
	white-space: nowrap;
}

.ch-link a:hover { color: var(--ch-text); }

.ch-link a::after {
	content: "";
	flex: none;
	width: 18px;
	height: 18px;
	background-color: currentColor;
	-webkit-mask: var(--ch-m-arrow) center / contain no-repeat;
	mask: var(--ch-m-arrow) center / contain no-repeat;
}

body .ch-checks {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 12px 28px;
	margin: 0;
	padding: 0;
	list-style: none;
	font: 500 14px/1.3 var(--ch-body);
	color: var(--ch-muted);
}

body .ch-checks li {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0;
}

.ch-checks li::before {
	content: "";
	flex: none;
	width: 16px;
	height: 16px;
	background-color: var(--ch-gold);
	-webkit-mask: var(--ch-m-check) center / contain no-repeat;
	mask: var(--ch-m-check) center / contain no-repeat;
}

body .ch-checks--stack {
	flex-direction: column;
	align-items: flex-start;
	gap: 14px;
	font-size: 16px;
	color: var(--ch-text);
}

body .ch-checks--stack li { gap: 12px; }
.ch-checks--stack li::before { width: 18px; height: 18px; }

body .ch-tag {
	display: inline-flex;
	align-items: center;
	align-self: flex-start;
	margin: 0;
	padding: 6px 11px;
	border: 1px solid rgba(217, 182, 90, .5);
	border-radius: 999px;
	background: rgba(11, 13, 18, .7);
	font: 700 11.5px/1 var(--ch-body);
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--ch-gold-2);
	white-space: nowrap;
}

body .ch-tag--solid {
	border-color: var(--ch-gold);
	background: var(--ch-gold);
	color: var(--ch-bg);
}

body .ch-demo {
	margin: 0;
	padding: 6px 10px;
	border: 1px solid rgba(255, 255, 255, .14);
	border-radius: 999px;
	background: rgba(11, 13, 18, .72);
	font: 600 11px/1 var(--ch-body);
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--ch-text);
}

/* ==========================================================================
   6. Hero con mosaico
   ========================================================================== */
body .ch-hero {
	position: relative;
	overflow: hidden;
	margin-top: calc(-1 * var(--ch-header-h));
	padding: 0;
	background-color: var(--ch-bg);
}

body .ch-hero > * { margin: 0; }

body .ch-wall {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: clamp(400px, 44vw, 640px);
	overflow: hidden;
	pointer-events: none;
	z-index: 0;
}

body .ch-wall__track {
	position: absolute;
	left: 50%;
	top: 46%;
	width: max-content;
	display: flex;
	flex-direction: column;
	gap: 16px;
	transform: translate(-50%, -50%) perspective(1800px) rotateX(22deg) rotateZ(-8deg) scale(1.2);
}

body .ch-wall__row { display: flex; gap: 16px; }
body .ch-wall__track > *, body .ch-wall__row > * { margin: 0; }
body .ch-wall__row--1 { margin-left: -60px; }
body .ch-wall__row--2 { margin-left: -200px; }
body .ch-wall__row--3 { margin-left: -110px; }

body .ch-poster {
	flex: none;
	width: clamp(118px, 12.6vw, 200px);
	border: 1px solid rgba(255, 255, 255, .08);
	border-radius: 14px;
	overflow: hidden;
	box-shadow: 0 18px 40px rgba(0, 0, 0, .45);
}

.ch-poster img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 3 / 4;
	object-fit: cover;
}

.ch-wall::after {
	content: "";
	position: absolute;
	inset: 0;
	background:
		radial-gradient(ellipse 58% 46% at 50% 82%, rgba(11, 13, 18, .88), rgba(11, 13, 18, 0) 72%),
		linear-gradient(180deg, rgba(11, 13, 18, .7) 0%, rgba(11, 13, 18, .2) 26%, rgba(11, 13, 18, .55) 58%, var(--ch-bg) 94%),
		linear-gradient(90deg, var(--ch-bg) 0%, rgba(11, 13, 18, 0) 20%, rgba(11, 13, 18, 0) 80%, var(--ch-bg) 100%);
}

body .ch-hero__content {
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 26px;
	padding: calc(var(--ch-header-h) + clamp(250px, 26vw, 380px)) var(--ch-pad) clamp(56px, 6vw, 96px);
	text-align: center;
}

body .ch-hero__content > * { margin: 0; }

body .ch-pill {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 8px 16px 8px 12px;
	border: 1px solid rgba(217, 182, 90, .35);
	border-radius: 999px;
	background: rgba(11, 13, 18, .6);
	font: 600 13px/1.2 var(--ch-body);
	color: var(--ch-gold-2);
}

.ch-pill::before {
	content: "";
	flex: none;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--ch-gold);
	box-shadow: 0 0 0 4px rgba(217, 182, 90, .18);
}

body .ch-hero__title {
	max-width: 1080px;
	line-height: 1;
	letter-spacing: -.04em;
}

body .ch-hero .ch-lead { max-width: 660px; }
body .ch-hero__buttons { gap: 14px; margin-top: 6px; }

body .ch-hero__areas {
	position: relative;
	z-index: 2;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 22px var(--ch-pad);
	border-top: 1px solid rgba(255, 255, 255, .07);
	background: #0E1016;
}

body .ch-hero__areas > * { margin: 0; }

body .ch-hero__areas-label {
	margin-right: 8px;
	font: 600 12px/1 var(--ch-body);
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--ch-muted);
}

body .ch-chips { gap: 10px; justify-content: center; }

body .ch-chips .wp-block-button.ch-chip .wp-block-button__link {
	min-height: 0;
	padding: 10px 16px;
	border: 1px solid var(--ch-line);
	background: var(--ch-bg-2);
	box-shadow: none;
	color: var(--ch-text);
	font: 500 14px/1 var(--ch-body);
}

body .ch-chips .wp-block-button.ch-chip .wp-block-button__link:hover {
	transform: none;
	box-shadow: none;
	border-color: var(--ch-gold);
	color: var(--ch-gold-2);
}

/* ==========================================================================
   7. Presentación multimedia
   ========================================================================== */
body .ch-split {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: clamp(40px, 5vw, 80px);
}

body .ch-split > * { margin: 0; }

body .ch-split__text {
	flex: 1 1 340px;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 22px;
}

body .ch-split__text > * { margin: 0; }
body .ch-split__media { flex: 1.8 1 520px; min-width: 0; }

body .ch-numbered {
	display: flex;
	flex-direction: column;
	gap: 14px;
	margin: 0;
	padding: 6px 0 0;
	list-style: none;
	counter-reset: ch-num;
	font: 500 16px/1.4 var(--ch-body);
}

body .ch-numbered li {
	display: flex;
	align-items: center;
	gap: 14px;
	margin: 0;
	counter-increment: ch-num;
}

.ch-numbered li::before {
	content: counter(ch-num, decimal-leading-zero);
	flex: none;
	width: 32px;
	height: 32px;
	display: grid;
	place-items: center;
	border: 1px solid rgba(217, 182, 90, .4);
	border-radius: 50%;
	font: 800 12px/1 var(--ch-display);
	color: var(--ch-gold);
}

body .ch-video {
	position: relative;
	isolation: isolate;
	aspect-ratio: 16 / 9;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	border: 1px solid rgba(217, 182, 90, .3);
	border-radius: clamp(14px, 1.6vw, 22px);
	overflow: hidden;
	background: var(--ch-bg-2);
	box-shadow: 0 30px 80px rgba(0, 0, 0, .5);
}

body .ch-video > * { margin: 0; }

body .ch-video > .wp-block-image {
	position: absolute;
	inset: 0;
	z-index: -1;
}

.ch-video > .wp-block-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ch-video::before {
	content: "";
	position: absolute;
	left: 50%;
	top: 50%;
	width: clamp(64px, 6.2vw, 92px);
	aspect-ratio: 1;
	transform: translate(-50%, -50%);
	border-radius: 50%;
	background: var(--ch-i-play-dark) 56% 50% / 38% no-repeat, var(--ch-gold-grad);
	box-shadow: 0 0 0 12px rgba(217, 182, 90, .14), 0 20px 50px rgba(0, 0, 0, .5);
}

/* Si se reemplaza la imagen por un bloque Vídeo o Insertar, se quita el botón decorativo. */
.ch-video:has(video, iframe)::before { display: none; }
body .ch-video > :is(.wp-block-video, .wp-block-embed) { position: absolute; inset: 0; }
.ch-video :is(video, iframe) { width: 100%; height: 100%; object-fit: cover; }

body .ch-video__caption {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 12px 16px;
	padding: clamp(16px, 2vw, 28px);
}

body .ch-video__caption > * { margin: 0; }
body .ch-video__text { display: flex; flex-direction: column; gap: 6px; }
body .ch-video__text > * { margin: 0; }
body .ch-video__title { font: 700 clamp(15px, 1.3vw, 18px)/1.2 var(--ch-display); }
body .ch-video__sub { font-size: 13px; line-height: 1.4; color: var(--ch-muted); }

/* ==========================================================================
   8. Tarjetas de curso (Query Loop de Tutor LMS y versión estática)
   ========================================================================== */
body .ch-cards {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr));
	gap: clamp(16px, 1.7vw, 24px);
	margin: 0;
	padding: 0;
	list-style: none;
}

body .ch-cards > * { margin: 0; }

body .ch-card {
	position: relative;
	height: 100%;
	display: flex;
	flex-direction: column;
	border: 1px solid var(--ch-line);
	border-radius: 18px;
	overflow: hidden;
	background: var(--ch-card);
	transition: transform .25s var(--ch-ease), border-color .25s ease, box-shadow .25s ease;
}

body .ch-card:hover {
	transform: translateY(-4px);
	border-color: rgba(217, 182, 90, .55);
	box-shadow: 0 24px 60px rgba(0, 0, 0, .45);
}

body .ch-card > * { margin: 0; }

body .ch-card__media {
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: linear-gradient(135deg, #1D2030, var(--ch-bg-2));
}

.ch-card__media a { display: block; height: 100%; }

.ch-card__media img {
	display: block;
	width: 100%;
	height: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
}

body .ch-card__body {
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 20px 22px 22px;
}

body .ch-card__body > * { margin: 0; }

body .ch-card__cat,
.ch-card__cat a {
	font: 600 12px/1.3 var(--ch-body);
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--ch-gold);
	text-decoration: none;
}

.ch-card__cat a { position: relative; z-index: 2; }

body .ch-card__title {
	font: 700 20px/1.25 var(--ch-display);
	letter-spacing: -.01em;
}

.ch-card__title a { color: var(--ch-text); text-decoration: none; }

.ch-card__title a::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}

body .ch-card__excerpt,
.ch-card__excerpt p {
	margin: 0;
	font-size: 15px;
	line-height: 1.55;
	color: var(--ch-muted);
}

.ch-card__excerpt .wp-block-post-excerpt__more-text { display: none; }

body .ch-card__foot {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-top: auto;
	padding-top: 16px;
	border-top: 1px solid var(--ch-line);
	font: 500 14px/1.2 var(--ch-body);
	color: var(--ch-muted);
}

body .ch-card__body > .ch-card__foot { margin-top: auto; }

.ch-card__foot::before,
.ch-card__foot::after {
	content: "";
	flex: none;
	width: 16px;
	height: 16px;
	background-color: var(--ch-gold);
	-webkit-mask: var(--ch-m-check) center / contain no-repeat;
	mask: var(--ch-m-check) center / contain no-repeat;
}

.ch-card__foot::after {
	width: 18px;
	height: 18px;
	margin-left: auto;
	background-color: var(--ch-gold-2);
	-webkit-mask-image: var(--ch-m-arrow);
	mask-image: var(--ch-m-arrow);
}

body .ch-empty {
	padding: 32px;
	border: 1px dashed var(--ch-line);
	border-radius: 18px;
	text-align: center;
	color: var(--ch-muted);
}

/* ==========================================================================
   9. Novedades y lanzamientos
   ========================================================================== */
body .ch-news {
	display: flex;
	flex-wrap: wrap;
	gap: clamp(16px, 1.7vw, 24px);
}

body .ch-news > * { margin: 0; }

body .ch-feature {
	position: relative;
	isolation: isolate;
	flex: 1.25 1 480px;
	min-width: 0;
	min-height: clamp(420px, 36vw, 540px);
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	padding: clamp(24px, 2.8vw, 40px);
	border: 1px solid var(--ch-line);
	border-radius: 24px;
	overflow: hidden;
	transition: border-color .25s ease;
}

body .ch-feature:hover { border-color: rgba(217, 182, 90, .6); }
body .ch-feature > * { margin: 0; }

body .ch-feature > .wp-block-image {
	position: absolute;
	inset: 0;
	z-index: -2;
}

.ch-feature > .wp-block-image img { width: 100%; height: 100%; object-fit: cover; }

.ch-feature::before {
	content: "IA";
	content: "IA" / "";
	position: absolute;
	right: -2%;
	top: -8%;
	z-index: -1;
	font: 800 clamp(180px, 22vw, 320px)/1 var(--ch-display);
	letter-spacing: -.06em;
	color: rgba(240, 206, 120, .1);
	pointer-events: none;
}

.ch-feature::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(0deg, rgba(8, 9, 13, .95) 12%, rgba(8, 9, 13, .25) 66%, rgba(8, 9, 13, .1) 100%);
}

body .ch-feature__top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}

body .ch-feature__top > * { margin: 0; }

body .ch-feature__cat {
	font: 700 13px/1.2 var(--ch-display);
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--ch-gold-2);
}

body .ch-feature__body {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 16px;
	max-width: 520px;
}

body .ch-feature__body > * { margin: 0; }
body .ch-feature__body p:not(.ch-tag):not(.ch-link) { color: var(--ch-muted); }
.ch-feature .ch-link a::before { content: ""; position: absolute; inset: 0; }

body .ch-feature__title {
	align-self: stretch;
	font-size: clamp(30px, 3.1vw, 46px);
	line-height: 1.04;
	letter-spacing: -.03em;
}

body .ch-news__list {
	flex: 1 1 360px;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 14px;
}

body .ch-news__list > * { margin: 0; }

body .ch-news-item {
	position: relative;
	flex: 1;
	display: flex;
	align-items: center;
	gap: 18px;
	padding: 14px 18px 14px 14px;
	border: 1px solid var(--ch-line);
	border-radius: 18px;
	background: var(--ch-bg-2);
	transition: border-color .2s ease, background-color .2s ease;
}

body .ch-news-item:hover { border-color: rgba(217, 182, 90, .5); background: #151821; }
body .ch-news-item > * { margin: 0; }

.ch-news-item::after {
	content: "";
	flex: none;
	width: 18px;
	height: 18px;
	background-color: var(--ch-gold-2);
	-webkit-mask: var(--ch-m-arrow) center / contain no-repeat;
	mask: var(--ch-m-arrow) center / contain no-repeat;
}

body .ch-news-item > .wp-block-image {
	position: relative;
	flex: none;
	width: clamp(88px, 8.4vw, 124px);
	border: 1px solid rgba(255, 255, 255, .08);
	border-radius: 12px;
	overflow: hidden;
}

.ch-news-item > .wp-block-image img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

.ch-news-item > .wp-block-image::after {
	content: "CH";
	content: "CH" / "";
	position: absolute;
	left: 10px;
	bottom: 9px;
	font: 800 12px/1 var(--ch-display);
	letter-spacing: -.02em;
	color: var(--ch-gold-2);
}

body .ch-news-item__text {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 9px;
}

body .ch-news-item__text > * { margin: 0; }

body .ch-news-item__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 10px;
}

body .ch-news-item__meta > * { margin: 0; }
body .ch-news-item__cat { font: 500 13px/1.2 var(--ch-body); color: var(--ch-muted); }
body .ch-news-item__title { font: 700 clamp(16px, 1.3vw, 18px)/1.3 var(--ch-display); }
.ch-news-item__title a { color: var(--ch-text); text-decoration: none; }
.ch-news-item__title a::before { content: ""; position: absolute; inset: 0; }

/* ==========================================================================
   10. Beneficios
   ========================================================================== */
body .ch-benefits {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
	gap: clamp(32px, 3vw, 44px) clamp(24px, 3vw, 48px);
}

body .ch-benefits > * { margin: 0; }

body .ch-benefit {
	display: flex;
	flex-direction: column;
	gap: 14px;
	padding-top: 28px;
	border-top: 1px solid var(--ch-line);
}

body .ch-benefit > * { margin: 0; }

.ch-benefit::before {
	content: "";
	width: 48px;
	height: 48px;
	border: 1px solid rgba(217, 182, 90, .3);
	border-radius: 14px;
	background: rgba(217, 182, 90, .1) var(--ch-icon, var(--ch-i-layers)) center / 22px no-repeat;
}

.ch-ico--layers { --ch-icon: var(--ch-i-layers); }
.ch-ico--sparkle { --ch-icon: var(--ch-i-sparkle); }
.ch-ico--crown { --ch-icon: var(--ch-i-crown); }
.ch-ico--clock { --ch-icon: var(--ch-i-clock); }
.ch-ico--devices { --ch-icon: var(--ch-i-devices); }
.ch-ico--chart { --ch-icon: var(--ch-i-chart); }

body .ch-benefit h3 { font-size: 20px; line-height: 1.3; }
body .ch-benefit p { font-size: 15.5px; color: var(--ch-muted); }

/* ==========================================================================
   11. Comparación (bloque Tabla)
   ========================================================================== */
body .ch-compare-wrap {
	padding-top: clamp(56px, 6vw, 96px);
	border-top: 1px solid #1F232C;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: clamp(40px, 5vw, 80px);
}

body .ch-compare-wrap > * { margin: 0; }
body .ch-compare-wrap > .ch-head { flex: 1 1 320px; min-width: 0; }

body .ch-compare { flex: 1.6 1 520px; min-width: 0; margin: 0; overflow: visible; }

body .ch-compare table {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	font: 400 clamp(14px, 1.1vw, 16px)/1.45 var(--ch-body);
	color: var(--ch-text);
}

body .ch-compare thead,
body .ch-compare tfoot { border: 0; }

body .ch-compare th,
body .ch-compare td {
	padding: 18px 12px;
	border: 0;
	border-bottom: 1px solid var(--ch-line);
	text-align: center;
	vertical-align: middle;
}

body .ch-compare :is(th, td):first-child {
	width: 50%;
	padding-left: 0;
	text-align: left;
}

body .ch-compare thead th {
	font: 600 clamp(13px, 1.05vw, 15px)/1.2 var(--ch-display);
	color: var(--ch-muted);
}

body .ch-compare thead th:first-child {
	font: 600 12px/1.2 var(--ch-body);
	letter-spacing: .12em;
	text-transform: uppercase;
}

body .ch-compare td:nth-child(2) { font-size: 20px; color: var(--ch-muted); }

body .ch-compare :is(th, td):nth-child(3) {
	border-left: 1px solid rgba(217, 182, 90, .55);
	border-right: 1px solid rgba(217, 182, 90, .55);
	border-bottom-color: rgba(217, 182, 90, .18);
	background: rgba(217, 182, 90, .06);
	font-size: 20px;
	font-weight: 800;
	color: var(--ch-gold-2);
}

body .ch-compare thead th:nth-child(3) {
	border-top: 1px solid rgba(217, 182, 90, .55);
	border-radius: 16px 16px 0 0;
	background: rgba(217, 182, 90, .1);
	font: 800 clamp(13px, 1.1vw, 16px)/1.2 var(--ch-display);
}

.ch-compare thead th:nth-child(3)::before {
	content: "";
	display: inline-block;
	width: 16px;
	height: 16px;
	margin-right: 8px;
	vertical-align: -2px;
	background-color: currentColor;
	-webkit-mask: var(--ch-m-crown) center / contain no-repeat;
	mask: var(--ch-m-crown) center / contain no-repeat;
}

body .ch-compare tfoot td { padding: 16px clamp(8px, 1.2vw, 16px) 18px; border-bottom: 0; }

body .ch-compare tfoot td:nth-child(3) {
	border-bottom: 1px solid rgba(217, 182, 90, .55);
	border-radius: 0 0 16px 16px;
}

body .ch-compare tfoot a {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	border-radius: 999px;
	background: var(--ch-gold-grad);
	font: 800 14px/1 var(--ch-display);
	color: var(--ch-bg);
	text-decoration: none;
}

body .ch-compare tfoot a:hover { color: var(--ch-bg); filter: brightness(1.06); }

/* ==========================================================================
   12. Cómo funciona
   ========================================================================== */
body .ch-steps {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
	gap: clamp(16px, 1.7vw, 24px);
}

body .ch-steps > * { margin: 0; }

body .ch-step {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 18px;
	padding: clamp(24px, 2.6vw, 36px);
	border: 1px solid var(--ch-line);
	border-radius: 22px;
	overflow: hidden;
	background: var(--ch-bg-2);
}

body .ch-step > * { margin: 0; }

body .ch-step__num {
	position: relative;
	width: 60px;
	height: 60px;
	display: grid;
	place-items: center;
	margin-bottom: 6px;
	border: 1px solid var(--ch-gold);
	border-radius: 50%;
	background: rgba(217, 182, 90, .08);
	font: 800 20px/1 var(--ch-display);
	color: var(--ch-gold-2);
}

.ch-step__num::after {
	content: "";
	position: absolute;
	left: 76px;
	top: 50%;
	width: 420px;
	height: 1px;
	background: linear-gradient(90deg, rgba(217, 182, 90, .6), rgba(217, 182, 90, 0));
}

body .ch-step:last-child .ch-step__num {
	border-color: transparent;
	background: var(--ch-gold-grad);
	color: var(--ch-bg);
}

.ch-step:last-child .ch-step__num::after { display: none; }
body .ch-step h3 { font-size: 22px; }
body .ch-step p:not(.ch-step__num) { font-size: 15.5px; color: var(--ch-muted); }

/* ==========================================================================
   13. Zona VIP
   ========================================================================== */
body .ch-vip {
	position: relative;
	overflow: hidden;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: clamp(48px, 5vw, 72px);
	padding: clamp(32px, 5.4vw, 84px);
	border: 1px solid rgba(217, 182, 90, .38);
	border-radius: clamp(22px, 2.2vw, 32px);
	background:
		radial-gradient(ellipse 60% 80% at 82% 50%, rgba(217, 182, 90, .2), rgba(217, 182, 90, 0) 62%),
		linear-gradient(135deg, #17150F 0%, #0F1015 62%);
}

body .ch-vip > * { margin: 0; }

body .ch-vip__text {
	flex: 1 1 380px;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 20px;
}

body .ch-vip__text > * { margin: 0; }
body .ch-vip__buttons { gap: 14px 24px; margin-top: 8px; }

body .ch-vip__visual {
	flex: 1 1 340px;
	min-width: 0;
	display: flex;
	justify-content: center;
}

body .ch-vip__stack {
	position: relative;
	width: min(100%, 460px);
	aspect-ratio: 1.3;
}

body .ch-vip__stack > * { margin: 0; }

body .ch-vip-card {
	position: absolute;
	aspect-ratio: 1.586;
	border-radius: 22px;
}

body .ch-vip-card--back {
	left: 14%;
	right: 0;
	top: 18%;
	display: flex;
	align-items: flex-end;
	justify-content: flex-end;
	padding: 6%;
	border: 1px solid var(--ch-line);
	background: linear-gradient(145deg, #232631, #0E1015);
	box-shadow: 0 30px 70px rgba(0, 0, 0, .55);
	transform: rotate(9deg);
}

body .ch-vip-card--back p {
	margin: 0;
	font: 800 15px/1 var(--ch-display);
	letter-spacing: .2em;
	text-transform: uppercase;
	color: rgba(240, 206, 120, .55);
}

body .ch-vip-card--front {
	left: 0;
	top: 4%;
	width: 86%;
	container-type: inline-size;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	padding: 6.5%;
	background: linear-gradient(135deg, #F6DC93 0%, #D9B65A 40%, #B38D3B 70%, #EACB7A 100%);
	box-shadow: 0 40px 80px rgba(0, 0, 0, .6), inset 0 1px 0 rgba(255, 255, 255, .55);
	color: var(--ch-bg);
	transform: rotate(-6deg);
}

body .ch-vip-card--front > * { margin: 0; }

.ch-vip-card--front::before {
	content: "";
	position: absolute;
	left: 7cqi;
	top: 41%;
	width: 15cqi;
	height: 11cqi;
	border: 1px solid rgba(11, 13, 18, .25);
	border-radius: 2.4cqi;
	background: linear-gradient(135deg, rgba(11, 13, 18, .28), rgba(11, 13, 18, .1));
}

body .ch-vip-card__top,
body .ch-vip-card__bottom {
	display: flex;
	justify-content: space-between;
	gap: 4cqi;
}

body .ch-vip-card__top { align-items: center; }
body .ch-vip-card__bottom { align-items: flex-end; }
body :is(.ch-vip-card__top, .ch-vip-card__bottom, .ch-vip-card__who) > * { margin: 0; }
body .ch-vip-card__who { display: flex; flex-direction: column; gap: 2cqi; }

body .ch-vip-card__brand {
	display: flex;
	align-items: center;
	gap: 3cqi;
	font: 800 6cqi/1 var(--ch-display);
	letter-spacing: -.02em;
}

.ch-vip-card__brand::before {
	content: "CH";
	content: "CH" / "";
	width: 10cqi;
	height: 10cqi;
	display: grid;
	place-items: center;
	border-radius: 2.6cqi;
	background: var(--ch-bg);
	font: 800 4cqi/1 var(--ch-display);
	color: var(--ch-gold-2);
}

body .ch-vip-card__tier { font: 800 7.4cqi/1 var(--ch-display); letter-spacing: .06em; }

body .ch-vip-card__label,
body .ch-vip-card__status {
	font: 700 3.4cqi/1.2 var(--ch-body);
	letter-spacing: .16em;
	text-transform: uppercase;
	opacity: .75;
}

body .ch-vip-card__status { text-align: right; }
body .ch-vip-card__name { font: 800 5.6cqi/1 var(--ch-display); }

/* ==========================================================================
   14. Vista previa de la experiencia educativa
   ========================================================================== */
body .ch-player {
	border: 1px solid var(--ch-line);
	border-radius: clamp(16px, 1.6vw, 22px);
	overflow: hidden;
	background: var(--ch-bg);
	box-shadow: 0 40px 100px rgba(0, 0, 0, .5);
}

body .ch-player > * { margin: 0; }

body .ch-player__bar {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 14px 18px 14px 80px;
	border-bottom: 1px solid var(--ch-line);
	background: #0E1016;
}

@media (min-width: 782px) {
	body .ch-player__bar { padding-right: 80px; }
}

.ch-player__bar::before {
	content: "";
	position: absolute;
	left: 18px;
	top: 50%;
	width: 11px;
	height: 11px;
	border-radius: 50%;
	background: var(--ch-line);
	box-shadow: 18px 0 0 var(--ch-line), 36px 0 0 var(--ch-line);
	transform: translateY(-50%);
}

body .ch-player__url {
	width: 100%;
	max-width: 420px;
	margin: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 8px 14px;
	border-radius: 8px;
	background: var(--ch-card);
	font: 500 13px/1 var(--ch-body);
	color: var(--ch-muted);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.ch-player__url::before {
	content: "";
	flex: none;
	width: 13px;
	height: 13px;
	background-color: currentColor;
	-webkit-mask: var(--ch-m-lock) center / contain no-repeat;
	mask: var(--ch-m-lock) center / contain no-repeat;
}

body .ch-player__body { display: flex; flex-wrap: wrap; }
body .ch-player__body > * { margin: 0; }

body .ch-player__main {
	flex: 2.2 1 520px;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 20px;
	padding: clamp(16px, 2vw, 28px);
}

body .ch-player__main > * { margin: 0; }

body .ch-player__screen {
	position: relative;
	isolation: isolate;
	aspect-ratio: 16 / 9;
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: clamp(16px, 2vw, 28px);
	border: 1px solid rgba(255, 255, 255, .06);
	border-radius: 14px;
	overflow: hidden;
}

body .ch-player__screen > * { margin: 0; }
body .ch-player__screen > .wp-block-image { position: absolute; inset: 0; z-index: -2; }
.ch-player__screen > .wp-block-image img { width: 100%; height: 100%; object-fit: cover; }

.ch-player__screen::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background:
		var(--ch-i-play-ring) center / clamp(56px, 5vw, 76px) no-repeat,
		linear-gradient(0deg, rgba(8, 9, 13, .85) 0%, rgba(8, 9, 13, .35) 50%, rgba(8, 9, 13, .55) 100%);
}

.ch-player__screen::after {
	content: "";
	position: absolute;
	left: clamp(14px, 1.8vw, 24px);
	right: clamp(14px, 1.8vw, 24px);
	bottom: 16px;
	height: 20px;
	background:
		var(--ch-i-play-white) left center / 18px no-repeat,
		var(--ch-i-controls) right center / 47px 20px no-repeat,
		linear-gradient(var(--ch-gold), var(--ch-gold)) 32px 50% / calc((100% - 96px) * .38) 4px no-repeat,
		linear-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .2)) 32px 50% / calc(100% - 96px) 4px no-repeat;
}

body .ch-player__kicker {
	font: 700 12px/1 var(--ch-body);
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--ch-gold-2);
}

body .ch-player__screen-title {
	font: 800 clamp(18px, 2vw, 30px)/1.1 var(--ch-display);
	letter-spacing: -.02em;
	color: #fff;
}

body .ch-player__lesson {
	font: 600 12.5px/1 var(--ch-body);
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--ch-gold);
}

body .ch-player__main h3 { font-size: clamp(22px, 2vw, 28px); font-weight: 800; letter-spacing: -.02em; }

body .ch-tabs {
	display: flex;
	gap: 24px;
	margin: 0;
	padding: 0;
	list-style: none;
	border-bottom: 1px solid var(--ch-line);
	font: 600 14px/1 var(--ch-body);
}

body .ch-tabs li { margin: 0 0 -1px; padding-bottom: 12px; color: var(--ch-muted); }
body .ch-tabs li.is-active { border-bottom: 2px solid var(--ch-gold); color: var(--ch-text); }
body .ch-player__main p:not([class*="ch-player"]) { max-width: 680px; font-size: 15.5px; color: var(--ch-muted); }

body .ch-fake-btns { display: flex; flex-wrap: wrap; gap: 12px; }
body .ch-fake-btns > * { margin: 0; }

body .ch-fake-btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 44px;
	padding: 0 20px;
	border: 1px solid var(--ch-line);
	border-radius: 999px;
	font: 700 14px/1 var(--ch-display);
	color: var(--ch-text);
}

body .ch-fake-btn--gold {
	border-color: transparent;
	background: var(--ch-gold-grad);
	font-weight: 800;
	color: var(--ch-bg);
}

.ch-fake-btn--gold::before {
	content: "";
	width: 16px;
	height: 16px;
	background-color: currentColor;
	-webkit-mask: var(--ch-m-check) center / contain no-repeat;
	mask: var(--ch-m-check) center / contain no-repeat;
}

body .ch-player__side {
	flex: 1 1 300px;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding: clamp(20px, 2vw, 28px);
	background: #0E1016;
	box-shadow: -1px 0 0 var(--ch-line), 0 -1px 0 var(--ch-line);
}

body .ch-player__side > * { margin: 0; }
body .ch-player__side-title { font: 800 17px/1.2 var(--ch-display); }

body .ch-progress {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 8px;
	font: 500 13px/1 var(--ch-body);
	color: var(--ch-muted);
}

body .ch-player__side > .ch-progress { margin-bottom: 8px; }

.ch-progress::after {
	content: "";
	flex: 1;
	height: 6px;
	border-radius: 6px;
	background:
		linear-gradient(90deg, var(--ch-gold), var(--ch-gold-2)) 0 0 / 45% 100% no-repeat,
		var(--ch-line);
}

body .ch-module {
	font: 700 12px/1.3 var(--ch-body);
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--ch-muted);
}

body .ch-player__side > .ch-module { margin-top: 8px; }

body .ch-lessons {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin: 0;
	padding: 0;
	list-style: none;
}

body .ch-lessons li {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0;
	padding: 11px 12px;
	border: 1px solid transparent;
	border-radius: 12px;
	font: 500 14.5px/1.35 var(--ch-body);
	color: var(--ch-muted);
}

.ch-lessons li::before {
	content: "";
	flex: none;
	width: 22px;
	height: 22px;
	box-sizing: border-box;
	border: 1.5px solid #4A4F5C;
	border-radius: 50%;
}

body .ch-lessons li.is-done { color: var(--ch-text); }

.ch-lessons li.is-done::before {
	border: 0;
	background: rgba(217, 182, 90, .16) var(--ch-i-check-gold) center / 13px no-repeat;
}

body .ch-lessons li.is-current {
	border-color: rgba(217, 182, 90, .45);
	background: rgba(217, 182, 90, .1);
	color: var(--ch-text);
}

.ch-lessons li.is-current::before {
	border: 0;
	background: var(--ch-gold) var(--ch-i-play-dark) 58% 50% / 11px no-repeat;
}

body .ch-note {
	display: flex;
	align-items: flex-start;
	justify-content: center;
	gap: 10px;
	max-width: 640px;
	margin-inline: auto;
	font-size: 14px;
	line-height: 1.55;
	text-align: center;
	color: var(--ch-muted);
}

body .ch-section > .ch-note { margin-top: 24px; }

.ch-note::before {
	content: "";
	flex: none;
	width: 18px;
	height: 18px;
	margin-top: 1px;
	background-color: var(--ch-gold);
	-webkit-mask: var(--ch-m-info) center / contain no-repeat;
	mask: var(--ch-m-info) center / contain no-repeat;
}

/* ==========================================================================
   15. Preguntas frecuentes (bloque Detalles)
   ========================================================================== */
body .ch-faq-wrap {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: clamp(32px, 5vw, 80px);
}

body .ch-faq-wrap > * { margin: 0; }
body .ch-faq-wrap > .ch-head { flex: 1 1 320px; min-width: 0; }

body .ch-faq {
	flex: 1.7 1 520px;
	min-width: 0;
	display: flex;
	flex-direction: column;
	border-top: 1px solid var(--ch-line);
}

body .ch-faq > * { margin: 0; }
body .ch-faq__item { border-bottom: 1px solid var(--ch-line); }

body .ch-faq__item summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	padding: 24px 0;
	list-style: none;
	cursor: pointer;
	font: 700 clamp(17px, 1.4vw, 20px)/1.35 var(--ch-display);
	color: var(--ch-text);
}

.ch-faq__item summary::-webkit-details-marker { display: none; }

.ch-faq__item summary::after {
	content: "";
	flex: none;
	width: 38px;
	height: 38px;
	border: 1px solid var(--ch-line);
	border-radius: 50%;
	background: var(--ch-i-plus) center / 16px no-repeat;
	transition: border-color .3s ease;
}

.ch-faq__item[open] summary::after {
	border-color: var(--ch-gold);
	background-image: var(--ch-i-minus);
}

body .ch-faq__item > :not(summary) {
	margin: 0;
	padding: 0 clamp(0px, 4vw, 58px) 26px 0;
	font-size: 16px;
	line-height: 1.65;
	color: var(--ch-muted);
}

/* ==========================================================================
   16. CTA final
   ========================================================================== */
body .ch-cta {
	position: relative;
	isolation: isolate;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 24px;
	padding: clamp(56px, 7vw, 112px) clamp(22px, 5vw, 80px);
	border: 1px solid var(--ch-line);
	border-radius: clamp(22px, 2.2vw, 32px);
	overflow: hidden;
	background: var(--ch-bg-2);
	text-align: center;
}

body .ch-cta > * { margin: 0; max-width: 820px; }

body .ch-cta > .wp-block-image {
	position: absolute;
	inset: 0;
	z-index: -2;
	max-width: none;
}

.ch-cta > .wp-block-image img { width: 100%; height: 100%; object-fit: cover; }

.ch-cta::before {
	content: "CH";
	content: "CH" / "";
	width: 56px;
	height: 56px;
	display: grid;
	place-items: center;
	border-radius: 16px;
	background: linear-gradient(145deg, var(--ch-gold-2), #C9A24A);
	box-shadow: 0 14px 40px rgba(217, 182, 90, .3), inset 0 1px 0 rgba(255, 255, 255, .45);
	font: 800 20px/1 var(--ch-display);
	letter-spacing: -.04em;
	color: var(--ch-bg);
}

.ch-cta::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: radial-gradient(ellipse 50% 55% at 50% 105%, rgba(217, 182, 90, .24), rgba(217, 182, 90, 0));
}

body .ch-cta__title { font-size: clamp(36px, 5vw, 74px); line-height: 1.02; letter-spacing: -.04em; }
body .ch-cta .ch-lead { max-width: 560px; }
body .ch-cta .wp-block-buttons { gap: 14px; }

/* ==========================================================================
   17. Pie de página
   ========================================================================== */
body .ch-footer {
	padding-top: clamp(56px, 6vw, 88px);
	padding-bottom: 32px;
	border-top: 1px solid #1E212A;
	background: var(--ch-ink);
}

body .ch-footer__top {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 48px;
}

body .ch-footer__top > * { margin: 0; }

body .ch-footer__brand {
	flex: 1 1 260px;
	max-width: 360px;
	display: flex;
	flex-direction: column;
	gap: 18px;
}

body .ch-footer__brand > * { margin: 0; }
body .ch-footer__brand p:not(.ch-logo) { font-size: 15px; line-height: 1.6; color: var(--ch-muted); }

body .ch-footer__cols {
	flex: 2 1 480px;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
	gap: 36px 40px;
}

body .ch-footer__cols > * { margin: 0; }
body .ch-footer__col { display: flex; flex-direction: column; gap: 14px; }
body .ch-footer__col > * { margin: 0; }
body .ch-footer__title { font: 700 14px/1 var(--ch-display); color: var(--ch-text); }

body .ch-footer__links {
	display: flex;
	flex-direction: column;
	gap: 14px;
	margin: 0;
	padding: 0;
	list-style: none;
}

body .ch-footer__links li { margin: 0; }

.ch-footer__links a {
	font: 400 15px/1.4 var(--ch-body);
	color: var(--ch-muted);
	text-decoration: none;
	transition: color .2s ease;
}

.ch-footer__links a:hover { color: var(--ch-gold-2); }

body .ch-footer__bottom {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 12px 24px;
	margin-top: 56px;
	padding-top: 24px;
	border-top: 1px solid #1E212A;
	font-size: 14px;
	color: #8A8E9C;
}

body .ch-footer__bottom > * { margin: 0; }

/* ==========================================================================
   18. Páginas internas, blog, búsqueda y 404
   ========================================================================== */
body .ch-main { padding-top: clamp(48px, 6vw, 96px); padding-bottom: clamp(72px, 8vw, 120px); }
body .ch-main.ch-main--front { padding: 0; }

body .ch-page-head { display: flex; flex-direction: column; gap: 14px; margin-bottom: clamp(32px, 4vw, 56px); }
body .ch-page-head > * { margin: 0; }

.wp-block-post-content a:not(.wp-element-button):not(.wp-block-button__link) {
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}

body .ch-card .wp-block-post-date { font-size: 13px; color: var(--ch-muted); }

body .wp-block-query-pagination { gap: 8px; margin-top: clamp(32px, 4vw, 56px); }

.wp-block-query-pagination :is(a, .page-numbers) {
	display: inline-grid;
	place-items: center;
	min-width: 44px;
	min-height: 44px;
	padding: 0 14px;
	border: 1px solid var(--ch-line);
	border-radius: 999px;
	color: var(--ch-text);
	text-decoration: none;
}

.wp-block-query-pagination .page-numbers.current { border-color: var(--ch-gold); background: rgba(217, 182, 90, .1); color: var(--ch-gold-2); }

body .ch-404 { display: flex; flex-direction: column; align-items: center; gap: 22px; text-align: center; }
body .ch-404 > * { margin: 0; }
body .ch-404__code { font: 800 clamp(96px, 16vw, 200px)/.9 var(--ch-display); letter-spacing: -.06em; color: var(--ch-gold); }

.wp-block-search__inside-wrapper { gap: 8px; }
.wp-block-search__input { border-radius: 999px; padding-inline: 18px; }
body .wp-block-search__button { min-height: 48px; margin: 0; }

.wp-block-separator { border-color: var(--ch-line); opacity: 1; }

body .wp-block-table :is(th, td) { border-color: var(--ch-line); }

.wp-block-comments .wp-block-comment-template { padding-left: 0; }
.wp-block-comments .comment-form :is(input:not([type="submit"]):not([type="checkbox"]), textarea) { width: 100%; }

/* ==========================================================================
   19. Movimiento (siempre opcional)
   ========================================================================== */
@keyframes ch-drift { from { transform: translateX(0); } to { transform: translateX(-140px); } }
@keyframes ch-rise { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
@keyframes ch-fade { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }

@media (prefers-reduced-motion: no-preference) {
	.ch-wall__row { animation: ch-drift 46s ease-in-out infinite alternate; }
	.ch-wall__row--2 { animation-duration: 54s; animation-direction: alternate-reverse; }
	.ch-wall__row--3 { animation-duration: 50s; }
	.ch-wall.is-paused .ch-wall__row { animation-play-state: paused; }

	:where(body:not(.editor-styles-wrapper)) .ch-hero__content > * { animation: ch-rise .8s var(--ch-ease) both; }
	:where(body:not(.editor-styles-wrapper)) .ch-hero__content > :nth-child(2) { animation-delay: .08s; }
	:where(body:not(.editor-styles-wrapper)) .ch-hero__content > :nth-child(3) { animation-delay: .16s; }
	:where(body:not(.editor-styles-wrapper)) .ch-hero__content > :nth-child(4) { animation-delay: .24s; }
	:where(body:not(.editor-styles-wrapper)) .ch-hero__content > :nth-child(5) { animation-delay: .32s; }

	.ch-js .ch-reveal {
		opacity: 0;
		transform: translateY(18px);
		transition: opacity .7s var(--ch-ease), transform .7s var(--ch-ease);
		transition-delay: var(--ch-delay, 0ms);
	}

	.ch-js .ch-reveal.is-visible { opacity: 1; transform: none; }

	.ch-faq__item[open] > :not(summary) { animation: ch-fade .35s var(--ch-ease); }
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after {
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .01ms !important;
	}
}

/* ==========================================================================
   20. Ajustes responsive finos
   ========================================================================== */
@media (max-width: 781px) {
	body .ch-hero__areas-label { width: 100%; margin: 0 0 4px; text-align: center; }
	body .ch-video__sub { display: none; }
}

@media (max-width: 480px) {
	body .ch-compare th,
	body .ch-compare td { padding: 14px 6px; }
	body .ch-compare :is(th, td):first-child { width: 44%; padding-left: 0; }
	.ch-compare thead th:nth-child(3)::before { display: none; }
	body .ch-hero__buttons .wp-block-button { flex: 1 1 100%; }
	body .ch-hero__buttons .wp-block-button__link { width: 100%; }
	body .ch-news-item { gap: 14px; padding: 12px 14px 12px 12px; }
	body .ch-tabs { gap: 18px; }
}
