/*
 * Djimn Noche — estilos que theme.json no puede expresar.
 * Paleta y tipografías: ver theme.json. Aquí: ambiente, tarjetas, cabecera y pie.
 */

:root {
	color-scheme: dark;
	--djimn-glow: rgba(123, 155, 189, 0.1);
	--djimn-veil: 13, 17, 23; /* #0d1117 en RGB, para degradados */
}

html {
	scrollbar-color: var(--wp--preset--color--accent-deep) var(--wp--preset--color--base);
	-webkit-text-size-adjust: 100%;
}

body {
	background-image: radial-gradient(60rem 34rem at 50% -10rem, var(--djimn-glow), transparent 70%);
	background-repeat: no-repeat;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}

/* Grano de película, casi imperceptible: da textura y un aire de fotografía vieja. */
body::after {
	content: "";
	position: fixed;
	inset: 0;
	z-index: 9999;
	pointer-events: none;
	opacity: 0.035;
	background-size: 220px 220px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .6 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

::selection {
	background: var(--wp--preset--color--accent-deep);
	color: var(--wp--preset--color--contrast-strong);
}

:where(a, button, input, textarea, summary, .wp-block-button__link):focus-visible {
	outline: 2px solid var(--wp--preset--color--accent);
	outline-offset: 3px;
	border-radius: 2px;
}

:where(h1, h2, h3, .wp-block-post-title) {
	text-wrap: balance;
}

/* ---------- Cabecera ---------- */

.site-header {
	padding-block: 0.95rem;
	border-bottom: 1px solid rgba(36, 48, 65, 0.7);
}

.site-header__inner {
	gap: 0.75rem 1.5rem;
}

.site-branding {
	gap: 0.7rem;
}

.site-branding .wp-block-site-title,
.site-branding .wp-block-site-tagline {
	margin: 0;
}

/* Si el logo es de trazo oscuro (como el actual), lo invertimos a claro y lo apagamos un poco. */
.wp-block-site-logo img {
	filter: invert(1) grayscale(1) opacity(0.85);
}

.wp-block-navigation {
	gap: 0.4rem 1.4rem;
}

.wp-block-navigation .wp-block-navigation-item__content {
	padding-block: 0.25rem;
	transition: color var(--wp--custom--transition);
}

.wp-block-navigation .current-menu-item > .wp-block-navigation-item__content {
	color: var(--wp--preset--color--accent-hover);
}

.wp-block-navigation__responsive-container.is-menu-open {
	background-color: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast-strong);
	padding: var(--wp--preset--spacing--50);
}

.wp-block-navigation__responsive-container-open,
.wp-block-navigation__responsive-container-close {
	color: var(--wp--preset--color--contrast-strong);
}

/* ---------- Desplegable "Blog" con las categorías (lo inyecta functions.php) ---------- */

.has-blog-menu {
	position: relative;
}

.has-blog-menu > .wp-block-navigation-item__content::after {
	content: "";
	display: inline-block;
	width: 0.32em;
	height: 0.32em;
	margin-left: 0.5em;
	border-right: 1.5px solid currentColor;
	border-bottom: 1.5px solid currentColor;
	opacity: 0.7;
	transform: translateY(-0.18em) rotate(45deg);
	transition: transform var(--wp--custom--transition);
}

.has-blog-menu:hover > .wp-block-navigation-item__content::after,
.has-blog-menu:focus-within > .wp-block-navigation-item__content::after {
	transform: translateY(-0.02em) rotate(225deg);
}

.blog-menu__list {
	position: absolute;
	z-index: 60;
	top: calc(100% - 0.1rem);
	left: -0.85rem;
	min-width: 12.5rem;
	margin: 0;
	padding: 0.4rem;
	list-style: none;
	background: var(--wp--preset--color--surface-2);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius);
	box-shadow: 0 1rem 2rem -1rem rgba(0, 0, 0, 0.8);
	opacity: 0;
	visibility: hidden;
	transform: translateY(-0.35rem);
	transition: opacity 0.25s ease, transform 0.25s ease, visibility 0s linear 0.25s;
}

.has-blog-menu:hover > .blog-menu__list,
.has-blog-menu:focus-within > .blog-menu__list {
	opacity: 1;
	visibility: visible;
	transform: none;
	transition-delay: 0s;
}

.blog-menu__list li {
	margin: 0;
}

.blog-menu__list a {
	display: block;
	padding: 0.45rem 0.7rem;
	border-radius: 4px;
	color: var(--wp--preset--color--contrast);
	text-decoration: none;
	white-space: nowrap;
	transition: background-color var(--wp--custom--transition), color var(--wp--custom--transition);
}

.blog-menu__list a:hover,
.blog-menu__list a:focus-visible {
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--accent-hover);
}

