/*
 * Qualitas Funds – CSS global mínimo.
 * Todo lo que theme.json puede expresar está en theme.json; aquí solo
 * ajustes de layout que el editor no ofrece.
 */

:root {
	--qf-icon-size: clamp(9rem, 12vw, 12.5rem);
	--qf-transition: 180ms ease;
}

html {
	scroll-behavior: smooth;
}

/* Sin hueco entre cabecera, contenido y pie: cada bloque de raíz es a sangre
   y lleva su propio padding. Anula el blockGap que WP aplica a .wp-site-blocks. */
.wp-site-blocks > * + *,
.wp-site-blocks > main.wp--skip-link--target {
	margin-block-start: 0;
}

/* Titulares con la cursiva serif de la marca: la clase la pone el bloque
   (fontFamily gelasio + fontStyle italic), esto solo afina el ritmo. */
.has-gelasio-font-family {
	letter-spacing: -0.01em;
}

/* Cabecera */
.qf-header .wp-block-site-logo img {
	height: auto;
}

.qf-header__cta .wp-block-button__link {
	padding-block: 0.7em;
}

/* Pie */
.qf-footer .wp-block-social-links .wp-social-link {
	transition: opacity var(--qf-transition);
}

.qf-footer .wp-block-social-links .wp-social-link:hover {
	opacity: 0.7;
}

/* Imágenes decorativas de fondo en grupos: en móvil el motivo no debe tapar el texto. */
@media (max-width: 781px) {
	.qf-bg-right {
		background-image: none !important;
	}
}

/* Accesibilidad: foco visible coherente con el acento. */
:where(a, button, input, select, textarea, [tabindex]):focus-visible {
	outline: 2px solid var(--wp--preset--color--accent);
	outline-offset: 2px;
}

/* ---------------------------------------------------------------------------
 * Animación de entrada/salida (assets/js/reveal.js).
 * Solo se aplica cuando el JS está activo (html.qf-js) y el usuario no ha
 * pedido reducir el movimiento. Añade la clase qf-no-reveal a una sección
 * (Avanzado > Clases CSS adicionales) para excluirla.
 * ------------------------------------------------------------------------- */
@media (prefers-reduced-motion: no-preference) {
	.qf-js .qf-reveal {
		opacity: 0;
		transform: translateY(28px);
		transition:
			opacity 0.7s cubic-bezier(0.22, 0.61, 0.36, 1) var(--qf-delay, 0ms),
			transform 0.7s cubic-bezier(0.22, 0.61, 0.36, 1) var(--qf-delay, 0ms);
		will-change: opacity, transform;
	}

	.qf-js .qf-reveal--section {
		transform: none;
		transition-duration: 0.5s;
	}

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

	/* Al salir, sin retardo escalonado. */
	.qf-js .qf-reveal:not(.is-visible) {
		transition-delay: 0ms;
	}

	/* Las barras del gráfico crecen desde la base, una tras otra. */
	.qf-js .qf-timeline .qf-timeline__bar {
		transform: scaleY(0);
		transform-origin: bottom;
		transition: transform 0.6s cubic-bezier(0.22, 0.61, 0.36, 1) calc(var(--qf-bar-i, 0) * 45ms + 150ms);
	}

	.qf-js .qf-timeline.is-visible .qf-timeline__bar {
		transform: scaleY(1);
	}

	/* Puntos e hitos de la línea temporal. */
	.qf-js .qf-timeline .qf-timeline__milestone {
		opacity: 0;
		transition: opacity 0.5s ease 0.5s;
	}

	.qf-js .qf-timeline.is-visible .qf-timeline__milestone {
		opacity: 1;
	}
}

/* ---------------------------------------------------------------------------
 * Plantilla "Página legal" (templates/page-legal.html)
 * ------------------------------------------------------------------------- */
.qf-legal__hero {
	position: relative;
	overflow: hidden;
}

/* Marca de agua tipográfica: una gran "§" serif en el fondo de la cabecera. */
.qf-legal__hero::after {
	content: "§";
	position: absolute;
	right: 4vw;
	bottom: -0.35em;
	font-family: var(--wp--preset--font-family--gelasio);
	font-style: italic;
	font-size: clamp(14rem, 32vw, 30rem);
	line-height: 1;
	color: var(--wp--preset--color--accent);
	opacity: 0.12;
	pointer-events: none;
}

