/* =====================================================================
   CPV Publicaciones · página «Publicaciones»
   Diseño: negro cálido, marfil y oro viejo; cada área tiene su propio color
   (sexología coral, psicología clínica azul mineral, liderazgo champán, Mente de Juego esmeralda).
   ===================================================================== */

@font-face { font-family: "CPVP Display"; src: url("../fonts/DMSerifDisplay-Regular.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "CPVP Display"; src: url("../fonts/DMSerifDisplay-Italic.woff2") format("woff2"); font-weight: 400; font-style: italic; font-display: swap; }
@font-face { font-family: "CPVP Serif"; src: url("../fonts/EBGaramond-Regular.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "CPVP Serif"; src: url("../fonts/EBGaramond-Italic.woff2") format("woff2"); font-weight: 400; font-style: italic; font-display: swap; }
@font-face { font-family: "CPVP Serif"; src: url("../fonts/EBGaramond-SemiBold.woff2") format("woff2"); font-weight: 600; font-style: normal; font-display: swap; }

.cpvp {
	--cpvp-bg: #0f0809;
	--cpvp-bg-2: #170c0f;
	--cpvp-wine: #4b0f1e;
	--cpvp-wine-2: #2a0911;
	--cpvp-ivory: #f6ede3;
	--cpvp-ivory-2: #e9dccd;
	--cpvp-muted: #b8a59d;
	--cpvp-line: rgba(246, 237, 227, .12);
	--cpvp-gold: #c9a46a;
	--cpvp-accent: #f27d72;
	--cpvp-radius: 18px;
	--cpvp-display: "CPVP Display", "DM Serif Display", Georgia, "Times New Roman", serif;
	--cpvp-serif: "CPVP Serif", "EB Garamond", Georgia, "Times New Roman", serif;
	--cpvp-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Inter, Roboto, Helvetica, Arial, sans-serif;

	position: relative;
	background: var(--cpvp-bg);
	color: var(--cpvp-ivory);
	font-family: var(--cpvp-serif);
	font-size: 19px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow: hidden;
	overflow: clip; /* «clip» permite que la navegación por áreas quede fija al hacer scroll */
	isolation: isolate;
}
/* Ancho completo aunque el tema limite el contenido (Divi, temas de bloques, Elementor…).
   El script ajusta además el margen izquierdo y el ancho al píxel, sin barra de desplazamiento,
   para que no quede ninguna franja en blanco a la derecha. */
html body .cpvp:not(.cpvp--inline) {
	width: 100vw !important;
	max-width: none !important;
	margin: 0 0 0 calc(50% - 50vw) !important;
	left: auto !important;
	right: auto !important;
	float: none !important;
}

/* ---------- Página de publicaciones a pantalla completa, sin huecos del tema ---------- */
body.cpvp-page { overflow-x: hidden; background-color: #0f0809; }
/* Divi */
body.cpvp-page #main-content,
body.cpvp-page #et-main-area { background: #0f0809 !important; }
body.cpvp-page #main-content > .container,
body.cpvp-page #main-content .container:has(.cpvp) { width: 100% !important; max-width: none !important; padding: 0 !important; margin: 0 !important; }
body.cpvp-page #main-content .container::before { display: none !important; }
body.cpvp-page #content-area,
body.cpvp-page #left-area { width: 100% !important; max-width: none !important; padding: 0 !important; margin: 0 !important; float: none !important; }
body.cpvp-page #sidebar { display: none !important; }
body.cpvp-page article.page,
body.cpvp-page .et_pb_post { margin: 0 !important; padding: 0 !important; }
body.cpvp-page .et_post_meta_wrapper,
body.cpvp-page .et_pb_title_container { display: none !important; }
body.cpvp-page :is(.et_pb_section, .et_pb_row, .et_pb_column, .et_pb_module, .et_pb_code_inner, .et_pb_text_inner):has(.cpvp) { width: 100% !important; max-width: none !important; padding: 0 !important; margin: 0 !important; }
/* Temas clásicos y de bloques (Astra, GeneratePress, Kadence, OceanWP, Hello, Twenty Twenty-*) */
body.cpvp-page :is(#content, #primary, #main, .site-content, .site-main, .content-area, .content-container, .ast-container, .inside-article, .entry-content, .wp-block-post-content, .elementor-widget-container, .elementor-widget-shortcode, .elementor-column-wrap, .elementor-widget-wrap):has(.cpvp) {
	max-width: none !important;
	padding-top: 0 !important;
	margin-top: 0 !important;
}
body.cpvp-page :is(.entry-content, .wp-block-post-content, .inside-article, .elementor-widget-container):has(> .cpvp) { padding: 0 !important; margin: 0 !important; }
body.cpvp-page .wp-site-blocks > main:has(.cpvp),
body.cpvp-page .wp-site-blocks > :has(.cpvp) { margin-block-start: 0 !important; padding-top: 0 !important; }
body.cpvp-page .entry-content > .cpvp:first-child,
body.cpvp-page .cpvp:not(.cpvp--inline) { margin-top: 0 !important; }
html body .cpvp.cpvp--inline { width: auto !important; max-width: 100% !important; margin: 2em 0 !important; border-radius: var(--cpvp-radius); padding: clamp(20px, 4vw, 48px); }
.cpvp *, .cpvp *::before, .cpvp *::after { box-sizing: border-box; }
.cpvp img { max-width: 100%; height: auto; display: block; border: 0; }
.cpvp p { margin: 0 0 1em; }
.cpvp a { color: inherit; text-decoration: none; }
.cpvp h1, .cpvp h2, .cpvp h3, .cpvp h4 { margin: 0; padding: 0; color: var(--cpvp-ivory); font-weight: 400; letter-spacing: 0; text-transform: none; }
.cpvp ul { margin: 0; padding: 0; list-style: none; }
.cpvp blockquote { margin: 0; padding: 0; border: 0; background: none; quotes: none; }
.cpvp blockquote::before, .cpvp blockquote::after { content: none; }

html:has(body.cpvp-page) { scroll-behavior: smooth; }
body.cpvp-page.cpvp-hide-title .entry-title,
body.cpvp-page.cpvp-hide-title .page-title,
body.cpvp-page.cpvp-hide-title h1.main_title,
body.cpvp-page.cpvp-hide-title .wp-block-post-title,
body.cpvp-page.cpvp-hide-title .entry-header { display: none !important; }

.cpvp-wrap { width: min(1220px, 100% - 48px); margin: 0 auto; position: relative; }

/* ---------- Tipografía común ---------- */
.cpvp-eyebrow {
	font-family: var(--cpvp-sans);
	font-size: 12.5px;
	font-weight: 600;
	letter-spacing: .24em;
	text-transform: uppercase;
	color: var(--cpvp-gold);
	margin: 0 0 18px !important;
	display: inline-flex;
	align-items: center;
	gap: 14px;
}
.cpvp-eyebrow::before { content: ""; width: 34px; height: 1px; background: currentColor; opacity: .7; }
.cpvp-h2 { font-family: var(--cpvp-display); font-size: clamp(34px, 4.6vw, 58px); line-height: 1.04; }
.cpvp-lead { font-size: clamp(19px, 1.6vw, 22px); color: var(--cpvp-ivory-2); max-width: 46ch; margin-top: 18px !important; }
.cpvp-section-head { margin-bottom: clamp(40px, 6vw, 72px); }
.cpvp-ico { width: 1.15em; height: 1.15em; flex: none; }
.cpvp-dot { margin: 0 .6em; opacity: .5; }

/* ---------- Botones ---------- */
.cpvp-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; margin: 28px 0 0; }
.cpvp-btn {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	padding: 16px 26px;
	border-radius: 999px;
	font-family: var(--cpvp-sans);
	font-size: 15px;
	font-weight: 600;
	letter-spacing: .02em;
	line-height: 1;
	transition: transform .35s cubic-bezier(.2, .8, .2, 1), box-shadow .35s, background-color .35s, color .35s, border-color .35s;
	will-change: transform;
}
.cpvp-btn:hover { transform: translateY(-2px); }
.cpvp-btn:focus-visible, .cpvp-nav__item:focus-visible, .cpvp-appcard:focus-visible, .cpvp-final__list a:focus-visible { outline: 2px solid var(--cpvp-gold); outline-offset: 3px; }
.cpvp-btn--primary { background: var(--book-accent, var(--cpvp-accent)); color: #160b0c !important; box-shadow: 0 14px 34px -14px var(--book-accent, var(--cpvp-accent)); }
.cpvp-btn--primary:hover { box-shadow: 0 20px 44px -12px var(--book-accent, var(--cpvp-accent)); filter: brightness(1.08); }
.cpvp-btn--gold { background: linear-gradient(135deg, #e6c88f, var(--cpvp-gold) 55%, #a8834b); color: #1c0f0c !important; box-shadow: 0 14px 34px -16px rgba(201, 164, 106, .9); }
.cpvp-btn--gold:hover { box-shadow: 0 22px 46px -16px rgba(201, 164, 106, 1); }
.cpvp-btn--ghost { border: 1px solid rgba(246, 237, 227, .35); color: var(--cpvp-ivory) !important; background: rgba(246, 237, 227, .03); }
.cpvp-btn--ghost:hover { border-color: var(--cpvp-ivory); background: rgba(246, 237, 227, .08); }

/* ---------- Libro 3D ---------- */
.cpvp-3d { --w: 270px; --t: 34px; position: relative; display: inline-block; perspective: 1800px; padding: 18px 40px 46px 18px; }
.cpvp-3d--lg { --w: clamp(240px, 30vw, 360px); --t: 42px; }
.cpvp-3d--md { --w: clamp(200px, 24vw, 280px); }
.cpvp-3d__book {
	position: relative;
	width: var(--w);
	aspect-ratio: 2 / 3;
	transform-style: preserve-3d;
	transform: rotateY(-26deg) rotateX(3deg);
	transition: transform 1s cubic-bezier(.2, .8, .2, 1);
}
.cpvp-3d:hover .cpvp-3d__book, .cpvp-book:hover .cpvp-3d__book { transform: rotateY(-12deg) rotateX(1deg) translateY(-6px); }
.cpvp-3d__face {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 2px 5px 5px 2px;
	transform: translateZ(calc(var(--t) / 2));
	box-shadow: inset 4px 0 10px rgba(0, 0, 0, .25);
}
/* Cantos de las páginas */
.cpvp-3d__book::before {
	content: "";
	position: absolute;
	top: 4px;
	bottom: 4px;
	left: calc(var(--w) - var(--t) / 2 - 3px);
	width: calc(var(--t) - 4px);
	transform: rotateY(90deg);
	background: repeating-linear-gradient(90deg, #f3ece2 0, #f3ece2 1px, #d8cfc2 1px, #d8cfc2 2px);
	box-shadow: inset 0 0 6px rgba(0, 0, 0, .25);
}
/* Contracubierta y sombra */
.cpvp-3d__book::after {
	content: "";
	position: absolute;
	inset: 0;
	transform: translateZ(calc(var(--t) / -2));
	background: color-mix(in srgb, var(--book-accent, #4b0f1e) 28%, #0b0708);
	border-radius: 2px 5px 5px 2px;
	box-shadow: -18px 22px 48px 6px rgba(0, 0, 0, .65);
}
.cpvp-3d__glow {
	position: absolute;
	left: 8%;
	right: 4%;
	bottom: 18px;
	height: 60px;
	background: radial-gradient(closest-side, var(--book-accent, var(--cpvp-accent)), transparent);
	opacity: .35;
	filter: blur(18px);
	z-index: -1;
}

/* ---------- Hero ---------- */
.cpvp-hero { position: relative; padding: clamp(80px, 11vw, 150px) 0 clamp(48px, 6vw, 80px); }
.cpvp-hero__bg {
	position: absolute;
	inset: 0;
	z-index: -1;
	background:
		radial-gradient(60% 70% at 78% 30%, rgba(122, 22, 44, .75), transparent 70%),
		radial-gradient(40% 50% at 10% 0%, rgba(201, 164, 106, .16), transparent 70%),
		linear-gradient(180deg, #1c0a10 0%, var(--cpvp-bg) 100%);
}
.cpvp-hero__bg::after {
	content: "";
	position: absolute;
	inset: 0;
	opacity: .05;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
.cpvp-hero__grid { display: grid; grid-template-columns: 1.05fr 1fr; gap: clamp(32px, 5vw, 80px); align-items: center; }
.cpvp-hero__title { font-family: var(--cpvp-display); font-size: clamp(46px, 7vw, 96px) !important; line-height: .98 !important; letter-spacing: -.01em; }
.cpvp-hero__text { font-size: clamp(19px, 1.7vw, 23px); color: var(--cpvp-ivory-2); max-width: 40ch; margin-top: 26px !important; }
.cpvp-hero__count { font-family: var(--cpvp-sans); font-size: 13px; letter-spacing: .14em; text-transform: uppercase; color: var(--cpvp-muted); }
.cpvp-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-top: 48px !important; padding-top: 28px !important; border-top: 1px solid var(--cpvp-line); }
.cpvp-stats li { display: flex; flex-direction: column; gap: 4px; }
.cpvp-stats strong { font-family: var(--cpvp-display); font-weight: 400; font-size: 26px; color: var(--cpvp-gold); line-height: 1.1; }
.cpvp-stats span { font-family: var(--cpvp-sans); font-size: 13px; color: var(--cpvp-muted); line-height: 1.4; }

.cpvp-hero__stack { position: relative; height: clamp(380px, 46vw, 600px); }
.cpvp-stack__item {
	position: absolute;
	top: 50%;
	left: 50%;
	width: clamp(150px, 17vw, 240px);
	aspect-ratio: 2 / 3;
	border-radius: 3px 6px 6px 3px;
	overflow: hidden;
	box-shadow: 0 40px 60px -24px rgba(0, 0, 0, .8), 0 0 0 1px rgba(255, 255, 255, .06);
	transition: transform .9s cubic-bezier(.2, .8, .2, 1);
}
.cpvp-stack__item img, .cpvp-stack__item .cpvp-gen { width: 100%; height: 100%; object-fit: cover; }
.cpvp-stack__item::after { content: ""; position: absolute; inset: 0; background: linear-gradient(100deg, rgba(255, 255, 255, .14), transparent 30%, transparent 70%, rgba(0, 0, 0, .2)); pointer-events: none; }
.cpvp-fan { --step: 34%; --tilt: 6.5deg; --spread: 1.25; }
.cpvp-fan--5 { --step: 30%; --tilt: 5.5deg; } .cpvp-fan--6 { --step: 27%; --tilt: 5deg; } .cpvp-fan--7 { --step: 24%; --tilt: 4.4deg; }
.cpvp-fan--5 .cpvp-stack__item, .cpvp-fan--6 .cpvp-stack__item, .cpvp-fan--7 .cpvp-stack__item { width: clamp(132px, 15vw, 214px); }
.cpvp-fan .cpvp-stack__item { z-index: var(--z); transform: translate(-50%, -50%) translateX(calc(var(--o) * var(--step) * 1.1)) translateY(calc(var(--a) * var(--a) * 1.6%)) rotate(calc(var(--o) * var(--tilt))) scale(calc(1 - var(--a) * .06)); }
.cpvp-fan:hover .cpvp-stack__item { transform: translate(-50%, -50%) translateX(calc(var(--o) * var(--step) * 1.1 * var(--spread))) translateY(calc(var(--a) * var(--a) * 1.6%)) rotate(calc(var(--o) * var(--tilt) * 1.25)) scale(calc(1 - var(--a) * .05)); }
.cpvp-stack__item:hover { z-index: 20 !important; }

/* ---------- Portada generada (mientras no haya imagen) ---------- */
.cpvp-gen {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap: 14px;
	width: 100%;
	aspect-ratio: 2 / 3;
	padding: 14% 12%;
	text-align: center;
	overflow: hidden;
	border-radius: 2px 5px 5px 2px;
	background:
		radial-gradient(90% 60% at 50% 0%, color-mix(in srgb, var(--book-accent, var(--cpvp-gold)) 38%, transparent), transparent 70%),
		linear-gradient(160deg, #1d1416, #0b0708 70%);
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .05);
	container-type: inline-size;
}
.cpvp-gen::before { content: ""; position: absolute; inset: 6%; border: 1px solid color-mix(in srgb, var(--book-accent, var(--cpvp-gold)) 65%, transparent); pointer-events: none; }
.cpvp-gen__series { font-family: var(--cpvp-sans); font-size: max(8px, 6.2cqi); font-weight: 600; letter-spacing: .26em; text-transform: uppercase; color: var(--book-accent, var(--cpvp-gold)); }
.cpvp-gen__title { font-family: var(--cpvp-display); font-size: max(14px, 15cqi); line-height: 1.02; color: var(--cpvp-ivory); }
.cpvp-gen__rule { width: 22%; height: 1px; background: var(--book-accent, var(--cpvp-gold)); }
.cpvp-gen__author { position: absolute; bottom: 11%; left: 0; right: 0; font-family: var(--cpvp-sans); font-size: max(7px, 4.6cqi); letter-spacing: .24em; text-transform: uppercase; color: var(--cpvp-muted); }
@container (max-width: 140px) {
	.cpvp-gen__author { display: none; }
	.cpvp-gen__series { letter-spacing: .12em; }
}
.cpvp-3d__face.cpvp-gen { position: absolute; inset: 0; height: 100%; }

/* ---------- Navegación por áreas ---------- */
.cpvp-nav {
	position: sticky;
	top: var(--cpvp-top, 0px);
	z-index: 20;
	background: rgba(15, 8, 9, .78);
	-webkit-backdrop-filter: blur(14px) saturate(1.2);
	backdrop-filter: blur(14px) saturate(1.2);
	border-top: 1px solid var(--cpvp-line);
	border-bottom: 1px solid var(--cpvp-line);
}
body.admin-bar .cpvp-nav { --cpvp-top: 32px; }
.cpvp-nav__inner { display: grid; grid-template-columns: repeat(auto-fit, minmax(0, 1fr)); }
.cpvp-nav__item {
	position: relative;
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 20px 18px;
	font-family: var(--cpvp-sans);
	font-size: 14px;
	color: var(--cpvp-ivory-2);
	border-left: 1px solid var(--cpvp-line);
	transition: background-color .3s, color .3s;
	white-space: nowrap;
}
.cpvp-nav__item:last-child { border-right: 1px solid var(--cpvp-line); }
.cpvp-nav__item::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: var(--sec); transform: scaleX(0); transform-origin: left; transition: transform .5s cubic-bezier(.2, .8, .2, 1); }
.cpvp-nav__item:hover, .cpvp-nav__item.is-active { background: color-mix(in srgb, var(--sec) 9%, transparent); color: var(--cpvp-ivory); }
.cpvp-nav__item:hover::after, .cpvp-nav__item.is-active::after { transform: scaleX(1); }
.cpvp-nav__n { font-size: 11px; letter-spacing: .14em; color: var(--sec); }
.cpvp-nav__t { flex: 1; font-weight: 600; letter-spacing: .02em; overflow: hidden; text-overflow: ellipsis; }
.cpvp-nav__c { min-width: 24px; height: 24px; padding: 0 6px; border-radius: 99px; display: grid; place-items: center; font-size: 12px; font-weight: 600; color: #160b0c; background: var(--sec); }

/* ---------- Áreas ---------- */
.cpvp-area { position: relative; padding: clamp(90px, 11vw, 160px) 0; scroll-margin-top: 70px; isolation: isolate; }
.cpvp-area + .cpvp-area { border-top: 1px solid var(--cpvp-line); }
.cpvp-area__bg {
	position: absolute;
	inset: 0;
	z-index: -1;
	background:
		radial-gradient(55% 45% at 85% 8%, color-mix(in srgb, var(--sec) 18%, transparent), transparent 70%),
		radial-gradient(45% 40% at 0% 70%, color-mix(in srgb, var(--sec) 8%, transparent), transparent 70%);
}
.cpvp-area--sexologia .cpvp-area__bg { background: radial-gradient(55% 45% at 85% 8%, rgba(242, 125, 114, .16), transparent 70%), linear-gradient(180deg, transparent, rgba(75, 15, 30, .45) 50%, transparent); }
.cpvp-area__head { display: grid; grid-template-columns: auto 1fr; gap: clamp(20px, 4vw, 56px); align-items: start; margin-bottom: clamp(56px, 7vw, 100px); }
.cpvp-area__index { font-family: var(--cpvp-display); font-size: clamp(72px, 10vw, 150px); line-height: .8; color: transparent; -webkit-text-stroke: 1px color-mix(in srgb, var(--sec) 70%, transparent); }
.cpvp-area .cpvp-eyebrow { color: var(--sec); }
.cpvp-area .cpvp-lead { max-width: 54ch; }
.cpvp-area .cpvp-kicker { color: var(--book-accent, var(--sec)); }
.cpvp-series { display: flex; align-items: center; gap: 14px; margin: clamp(60px, 8vw, 110px) 0 clamp(36px, 5vw, 56px) !important; font-family: var(--cpvp-display); font-size: clamp(26px, 2.6vw, 34px); color: var(--cpvp-ivory); }
.cpvp-series span { font-family: var(--cpvp-sans); font-size: 11px; letter-spacing: .2em; text-transform: uppercase; color: #160b0c; background: var(--sec); padding: 5px 10px; border-radius: 99px; }
.cpvp-series::after { content: ""; flex: 1; height: 1px; background: var(--cpvp-line); }

/* ---------- Destacado dentro de un área ---------- */
.cpvp-spot { position: relative; scroll-margin-top: 90px; margin-bottom: clamp(70px, 9vw, 130px); }
.cpvp-spot__grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(36px, 6vw, 96px); align-items: center; }
.cpvp-spot__media { position: relative; text-align: center; }
.cpvp-kicker--gold { color: var(--cpvp-gold) !important; }
.cpvp-seal {
	position: absolute;
	top: 0;
	right: 6%;
	z-index: 3;
	width: 108px;
	height: 108px;
	border-radius: 50%;
	display: grid;
	place-items: center;
	padding: 14px;
	text-align: center;
	background: radial-gradient(circle at 30% 25%, #f1d9a5, var(--cpvp-gold) 45%, #8d6a35);
	color: #1c0f0c;
	font-family: var(--cpvp-display);
	font-size: 17px;
	line-height: 1.05;
	box-shadow: 0 18px 40px -14px rgba(0, 0, 0, .9), inset 0 0 0 3px rgba(255, 255, 255, .25), inset 0 0 0 5px rgba(28, 15, 12, .25);
	transform: rotate(12deg);
}

/* ---------- Próximamente ---------- */
.cpvp-soon { margin-top: clamp(80px, 10vw, 140px); padding: clamp(32px, 5vw, 64px); border-radius: 28px; border: 1px solid var(--cpvp-line); background: linear-gradient(180deg, rgba(246, 237, 227, .035), rgba(246, 237, 227, .01)); }
.cpvp-soon__head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 10px 24px; margin-bottom: clamp(28px, 4vw, 48px); }
.cpvp-soon__label { display: inline-flex; align-items: center; gap: 10px; font-family: var(--cpvp-sans); font-size: 12px; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; color: var(--sec, var(--cpvp-gold)); margin: 0 !important; }
.cpvp-soon__title { font-family: var(--cpvp-display); font-size: clamp(28px, 3vw, 40px); }
.cpvp-soon__text { flex-basis: 100%; color: var(--cpvp-muted); margin: 0 !important; }
.cpvp-pulse { width: 8px; height: 8px; border-radius: 50%; background: currentColor; box-shadow: 0 0 0 0 currentColor; animation: cpvp-pulse 2.4s infinite; }
@keyframes cpvp-pulse { 0% { box-shadow: 0 0 0 0 color-mix(in srgb, currentColor 60%, transparent); } 70% { box-shadow: 0 0 0 12px transparent; } 100% { box-shadow: 0 0 0 0 transparent; } }
.cpvp-soon__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: clamp(24px, 3vw, 40px); }
.cpvp-soon__item { scroll-margin-top: 90px; }
.cpvp-soon__cover { position: relative; margin-bottom: 20px; border-radius: 3px 6px 6px 3px; overflow: hidden; box-shadow: 0 30px 50px -26px rgba(0, 0, 0, .95); transition: transform .6s cubic-bezier(.2, .8, .2, 1); }
.cpvp-soon__cover img { width: 100%; aspect-ratio: 2 / 3; object-fit: cover; filter: saturate(.85) brightness(.88); transition: filter .6s; }
.cpvp-soon__item:hover .cpvp-soon__cover { transform: translateY(-6px); }
.cpvp-soon__item:hover .cpvp-soon__cover img { filter: none; }
.cpvp-soon__ribbon { position: absolute; bottom: 16px; left: -1px; padding: 7px 14px 7px 12px; font-family: var(--cpvp-sans); font-size: 11px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: #160b0c; background: var(--book-accent, var(--cpvp-gold)); border-radius: 0 99px 99px 0; }
.cpvp-soon__book { font-family: var(--cpvp-display); font-size: 25px; line-height: 1.1; }
.cpvp-soon__hook { font-style: italic; color: var(--cpvp-ivory-2); margin: 8px 0 0 !important; font-size: 18px; }
.cpvp-soon .cpvp-kicker { margin-bottom: 8px !important; }
.cpvp-soon__count { font-family: var(--cpvp-sans); font-size: 12px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: #160b0c; background: var(--sec, var(--cpvp-gold)); padding: 6px 12px; border-radius: 99px; }
.cpvp-soon__grid--many { grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); }
/* Ficha abierta: ocupa toda la fila, portada a la izquierda y texto a la derecha. */
.cpvp-soon__item:has(.cpvp-more[open]) { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(180px, 260px) 1fr; column-gap: clamp(24px, 4vw, 56px); align-items: start; padding: clamp(20px, 3vw, 36px); border-radius: 22px; background: color-mix(in srgb, var(--book-accent, var(--cpvp-gold)) 7%, rgba(246, 237, 227, .02)); border: 1px solid color-mix(in srgb, var(--book-accent, var(--cpvp-gold)) 30%, transparent); }
.cpvp-soon__item:has(.cpvp-more[open]) .cpvp-soon__cover { grid-row: 1 / span 8; margin: 0; }
.cpvp-soon__item:has(.cpvp-more[open]) .cpvp-soon__book { font-size: clamp(28px, 3vw, 40px); }
.cpvp-soon__item:has(.cpvp-more[open]) .cpvp-more__body { columns: 2 320px; column-gap: 40px; }
.cpvp-soon__item:has(.cpvp-more[open]) .cpvp-more__body > * { break-inside: avoid; }
@media (max-width: 600px) {
	.cpvp-soon__item:has(.cpvp-more[open]) { grid-template-columns: 1fr; padding: 18px; }
	.cpvp-soon__item:has(.cpvp-more[open]) .cpvp-soon__cover { grid-row: auto; max-width: 220px; margin-bottom: 18px; }
}
.cpvp-more { margin-top: 14px; border-top: 1px solid var(--cpvp-line); }
.cpvp-more summary { list-style: none; cursor: pointer; display: inline-flex; align-items: center; gap: 8px; padding: 12px 0 0; font-family: var(--cpvp-sans); font-size: 13px; font-weight: 600; letter-spacing: .06em; color: var(--book-accent, var(--cpvp-gold)); }
.cpvp-more summary::-webkit-details-marker { display: none; }
.cpvp-more summary::after { content: "+"; font-size: 18px; line-height: 1; transition: transform .3s; }
.cpvp-more[open] summary::after { transform: rotate(45deg); }
.cpvp-more__body { padding-top: 12px; font-size: 16px; color: var(--cpvp-ivory-2); }
.cpvp-more__body .cpvp-book__subtitle { font-size: 16px; margin: 0 0 12px !important; }
.cpvp-more__body p { margin: 0 0 .8em !important; }
.cpvp-more__body .cpvp-bullets { gap: 6px; }
.cpvp-more__body .cpvp-bullets li { font-size: 15.5px; padding-left: 22px; }
.cpvp-more__quote { font-family: var(--cpvp-display); font-style: italic; color: var(--book-accent, var(--cpvp-accent)); font-size: 18px; line-height: 1.3; margin-top: 12px !important; }
.cpvp-hero__soon { font-family: var(--cpvp-sans); font-size: 13px; letter-spacing: .14em; text-transform: uppercase; color: var(--cpvp-accent); }

/* ---------- Área aún sin libros ---------- */
.cpvp-empty { display: flex; align-items: center; gap: clamp(24px, 4vw, 48px); padding: clamp(28px, 4vw, 48px); border-radius: 24px; border: 1px dashed color-mix(in srgb, var(--sec) 45%, transparent); background: color-mix(in srgb, var(--sec) 5%, transparent); }
.cpvp-empty__book { position: relative; flex: none; width: 92px; height: 130px; }
.cpvp-empty__book span { position: absolute; inset: 0; border-radius: 2px 5px 5px 2px; border: 1px solid color-mix(in srgb, var(--sec) 55%, transparent); background: linear-gradient(160deg, color-mix(in srgb, var(--sec) 14%, #120b0c), #0b0708); }
.cpvp-empty__book span:nth-child(1) { transform: rotate(-9deg) translateX(-14px); opacity: .5; }
.cpvp-empty__book span:nth-child(2) { transform: rotate(-3deg) translateX(-5px); opacity: .75; }
.cpvp-empty__book span:nth-child(3) { transform: rotate(4deg) translateX(6px); }
.cpvp-empty__text { font-size: clamp(19px, 1.7vw, 22px); color: var(--cpvp-ivory-2); margin: 10px 0 0 !important; max-width: 52ch; }

/* ---------- Libros ---------- */
.cpvp-books { display: flex; flex-direction: column; gap: clamp(70px, 9vw, 130px); }
.cpvp--inline .cpvp-books { gap: 0; }
.cpvp-book { display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(32px, 6vw, 96px); align-items: center; scroll-margin-top: 90px; }
.cpvp-book:nth-child(even) .cpvp-book__media { order: 2; }
.cpvp-book__media { position: relative; text-align: center; }
.cpvp-book__num {
	position: absolute;
	top: -.3em;
	left: 0;
	font-family: var(--cpvp-display);
	font-size: clamp(140px, 18vw, 240px);
	line-height: 1;
	color: transparent;
	-webkit-text-stroke: 1px rgba(201, 164, 106, .35);
	z-index: -1;
	user-select: none;
}
.cpvp-book:nth-child(even) .cpvp-book__num { left: auto; right: 0; }

.cpvp-kicker { font-family: var(--cpvp-sans); font-size: 12px; letter-spacing: .18em; text-transform: uppercase; color: var(--cpvp-gold); margin-bottom: 16px !important; }
.cpvp-book__title { font-family: var(--cpvp-display); font-size: clamp(36px, 4.4vw, 60px) !important; line-height: 1.02 !important; }
.cpvp-book__title--xl { font-size: clamp(42px, 5.4vw, 72px) !important; }
.cpvp-book__subtitle { font-style: italic; font-size: clamp(19px, 1.6vw, 22px); color: var(--cpvp-ivory-2); margin-top: 14px !important; max-width: 44ch; }
.cpvp-book__hook { font-family: var(--cpvp-display); font-style: italic; font-size: clamp(22px, 2.2vw, 28px); color: var(--book-accent, var(--cpvp-accent)); margin: 22px 0 16px !important; line-height: 1.25; }
.cpvp-book__desc { color: var(--cpvp-ivory-2); max-width: 58ch; }
.cpvp-book__discover { font-family: var(--cpvp-sans); font-size: 12px; letter-spacing: .18em; text-transform: uppercase; color: var(--cpvp-muted); margin: 8px 0 10px !important; }
.cpvp-bullets { display: grid; gap: 10px; margin: 0 0 8px !important; max-width: 60ch; }
.cpvp-bullets li { position: relative; padding-left: 28px; color: var(--cpvp-ivory); }
.cpvp-bullets li::before { content: ""; position: absolute; left: 2px; top: .7em; width: 12px; height: 1px; background: var(--book-accent, var(--cpvp-accent)); box-shadow: 0 0 10px var(--book-accent, var(--cpvp-accent)); }
.cpvp-book__quote { margin: 26px 0 0 !important; padding: 18px 0 0 !important; border-top: 1px solid var(--cpvp-line) !important; max-width: 52ch; }
.cpvp-book__quote p { font-style: italic; font-size: 21px; color: var(--cpvp-ivory); margin: 0 !important; }
.cpvp-book__details { font-family: var(--cpvp-sans); font-size: 13px; color: var(--cpvp-muted); margin: 16px 0 0 !important; letter-spacing: .04em; }

/* ---------- App ---------- */
.cpvp-app {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: clamp(28px, 4vw, 56px);
	align-items: center;
	margin-top: clamp(56px, 7vw, 90px);
	padding: clamp(28px, 4vw, 52px);
	border-radius: 28px;
	background: linear-gradient(135deg, rgba(201, 164, 106, .16), rgba(75, 15, 30, .55) 60%, rgba(15, 8, 9, .6));
	border: 1px solid rgba(201, 164, 106, .3);
	box-shadow: 0 40px 80px -40px rgba(0, 0, 0, .9);
}
.cpvp-app--compact { grid-template-columns: 1fr; margin-top: 28px; padding: 24px 26px; border-radius: 20px; }
.cpvp-app--compact .cpvp-phone { display: none; }
.cpvp-app:not(:has(.cpvp-phone)) { grid-template-columns: 1fr; }
.cpvp-app__label { display: inline-flex; align-items: center; gap: 8px; font-family: var(--cpvp-sans); font-size: 12px; letter-spacing: .18em; text-transform: uppercase; color: var(--cpvp-gold); margin: 0 0 10px !important; }
.cpvp-app__name { font-family: var(--cpvp-display); font-size: clamp(28px, 3vw, 40px); line-height: 1.08; }
.cpvp-app__text { color: var(--cpvp-ivory-2); margin: 14px 0 0 !important; max-width: 56ch; }
.cpvp-app .cpvp-btn { margin-top: 24px; }
.cpvp-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px !important; }
.cpvp-chips li { font-family: var(--cpvp-sans); font-size: 13px; padding: 7px 14px; border-radius: 999px; border: 1px solid rgba(201, 164, 106, .35); color: var(--cpvp-ivory-2); background: rgba(15, 8, 9, .35); }
.cpvp-phone { width: clamp(170px, 18vw, 230px); aspect-ratio: 9 / 19; border-radius: 34px; padding: 10px; background: linear-gradient(145deg, #2a2224, #0b0708); box-shadow: 0 0 0 1px rgba(255, 255, 255, .08), 0 40px 70px -30px rgba(0, 0, 0, .95), inset 0 0 0 2px rgba(255, 255, 255, .04); transform: rotate(-4deg); }
.cpvp-phone__screen { width: 100%; height: 100%; border-radius: 26px; overflow: hidden; background: #000; }
.cpvp-phone__screen img { width: 100%; height: 100%; object-fit: cover; object-position: top; }

.cpvp-apps { padding: clamp(80px, 10vw, 130px) 0; border-top: 1px solid var(--cpvp-line); background: radial-gradient(50% 60% at 80% 30%, rgba(201, 164, 106, .1), transparent 70%), var(--cpvp-bg); }
.cpvp--inline .cpvp-apps { padding: 0; border: 0; background: none; }
.cpvp-apps__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 24px; }
.cpvp-appcard { display: grid; grid-template-columns: 96px 1fr; gap: 22px; align-items: center; padding: 22px; border-radius: 22px; border: 1px solid var(--cpvp-line); background: rgba(246, 237, 227, .03); transition: border-color .35s, transform .35s, background-color .35s; }
.cpvp-appcard:hover { border-color: rgba(201, 164, 106, .55); background: rgba(201, 164, 106, .07); transform: translateY(-3px); }
.cpvp-appcard__cover { width: 96px; border-radius: 3px 5px 5px 3px; overflow: hidden; box-shadow: 0 18px 30px -14px rgba(0, 0, 0, .9); }
.cpvp-appcard__cover img { width: 100%; aspect-ratio: 2 / 3; object-fit: cover; }
.cpvp-appcard__body { display: flex; flex-direction: column; gap: 6px; }
.cpvp-appcard strong { font-family: var(--cpvp-display); font-weight: 400; font-size: 24px; line-height: 1.15; }
.cpvp-appcard__text { color: var(--cpvp-ivory-2); font-size: 17px; }
.cpvp-appcard__cta { display: inline-flex; align-items: center; gap: 8px; margin-top: 6px; font-family: var(--cpvp-sans); font-size: 14px; font-weight: 600; color: var(--cpvp-gold); }

/* ---------- Autor ---------- */
.cpvp-author { padding: clamp(80px, 10vw, 130px) 0; border-top: 1px solid var(--cpvp-line); }
.cpvp-author__grid { display: grid; grid-template-columns: 280px 1fr; gap: clamp(32px, 5vw, 72px); align-items: center; }
.cpvp-author__photo img { width: 280px; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 160px 160px 18px 18px; box-shadow: 0 40px 70px -40px rgba(0, 0, 0, .9); filter: saturate(.9); }
.cpvp-author__mono { width: 240px; aspect-ratio: 1; border-radius: 50%; display: grid; place-items: center; border: 1px solid rgba(201, 164, 106, .45); background: radial-gradient(circle at 30% 30%, rgba(201, 164, 106, .25), rgba(75, 15, 30, .6)); }
.cpvp-author__mono span { font-family: var(--cpvp-display); font-size: 64px; color: var(--cpvp-gold); letter-spacing: .04em; }
.cpvp-author__role { font-family: var(--cpvp-sans); font-size: 14px; color: var(--cpvp-gold); margin: 12px 0 20px !important; letter-spacing: .03em; }
.cpvp-author p:not(.cpvp-eyebrow):not(.cpvp-author__role) { color: var(--cpvp-ivory-2); max-width: 62ch; }
.cpvp-author__areas { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 26px !important; }
.cpvp-author__areas li { display: inline-flex; align-items: center; gap: 9px; padding: 8px 15px; border-radius: 99px; border: 1px solid var(--cpvp-line); font-family: var(--cpvp-sans); font-size: 13px; color: var(--cpvp-ivory-2); }
.cpvp-author__areas li::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--sec); }

/* ---------- Cierre ---------- */
.cpvp-final { padding: clamp(80px, 10vw, 140px) 0 clamp(70px, 8vw, 110px); text-align: center; background: radial-gradient(60% 70% at 50% 0%, rgba(122, 22, 44, .55), transparent 70%), var(--cpvp-bg); border-top: 1px solid var(--cpvp-line); }
.cpvp-final .cpvp-lead { margin-left: auto; margin-right: auto; }
.cpvp-final__covers { display: flex; justify-content: center; gap: 16px; margin-bottom: 44px; }
.cpvp-final__covers a { width: clamp(70px, 9vw, 110px); transition: transform .4s cubic-bezier(.2, .8, .2, 1); }
.cpvp-final__covers a:nth-child(odd) { transform: translateY(10px); }
.cpvp-final__covers a:hover { transform: translateY(-6px); }
.cpvp-final__covers .cpvp-gen { box-shadow: 0 24px 40px -18px rgba(0, 0, 0, .9); }
.cpvp-final__covers img { width: 100%; aspect-ratio: 2 / 3; object-fit: cover; border-radius: 2px 4px 4px 2px; box-shadow: 0 24px 40px -18px rgba(0, 0, 0, .9); }
.cpvp-final__list { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 34px !important; }
.cpvp-final__list a { display: inline-flex; align-items: center; gap: 10px; padding: 13px 20px; border-radius: 999px; border: 1px solid var(--cpvp-line); font-style: italic; font-size: 17px; transition: border-color .3s, background-color .3s; }
.cpvp-final__list a:hover { border-color: var(--sec, var(--cpvp-accent)); background: color-mix(in srgb, var(--sec, var(--cpvp-accent)) 10%, transparent); }
.cpvp-final__list .cpvp-ico { color: var(--sec, var(--cpvp-accent)); }
.cpvp-note { font-family: var(--cpvp-sans); font-size: 12px; color: var(--cpvp-muted); margin-top: 34px !important; }

/* ---------- Animación de entrada ---------- */
.cpvp-js .cpvp-reveal { opacity: 0; transform: translateY(26px); transition: opacity 1s cubic-bezier(.2, .8, .2, 1), transform 1s cubic-bezier(.2, .8, .2, 1); }
.cpvp-js .cpvp-reveal.is-in { opacity: 1; transform: none; }
.cpvp-pulse { color: inherit; }

@media (prefers-reduced-motion: reduce) {
	.cpvp *, .cpvp *::before, .cpvp *::after { transition: none !important; animation: none !important; }
	.cpvp-js .cpvp-reveal { opacity: 1; transform: none; }
}

/* ---------- Responsive ---------- */
@media (max-width: 980px) {
	.cpvp { font-size: 18px; }
	.cpvp-hero__grid, .cpvp-spot__grid, .cpvp-book, .cpvp-author__grid { grid-template-columns: 1fr; }
	.cpvp-nav__inner { display: flex; overflow-x: auto; scrollbar-width: none; scroll-snap-type: x mandatory; }
	.cpvp-nav__inner::-webkit-scrollbar { display: none; }
	.cpvp-nav__item { flex: 0 0 auto; padding: 16px 16px; scroll-snap-align: start; }
	.cpvp-nav .cpvp-wrap { width: 100%; }
	.cpvp-area__head { grid-template-columns: 1fr; gap: 6px; }
	.cpvp-area__index { font-size: 64px; }
	.cpvp-seal { width: 88px; height: 88px; font-size: 14px; right: 2%; }
	.cpvp-hero__stack { height: clamp(300px, 70vw, 460px); order: -1; }
	.cpvp-stack__item { width: clamp(130px, 30vw, 200px); }
	.cpvp-fan--5 .cpvp-stack__item, .cpvp-fan--6 .cpvp-stack__item, .cpvp-fan--7 .cpvp-stack__item { width: clamp(108px, 25vw, 170px); }
	.cpvp-fan { --step: 26%; } .cpvp-fan--6, .cpvp-fan--7 { --step: 19%; }
	.cpvp-book:nth-child(even) .cpvp-book__media { order: 0; }
	.cpvp-book__num { left: 50% !important; right: auto !important; transform: translateX(-140%); }
	.cpvp-book__media, .cpvp-spot__media { text-align: center; }
	.cpvp-app { grid-template-columns: 1fr; text-align: left; }
	.cpvp-phone { margin: 0 auto; }
	.cpvp-author__grid { text-align: left; }
	.cpvp-author__photo img { width: 220px; }
}
@media (max-width: 600px) {
	.cpvp-wrap { width: calc(100% - 32px); }
	.cpvp-stats { grid-template-columns: 1fr; gap: 14px; }
	.cpvp-stats li { flex-direction: row; align-items: baseline; gap: 10px; }
	.cpvp-3d { padding: 10px 26px 36px 10px; }
	.cpvp-3d--md, .cpvp-3d--lg { --w: min(62vw, 240px); --t: 28px; }
	.cpvp-actions { flex-direction: column; align-items: stretch; }
	.cpvp-btn { justify-content: center; }
	.cpvp-appcard { grid-template-columns: 72px 1fr; }
	.cpvp-appcard__cover { width: 72px; }
	.cpvp-final__covers { gap: 10px; }
	.cpvp-soon__grid { grid-template-columns: repeat(2, 1fr); gap: 18px; }
	.cpvp-soon__book { font-size: 20px; }
	.cpvp-soon__hook { font-size: 16px; }
	.cpvp-empty { flex-direction: column; align-items: flex-start; }
	.cpvp-nav__item { font-size: 13px; }
	body.admin-bar .cpvp-nav { --cpvp-top: 0px; }
}

/* ---------- Ficha ampliada de un próximo título (ventana) ---------- */
.cpvp-dialog { width: min(980px, calc(100vw - 32px)); max-height: calc(100vh - 48px); padding: 0; border: 1px solid color-mix(in srgb, var(--book-accent, var(--cpvp-gold)) 35%, transparent); border-radius: 26px; background: radial-gradient(70% 60% at 85% 0%, color-mix(in srgb, var(--book-accent, var(--cpvp-accent)) 16%, transparent), transparent 70%), #140a0c; color: var(--cpvp-ivory); box-shadow: 0 60px 120px -30px rgba(0, 0, 0, .95); overflow: auto; }
.cpvp-dialog::backdrop { background: rgba(8, 4, 5, .78); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.cpvp-dialog[open] { animation: cpvp-pop .45s cubic-bezier(.2, .8, .2, 1); }
@keyframes cpvp-pop { from { opacity: 0; transform: translateY(18px) scale(.98); } to { opacity: 1; transform: none; } }
.cpvp-dialog__grid { display: grid; grid-template-columns: minmax(200px, 300px) 1fr; gap: clamp(24px, 4vw, 56px); padding: clamp(24px, 4vw, 52px); align-items: start; }
.cpvp-dialog__cover img { width: 100%; aspect-ratio: 2 / 3; object-fit: cover; border-radius: 3px 6px 6px 3px; box-shadow: 0 40px 70px -30px rgba(0, 0, 0, .95); }
.cpvp-dialog__title { font-family: var(--cpvp-display); font-size: clamp(32px, 3.6vw, 48px); line-height: 1.04; margin: 0 0 12px !important; }
.cpvp-dialog .cpvp-soon__hook { font-size: 20px; margin: 0 0 18px !important; }
.cpvp-dialog .cpvp-more__body { font-size: 17.5px; padding: 18px 0 0; border-top: 1px solid var(--cpvp-line); }
.cpvp-dialog .cpvp-more__body .cpvp-bullets li { font-size: 17px; }
.cpvp-dialog__close { position: sticky; top: 14px; display: block; margin: 14px 14px -58px auto; width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--cpvp-line); background: rgba(15, 8, 9, .7); color: var(--cpvp-ivory); font-size: 22px; line-height: 1; cursor: pointer; z-index: 2; transition: background-color .3s, border-color .3s; }
.cpvp-dialog__close:hover { border-color: var(--book-accent, var(--cpvp-gold)); background: color-mix(in srgb, var(--book-accent, var(--cpvp-gold)) 18%, transparent); }
.cpvp-dialog__close:focus-visible { outline: 2px solid var(--cpvp-gold); outline-offset: 3px; }
.cpvp-dialog__badge { display: inline-block; margin-top: 18px; font-family: var(--cpvp-sans); font-size: 11px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: #160b0c; background: var(--book-accent, var(--cpvp-gold)); padding: 7px 14px; border-radius: 99px; }
html.cpvp-modal-open { overflow: hidden; }
.cpvp-dialog .cpvp-kicker { color: var(--book-accent, var(--cpvp-gold)); }
@media (max-width: 700px) {
	.cpvp-dialog__grid { grid-template-columns: 1fr; padding-top: 28px; }
	.cpvp-soon { padding: 22px 16px; border-radius: 20px; }
	.cpvp-soon__ribbon { font-size: 9.5px; padding: 5px 10px 5px 9px; bottom: 10px; letter-spacing: .14em; }
	.cpvp-dialog__cover { max-width: 200px; }
}

/* =====================================================================
   Página de presentación de la Colección de Sexología Clínica · [cpv_coleccion]
   ===================================================================== */
.cpvc { --book-accent: var(--cpvp-accent); }

/* ---------- Portada ---------- */
.cpvc-hero { position: relative; padding: clamp(72px, 9vw, 130px) 0 clamp(56px, 6vw, 84px); }
.cpvc-hero__bg {
	position: absolute; inset: 0; z-index: -1;
	background:
		radial-gradient(55% 65% at 76% 42%, rgba(122, 22, 44, .8), transparent 70%),
		radial-gradient(38% 46% at 6% 0%, rgba(201, 164, 106, .16), transparent 70%),
		linear-gradient(180deg, #1c0a10 0%, var(--cpvp-bg) 100%);
}
.cpvc-hero__bg::after { content: ""; position: absolute; inset: 0; opacity: .05; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
.cpvc-hero__inner { display: grid; grid-template-columns: .95fr 1.05fr; gap: clamp(28px, 4vw, 64px); align-items: center; }
.cpvc-hero__title { font-family: var(--cpvp-display); font-weight: 400; font-size: clamp(42px, 5.4vw, 78px) !important; line-height: 1.02 !important; letter-spacing: -.012em; margin-top: 18px !important; }
.cpvc-hero__copy .cpvp-actions { margin-top: 36px; }

.cpvc-fan { position: relative; height: clamp(360px, 38vw, 540px); }
.cpvc-fan__item {
	--step: 6.6deg;
	--rot: calc((var(--i) - (var(--n) - 1) / 2) * var(--step));
	position: absolute; left: 50%; bottom: 20%;
	width: clamp(112px, 11.5vw, 172px); aspect-ratio: 2 / 3;
	margin-left: calc(clamp(112px, 11.5vw, 172px) / -2);
	transform-origin: 50% 230%;
	transform: rotate(var(--rot));
	border-radius: 2px 5px 5px 2px; overflow: hidden;
	box-shadow: 0 30px 50px -22px rgba(0, 0, 0, .85), 0 0 0 1px rgba(255, 255, 255, .06);
	transition: transform .7s cubic-bezier(.2, .8, .2, 1), box-shadow .5s;
	z-index: calc(20 - (var(--i) - (var(--n) - 1) / 2) * (var(--i) - (var(--n) - 1) / 2));
}
.cpvc-fan__item img, .cpvc-fan__item .cpvp-gen { width: 100%; height: 100%; object-fit: cover; display: block; }
.cpvc-fan__item::after { content: ""; position: absolute; inset: 0; background: linear-gradient(100deg, rgba(255, 255, 255, .16), transparent 28%, transparent 72%, rgba(0, 0, 0, .25)); pointer-events: none; }
.cpvc-fan:hover .cpvc-fan__item { --step: 7.6deg; }
.cpvc-fan__item:hover { transform: rotate(var(--rot)) translateY(-26px); z-index: 40; box-shadow: 0 44px 60px -22px rgba(0, 0, 0, .9), 0 0 0 1px rgba(242, 125, 114, .5); }
.cpvp-js .cpvc-fan__item { opacity: 0; transform: rotate(0deg) translateY(30px); }
.cpvp-js .cpvc-fan.is-in .cpvc-fan__item { opacity: 1; transform: rotate(var(--rot)); transition-delay: calc(var(--i) * 60ms); }
.cpvp-js .cpvc-fan.is-in .cpvc-fan__item:hover { transform: rotate(var(--rot)) translateY(-26px); transition-delay: 0s; }

.cpvc-stats { display: grid; grid-template-columns: repeat(5, 1fr); gap: 18px; margin-top: clamp(40px, 5vw, 64px) !important; padding-top: 30px !important; border-top: 1px solid var(--cpvp-line); }
.cpvc-stats li { display: flex; flex-direction: column; gap: 6px; }
.cpvc-stats strong { font-family: var(--cpvp-display); font-weight: 400; font-size: clamp(30px, 3.4vw, 46px); line-height: 1; color: var(--cpvp-gold); }
.cpvc-stats span { font-family: var(--cpvp-sans); font-size: 13px; letter-spacing: .02em; color: var(--cpvp-muted); line-height: 1.4; }

/* ---------- Manifiesto ---------- */
.cpvc-manifest { padding: clamp(80px, 10vw, 140px) 0; border-top: 1px solid var(--cpvp-line); background: linear-gradient(180deg, var(--cpvp-bg) 0%, var(--cpvp-bg-2) 100%); }
.cpvc-manifest__grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px, 6vw, 96px); align-items: start; }
.cpvc-manifest__quote { font-family: var(--cpvp-display); font-style: italic; font-size: clamp(32px, 3.8vw, 54px); line-height: 1.12; color: var(--cpvp-ivory); position: relative; padding-top: 34px !important; }
.cpvc-manifest__quote::before { content: ""; position: absolute; top: 0; left: 0; width: 64px; height: 2px; background: var(--cpvp-accent); }
.cpvc-manifest__text p { color: var(--cpvp-ivory-2); font-size: clamp(18px, 1.5vw, 21px); }
.cpvc-manifest__text p + p { margin-top: 18px !important; }
.cpvc-pillars { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; margin-top: clamp(56px, 7vw, 96px) !important; }
.cpvc-pillar { padding: 30px 26px 30px; border: 1px solid var(--cpvp-line); border-radius: var(--cpvp-radius); background: linear-gradient(160deg, rgba(246, 237, 227, .04), rgba(246, 237, 227, 0)); transition: border-color .4s, transform .5s cubic-bezier(.2, .8, .2, 1); }
.cpvc-pillar:hover { border-color: rgba(201, 164, 106, .45); transform: translateY(-4px); }
.cpvc-pillar__ico { width: 34px; height: 34px; color: var(--cpvp-gold); margin-bottom: 20px; }
.cpvc-pillar h3 { font-family: var(--cpvp-display); font-weight: 400; font-size: 24px !important; line-height: 1.15 !important; margin-bottom: 10px !important; color: var(--cpvp-ivory); }
.cpvc-pillar p { font-size: 17px; color: var(--cpvp-muted); line-height: 1.5; }
.cpvc-pillar:nth-child(2) { transition-delay: .08s; } .cpvc-pillar:nth-child(3) { transition-delay: .16s; } .cpvc-pillar:nth-child(4) { transition-delay: .24s; }

/* ---------- Estantería ---------- */
.cpvc-shelf { padding: clamp(80px, 10vw, 140px) 0; border-top: 1px solid var(--cpvp-line); background: radial-gradient(50% 50% at 50% 0%, rgba(122, 22, 44, .35), transparent 70%), var(--cpvp-bg); }
.cpvc-head { text-align: center; max-width: 760px; margin: 0 auto clamp(40px, 5vw, 64px) !important; }
.cpvc-head .cpvp-lead { margin-left: auto; margin-right: auto; }
.cpvc-spines { display: none; }
.cpvp-js .cpvc-spines {
	display: flex; align-items: flex-end; justify-content: center; gap: 6px;
	padding: 0 8px 0; margin-bottom: 0;
	border-bottom: 10px solid #2a1416;
	box-shadow: 0 14px 30px -14px rgba(0, 0, 0, .9);
	position: relative;
}
.cpvc-spine {
	--h: 256px;
	appearance: none; cursor: pointer; border: 0; margin: 0;
	position: relative; display: flex; flex-direction: column; align-items: center; justify-content: space-between;
	width: clamp(44px, 5vw, 66px); height: var(--h);
	padding: 16px 0 14px !important;
	border-radius: 3px 3px 0 0;
	background:
		linear-gradient(90deg, rgba(0, 0, 0, .35), rgba(255, 255, 255, .08) 22%, rgba(0, 0, 0, 0) 45%, rgba(0, 0, 0, .3)),
		linear-gradient(180deg, #5b1324, #3a0b17);
	color: var(--cpvp-ivory); font: inherit;
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .05);
	transition: transform .45s cubic-bezier(.2, .8, .2, 1), background .3s, box-shadow .3s;
}
.cpvc-spine:nth-child(3n+2) { --h: 292px; } .cpvc-spine:nth-child(3n) { --h: 278px; } .cpvc-spine:nth-child(3n+1) { --h: 300px; }
.cpvc-spine:nth-child(4n) { --h: 286px; }
.cpvc-spine::before, .cpvc-spine::after { content: ""; position: absolute; left: 10%; right: 10%; height: 1px; background: rgba(201, 164, 106, .55); }
.cpvc-spine::before { top: 46px; } .cpvc-spine::after { bottom: 40px; }
.cpvc-spine__n { font-family: var(--cpvp-display); font-size: 20px; color: var(--cpvp-gold); line-height: 1; }
.cpvc-spine__t { writing-mode: vertical-rl; transform: rotate(180deg); font-family: var(--cpvp-serif); font-size: 14px; letter-spacing: .03em; line-height: 1.15; height: calc(var(--h) - 112px); overflow: hidden; white-space: normal; text-align: center; }
.cpvc-spine__a { font-family: var(--cpvp-sans); font-size: 9px; letter-spacing: .16em; color: rgba(246, 237, 227, .55); }
.cpvc-spine:hover { transform: translateY(-10px); }
.cpvc-spine[aria-selected="true"] { transform: translateY(-22px); background: linear-gradient(90deg, rgba(0, 0, 0, .25), rgba(255, 255, 255, .18) 22%, rgba(0, 0, 0, 0) 45%, rgba(0, 0, 0, .25)), linear-gradient(180deg, #f27d72, #c64f4a); color: #1a0a0c; box-shadow: 0 18px 36px -14px rgba(242, 125, 114, .7); }
.cpvc-spine[aria-selected="true"] .cpvc-spine__n { color: #1a0a0c; }
.cpvc-spine[aria-selected="true"] .cpvc-spine__a { color: rgba(26, 10, 12, .6); }
.cpvc-spine[aria-selected="true"]::before, .cpvc-spine[aria-selected="true"]::after { background: rgba(26, 10, 12, .4); }
.cpvc-spine:focus-visible { outline: 2px solid var(--cpvp-gold); outline-offset: 3px; }

.cpvc-panels { position: relative; }
.cpvc-panel {
	display: grid; grid-template-columns: minmax(260px, .8fr) 1.2fr; gap: clamp(28px, 5vw, 80px); align-items: center;
	padding: clamp(40px, 5vw, 72px) clamp(24px, 4vw, 64px);
	border: 1px solid var(--cpvp-line); border-top: 0; border-radius: 0 0 var(--cpvp-radius) var(--cpvp-radius);
	background: linear-gradient(170deg, rgba(246, 237, 227, .035), rgba(246, 237, 227, 0) 60%), var(--cpvp-bg-2);
	position: relative; overflow: hidden;
}
.cpvc-panel + .cpvc-panel { margin-top: 28px; border-top: 1px solid var(--cpvp-line); border-radius: var(--cpvp-radius); }
.cpvp-js .cpvc-panel { display: none; margin-top: 0; border-top: 0; border-radius: 0 0 var(--cpvp-radius) var(--cpvp-radius); }
.cpvp-js .cpvc-panel.is-active { display: grid; animation: cpvc-in .6s cubic-bezier(.2, .8, .2, 1); }
@keyframes cpvc-in { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
.cpvc-panel__media { position: relative; display: flex; justify-content: center; }
.cpvc-panel__num { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -54%); font-family: var(--cpvp-display); font-size: clamp(220px, 26vw, 380px); line-height: 1; color: transparent; -webkit-text-stroke: 1px rgba(201, 164, 106, .32); pointer-events: none; z-index: 0; }
.cpvc-panel__media .cpvp-3d { z-index: 1; }
.cpvc-panel__body .cpvp-book__title { font-size: clamp(34px, 3.6vw, 52px) !important; }
.cpvc-for { margin: 0 0 20px !important; padding: 14px 18px !important; border-left: 2px solid var(--book-accent); background: color-mix(in srgb, var(--book-accent) 8%, transparent); border-radius: 0 10px 10px 0; font-style: italic; color: var(--cpvp-ivory); font-size: 18px; }
.cpvc-for span { font-family: var(--cpvp-sans); font-style: normal; font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--book-accent); margin-right: 8px; }
.cpvc-panel .cpvp-actions { align-items: center; margin-top: 28px; }
.cpvc-soon { display: inline-flex; align-items: center; gap: 12px; padding: 14px 22px; border-radius: 999px; border: 1px solid color-mix(in srgb, var(--book-accent) 55%, transparent); color: var(--book-accent); font-family: var(--cpvp-sans); font-size: 14px; font-weight: 600; letter-spacing: .02em; }
.cpvc-pager { display: none; }
.cpvp-js .cpvc-pager { display: flex; align-items: center; gap: 14px; margin-top: 30px; padding-top: 22px; border-top: 1px solid var(--cpvp-line); }
.cpvc-pager__btn { appearance: none; cursor: pointer; width: 46px; height: 46px; border-radius: 50%; border: 1px solid var(--cpvp-line); background: transparent; color: var(--cpvp-ivory); display: grid; place-items: center; transition: border-color .3s, background .3s; padding: 0 !important; }
.cpvc-pager__btn:hover { border-color: var(--book-accent); background: color-mix(in srgb, var(--book-accent) 12%, transparent); }
.cpvc-pager__btn .cpvp-ico { width: 20px; height: 20px; }
.cpvc-pager__n { font-family: var(--cpvp-sans); font-size: 13px; letter-spacing: .14em; color: var(--cpvp-muted); font-variant-numeric: tabular-nums; }

/* ---------- ¿Por dónde empiezo? ---------- */
.cpvc-finder { padding: clamp(80px, 10vw, 140px) 0; border-top: 1px solid var(--cpvp-line); background: linear-gradient(180deg, var(--cpvp-bg-2), var(--cpvp-bg)); }
.cpvc-finder__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; }
.cpvc-finder__grid > li:nth-child(even) { transition-delay: .08s; }
.cpvc-phrase { display: flex; flex-direction: column; gap: 14px; height: 100%; padding: 26px 28px; border-radius: var(--cpvp-radius); border: 1px solid var(--cpvp-line); background: rgba(246, 237, 227, .02); text-decoration: none !important; color: inherit !important; transition: border-color .35s, background .35s, transform .45s cubic-bezier(.2, .8, .2, 1); }
.cpvc-phrase:hover, .cpvc-phrase:focus-visible { border-color: var(--book-accent); background: color-mix(in srgb, var(--book-accent) 8%, transparent); transform: translateY(-3px); }
.cpvc-phrase__q { font-family: var(--cpvp-display); font-style: italic; font-size: clamp(22px, 2vw, 28px); line-height: 1.22; color: var(--cpvp-ivory); }
.cpvc-phrase__b { display: flex; align-items: center; gap: 10px; margin-top: auto; font-family: var(--cpvp-sans); font-size: 14px; color: var(--cpvp-muted); }
.cpvc-phrase__b > span { color: var(--book-accent); font-weight: 600; letter-spacing: .06em; white-space: nowrap; }
.cpvc-phrase__b .cpvp-ico { width: 18px; height: 18px; margin-left: auto; color: var(--book-accent); transition: transform .3s; flex: none; }
.cpvc-phrase:hover .cpvp-ico { transform: translateX(4px); }

/* ---------- Cierre ---------- */
.cpvc-final__row { display: flex; justify-content: center; gap: clamp(6px, 1vw, 14px); margin-bottom: 48px; }
.cpvc-final__row a { width: clamp(52px, 7vw, 96px); transition: transform .4s cubic-bezier(.2, .8, .2, 1); }
.cpvc-final__row a:nth-child(odd) { transform: translateY(10px); }
.cpvc-final__row a:hover { transform: translateY(-8px); }
.cpvc-final__row img, .cpvc-final__row .cpvp-gen { width: 100%; aspect-ratio: 2 / 3; object-fit: cover; border-radius: 2px 4px 4px 2px; box-shadow: 0 24px 40px -18px rgba(0, 0, 0, .9); display: block; }
.cpvc-final__actions { justify-content: center; margin-top: 34px; }

/* ---------- Adaptación ---------- */
@media (max-width: 1100px) {
	.cpvc-pillars { grid-template-columns: repeat(2, 1fr); }
	.cpvc-stats { grid-template-columns: repeat(3, 1fr); row-gap: 26px; }
}
@media (max-width: 980px) {
	.cpvc-hero__inner { grid-template-columns: 1fr; }
	.cpvc-fan { height: clamp(300px, 62vw, 460px); max-width: 640px; width: 100%; margin: 0 auto; }
	.cpvc-fan__item { width: clamp(96px, 20vw, 150px); margin-left: calc(clamp(96px, 20vw, 150px) / -2); }
	.cpvc-manifest__grid { grid-template-columns: 1fr; }
	.cpvc-panel, .cpvp-js .cpvc-panel.is-active { grid-template-columns: 1fr; text-align: left; }
	.cpvc-panel__media { margin-bottom: 8px; }
	.cpvp-js .cpvc-spines { justify-content: flex-start; overflow-x: auto; overflow-y: hidden; padding-top: 26px; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
	.cpvp-js .cpvc-spines::-webkit-scrollbar { display: none; }
	.cpvc-spine { flex: none; }
}
@media (max-width: 600px) {
	.cpvc-hero { padding-top: 56px; }
	.cpvc-fan { height: 280px; }
	.cpvc-fan__item { --step: 7.4deg; width: 92px; margin-left: -46px; transform-origin: 50% 250%; }
	.cpvc-stats { grid-template-columns: repeat(2, 1fr); }
	.cpvc-stats li:last-child { grid-column: 1 / -1; }
	.cpvc-pillars, .cpvc-finder__grid { grid-template-columns: 1fr; }
	.cpvc-spine { width: 52px; }
	.cpvc-spine:nth-child(n) { --h: 236px; }
	.cpvc-spine:nth-child(3n+2) { --h: 250px; } .cpvc-spine:nth-child(3n) { --h: 242px; }
	.cpvc-spine__t { font-size: 12.5px; }
	.cpvc-panel { padding: 32px 20px 28px; }
	.cpvc-panel__num { font-size: 200px; }
	.cpvc-phrase { padding: 22px 22px; }
	.cpvc-final__row { flex-wrap: wrap; max-width: 360px; margin-left: auto; margin-right: auto; }
	.cpvc-final__row a { width: 54px; }
	.cpvc-final__row a:nth-child(odd) { transform: none; }
}
@media (prefers-reduced-motion: reduce) {
	.cpvp-js .cpvc-fan__item { opacity: 1; transform: rotate(var(--rot)); }
	.cpvp-js .cpvc-panel.is-active { animation: none; }
}
.cpvc-head .cpvp-h2, .cpvc-hero__title, .cpvc-final .cpvp-h2 { text-wrap: balance; }
@media (max-width: 600px) {
	.cpvc-fan { height: 250px; margin-top: -8px; }
	.cpvc-fan__item { bottom: 12%; }
	.cpvc-spine__t { font-size: 12px; line-height: 1.1; }
}

/* =====================================================================
   Página de cada título · [cpv_libro_pagina]
   ===================================================================== */
.cpvp-more__page { margin-top: 22px !important; }
.cpvp-more__page a { display: inline-flex; align-items: center; gap: 8px; font-family: var(--cpvp-sans); font-size: 14px; font-weight: 600; color: var(--book-accent, var(--cpvp-accent)) !important; text-decoration: none !important; }
.cpvp-more__page .cpvp-ico { width: 18px; height: 18px; transition: transform .3s; }
.cpvp-more__page a:hover .cpvp-ico { transform: translateX(4px); }
.cpvc-details { margin-top: 16px !important; }

.cpvb-hero { position: relative; padding: clamp(36px, 4vw, 56px) 0 clamp(56px, 6vw, 84px); }
.cpvb-crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; font-family: var(--cpvp-sans); font-size: 13px; color: var(--cpvp-muted); margin-bottom: clamp(28px, 4vw, 56px); }
.cpvb-crumbs a { color: var(--cpvp-muted) !important; text-decoration: none !important; transition: color .3s; }
.cpvb-crumbs a:hover { color: var(--cpvp-ivory) !important; }
.cpvb-crumbs [aria-current] { color: var(--cpvp-gold); }
.cpvb-hero__grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(32px, 5vw, 80px); align-items: center; }
.cpvb-hero__title { font-family: var(--cpvp-display); font-weight: 400; font-size: clamp(42px, 5.6vw, 82px) !important; line-height: 1.02 !important; letter-spacing: -.012em; margin: 16px 0 0 !important; text-wrap: balance; }
.cpvb-hero__subtitle { font-style: italic; font-size: clamp(20px, 1.8vw, 25px); line-height: 1.4; color: var(--cpvp-ivory-2); max-width: 36ch; margin-top: 22px !important; }
.cpvb-hero__actions { margin-top: 36px; align-items: center; }
.cpvb-hero__read { display: inline-flex; align-items: center; gap: 10px; margin-top: 26px; font-family: var(--cpvp-sans); font-size: 14px; color: var(--cpvp-muted) !important; text-decoration: none !important; border-bottom: 1px solid var(--cpvp-line); padding-bottom: 4px; transition: color .3s, border-color .3s; }
.cpvb-hero__read .cpvp-ico { width: 18px; height: 18px; transform: rotate(90deg); color: var(--book-accent); }
.cpvb-hero__read:hover { color: var(--cpvp-ivory) !important; border-color: var(--book-accent); }
.cpvb-hero__media { position: relative; display: flex; justify-content: center; }
.cpvb-hero__num { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -52%); font-family: var(--cpvp-display); font-size: clamp(260px, 32vw, 480px); line-height: 1; color: transparent; -webkit-text-stroke: 1px rgba(201, 164, 106, .3); pointer-events: none; }
.cpvb-hero__media .cpvp-3d { z-index: 1; }
.cpvb-stats { grid-template-columns: repeat(4, 1fr); }

.cpvb-for { padding: clamp(72px, 9vw, 120px) 0; text-align: center; border-top: 1px solid var(--cpvp-line); background: radial-gradient(50% 80% at 50% 50%, color-mix(in srgb, var(--book-accent) 12%, transparent), transparent 70%), var(--cpvp-bg-2); }
.cpvb-for .cpvp-eyebrow { justify-content: center; }
.cpvb-for__q { font-family: var(--cpvp-display); font-style: italic; font-size: clamp(34px, 4.6vw, 64px); line-height: 1.1; max-width: 20ch; margin: 22px auto 0 !important; color: var(--cpvp-ivory); text-wrap: balance; }
.cpvb-for__hook { margin-top: 24px !important; color: var(--cpvp-muted); font-size: 19px; }
.cpvb-for__hook em { color: var(--book-accent); }

.cpvb-about { padding: clamp(80px, 10vw, 140px) 0; border-top: 1px solid var(--cpvp-line); }
.cpvb-about__grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(32px, 6vw, 96px); align-items: start; }
.cpvb-about__grid h2 { text-wrap: balance; }
.cpvb-about__text p { color: var(--cpvp-ivory-2); font-size: clamp(18px, 1.5vw, 21px); }
.cpvb-about__text p + p { margin-top: 18px !important; }
.cpvb-about__text p:first-child::first-letter { font-family: var(--cpvp-display); float: left; font-size: 4.1em; line-height: .82; padding: 6px 12px 0 0; color: var(--book-accent); }
.cpvb-discover { margin-top: clamp(56px, 7vw, 88px) !important; }
.cpvb-learn { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin: 18px 0 0 !important; padding: 0 !important; list-style: none !important; }
.cpvb-learn li { display: flex; flex-direction: column; gap: 14px; padding: 26px 24px; border-radius: var(--cpvp-radius); border: 1px solid var(--cpvp-line); background: linear-gradient(160deg, rgba(246, 237, 227, .04), rgba(246, 237, 227, 0)); }
.cpvb-learn li span { font-family: var(--cpvp-display); font-size: 30px; line-height: 1; color: var(--book-accent); }
.cpvb-learn li p { font-size: 18px; line-height: 1.45; color: var(--cpvp-ivory); }
.cpvb-learn li:nth-child(3n+2) { transition-delay: .08s; } .cpvb-learn li:nth-child(3n) { transition-delay: .16s; }

.cpvb-quote { padding: clamp(80px, 10vw, 130px) 0; border-top: 1px solid var(--cpvp-line); background: linear-gradient(180deg, var(--cpvp-wine-2), var(--cpvp-bg)); text-align: center; }
.cpvb-quote blockquote { margin: 0 auto !important; max-width: 900px; padding: 0 !important; border: 0 !important; background: none !important; }
.cpvb-quote blockquote::before { content: "“"; display: block; font-family: var(--cpvp-display); font-size: 120px; line-height: .6; color: var(--book-accent); margin-bottom: 18px; }
.cpvb-quote p { font-family: var(--cpvp-display); font-style: italic; font-size: clamp(30px, 3.8vw, 52px) !important; line-height: 1.18 !important; color: var(--cpvp-ivory); text-wrap: balance; }
.cpvb-quote cite { display: block; margin-top: 26px; font-family: var(--cpvp-sans); font-style: normal; font-size: 13px; letter-spacing: .16em; text-transform: uppercase; color: var(--cpvp-gold); }

.cpvb-read { padding: clamp(80px, 10vw, 140px) 0; border-top: 1px solid var(--cpvp-line); background: radial-gradient(50% 40% at 50% 30%, rgba(201, 164, 106, .1), transparent 70%), var(--cpvp-bg); }
.cpvb-page {
	position: relative; max-width: 760px; margin: 0 auto;
	padding: clamp(44px, 6vw, 80px) clamp(26px, 6vw, 84px) clamp(56px, 7vw, 90px);
	background: linear-gradient(180deg, #f8f1e7, #efe4d4); color: #2a1a1a;
	border-radius: 4px 10px 10px 4px;
	box-shadow: 0 50px 90px -40px rgba(0, 0, 0, .95), inset 14px 0 18px -14px rgba(60, 30, 20, .35);
}
.cpvb-page::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 200px; background: linear-gradient(180deg, rgba(239, 228, 212, 0), #efe4d4 75%); border-radius: 0 0 10px 4px; pointer-events: none; }
.cpvb-page__kicker { font-family: var(--cpvp-sans); font-size: 12px; letter-spacing: .2em; text-transform: uppercase; color: #9b3a3a; text-align: center; }
.cpvb-page__title { font-family: var(--cpvp-display); font-weight: 400; font-size: clamp(30px, 3.4vw, 44px) !important; line-height: 1.1 !important; color: #2a1416 !important; text-align: center; margin: 12px 0 36px !important; }
.cpvb-page__text p { font-family: var(--cpvp-serif); font-size: clamp(18px, 1.5vw, 20px); line-height: 1.7; color: #2e2220; text-align: justify; hyphens: manual; }
.cpvb-page__text p + p { text-indent: 1.4em; margin-top: 4px !important; }
.cpvb-page__text p:first-child::first-letter { font-family: var(--cpvp-display); float: left; font-size: 4.2em; line-height: .8; padding: 6px 10px 0 0; color: #8e2a33; }
.cpvb-page__more { position: relative; z-index: 1; margin-top: 20px !important; text-align: center; font-family: var(--cpvp-display); font-style: italic; font-size: 20px; color: #8e2a33; }

.cpvb-toc { padding: clamp(80px, 10vw, 140px) 0; border-top: 1px solid var(--cpvp-line); background: var(--cpvp-bg-2); }
.cpvb-toc__grid { display: grid; grid-template-columns: .75fr 1.25fr; gap: clamp(32px, 6vw, 96px); align-items: start; }
.cpvb-toc__grid header { position: sticky; top: 120px; }
.cpvb-toc__list { columns: 2; column-gap: 40px; list-style: none !important; padding: 0 !important; }
.cpvb-toc__list li { break-inside: avoid; display: flex; gap: 14px; align-items: baseline; padding: 11px 0; border-bottom: 1px solid var(--cpvp-line); font-size: 17.5px; line-height: 1.35; color: var(--cpvp-ivory-2); }
.cpvb-toc__list li span { flex: none; min-width: 2.2em; font-family: var(--cpvp-sans); font-size: 12px; letter-spacing: .08em; color: var(--book-accent); font-variant-numeric: tabular-nums; }
.cpvb-toc__list li:first-child span, .cpvb-toc__list li:last-child span { min-width: auto; text-transform: uppercase; }
.cpvb-toc__list li:first-child, .cpvb-toc__list li:last-child { font-style: italic; }

.cpvb-faq { padding: clamp(80px, 10vw, 130px) 0; border-top: 1px solid var(--cpvp-line); }
.cpvb-faq__grid { display: grid; grid-template-columns: .75fr 1.25fr; gap: clamp(32px, 6vw, 96px); align-items: start; }
.cpvb-faq details { border-bottom: 1px solid var(--cpvp-line); }
.cpvb-faq details:first-child { border-top: 1px solid var(--cpvp-line); }
.cpvb-faq summary { cursor: pointer; list-style: none; display: flex; justify-content: space-between; gap: 20px; align-items: center; padding: 22px 0; font-family: var(--cpvp-display); font-size: clamp(20px, 1.8vw, 24px); color: var(--cpvp-ivory); }
.cpvb-faq summary::-webkit-details-marker { display: none; }
.cpvb-faq summary::after { content: "+"; flex: none; width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; border: 1px solid var(--cpvp-line); font-family: var(--cpvp-sans); font-size: 18px; color: var(--book-accent); transition: transform .3s; }
.cpvb-faq details[open] summary::after { transform: rotate(45deg); }
.cpvb-faq details p { padding: 0 0 24px !important; color: var(--cpvp-ivory-2); max-width: 60ch; }

.cpvb-more { padding: clamp(80px, 10vw, 130px) 0 clamp(60px, 7vw, 90px); border-top: 1px solid var(--cpvp-line); background: var(--cpvp-bg-2); }
.cpvb-pager { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.cpvb-pager__item { display: flex; gap: 22px; align-items: center; padding: 22px; border-radius: var(--cpvp-radius); border: 1px solid var(--cpvp-line); text-decoration: none !important; color: inherit !important; transition: border-color .35s, background .35s, transform .45s cubic-bezier(.2, .8, .2, 1); }
.cpvb-pager__item--next { flex-direction: row-reverse; text-align: right; }
.cpvb-pager__item:hover { border-color: var(--book-accent); background: color-mix(in srgb, var(--book-accent) 7%, transparent); transform: translateY(-3px); }
.cpvb-pager__cover { flex: none; width: 82px; }
.cpvb-pager__cover img, .cpvb-pager__cover .cpvp-gen { width: 100%; aspect-ratio: 2 / 3; object-fit: cover; display: block; border-radius: 2px 4px 4px 2px; box-shadow: 0 18px 30px -14px rgba(0, 0, 0, .9); }
.cpvb-pager__text { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.cpvb-pager__dir { display: inline-flex; align-items: center; gap: 8px; font-family: var(--cpvp-sans); font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--book-accent); }
.cpvb-pager__item--next .cpvb-pager__dir { justify-content: flex-end; }
.cpvb-pager__dir .cpvp-ico { width: 16px; height: 16px; }
.cpvb-pager__title { font-family: var(--cpvp-display); font-size: clamp(20px, 1.9vw, 26px); line-height: 1.15; color: var(--cpvp-ivory); }
.cpvb-pager__aud { font-style: italic; font-size: 16px; color: var(--cpvp-muted); }
.cpvb-row { margin: clamp(48px, 6vw, 72px) 0 0 !important; }
.cpvb-row a { opacity: .55; transition: opacity .3s, transform .4s cubic-bezier(.2, .8, .2, 1); }
.cpvb-row a:hover, .cpvb-row a.is-current { opacity: 1; }
.cpvb-row a.is-current img { outline: 2px solid var(--book-accent); outline-offset: 4px; }
.cpvb-more__all { text-align: center; margin-top: 40px !important; }
.cpvb-final .cpvp-h2 { text-wrap: balance; }

@media (max-width: 980px) {
	.cpvb-hero__grid, .cpvb-about__grid, .cpvb-toc__grid, .cpvb-faq__grid { grid-template-columns: 1fr; }
	.cpvb-hero__media { order: -1; }
	.cpvb-toc__grid header { position: static; }
	.cpvb-learn { grid-template-columns: repeat(2, 1fr); }
	.cpvb-stats { grid-template-columns: repeat(2, 1fr); }
	.cpvb-stats li:last-child { grid-column: auto; }
}
@media (max-width: 600px) {
	.cpvb-hero__num { font-size: 240px; }
	.cpvb-learn { grid-template-columns: 1fr; }
	.cpvb-toc__list { columns: 1; }
	.cpvb-pager { grid-template-columns: 1fr; }
	.cpvb-pager__item { padding: 16px; gap: 16px; }
	.cpvb-pager__cover { width: 64px; }
	.cpvb-page__text p { text-align: left; }
	.cpvb-hero__actions .cpvc-soon { width: 100%; justify-content: center; }
}

.cpvb-page__text p.cpvb-break { text-align: center; text-indent: 0; letter-spacing: .4em; color: #8e2a33; margin: 18px 0 !important; }
.cpvb-page__text p.cpvb-break + p { text-indent: 0; }
@media (max-width: 600px) {
	.cpvc-head .cpvp-eyebrow::before { display: none; }
}

/* =====================================================================
   2.4 · Colección de Psicología Clínica · [cpv_coleccion_psicologia]
   Noche azul de la sala de espera, verde del buzón y el color de cada libro.
   ===================================================================== */
.cpvp.cpvc--psicologia, .cpvp.cpvb--psicologia { --cpvp-accent: #8FB7C9; --cpvp-buzon: #2F5E48; --cpvp-buzon-2: #1F4434; --cpvp-bg: #0b0e12; --cpvp-bg-2: #10161c; --cpvp-wine: #16334a; --cpvp-wine-2: #0d1b27; background: var(--cpvp-bg); }
.cpvc--psicologia .cpvc-shelf { background: radial-gradient(50% 50% at 50% 0%, rgba(38, 78, 110, .38), transparent 70%), var(--cpvp-bg); }
.cpvc--psicologia .cpvp-final, .cpvb--psicologia .cpvp-final { background: radial-gradient(60% 70% at 50% 0%, rgba(38, 78, 110, .5), transparent 70%), var(--cpvp-bg); }
.cpvc--psicologia .cpvp-author__mono, .cpvb--psicologia .cpvp-author__mono { background: radial-gradient(circle at 30% 30%, rgba(201, 164, 106, .25), rgba(22, 51, 74, .6)); }
.cpvc--psicologia .cpvc-spines { box-shadow: 0 14px 30px -14px rgba(0, 0, 0, .9); }
.cpvc--psicologia .cpvc-hero__bg, .cpvb--psicologia .cpvc-hero__bg {
	background:
		radial-gradient(55% 65% at 76% 42%, rgba(38, 78, 110, .78), transparent 70%),
		radial-gradient(38% 46% at 6% 0%, rgba(201, 164, 106, .14), transparent 70%),
		linear-gradient(180deg, #0c1620 0%, var(--cpvp-bg) 100%);
}
.cpvc--psicologia .cpvc-spines { border-bottom-color: #1b2630; }
.cpvc--psicologia .cpvc-spine {
	background:
		linear-gradient(90deg, rgba(0, 0, 0, .35), rgba(255, 255, 255, .08) 22%, rgba(0, 0, 0, 0) 45%, rgba(0, 0, 0, .3)),
		linear-gradient(180deg, color-mix(in srgb, var(--book-accent) 34%, #101820), color-mix(in srgb, var(--book-accent) 16%, #0a1016));
}
.cpvc--psicologia .cpvc-spine:nth-child(10) { transform: rotate(3deg); transform-origin: bottom left; }
.cpvc--psicologia .cpvc-spine:nth-child(10):hover { transform: rotate(3deg) translateY(-10px); }
.cpvc--psicologia .cpvc-spine[aria-selected="true"] {
	background: linear-gradient(90deg, rgba(0, 0, 0, .25), rgba(255, 255, 255, .2) 22%, rgba(0, 0, 0, 0) 45%, rgba(0, 0, 0, .22)), linear-gradient(180deg, var(--book-accent), color-mix(in srgb, var(--book-accent) 70%, #000));
	color: #0d141a; box-shadow: 0 18px 36px -14px color-mix(in srgb, var(--book-accent) 70%, transparent);
}
.cpvc--psicologia .cpvc-spine:nth-child(10)[aria-selected="true"] { transform: rotate(3deg) translateY(-22px); }
.cpvc--psicologia .cpvc-spine[aria-selected="true"] .cpvc-spine__n { color: #0d141a; }
.cpvc--psicologia .cpvc-spine[aria-selected="true"] .cpvc-spine__a { color: rgba(13, 20, 26, .65); }
.cpvc--psicologia .cpvc-spine__a { text-transform: uppercase; }

/* Cuenta atrás */
.cpvc-count { margin: 26px 0 0 !important; font-family: var(--cpvp-sans); font-size: 14px; letter-spacing: .02em; color: var(--cpvp-muted); display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; }
.cpvc-count strong { font-family: var(--cpvp-display); font-weight: 400; font-size: clamp(30px, 3.2vw, 40px); line-height: 1; color: var(--cpvp-gold); font-variant-numeric: tabular-nums; }

/* Lugares del libro (panel de la estantería) */
.cpvc-places { margin: 4px 0 22px !important; font-size: 16.5px; color: var(--cpvp-ivory-2); line-height: 1.5; }
.cpvc-places span { display: block; margin-bottom: 4px; font-family: var(--cpvp-sans); font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--book-accent); }

/* El misterio del buzón */
.cpvc-mail { padding: clamp(80px, 10vw, 140px) 0; border-top: 1px solid var(--cpvp-line); background: radial-gradient(70% 80% at 85% 0%, rgba(47, 94, 72, .55), transparent 70%), linear-gradient(180deg, #0d1a14, var(--cpvp-bg)); }
.cpvc-mail__head { display: grid; grid-template-columns: auto 1fr; gap: clamp(24px, 4vw, 56px); align-items: center; max-width: 920px; margin: 0 auto clamp(40px, 5vw, 64px) !important; }
.cpvc-mail__box { width: clamp(96px, 11vw, 140px); height: auto; filter: drop-shadow(0 30px 40px rgba(0, 0, 0, .6)); }
.cpvc-mail__head .cpvp-lead { margin-bottom: 0 !important; }
.cpvc-letters { list-style: none !important; padding: 0 !important; margin: 0 !important; display: grid; grid-template-columns: repeat(5, 1fr); gap: 14px; }
.cpvc-letter { position: relative; display: flex; flex-direction: column; gap: 10px; min-height: 196px; padding: 18px 16px 18px !important; border-radius: 4px; background: #f3ecdf; color: #2a2420; box-shadow: 0 22px 40px -22px rgba(0, 0, 0, .9); overflow: hidden; }
.cpvc-letter__m { font-family: var(--cpvp-sans); font-size: 11px; letter-spacing: .16em; text-transform: uppercase; color: #6a5e54; }
.cpvc-letter__t { margin: 0 !important; font-family: var(--cpvp-serif); font-style: italic; font-size: 17px; line-height: 1.35; color: #2a2420 !important; position: relative; z-index: 1; }
.cpvc-letter__seal { margin-top: auto; align-self: flex-end; width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; font-family: var(--cpvp-display); font-size: 15px; color: #0d141a; background: var(--book-accent); box-shadow: inset 0 0 0 3px rgba(255, 255, 255, .25), 0 4px 10px rgba(0, 0, 0, .25); position: relative; z-index: 1; }
.cpvc-letter.is-sealed { background: #e6dcc8; }
.cpvc-letter.is-sealed::before { content: ""; position: absolute; inset: 0; background: linear-gradient(155deg, transparent 49.4%, rgba(42, 36, 32, .12) 50%, transparent 50.6%), linear-gradient(25deg, transparent 49.4%, rgba(42, 36, 32, .12) 50%, transparent 50.6%); background-size: 100% 62%; background-repeat: no-repeat; pointer-events: none; }
.cpvc-letter.is-sealed .cpvc-letter__t { color: #6a5e54 !important; font-size: 15.5px; }
.cpvc-letter.is-open { transform: rotate(-.6deg); }
.cpvc-letter.is-open:nth-child(even) { transform: rotate(.7deg); }
.cpvc-letter.is-last { background: #1a1512; border: 1px solid rgba(201, 164, 106, .4); }
.cpvc-letter.is-last .cpvc-letter__m { color: var(--cpvp-gold); }
.cpvc-letter.is-last .cpvc-letter__t { color: var(--cpvp-ivory) !important; }
.cpvc-mail__foot { text-align: center; margin: clamp(28px, 4vw, 44px) auto 0 !important; max-width: 52ch; font-style: italic; color: var(--cpvp-ivory-2); }

/* La València de la colección */
.cpvc-route { padding: clamp(80px, 10vw, 140px) 0; border-top: 1px solid var(--cpvp-line); }
.cpvc-route__list { list-style: none !important; padding: 0 !important; margin: 0 !important; display: grid; grid-template-columns: repeat(5, 1fr); border-top: 1px solid var(--cpvp-line); }
.cpvc-route__list li { display: flex; flex-direction: column; gap: 6px; padding: 22px 18px 24px 0 !important; border-bottom: 1px solid var(--cpvp-line); }
.cpvc-route__m { font-family: var(--cpvp-sans); font-size: 11.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--book-accent); }
.cpvc-route__list strong { font-family: var(--cpvp-display); font-weight: 400; font-size: 21px; line-height: 1.2; color: var(--cpvp-ivory); }
.cpvc-route__o { font-size: 15px; color: var(--cpvp-muted); line-height: 1.4; }

.cpvc-faq { background: var(--cpvp-bg-2); }
.cpvc-help { margin: 28px auto 0 !important; max-width: 62ch; text-align: center; font-family: var(--cpvp-sans); font-size: 13px; line-height: 1.55; color: var(--cpvp-muted); }

/* Página de cada libro: la València del libro */
.cpvb-places { margin-top: clamp(40px, 5vw, 64px) !important; padding: clamp(24px, 3vw, 36px) !important; border: 1px solid color-mix(in srgb, var(--book-accent) 35%, transparent); border-radius: var(--cpvp-radius); background: color-mix(in srgb, var(--book-accent) 6%, transparent); }
.cpvb-places ul { list-style: none !important; padding: 0 !important; margin: 10px 0 0 !important; display: flex; flex-wrap: wrap; gap: 10px; }
.cpvb-places li { padding: 8px 16px !important; border-radius: 999px; border: 1px solid color-mix(in srgb, var(--book-accent) 45%, transparent); font-size: 16px; color: var(--cpvp-ivory); }
.cpvb-places__note { margin: 18px 0 0 !important; font-style: italic; color: var(--cpvp-ivory-2); }

/* Estantería de Publicaciones: enlace a la presentación de la colección */
.cpvp-soon__all { flex-basis: 100%; display: inline-flex; align-items: center; gap: 8px; font-family: var(--cpvp-sans); font-size: 14px; font-weight: 600; color: var(--sec, var(--cpvp-gold)) !important; text-decoration: none !important; }
.cpvp-soon__all .cpvp-ico { width: 18px; height: 18px; transition: transform .3s; }
.cpvp-soon__all:hover .cpvp-ico { transform: translateX(4px); }

@media (max-width: 980px) {
	.cpvc-letters, .cpvc-route__list { grid-template-columns: repeat(2, 1fr); }
	.cpvc-route__list li { padding-left: 0 !important; }
}
@media (max-width: 600px) {
	.cpvc-mail__head { grid-template-columns: 1fr; text-align: center; justify-items: center; }
	.cpvc-letter { min-height: 168px; padding: 14px 12px !important; }
	.cpvc-letter__t { font-size: 15.5px; }
	.cpvc-route__list strong { font-size: 18px; }
}
@media (prefers-reduced-motion: reduce) {
	.cpvc-letter.is-open, .cpvc-letter.is-open:nth-child(even) { transform: none; }
}

/* =====================================================================
   2.5 · Página propia de un libro independiente (Magnético)
   ===================================================================== */
.cpvs { --cpvp-wine-2: #1a140c; }
.cpvs-hero__bg { background: radial-gradient(60% 70% at 72% 40%, color-mix(in srgb, var(--book-accent) 22%, transparent), transparent 70%), radial-gradient(40% 50% at 15% 10%, rgba(255, 236, 196, .06), transparent 70%), linear-gradient(180deg, #0b0806, var(--cpvp-bg)); }
.cpvs-hero__title { background: linear-gradient(100deg, #f7e3b2 0%, var(--book-accent) 38%, #fff3d4 52%, var(--book-accent) 70%, #b08442 100%); -webkit-background-clip: text; background-clip: text; color: transparent !important; letter-spacing: .01em; }
.cpvs-byline { margin-top: 22px !important; font-family: var(--cpvp-sans); font-size: 13px; letter-spacing: .16em; text-transform: uppercase; color: var(--cpvp-muted); }
.cpvs-byline span { color: var(--cpvp-ivory); }
.cpvs-hook { margin-top: 18px !important; font-family: var(--cpvp-display); font-style: italic; font-size: clamp(22px, 2vw, 28px); line-height: 1.25; color: var(--book-accent); }
.cpvs .cpvb-hero__media::before { content: ""; position: absolute; inset: 8% 4%; border-radius: 50%; background: radial-gradient(closest-side, color-mix(in srgb, var(--book-accent) 30%, transparent), transparent); filter: blur(30px); }
.cpvs .cpvb-quote { background: radial-gradient(60% 90% at 50% 50%, color-mix(in srgb, var(--book-accent) 12%, transparent), transparent 70%), linear-gradient(180deg, var(--cpvp-wine-2), var(--cpvp-bg)); }
.cpvs .cpvb-page__kicker { color: #8a6a2e; }
.cpvs .cpvb-page__text p:first-child::first-letter, .cpvs .cpvb-page__more { color: #8a6a2e; }
.cpvs-center { justify-content: center; margin-top: clamp(36px, 4vw, 52px) !important; }

.cpvs-gallery { padding: clamp(80px, 10vw, 140px) 0; border-top: 1px solid var(--cpvp-line); background: linear-gradient(180deg, var(--cpvp-bg-2), var(--cpvp-bg)); }
.cpvs-gallery .cpvc-head { text-align: center; margin-bottom: clamp(40px, 5vw, 64px); }
.cpvs-gallery .cpvc-head .cpvp-eyebrow { justify-content: center; }
.cpvs-gallery__list { display: grid; gap: clamp(18px, 2.4vw, 32px); list-style: none !important; margin: 0 !important; padding: 0 !important; }
.cpvs-gallery__list--2 { grid-template-columns: repeat(2, 1fr); } .cpvs-gallery__list--3 { grid-template-columns: repeat(3, 1fr); } .cpvs-gallery__list--4 { grid-template-columns: repeat(4, 1fr); }
.cpvs-gallery__list li { text-align: center; padding: 14px 14px 30px; border-radius: var(--cpvp-radius); border: 1px solid var(--cpvp-line); background: linear-gradient(160deg, rgba(246, 237, 227, .04), rgba(246, 237, 227, 0)); transition: border-color .4s, transform .5s cubic-bezier(.2, .8, .2, 1); }
.cpvs-gallery__list li:hover { border-color: color-mix(in srgb, var(--book-accent) 60%, transparent); transform: translateY(-4px); }
.cpvs-gallery__list li:nth-child(2) { transition-delay: .08s; } .cpvs-gallery__list li:nth-child(3) { transition-delay: .16s; }
.cpvs-gallery__list img { width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; border-radius: calc(var(--cpvp-radius) - 6px); display: block; box-shadow: 0 30px 50px -30px rgba(0, 0, 0, .9); }
.cpvs-gallery__list h3 { margin: 22px 0 8px !important; line-height: 1.15 !important; text-wrap: balance; font-family: var(--cpvp-display); font-weight: 400; font-size: clamp(24px, 2.2vw, 30px) !important; color: var(--book-accent) !important; }
.cpvs-gallery__list p { max-width: 32ch; margin: 0 auto !important; font-size: 17px; line-height: 1.5; color: var(--cpvp-ivory-2); }

.cpvs-specs { padding: clamp(80px, 10vw, 130px) 0; border-top: 1px solid var(--cpvp-line); }
.cpvs-specs__grid { display: grid; grid-template-columns: .75fr 1.25fr; gap: clamp(32px, 6vw, 96px); align-items: start; }
.cpvs-specs__list { margin: 0 !important; display: grid; grid-template-columns: 1fr 1fr; column-gap: 40px; }
.cpvs-specs__list div { display: flex; flex-direction: column; gap: 4px; padding: 16px 0; border-bottom: 1px solid var(--cpvp-line); }
.cpvs-specs__list dt { font-family: var(--cpvp-sans); font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--book-accent); }
.cpvs-specs__list dd { margin: 0 !important; font-size: 18px; color: var(--cpvp-ivory); font-variant-numeric: tabular-nums; }

.cpvs-others__row { display: flex; flex-wrap: wrap; justify-content: center; gap: clamp(16px, 2.4vw, 28px); }
.cpvs-others__row a { width: clamp(110px, 12vw, 150px); display: flex; flex-direction: column; gap: 12px; text-decoration: none !important; opacity: .85 !important; }
.cpvs-others__row a:hover { opacity: 1 !important; transform: translateY(-6px); }
.cpvs-others__row img, .cpvs-others__row .cpvp-gen { width: 100%; aspect-ratio: 2 / 3; object-fit: cover; border-radius: 2px 4px 4px 2px; box-shadow: 0 24px 40px -18px rgba(0, 0, 0, .9); }
.cpvs-others__row span { font-family: var(--cpvp-display); font-size: 16px; line-height: 1.2; color: var(--cpvp-ivory-2); text-align: center; }

.cpvs-final { background: radial-gradient(60% 70% at 50% 0%, color-mix(in srgb, var(--book-accent) 18%, transparent), transparent 70%), var(--cpvp-bg); }
.cpvs-final__cover { width: clamp(130px, 14vw, 170px); margin: 0 auto 34px; }
.cpvs-final__cover img { width: 100%; aspect-ratio: 2 / 3; object-fit: cover; border-radius: 2px 5px 5px 2px; box-shadow: 0 40px 60px -26px rgba(0, 0, 0, .95), 0 0 80px -20px color-mix(in srgb, var(--book-accent) 50%, transparent); }
.cpvs-final .cpvp-lead em { font-family: var(--cpvp-display); font-size: 1.15em; color: var(--cpvp-ivory); }
.cpvs-final__avail { margin-top: 18px !important; font-family: var(--cpvp-sans); font-size: 14px; letter-spacing: .04em; color: var(--cpvp-muted); }
.cpvs-final__note { margin-top: 26px !important; font-family: var(--cpvp-sans); font-size: 12px; color: var(--cpvp-muted); opacity: .8; }

@media (max-width: 900px) {
	.cpvs-gallery__list--3, .cpvs-gallery__list--4 { grid-template-columns: 1fr 1fr; }
	.cpvs-specs__grid { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
	.cpvs-gallery__list--2, .cpvs-gallery__list--3, .cpvs-gallery__list--4 { grid-template-columns: 1fr; }
	.cpvs-specs__list { grid-template-columns: 1fr; }
	.cpvs-others__row a { width: calc(50% - 10px); }
}

.cpvs .cpvb-toc__list li:first-child, .cpvs .cpvb-toc__list li:last-child { font-style: normal; }
.cpvs .cpvb-toc__list li:first-child span, .cpvs .cpvb-toc__list li:last-child span { min-width: 2.2em; text-transform: none; }

/* ==========================================================================
   2.7 · Extras premium: compartir, tiendas, audio, lector tipo libro,
   opiniones, descargable y página del autor
   ========================================================================== */
.cpvx-ico { width: 18px; height: 18px; flex: none; display: block; }
.cpvx-sr, .cpvx-hp { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Compartir */
.cpvx-hero-links { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 26px; margin-top: 22px; }
.cpvx-hero-links .cpvb-hero__read { margin-top: 0; }
.cpvx-share { position: relative; display: inline-block; }
.cpvx-share__btn { display: inline-flex; align-items: center; gap: 9px; padding: 0 0 4px; border: 0; border-bottom: 1px solid var(--cpvp-line); background: none; color: var(--cpvp-muted); font: 14px/1.4 var(--cpvp-sans); cursor: pointer; transition: color .3s, border-color .3s; }
.cpvx-share__btn .cpvx-ico { width: 17px; height: 17px; color: var(--book-accent, var(--cpvp-gold)); }
.cpvx-share__btn:hover, .cpvx-share__btn[aria-expanded="true"] { color: var(--cpvp-ivory); border-color: var(--book-accent, var(--cpvp-gold)); }
.cpvx-share__menu { position: absolute; z-index: 30; left: 0; top: calc(100% + 12px); min-width: 230px; padding: 8px; border-radius: 14px; background: #1b1214; border: 1px solid rgba(246, 237, 227, .14); box-shadow: 0 30px 60px -20px rgba(0, 0, 0, .9); animation: cpvx-pop .25s cubic-bezier(.2, .8, .2, 1); }
.cpvx-share__menu[hidden] { display: none; }
.cpvx-share__menu a, .cpvx-share__menu button { display: flex; width: 100%; align-items: center; gap: 12px; padding: 10px 12px; border: 0; border-radius: 9px; background: none; color: var(--cpvp-ivory-2) !important; font: 14.5px/1.3 var(--cpvp-sans); text-decoration: none !important; text-align: left; cursor: pointer; }
.cpvx-share__menu a:hover, .cpvx-share__menu button:hover { background: rgba(246, 237, 227, .07); color: var(--cpvp-ivory) !important; }
.cpvx-share__menu .cpvx-ico { color: var(--book-accent, var(--cpvp-gold)); }
.cpvx-share__copy.is-done span::after { content: " ✓"; color: var(--book-accent, var(--cpvp-gold)); }
@keyframes cpvx-pop { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }
.cpvx-final-share { display: flex; justify-content: center; margin-top: 26px; }
.cpvx-final-share .cpvx-share__menu { left: 50%; transform: translateX(-50%); animation: none; }

/* Frase para compartir */
.cpvx-qshare { display: flex; align-items: center; justify-content: center; gap: 10px; margin-top: 30px; font: 12px/1 var(--cpvp-sans); letter-spacing: .18em; text-transform: uppercase; color: var(--cpvp-muted); }
.cpvx-qshare span { margin-right: 6px; }
.cpvx-qshare a, .cpvx-qshare button { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; border: 1px solid rgba(246, 237, 227, .2); background: rgba(246, 237, 227, .03); color: var(--cpvp-ivory-2) !important; cursor: pointer; transition: border-color .3s, color .3s, transform .3s; }
.cpvx-qshare a:hover, .cpvx-qshare button:hover { border-color: var(--book-accent); color: var(--book-accent) !important; transform: translateY(-2px); }
.cpvx-qshare button.is-done { border-color: var(--book-accent); color: var(--book-accent); }

/* Tiendas de otros países */
.cpvx-stores { margin-top: 16px; font-family: var(--cpvp-sans); }
.cpvx-stores summary { display: inline-flex; align-items: center; gap: 8px; list-style: none; cursor: pointer; font-size: 13.5px; color: var(--cpvp-muted); }
.cpvx-stores summary::-webkit-details-marker { display: none; }
.cpvx-stores summary .cpvx-ico { width: 16px; height: 16px; color: var(--book-accent); }
.cpvx-stores summary:hover { color: var(--cpvp-ivory); }
.cpvx-stores ul { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 14px 0 0 !important; padding: 0 !important; list-style: none !important; max-width: 520px; }
.cpvx-stores li { margin: 0 !important; }
.cpvx-stores a { display: flex; flex-direction: column; gap: 3px; padding: 10px 12px; border-radius: 10px; border: 1px solid var(--cpvp-line); color: var(--cpvp-ivory) !important; font-size: 14px; text-decoration: none !important; transition: border-color .3s, background .3s; }
.cpvx-stores a:hover { border-color: var(--book-accent); background: rgba(246, 237, 227, .04); }
.cpvx-stores small { font-size: 11.5px; color: var(--cpvp-muted); }
.cpvx-stores p { margin: 10px 0 0 !important; font-size: 12.5px; color: var(--cpvp-muted); max-width: 520px; }

/* Audio */
.cpvx-audio { display: flex; align-items: center; gap: 20px; max-width: 760px; margin: 0 auto 26px; padding: 18px 22px; border-radius: 999px; background: linear-gradient(135deg, rgba(246, 237, 227, .07), rgba(246, 237, 227, .02)); border: 1px solid rgba(246, 237, 227, .14); }
.cpvx-audio__play { position: relative; flex: none; width: 58px; height: 58px; border-radius: 50%; border: 0; display: grid; place-items: center; background: linear-gradient(135deg, #e6c88f, var(--book-accent) 60%, #a8834b); color: #1c0f0c; cursor: pointer; box-shadow: 0 14px 30px -14px var(--book-accent); transition: transform .3s; }
.cpvx-audio__play:hover { transform: scale(1.05); }
.cpvx-audio__play .cpvx-ico { width: 24px; height: 24px; position: absolute; }
.cpvx-audio__play .cpvx-ico:last-of-type, .cpvx-audio.is-playing .cpvx-audio__play .cpvx-ico:first-of-type { opacity: 0; }
.cpvx-audio.is-playing .cpvx-audio__play .cpvx-ico:last-of-type { opacity: 1; }
.cpvx-audio__body { flex: 1; min-width: 0; }
.cpvx-audio__title { margin: 0 0 8px !important; font-family: var(--cpvp-display); font-size: 19px; line-height: 1.25; color: var(--cpvp-ivory); }
.cpvx-audio__bar { position: relative; height: 4px; border-radius: 4px; background: rgba(246, 237, 227, .14); }
.cpvx-audio__fill { position: absolute; left: 0; top: 0; bottom: 0; width: 0; border-radius: 4px; background: var(--book-accent); pointer-events: none; }
.cpvx-audio__bar input { position: absolute; inset: -8px 0; width: 100%; margin: 0; opacity: 0; cursor: pointer; }
.cpvx-audio__meta { display: flex; justify-content: space-between; margin: 6px 0 0 !important; font: 12px/1 var(--cpvp-sans); color: var(--cpvp-muted); font-variant-numeric: tabular-nums; }
.cpvx-audio__speed { flex: none; min-width: 52px; padding: 8px 10px; border-radius: 999px; border: 1px solid rgba(246, 237, 227, .2); background: none; color: var(--cpvp-ivory-2); font: 600 13px/1 var(--cpvp-sans); cursor: pointer; }

/* Lector: llamada */
.cpvx-reader-cta { display: flex; align-items: center; justify-content: center; gap: 16px; margin: 0 0 30px; }
.cpvx-reader-cta span { font: 13.5px/1.4 var(--cpvp-sans); color: var(--cpvp-muted); }
.cpvx-reader-cta .cpvp-btn { cursor: pointer; }
.cpvx-reader-cta .cpvx-ico { color: var(--book-accent); }

/* Lector tipo libro */
html.cpvr-lock, html.cpvr-lock body { overflow: hidden !important; }
.cpvr { --cpvp-ivory: #f6ede3; --cpvp-muted: #b8a59d; --cpvp-display: "CPVP Display", "DM Serif Display", Georgia, serif; --cpvp-serif: "CPVP Serif", "EB Garamond", Georgia, serif; --cpvp-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Inter, Roboto, Helvetica, Arial, sans-serif; --cpvp-gold: #c9a46a;
	position: fixed; inset: 0; z-index: 999999; display: flex; flex-direction: column; background: radial-gradient(ellipse at 50% 40%, #2a1c1a 0%, #0c0708 70%); color: var(--cpvp-ivory); opacity: 0; transition: opacity .3s; font-family: var(--cpvp-serif); }
.cpvr[hidden] { display: none; }
.cpvr.is-open { opacity: 1; }
.cpvr__top { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 20px; }
.cpvr__name { margin: 0 !important; font: 12px/1 var(--cpvp-sans); letter-spacing: .22em; text-transform: uppercase; color: var(--book-accent); }
.cpvr__count { margin: 0 !important; font: 13px/1 var(--cpvp-sans); color: var(--cpvp-muted); font-variant-numeric: tabular-nums; }
.cpvr__close { width: 44px; height: 44px; border-radius: 50%; border: 1px solid rgba(246, 237, 227, .2); background: none; color: var(--cpvp-ivory); font-size: 26px; line-height: 1; cursor: pointer; }
.cpvr__close:hover { border-color: var(--book-accent); }
.cpvr__stage { flex: 1; min-height: 0; display: grid; place-items: center; padding: 4px 12px; perspective: 2600px; touch-action: pan-y; }
.cpvr__book { position: relative; display: flex; transform-style: preserve-3d; filter: drop-shadow(0 40px 50px rgba(0, 0, 0, .55)); cursor: pointer; }
.cpvr.is-spread .cpvr__book::after { content: ""; position: absolute; left: 50%; top: 0; bottom: 0; width: 60px; transform: translateX(-50%); background: linear-gradient(90deg, rgba(0, 0, 0, 0), rgba(60, 35, 25, .22) 45%, rgba(0, 0, 0, .28) 50%, rgba(60, 35, 25, .22) 55%, rgba(0, 0, 0, 0)); pointer-events: none; z-index: 5; }
.cpvr-slot { width: var(--pw); height: var(--ph); }
.cpvr-slot--l .cpvr-page { border-radius: 6px 2px 2px 6px; }
.cpvr-slot--r .cpvr-page { border-radius: 2px 6px 6px 2px; }
.cpvr-page { box-sizing: border-box; position: relative; display: flex; flex-direction: column; width: var(--pw); height: var(--ph); padding: calc(var(--ph) * .075) calc(var(--pw) * .1) calc(var(--ph) * .06); background: #f4ead9; background-image: linear-gradient(90deg, rgba(120, 90, 60, .07), rgba(255, 255, 255, 0) 8%, rgba(255, 255, 255, 0) 92%, rgba(120, 90, 60, .06)); color: #2b201d; border-radius: 4px; overflow: hidden; font-size: var(--fs); }
.cpvr-page__head { flex: none; height: 1.6em; margin-bottom: .9em; font: 600 calc(var(--fs) * .62)/1.6 var(--cpvp-sans); letter-spacing: .24em; text-transform: uppercase; color: #9a7b55; text-align: center; }
.cpvr-page__body { flex: 1; min-height: 0; overflow: hidden; }
.cpvr-page__num { flex: none; height: 1.4em; margin-top: .6em; font: calc(var(--fs) * .8)/1.4 var(--cpvp-serif); color: #8b7660; text-align: center; }
.cpvr-page__body p { margin: 0 !important; font-family: var(--cpvp-serif); font-size: 1em; line-height: 1.55; text-align: justify; hyphens: auto; -webkit-hyphens: auto; color: #2b201d; }
.cpvr-page__body p + p, .cpvr-page__body p.cpvr-cont { text-indent: 1.3em; }
.cpvr-page__body p.cpvr-cont { text-indent: 0; }
.cpvr-page__body p.cpvr-split { text-align-last: justify; }
.cpvr-page__body em { font-style: italic; }
.cpvr-page__h { margin: 1.2em 0 1.4em !important; font: 400 1.75em/1.15 var(--cpvp-display) !important; color: #2a1416 !important; text-align: center; }
.cpvr-first::first-letter { font-family: var(--cpvp-display); float: left; font-size: 3.6em; line-height: .82; padding: .06em .1em 0 0; color: #8e5a2e; }
.cpvr-page--title .cpvr-page__body, .cpvr-page--end .cpvr-page__body { display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; }
.cpvr-tp__k { font: 600 .62em/1.4 var(--cpvp-sans) !important; letter-spacing: .3em; text-transform: uppercase; color: #9a7b55 !important; text-align: center !important; }
.cpvr-tp__t { margin: .6em 0 !important; font: 400 2.3em/1.1 var(--cpvp-display) !important; color: #2a1416 !important; text-align: center !important; }
.cpvr-tp__o { font-size: 1.4em !important; color: #9a7b55 !important; text-align: center !important; }
.cpvr__end { text-align: center; }
.cpvr__end-k { font: 600 .62em/1.4 var(--cpvp-sans) !important; letter-spacing: .28em; text-transform: uppercase; color: #9a7b55 !important; text-align: center !important; }
.cpvr__end-t { margin: .5em 0 1.2em !important; font: 400 1.7em/1.15 var(--cpvp-display) !important; color: #2a1416 !important; text-align: center !important; }
.cpvr__end .cpvp-actions { display: flex; flex-direction: column; align-items: stretch; gap: 10px; }
.cpvr__end .cpvp-btn { justify-content: center; font-size: 14px; padding: 14px 20px; text-decoration: none !important; }
.cpvr__end .cpvp-btn--ghost { border-color: rgba(43, 32, 29, .35); color: #2b201d !important; background: transparent; }
.cpvr-leaf { position: absolute; top: 0; width: var(--pw); height: var(--ph); transform-style: preserve-3d; transition: transform .75s cubic-bezier(.45, .05, .25, 1); z-index: 10; }
.cpvr-leaf__face { position: absolute; inset: 0; backface-visibility: hidden; -webkit-backface-visibility: hidden; }
.cpvr-leaf__face::after { content: ""; position: absolute; inset: 0; pointer-events: none; opacity: 0; transition: opacity .75s; background: linear-gradient(90deg, rgba(0, 0, 0, .18), rgba(0, 0, 0, 0) 40%); }
.cpvr-leaf.is-turning .cpvr-leaf__face::after { opacity: 1; }
.cpvr-leaf__back { transform: rotateY(180deg); }
.cpvr-leaf--next { left: 50%; transform-origin: left center; }
.cpvr-leaf--next.is-turning { transform: rotateY(-180deg); }
.cpvr-leaf--prev { left: 0; transform-origin: right center; }
.cpvr-leaf--prev.is-turning { transform: rotateY(180deg); }
.cpvr-leaf--single { left: 0; transform-origin: left center; }
.cpvr-leaf--single.cpvr-leaf--next.is-turning { transform: rotateY(-180deg); }
.cpvr-leaf--single.cpvr-leaf--prev { transform: rotateY(-180deg); }
.cpvr-leaf--single.cpvr-leaf--prev.is-turning { transform: rotateY(0); }
.cpvr-leaf--single .cpvr-leaf__back { display: none; }
.cpvr__nav { display: flex; align-items: center; justify-content: center; gap: 18px; padding: 14px 20px 20px; }
.cpvr__prev, .cpvr__next { width: 48px; height: 48px; border-radius: 50%; border: 1px solid rgba(246, 237, 227, .22); background: rgba(246, 237, 227, .04); color: var(--cpvp-ivory); font-size: 28px; line-height: 1; cursor: pointer; transition: border-color .3s, opacity .3s; }
.cpvr__prev:hover, .cpvr__next:hover { border-color: var(--book-accent); }
.cpvr__prev:disabled, .cpvr__next:disabled { opacity: .25; cursor: default; }
.cpvr__progress { width: min(320px, 50vw); height: 2px; background: rgba(246, 237, 227, .14); border-radius: 2px; overflow: hidden; }
.cpvr__progress span { display: block; height: 100%; width: 0; background: var(--book-accent); transition: width .5s; }
@media (prefers-reduced-motion: reduce) { .cpvr, .cpvr-leaf { transition: none !important; } }

/* Opiniones */
.cpvx-reviews { padding: clamp(64px, 8vw, 110px) 0; }
.cpvx-reviews__list { display: grid; gap: 22px; list-style: none !important; margin: 0 !important; padding: 0 !important; }
.cpvx-reviews__list--2 { grid-template-columns: repeat(2, 1fr); } .cpvx-reviews__list--3 { grid-template-columns: repeat(3, 1fr); }
.cpvx-reviews li { margin: 0 !important; }
.cpvx-reviews figure { height: 100%; margin: 0; padding: 30px 28px; border-radius: var(--cpvp-radius); border: 1px solid var(--cpvp-line); background: linear-gradient(160deg, rgba(246, 237, 227, .05), rgba(246, 237, 227, 0)); }
.cpvx-stars { display: flex; gap: 3px; margin: 0 0 14px !important; color: var(--book-accent); }
.cpvx-stars .cpvx-ico { width: 16px; height: 16px; }
.cpvx-reviews blockquote { margin: 0; padding: 0; border: 0; }
.cpvx-reviews blockquote p { font-family: var(--cpvp-display); font-style: italic; font-size: 21px; line-height: 1.4; color: var(--cpvp-ivory); }
.cpvx-reviews figcaption { margin-top: 18px; font: 14px/1.4 var(--cpvp-sans); color: var(--cpvp-muted); }
.cpvx-reviews figcaption strong { display: block; color: var(--cpvp-ivory-2); font-weight: 600; }

/* Descargable */
.cpvx-lead { position: relative; padding: clamp(70px, 9vw, 120px) 0; background: radial-gradient(ellipse at 20% 50%, color-mix(in srgb, var(--book-accent) 16%, transparent), transparent 60%), linear-gradient(180deg, #120a0b, #1a1011); border-top: 1px solid var(--cpvp-line); border-bottom: 1px solid var(--cpvp-line); }
.cpvx-lead__grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(36px, 6vw, 90px); align-items: center; }
.cpvx-lead__art { position: relative; height: 360px; perspective: 1400px; }
.cpvx-lead__sheet { position: absolute; left: 50%; top: 50%; width: 220px; height: 310px; border-radius: 6px; background: #f4ead9; box-shadow: 0 40px 70px -30px rgba(0, 0, 0, .9); }
.cpvx-lead__sheet--2 { transform: translate(-38%, -52%) rotate(8deg); background: #e8dcc8; }
.cpvx-lead__sheet--1 { transform: translate(-62%, -48%) rotate(-5deg); display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 12px; padding: 26px; text-align: center; border-top: 6px solid var(--book-accent); }
.cpvx-lead__sheet--1 span { font: 700 11px/1 var(--cpvp-sans); letter-spacing: .25em; color: #9a7b55; }
.cpvx-lead__sheet--1 strong { font: 400 24px/1.15 var(--cpvp-display); color: #2a1416; }
.cpvx-lead__sheet--1 em { font-size: 14px; color: #6d5a50; }
.cpvx-lead__form { margin-top: 26px; max-width: 600px; }
.cpvx-lead__row { display: flex; gap: 10px; padding: 7px; border-radius: 999px; background: rgba(246, 237, 227, .06); border: 1px solid rgba(246, 237, 227, .18); }
.cpvx-lead__row input[type=email] { flex: 1; min-width: 0; border: 0 !important; background: transparent !important; box-shadow: none !important; color: var(--cpvp-ivory) !important; font: 16px/1.2 var(--cpvp-sans) !important; padding: 0 16px !important; outline: none; }
.cpvx-lead__row input[type=email]::placeholder { color: var(--cpvp-muted); }
.cpvx-lead__row:focus-within { border-color: var(--book-accent); }
.cpvx-lead__row .cpvp-btn { border: 0; cursor: pointer; white-space: nowrap; }
.cpvx-lead__form.is-busy .cpvp-btn { opacity: .7; }
.cpvx-check { display: flex; gap: 10px; align-items: flex-start; margin-top: 14px; font: 13.5px/1.45 var(--cpvp-sans); color: var(--cpvp-ivory-2); cursor: pointer; }
.cpvx-check input { margin-top: 3px; accent-color: var(--book-accent); width: 16px; height: 16px; flex: none; }
.cpvx-check a { color: var(--book-accent) !important; }
.cpvx-lead__legal { margin-top: 14px !important; font: 12px/1.5 var(--cpvp-sans); color: var(--cpvp-muted); }
.cpvx-lead__msg { min-height: 1.4em; margin-top: 12px !important; font: 600 14px/1.4 var(--cpvp-sans); }
.cpvx-lead__msg.is-ok { color: #9fd3a9; } .cpvx-lead__msg.is-error { color: #f2a39a; }

/* Autor en las páginas de libro */
.cpvp-author__photo--round img { aspect-ratio: 1; border-radius: 50%; box-shadow: 0 0 0 1px rgba(201, 164, 106, .6), 0 0 0 10px rgba(201, 164, 106, .08), 0 40px 70px -40px rgba(0, 0, 0, .9); }
.cpvx-author-link { margin-top: 22px !important; }

/* Página del autor */
.cpva-hero { position: relative; padding: clamp(36px, 4vw, 56px) 0 clamp(56px, 6vw, 84px); }
.cpva-hero__bg { position: absolute; inset: 0; z-index: -1; background: radial-gradient(ellipse at 75% 35%, rgba(201, 164, 106, .2), transparent 55%), radial-gradient(ellipse at 10% 0%, rgba(75, 15, 30, .55), transparent 55%), var(--cpvp-bg); }
.cpva-hero__grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: clamp(32px, 5vw, 80px); align-items: center; margin-top: 26px; }
.cpva-hero__title { margin: 14px 0 10px !important; font-family: var(--cpvp-display) !important; font-weight: 400 !important; font-size: clamp(46px, 6.4vw, 92px) !important; line-height: 1 !important; letter-spacing: -.01em; background: linear-gradient(120deg, #f6ede3 30%, #e6c88f 70%, #c9a46a); -webkit-background-clip: text; background-clip: text; color: transparent !important; }
.cpva-hero__role { margin: 0 0 18px !important; font: 13px/1.5 var(--cpvp-sans); letter-spacing: .16em; text-transform: uppercase; color: var(--cpvp-muted); }
.cpva-hero__tag { max-width: 34ch; margin: 0 0 30px !important; font-family: var(--cpvp-display); font-style: italic; font-size: clamp(22px, 2.2vw, 28px); line-height: 1.35; color: #e6c88f; }
.cpva-hero__media { display: grid; place-items: center; }
.cpva-portrait { position: relative; width: min(420px, 80vw); }
.cpva-portrait img { width: 100%; height: auto; display: block; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 220px 220px 24px 24px; box-shadow: 0 50px 90px -40px rgba(0, 0, 0, .95); }
.cpva-portrait--round img { aspect-ratio: 1; border-radius: 50%; }
.cpva-portrait::before { content: ""; position: absolute; inset: -18px; border-radius: inherit; border: 1px solid rgba(201, 164, 106, .55); pointer-events: none; }
.cpva-portrait--round::before { border-radius: 50%; }
.cpva-portrait::after { content: ""; position: absolute; inset: -34px; border-radius: 50%; border: 1px solid rgba(201, 164, 106, .16); pointer-events: none; }
.cpva-portrait:not(.cpva-portrait--round)::after { display: none; }
.cpva-stats { grid-template-columns: repeat(4, 1fr); }
.cpva-bio { padding: clamp(70px, 9vw, 120px) 0; }
.cpva-bio__grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(32px, 6vw, 90px); align-items: start; }
.cpva-bio__text p { font-size: clamp(19px, 1.6vw, 21px); line-height: 1.75; color: var(--cpvp-ivory-2); margin: 0 0 1.1em !important; }
.cpva-bio__text p:first-child::first-letter { font-family: var(--cpvp-display); float: left; font-size: 4.2em; line-height: .8; padding: 6px 12px 0 0; color: var(--cpvp-gold); }
.cpva-areas { display: flex; flex-wrap: wrap; gap: 8px; margin: 26px 0 0 !important; padding: 0 !important; list-style: none !important; }
.cpva-areas li { margin: 0 !important; padding: 8px 14px; border-radius: 999px; border: 1px solid rgba(201, 164, 106, .35); font: 13px/1.2 var(--cpvp-sans); color: var(--cpvp-ivory-2); }
.cpva-books { padding: clamp(70px, 9vw, 120px) 0; background: linear-gradient(180deg, var(--cpvp-bg), #150b0d); }
.cpva-books__list { display: grid; grid-template-columns: repeat(auto-fit, minmax(205px, 1fr)); gap: clamp(22px, 3vw, 40px); list-style: none !important; margin: 0 !important; padding: 0 !important; }
.cpva-books__list li { margin: 0 !important; }
.cpva-book { display: flex; flex-direction: column; gap: 8px; height: 100%; padding: 22px 22px 26px; border-radius: var(--cpvp-radius); border: 1px solid var(--cpvp-line); background: linear-gradient(160deg, rgba(246, 237, 227, .05), rgba(246, 237, 227, 0)); color: var(--cpvp-ivory) !important; text-decoration: none !important; transition: border-color .4s, transform .5s cubic-bezier(.2, .8, .2, 1); }
.cpva-book:hover { border-color: color-mix(in srgb, var(--book-accent) 60%, transparent); transform: translateY(-4px); }
.cpva-book__cover { display: block; margin-bottom: 14px; }
.cpva-book__cover img { width: 100%; height: auto; aspect-ratio: 2 / 3; object-fit: cover; border-radius: 3px 6px 6px 3px; box-shadow: 0 30px 50px -28px rgba(0, 0, 0, .95); }
.cpva-book__theme { font: 11.5px/1.3 var(--cpvp-sans); letter-spacing: .18em; text-transform: uppercase; color: var(--book-accent); }
.cpva-book strong { font: 400 26px/1.15 var(--cpvp-display); }
.cpva-book em { font-size: 16px; line-height: 1.45; color: var(--cpvp-muted); }
.cpva-book__go { display: inline-flex; align-items: center; gap: 8px; margin-top: auto; padding-top: 12px; font: 600 14px/1 var(--cpvp-sans); color: var(--book-accent); }
.cpva-book__go .cpvp-ico { width: 18px; height: 18px; }
.cpva-coll { display: grid; grid-template-columns: auto 1fr; gap: clamp(24px, 4vw, 56px); align-items: center; margin-top: clamp(36px, 5vw, 60px); padding: clamp(24px, 3vw, 36px); border-radius: var(--cpvp-radius); border: 1px solid var(--cpvp-line); }
.cpva-coll__covers { display: flex; padding-left: 30px; }
.cpva-coll__covers img { width: 92px; height: auto; aspect-ratio: 2 / 3; object-fit: cover; margin-left: -30px; border-radius: 2px 4px 4px 2px; box-shadow: -10px 16px 30px -12px rgba(0, 0, 0, .9); }
.cpva-coll h3 { margin: 6px 0 8px !important; font: 400 clamp(26px, 2.6vw, 34px)/1.1 var(--cpvp-display) !important; color: var(--cpvp-ivory) !important; }
.cpva-coll p { margin: 0 0 18px !important; color: var(--cpvp-muted); }
.cpva-press { padding: clamp(70px, 9vw, 120px) 0; }
.cpva-press__grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(32px, 6vw, 90px); align-items: start; }
.cpva-press .cpvp-actions { margin-top: 26px; }
.cpva-bios { display: grid; gap: 16px; }
.cpva-bios__item { position: relative; padding: 24px 26px; border-radius: var(--cpvp-radius); border: 1px solid var(--cpvp-line); background: rgba(246, 237, 227, .03); }
.cpva-bios__k { margin: 0 0 8px !important; font: 600 11.5px/1 var(--cpvp-sans); letter-spacing: .2em; text-transform: uppercase; color: var(--cpvp-gold); }
.cpva-bios__item p:not(.cpva-bios__k) { margin: 0 0 14px !important; font-size: 17px; line-height: 1.6; color: var(--cpvp-ivory-2); }
.cpva-copy { padding: 8px 14px; border-radius: 999px; border: 1px solid rgba(246, 237, 227, .25); background: none; color: var(--cpvp-ivory); font: 600 13px/1 var(--cpvp-sans); cursor: pointer; }
.cpva-copy:hover, .cpva-copy.is-done { border-color: var(--cpvp-gold); color: var(--cpvp-gold); }
.cpva-links .cpvp-wrap { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; padding-bottom: 40px; }
.cpva-links a { padding: 10px 18px; border-radius: 999px; border: 1px solid var(--cpvp-line); color: var(--cpvp-ivory-2) !important; font: 14px/1 var(--cpvp-sans); text-decoration: none !important; }
.cpva-links a:hover { border-color: var(--cpvp-gold); color: var(--cpvp-ivory) !important; }
.cpva-final { text-align: center; }

@media (max-width: 980px) {
	.cpvx-reviews__list--2, .cpvx-reviews__list--3 { grid-template-columns: 1fr; }
	.cpvx-lead__grid, .cpva-hero__grid, .cpva-bio__grid, .cpva-press__grid { grid-template-columns: 1fr; }
	.cpvx-lead__art { height: 300px; order: 2; }
	.cpva-hero__media { order: -1; }
	.cpva-stats { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
	.cpvx-stores ul { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.cpvx-audio { border-radius: 22px; padding: 16px; gap: 14px; }
	.cpvx-audio__play { width: 50px; height: 50px; }
	.cpvx-audio__title { font-size: 17px; }
	.cpvx-reader-cta { flex-direction: column; gap: 10px; }
	.cpvx-lead__row { flex-direction: column; border-radius: 18px; }
	.cpvx-lead__row input[type=email] { padding: 14px 12px !important; }
	.cpvx-lead__row .cpvp-btn { justify-content: center; }
	.cpva-coll { grid-template-columns: 1fr; }
	.cpva-portrait { width: min(300px, 76vw); }
	.cpvr__top { padding: 10px 12px; }
	.cpvr__name { display: none; }
}

/* ==========================================================================
   2.8 · Tráiler, test, recomendados y aviso de lanzamiento
   ========================================================================== */
.cpvx-trailer-btn { display: inline-flex; align-items: center; gap: 10px; padding: 0 0 4px; border: 0; border-bottom: 1px solid var(--cpvp-line); background: none; color: var(--cpvp-muted); font: 14px/1.4 var(--cpvp-sans); cursor: pointer; transition: color .3s, border-color .3s; }
.cpvx-trailer-btn:hover { color: var(--cpvp-ivory); border-color: var(--book-accent); }
.cpvx-trailer-btn__dot { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: var(--book-accent); color: #1c0f0c; }
.cpvx-trailer-btn__dot .cpvx-ico { width: 12px; height: 12px; margin-left: 2px; }
.cpvv { position: fixed; inset: 0; z-index: 999999; display: grid; place-items: center; padding: 20px; background: rgba(8, 5, 6, .92); opacity: 0; transition: opacity .25s; }
.cpvv.is-open { opacity: 1; }
.cpvv__box { position: relative; width: min(1100px, 100%); }
.cpvv video { display: block; width: 100%; max-height: 82vh; border-radius: 12px; background: #000; box-shadow: 0 40px 80px -30px rgba(0, 0, 0, .9); }
.cpvv__close { position: absolute; right: 0; top: -54px; width: 44px; height: 44px; border-radius: 50%; border: 1px solid rgba(246, 237, 227, .25); background: none; color: #f6ede3; font-size: 26px; line-height: 1; cursor: pointer; }

/* Recomendados */
.cpvx-related { padding: clamp(70px, 9vw, 110px) 0; background: linear-gradient(180deg, transparent, rgba(246, 237, 227, .02)); }
.cpvx-related__list { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(18px, 2.4vw, 30px); list-style: none !important; margin: 0 !important; padding: 0 !important; }
.cpvx-related__list li { margin: 0 !important; }
.cpvx-rel { display: grid; grid-template-columns: 110px 1fr; gap: 20px; height: 100%; padding: 20px; border-radius: var(--cpvp-radius); border: 1px solid var(--cpvp-line); background: linear-gradient(160deg, rgba(246, 237, 227, .05), rgba(246, 237, 227, 0)); color: var(--cpvp-ivory) !important; text-decoration: none !important; transition: border-color .4s, transform .5s cubic-bezier(.2, .8, .2, 1); }
.cpvx-rel:hover { border-color: color-mix(in srgb, var(--book-accent) 60%, transparent); transform: translateY(-4px); }
.cpvx-rel__cover img { width: 100%; height: auto; aspect-ratio: 2 / 3; object-fit: cover; border-radius: 2px 5px 5px 2px; box-shadow: 0 24px 40px -22px rgba(0, 0, 0, .95); }
.cpvx-rel__body { display: flex; flex-direction: column; gap: 8px; }
.cpvx-rel__state { font: 11.5px/1.3 var(--cpvp-sans); letter-spacing: .18em; text-transform: uppercase; color: var(--book-accent); }
.cpvx-rel strong { font: 400 23px/1.15 var(--cpvp-display); }
.cpvx-rel__why { font-size: 16px; line-height: 1.5; color: var(--cpvp-ivory-2); }
.cpvx-rel__go { display: inline-flex; align-items: center; gap: 8px; margin-top: auto; padding-top: 6px; font: 600 13.5px/1 var(--cpvp-sans); color: var(--book-accent); }
.cpvx-rel__go .cpvp-ico { width: 17px; height: 17px; }

/* Test */
.cpvx-quiz { padding: clamp(70px, 9vw, 120px) 0; background: radial-gradient(ellipse at 85% 30%, color-mix(in srgb, var(--book-accent) 12%, transparent), transparent 55%), #120a0b; border-top: 1px solid var(--cpvp-line); border-bottom: 1px solid var(--cpvp-line); }
.cpvx-quiz__grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(32px, 6vw, 90px); align-items: start; }
.cpvx-quiz__grid > header { position: sticky; top: 100px; }
.cpvx-quiz__note { margin-top: 14px !important; font: 12.5px/1.5 var(--cpvp-sans); color: var(--cpvp-muted); }
.cpvx-quiz__list { list-style: none !important; margin: 0 !important; padding: 0 !important; display: grid; gap: 14px; }
.cpvx-quiz__list li { margin: 0 !important; }
.cpvx-quiz fieldset { margin: 0; padding: 20px 22px; border-radius: var(--cpvp-radius); border: 1px solid var(--cpvp-line); background: rgba(246, 237, 227, .03); }
.cpvx-quiz legend { float: left; display: flex; gap: 14px; width: 100%; margin: 0 0 14px; padding: 0; font-size: 18.5px; line-height: 1.45; color: var(--cpvp-ivory); }
.cpvx-quiz legend span { flex: none; display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; border: 1px solid var(--book-accent); font: 600 13px/1 var(--cpvp-sans); color: var(--book-accent); }
.cpvx-quiz__opts { clear: both; display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.cpvx-quiz__opts label { position: relative; cursor: pointer; }
.cpvx-quiz__opts input { position: absolute; opacity: 0; pointer-events: none; }
.cpvx-quiz__opts span { display: block; padding: 11px 8px; border-radius: 10px; border: 1px solid rgba(246, 237, 227, .16); text-align: center; font: 13.5px/1.2 var(--cpvp-sans); color: var(--cpvp-ivory-2); transition: background .25s, border-color .25s, color .25s; }
.cpvx-quiz__opts label:hover span { border-color: rgba(246, 237, 227, .4); }
.cpvx-quiz__opts input:checked + span { background: var(--book-accent); border-color: var(--book-accent); color: #1c0f0c; font-weight: 600; }
.cpvx-quiz__opts input:focus-visible + span { outline: 2px solid var(--book-accent); outline-offset: 2px; }
.cpvx-quiz__actions { display: flex; align-items: center; gap: 18px; margin-top: 22px !important; }
.cpvx-quiz__actions .cpvp-btn { border: 0; cursor: pointer; }
.cpvx-quiz__left { font: 13.5px/1.4 var(--cpvp-sans); color: var(--cpvp-muted); }
.cpvx-quiz__form.is-done .cpvx-quiz__list, .cpvx-quiz__form.is-done .cpvx-quiz__actions { display: none; }
.cpvx-quiz__result { padding: clamp(26px, 3vw, 40px); border-radius: var(--cpvp-radius); border: 1px solid color-mix(in srgb, var(--book-accent) 55%, transparent); background: linear-gradient(160deg, color-mix(in srgb, var(--book-accent) 14%, transparent), rgba(246, 237, 227, .02)); outline: none; animation: cpvx-pop .5s cubic-bezier(.2, .8, .2, 1); }
.cpvx-quiz__score { position: relative; margin: 0 0 18px !important; padding-bottom: 14px; font: 600 12px/1 var(--cpvp-sans); letter-spacing: .2em; text-transform: uppercase; color: var(--book-accent); }
.cpvx-quiz__score::after { content: ""; position: absolute; left: 0; bottom: 0; height: 3px; width: var(--p, 0%); border-radius: 3px; background: var(--book-accent); transition: width 1s; }
.cpvx-quiz__result h3 { margin: 0 0 12px !important; font: 400 clamp(28px, 3vw, 38px)/1.1 var(--cpvp-display) !important; color: var(--cpvp-ivory) !important; }
.cpvx-quiz__text { font-size: 19px; line-height: 1.6; color: var(--cpvp-ivory-2); }
.cpvx-quiz__ch { margin-top: 12px !important; padding: 14px 16px; border-left: 2px solid var(--book-accent); font-style: italic; font-size: 17.5px; line-height: 1.55; color: var(--cpvp-ivory); background: rgba(246, 237, 227, .03); }
.cpvx-quiz__cta { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 24px; }
.cpvx-quiz__again { border: 0; background: none; color: var(--cpvp-muted); font: 13.5px/1 var(--cpvp-sans); text-decoration: underline; cursor: pointer; }

/* Aviso de lanzamiento */
.cpvx-notify { padding: clamp(60px, 8vw, 100px) 0; }
.cpvx-notify__box { max-width: 780px; text-align: center; padding: clamp(32px, 5vw, 56px) clamp(20px, 5vw, 56px) !important; border-radius: 28px; border: 1px solid color-mix(in srgb, var(--book-accent) 45%, transparent); background: radial-gradient(ellipse at 50% 0%, color-mix(in srgb, var(--book-accent) 16%, transparent), transparent 70%), rgba(246, 237, 227, .02); }
.cpvx-notify .cpvx-lead__form { margin: 26px auto 0; text-align: left; }
.cpvx-count { display: flex; justify-content: center; gap: clamp(10px, 2vw, 22px); margin: 26px 0 8px; }
.cpvx-count div { min-width: 78px; padding: 14px 8px; border-radius: 14px; border: 1px solid var(--cpvp-line); background: rgba(246, 237, 227, .03); }
.cpvx-count strong { display: block; font: 400 clamp(30px, 4vw, 44px)/1 var(--cpvp-display); color: var(--book-accent); font-variant-numeric: tabular-nums; }
.cpvx-count span { display: block; margin-top: 6px; font: 11px/1 var(--cpvp-sans); letter-spacing: .16em; text-transform: uppercase; color: var(--cpvp-muted); }

@media (max-width: 980px) {
	.cpvx-related__list { grid-template-columns: 1fr; }
	.cpvx-quiz__grid { grid-template-columns: 1fr; }
	.cpvx-quiz__grid > header { position: static; }
}
@media (max-width: 640px) {
	.cpvx-quiz__opts { grid-template-columns: repeat(2, 1fr); }
	.cpvx-rel { grid-template-columns: 90px 1fr; gap: 16px; }
	.cpvx-count div { min-width: 0; flex: 1; }
	.cpvv__close { top: -50px; }
}

/* 2.8.1 · Libro + app */
.cpvx-app { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px, 5vw, 80px); align-items: center; margin-top: clamp(40px, 5vw, 70px); padding: clamp(28px, 4vw, 56px); border-radius: 28px; border: 1px solid color-mix(in srgb, var(--book-accent) 40%, transparent); background: radial-gradient(ellipse at 25% 45%, color-mix(in srgb, var(--book-accent) 20%, transparent), transparent 60%), linear-gradient(160deg, rgba(246, 237, 227, .05), rgba(246, 237, 227, .01)); overflow: hidden; }
.cpvx-app__media { position: relative; height: clamp(380px, 38vw, 520px); }
.cpvx-app__book { position: absolute; left: 4%; top: 12%; width: 34%; height: auto; aspect-ratio: 2 / 3; object-fit: cover; border-radius: 3px 6px 6px 3px; transform: rotate(-8deg); box-shadow: 0 40px 60px -30px rgba(0, 0, 0, .95); opacity: .95; }
.cpvx-app__phone { position: absolute; top: 50%; width: clamp(130px, 12.5vw, 178px); aspect-ratio: 9 / 19.2; padding: 7px; border-radius: 30px; background: linear-gradient(145deg, #2c2426, #0a0607); box-shadow: 0 0 0 1px rgba(255, 255, 255, .08), 0 40px 70px -30px rgba(0, 0, 0, .95); }
.cpvx-app__screen { width: 100%; height: 100%; border-radius: 23px; overflow: hidden; background: #0b0708; }
.cpvx-app__screen img { width: 100%; height: 100%; object-fit: cover; object-position: top; display: block; }
.cpvx-app__phone--0 { left: 30%; transform: translateY(-50%) rotate(-4deg); z-index: 3; }
.cpvx-app__phone--1 { left: 52%; transform: translateY(-44%) rotate(3deg); z-index: 2; }
.cpvx-app__phone--2 { left: 72%; transform: translateY(-38%) rotate(9deg); z-index: 1; opacity: .9; }
.cpvx-app__name { margin: 8px 0 14px !important; font: 400 clamp(30px, 3.2vw, 44px)/1.08 var(--cpvp-display) !important; color: var(--cpvp-ivory) !important; }
.cpvx-app__text { font-size: 18px; line-height: 1.6; color: var(--cpvp-ivory-2); }
.cpvx-app__stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin: 22px 0 0 !important; padding: 0 !important; list-style: none !important; }
.cpvx-app__stats li { margin: 0 !important; padding: 14px 12px; border-radius: 14px; border: 1px solid var(--cpvp-line); background: rgba(246, 237, 227, .03); }
.cpvx-app__stats strong { display: block; font: 400 32px/1 var(--cpvp-display); color: var(--book-accent); }
.cpvx-app__stats span { display: block; margin-top: 6px; font: 12.5px/1.35 var(--cpvp-sans); color: var(--cpvp-muted); }
.cpvx-app__chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 18px 0 0 !important; padding: 0 !important; list-style: none !important; }
.cpvx-app__chips li { margin: 0 !important; padding: 7px 12px; border-radius: 999px; border: 1px solid color-mix(in srgb, var(--book-accent) 40%, transparent); font: 12.5px/1.2 var(--cpvp-sans); color: var(--cpvp-ivory-2); }
.cpvx-app__actions { margin-top: 26px; }
.cpvx-app__price { margin-top: 14px !important; font: 13.5px/1.4 var(--cpvp-sans); color: var(--cpvp-muted); }
@media (max-width: 980px) {
	.cpvx-app { grid-template-columns: 1fr; }
	.cpvx-app__media { height: 380px; max-width: 520px; width: 100%; margin: 0 auto; }
}
@media (max-width: 640px) {
	.cpvx-app__media { height: 300px; }
	.cpvx-app__phone { width: 100px; padding: 5px; border-radius: 20px; }
	.cpvx-app__phone--0 { left: 24%; } .cpvx-app__phone--1 { left: 45%; } .cpvx-app__phone--2 { left: 64%; }
	.cpvx-app__book { width: 38%; left: 0; }
	.cpvx-app__screen { border-radius: 15px; }
	.cpvx-app__stats { grid-template-columns: 1fr; }
	.cpvx-app__stats li { display: flex; align-items: baseline; gap: 12px; }
	.cpvx-app__stats span { margin: 0; }
}
.cpvx-app__phone--icon .cpvx-app__screen { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; padding: 18px; background: radial-gradient(ellipse at 50% 35%, color-mix(in srgb, var(--book-accent) 35%, #0b0708), #0b0708 70%); }
.cpvx-app__phone--icon .cpvx-app__screen img { width: 62%; height: auto; object-fit: contain; border-radius: 22%; box-shadow: 0 16px 30px -12px rgba(0, 0, 0, .9); }
.cpvx-app__phone--icon .cpvx-app__screen span { font: 600 12px/1.3 var(--cpvp-sans); color: #f6ede3; text-align: center; }
.cpvx-app__phone--icon:only-of-type, .cpvx-app__media .cpvx-app__phone--0:last-child { left: 46%; transform: translateY(-50%) rotate(4deg); width: clamp(150px, 14vw, 200px); }
.cpvp-book__coauthor, .cpva-book__co { font: 13.5px/1.4 var(--cpvp-sans); letter-spacing: .04em; color: var(--cpvp-muted); }
.cpvp-book__coauthor { margin: 6px 0 14px !important; }

.cpvx-app__seal { position: absolute; left: 2%; bottom: 4%; z-index: 5; width: clamp(84px, 8vw, 118px); height: auto; border-radius: 50%; filter: drop-shadow(0 18px 30px rgba(0, 0, 0, .7)); }
@media (max-width: 640px) { .cpvx-app__seal { width: 74px; } }

/* 2.9.1 · Capturas en tableta (apps de escritorio) */
.cpvx-app__tablet { position: absolute; width: 70%; aspect-ratio: 1600 / 1075; padding: 1.2%; border-radius: 18px; background: linear-gradient(145deg, #2c2a28, #0a0807); box-shadow: 0 0 0 1px rgba(255, 255, 255, .08), 0 50px 80px -34px rgba(0, 0, 0, .95); }
.cpvx-app__tscreen { width: 100%; height: 100%; border-radius: 10px; overflow: hidden; background: #0b0807; }
.cpvx-app__tscreen img { width: 100%; height: 100%; object-fit: cover; object-position: top left; display: block; }
.cpvx-app__tablet--0 { right: 0; top: 14%; transform: perspective(1400px) rotateY(-10deg) rotate(1deg); z-index: 3; }
.cpvx-app__tablet--1 { right: 16%; top: 40%; width: 58%; transform: perspective(1400px) rotateY(-6deg) rotate(-3deg); z-index: 4; }
.cpvx-app__media:has(.cpvx-app__tablet) .cpvx-app__book { top: 22%; width: 30%; }
.cpvx-app__media:has(.cpvx-app__tablet) .cpvx-app__seal { left: auto; right: 2%; bottom: 2%; }
@media (max-width: 640px) { .cpvx-app__tablet { width: 78%; border-radius: 12px; } .cpvx-app__tablet--1 { width: 64%; right: 10%; } }

/* =====================================================================
   2.10 · Modo discreto
   ===================================================================== */
.cpvp-discreet-btn {
	display: inline-flex; align-items: center; gap: 10px;
	padding: 11px 18px; border-radius: 999px; cursor: pointer;
	border: 1px solid rgba(246, 237, 227, .22); background: rgba(246, 237, 227, .04);
	color: var(--cpvp-ivory-2); font: 600 13px/1 var(--cpvp-sans); letter-spacing: .06em;
	transition: border-color .3s, background-color .3s, color .3s;
}
.cpvp-discreet-btn:hover, .cpvp-discreet-btn:focus-visible { border-color: var(--cpvp-gold); color: var(--cpvp-ivory); }
.cpvp-discreet-btn__icon { width: 16px; height: 16px; border-radius: 50%; border: 1.5px solid currentColor; background: linear-gradient(90deg, currentColor 50%, transparent 50%); flex: none; }
.cpvp-discreet-btn__off { display: none; }
.cpvp.is-discreet .cpvp-discreet-btn { border-color: var(--cpvp-gold); color: var(--cpvp-gold); background: rgba(201, 164, 106, .1); }
.cpvp.is-discreet .cpvp-discreet-btn__on { display: none; }
.cpvp.is-discreet .cpvp-discreet-btn__off { display: inline; }

/* Lo que se oculta */
.cpvp-veil { display: none; }
.cpvp.is-discreet [data-cpvp-discreet]:not(.is-revealed) > .cpvp-wrap { display: none; }
.cpvp.is-discreet [data-cpvp-discreet]:not(.is-revealed) > .cpvp-veil { display: block; }
.cpvp.is-discreet [data-cpvp-discreet]:not(.is-revealed) { padding-top: clamp(48px, 6vw, 72px) !important; padding-bottom: clamp(48px, 6vw, 72px) !important; }
.cpvp.is-discreet .cpvp-final__list li[data-cpvp-sens],
.cpvp.is-discreet .cpvp-appcard[data-cpvp-sens],
.cpvp.is-discreet .cpvp-author__areas li[data-cpvp-sens] { display: none !important; }
.cpvp.is-discreet .cpvp-nav__item[data-cpvp-sens] .cpvp-nav__t { font-size: 0; }
.cpvp.is-discreet .cpvp-nav__item[data-cpvp-sens] .cpvp-nav__t::after { content: "Área reservada"; font-size: 14px; }
.cpvp.is-discreet .cpvp-gen[data-cpvp-sens] > * { visibility: hidden; }
.cpvp.is-discreet .cpvp-gen[data-cpvp-sens] { background: linear-gradient(135deg, #3a0c17, #140508) !important; }

.cpvp-veil__inner {
	display: flex; align-items: center; gap: clamp(18px, 3vw, 32px); flex-wrap: wrap;
	padding: clamp(24px, 3vw, 34px) clamp(22px, 3vw, 40px);
	border: 1px solid rgba(201, 164, 106, .28); border-radius: var(--cpvp-radius);
	background: linear-gradient(135deg, rgba(75, 15, 30, .35), rgba(15, 8, 9, .6));
}
.cpvp-veil__inner > div { flex: 1 1 260px; }
.cpvp-veil__mark { width: 54px; height: 54px; flex: none; border-radius: 50%; border: 1.5px solid var(--cpvp-gold); position: relative; }
.cpvp-veil__mark::after { content: ""; position: absolute; inset: 9px; border-radius: 50%; background: linear-gradient(90deg, var(--cpvp-gold) 50%, transparent 50%); opacity: .8; }
.cpvp-veil__title { margin: 0 !important; font-family: var(--cpvp-display); font-size: clamp(26px, 2.6vw, 34px); line-height: 1.1; color: var(--cpvp-ivory); }
.cpvp-veil__text { margin: 6px 0 0 !important; color: var(--cpvp-muted); font-size: 17px; }
.cpvp-veil__show { cursor: pointer; padding: 13px 22px; border-radius: 999px; border: 1px solid rgba(246, 237, 227, .35); background: transparent; color: var(--cpvp-ivory); font: 600 14px/1 var(--cpvp-sans); transition: border-color .3s, background-color .3s; }
.cpvp-veil__show:hover, .cpvp-veil__show:focus-visible { border-color: var(--cpvp-ivory); background: rgba(246, 237, 227, .08); }

.cpvp-discreet-pill {
	position: fixed; right: 22px; bottom: 22px; z-index: 60; transform: translateY(140%);
	display: flex; align-items: center; gap: 14px; padding: 10px 10px 10px 18px; border-radius: 999px;
	background: rgba(23, 12, 15, .92); border: 1px solid rgba(201, 164, 106, .4);
	-webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
	box-shadow: 0 18px 40px -18px rgba(0, 0, 0, .8);
	font: 600 13px/1 var(--cpvp-sans); color: var(--cpvp-ivory-2); letter-spacing: .03em;
	opacity: 0; pointer-events: none; transition: transform .45s cubic-bezier(.2, .8, .2, 1), opacity .3s;
}
.cpvp-discreet-pill span::before { content: ""; display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--cpvp-gold); margin-right: 10px; vertical-align: 1px; }
.cpvp-discreet-pill button { cursor: pointer; border: 0; border-radius: 999px; padding: 9px 14px; background: var(--cpvp-gold); color: #160b0c; font: 700 12.5px/1 var(--cpvp-sans); }
.cpvp.is-discreet .cpvp-discreet-pill { opacity: 1; pointer-events: auto; transform: none; }
@media (max-width: 600px) { .cpvp-discreet-pill { left: 16px; right: 16px; transform: translateY(140%); justify-content: space-between; } .cpvp.is-discreet .cpvp-discreet-pill { transform: none; } }

/* =====================================================================
   2.10 · Encuentra tu libro
   ===================================================================== */
.cpvp-finder { padding: clamp(64px, 8vw, 110px) 0; background: radial-gradient(ellipse at 15% 0%, rgba(75, 15, 30, .45), transparent 60%), var(--cpvp-bg-2); border-bottom: 1px solid var(--cpvp-line); }
.cpvp-finder[hidden] { display: none !important; }
.cpvp-finder__grid { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(32px, 5vw, 80px); align-items: start; }
.cpvp-finder__privacy { margin: 22px 0 0 !important; font: 500 13px/1.5 var(--cpvp-sans); color: var(--cpvp-muted); letter-spacing: .02em; }
.cpvp-finder__privacy span { color: #62c08f; margin-right: 6px; font-size: 10px; vertical-align: 1px; }
.cpvp-finder__box { min-height: 320px; padding: clamp(24px, 3vw, 40px); border-radius: calc(var(--cpvp-radius) + 6px); border: 1px solid var(--cpvp-line); background: rgba(246, 237, 227, .025); box-shadow: inset 0 1px 0 rgba(246, 237, 227, .05); }
.cpvp-finder__step { animation: cpvpFinderIn .45s cubic-bezier(.2, .8, .2, 1); }
.cpvp-finder__step[hidden] { display: none !important; }
@keyframes cpvpFinderIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
.cpvp-finder__q { margin: 0 0 22px !important; font-family: var(--cpvp-display); font-size: clamp(24px, 2.4vw, 32px); line-height: 1.15; display: flex; align-items: center; gap: 14px; }
.cpvp-finder__q span { width: 34px; height: 34px; flex: none; border-radius: 50%; display: grid; place-items: center; border: 1px solid var(--cpvp-gold); color: var(--cpvp-gold); font: 600 14px/1 var(--cpvp-sans); }
.cpvp-finder__chips { display: flex; flex-wrap: wrap; gap: 12px; }
.cpvp-finder__chips--long { flex-direction: column; align-items: stretch; }
.cpvp-finder__chip {
	--sec: var(--cpvp-gold);
	cursor: pointer; text-align: left; padding: 15px 22px; border-radius: 999px;
	border: 1px solid rgba(246, 237, 227, .22); background: rgba(246, 237, 227, .03); color: var(--cpvp-ivory);
	font: 500 16px/1.3 var(--cpvp-sans); transition: border-color .3s, background-color .3s, transform .3s;
	position: relative; padding-left: 40px;
}
.cpvp-finder__chip::before { content: ""; position: absolute; left: 20px; top: 50%; width: 8px; height: 8px; margin-top: -4px; border-radius: 50%; background: var(--sec); }
.cpvp-finder__chips--long .cpvp-finder__chip { border-radius: 14px; font-family: var(--cpvp-serif); font-size: 19px; font-style: italic; }
.cpvp-finder__chips--long { --sec: var(--cpvp-gold); }
.cpvp-finder__chips--long .cpvp-finder__chip::before { background: inherit; background: var(--sec); }
.cpvp-finder__chip:hover, .cpvp-finder__chip:focus-visible { border-color: var(--sec); background: rgba(246, 237, 227, .07); transform: translateX(3px); outline: none; }
.cpvp-finder__hint { margin: 16px 0 0 !important; font: 500 13px/1.5 var(--cpvp-sans); color: var(--cpvp-muted); }
.cpvp-finder__back { margin-top: 22px; cursor: pointer; border: 0; background: none; padding: 6px 0; color: var(--cpvp-muted); font: 600 13px/1 var(--cpvp-sans); letter-spacing: .04em; }
.cpvp-finder__back:hover, .cpvp-finder__back:focus-visible { color: var(--cpvp-ivory); }
.cpvp-finder__result { display: grid; grid-template-columns: minmax(110px, 170px) 1fr; gap: clamp(20px, 3vw, 34px); align-items: start; }
.cpvp-finder__cover { display: block; border-radius: 4px 8px 8px 4px; overflow: hidden; aspect-ratio: 2 / 3; box-shadow: 0 30px 50px -24px rgba(0, 0, 0, .9), 0 0 0 1px rgba(246, 237, 227, .08); transition: transform .4s; }
.cpvp-finder__cover:hover { transform: translateY(-4px) rotate(-1deg); }
.cpvp-finder__cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cpvp-finder__gen { display: grid; place-items: center; height: 100%; padding: 14px; text-align: center; background: linear-gradient(160deg, var(--book-accent, var(--cpvp-wine)), var(--cpvp-wine-2)); font-family: var(--cpvp-display); font-size: 18px; line-height: 1.15; color: var(--cpvp-ivory); }
.cpvp-finder__label { margin: 0 0 8px !important; font: 600 12px/1 var(--cpvp-sans); letter-spacing: .22em; text-transform: uppercase; color: var(--book-accent, var(--cpvp-gold)); }
.cpvp-finder__title { margin: 0 !important; font-family: var(--cpvp-display); font-size: clamp(28px, 3vw, 40px); line-height: 1.05; }
.cpvp-finder__sub { margin: 8px 0 0 !important; color: var(--cpvp-ivory-2); font-size: 17px; line-height: 1.45; }
.cpvp-finder__start { margin: 18px 0 0 !important; padding: 14px 18px; border-left: 2px solid var(--book-accent, var(--cpvp-gold)); background: rgba(246, 237, 227, .04); border-radius: 0 10px 10px 0; font-size: 18px; line-height: 1.5; }
.cpvp-finder__start strong { font-family: var(--cpvp-sans); font-size: 13px; letter-spacing: .08em; text-transform: uppercase; color: var(--book-accent, var(--cpvp-gold)); }
.cpvp-finder__soon { margin: 12px 0 0 !important; font: 600 13px/1.4 var(--cpvp-sans); color: var(--cpvp-gold); letter-spacing: .04em; }
.cpvp-finder__result .cpvp-actions { margin-top: 22px; }
.cpvp-finder__result .cpvp-btn { padding: 14px 22px; font-size: 14px; }
@media (max-width: 900px) { .cpvp-finder__grid { grid-template-columns: 1fr; } }
@media (max-width: 560px) {
	.cpvp-finder__result { grid-template-columns: 1fr; }
	.cpvp-finder__cover { width: 132px; }
	.cpvp-finder__result .cpvp-btn { justify-content: center; }
	.cpvp-finder__chip { font-size: 15px; }
	.cpvp-finder__chips--long .cpvp-finder__chip { font-size: 17px; }
}
@media (prefers-reduced-motion: reduce) { .cpvp-finder__step { animation: none; } }

/* =====================================================================
   2.11 · Regalar, calendario
   ===================================================================== */
.cpvx-gift-btn, .cpvx-cal > summary {
	display: inline-flex; align-items: center; gap: 9px; padding: 0 0 4px; border: 0; border-bottom: 1px solid var(--cpvp-line);
	background: none; color: var(--cpvp-muted); font: 14px/1.4 var(--cpvp-sans); cursor: pointer; transition: color .3s, border-color .3s; list-style: none;
}
.cpvx-cal > summary::-webkit-details-marker { display: none; }
.cpvx-gift-btn svg, .cpvx-cal > summary svg { color: var(--book-accent, var(--cpvp-gold)); flex: none; }
.cpvx-gift-btn:hover, .cpvx-gift-btn:focus-visible, .cpvx-cal > summary:hover, .cpvx-cal[open] > summary { color: var(--cpvp-ivory); border-color: var(--book-accent, var(--cpvp-gold)); }
.cpvx-cal { position: relative; display: inline-block; }
.cpvx-cal__menu { position: absolute; z-index: 30; left: 0; top: calc(100% + 12px); min-width: 250px; padding: 8px; border-radius: 14px; background: #1b1214; border: 1px solid rgba(246, 237, 227, .14); box-shadow: 0 30px 60px -20px rgba(0, 0, 0, .9); animation: cpvx-pop .25s cubic-bezier(.2, .8, .2, 1); }
.cpvx-cal__menu a { display: block; padding: 11px 12px; border-radius: 9px; color: var(--cpvp-ivory-2) !important; font: 14.5px/1.3 var(--cpvp-sans); text-decoration: none !important; }
.cpvx-cal__menu a:hover { background: rgba(246, 237, 227, .07); color: var(--cpvp-ivory) !important; }
.cpvx-notify .cpvx-cal { margin: 4px 0 18px; }
.cpvx-notify .cpvx-cal__menu { left: 50%; transform: translateX(-50%); animation: none; }
.cpvp-soon__head .cpvx-cal, .cpvp-soon .cpvx-cal { margin-top: 14px; }
.cpvc-hero__links { margin-top: 26px; }
.cpvp-book__links { margin-top: 20px; }
.cpvx-final-share { gap: 22px 30px; flex-wrap: wrap; align-items: center; }

/* Ventana del regalo (fuera de .cpvp: lleva sus propios colores) */
html.cpvx-noscroll { overflow: hidden; }
.cpvx-gift {
	--cpvp-ivory: #f6ede3; --cpvp-ivory-2: #e9dccd; --cpvp-muted: #b8a59d; --cpvp-gold: #c9a46a; --cpvp-line: rgba(246, 237, 227, .12);
	--cpvp-display: "CPVP Display", "DM Serif Display", Georgia, serif; --cpvp-serif: "CPVP Serif", "EB Garamond", Georgia, serif;
	--cpvp-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Inter, Roboto, Helvetica, Arial, sans-serif; --book-accent: #c9a46a;
	width: min(540px, calc(100vw - 24px)); max-height: calc(100dvh - 24px); overflow: auto; padding: 0; border: 1px solid rgba(201, 164, 106, .35);
	border-radius: 22px; background: radial-gradient(ellipse at 0% 0%, rgba(75, 15, 30, .9), transparent 60%), #140b0d; color: var(--cpvp-ivory);
	box-shadow: 0 50px 100px -30px rgba(0, 0, 0, .95);
}
.cpvx-gift::backdrop { background: rgba(8, 4, 5, .72); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.cpvx-gift[open] { animation: cpvx-pop .3s cubic-bezier(.2, .8, .2, 1); }
.cpvx-gift__form { position: relative; padding: clamp(24px, 5vw, 36px); font: 16px/1.5 var(--cpvp-sans); }
.cpvx-gift .cpvp-eyebrow { font: 600 12px/1.4 var(--cpvp-sans); letter-spacing: .22em; text-transform: uppercase; color: var(--cpvp-gold); margin: 0 0 10px !important; display: block; }
.cpvx-gift .cpvp-eyebrow::before { display: none; }
.cpvx-gift__t { margin: 0 0 22px; padding-right: 30px; font: 400 clamp(25px, 5vw, 32px)/1.12 var(--cpvp-display); color: var(--cpvp-ivory); }
.cpvx-gift__close { position: absolute; top: 14px; right: 14px; width: 42px; height: 42px; border-radius: 50%; border: 1px solid var(--cpvp-line); background: rgba(246, 237, 227, .04); color: var(--cpvp-ivory); font-size: 22px; line-height: 1; cursor: pointer; }
.cpvx-gift label { display: block; margin: 0 0 14px; font: 600 13px/1.4 var(--cpvp-sans); color: var(--cpvp-ivory-2); }
.cpvx-gift input[type="text"], .cpvx-gift textarea {
	display: block; width: 100%; margin-top: 6px; padding: 13px 15px; border-radius: 12px; border: 1px solid rgba(246, 237, 227, .18);
	background: rgba(246, 237, 227, .05); color: var(--cpvp-ivory); font: 16px/1.45 var(--cpvp-sans); box-sizing: border-box;
}
.cpvx-gift textarea { font-family: var(--cpvp-serif); font-size: 18px; font-style: italic; resize: vertical; min-height: 110px; }
.cpvx-gift input:focus, .cpvx-gift textarea:focus { outline: none; border-color: var(--cpvp-gold); box-shadow: 0 0 0 3px rgba(201, 164, 106, .2); }
.cpvx-gift label small { display: block; text-align: right; font-weight: 500; color: var(--cpvp-muted); margin-top: 4px; }
.cpvx-gift .cpvx-check { font-weight: 400; display: flex; }
.cpvx-gift .cpvp-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; padding: 15px 24px; border-radius: 999px; font: 600 15px/1 var(--cpvp-sans); cursor: pointer; text-decoration: none !important; border: 0; }
.cpvx-gift .cpvp-btn--gold { background: linear-gradient(135deg, #e6cc88, #c9a46a 55%, #b08a3e); color: #1a0e08 !important; width: 100%; margin-top: 8px; }
.cpvx-gift .cpvp-btn--ghost { border: 1px solid rgba(246, 237, 227, .35); color: var(--cpvp-ivory) !important; background: rgba(246, 237, 227, .03); }
.cpvx-gift__msg { min-height: 1.4em; margin: 12px 0 0; font-size: 14px; color: var(--cpvp-muted); }
.cpvx-gift__msg.is-error { color: #f2a59e; }
.cpvx-gift__step[hidden] { display: none !important; }
.cpvx-gift__ok { margin: 0 0 16px; font: italic 20px/1.4 var(--cpvp-serif); color: var(--cpvp-ivory); }
.cpvx-gift__share { display: grid; gap: 10px; }
.cpvx-gift__share .cpvp-btn { width: 100%; margin: 0; }
.cpvx-gift__link { margin: 16px 0 0; text-align: center; }
.cpvx-gift__link a, .cpvx-gift__tip a { color: var(--cpvp-gold) !important; }
.cpvx-gift__tip { margin: 18px 0 0; padding-top: 16px; border-top: 1px solid var(--cpvp-line); font-size: 13.5px; color: var(--cpvp-muted); }

/* =====================================================================
   2.11 · Revisión completa para móvil
   ===================================================================== */
@media (max-width: 980px) {
	/* Abanico de la cabecera: más grande, centrado y sin huecos */
	.cpvp-fan { --fw: min(34vw, 230px); --step: 34%; --tilt: 6deg; }
	.cpvp-fan--3 { --fw: min(40vw, 250px); --step: 52%; --tilt: 7deg; }
	.cpvp-fan--4 { --fw: min(37vw, 240px); --step: 40%; --tilt: 6deg; }
	.cpvp-fan--5 { --fw: min(34vw, 230px); --step: 34%; --tilt: 5.5deg; }
	.cpvp-fan--6 { --fw: min(29vw, 200px); --step: 28%; --tilt: 4.6deg; }
	.cpvp-fan--7 { --fw: min(26vw, 180px); --step: 25%; --tilt: 4deg; }
	.cpvp-hero__stack.cpvp-fan { height: calc(var(--fw) * 1.5 + clamp(48px, 9vw, 80px)); margin: 0 auto; width: 100%; }
	.cpvp-fan .cpvp-stack__item,
	.cpvp-fan--5 .cpvp-stack__item, .cpvp-fan--6 .cpvp-stack__item, .cpvp-fan--7 .cpvp-stack__item { width: var(--fw); }
	.cpvp-fan .cpvp-stack__item { box-shadow: 0 28px 44px -20px rgba(0, 0, 0, .85), 0 0 0 1px rgba(255, 255, 255, .07); }
}
@media (hover: none) {
	.cpvp-fan:hover .cpvp-stack__item { transform: translate(-50%, -50%) translateX(calc(var(--o) * var(--step) * 1.1)) translateY(calc(var(--a) * var(--a) * 1.6%)) rotate(calc(var(--o) * var(--tilt))) scale(calc(1 - var(--a) * .06)); }
}
@media (max-width: 600px) {
	.cpvp-hero { padding: 34px 0 44px; }
	.cpvp-hero__grid { gap: 14px; }
	.cpvp-hero .cpvp-eyebrow { font-size: 11px; letter-spacing: .16em; gap: 10px; }
	.cpvp-hero .cpvp-eyebrow::before { width: 22px; }
	.cpvp-hero__title { font-size: clamp(38px, 11vw, 46px) !important; text-wrap: balance; }
	.cpvp-hero__text { font-size: 18px; margin-top: 18px !important; }
	.cpvp-hero .cpvp-actions { gap: 12px; }
	.cpvp-discreet-btn { justify-content: center; padding: 13px 18px; }

	/* Barra de áreas: indica que se desliza */
	.cpvp-nav__inner { -webkit-mask-image: linear-gradient(90deg, #000 82%, transparent); mask-image: linear-gradient(90deg, #000 82%, transparent); }
	.cpvp-nav__item { padding: 15px 14px; gap: 9px; }

	/* Próximos lanzamientos: dos columnas exactas */
	.cpvp-soon__grid, .cpvp-soon__grid--many { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px 14px; }
	.cpvp-soon__book { overflow-wrap: anywhere; hyphens: auto; }

	/* App del libro: la portada delante, los móviles detrás */
	.cpvx-app { padding: 22px 18px 26px; border-radius: 22px; }
	.cpvx-app__media { height: 280px; }
	.cpvx-app__book { width: 40%; left: 0; top: 8%; z-index: 4; }
	.cpvx-app__phone { width: 94px; }
	.cpvx-app__phone--0 { left: 36%; } .cpvx-app__phone--1 { left: 54%; } .cpvx-app__phone--2 { left: 71%; }
	.cpvx-app__seal { width: 64px; left: 30%; bottom: 0; }
	.cpvx-app__name { font-size: 28px !important; }

	/* Enlaces de compartir, regalar y calendario */
	.cpvx-hero-links { gap: 14px 22px; }
	.cpvx-share__menu, .cpvx-cal__menu { min-width: min(260px, calc(100vw - 48px)); }
	.cpvp-book__links .cpvx-share__menu { left: 0; }

	/* Libros: textos y botones */
	.cpvp-book__title { font-size: clamp(28px, 8vw, 34px); }
	.cpvp-final__covers { flex-wrap: wrap; justify-content: center; }
	.cpvp-final__list a { font-size: 17px; }
	.cpvp-author__photo img { width: 180px; }
}
@media (max-width: 360px) {
	.cpvp-wrap { width: calc(100% - 28px); }
	.cpvp-hero__title { font-size: 36px !important; }
	.cpvp-soon__grid, .cpvp-soon__grid--many { gap: 18px 10px; }
	.cpvx-app__phone { width: 84px; }
}
.cpvx-gift, .cpvx-gift * { box-sizing: border-box; }
.cpvx-gift .cpvx-check input { accent-color: var(--cpvp-gold); }
.cpvx-gift .cpvx-hp { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

/* 2.11.1 · Abanico con posiciones fijas (no depende de estilos en línea ni de variables: funciona aunque
   un plugin de caché u optimización los elimine) */
.cpvp-fan .cpvp-stack__item { position: absolute !important; top: 50% !important; left: 50% !important; margin: 0 !important; display: block !important; opacity: 1 !important; visibility: visible !important; }
.cpvp-fan--1 .cpvp-stack__item:nth-child(1) { transform: translate(-50%, -50%) translateX(0%) translateY(0%) rotate(0deg) scale(1); z-index: 10; }
.cpvp-fan--2 .cpvp-stack__item:nth-child(1) { transform: translate(-50%, -50%) translateX(-18.7%) translateY(0.4%) rotate(-3.25deg) scale(0.97); z-index: 9; }
.cpvp-fan--2 .cpvp-stack__item:nth-child(2) { transform: translate(-50%, -50%) translateX(18.7%) translateY(0.4%) rotate(3.25deg) scale(0.97); z-index: 9; }
.cpvp-fan--3 .cpvp-stack__item:nth-child(1) { transform: translate(-50%, -50%) translateX(-37.4%) translateY(1.6%) rotate(-6.5deg) scale(0.94); z-index: 9; }
.cpvp-fan--3 .cpvp-stack__item:nth-child(2) { transform: translate(-50%, -50%) translateX(0%) translateY(0%) rotate(0deg) scale(1); z-index: 10; }
.cpvp-fan--3 .cpvp-stack__item:nth-child(3) { transform: translate(-50%, -50%) translateX(37.4%) translateY(1.6%) rotate(6.5deg) scale(0.94); z-index: 9; }
.cpvp-fan--4 .cpvp-stack__item:nth-child(1) { transform: translate(-50%, -50%) translateX(-56.1%) translateY(3.6%) rotate(-9.75deg) scale(0.91); z-index: 8; }
.cpvp-fan--4 .cpvp-stack__item:nth-child(2) { transform: translate(-50%, -50%) translateX(-18.7%) translateY(0.4%) rotate(-3.25deg) scale(0.97); z-index: 9; }
.cpvp-fan--4 .cpvp-stack__item:nth-child(3) { transform: translate(-50%, -50%) translateX(18.7%) translateY(0.4%) rotate(3.25deg) scale(0.97); z-index: 9; }
.cpvp-fan--4 .cpvp-stack__item:nth-child(4) { transform: translate(-50%, -50%) translateX(56.1%) translateY(3.6%) rotate(9.75deg) scale(0.91); z-index: 8; }
.cpvp-fan--5 .cpvp-stack__item:nth-child(1) { transform: translate(-50%, -50%) translateX(-66%) translateY(6.4%) rotate(-11deg) scale(0.88); z-index: 8; }
.cpvp-fan--5 .cpvp-stack__item:nth-child(2) { transform: translate(-50%, -50%) translateX(-33%) translateY(1.6%) rotate(-5.5deg) scale(0.94); z-index: 9; }
.cpvp-fan--5 .cpvp-stack__item:nth-child(3) { transform: translate(-50%, -50%) translateX(0%) translateY(0%) rotate(0deg) scale(1); z-index: 10; }
.cpvp-fan--5 .cpvp-stack__item:nth-child(4) { transform: translate(-50%, -50%) translateX(33%) translateY(1.6%) rotate(5.5deg) scale(0.94); z-index: 9; }
.cpvp-fan--5 .cpvp-stack__item:nth-child(5) { transform: translate(-50%, -50%) translateX(66%) translateY(6.4%) rotate(11deg) scale(0.88); z-index: 8; }
.cpvp-fan--6 .cpvp-stack__item:nth-child(1) { transform: translate(-50%, -50%) translateX(-74.25%) translateY(10%) rotate(-12.5deg) scale(0.85); z-index: 7; }
.cpvp-fan--6 .cpvp-stack__item:nth-child(2) { transform: translate(-50%, -50%) translateX(-44.55%) translateY(3.6%) rotate(-7.5deg) scale(0.91); z-index: 8; }
.cpvp-fan--6 .cpvp-stack__item:nth-child(3) { transform: translate(-50%, -50%) translateX(-14.85%) translateY(0.4%) rotate(-2.5deg) scale(0.97); z-index: 9; }
.cpvp-fan--6 .cpvp-stack__item:nth-child(4) { transform: translate(-50%, -50%) translateX(14.85%) translateY(0.4%) rotate(2.5deg) scale(0.97); z-index: 9; }
.cpvp-fan--6 .cpvp-stack__item:nth-child(5) { transform: translate(-50%, -50%) translateX(44.55%) translateY(3.6%) rotate(7.5deg) scale(0.91); z-index: 8; }
.cpvp-fan--6 .cpvp-stack__item:nth-child(6) { transform: translate(-50%, -50%) translateX(74.25%) translateY(10%) rotate(12.5deg) scale(0.85); z-index: 7; }
.cpvp-fan--7 .cpvp-stack__item:nth-child(1) { transform: translate(-50%, -50%) translateX(-79.2%) translateY(14.4%) rotate(-13.2deg) scale(0.82); z-index: 7; }
.cpvp-fan--7 .cpvp-stack__item:nth-child(2) { transform: translate(-50%, -50%) translateX(-52.8%) translateY(6.4%) rotate(-8.8deg) scale(0.88); z-index: 8; }
.cpvp-fan--7 .cpvp-stack__item:nth-child(3) { transform: translate(-50%, -50%) translateX(-26.4%) translateY(1.6%) rotate(-4.4deg) scale(0.94); z-index: 9; }
.cpvp-fan--7 .cpvp-stack__item:nth-child(4) { transform: translate(-50%, -50%) translateX(0%) translateY(0%) rotate(0deg) scale(1); z-index: 10; }
.cpvp-fan--7 .cpvp-stack__item:nth-child(5) { transform: translate(-50%, -50%) translateX(26.4%) translateY(1.6%) rotate(4.4deg) scale(0.94); z-index: 9; }
.cpvp-fan--7 .cpvp-stack__item:nth-child(6) { transform: translate(-50%, -50%) translateX(52.8%) translateY(6.4%) rotate(8.8deg) scale(0.88); z-index: 8; }
.cpvp-fan--7 .cpvp-stack__item:nth-child(7) { transform: translate(-50%, -50%) translateX(79.2%) translateY(14.4%) rotate(13.2deg) scale(0.82); z-index: 7; }
@media (hover: hover) and (min-width: 981px) {
	.cpvp-fan--2:hover .cpvp-stack__item:nth-child(1) { transform: translate(-50%, -50%) translateX(-23.38%) translateY(0.4%) rotate(-4.06deg) scale(0.97); }
	.cpvp-fan--2:hover .cpvp-stack__item:nth-child(2) { transform: translate(-50%, -50%) translateX(23.38%) translateY(0.4%) rotate(4.06deg) scale(0.97); }
	.cpvp-fan--3:hover .cpvp-stack__item:nth-child(1) { transform: translate(-50%, -50%) translateX(-46.75%) translateY(1.6%) rotate(-8.12deg) scale(0.95); }
	.cpvp-fan--3:hover .cpvp-stack__item:nth-child(2) { transform: translate(-50%, -50%) translateX(0%) translateY(0%) rotate(0deg) scale(1); }
	.cpvp-fan--3:hover .cpvp-stack__item:nth-child(3) { transform: translate(-50%, -50%) translateX(46.75%) translateY(1.6%) rotate(8.12deg) scale(0.95); }
	.cpvp-fan--4:hover .cpvp-stack__item:nth-child(1) { transform: translate(-50%, -50%) translateX(-70.12%) translateY(3.6%) rotate(-12.19deg) scale(0.93); }
	.cpvp-fan--4:hover .cpvp-stack__item:nth-child(2) { transform: translate(-50%, -50%) translateX(-23.38%) translateY(0.4%) rotate(-4.06deg) scale(0.97); }
	.cpvp-fan--4:hover .cpvp-stack__item:nth-child(3) { transform: translate(-50%, -50%) translateX(23.38%) translateY(0.4%) rotate(4.06deg) scale(0.97); }
	.cpvp-fan--4:hover .cpvp-stack__item:nth-child(4) { transform: translate(-50%, -50%) translateX(70.12%) translateY(3.6%) rotate(12.19deg) scale(0.93); }
	.cpvp-fan--5:hover .cpvp-stack__item:nth-child(1) { transform: translate(-50%, -50%) translateX(-82.5%) translateY(6.4%) rotate(-13.75deg) scale(0.9); }
	.cpvp-fan--5:hover .cpvp-stack__item:nth-child(2) { transform: translate(-50%, -50%) translateX(-41.25%) translateY(1.6%) rotate(-6.88deg) scale(0.95); }
	.cpvp-fan--5:hover .cpvp-stack__item:nth-child(3) { transform: translate(-50%, -50%) translateX(0%) translateY(0%) rotate(0deg) scale(1); }
	.cpvp-fan--5:hover .cpvp-stack__item:nth-child(4) { transform: translate(-50%, -50%) translateX(41.25%) translateY(1.6%) rotate(6.88deg) scale(0.95); }
	.cpvp-fan--5:hover .cpvp-stack__item:nth-child(5) { transform: translate(-50%, -50%) translateX(82.5%) translateY(6.4%) rotate(13.75deg) scale(0.9); }
	.cpvp-fan--6:hover .cpvp-stack__item:nth-child(1) { transform: translate(-50%, -50%) translateX(-92.81%) translateY(10%) rotate(-15.62deg) scale(0.88); }
	.cpvp-fan--6:hover .cpvp-stack__item:nth-child(2) { transform: translate(-50%, -50%) translateX(-55.69%) translateY(3.6%) rotate(-9.38deg) scale(0.93); }
	.cpvp-fan--6:hover .cpvp-stack__item:nth-child(3) { transform: translate(-50%, -50%) translateX(-18.56%) translateY(0.4%) rotate(-3.12deg) scale(0.97); }
	.cpvp-fan--6:hover .cpvp-stack__item:nth-child(4) { transform: translate(-50%, -50%) translateX(18.56%) translateY(0.4%) rotate(3.12deg) scale(0.97); }
	.cpvp-fan--6:hover .cpvp-stack__item:nth-child(5) { transform: translate(-50%, -50%) translateX(55.69%) translateY(3.6%) rotate(9.38deg) scale(0.93); }
	.cpvp-fan--6:hover .cpvp-stack__item:nth-child(6) { transform: translate(-50%, -50%) translateX(92.81%) translateY(10%) rotate(15.62deg) scale(0.88); }
	.cpvp-fan--7:hover .cpvp-stack__item:nth-child(1) { transform: translate(-50%, -50%) translateX(-99%) translateY(14.4%) rotate(-16.5deg) scale(0.85); }
	.cpvp-fan--7:hover .cpvp-stack__item:nth-child(2) { transform: translate(-50%, -50%) translateX(-66%) translateY(6.4%) rotate(-11deg) scale(0.9); }
	.cpvp-fan--7:hover .cpvp-stack__item:nth-child(3) { transform: translate(-50%, -50%) translateX(-33%) translateY(1.6%) rotate(-5.5deg) scale(0.95); }
	.cpvp-fan--7:hover .cpvp-stack__item:nth-child(4) { transform: translate(-50%, -50%) translateX(0%) translateY(0%) rotate(0deg) scale(1); }
	.cpvp-fan--7:hover .cpvp-stack__item:nth-child(5) { transform: translate(-50%, -50%) translateX(33%) translateY(1.6%) rotate(5.5deg) scale(0.95); }
	.cpvp-fan--7:hover .cpvp-stack__item:nth-child(6) { transform: translate(-50%, -50%) translateX(66%) translateY(6.4%) rotate(11deg) scale(0.9); }
	.cpvp-fan--7:hover .cpvp-stack__item:nth-child(7) { transform: translate(-50%, -50%) translateX(99%) translateY(14.4%) rotate(16.5deg) scale(0.85); }
}
@media (max-width: 980px) {
	.cpvp-fan--1 .cpvp-stack__item:nth-child(1), .cpvp-fan--1:hover .cpvp-stack__item:nth-child(1) { transform: translate(-50%, -50%) translateX(0%) translateY(0%) rotate(0deg) scale(1); }
	.cpvp-fan--2 .cpvp-stack__item:nth-child(1), .cpvp-fan--2:hover .cpvp-stack__item:nth-child(1) { transform: translate(-50%, -50%) translateX(-28.6%) translateY(0.4%) rotate(-3.5deg) scale(0.97); }
	.cpvp-fan--2 .cpvp-stack__item:nth-child(2), .cpvp-fan--2:hover .cpvp-stack__item:nth-child(2) { transform: translate(-50%, -50%) translateX(28.6%) translateY(0.4%) rotate(3.5deg) scale(0.97); }
	.cpvp-fan--3 .cpvp-stack__item:nth-child(1), .cpvp-fan--3:hover .cpvp-stack__item:nth-child(1) { transform: translate(-50%, -50%) translateX(-57.2%) translateY(1.6%) rotate(-7deg) scale(0.94); }
	.cpvp-fan--3 .cpvp-stack__item:nth-child(2), .cpvp-fan--3:hover .cpvp-stack__item:nth-child(2) { transform: translate(-50%, -50%) translateX(0%) translateY(0%) rotate(0deg) scale(1); }
	.cpvp-fan--3 .cpvp-stack__item:nth-child(3), .cpvp-fan--3:hover .cpvp-stack__item:nth-child(3) { transform: translate(-50%, -50%) translateX(57.2%) translateY(1.6%) rotate(7deg) scale(0.94); }
	.cpvp-fan--4 .cpvp-stack__item:nth-child(1), .cpvp-fan--4:hover .cpvp-stack__item:nth-child(1) { transform: translate(-50%, -50%) translateX(-66%) translateY(3.6%) rotate(-9deg) scale(0.91); }
	.cpvp-fan--4 .cpvp-stack__item:nth-child(2), .cpvp-fan--4:hover .cpvp-stack__item:nth-child(2) { transform: translate(-50%, -50%) translateX(-22%) translateY(0.4%) rotate(-3deg) scale(0.97); }
	.cpvp-fan--4 .cpvp-stack__item:nth-child(3), .cpvp-fan--4:hover .cpvp-stack__item:nth-child(3) { transform: translate(-50%, -50%) translateX(22%) translateY(0.4%) rotate(3deg) scale(0.97); }
	.cpvp-fan--4 .cpvp-stack__item:nth-child(4), .cpvp-fan--4:hover .cpvp-stack__item:nth-child(4) { transform: translate(-50%, -50%) translateX(66%) translateY(3.6%) rotate(9deg) scale(0.91); }
	.cpvp-fan--5 .cpvp-stack__item:nth-child(1), .cpvp-fan--5:hover .cpvp-stack__item:nth-child(1) { transform: translate(-50%, -50%) translateX(-74.8%) translateY(6.4%) rotate(-11deg) scale(0.88); }
	.cpvp-fan--5 .cpvp-stack__item:nth-child(2), .cpvp-fan--5:hover .cpvp-stack__item:nth-child(2) { transform: translate(-50%, -50%) translateX(-37.4%) translateY(1.6%) rotate(-5.5deg) scale(0.94); }
	.cpvp-fan--5 .cpvp-stack__item:nth-child(3), .cpvp-fan--5:hover .cpvp-stack__item:nth-child(3) { transform: translate(-50%, -50%) translateX(0%) translateY(0%) rotate(0deg) scale(1); }
	.cpvp-fan--5 .cpvp-stack__item:nth-child(4), .cpvp-fan--5:hover .cpvp-stack__item:nth-child(4) { transform: translate(-50%, -50%) translateX(37.4%) translateY(1.6%) rotate(5.5deg) scale(0.94); }
	.cpvp-fan--5 .cpvp-stack__item:nth-child(5), .cpvp-fan--5:hover .cpvp-stack__item:nth-child(5) { transform: translate(-50%, -50%) translateX(74.8%) translateY(6.4%) rotate(11deg) scale(0.88); }
	.cpvp-fan--6 .cpvp-stack__item:nth-child(1), .cpvp-fan--6:hover .cpvp-stack__item:nth-child(1) { transform: translate(-50%, -50%) translateX(-77%) translateY(10%) rotate(-11.5deg) scale(0.85); }
	.cpvp-fan--6 .cpvp-stack__item:nth-child(2), .cpvp-fan--6:hover .cpvp-stack__item:nth-child(2) { transform: translate(-50%, -50%) translateX(-46.2%) translateY(3.6%) rotate(-6.9deg) scale(0.91); }
	.cpvp-fan--6 .cpvp-stack__item:nth-child(3), .cpvp-fan--6:hover .cpvp-stack__item:nth-child(3) { transform: translate(-50%, -50%) translateX(-15.4%) translateY(0.4%) rotate(-2.3deg) scale(0.97); }
	.cpvp-fan--6 .cpvp-stack__item:nth-child(4), .cpvp-fan--6:hover .cpvp-stack__item:nth-child(4) { transform: translate(-50%, -50%) translateX(15.4%) translateY(0.4%) rotate(2.3deg) scale(0.97); }
	.cpvp-fan--6 .cpvp-stack__item:nth-child(5), .cpvp-fan--6:hover .cpvp-stack__item:nth-child(5) { transform: translate(-50%, -50%) translateX(46.2%) translateY(3.6%) rotate(6.9deg) scale(0.91); }
	.cpvp-fan--6 .cpvp-stack__item:nth-child(6), .cpvp-fan--6:hover .cpvp-stack__item:nth-child(6) { transform: translate(-50%, -50%) translateX(77%) translateY(10%) rotate(11.5deg) scale(0.85); }
	.cpvp-fan--7 .cpvp-stack__item:nth-child(1), .cpvp-fan--7:hover .cpvp-stack__item:nth-child(1) { transform: translate(-50%, -50%) translateX(-82.5%) translateY(14.4%) rotate(-12deg) scale(0.82); }
	.cpvp-fan--7 .cpvp-stack__item:nth-child(2), .cpvp-fan--7:hover .cpvp-stack__item:nth-child(2) { transform: translate(-50%, -50%) translateX(-55%) translateY(6.4%) rotate(-8deg) scale(0.88); }
	.cpvp-fan--7 .cpvp-stack__item:nth-child(3), .cpvp-fan--7:hover .cpvp-stack__item:nth-child(3) { transform: translate(-50%, -50%) translateX(-27.5%) translateY(1.6%) rotate(-4deg) scale(0.94); }
	.cpvp-fan--7 .cpvp-stack__item:nth-child(4), .cpvp-fan--7:hover .cpvp-stack__item:nth-child(4) { transform: translate(-50%, -50%) translateX(0%) translateY(0%) rotate(0deg) scale(1); }
	.cpvp-fan--7 .cpvp-stack__item:nth-child(5), .cpvp-fan--7:hover .cpvp-stack__item:nth-child(5) { transform: translate(-50%, -50%) translateX(27.5%) translateY(1.6%) rotate(4deg) scale(0.94); }
	.cpvp-fan--7 .cpvp-stack__item:nth-child(6), .cpvp-fan--7:hover .cpvp-stack__item:nth-child(6) { transform: translate(-50%, -50%) translateX(55%) translateY(6.4%) rotate(8deg) scale(0.88); }
	.cpvp-fan--7 .cpvp-stack__item:nth-child(7), .cpvp-fan--7:hover .cpvp-stack__item:nth-child(7) { transform: translate(-50%, -50%) translateX(82.5%) translateY(14.4%) rotate(12deg) scale(0.82); }
}
@media (max-width: 980px) {
	.cpvp-fan--1 .cpvp-stack__item { width: min(44vw, 260px) !important; }
	.cpvp-hero__stack.cpvp-fan--1 { height: calc(min(44vw, 260px) * 1.5 + clamp(48px, 9vw, 80px)) !important; min-height: 220px; }
	.cpvp-fan--2 .cpvp-stack__item { width: min(40vw, 250px) !important; }
	.cpvp-hero__stack.cpvp-fan--2 { height: calc(min(40vw, 250px) * 1.5 + clamp(48px, 9vw, 80px)) !important; min-height: 220px; }
	.cpvp-fan--3 .cpvp-stack__item { width: min(40vw, 250px) !important; }
	.cpvp-hero__stack.cpvp-fan--3 { height: calc(min(40vw, 250px) * 1.5 + clamp(48px, 9vw, 80px)) !important; min-height: 220px; }
	.cpvp-fan--4 .cpvp-stack__item { width: min(37vw, 240px) !important; }
	.cpvp-hero__stack.cpvp-fan--4 { height: calc(min(37vw, 240px) * 1.5 + clamp(48px, 9vw, 80px)) !important; min-height: 220px; }
	.cpvp-fan--5 .cpvp-stack__item { width: min(34vw, 230px) !important; }
	.cpvp-hero__stack.cpvp-fan--5 { height: calc(min(34vw, 230px) * 1.5 + clamp(48px, 9vw, 80px)) !important; min-height: 220px; }
	.cpvp-fan--6 .cpvp-stack__item { width: min(29vw, 200px) !important; }
	.cpvp-hero__stack.cpvp-fan--6 { height: calc(min(29vw, 200px) * 1.5 + clamp(48px, 9vw, 80px)) !important; min-height: 220px; }
	.cpvp-fan--7 .cpvp-stack__item { width: min(26vw, 180px) !important; }
	.cpvp-hero__stack.cpvp-fan--7 { height: calc(min(26vw, 180px) * 1.5 + clamp(48px, 9vw, 80px)) !important; min-height: 220px; }
}
@media (max-width: 980px) {
	.cpvp-fan--6 .cpvp-stack__item { width: min(31vw, 210px) !important; }
	.cpvp-hero__stack.cpvp-fan--6 { height: calc(min(31vw, 210px) * 1.5 + clamp(48px, 9vw, 80px)) !important; }
	.cpvp-fan--6 .cpvp-stack__item:nth-child(1), .cpvp-fan--6:hover .cpvp-stack__item:nth-child(1) { transform: translate(-50%, -50%) translateX(-82.5%) translateY(10%) rotate(-12.5deg) scale(0.85); }
	.cpvp-fan--6 .cpvp-stack__item:nth-child(2), .cpvp-fan--6:hover .cpvp-stack__item:nth-child(2) { transform: translate(-50%, -50%) translateX(-49.5%) translateY(3.6%) rotate(-7.5deg) scale(0.91); }
	.cpvp-fan--6 .cpvp-stack__item:nth-child(3), .cpvp-fan--6:hover .cpvp-stack__item:nth-child(3) { transform: translate(-50%, -50%) translateX(-16.5%) translateY(0.4%) rotate(-2.5deg) scale(0.97); }
	.cpvp-fan--6 .cpvp-stack__item:nth-child(4), .cpvp-fan--6:hover .cpvp-stack__item:nth-child(4) { transform: translate(-50%, -50%) translateX(16.5%) translateY(0.4%) rotate(2.5deg) scale(0.97); }
	.cpvp-fan--6 .cpvp-stack__item:nth-child(5), .cpvp-fan--6:hover .cpvp-stack__item:nth-child(5) { transform: translate(-50%, -50%) translateX(49.5%) translateY(3.6%) rotate(7.5deg) scale(0.91); }
	.cpvp-fan--6 .cpvp-stack__item:nth-child(6), .cpvp-fan--6:hover .cpvp-stack__item:nth-child(6) { transform: translate(-50%, -50%) translateX(82.5%) translateY(10%) rotate(12.5deg) scale(0.85); }
	.cpvp-fan--7 .cpvp-stack__item { width: min(28vw, 190px) !important; }
	.cpvp-hero__stack.cpvp-fan--7 { height: calc(min(28vw, 190px) * 1.5 + clamp(48px, 9vw, 80px)) !important; }
	.cpvp-fan--7 .cpvp-stack__item:nth-child(1), .cpvp-fan--7:hover .cpvp-stack__item:nth-child(1) { transform: translate(-50%, -50%) translateX(-89.1%) translateY(14.4%) rotate(-13.8deg) scale(0.82); }
	.cpvp-fan--7 .cpvp-stack__item:nth-child(2), .cpvp-fan--7:hover .cpvp-stack__item:nth-child(2) { transform: translate(-50%, -50%) translateX(-59.4%) translateY(6.4%) rotate(-9.2deg) scale(0.88); }
	.cpvp-fan--7 .cpvp-stack__item:nth-child(3), .cpvp-fan--7:hover .cpvp-stack__item:nth-child(3) { transform: translate(-50%, -50%) translateX(-29.7%) translateY(1.6%) rotate(-4.6deg) scale(0.94); }
	.cpvp-fan--7 .cpvp-stack__item:nth-child(4), .cpvp-fan--7:hover .cpvp-stack__item:nth-child(4) { transform: translate(-50%, -50%) translateX(0%) translateY(0%) rotate(0deg) scale(1); }
	.cpvp-fan--7 .cpvp-stack__item:nth-child(5), .cpvp-fan--7:hover .cpvp-stack__item:nth-child(5) { transform: translate(-50%, -50%) translateX(29.7%) translateY(1.6%) rotate(4.6deg) scale(0.94); }
	.cpvp-fan--7 .cpvp-stack__item:nth-child(6), .cpvp-fan--7:hover .cpvp-stack__item:nth-child(6) { transform: translate(-50%, -50%) translateX(59.4%) translateY(6.4%) rotate(9.2deg) scale(0.88); }
	.cpvp-fan--7 .cpvp-stack__item:nth-child(7), .cpvp-fan--7:hover .cpvp-stack__item:nth-child(7) { transform: translate(-50%, -50%) translateX(89.1%) translateY(14.4%) rotate(13.8deg) scale(0.82); }
}
.cpvx-gift:not([open]) { display: none !important; }

/* =====================================================================
   2.12 · Reto de 7 días y lectores anticipados
   ===================================================================== */
.cpvx-reto { padding: clamp(70px, 9vw, 120px) 0; background: radial-gradient(ellipse at 85% 30%, color-mix(in srgb, var(--book-accent, #c9a46a) 18%, transparent), transparent 60%), linear-gradient(180deg, #140b0d, #0f0809); border-top: 1px solid var(--cpvp-line); }
.cpvx-reto__grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: clamp(36px, 6vw, 90px); align-items: center; }
.cpvx-reto .cpvx-lead__form { margin-top: 26px; }
.cpvx-reto__days { list-style: none !important; margin: 0 !important; padding: 0 !important; display: grid; gap: 10px; counter-reset: none; }
.cpvx-reto__days li { margin: 0 !important; display: flex; align-items: center; gap: 16px; padding: 14px 18px; border-radius: 14px; border: 1px solid var(--cpvp-line); background: rgba(246, 237, 227, .03); transition: border-color .3s, transform .3s; }
.cpvx-reto__days li:hover { border-color: color-mix(in srgb, var(--book-accent, #c9a46a) 55%, transparent); transform: translateX(4px); }
.cpvx-reto__n { flex: none; width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; font: 400 20px/1 var(--cpvp-display); color: #160b0c; background: var(--book-accent, var(--cpvp-gold)); }
.cpvx-reto__d { display: flex; flex-direction: column; font: italic 19px/1.25 var(--cpvp-serif); color: var(--cpvp-ivory); }
.cpvx-reto__d small { font: 600 11px/1.4 var(--cpvp-sans); font-style: normal; letter-spacing: .18em; text-transform: uppercase; color: var(--cpvp-muted); }
.cpvx-reto__promise { margin-top: 34px !important; text-align: center; font: italic clamp(19px, 2vw, 23px)/1.5 var(--cpvp-serif); color: var(--cpvp-ivory-2); }

.cpvx-team { padding: clamp(60px, 8vw, 110px) 0; }
.cpvx-team__box { max-width: 860px; text-align: center; padding: clamp(32px, 5vw, 56px) clamp(22px, 5vw, 64px); border-radius: 26px; border: 1px solid color-mix(in srgb, var(--book-accent, #c9a46a) 40%, transparent); background: radial-gradient(ellipse at 50% 0%, color-mix(in srgb, var(--book-accent, #c9a46a) 16%, transparent), transparent 65%), rgba(246, 237, 227, .025); }
.cpvx-team__box .cpvp-eyebrow { justify-content: center; }
.cpvx-team__box .cpvp-lead { margin-left: auto; margin-right: auto; }
.cpvx-team__list { list-style: none !important; margin: 22px auto 6px !important; padding: 0 !important; display: grid; gap: 8px; max-width: 560px; text-align: left; }
.cpvx-team__list li { margin: 0 !important; padding-left: 26px; position: relative; font: 15.5px/1.5 var(--cpvp-sans); color: var(--cpvp-ivory-2); }
.cpvx-team__list li::before { content: "✓"; position: absolute; left: 0; top: 0; color: var(--book-accent, var(--cpvp-gold)); font-weight: 700; }
.cpvx-team .cpvx-lead__form { max-width: 560px; margin: 22px auto 0; text-align: left; }
@media (max-width: 860px) {
	.cpvx-reto__grid { grid-template-columns: 1fr; }
	.cpvx-reto__days li { padding: 12px 14px; }
	.cpvx-reto__d { font-size: 17.5px; }
}

/* =====================================================================
   2.13 · Club de lectores
   ===================================================================== */
.cpvk-hero { position: relative; padding: clamp(70px, 10vw, 140px) 0 clamp(56px, 7vw, 96px); overflow: hidden; }
.cpvk-hero__bg { position: absolute; inset: 0; z-index: -1; background: radial-gradient(55% 70% at 85% 20%, rgba(201, 164, 106, .18), transparent 70%), radial-gradient(60% 70% at 10% 0%, rgba(122, 22, 44, .7), transparent 70%), linear-gradient(180deg, #1c0a10, var(--cpvp-bg)); }
.cpvk-hero__inner { max-width: 980px; }
.cpvk-hero .cpvb-crumbs { margin-bottom: 26px; }
.cpvk-hero__title { margin: 0; font: 400 clamp(44px, 7vw, 92px)/1 var(--cpvp-display) !important; letter-spacing: -.01em; color: var(--cpvp-ivory); text-wrap: balance; }
.cpvk-hero__title em { font-style: italic; color: var(--cpvp-gold); }
.cpvk-stats { list-style: none !important; margin: clamp(34px, 5vw, 56px) 0 0 !important; padding: 0 !important; display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 14px; }
.cpvk-stats li { margin: 0 !important; padding: 18px 20px; border-radius: 16px; border: 1px solid var(--cpvp-line); background: rgba(246, 237, 227, .03); }
.cpvk-stats strong { display: block; font: 400 42px/1 var(--cpvp-display); color: var(--cpvp-gold); }
.cpvk-stats span { display: block; margin-top: 6px; font: 13.5px/1.35 var(--cpvp-sans); color: var(--cpvp-muted); }
.cpvk-head { max-width: 760px; margin-bottom: clamp(30px, 4vw, 50px); }

.cpvk-pick, .cpvk-soon, .cpvk-tests, .cpvk-mi, .cpvk-mine { padding: clamp(64px, 8vw, 110px) 0; border-top: 1px solid var(--cpvp-line); }
.cpvk-pick { background: linear-gradient(180deg, #120a0b, #0f0809); }
.cpvk-gifts { list-style: none !important; margin: 0 !important; padding: 0 !important; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr)); gap: 14px; }
.cpvk-gift { margin: 0 !important; }
.cpvk-gift label { position: relative; display: grid; grid-template-columns: 64px 1fr; gap: 16px; align-items: start; height: 100%; padding: 18px 50px 18px 18px; border-radius: 18px; border: 1px solid var(--cpvp-line); background: rgba(246, 237, 227, .03); cursor: pointer; transition: border-color .3s, background-color .3s, transform .3s; }
.cpvk-gift label:hover { border-color: color-mix(in srgb, var(--book-accent) 55%, transparent); transform: translateY(-2px); }
.cpvk-gift input { position: absolute; opacity: 0; pointer-events: none; }
.cpvk-gift input:focus-visible + .cpvk-gift__thumb { outline: 2px solid var(--book-accent); outline-offset: 3px; }
.cpvk-gift input:checked ~ .cpvk-gift__check { background: var(--book-accent); border-color: var(--book-accent); }
.cpvk-gift input:checked ~ .cpvk-gift__check::after { opacity: 1; }
.cpvk-gift label:has(input:checked) { border-color: var(--book-accent); background: color-mix(in srgb, var(--book-accent) 9%, transparent); }
.cpvk-gift__thumb img, .cpvk-thumb__gen, .cpvk-gift__thumb .cpvk-thumb__gen { display: block; width: 64px; aspect-ratio: 2 / 3; object-fit: cover; border-radius: 3px 6px 6px 3px; box-shadow: 0 14px 24px -12px rgba(0, 0, 0, .9); }
.cpvk-thumb__gen { display: grid !important; place-items: center; background: linear-gradient(160deg, var(--book-accent, #4b0f1e), #2a0911); font: 400 26px/1 var(--cpvp-display); color: var(--cpvp-ivory); }
.cpvk-gift__body { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.cpvk-gift__label { font: 600 11px/1.4 var(--cpvp-sans); letter-spacing: .18em; text-transform: uppercase; color: var(--book-accent); }
.cpvk-gift__body strong { font: 400 20px/1.2 var(--cpvp-display); color: var(--cpvp-ivory); }
.cpvk-gift__text { font-size: 16px; line-height: 1.45; color: var(--cpvp-ivory-2); }
.cpvk-gift__book { margin-top: 4px; font: italic 14.5px/1.3 var(--cpvp-serif); color: var(--cpvp-muted); }
.cpvk-gift__check { position: absolute; top: 18px; right: 18px; width: 24px; height: 24px; border-radius: 50%; border: 1.5px solid rgba(246, 237, 227, .35); transition: background-color .25s, border-color .25s; }
.cpvk-gift__check::after { content: ""; position: absolute; left: 7px; top: 3px; width: 6px; height: 11px; border: solid #160b0c; border-width: 0 2px 2px 0; transform: rotate(45deg); opacity: 0; transition: opacity .2s; }
.cpvk-send { position: relative; margin-top: 26px; padding: clamp(18px, 3vw, 26px); border-radius: 22px; border: 1px solid rgba(201, 164, 106, .35); background: rgba(23, 12, 15, .94); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); box-shadow: 0 30px 60px -30px rgba(0, 0, 0, .95); }
.cpvk-send__count { margin: 0 0 12px !important; font: 600 13px/1.4 var(--cpvp-sans); color: var(--cpvp-ivory-2); letter-spacing: .04em; }
.cpvk-send__count [data-cpvk-n] { color: var(--cpvp-gold); font-size: 15px; }
.cpvk-all { border: 0; background: none; color: var(--cpvp-gold); font: 600 13px/1 var(--cpvp-sans); cursor: pointer; padding: 0; text-decoration: underline; }
.cpvk-results { margin-top: 16px; font: 14.5px/1.5 var(--cpvp-sans); color: var(--cpvp-ivory-2); }
.cpvk-results.is-error { color: #f2a59e; }
.cpvk-results__head { margin: 0 0 8px !important; font-weight: 600; color: var(--cpvp-ivory); }
.cpvk-results ul { list-style: none !important; margin: 0 !important; padding: 0 !important; display: grid; gap: 6px; }
.cpvk-results li { margin: 0 !important; display: flex; flex-wrap: wrap; gap: 6px 12px; align-items: baseline; }
.cpvk-results li.is-ok span { color: #9fd8b4; }
.cpvk-results li a { color: var(--cpvp-gold) !important; font-weight: 600; }
.cpvk-results li small { color: var(--cpvp-muted); }

.cpvk-timeline { list-style: none !important; margin: 0 !important; padding: 0 !important; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); gap: 12px; }
.cpvk-tl { margin: 0 !important; display: grid; grid-template-columns: 74px 1fr; gap: 14px; align-items: center; padding: 12px 14px; border-radius: 16px; border: 1px solid var(--cpvp-line); background: rgba(246, 237, 227, .025); }
.cpvk-tl__date { display: flex; flex-direction: column; align-items: center; white-space: nowrap; font: 600 10.5px/1.2 var(--cpvp-sans); letter-spacing: .06em; text-transform: uppercase; color: var(--cpvp-muted); }
.cpvk-tl__date strong { font: 400 30px/1 var(--cpvp-display); color: var(--book-accent); letter-spacing: 0; }
.cpvk-tl__book { display: flex; gap: 12px; align-items: center; text-decoration: none !important; color: var(--cpvp-ivory) !important; min-width: 0; }
.cpvk-tl__thumb img, .cpvk-tl__thumb .cpvk-thumb__gen { width: 40px; aspect-ratio: 2 / 3; object-fit: cover; border-radius: 2px 4px 4px 2px; display: block; }
.cpvk-tl__book small { display: block; font: 600 10.5px/1.3 var(--cpvp-sans); letter-spacing: .1em; text-transform: uppercase; color: var(--cpvp-muted); }
.cpvk-tl__book b { display: block; font: 400 17px/1.2 var(--cpvp-display); }
.cpvk-soon__cal { margin-top: 26px; }

.cpvk-tests__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr)); gap: 14px; }
.cpvk-test { display: grid; grid-template-columns: 70px 1fr; gap: 18px; align-items: center; padding: 18px; border-radius: 18px; border: 1px solid var(--cpvp-line); background: rgba(246, 237, 227, .03); text-decoration: none !important; color: var(--cpvp-ivory) !important; transition: border-color .3s, transform .3s; }
.cpvk-test:hover { border-color: var(--book-accent); transform: translateY(-3px); }
.cpvk-test__thumb img, .cpvk-test__thumb .cpvk-thumb__gen { width: 70px; aspect-ratio: 2 / 3; object-fit: cover; border-radius: 3px 6px 6px 3px; display: block; }
.cpvk-test small { display: block; font: 600 11px/1.4 var(--cpvp-sans); letter-spacing: .16em; text-transform: uppercase; color: var(--book-accent); }
.cpvk-test b { display: block; margin: 4px 0 8px; font: 400 22px/1.15 var(--cpvp-display); }
.cpvk-test em { display: inline-flex; gap: 8px; align-items: center; font: 600 14px/1 var(--cpvp-sans); font-style: normal; color: var(--cpvp-gold); }

.cpvk-mi__box { max-width: 760px; text-align: center; }
.cpvk-mi__box .cpvp-eyebrow { justify-content: center; }
.cpvk-mi__box .cpvp-lead { margin-left: auto; margin-right: auto; }
.cpvk-link { max-width: 560px; margin: 24px auto 0; text-align: left; }
.cpvk-mine { background: radial-gradient(ellipse at 50% 0%, rgba(201, 164, 106, .12), transparent 60%), #120a0b; }
.cpvk-mine__who { margin: 8px 0 0 !important; font: 15px/1.4 var(--cpvp-sans); color: var(--cpvp-muted); }
.cpvk-mine__err, .cpvk-mine__empty { font: 16px/1.5 var(--cpvp-sans); color: var(--cpvp-ivory-2); }
.cpvk-mine__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); gap: 14px; }
.cpvk-card { padding: 22px; border-radius: 18px; border: 1px solid color-mix(in srgb, var(--book-accent) 40%, transparent); background: rgba(246, 237, 227, .035); }
.cpvk-card h3 { margin: 4px 0 10px !important; font: 400 22px/1.15 var(--cpvp-display) !important; color: var(--cpvp-ivory); }
.cpvk-card p { margin: 0 0 12px !important; font: 15.5px/1.5 var(--cpvp-sans); color: var(--cpvp-ivory-2); }
.cpvk-card .cpvk-card__label { margin: 0 !important; font: 600 11px/1.4 var(--cpvp-sans); letter-spacing: .18em; text-transform: uppercase; color: var(--book-accent); }
.cpvk-card .cpvp-btn { padding: 13px 20px; font-size: 14px; }
.cpvk-card--dl { display: grid; grid-template-columns: 56px 1fr; gap: 16px; align-items: center; }
.cpvk-card__thumb img, .cpvk-card__thumb .cpvk-thumb__gen { width: 56px; aspect-ratio: 2 / 3; object-fit: cover; border-radius: 3px 5px 5px 3px; display: block; }
.cpvk-card__link { display: inline-flex; gap: 8px; align-items: center; color: var(--cpvp-gold) !important; font: 600 14px/1 var(--cpvp-sans); text-decoration: none !important; }
.cpvk-dots { list-style: none !important; margin: 4px 0 14px !important; padding: 0 !important; display: flex; gap: 6px; }
.cpvk-dots li { margin: 0 !important; width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; border: 1px solid var(--cpvp-line); font: 600 12px/1 var(--cpvp-sans); color: var(--cpvp-muted); }
.cpvk-dots li.is-done { background: var(--book-accent); border-color: var(--book-accent); color: #160b0c; }

/* Banda en la página principal y enlace del reto */
.cpvk-band { padding: clamp(36px, 5vw, 56px) 0; border-bottom: 1px solid var(--cpvp-line); background: linear-gradient(90deg, rgba(201, 164, 106, .1), rgba(75, 15, 30, .35)); }
.cpvk-band__inner { display: flex; align-items: center; gap: clamp(20px, 4vw, 48px); flex-wrap: wrap; }
.cpvk-band__icons { display: flex; }
.cpvk-band__icons span { width: 58px; height: 58px; margin-left: -12px; border-radius: 50%; display: grid; place-items: center; border: 1px solid rgba(201, 164, 106, .5); background: #1a0f11; font: 400 20px/1 var(--cpvp-display); color: var(--cpvp-gold); box-shadow: 0 10px 20px -10px #000; }
.cpvk-band__icons span:first-child { margin-left: 0; }
.cpvk-band__icons span:nth-child(2) { font: 700 12px/1 var(--cpvp-sans); letter-spacing: .1em; }
.cpvk-band__copy { flex: 1 1 380px; }
.cpvk-band__copy .cpvp-eyebrow { margin-bottom: 8px !important; }
.cpvk-band__t { margin: 0 0 6px !important; font: 400 clamp(24px, 2.8vw, 34px)/1.15 var(--cpvp-display) !important; color: var(--cpvp-ivory); }
.cpvk-band__copy p:last-child { margin: 0 !important; color: var(--cpvp-ivory-2); font-size: 17px; }
.cpvx-reto__club { margin-top: 18px !important; text-align: center; }
.cpvx-reto__club a { color: var(--cpvp-gold) !important; font: 600 14.5px/1.4 var(--cpvp-sans); text-decoration: none !important; border-bottom: 1px solid rgba(201, 164, 106, .4); }
@media (max-width: 600px) {
	.cpvk-hero { padding-top: 40px; }
	.cpvk-hero__title { font-size: clamp(38px, 11vw, 48px) !important; }
	.cpvk-stats { grid-template-columns: 1fr 1fr; }
	.cpvk-stats strong { font-size: 34px; }
	.cpvk-gift label { grid-template-columns: 52px 1fr; padding: 16px 46px 16px 14px; gap: 12px; }
	.cpvk-gift__thumb img, .cpvk-gift__thumb .cpvk-thumb__gen { width: 52px; }
	.cpvk-send { bottom: 8px; border-radius: 18px; }
	.cpvk-band .cpvp-btn { width: 100%; justify-content: center; }
	.cpvk-dots li { width: 28px; height: 28px; }
}

.cpvk-float { position: fixed; left: 50%; bottom: 16px; z-index: 50; transform: translateX(-50%); padding: 13px 22px; border-radius: 999px; background: linear-gradient(135deg, #e6cc88, #c9a46a 55%, #b08a3e); color: #160b0c !important; font: 700 14px/1 var(--cpvp-sans); text-decoration: none !important; box-shadow: 0 18px 40px -14px rgba(0, 0, 0, .9); white-space: nowrap; }
.cpvk-float[hidden] { display: none !important; }

/* ==================================================================
   2.14 · Audio, lector, opiniones, «responde», clubes de lectura
   ================================================================== */

/* Audio: saltos, memoria */
.cpvx-audio { flex-wrap: wrap; }
.cpvx-audio__tools { flex: none; display: flex; align-items: center; gap: 6px; }
.cpvx-audio__skip { min-width: 44px; height: 36px; padding: 0 8px; border-radius: 999px; border: 1px solid rgba(246, 237, 227, .16); background: none; color: var(--cpvp-ivory-2); font: 600 12px/1 var(--cpvp-sans); font-variant-numeric: tabular-nums; cursor: pointer; transition: border-color .2s, color .2s; }
.cpvx-audio__skip:hover, .cpvx-audio__speed:hover { border-color: var(--book-accent); color: var(--cpvp-ivory); }
.cpvx-audio__resume { flex-basis: 100%; margin: -4px 0 0 78px !important; }
.cpvx-audio__resume button { padding: 0; border: 0; background: none; color: var(--book-accent); font: 600 13px/1.3 var(--cpvp-sans); cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 700px) {
	.cpvx-audio__tools { flex-basis: 100%; justify-content: center; order: 3; }
	.cpvx-audio__resume { margin: 0 !important; text-align: center; order: 4; }
}

/* Lector: ajustes y modo noche */
.cpvr__top { flex-wrap: nowrap; }
.cpvr__name { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cpvr__count { flex: none; }
.cpvr__opts { flex: none; display: flex; gap: 4px; padding: 3px; border-radius: 999px; border: 1px solid rgba(246, 237, 227, .16); }
.cpvr__opts button { width: 38px; height: 38px; padding: 0; border-radius: 50%; border: 0; background: none; color: var(--cpvp-ivory); font: 400 17px/1 var(--cpvp-display); cursor: pointer; display: inline-flex; align-items: baseline; justify-content: center; padding-top: 11px; box-sizing: border-box; transition: background .2s; }
.cpvr__opts button small { font: 600 11px/1 var(--cpvp-sans); margin-left: 1px; }
.cpvr__opts button:hover, .cpvr__opts button[aria-pressed="true"] { background: rgba(246, 237, 227, .1); }
.cpvr__opts svg { width: 18px; height: 18px; margin-top: -2px; }
.cpvr__theme { align-items: center !important; padding-top: 0 !important; }
.cpvr__more { margin-top: 1.4em !important; }
.cpvr.is-night .cpvr-page { background: #1e1816; background-image: linear-gradient(90deg, rgba(0, 0, 0, .25), rgba(0, 0, 0, 0) 8%, rgba(0, 0, 0, 0) 92%, rgba(0, 0, 0, .2)); color: #e6dbcd; }
.cpvr.is-night .cpvr-page__body p { color: #e6dbcd; }
.cpvr.is-night .cpvr-page__h, .cpvr.is-night .cpvr-tp__t, .cpvr.is-night .cpvr__end-t { color: #f3e8da !important; }
.cpvr.is-night .cpvr-page__head, .cpvr.is-night .cpvr-tp__k, .cpvr.is-night .cpvr-tp__o, .cpvr.is-night .cpvr__end-k { color: #b39367 !important; }
.cpvr.is-night .cpvr-page__num { color: #8f7d6a; }
.cpvr.is-night .cpvr__end .cpvp-btn--ghost { border-color: rgba(246, 237, 227, .3); color: #e6dbcd !important; }
.cpvr__more { margin: 1em 0 0 !important; text-align: center !important; }
.cpvr__chapter { font: 600 .82em/1.4 var(--cpvp-sans); color: #8a6a3c !important; text-decoration: underline !important; text-underline-offset: 3px; }
.cpvr.is-night .cpvr__chapter { color: #d2b07a !important; }
@media (max-width: 600px) {
	.cpvr__top { padding: 10px 12px; gap: 8px; }
	.cpvr__count { display: none; }
	.cpvr__opts button { width: 34px; height: 34px; }
}

/* Formularios comunes */
.cpvq, .cpvv-teaser, .cpvv-groups { --book-accent: var(--cpvp-gold); }
.cpvv-form { display: grid; gap: 6px; }
.cpvv-label { display: block; margin: 12px 0 4px; font: 600 13px/1.3 var(--cpvp-sans); letter-spacing: .02em; color: var(--cpvp-ivory-2); }
.cpvv-label span { font-weight: 400; color: var(--cpvp-muted); }
.cpvv-form input[type=text], .cpvv-form input[type=email], .cpvv-form textarea, .cpvv-form select {
	box-sizing: border-box; width: 100%; margin: 0; padding: 13px 16px !important; border-radius: 14px !important; border: 1px solid rgba(246, 237, 227, .18) !important;
	background: rgba(246, 237, 227, .05) !important; color: var(--cpvp-ivory) !important; font: 16px/1.45 var(--cpvp-sans) !important; box-shadow: none !important; outline: none; transition: border-color .2s, background .2s;
}
.cpvv-form textarea { resize: vertical; min-height: 110px; }
.cpvv-form select { appearance: none; -webkit-appearance: none; background-image: linear-gradient(45deg, transparent 50%, var(--cpvp-muted) 50%), linear-gradient(135deg, var(--cpvp-muted) 50%, transparent 50%) !important; background-position: calc(100% - 20px) 50%, calc(100% - 14px) 50% !important; background-size: 6px 6px !important; background-repeat: no-repeat !important; padding-right: 40px !important; }
.cpvv-form select option { color: #1b1416; }
.cpvv-form input::placeholder, .cpvv-form textarea::placeholder { color: var(--cpvp-muted); }
.cpvv-form input:focus, .cpvv-form textarea:focus, .cpvv-form select:focus { border-color: var(--book-accent) !important; background: rgba(246, 237, 227, .08) !important; }
.cpvv-form > .cpvp-btn { justify-self: start; margin-top: 18px; border: 0; cursor: pointer; }
.cpvv-form.is-busy .cpvp-btn { opacity: .65; }
.cpvv-form .cpvx-check em { font-style: normal; color: var(--cpvp-muted); }
.cpvv-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 14px; }
.cpvv-done { display: flex; gap: 14px; align-items: center; padding: 20px 22px; border-radius: 18px; border: 1px solid color-mix(in srgb, var(--book-accent) 45%, transparent); background: color-mix(in srgb, var(--book-accent) 10%, transparent); }
.cpvv-done span { flex: none; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--book-accent); color: #1b1416; font: 700 18px/1 var(--cpvp-sans); }
.cpvv-done p { margin: 0 !important; font: 16px/1.5 var(--cpvp-sans); color: var(--cpvp-ivory); }
@media (max-width: 640px) { .cpvv-grid { grid-template-columns: 1fr; } .cpvv-form > .cpvp-btn { justify-self: stretch; justify-content: center; } }

/* Opinión en la página del libro */
.cpvv-op { padding: 0 0 clamp(50px, 7vw, 90px); }
.cpvx-reviews + .cpvv-op { margin-top: calc(-1 * clamp(20px, 4vw, 50px)); }
.cpvv-op__box { max-width: 760px; margin: 0 auto; border-radius: 22px; border: 1px solid var(--cpvp-line); background: linear-gradient(180deg, rgba(246, 237, 227, .045), rgba(246, 237, 227, .015)); }
.cpvv-op__box summary { list-style: none; display: grid; grid-template-columns: 1fr auto; gap: 2px 16px; align-items: center; padding: 22px 26px; cursor: pointer; }
.cpvv-op__box summary::-webkit-details-marker { display: none; }
.cpvv-op__k { font: 600 11px/1.4 var(--cpvp-sans); letter-spacing: .22em; text-transform: uppercase; color: var(--book-accent); }
.cpvv-op__t { grid-column: 1; font: 400 clamp(22px, 2.4vw, 28px)/1.2 var(--cpvp-display); color: var(--cpvp-ivory); }
.cpvv-op__plus { grid-column: 2; grid-row: 1 / span 2; position: relative; width: 44px; height: 44px; border-radius: 50%; border: 1px solid rgba(246, 237, 227, .2); }
.cpvv-op__plus::before, .cpvv-op__plus::after { content: ""; position: absolute; left: 50%; top: 50%; width: 16px; height: 1.6px; margin: -.8px 0 0 -8px; background: var(--cpvp-ivory); transition: transform .3s; }
.cpvv-op__plus::after { transform: rotate(90deg); }
.cpvv-op__box[open] .cpvv-op__plus::after { transform: rotate(0); }
.cpvv-op__box .cpvv-form { padding: 0 26px 26px; }
.cpvv-stars { margin: 0; padding: 0; border: 0; min-width: 0; }
.cpvv-stars legend { padding: 0; margin: 4px 0 6px; font: 600 13px/1.3 var(--cpvp-sans); color: var(--cpvp-ivory-2); }
.cpvv-stars legend span { font-weight: 400; color: var(--cpvp-muted); }
.cpvv-stars__row { display: inline-flex; flex-direction: row-reverse; gap: 4px; }
.cpvv-stars__row input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.cpvv-stars__row label { cursor: pointer; padding: 3px; color: rgba(246, 237, 227, .22); transition: color .15s, transform .15s; }
.cpvv-stars__row label svg { display: block; width: 32px; height: 32px; fill: currentColor; }
.cpvv-stars__row label:hover, .cpvv-stars__row label:hover ~ label, .cpvv-stars__row input:checked ~ label { color: var(--book-accent); }
.cpvv-stars__row input:focus-visible + label { outline: 2px solid var(--book-accent); outline-offset: 2px; border-radius: 6px; }
.cpvv-stars__row label:active { transform: scale(.9); }
@media (max-width: 640px) { .cpvv-op__box summary { padding: 18px; } .cpvv-op__box .cpvv-form { padding: 0 18px 20px; } }

/* Página «responde» */
.cpvv-hero__inner { display: grid; grid-template-columns: 1fr auto; gap: clamp(30px, 6vw, 80px); align-items: center; max-width: 1100px; }
.cpvv-hero__photo { width: clamp(180px, 22vw, 280px); aspect-ratio: 1; border-radius: 50%; padding: 6px; border: 1px solid rgba(201, 164, 106, .55); box-shadow: 0 40px 80px -40px rgba(0, 0, 0, .9); }
.cpvv-hero__photo img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; display: block; }
.cpvv-narrow { max-width: 820px; }
.cpvv-list, .cpvv-ask, .cpvv-teaser { padding: clamp(64px, 8vw, 110px) 0; border-top: 1px solid var(--cpvp-line); }
.cpvv-qa { margin: 0 0 18px; padding: clamp(24px, 3.4vw, 38px); border-radius: 24px; border: 1px solid var(--cpvp-line); background: linear-gradient(180deg, rgba(246, 237, 227, .045), rgba(246, 237, 227, .012)); scroll-margin-top: 110px; }
.cpvv-qa:target { border-color: color-mix(in srgb, var(--book-accent, var(--cpvp-gold)) 60%, transparent); }
.cpvv-qa__meta { display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 0 0 14px !important; font: 600 11px/1.4 var(--cpvp-sans); letter-spacing: .16em; text-transform: uppercase; color: var(--cpvp-muted); }
.cpvv-qa__meta a { color: var(--book-accent, var(--cpvp-gold)) !important; text-decoration: none !important; }
.cpvv-qa__q { margin: 0 0 22px !important; font: italic 400 clamp(21px, 2.2vw, 26px)/1.35 var(--cpvp-serif) !important; color: var(--cpvp-ivory) !important; }
.cpvv-qa__q::before { content: "«"; color: var(--book-accent, var(--cpvp-gold)); } .cpvv-qa__q::after { content: "»"; color: var(--book-accent, var(--cpvp-gold)); }
.cpvv-qa__a { padding-left: clamp(16px, 2vw, 22px); border-left: 2px solid var(--book-accent, var(--cpvp-gold)); }
.cpvv-qa__who { display: flex; align-items: center; gap: 12px; margin: 0 0 12px !important; font: 14px/1.3 var(--cpvp-sans); color: var(--cpvp-muted); }
.cpvv-qa__who img { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; }
.cpvv-qa__who strong { color: var(--cpvp-ivory); font-weight: 600; }
.cpvv-qa__a p:not(.cpvv-qa__who) { margin: 0 0 12px !important; font-size: clamp(17px, 1.5vw, 19px); line-height: 1.65; color: var(--cpvp-ivory-2); }
.cpvv-qa__tools { display: flex; gap: 18px; align-items: center; margin: 16px 0 0 !important; font: 600 13px/1 var(--cpvp-sans); }
.cpvv-qa__tools a { color: var(--book-accent, var(--cpvp-gold)) !important; text-decoration: none !important; }
.cpvv-qa__copy { padding: 8px 14px; border-radius: 999px; border: 1px solid rgba(246, 237, 227, .2); background: none; color: var(--cpvp-ivory-2); font: inherit; cursor: pointer; }
.cpvv-qa__copy.is-done { border-color: var(--cpvp-gold); color: var(--cpvp-gold); }
.cpvv-ask__box { padding: clamp(26px, 4vw, 46px); border-radius: 28px; border: 1px solid rgba(201, 164, 106, .28); background: radial-gradient(ellipse at 0% 0%, rgba(201, 164, 106, .12), transparent 60%), #140c0d; }
.cpvv-care { margin-top: 26px; padding: 16px 18px; border-radius: 14px; background: rgba(246, 237, 227, .05); border: 1px solid var(--cpvp-line); }
.cpvv-care p { margin: 0 !important; font: 14px/1.55 var(--cpvp-sans); color: var(--cpvp-ivory-2); }
.cpvv-care strong { color: var(--cpvp-ivory); }
.cpvv-care a { color: var(--cpvp-gold) !important; font-weight: 600; }
@media (max-width: 760px) { .cpvv-hero__inner { grid-template-columns: 1fr; } .cpvv-hero__photo { order: -1; width: 132px; } }

/* Bloque en el club */
.cpvv-teaser .cpvk-head { margin-left: auto; margin-right: auto; text-align: center; }
.cpvv-teaser .cpvk-head .cpvp-eyebrow { justify-content: center; }
.cpvv-teaser .cpvk-head .cpvp-lead { margin-left: auto; margin-right: auto; }
.cpvv-teaser__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); gap: 14px; margin-bottom: 30px; }
.cpvv-mini { display: grid; gap: 12px; padding: 26px; border-radius: 22px; border: 1px solid var(--cpvp-line); background: rgba(246, 237, 227, .03); text-decoration: none !important; transition: border-color .3s, transform .3s; }
.cpvv-mini:hover { border-color: rgba(201, 164, 106, .5); transform: translateY(-2px); }
.cpvv-mini__q { font: italic 400 20px/1.35 var(--cpvp-serif); color: var(--cpvp-ivory); }
.cpvv-mini__a { font: 15px/1.55 var(--cpvp-sans); color: var(--cpvp-muted); }
.cpvv-mini em { font: 600 13px/1 var(--cpvp-sans); font-style: normal; color: var(--cpvp-gold); }

/* Clubes de lectura en la página del autor */
.cpvv-groups { padding: clamp(70px, 9vw, 120px) 0; border-top: 1px solid var(--cpvp-line); background: radial-gradient(ellipse at 100% 0%, rgba(201, 164, 106, .1), transparent 55%); }
.cpvv-groups__grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(32px, 6vw, 90px); align-items: start; }
.cpvv-groups__k { margin: 30px 0 10px !important; font: 600 11px/1.4 var(--cpvp-sans); letter-spacing: .22em; text-transform: uppercase; color: var(--cpvp-gold); }
.cpvv-groups__guides { margin: 0 !important; padding: 0 !important; list-style: none; display: grid; gap: 8px; }
.cpvv-groups__guides a { color: var(--cpvp-ivory-2) !important; text-decoration: none !important; font-size: 17px; border-bottom: 1px solid var(--cpvp-line); }
.cpvv-groups__guides a:hover { color: var(--cpvp-gold) !important; }
.cpvv-groups__form { padding: clamp(22px, 3vw, 34px); border-radius: 24px; border: 1px solid var(--cpvp-line); background: rgba(246, 237, 227, .03); }
.cpvv-groups__form > .cpvv-grid:first-of-type { margin-top: -12px; }
@media (max-width: 900px) { .cpvv-groups__grid { grid-template-columns: 1fr; } }

/* ==================================================================
   2.15 · «Qué leer si…», «Invita a alguien»
   ================================================================== */
.cpvp-finder__topic { display: inline-block; margin-top: 14px; font: 600 14px/1.4 var(--cpvp-sans); color: var(--cpvp-gold) !important; text-decoration: none !important; }
.cpvp-finder__all { margin-top: 14px !important; font: 600 14px/1.4 var(--cpvp-sans); }
.cpvp-finder__all a { color: var(--cpvp-gold) !important; text-decoration: none !important; border-bottom: 1px solid rgba(201, 164, 106, .4); }

.cpvt { --book-accent: var(--cpvp-gold); }
.cpvt--tema { }
.cpvt-hero__grid { display: grid; grid-template-columns: 1fr auto; gap: clamp(30px, 6vw, 90px); align-items: center; max-width: 1180px; }
.cpvt-hero__title { margin: 0 0 22px !important; font: 400 clamp(38px, 5.6vw, 72px)/1.04 var(--cpvp-display) !important; color: var(--cpvp-ivory) !important; text-wrap: balance; }
.cpvt-hero__title em { font-style: italic; color: var(--book-accent); }
.cpvt-hero__p { max-width: 58ch; margin: 0 0 14px !important; font-size: clamp(18px, 1.6vw, 21px); line-height: 1.6; color: var(--cpvp-ivory-2); }
.cpvt-hero__book { display: block; width: clamp(170px, 20vw, 270px); transform: rotate(3deg); transition: transform .4s; filter: drop-shadow(0 40px 50px rgba(0, 0, 0, .6)); }
.cpvt-hero__book:hover { transform: rotate(0) translateY(-4px); }
.cpvt-hero__book img { display: block; width: 100%; height: auto; border-radius: 3px; }
.cpvt-cover__gen { display: grid; place-items: center; aspect-ratio: 2/3; padding: 12px; border-radius: 4px; background: linear-gradient(160deg, #3a1420, #120a0b); color: var(--cpvp-ivory); font: 400 18px/1.15 var(--cpvp-display); text-align: center; }

.cpvt-body { padding: clamp(56px, 7vw, 100px) 0; border-top: 1px solid var(--cpvp-line); }
.cpvt-body__grid { display: grid; grid-template-columns: 1fr 360px; gap: clamp(30px, 5vw, 70px); align-items: start; }
.cpvt-block + .cpvt-block { margin-top: clamp(36px, 5vw, 56px); }
.cpvt-h2 { margin: 0 0 22px !important; font: 400 clamp(26px, 2.8vw, 36px)/1.15 var(--cpvp-display) !important; color: var(--cpvp-ivory) !important; }
.cpvt-signs { margin: 0 !important; padding: 0 !important; list-style: none; display: grid; gap: 10px; }
.cpvt-signs li { position: relative; padding: 16px 18px 16px 50px; border-radius: 16px; border: 1px solid var(--cpvp-line); background: rgba(246, 237, 227, .03); font-size: 18px; line-height: 1.5; color: var(--cpvp-ivory-2); }
.cpvt-signs li::before { content: ""; position: absolute; left: 20px; top: 24px; width: 12px; height: 12px; border-radius: 50%; border: 2px solid var(--book-accent); }
.cpvt-helps { margin: 0 !important; padding: 0 !important; list-style: none; counter-reset: h; display: grid; gap: 14px; }
.cpvt-helps li { counter-increment: h; display: grid; grid-template-columns: 46px 1fr; gap: 4px 16px; align-items: start; }
.cpvt-helps li::before { content: counter(h); grid-row: span 2; display: grid; place-items: center; width: 46px; height: 46px; border-radius: 50%; background: color-mix(in srgb, var(--book-accent) 18%, transparent); color: var(--book-accent); font: 400 22px/1 var(--cpvp-display); }
.cpvt-helps strong { font: 400 21px/1.3 var(--cpvp-display); color: var(--cpvp-ivory); }
.cpvt-helps span { font-size: 17px; line-height: 1.55; color: var(--cpvp-ivory-2); }

.cpvt-pick { position: sticky; top: 110px; padding: 26px; border-radius: 26px; border: 1px solid color-mix(in srgb, var(--book-accent) 40%, transparent); background: radial-gradient(ellipse at 50% 0%, color-mix(in srgb, var(--book-accent) 16%, transparent), transparent 70%), #140c0d; text-align: center; }
.cpvt-pick__k { margin: 0 0 18px !important; font: 600 11px/1.4 var(--cpvp-sans); letter-spacing: .22em; text-transform: uppercase; color: var(--book-accent); }
.cpvt-pick__cover { display: block; width: 150px; margin: 0 auto 18px; filter: drop-shadow(0 22px 26px rgba(0, 0, 0, .55)); }
.cpvt-pick__cover img { display: block; width: 100%; height: auto; border-radius: 3px; }
.cpvt-pick__t { margin: 0 !important; font: 400 26px/1.15 var(--cpvp-display) !important; color: var(--cpvp-ivory) !important; }
.cpvt-pick__sub { margin: 8px 0 0 !important; font-style: italic; font-size: 16px; line-height: 1.45; color: var(--cpvp-muted); }
.cpvt-pick__start { margin: 16px 0 0 !important; padding: 14px 16px; border-radius: 14px; background: rgba(246, 237, 227, .05); text-align: left; font-size: 15.5px; line-height: 1.55; color: var(--cpvp-ivory-2); }
.cpvt-pick__start strong { color: var(--cpvp-ivory); }
.cpvt-pick__actions { display: grid; gap: 10px; margin-top: 18px; }
.cpvt-pick__actions .cpvp-btn { justify-content: center; }
.cpvt-pick__actions .cpvx-cal { justify-self: center; }
.cpvt-pick__test { display: inline-block; margin-top: 14px; font: 600 14px/1.4 var(--cpvp-sans); color: var(--book-accent) !important; text-decoration: none !important; }

.cpvt-narrow { max-width: 820px; }
.cpvt-answers, .cpvt-faq, .cpvt-related { padding: clamp(56px, 7vw, 96px) 0; border-top: 1px solid var(--cpvp-line); }
.cpvt-answers .cpvv-mini { margin-bottom: 12px; }
.cpvt-faq__item { margin: 0 0 12px; border-radius: 18px; border: 1px solid var(--cpvp-line); background: rgba(246, 237, 227, .03); }
.cpvt-faq__item summary { list-style: none; cursor: pointer; padding: 20px 56px 20px 22px; position: relative; font: 400 20px/1.35 var(--cpvp-display); color: var(--cpvp-ivory); }
.cpvt-faq__item summary::-webkit-details-marker { display: none; }
.cpvt-faq__item summary::after { content: "+"; position: absolute; right: 22px; top: 50%; transform: translateY(-50%); font: 300 28px/1 var(--cpvp-sans); color: var(--book-accent); }
.cpvt-faq__item[open] summary::after { content: "–"; }
.cpvt-faq__item p { margin: 0 !important; padding: 0 22px 20px; font-size: 17px; line-height: 1.6; color: var(--cpvp-ivory-2); }

.cpvt-care { padding: clamp(56px, 7vw, 96px) 0; border-top: 1px solid var(--cpvp-line); }
.cpvt-care__box { display: grid; grid-template-columns: 1fr auto; gap: 30px; align-items: center; padding: clamp(26px, 4vw, 44px); border-radius: 28px; border: 1px solid rgba(201, 164, 106, .3); background: radial-gradient(ellipse at 100% 0%, rgba(201, 164, 106, .14), transparent 60%), #140c0d; }
.cpvt-care__urgent { margin: 16px 0 0 !important; font: 15px/1.55 var(--cpvp-sans); color: var(--cpvp-ivory-2); }
.cpvt-care__urgent a { color: var(--cpvp-gold) !important; font-weight: 600; }

.cpvt-area { padding: clamp(44px, 6vw, 80px) 0 0; }
.cpvt-area:last-of-type { padding-bottom: clamp(44px, 6vw, 80px); }
.cpvt-area__t { margin: 0 0 22px !important; font: 600 12px/1.4 var(--cpvp-sans) !important; letter-spacing: .24em; text-transform: uppercase; color: var(--cpvp-gold) !important; }
.cpvt-grid { margin: 0 !important; padding: 0 !important; list-style: none; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 330px), 1fr)); gap: 14px; }
.cpvt-card { display: flex; flex-direction: column; gap: 10px; height: 100%; padding: 24px; border-radius: 22px; border: 1px solid var(--cpvp-line); background: linear-gradient(180deg, rgba(246, 237, 227, .045), rgba(246, 237, 227, .01)); text-decoration: none !important; transition: border-color .3s, transform .3s; box-sizing: border-box; }
.cpvt-card:hover { border-color: color-mix(in srgb, var(--book-accent) 60%, transparent); transform: translateY(-3px); }
.cpvt-card__k { font: 600 11px/1.4 var(--cpvp-sans); letter-spacing: .2em; text-transform: uppercase; color: var(--book-accent); }
.cpvt-card strong { flex: 1; font: 400 23px/1.25 var(--cpvp-display); color: var(--cpvp-ivory); }
.cpvt-card__book { display: flex; align-items: center; gap: 12px; padding-top: 14px; border-top: 1px solid var(--cpvp-line); font: 600 14px/1.3 var(--cpvp-sans); color: var(--cpvp-ivory-2); }
.cpvt-card__book small { display: block; margin-top: 3px; font-weight: 400; color: var(--cpvp-muted); }
.cpvt-card__thumb { flex: none; width: 34px; }
.cpvt-card__thumb img { display: block; width: 100%; height: auto; border-radius: 2px; }
.cpvt-card__thumb .cpvt-cover__gen { font-size: 6px; padding: 2px; }
.cpvt-related__all { margin-top: 22px !important; text-align: center; font: 600 15px/1.4 var(--cpvp-sans); }
.cpvt-related__all a { color: var(--cpvp-gold) !important; text-decoration: none !important; }

.cpvt-booklinks { padding: 0 0 clamp(50px, 7vw, 90px); }
.cpvt-booklinks .cpvp-eyebrow { margin-bottom: 16px; }
.cpvt-booklinks__list { margin: 0 !important; padding: 0 !important; list-style: none; display: flex; flex-wrap: wrap; gap: 10px; }
.cpvt-booklinks__list a { display: inline-flex; align-items: center; gap: 8px; padding: 12px 18px; border-radius: 999px; border: 1px solid var(--cpvp-line); color: var(--cpvp-ivory) !important; text-decoration: none !important; font: 16px/1.3 var(--cpvp-sans); transition: border-color .3s; }
.cpvt-booklinks__list a span { color: var(--cpvp-muted); }
.cpvt-booklinks__list a:hover { border-color: var(--book-accent, var(--cpvp-gold)); }
.cpvt-booklinks__list .cpvp-ico { width: 16px; height: 16px; }

@media (max-width: 900px) {
	.cpvt-hero__grid { grid-template-columns: 1fr; }
	.cpvt-hero__book { order: -1; width: 150px; margin-bottom: 4px; }
	.cpvt-body__grid { grid-template-columns: 1fr; }
	.cpvt-pick { position: static; }
	.cpvt-care__box { grid-template-columns: 1fr; }
	.cpvt-care__box .cpvp-btn { justify-self: start; }
}

/* Invita a alguien */
.cpvi-mini { margin-top: 18px; padding: 18px 20px; border-radius: 18px; border: 1px solid rgba(201, 164, 106, .35); background: rgba(201, 164, 106, .08); text-align: left; }
.cpvi-mini__k { margin: 0 0 6px !important; font: 600 11px/1.4 var(--cpvp-sans); letter-spacing: .2em; text-transform: uppercase; color: var(--cpvp-gold); }
.cpvi-mini__t { margin: 0 0 14px !important; font: 15.5px/1.5 var(--cpvp-sans); color: var(--cpvp-ivory-2); }
.cpvi-mini__row, .cpvi__actions { display: flex; flex-wrap: wrap; gap: 10px; }
.cpvi-mini .cpvp-btn, .cpvi__actions .cpvp-btn { padding: 11px 18px; font-size: 14px; border: 0; cursor: pointer; }
.cpvi-mini .cpvp-btn--ghost, .cpvi__actions .cpvp-btn--ghost { border: 1px solid rgba(246, 237, 227, .25); background: none; color: var(--cpvp-ivory) !important; }
.cpvi { border-color: rgba(201, 164, 106, .45) !important; background: radial-gradient(ellipse at 0% 0%, rgba(201, 164, 106, .14), transparent 60%), rgba(246, 237, 227, .03) !important; }
.cpvi__actions { margin-top: 14px; }

/* ==================================================================
   2.16 · Tu plan de lectura
   ================================================================== */
.cpvl { --book-accent: var(--cpvp-gold); }
.cpvl-promise { display: flex; flex-wrap: wrap; gap: 12px; margin: 34px 0 0 !important; padding: 0 !important; list-style: none; }
.cpvl-promise li { padding: 14px 20px; border-radius: 16px; border: 1px solid var(--cpvp-line); background: rgba(246, 237, 227, .04); }
.cpvl-promise b { display: block; font: 400 24px/1.1 var(--cpvp-display); color: var(--cpvp-ivory); }
.cpvl-promise span { font: 13px/1.3 var(--cpvp-sans); color: var(--cpvp-muted); }

.cpvl-wizard { padding: clamp(50px, 7vw, 90px) 0; border-top: 1px solid var(--cpvp-line); scroll-margin-top: 90px; }
.cpvl-form { max-width: 980px; margin: 0 auto; }
.cpvl-step { margin: 0 0 clamp(34px, 5vw, 54px); padding: 0; border: 0; min-width: 0; }
.cpvl-step legend { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin-bottom: 20px; padding: 0; font: 400 clamp(24px, 2.6vw, 32px)/1.2 var(--cpvp-display); color: var(--cpvp-ivory); }
.cpvl-step legend > span { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; background: var(--cpvp-gold); color: #1b1416; font: 600 18px/1 var(--cpvp-sans); }
.cpvl-step legend small { font: 14px/1.3 var(--cpvp-sans); color: var(--cpvp-muted); }
.cpvl-area { margin: 18px 0 10px !important; font: 600 11px/1.4 var(--cpvp-sans); letter-spacing: .2em; text-transform: uppercase; color: var(--cpvp-muted); }
.cpvl-opts { display: flex; flex-wrap: wrap; gap: 10px; }
.cpvl-opt { position: relative; cursor: pointer; }
.cpvl-opt input { position: absolute; opacity: 0; }
.cpvl-opt span { display: inline-block; padding: 12px 18px; border-radius: 999px; border: 1px solid rgba(246, 237, 227, .18); background: rgba(246, 237, 227, .03); font: 15.5px/1.35 var(--cpvp-sans); color: var(--cpvp-ivory-2); transition: border-color .2s, background .2s, color .2s; }
.cpvl-opt:hover span { border-color: color-mix(in srgb, var(--book-accent) 60%, transparent); }
.cpvl-opt input:checked + span { border-color: var(--book-accent); background: color-mix(in srgb, var(--book-accent) 18%, transparent); color: var(--cpvp-ivory); }
.cpvl-opt input:checked + span::before { content: "✓ "; color: var(--book-accent); font-weight: 700; }
.cpvl-opt input:focus-visible + span { outline: 2px solid var(--book-accent); outline-offset: 2px; }
.cpvl-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.cpvl-card-opt { position: relative; cursor: pointer; }
.cpvl-card-opt input { position: absolute; opacity: 0; }
.cpvl-card-opt span { display: block; height: 100%; box-sizing: border-box; padding: 20px; border-radius: 18px; border: 1px solid rgba(246, 237, 227, .16); background: rgba(246, 237, 227, .03); transition: border-color .2s, background .2s; }
.cpvl-card-opt b { display: block; font: 400 21px/1.2 var(--cpvp-display); color: var(--cpvp-ivory); }
.cpvl-card-opt small { display: block; margin-top: 6px; font: 14px/1.4 var(--cpvp-sans); color: var(--cpvp-muted); }
.cpvl-card-opt input:checked + span { border-color: var(--cpvp-gold); background: rgba(201, 164, 106, .12); box-shadow: inset 0 0 0 1px var(--cpvp-gold); }
.cpvl-card-opt input:focus-visible + span { outline: 2px solid var(--cpvp-gold); outline-offset: 2px; }
.cpvl-go { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; }
.cpvl-go .cpvp-btn { border: 0; cursor: pointer; font-size: 16px; padding: 16px 30px; }
.cpvl-go__msg { margin: 0 !important; font: 600 14px/1.4 var(--cpvp-sans); color: #f2a39a; }

.cpvl-result { margin-top: clamp(50px, 7vw, 90px); padding-top: clamp(40px, 6vw, 70px); border-top: 1px solid var(--cpvp-line); scroll-margin-top: 90px; }
.cpvl-plan__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 22px; }
.cpvl-plan__books { display: flex; flex-wrap: wrap; gap: 10px; }
.cpvl-chip { display: flex; align-items: center; gap: 12px; padding: 8px 16px 8px 8px; border-radius: 16px; border: 1px solid color-mix(in srgb, var(--book-accent) 45%, transparent); background: color-mix(in srgb, var(--book-accent) 8%, transparent); text-decoration: none !important; }
.cpvl-chip img { width: 36px; height: auto; border-radius: 2px; }
.cpvl-chip small { display: block; font: 12.5px/1.3 var(--cpvp-sans); color: var(--cpvp-muted); }
.cpvl-chip b { display: block; font: 400 17px/1.2 var(--cpvp-display); color: var(--cpvp-ivory); }
.cpvl-plan__meta { display: flex; gap: 8px; flex-wrap: wrap; margin: 0 !important; }
.cpvl-plan__meta span { padding: 7px 12px; border-radius: 999px; border: 1px solid var(--cpvp-line); font: 13px/1.2 var(--cpvp-sans); color: var(--cpvp-ivory-2); }
.cpvl-weeks { margin: 0 !important; padding: 0 !important; list-style: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; counter-reset: none; }
.cpvl-week { display: flex; flex-direction: column; padding: 22px 20px; border-radius: 22px; border: 1px solid var(--cpvp-line); background: linear-gradient(180deg, rgba(246, 237, 227, .045), rgba(246, 237, 227, .012)); }
.cpvl-week.is-now { border-color: var(--cpvp-gold); box-shadow: 0 30px 60px -40px rgba(201, 164, 106, .55); }
.cpvl-week.is-past { opacity: .82; }
.cpvl-week__head { display: flex; gap: 12px; align-items: center; }
.cpvl-week__n { flex: none; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; border: 1px solid rgba(201, 164, 106, .5); font: 400 20px/1 var(--cpvp-display); color: var(--cpvp-gold); }
.cpvl-week.is-now .cpvl-week__n { background: var(--cpvp-gold); color: #1b1416; }
.cpvl-week__k { margin: 0 !important; font: 600 10.5px/1.4 var(--cpvp-sans); letter-spacing: .14em; text-transform: uppercase; color: var(--cpvp-muted); }
.cpvl-week__k em { font-style: normal; color: var(--cpvp-gold); }
.cpvl-week__t { margin: 2px 0 0 !important; font: 400 20px/1.2 var(--cpvp-display) !important; color: var(--cpvp-ivory) !important; }
.cpvl-week__intro { margin: 14px 0 16px !important; font: italic 16px/1.5 var(--cpvp-serif); color: var(--cpvp-muted); }
.cpvl-items { margin: 0 !important; padding: 0 !important; list-style: none; display: grid; gap: 10px; }
.cpvl-item { display: grid; grid-template-columns: auto auto 1fr; gap: 10px; align-items: start; padding: 12px; border-radius: 14px; background: rgba(246, 237, 227, .035); transition: opacity .3s; }
.cpvl-item.is-done { opacity: .55; }
.cpvl-item.is-done .cpvl-item__body { text-decoration: line-through; text-decoration-color: rgba(246, 237, 227, .35); }
.cpvl-item__dot { width: 8px; height: 8px; margin-top: 8px; border-radius: 50%; background: var(--cpvp-gold); }
.cpvl-item__check input { width: 20px; height: 20px; margin: 1px 0 0; accent-color: var(--cpvp-gold); cursor: pointer; }
.cpvl-item__ico { display: grid; place-items: center; width: 26px; height: 26px; color: var(--cpvp-gold); }
.cpvl-item__ico svg { width: 20px; height: 20px; }
.cpvl-item__body { font: 14.5px/1.5 var(--cpvp-sans); color: var(--cpvp-ivory-2); }
.cpvl-item__body small { display: block; margin-bottom: 2px; font: 600 10.5px/1.3 var(--cpvp-sans); letter-spacing: .14em; text-transform: uppercase; color: var(--cpvp-gold); }
.cpvl-item__body a { color: var(--cpvp-gold) !important; font-weight: 600; text-decoration: none !important; white-space: nowrap; }
.cpvl-notes { margin-top: 14px; }
.cpvl-notes summary { cursor: pointer; font: 600 13.5px/1.4 var(--cpvp-sans); color: var(--cpvp-gold); }
.cpvl-notes textarea { box-sizing: border-box; width: 100%; margin-top: 10px; padding: 12px !important; border-radius: 12px !important; border: 1px solid rgba(246, 237, 227, .18) !important; background: rgba(246, 237, 227, .05) !important; color: var(--cpvp-ivory) !important; font: 15px/1.5 var(--cpvp-serif) !important; resize: vertical; }
.cpvl-notes p { margin: 6px 0 0 !important; font: 12px/1.4 var(--cpvp-sans); color: var(--cpvp-muted); }
.cpvl-plan__care { margin: 22px 0 0 !important; font: 13px/1.55 var(--cpvp-sans); color: var(--cpvp-muted); }
.cpvl-plan__care a { color: var(--cpvp-gold) !important; }

.cpvl-save { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(24px, 4vw, 60px); margin-top: 34px; padding: clamp(24px, 4vw, 40px); border-radius: 26px; border: 1px solid rgba(201, 164, 106, .35); background: radial-gradient(ellipse at 0% 0%, rgba(201, 164, 106, .14), transparent 60%), #140c0d; }
.cpvl-save h3 { margin: 6px 0 10px !important; font: 400 28px/1.15 var(--cpvp-display) !important; color: var(--cpvp-ivory) !important; }
.cpvl-save p { font: 15.5px/1.55 var(--cpvp-sans); color: var(--cpvp-ivory-2); }
.cpvl-save .cpvx-lead__row .cpvp-btn { border: 0; cursor: pointer; }
.cpvl-open { margin-top: 12px; }

.cpvl-body { padding: clamp(40px, 6vw, 80px) 0; border-top: 1px solid var(--cpvp-line); }
.cpvl-hero__grid { display: grid; grid-template-columns: 1fr auto; gap: 40px; align-items: center; max-width: 1100px; }
.cpvl-ring { --p: 0; position: relative; display: grid; place-items: center; align-content: center; width: 200px; height: 200px; border-radius: 50%; background: conic-gradient(var(--cpvp-gold) calc(var(--p) * 1%), rgba(246, 237, 227, .1) 0); text-align: center; transition: background .4s; }
.cpvl-ring::before { content: ""; position: absolute; inset: 12px; border-radius: 50%; background: #140b0c; }
.cpvl-ring > * { position: relative; }
.cpvl-ring strong { font: 400 46px/1 var(--cpvp-display); color: var(--cpvp-ivory); }
.cpvl-ring span { margin-top: 6px; font: 13px/1.3 var(--cpvp-sans); color: var(--cpvp-muted); }
.cpvl-del-msg { margin-top: 12px !important; font: 600 14px/1.4 var(--cpvp-sans); color: #9fd3a9; }
.cpvl-hero .cpvp-actions button { cursor: pointer; }

.cpvl-cta { padding: clamp(30px, 4vw, 50px) 0; }
.cpvl-cta--compact { padding-top: 0; }
.cpvl-cta__box { display: grid; grid-template-columns: auto 1fr auto; gap: clamp(18px, 3vw, 34px); align-items: center; padding: clamp(22px, 3vw, 32px); border-radius: 26px; border: 1px solid rgba(201, 164, 106, .4); background: radial-gradient(ellipse at 0% 50%, rgba(201, 164, 106, .16), transparent 60%), #150c0e; text-decoration: none !important; transition: transform .3s, box-shadow .3s; }
.cpvl-cta__box:hover { transform: translateY(-2px); box-shadow: 0 30px 60px -40px rgba(201, 164, 106, .6); }
.cpvl-cta__weeks { display: grid; grid-template-columns: repeat(2, 28px); gap: 5px; }
.cpvl-cta__weeks i { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 8px; border: 1px solid rgba(201, 164, 106, .55); font: 600 12px/1 var(--cpvp-sans); font-style: normal; color: var(--cpvp-gold); }
.cpvl-cta__weeks i:first-child { background: var(--cpvp-gold); color: #1b1416; }
.cpvl-cta__txt small { display: block; font: 600 11px/1.4 var(--cpvp-sans); letter-spacing: .2em; text-transform: uppercase; color: var(--cpvp-gold); }
.cpvl-cta__txt strong { display: block; margin: 4px 0; font: 400 clamp(22px, 2.4vw, 28px)/1.2 var(--cpvp-display); color: var(--cpvp-ivory); }
.cpvl-cta__txt em { font: italic 16px/1.45 var(--cpvp-serif); color: var(--cpvp-muted); }
.cpvl-card .cpvl-bar { height: 6px; margin: 12px 0 8px; border-radius: 6px; background: rgba(246, 237, 227, .12); overflow: hidden; }
.cpvl-card .cpvl-bar span { display: block; height: 100%; background: var(--cpvp-gold); }

@media (max-width: 1080px) { .cpvl-weeks { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 760px) {
	.cpvl-weeks, .cpvl-cards { grid-template-columns: 1fr; }
	.cpvl-save { grid-template-columns: 1fr; }
	.cpvl-hero__grid { grid-template-columns: 1fr; }
	.cpvl-ring { width: 160px; height: 160px; }
	.cpvl-cta__box { grid-template-columns: 1fr; }
	.cpvl-cta__weeks { display: none; }
	.cpvl-cta__box .cpvp-btn { justify-self: start; }
	.cpvl-plan__head { align-items: flex-start; }
}

/* ==================================================================
   2.17 · La app del libro en Publicaciones
   ================================================================== */
.cpvx-appsec { padding: clamp(70px, 9vw, 120px) 0; border-top: 1px solid var(--cpvp-line); background: radial-gradient(ellipse at 80% 0%, color-mix(in srgb, var(--book-accent) 12%, transparent), transparent 60%); scroll-margin-top: 90px; }
.cpvx-appsec .cpvx-app { margin-top: 10px; }
.cpvx-appsec__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: clamp(30px, 4vw, 50px); }
.cpvx-appsec__card { padding: clamp(22px, 3vw, 32px); border-radius: 24px; border: 1px solid var(--cpvp-line); background: rgba(246, 237, 227, .035); scroll-margin-top: 100px; }
.cpvx-appsec__k { margin: 0 0 6px !important; font: 600 11px/1.4 var(--cpvp-sans) !important; letter-spacing: .2em; text-transform: uppercase; color: var(--book-accent) !important; }
.cpvx-appsec__card h3 { margin: 0 0 14px !important; font: 400 26px/1.2 var(--cpvp-display) !important; color: var(--cpvp-ivory) !important; }
.cpvx-appsec__card ol { margin: 0 0 20px !important; padding-left: 20px !important; display: grid; gap: 8px; font: 16px/1.55 var(--cpvp-sans); color: var(--cpvp-ivory-2); }
.cpvx-appsec__card p { margin: 0 0 14px !important; font: 16px/1.6 var(--cpvp-sans); color: var(--cpvp-ivory-2); }
.cpvx-appsec__card strong { color: var(--cpvp-ivory); }
.cpvx-appsec__note { font-size: 14.5px !important; color: var(--cpvp-muted) !important; }
.cpvx-appsec__card .cpvp-btn { margin-top: 4px; }
.cpvb-hero__app .cpvp-ico { width: 18px; height: 18px; }

.cpvx-appmini { display: grid; grid-template-columns: auto 1fr auto; gap: clamp(16px, 3vw, 30px); align-items: center; margin: 0 0 14px; padding: clamp(18px, 2.6vw, 26px); border-radius: 26px; border: 1px solid color-mix(in srgb, var(--book-accent) 40%, transparent); background: radial-gradient(ellipse at 0% 50%, color-mix(in srgb, var(--book-accent) 16%, transparent), transparent 60%), #140c0d; text-decoration: none !important; transition: transform .3s, box-shadow .3s; }
.cpvx-appmini:hover { transform: translateY(-2px); box-shadow: 0 30px 60px -40px color-mix(in srgb, var(--book-accent) 70%, transparent); }
.cpvx-appmini__phone { display: block; width: 74px; padding: 4px; border-radius: 16px; background: #050304; box-shadow: 0 0 0 1px rgba(246, 237, 227, .16), 0 20px 30px -16px rgba(0, 0, 0, .8); transform: rotate(-4deg); }
.cpvx-appmini__phone img { display: block; width: 100%; height: auto; border-radius: 12px; }
.cpvx-appmini__txt small { display: block; font: 600 11px/1.4 var(--cpvp-sans); letter-spacing: .18em; text-transform: uppercase; color: var(--book-accent); }
.cpvx-appmini__txt strong { display: block; margin: 4px 0; font: 400 clamp(21px, 2.3vw, 27px)/1.2 var(--cpvp-display); color: var(--cpvp-ivory); }
.cpvx-appmini__txt em { font: italic 16px/1.45 var(--cpvp-serif); color: var(--cpvp-muted); }
.cpvt-app { padding: clamp(30px, 4vw, 50px) 0 0; }
.cpvk-apps { padding: clamp(64px, 8vw, 110px) 0; border-top: 1px solid var(--cpvp-line); }
.cpvk-card--app { border-color: color-mix(in srgb, var(--book-accent) 45%, transparent) !important; }
@media (max-width: 760px) {
	.cpvx-appsec__grid { grid-template-columns: 1fr; }
	.cpvx-appmini { grid-template-columns: auto 1fr; }
	.cpvx-appmini > .cpvp-btn { grid-column: 1 / -1; justify-self: start; }
	.cpvx-appmini__phone { width: 60px; }
}

/* ==================================================================
   2.18 · «52 preguntas para conectar»
   ================================================================== */
.cpvz { --c: var(--cpvp-gold); background: radial-gradient(70% 50% at 85% 0%, rgba(201, 164, 106, .14), transparent 70%), radial-gradient(60% 50% at 0% 10%, rgba(122, 22, 44, .55), transparent 70%), var(--cpvp-bg); }
.cpvz-setup { padding: clamp(40px, 7vw, 90px) 0 clamp(60px, 8vw, 110px); }
.cpvz-hero { display: grid; grid-template-columns: 1fr auto; gap: clamp(24px, 5vw, 70px); align-items: center; margin: 22px 0 clamp(30px, 5vw, 56px); }
.cpvz-title { margin: 0 !important; font: 400 clamp(40px, 6.4vw, 84px)/1.02 var(--cpvp-display) !important; color: var(--cpvp-ivory) !important; text-wrap: balance; }
.cpvz-title em { font-style: italic; color: var(--cpvp-gold); }
.cpvz-lead { max-width: 52ch; margin: 20px 0 0 !important; font-size: clamp(18px, 1.7vw, 21px); line-height: 1.6; color: var(--cpvp-ivory-2); }
.cpvz-fan { position: relative; width: 250px; height: 250px; }
.cpvz-fan__card { position: absolute; left: 50%; top: 50%; width: 132px; height: 186px; margin: -93px 0 0 -66px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; border-radius: 14px; background: #f6efe4; box-shadow: 0 20px 40px -18px rgba(0, 0, 0, .8), inset 0 0 0 6px #f6efe4, inset 0 0 0 7.5px var(--c); transform: rotate(var(--r)) translateY(-8px); transform-origin: 50% 120%; animation: cpvz-fan 1s cubic-bezier(.2, .8, .2, 1) both; }
.cpvz-fan__card b { font-size: 46px; line-height: 1; color: var(--c); }
.cpvz-fan__card small { font: 600 10px/1 var(--cpvp-sans); letter-spacing: .2em; text-transform: uppercase; color: #5b4743; }
@keyframes cpvz-fan { from { transform: rotate(0) translateY(20px); opacity: 0; } }
.cpvz-form { max-width: 900px; }
.cpvz-form fieldset { margin: 0 0 28px; padding: 0; border: 0; min-width: 0; }
.cpvz-form legend { margin-bottom: 12px; padding: 0; font: 400 clamp(21px, 2.2vw, 26px)/1.2 var(--cpvp-display); color: var(--cpvp-ivory); }
.cpvz-form legend small { font: 14px/1.3 var(--cpvp-sans); color: var(--cpvp-muted); }
.cpvz-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.cpvz-chips label, .cpvz-palos label { position: relative; cursor: pointer; }
.cpvz-chips input, .cpvz-palos input { position: absolute; opacity: 0; }
.cpvz-chips span { display: inline-block; padding: 11px 18px; border-radius: 999px; border: 1px solid rgba(246, 237, 227, .2); font: 15px/1.3 var(--cpvp-sans); color: var(--cpvp-ivory-2); transition: all .2s; }
.cpvz-chips input:checked + span { border-color: var(--cpvp-gold); background: rgba(201, 164, 106, .16); color: var(--cpvp-ivory); }
.cpvz-chips input:focus-visible + span, .cpvz-palos input:focus-visible + span { outline: 2px solid var(--cpvp-gold); outline-offset: 2px; }
.cpvz-palos { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.cpvz-palos span { display: grid; grid-template-columns: auto 1fr; gap: 2px 12px; align-items: center; height: 100%; box-sizing: border-box; padding: 16px; border-radius: 16px; border: 1px solid rgba(246, 237, 227, .16); opacity: .5; transition: all .2s; }
.cpvz-palos b { grid-row: span 2; font-size: 30px; line-height: 1; color: var(--c); }
.cpvz-palos strong { font: 400 20px/1.1 var(--cpvp-display); color: var(--cpvp-ivory); }
.cpvz-palos small { font: 13px/1.3 var(--cpvp-sans); color: var(--cpvp-muted); }
.cpvz-palos input:checked + span { opacity: 1; border-color: color-mix(in srgb, var(--c) 70%, transparent); background: color-mix(in srgb, var(--c) 12%, transparent); }
.cpvz-players { box-sizing: border-box; width: 100%; max-width: 520px; padding: 13px 16px !important; border-radius: 14px !important; border: 1px solid rgba(246, 237, 227, .18) !important; background: rgba(246, 237, 227, .05) !important; color: var(--cpvp-ivory) !important; font: 16px/1.4 var(--cpvp-sans) !important; }
.cpvz-start { display: flex; flex-wrap: wrap; align-items: center; gap: 18px; margin-top: 8px; }
.cpvz-start .cpvp-btn { border: 0; cursor: pointer; font-size: 17px; padding: 17px 32px; }
.cpvz-link { padding: 0; border: 0; background: none; color: var(--cpvp-gold); font: 600 15px/1.3 var(--cpvp-sans); cursor: pointer; text-decoration: underline; text-underline-offset: 4px; }
.cpvz-note { margin: 18px 0 0 !important; font: 13.5px/1.5 var(--cpvp-sans); color: var(--cpvp-muted); }
.cpvz-note.is-error { color: #f2a39a; font-weight: 600; }

.cpvz-play { min-height: 100svh; box-sizing: border-box; display: flex; flex-direction: column; padding: 16px 16px 26px; max-width: 620px; margin: 0 auto; }
.cpvz-play__top { display: flex; align-items: center; justify-content: space-between; }
.cpvz-icon { width: 44px; height: 44px; border-radius: 50%; border: 1px solid rgba(246, 237, 227, .2); background: none; color: var(--cpvp-ivory); font: 400 20px/1 var(--cpvp-sans); cursor: pointer; }
.cpvz-count { margin: 0 !important; font: 600 14px/1 var(--cpvp-sans); letter-spacing: .1em; color: var(--cpvp-muted); font-variant-numeric: tabular-nums; }
.cpvz-bar { height: 3px; margin: 14px 0 0; border-radius: 3px; background: rgba(246, 237, 227, .12); overflow: hidden; }
.cpvz-bar span { display: block; height: 100%; width: 0; background: var(--cpvp-gold); transition: width .4s; }
.cpvz-turn { margin: 14px 0 0 !important; text-align: center; font: 15px/1.3 var(--cpvp-sans); color: var(--cpvp-muted); }
.cpvz-turn strong { color: var(--cpvp-ivory); font-weight: 600; }
.cpvz-stage { flex: 1; display: grid; place-items: center; padding: 18px 0; perspective: 1400px; }
.cpvz-card { --c: var(--cpvp-gold); position: relative; box-sizing: border-box; width: min(100%, 440px); aspect-ratio: 3 / 4; max-height: 64svh; display: flex; flex-direction: column; padding: 26px 28px; border-radius: 26px; background: linear-gradient(180deg, #fbf6ee, #f1e8da); color: #2a1a1c; box-shadow: 0 40px 70px -30px rgba(0, 0, 0, .85), inset 0 0 0 10px #fbf6ee, inset 0 0 0 11.5px color-mix(in srgb, var(--c) 75%, #fff); touch-action: pan-y; user-select: none; cursor: grab; transition: transform .35s cubic-bezier(.2, .8, .2, 1); }
.cpvz-card.is-drag { transition: none; cursor: grabbing; }
.cpvz-card.is-in-r { animation: cpvz-in-r .45s cubic-bezier(.2, .8, .2, 1); }
.cpvz-card.is-in-l { animation: cpvz-in-l .45s cubic-bezier(.2, .8, .2, 1); }
@keyframes cpvz-in-r { from { transform: translateX(60px) rotate(4deg); opacity: 0; } }
@keyframes cpvz-in-l { from { transform: translateX(-60px) rotate(-4deg); opacity: 0; } }
.cpvz-card header { display: flex; align-items: center; gap: 10px; padding: 6px 8px 0; }
.cpvz-card header b { font-size: 30px; line-height: 1; color: var(--c); }
.cpvz-card header span { flex: 1; font: 600 12px/1 var(--cpvp-sans); letter-spacing: .24em; text-transform: uppercase; color: #6d5650; }
.cpvz-card header i { font: 700 22px/1 var(--cpvp-sans); font-style: normal; letter-spacing: .1em; color: var(--c); }
.cpvz-q { flex: 1; display: flex; align-items: center; margin: 0 !important; padding: 10px 8px; font: 400 clamp(25px, 6.4vw, 34px)/1.22 var(--cpvp-display) !important; color: #2a1416 !important; text-wrap: pretty; }
.cpvz-card footer { padding: 14px 8px 4px; border-top: 1px solid rgba(42, 26, 28, .12); font: italic 14px/1.4 var(--cpvp-serif); color: #7a645d; }
.cpvz-controls { display: flex; justify-content: center; align-items: center; gap: 14px; }
.cpvz-ctl { display: grid; place-items: center; width: 56px; height: 56px; border-radius: 50%; border: 1px solid rgba(246, 237, 227, .22); background: rgba(246, 237, 227, .04); color: var(--cpvp-ivory); font: 400 28px/1 var(--cpvp-sans); cursor: pointer; transition: all .2s; }
.cpvz-ctl:disabled { opacity: .3; cursor: default; }
.cpvz-ctl svg { width: 22px; height: 22px; }
.cpvz-ctl--next { width: 72px; height: 72px; border: 0; background: linear-gradient(135deg, #e6c88f, var(--cpvp-gold) 60%, #a8834b); color: #1c0f0c; font-size: 34px; box-shadow: 0 14px 30px -14px var(--cpvp-gold); }
.cpvz-ctl--fav[aria-pressed="true"] { color: #e58a8a; border-color: #e58a8a; }
.cpvz-ctl.is-done { border-color: var(--cpvp-gold); color: var(--cpvp-gold); }
.cpvz-hint { margin: 14px 0 0 !important; text-align: center; font: 13px/1.4 var(--cpvp-sans); color: var(--cpvp-muted); }
html.cpvz-lock { overscroll-behavior: none; }

.cpvz-end { padding: clamp(70px, 10vw, 140px) 0; text-align: center; }
.cpvz-end__inner { max-width: 760px; }
.cpvz-end .cpvp-eyebrow { justify-content: center; }
.cpvz-end .cpvz-lead { margin-left: auto !important; margin-right: auto !important; }
.cpvz-end .cpvp-actions { justify-content: center; margin-top: 30px; }
.cpvz-end .cpvp-actions button { border: 0; cursor: pointer; }
.cpvz-sharegame { margin-top: 40px; padding-top: 30px; border-top: 1px solid var(--cpvp-line); }
.cpvz-sharegame p { margin: 0 0 12px !important; color: var(--cpvp-ivory-2); }
.cpvz-sharegame .cpvx-share { display: inline-block; }

.cpvz-sheet { position: fixed; inset: 0; z-index: 999999; display: grid; place-items: end center; padding: 16px; background: rgba(8, 5, 6, .7); }
.cpvz-sheet[hidden] { display: none; }
.cpvz-sheet__box { position: relative; box-sizing: border-box; width: min(100%, 620px); max-height: 86svh; overflow: auto; padding: 30px 26px 26px; border-radius: 26px; background: #171011; border: 1px solid rgba(201, 164, 106, .3); animation: cpvz-up .3s cubic-bezier(.2, .8, .2, 1); }
@keyframes cpvz-up { from { transform: translateY(30px); opacity: 0; } }
.cpvz-sheet__box h2 { margin: 4px 0 18px !important; font: 400 30px/1.15 var(--cpvp-display) !important; color: var(--cpvp-ivory) !important; }
.cpvz-sheet__x { position: absolute; top: 14px; right: 14px; width: 40px; height: 40px; border-radius: 50%; border: 1px solid rgba(246, 237, 227, .2); background: none; color: var(--cpvp-ivory); font-size: 22px; cursor: pointer; }
.cpvz-rules { margin: 0 !important; padding: 0 !important; list-style: none; counter-reset: r; display: grid; gap: 12px; }
.cpvz-rules li { counter-increment: r; display: grid; grid-template-columns: 34px 1fr; gap: 2px 12px; }
.cpvz-rules li::before { content: counter(r); grid-row: span 2; display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: rgba(201, 164, 106, .16); color: var(--cpvp-gold); font: 600 15px/1 var(--cpvp-sans); }
.cpvz-rules strong { font: 400 19px/1.3 var(--cpvp-display); color: var(--cpvp-ivory); }
.cpvz-rules span { font: 15px/1.5 var(--cpvp-sans); color: var(--cpvp-ivory-2); }
.cpvz-sheet__note { margin: 18px 0 0 !important; font: 13.5px/1.55 var(--cpvp-sans); color: var(--cpvp-muted); }
.cpvz-favs { margin: 0 0 16px !important; padding: 0 !important; list-style: none; display: grid; gap: 8px; }
.cpvz-favs li { display: grid; grid-template-columns: auto 1fr auto; gap: 12px; align-items: center; padding: 12px 14px; border-radius: 14px; background: rgba(246, 237, 227, .05); border-left: 3px solid var(--c); }
.cpvz-favs b { color: var(--c); font-size: 20px; }
.cpvz-favs span { font: 16px/1.4 var(--cpvp-serif); color: var(--cpvp-ivory); }
.cpvz-favs button { width: 32px; height: 32px; border-radius: 50%; border: 1px solid rgba(246, 237, 227, .2); background: none; color: var(--cpvp-muted); cursor: pointer; }
.cpvz-sheet .cpvp-btn { border: 0; cursor: pointer; margin-top: 8px; }

.cpvz-mini { display: grid; grid-template-columns: auto 1fr auto; gap: clamp(16px, 3vw, 30px); align-items: center; margin: 0 0 14px; padding: clamp(18px, 2.6vw, 26px); border-radius: 26px; border: 1px solid rgba(201, 164, 106, .4); background: radial-gradient(ellipse at 0% 50%, rgba(181, 154, 214, .16), transparent 60%), #140c0d; text-decoration: none !important; transition: transform .3s, box-shadow .3s; }
.cpvz-mini:hover { transform: translateY(-2px); box-shadow: 0 30px 60px -40px rgba(201, 164, 106, .6); }
.cpvz-mini__deck { position: relative; width: 74px; height: 92px; }
.cpvz-mini__deck i { position: absolute; left: 10px; top: 4px; width: 54px; height: 76px; display: grid; place-items: center; border-radius: 9px; background: #f6efe4; box-shadow: 0 10px 20px -10px rgba(0, 0, 0, .8), inset 0 0 0 3px #f6efe4, inset 0 0 0 4px var(--c); color: var(--c); font-style: normal; font-size: 22px; }
.cpvz-mini__deck i:nth-child(1) { transform: rotate(-14deg) translateX(-8px); }
.cpvz-mini__deck i:nth-child(2) { transform: rotate(-5deg) translateX(-3px); }
.cpvz-mini__deck i:nth-child(3) { transform: rotate(5deg) translateX(3px); }
.cpvz-mini__deck i:nth-child(4) { transform: rotate(14deg) translateX(8px); }
.cpvz-mini__txt small { display: block; font: 600 11px/1.4 var(--cpvp-sans); letter-spacing: .18em; text-transform: uppercase; color: var(--cpvp-gold); }
.cpvz-mini__txt strong { display: block; margin: 4px 0; font: 400 clamp(21px, 2.3vw, 27px)/1.2 var(--cpvp-display); color: var(--cpvp-ivory); }
.cpvz-mini__txt em { font: italic 16px/1.45 var(--cpvp-serif); color: var(--cpvp-muted); }
.cpvz-band { padding: clamp(30px, 4vw, 50px) 0; }

@media (max-width: 860px) {
	.cpvz-hero { grid-template-columns: 1fr; }
	.cpvz-fan { order: -1; width: 100%; height: 210px; }
	.cpvz-palos { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 760px) {
	.cpvz-mini { grid-template-columns: auto 1fr; }
	.cpvz-mini > .cpvp-btn { grid-column: 1 / -1; justify-self: start; }
	.cpvz-start .cpvp-btn { width: 100%; justify-content: center; }
}
@media (max-width: 420px) { .cpvz-palos { grid-template-columns: 1fr; } }
.cpvz-screen[hidden] { display: none !important; }

/* =====================================================================
   2.19 · Compartir en todas las páginas: franja final y botón flotante
   ===================================================================== */
.cpvsh { --cpvsh-accent: var(--cpvp-gold, #c9a46a); position: relative; padding: clamp(56px, 8vw, 104px) 0; background: radial-gradient(80% 120% at 50% 0%, rgba(75, 15, 30, .42), transparent 70%); border-top: 1px solid var(--cpvp-line, rgba(246, 237, 227, .12)); }
.cpvsh__card { display: grid; grid-template-columns: minmax(0, 400px) minmax(0, 1fr); gap: clamp(28px, 5vw, 64px); align-items: center; padding: clamp(24px, 4vw, 52px); border-radius: 28px; border: 1px solid rgba(201, 164, 106, .24); background: linear-gradient(155deg, rgba(42, 9, 17, .78), rgba(15, 8, 9, .9)); box-shadow: 0 40px 90px -50px rgba(0, 0, 0, .95), inset 0 1px 0 rgba(246, 237, 227, .06); }
.cpvsh__card:not(:has(.cpvsh__prev)) { grid-template-columns: 1fr; text-align: center; }
.cpvsh__prev { margin: 0 !important; }
.cpvsh__chat { overflow: hidden; border-radius: 16px; background: #1f2c33; box-shadow: 0 26px 50px -22px rgba(0, 0, 0, .9); transform: rotate(-1.2deg); }
.cpvsh__chat img { display: block; width: 100%; height: auto; aspect-ratio: 1200 / 630; object-fit: cover; margin: 0 !important; }
.cpvsh__meta { padding: 12px 15px 14px; font: 13.5px/1.35 var(--cpvp-sans); }
.cpvsh__meta strong { display: block; color: #e9edef !important; font-weight: 600; }
.cpvsh__meta span { display: block; margin-top: 3px; color: #8696a0 !important; font-size: 12.5px; }
.cpvsh__prev figcaption { margin-top: 14px; text-align: center; color: var(--cpvp-muted, #b8a59d) !important; font: italic 15px/1.4 var(--cpvp-serif); }
.cpvsh__kicker { margin: 0 0 12px !important; color: var(--cpvsh-accent) !important; font: 600 12px/1 var(--cpvp-sans); letter-spacing: .26em; text-transform: uppercase; }
.cpvsh .cpvsh__title { margin: 0 !important; padding: 0 !important; color: var(--cpvp-ivory, #f6ede3) !important; font-family: var(--cpvp-display) !important; font-weight: 400 !important; font-size: clamp(28px, 3.3vw, 42px) !important; line-height: 1.1 !important; letter-spacing: 0 !important; text-transform: none !important; }
.cpvsh .cpvsh__text { margin: 14px 0 0 !important; color: var(--cpvp-ivory-2, #e9dccd) !important; font-size: 18px; line-height: 1.55; max-width: 560px; }
.cpvsh__card:not(:has(.cpvsh__prev)) .cpvsh__text { margin-left: auto !important; margin-right: auto !important; }
.cpvsh__nets { display: grid; grid-template-columns: repeat(auto-fill, minmax(64px, 1fr)); gap: 14px 6px; margin-top: 30px; }
.cpvsh__n { display: flex; flex-direction: column; align-items: center; gap: 9px; padding: 0; border: 0; background: none; color: var(--cpvp-ivory-2, #e9dccd) !important; text-decoration: none !important; font: 600 12.5px/1.2 var(--cpvp-sans); cursor: pointer; -webkit-tap-highlight-color: transparent; }
.cpvsh__n[hidden] { display: none; }
.cpvsh__ico { display: grid; place-items: center; width: 56px; height: 56px; border-radius: 50%; border: 1px solid rgba(246, 237, 227, .16); background: rgba(246, 237, 227, .04); color: var(--cpvp-ivory, #f6ede3); transition: transform .25s cubic-bezier(.2, .8, .2, 1), background-color .25s, border-color .25s, color .25s; }
.cpvsh__svg { width: 23px; height: 23px; }
.cpvsh__n:hover .cpvsh__ico, .cpvsh__n:focus-visible .cpvsh__ico { transform: translateY(-3px); border-color: transparent; color: #fff; }
.cpvsh__n:focus-visible { outline: none; }
.cpvsh__n:focus-visible .cpvsh__ico { box-shadow: 0 0 0 3px rgba(201, 164, 106, .55); }
.cpvsh__n--whatsapp:hover .cpvsh__ico, .cpvsh__n--whatsapp:focus-visible .cpvsh__ico { background: #25d366; }
.cpvsh__n--telegram:hover .cpvsh__ico, .cpvsh__n--telegram:focus-visible .cpvsh__ico { background: #2aabee; }
.cpvsh__n--facebook:hover .cpvsh__ico, .cpvsh__n--facebook:focus-visible .cpvsh__ico { background: #1877f2; }
.cpvsh__n--x:hover .cpvsh__ico, .cpvsh__n--x:focus-visible .cpvsh__ico { background: #000; border-color: rgba(246, 237, 227, .4); }
.cpvsh__n--linkedin:hover .cpvsh__ico, .cpvsh__n--linkedin:focus-visible .cpvsh__ico { background: #0a66c2; }
.cpvsh__n--pinterest:hover .cpvsh__ico, .cpvsh__n--pinterest:focus-visible .cpvsh__ico { background: #e60023; }
.cpvsh__n--mail:hover .cpvsh__ico, .cpvsh__n--copy:hover .cpvsh__ico, .cpvsh__n--more:hover .cpvsh__ico, .cpvsh__n--mail:focus-visible .cpvsh__ico, .cpvsh__n--copy:focus-visible .cpvsh__ico, .cpvsh__n--more:focus-visible .cpvsh__ico { background: var(--cpvsh-accent); color: #160b0c; }
.cpvsh__n--whatsapp .cpvsh__ico { border-color: rgba(37, 211, 102, .45); color: #25d366; }
.cpvsh__n--copy.is-done .cpvsh__ico { background: var(--cpvsh-accent); color: #160b0c; }
.cpvsh__n--copy.is-done .cpvsh__lbl::after { content: " ✓"; }
.cpvsh .cpvsh__ok { min-height: 1.4em; margin: 16px 0 0 !important; color: var(--cpvsh-accent) !important; font: 600 14px/1.4 var(--cpvp-sans); }

.cpvsh-fab { position: fixed; left: 16px; bottom: calc(16px + env(safe-area-inset-bottom, 0px)); z-index: 55; display: inline-flex; align-items: center; gap: 9px; height: 50px; padding: 0 18px 0 15px; border: 1px solid rgba(201, 164, 106, .5); border-radius: 999px; background: rgba(23, 12, 15, .92); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); color: #f6ede3 !important; font: 700 13.5px/1 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; letter-spacing: .02em; box-shadow: 0 18px 40px -16px rgba(0, 0, 0, .85); cursor: pointer; opacity: 0; transform: translateY(140%); pointer-events: none; transition: transform .45s cubic-bezier(.2, .8, .2, 1), opacity .3s, bottom .3s; }
.cpvsh-fab .cpvsh__svg { width: 20px; height: 20px; color: #c9a46a; }
.cpvsh-fab.is-on { opacity: 1; transform: none; pointer-events: auto; }
.cpvsh-fab.is-raised { bottom: calc(78px + env(safe-area-inset-bottom, 0px)); }
.cpvsh-fab[hidden] { display: none; }
@media (max-width: 900px) {
	.cpvsh__card { grid-template-columns: 1fr; text-align: center; }
	.cpvsh__prev { max-width: 340px; margin: 0 auto !important; }
	.cpvsh .cpvsh__text { margin-left: auto !important; margin-right: auto !important; }
}
@media (max-width: 560px) {
	.cpvsh__card { padding: 26px 18px 24px; border-radius: 22px; }
	.cpvsh__nets { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px 4px; margin-top: 24px; }
	.cpvsh__ico { width: 54px; height: 54px; }
	.cpvsh .cpvsh__text { font-size: 17px; }
	.cpvsh-fab span { display: none; }
	.cpvsh-fab { width: 50px; padding: 0; justify-content: center; }
}
@media (min-width: 561px) { .cpvsh-fab { display: inline-flex; } }
@media (prefers-reduced-motion: reduce) { .cpvsh__ico, .cpvsh-fab { transition: none; } }
@media print { .cpvsh, .cpvsh-fab { display: none !important; } }