/* En el menú del móvil las categorías se muestran desplegadas, con sangría. */
.wp-block-navigation__responsive-container.is-menu-open .blog-menu__list {
	position: static;
	min-width: 0;
	padding: 0.25rem 0 0.25rem 1rem;
	background: none;
	border: 0;
	box-shadow: none;
	opacity: 1;
	visibility: visible;
	transform: none;
}

.wp-block-navigation__responsive-container.is-menu-open .blog-menu__list a {
	padding: 0.2rem 0;
	color: var(--wp--preset--color--muted);
	font-size: var(--wp--preset--font-size--small);
}

.wp-block-navigation__responsive-container.is-menu-open .has-blog-menu > .wp-block-navigation-item__content::after {
	display: none;
}

/* ---------- Rejilla de entradas ---------- */

.site-main {
	padding-top: var(--wp--preset--spacing--50);
}

.posts-grid .wp-block-post-template {
	gap: clamp(1rem, 1.5vw, 1.4rem);
	margin: 0;
	padding: 0;
	list-style: none;
}

.post-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	overflow: hidden;
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius);
	transition: border-color var(--wp--custom--transition), box-shadow var(--wp--custom--transition);
}

.post-card:hover,
.post-card:focus-within {
	border-color: var(--wp--preset--color--accent-deep);
	box-shadow: 0 1.25rem 2.5rem -1.5rem rgba(0, 0, 0, 0.7);
}

/* Imagen destacada: desaturada y oscurecida; recupera algo de vida al acercarte. */
.post-card .wp-block-post-featured-image {
	position: relative;
	margin: 0;
	overflow: hidden;
}

.post-card .wp-block-post-featured-image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 0;
	filter: grayscale(0.6) brightness(0.72) contrast(1.05);
	transition: filter 0.8s ease, transform 1.4s ease;
}

.post-card .wp-block-post-featured-image::after {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	background: linear-gradient(180deg, rgba(var(--djimn-veil), 0) 45%, rgba(var(--djimn-veil), 0.7) 100%);
}

.post-card:hover .wp-block-post-featured-image img,
.post-card:focus-within .wp-block-post-featured-image img {
	filter: grayscale(0.32) brightness(0.82) contrast(1.05);
	transform: scale(1.035);
}

.post-card .post-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: 0.45rem;
	padding: 1rem 1.1rem 1.25rem;
}

.post-card .post-card__body > * {
	margin: 0;
}

/* El "gap" de bloques de WordPress separaba la imagen del texto: fuera. */
.post-card > .post-card__body {
	margin-block-start: 0;
}

/* Tarjeta sin imagen destacada: más tipográfica, con una línea de color arriba. */
.post-card:not(:has(.wp-block-post-featured-image)) {
	background: linear-gradient(180deg, var(--wp--preset--color--surface-2), var(--wp--preset--color--surface) 70%);
	border-top: 2px solid var(--wp--preset--color--accent-deep);
}

.post-card:not(:has(.wp-block-post-featured-image)) .post-card__body {
	padding-top: 1.4rem;
	justify-content: flex-start;
}

.post-card:not(:has(.wp-block-post-featured-image)) .post-card__title {
	font-size: var(--wp--preset--font-size--large);
}

.post-card__title {
	font-size: var(--wp--preset--font-size--medium);
	line-height: 1.25;
}

.post-card__excerpt .wp-block-post-excerpt__excerpt {
	margin: 0;
}

/* ---------- Entrada y página ---------- */

.post-head {
	padding-top: var(--wp--preset--spacing--50);
}

.post-meta {
	gap: 0.4rem 1rem;
	margin-bottom: 1rem;
}

.post-meta > * {
	margin: 0;
}

.post-hero {
	margin-block: var(--wp--preset--spacing--50);
}

/* Fluida hasta 64rem; a partir de ahí se queda centrada, para que no ocupe toda la pantalla. */
.wp-block-post-featured-image.post-hero.alignwide {
	max-width: min(100%, 64rem);
}

.post-hero img {
	display: block;
	width: 100%;
	height: auto;
	filter: grayscale(0.35) brightness(0.82) contrast(1.04);
}

.entry-content > * + * {
	margin-block-start: 1.4em;
}

.entry-content a {
	text-decoration-thickness: 1px;
	text-underline-offset: 0.22em;
}

/* Imágenes dentro del texto: un poco apagadas para que no rompan el tono. */
.entry-content img {
	filter: saturate(0.8) brightness(0.94);
}

.entry-content :where(h2, h3, h4) {
	margin-block-start: 2.2em;
}

.post-foot {
	margin-top: var(--wp--preset--spacing--60);
}

.post-nav {
	gap: 1.5rem;
	padding-top: 1.5rem;
	margin-top: 1.5rem;
	border-top: 1px solid var(--wp--preset--color--border);
}

