/* ==========================================================================
   Jevvin Theme — main.css
   Sistema de marca: negro/blanco de alto contraste + azul de acento único.
   Tipografía: Space Grotesk (headings) + Inter (cuerpo).
   ========================================================================== */

:root {
	--jv-ink: #0a0a0a;
	--jv-text: #262626;
	--jv-mute: #6b6b6b;
	--jv-line: #e2e2e2;
	--jv-panel: #f7f7f7;
	--jv-bg: #ffffff;
	--jv-accent: #3a6ff7;
	--jv-positivo: #1b7f4d;
	--jv-radius: 14px;
	--jv-max: 1180px;
}

/* Modo oscuro vía toggle manual: header.php fija data-jv-tema="oscuro"
   o "claro" en <html> antes del primer render (sin parpadeo), leyendo
   la preferencia guardada en localStorage o, en su defecto, la del SO. */
html[data-jv-tema="oscuro"] {
	--jv-ink: #f2f2f2;
	--jv-text: #d8d8d8;
	--jv-mute: #9a9a9a;
	--jv-line: #2a2c30;
	--jv-panel: #181a1d;
	--jv-bg: #0e0f11;
	--jv-accent: #6e93ff;
	--jv-positivo: #3fcb81;
}

* {
	box-sizing: border-box;
}

body {
	margin: 0;
	font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
	background: var(--jv-bg);
	color: var(--jv-text);
	font-feature-settings: 'tnum' 1;
	-webkit-font-smoothing: antialiased;
}

h1, h2, h3 {
	font-family: 'Space Grotesk', sans-serif;
	color: var(--jv-ink);
	margin: 0;
}

a {
	color: inherit;
	text-decoration: none;
}

img {
	max-width: 100%;
	display: block;
}

/* ---------- Botones globales ---------- */
.jv-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-family: inherit;
	font-size: 15px;
	font-weight: 600;
	border-radius: 10px;
	padding: 13px 24px;
	cursor: pointer;
	border: 1px solid transparent;
	transition: transform 0.1s ease, background 0.15s ease, color 0.15s ease;
}
.jv-btn:active {
	transform: scale(0.98);
}
.jv-btn--primario {
	background: var(--jv-ink);
	color: var(--jv-bg);
}
.jv-btn--primario:hover {
	background: var(--jv-accent);
}
.jv-btn--secundario {
	background: transparent;
	border-color: var(--jv-line);
	color: var(--jv-ink);
}
.jv-btn--secundario:hover {
	border-color: var(--jv-accent);
	color: var(--jv-accent);
}

.jv-eyebrow {
	display: inline-block;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--jv-accent);
}

/* ---------- Header ---------- */
.jv-site-header {
	border-bottom: 1px solid var(--jv-line);
	background: var(--jv-bg);
	position: sticky;
	top: 0;
	z-index: 50;
}
.jv-site-header__inner {
	max-width: var(--jv-max);
	margin: 0 auto;
	padding: 18px 24px;
	display: flex;
	align-items: center;
	justify-content: space-between;
}
.jv-logo {
	font-family: 'Space Grotesk', sans-serif;
	font-weight: 700;
	font-size: 20px;
	letter-spacing: 0.02em;
	color: var(--jv-ink);
}
.jv-nav {
	display: flex;
	align-items: center;
	gap: 28px;
	font-size: 14px;
	font-weight: 500;
}
.jv-nav a {
	color: var(--jv-text);
}
.jv-nav a:hover {
	color: var(--jv-ink);
}
.jv-nav__cta {
	background: var(--jv-ink);
	color: var(--jv-bg) !important;
	padding: 9px 18px;
	border-radius: 8px;
}

/* ---------- Toggle de tema (sol/luna) ---------- */
.jv-tema-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	border: 1px solid var(--jv-line);
	background: var(--jv-bg);
	color: var(--jv-ink);
	cursor: pointer;
	padding: 0;
	flex-shrink: 0;
	transition: background 0.15s ease, border-color 0.15s ease;
}
.jv-tema-toggle:hover {
	border-color: var(--jv-accent);
	color: var(--jv-accent);
}
.jv-tema-icon {
	display: none;
}
/* En modo claro se ve el sol (indica "estás en claro, toca para oscurecer") */
html:not([data-jv-tema="oscuro"]) .jv-tema-icon--sol {
	display: block;
}
html[data-jv-tema="oscuro"] .jv-tema-icon--luna {
	display: block;
}

@media (max-width: 720px) {
	.jv-site-header__inner {
		padding: 14px 16px;
	}
	.jv-logo {
		font-size: 17px;
	}
	.jv-nav {
		gap: 8px;
	}
	.jv-nav a:not(.jv-nav__cta) {
		display: none;
	}
	.jv-nav__cta {
		padding: 8px 14px;
		font-size: 13px;
	}
}

