/*
Theme Name: EQProxy Blog
Theme URI: https://eqproxy.org/
Description: Tema hijo de Twenty Twenty-Five con la identidad de EQProxy (fondo blanco, tinta grafito, lima de acento y verde de enlace) para el blog del balanceador.
Author: ExyonQ
Author URI: https://eqproxy.org/
Template: twentytwentyfive
Version: 1.0.0
Requires at least: 6.7
Requires PHP: 8.1
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: eqproxy
*/

/* Paleta EQProxy: blanco, grafito, lima de acento y verde de enlace. */
:root {
	--eqp-bg: #ffffff;
	--eqp-surface: #f7f7f4;
	--eqp-ink: #10120e;
	--eqp-muted: #5f6357;
	--eqp-line: #e3e4dc;
	--eqp-lime: #d6f25c;
	--eqp-lime-ink: #172000;
	--eqp-link: #0a7c37;
	--eqp-sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--eqp-serif: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;
	--eqp-max: 1120px;
}

html { -webkit-text-size-adjust: 100%; }

body {
	background: var(--eqp-bg);
	color: var(--eqp-ink);
	font-family: var(--eqp-serif);
	-webkit-font-smoothing: antialiased;
}

::selection { background: var(--eqp-lime); color: var(--eqp-lime-ink); }

a {
	color: var(--eqp-link);
	text-decoration-thickness: 1px;
	text-underline-offset: 0.18em;
}
a:hover { color: var(--eqp-ink); }
a:focus-visible {
	outline: 2px solid var(--eqp-link);
	outline-offset: 3px;
	border-radius: 2px;
}

/* Salto al contenido */
.eqp-skip {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: 100;
	background: var(--eqp-lime);
	color: var(--eqp-lime-ink);
	padding: 0.6rem 1rem;
	font: 600 0.85rem/1.2 var(--eqp-sans);
	text-decoration: none;
	border-radius: 0 0 6px 0;
}
.eqp-skip:focus { left: 0; }

/* Cabecera */
.eqp-header {
	position: sticky;
	top: 0;
	z-index: 50;
	background: color-mix(in srgb, var(--eqp-bg) 90%, transparent);
	border-bottom: 1px solid var(--eqp-line);
	backdrop-filter: blur(8px);
}
.eqp-header__inner {
	max-width: var(--eqp-max);
	margin: 0 auto;
	padding: 0.9rem 1.25rem;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem 1.5rem;
	flex-wrap: wrap;
}
.eqp-brand {
	display: inline-flex;
	align-items: baseline;
	gap: 0.12rem;
	font: 600 1.05rem/1 var(--eqp-sans);
	letter-spacing: 0.01em;
	color: var(--eqp-ink);
	text-decoration: none;
}
.eqp-brand:hover { color: var(--eqp-ink); }
.eqp-brand__dot { color: var(--eqp-link); }

.eqp-nav {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem 1.15rem;
	font: 500 0.82rem/1.4 var(--eqp-sans);
	letter-spacing: 0.02em;
}
.eqp-nav a { color: var(--eqp-muted); text-decoration: none; }
.eqp-nav a:hover,
.eqp-nav a[aria-current="page"] { color: var(--eqp-ink); }

/* Contenido */
.eqp-main {
	max-width: var(--eqp-max);
	margin: 0 auto;
	padding: 0 1.25rem 4rem;
}
.eqp-main > * { max-width: 44rem; margin-left: auto; margin-right: auto; }
.eqp-main > .alignwide { max-width: var(--eqp-max); }