.post-nav > * {
	margin: 0;
	max-width: 48%;
}

.comments-area {
	margin-top: var(--wp--preset--spacing--60);
}

.comments-area .comment-item {
	padding-block: 1.25rem;
	border-top: 1px solid var(--wp--preset--color--border);
}

.comments-area :where(.wp-block-comments-title, .comment-reply-title) {
	font-size: var(--wp--preset--font-size--medium);
}

.comments-area .comment-item > * {
	margin-block: 0.35rem;
}

/* ---------- Encabezados de sección (archivo, búsqueda, 404) ---------- */

.page-head {
	padding-top: var(--wp--preset--spacing--50);
	padding-bottom: var(--wp--preset--spacing--40);
}

.page-head > * {
	margin-block: 0;
}

.page-head .wp-block-term-description,
.page-head .lead {
	margin-top: 0.75rem;
	color: var(--wp--preset--color--muted);
}

.not-found {
	padding-block: var(--wp--preset--spacing--70);
	text-align: center;
}

/* ---------- Paginación ---------- */

.wp-block-query-pagination {
	margin-top: var(--wp--preset--spacing--60);
	gap: 1rem 1.5rem;
}

.wp-block-query-pagination-numbers .page-numbers {
	padding: 0.15rem 0.5rem;
	color: var(--wp--preset--color--muted);
	text-decoration: none;
}

.wp-block-query-pagination-numbers .page-numbers.current {
	color: var(--wp--preset--color--contrast-strong);
	border-bottom: 1px solid var(--wp--preset--color--accent);
}

/* ---------- Formularios ---------- */

:root {
	accent-color: var(--wp--preset--color--accent);
}

.wp-block-search .wp-block-search__input,
.wp-block-post-comments-form :is(input:not([type="submit"], [type="checkbox"]), textarea),
.comment-form :is(input:not([type="submit"], [type="checkbox"]), textarea) {
	padding: 0.7rem 0.95rem;
	font: inherit;
	color: var(--wp--preset--color--contrast-strong);
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius);
	transition: border-color var(--wp--custom--transition), box-shadow var(--wp--custom--transition);
}

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

:where(input, textarea)::placeholder {
	color: var(--wp--preset--color--muted);
	opacity: 1;
}

.wp-block-search .wp-block-search__input:focus,
.wp-block-post-comments-form :is(input:not([type="submit"], [type="checkbox"]), textarea):focus,
.comment-form :is(input:not([type="submit"], [type="checkbox"]), textarea):focus {
	border-color: var(--wp--preset--color--accent);
	box-shadow: 0 0 0 1px var(--wp--preset--color--accent);
	outline: none;
}

/* Texto solo para lectores de pantalla (los temas de bloques no siempre lo cargan). */
.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	word-wrap: normal !important;
}

.screen-reader-text:focus {
	z-index: 100000;
	top: 0.5rem;
	left: 0.5rem;
	display: block;
	width: auto;
	height: auto;
	padding: 0.75rem 1rem;
	clip: auto !important;
	clip-path: none;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--contrast-strong);
	background: var(--wp--preset--color--surface-2);
}

.wp-block-search__inside-wrapper {
	gap: 0.6rem;
}

.wp-block-search .wp-block-search__button {
	margin: 0;
	color: var(--wp--preset--color--contrast-strong);
	background: var(--wp--preset--color--surface-2);
	border: 1px solid var(--wp--preset--color--accent-deep);
	border-radius: 999px;
}

/* ---------- Pie ---------- */

.site-footer {
	margin-top: var(--wp--preset--spacing--70);
	padding-block: 1.25rem 1.75rem;
	border-top: 1px solid rgba(36, 48, 65, 0.7);
	color: var(--wp--preset--color--muted);
	font-size: var(--wp--preset--font-size--small);
}

.site-footer__inner {
	gap: 1rem 2rem;
}

.site-footer__inner > * {
	margin: 0;
}

.site-footer a {
	color: var(--wp--preset--color--muted);
	text-decoration: none;
	transition: color var(--wp--custom--transition);
}

.site-footer .wp-block-navigation {
	justify-content: flex-end;
	gap: 0.35rem 1.25rem;
	font-size: 0.75rem;
}

.site-footer .wp-block-navigation a {
	color: var(--wp--preset--color--muted);
	text-decoration: none;
}

.site-footer .wp-block-navigation a:hover,
.site-footer .wp-block-navigation a:focus-visible {
	color: var(--wp--preset--color--accent-hover);
}

.site-footer a:hover,
.site-footer a:focus-visible {
	color: var(--wp--preset--color--accent-hover);
}

/* ---------- Movimiento reducido ---------- */

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
	}

	.post-card:hover .wp-block-post-featured-image img,
	.post-card:focus-within .wp-block-post-featured-image img {
		transform: none;
	}
}