/* ---------- Hero ---------- */
.jv-hero {
	padding: 90px 24px 70px;
	text-align: center;
}
.jv-hero__inner {
	max-width: 760px;
	margin: 0 auto;
}
.jv-hero__titulo {
	font-size: clamp(34px, 5.5vw, 56px);
	font-weight: 700;
	line-height: 1.08;
	margin: 18px 0 22px;
}
.jv-hero__subtitulo {
	font-size: 18px;
	line-height: 1.6;
	color: var(--jv-mute);
	margin: 0 0 34px;
}
.jv-hero__cta {
	display: flex;
	justify-content: center;
	gap: 14px;
	flex-wrap: wrap;
}
.jv-hero__nota {
	margin-top: 16px;
	font-size: 13px;
	color: var(--jv-mute);
}

/* ---------- Secciones genéricas ---------- */
.jv-section {
	max-width: var(--jv-max);
	margin: 0 auto;
	padding: 70px 24px;
}
.jv-section__header {
	text-align: center;
	max-width: 600px;
	margin: 0 auto 44px;
}
.jv-section__header h2 {
	font-size: clamp(26px, 3.5vw, 34px);
	margin-top: 12px;
}

/* ---------- Herramientas ---------- */
.jv-herramientas__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
}
@media (max-width: 860px) {
	.jv-herramientas__grid { grid-template-columns: 1fr; }
}
.jv-tool-card {
	display: block;
	border: 1px solid var(--jv-line);
	border-radius: var(--jv-radius);
	padding: 26px;
	background: var(--jv-bg);
	transition: border-color 0.15s ease, transform 0.15s ease;
}
.jv-tool-card:not(.jv-tool-card--proximamente):hover {
	border-color: var(--jv-ink);
	transform: translateY(-2px);
}
.jv-tool-card--proximamente {
	opacity: 0.55;
}
.jv-tool-card__tag {
	display: inline-block;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--jv-positivo);
	margin-bottom: 14px;
}
.jv-tool-card__tag--mute {
	color: var(--jv-mute);
}
.jv-tool-card h3 {
	font-size: 18px;
	margin-bottom: 8px;
}
.jv-tool-card p {
	font-size: 14px;
	color: var(--jv-mute);
	line-height: 1.5;
	margin: 0 0 16px;
}
.jv-tool-card__link {
	font-size: 14px;
	font-weight: 600;
	color: var(--jv-accent);
}

/* ---------- Cómo funciona ---------- */
.jv-como-funciona__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 32px;
}
@media (max-width: 860px) {
	.jv-como-funciona__grid { grid-template-columns: 1fr; }
}
.jv-feature h3 {
	font-size: 17px;
	margin-bottom: 8px;
}
.jv-feature p {
	font-size: 14px;
	color: var(--jv-mute);
	line-height: 1.6;
	margin: 0;
}

/* ---------- Precios ---------- */
.jv-precios__grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 20px;
	max-width: 760px;
	margin: 0 auto;
}
@media (max-width: 700px) {
	.jv-precios__grid { grid-template-columns: 1fr; }
}
.jv-precio-card {
	border: 1px solid var(--jv-line);
	border-radius: var(--jv-radius);
	padding: 32px;
}
.jv-precio-card--destacado {
	border-color: var(--jv-ink);
	background: var(--jv-panel);
}
.jv-precio-card h3 {
	font-size: 18px;
	margin-bottom: 10px;
}
.jv-precio-card__precio {
	font-size: 30px;
	font-weight: 700;
	color: var(--jv-ink);
	margin: 0 0 20px;
}
.jv-precio-card__precio span {
	font-size: 15px;
	font-weight: 400;
	color: var(--jv-mute);
}
.jv-precio-card ul {
	list-style: none;
	padding: 0;
	margin: 0 0 26px;
	display: flex;
	flex-direction: column;
	gap: 10px;
	font-size: 14px;
	color: var(--jv-text);
}
.jv-precio-card ul li::before {
	content: '— ';
	color: var(--jv-mute);
}
.jv-precio-card .jv-btn {
	width: 100%;
}

/* ---------- CTA final ---------- */
.jv-cta-final {
	text-align: center;
	padding: 80px 24px 100px;
}
.jv-cta-final h2 {
	font-size: clamp(26px, 4vw, 36px);
	margin-bottom: 26px;
}

/* ---------- Footer ---------- */
.jv-site-footer {
	border-top: 1px solid var(--jv-line);
	padding: 36px 24px;
}
.jv-site-footer__inner {
	max-width: var(--jv-max);
	margin: 0 auto;
	display: flex;
	align-items: center;
	gap: 16px;
	font-size: 13px;
	color: var(--jv-mute);
}
.jv-logo--footer {
	font-size: 15px;
}

/* ---------- Fallback (index.php) ---------- */
.jv-fallback {
	max-width: 760px;
	margin: 0 auto;
	padding: 70px 24px;
}
.jv-fallback__article h1 {
	font-size: 32px;
	margin-bottom: 20px;
}
.jv-fallback__content {
	font-size: 16px;
	line-height: 1.7;
	color: var(--jv-text);
}
.jv-fallback__content p {
	margin: 0 0 18px;
}