.eqp-hero { padding: 4rem 0 2.5rem; }
.eqp-kicker {
	font: 600 0.72rem/1.3 var(--eqp-sans);
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--eqp-link);
	margin: 0 0 1rem;
}
.eqp-hero h1 {
	font: 600 clamp(2rem, 5vw, 3rem)/1.1 var(--eqp-serif);
	letter-spacing: -0.02em;
	text-wrap: balance;
	margin: 0 0 1.1rem;
}
.eqp-hero__lede {
	font-size: 1.12rem;
	line-height: 1.6;
	color: var(--eqp-muted);
	margin: 0 0 1.75rem;
	max-width: 38rem;
}
.eqp-hero--archive h1.wp-block-query-title { margin-bottom: 0.6rem; }
.eqp-hero--archive .wp-block-term-description,
.eqp-hero--archive .wp-block-term-description p {
	font-size: 1.05rem;
	line-height: 1.6;
	color: var(--eqp-muted);
	max-width: 38rem;
	margin: 0 0 1.25rem;
}
.eqp-hero--archive .eqp-hero__lede { margin-bottom: 0; }
.eqp-hero__lede a { color: var(--eqp-link); text-decoration: none; }
.eqp-hero__lede a:hover { text-decoration: underline; }
.eqp-actions { display: flex; flex-wrap: wrap; gap: 0.75rem; }
.eqp-btn {
	display: inline-block;
	padding: 0.62rem 1.05rem;
	border-radius: 999px;
	background: var(--eqp-lime);
	color: var(--eqp-lime-ink);
	font: 600 0.85rem/1.2 var(--eqp-sans);
	text-decoration: none;
	border: 1px solid var(--eqp-link);
}
.eqp-btn:hover { background: var(--eqp-ink); border-color: var(--eqp-ink); color: var(--eqp-bg); }
.eqp-btn--ghost { background: transparent; color: var(--eqp-ink); border-color: var(--eqp-line); }
.eqp-btn--ghost:hover { background: var(--eqp-surface); color: var(--eqp-ink); border-color: var(--eqp-muted); }

.eqp-rule {
	max-width: var(--eqp-max);
	margin: 0 auto 0.5rem;
	border: 0;
	border-top: 1px solid var(--eqp-line);
}

/* Listado de entradas */
.eqp-posts { padding-top: 1rem; }
.eqp-posts .wp-block-post-template { margin: 0; padding: 0; }
.eqp-posts .wp-block-post {
	border-bottom: 1px solid var(--eqp-line);
	padding: 1.6rem 0;
}
.eqp-posts .wp-block-post:last-child { border-bottom: 0; }
.eqp-posts .wp-block-post-title {
	font: 600 clamp(1.25rem, 2.4vw, 1.6rem)/1.25 var(--eqp-serif);
	letter-spacing: -0.01em;
	margin: 0 0 0.5rem;
}
.eqp-posts .wp-block-post-title a { color: var(--eqp-ink); text-decoration: none; }
.eqp-posts .wp-block-post-title a:hover { color: var(--eqp-link); }
.eqp-posts .wp-block-post-excerpt__excerpt,
.eqp-posts .wp-block-post-excerpt { color: var(--eqp-muted); margin: 0; }
.eqp-posts .wp-block-post-date {
	font: 500 0.75rem/1.4 var(--eqp-sans);
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--eqp-muted);
	margin: 0 0 0.45rem;
}
.eqp-posts .wp-block-post-terms { font: 500 0.75rem/1.4 var(--eqp-sans); color: var(--eqp-muted); }
.eqp-posts .wp-block-post-terms a { color: var(--eqp-link); }