.qf-legal__hero .wp-block-post-title {
	max-width: 14ch;
	margin-top: var(--wp--preset--spacing--20);
}

.qf-legal__meta {
	color: var(--wp--preset--color--gray-mid);
}

.qf-legal__meta p,
.qf-legal__meta time {
	margin: 0;
}

.qf-legal__meta .wp-block-post-date {
	color: var(--wp--preset--color--white);
}

/* Contenido: titulares numerados en serif de acento, ritmo generoso. */
.qf-legal .entry-content {
	counter-reset: qf-legal;
	font-size: var(--wp--preset--font-size--medium);
}

.qf-legal .entry-content > h2 {
	counter-increment: qf-legal;
	position: relative;
	margin-top: var(--wp--preset--spacing--60);
	padding-top: var(--wp--preset--spacing--20);
	border-top: 1px solid var(--wp--preset--color--gray);
	font-size: var(--wp--preset--font-size--x-large);
	scroll-margin-top: 6rem;
}

.qf-legal .entry-content > h2::before {
	content: counter(qf-legal, decimal-leading-zero);
	display: block;
	margin-bottom: 0.25em;
	font-family: var(--wp--preset--font-family--gelasio);
	font-style: italic;
	font-weight: 400;
	font-size: 2.75rem;
	line-height: 1;
	color: var(--wp--preset--color--accent);
}

.qf-legal .entry-content > h3 {
	margin-top: var(--wp--preset--spacing--40);
	font-size: var(--wp--preset--font-size--large);
	font-weight: 600;
}

.qf-legal .entry-content > p,
.qf-legal .entry-content > ul,
.qf-legal .entry-content > ol {
	max-width: 70ch;
}

.qf-legal .entry-content a {
	color: var(--wp--preset--color--accent);
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

.qf-legal .entry-content ul li::marker {
	color: var(--wp--preset--color--accent);
}

/* Índice del documento (patrón): caja con borde y enlaces numerados. */
.qf-legal-index {
	border: 1px solid var(--wp--preset--color--black);
	border-left: 4px solid var(--wp--preset--color--accent);
	border-radius: 4px;
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
	background: var(--wp--preset--color--white);
}

.qf-legal-index ol {
	columns: 2;
	column-gap: var(--wp--preset--spacing--40);
	margin: 0;
	padding-left: 1.5em;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
}

.qf-legal-index li {
	break-inside: avoid;
	margin-bottom: 0.4em;
}

.qf-legal-index li::marker {
	color: var(--wp--preset--color--accent);
	font-family: var(--wp--preset--font-family--gelasio);
	font-style: italic;
}

.qf-legal-index a {
	color: var(--wp--preset--color--black);
	text-decoration: none;
}

.qf-legal-index a:hover {
	color: var(--wp--preset--color--accent);
}

/* Tabla de cookies y datos: líneas finas, cabecera en mayúsculas. */
.qf-legal .entry-content .wp-block-table {
	font-size: var(--wp--preset--font-size--small);
}

.qf-legal .entry-content .wp-block-table table {
	border-collapse: collapse;
}

.qf-legal .entry-content .wp-block-table th {
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-size: 0.75rem;
	background: var(--wp--preset--color--black);
	color: var(--wp--preset--color--white);
	border-color: var(--wp--preset--color--black);
}

.qf-legal .entry-content .wp-block-table td {
	border-color: var(--wp--preset--color--gray);
	vertical-align: top;
}

/* Caja destacada (datos del responsable, resumen). */
.qf-legal-callout {
	border-left: 4px solid var(--wp--preset--color--accent);
	background: var(--wp--preset--color--white);
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
	border-radius: 0 4px 4px 0;
}

@media (max-width: 599px) {
	.qf-legal-index ol {
		columns: 1;
	}

	.qf-legal .entry-content > h2::before {
		font-size: 2rem;
	}
}

/* Sin fecha de modificación (página nunca editada), la etiqueta no se muestra. */
.qf-legal__meta:not(:has(.wp-block-post-date)) {
	display: none;
}