/* Entrada y páginas */
.eqp-single-header { padding: 3.5rem 0 1.5rem; border-bottom: 1px solid var(--eqp-line); margin-bottom: 2.5rem; }
.eqp-single-header .wp-block-post-title,
.eqp-single-header h1 {
	font: 600 clamp(1.9rem, 4.4vw, 2.7rem)/1.12 var(--eqp-serif);
	letter-spacing: -0.02em;
	text-wrap: balance;
	margin: 0.4rem 0 0.9rem;
}
.eqp-meta {
	font: 500 0.78rem/1.6 var(--eqp-sans);
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var(--eqp-muted);
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem 1rem;
}
.eqp-single { padding-bottom: 4rem; }
.eqp-single-footer {
	margin-top: 3rem;
	padding-top: 1.4rem;
	border-top: 1px solid var(--eqp-line);
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 0.5rem 1.5rem;
	font: 500 0.8rem/1.6 var(--eqp-sans);
	color: var(--eqp-muted);
}
.eqp-single-footer p { margin: 0; }
.eqp-single-footer a { color: var(--eqp-ink); }
.eqp-single-footer a:hover { color: var(--eqp-link); }
.eqp-meta a { color: var(--eqp-muted); }
.eqp-meta > * + *::before { content: "·"; margin-right: 0.6rem; color: var(--eqp-line); }
.eqp-meta .wp-block-post-terms,
.eqp-meta .wp-block-post-terms a { text-transform: uppercase; }
.eqp-prose { font-size: 1.06rem; line-height: 1.72; }
.eqp-prose > p:first-child { font-size: 1.18rem; color: var(--eqp-ink); }
.eqp-prose h2 {
	font: 600 clamp(1.35rem, 2.6vw, 1.7rem)/1.25 var(--eqp-serif);
	letter-spacing: -0.01em;
	margin: 2.6rem 0 0.8rem;
}
.eqp-prose h3 { font: 600 1.15rem/1.3 var(--eqp-serif); margin: 2rem 0 0.6rem; }
.eqp-prose ul, .eqp-prose ol { padding-left: 1.2rem; }
.eqp-prose li { margin: 0.4rem 0; }
.eqp-prose code {
	font: 0.88em/1.5 ui-monospace, SFMono-Regular, Menlo, monospace;
	background: var(--eqp-surface);
	border: 1px solid var(--eqp-line);
	border-radius: 4px;
	padding: 0.08em 0.35em;
	color: var(--eqp-link);
}
.eqp-prose pre {
	background: var(--eqp-surface);
	border: 1px solid var(--eqp-line);
	border-radius: 10px;
	padding: 1rem 1.1rem;
	overflow-x: auto;
	font-size: 0.86rem;
	line-height: 1.6;
}
.eqp-prose pre code { background: none; border: 0; padding: 0; color: var(--eqp-ink); }
.eqp-prose blockquote {
	border-left: 2px solid var(--eqp-link);
	margin: 1.6rem 0;
	padding: 0.1rem 0 0.1rem 1.1rem;
	color: var(--eqp-muted);
}
.eqp-prose table { width: 100%; border-collapse: collapse; font-size: 0.92rem; }
.eqp-prose th, .eqp-prose td { border-bottom: 1px solid var(--eqp-line); padding: 0.55rem 0.6rem; text-align: left; }
.eqp-prose th { font-family: var(--eqp-sans); font-size: 0.78rem; letter-spacing: 0.04em; text-transform: uppercase; color: var(--eqp-muted); }

/* Pie */
.eqp-footer {
	border-top: 1px solid var(--eqp-line);
	background: var(--eqp-surface);
	margin-top: 4rem;
}
.eqp-footer__inner {
	max-width: var(--eqp-max);
	margin: 0 auto;
	padding: 2.75rem 1.25rem 1.5rem;
	display: grid;
	grid-template-columns: minmax(0, 1.6fr) repeat(2, minmax(0, 1fr));
	gap: 2rem;
}
.eqp-footer__wordmark {
	font: 600 1.15rem/1 var(--eqp-sans);
	margin: 0 0 0.6rem;
}
.eqp-footer__wordmark span { color: var(--eqp-link); }
.eqp-footer__tagline { color: var(--eqp-muted); font-size: 0.92rem; margin: 0; max-width: 24rem; }
.eqp-footer__col { display: flex; flex-direction: column; gap: 0.5rem; }
.eqp-footer__col h2 {
	font: 600 0.72rem/1.3 var(--eqp-sans);
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--eqp-muted);
	margin: 0 0 0.2rem;
}
.eqp-footer__col a {
	font: 400 0.92rem/1.5 var(--eqp-sans);
	color: var(--eqp-ink);
	text-decoration: none;
}
.eqp-footer__col a:hover { color: var(--eqp-link); }
.eqp-footer__legal {
	border-top: 1px solid var(--eqp-line);
	max-width: var(--eqp-max);
	margin: 0 auto;
	padding: 1rem 1.25rem 2.25rem;
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem 1.5rem;
	justify-content: space-between;
	font: 400 0.78rem/1.6 var(--eqp-sans);
	color: var(--eqp-muted);
}
.eqp-footer__legal p { margin: 0; }

/* Bloques del tema padre en modo oscuro */
.wp-block-post-content :where(h2, h3, h4) { text-wrap: balance; }
.wp-block-button__link { font-family: var(--eqp-sans); }
.wp-block-search__input {
	background: var(--eqp-surface);
	border: 1px solid var(--eqp-line);
	color: var(--eqp-ink);
	border-radius: 8px;
}

@media (max-width: 700px) {
	.eqp-hero { padding-top: 2.5rem; }
	.eqp-footer__inner { grid-template-columns: 1fr 1fr; }
	.eqp-footer__brand { grid-column: 1 / -1; }
}

@media (prefers-reduced-motion: reduce) {
	* { animation-duration: 0.001ms !important; transition-duration: 0.001ms !important; scroll-behavior: auto !important; }
}
