/* ==========================================================================
   La Curiosa Research — sistema de diseño (tema hijo de Neve 4.2.3)

   Identidad: los colores del logo CURIOSA (magenta, amarillo y carbón) sobre
   papel blanco. El magenta es el acento (botones, iconos, la portada); el amarillo,
   el subrayador con el que se marcan las frases clave. Las fotos van en blanco y
   negro con velo carbón; solo el gato que se asoma conserva su color.

   Los nombres internos de los juegos de color vienen de la primera paleta:
   «tinta» es el carbón y «subrayador» el amarillo del logo.

   Alineación: todas las bandas a todo el ancho colocan su contenido en la misma
   línea que el contenedor de Neve (el logo de la cabecera), en cualquier pantalla.
   ========================================================================== */

@font-face {
	font-family: "Bricolage Grotesque";
	src: url("../fonts/bricolage-grotesque.woff2") format("woff2");
	font-weight: 500 800;
	font-stretch: 84% 100%;
	font-display: swap;
}
@font-face {
	font-family: "Atkinson Hyperlegible Next";
	src: url("../fonts/atkinson-hyperlegible-next.woff2") format("woff2");
	font-weight: 200 800;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "Atkinson Hyperlegible Next";
	src: url("../fonts/atkinson-hyperlegible-next-italic.woff2") format("woff2");
	font-weight: 200 800;
	font-style: italic;
	font-display: swap;
}

/* ---------- Tokens ---------- */
:root {
	/* Colores del logo */
	--lcr-magenta: #d41052;
	--lcr-tinta: #323232;      /* carbón */
	--lcr-subrayador: #f7b233; /* amarillo */
	--lcr-papel: #ffffff;
	--lcr-niebla: #f5f3f0;
	--lcr-grafito: #5c5c5c;
	--lcr-acento: var(--lcr-magenta); /* iconos, filetes y números: cada juego de color lo cambia */

	--lcr-display: "Bricolage Grotesque", "Arial Narrow", Arial, sans-serif;
	--lcr-texto: "Atkinson Hyperlegible Next", Verdana, Arial, sans-serif;

	--lcr-lectura: 42rem;
	--lcr-seccion: clamp(4.5rem, 2.5rem + 7vw, 9rem);
	--lcr-margen: clamp(1.25rem, 4vw, 3rem);
	--lcr-radio: 3px;
	--lcr-flujo: 1.5rem;
}

/* Las variables de Neve se redefinen en body para ganar a las de :root del tema padre. */
body {
	/* Ancho útil del contenedor de Neve (su --container menos 15 px de relleno por lado). */
	--lcr-ancho: calc(var(--container, 1170px) - 30px);
	/* Borde exterior para el contenido dentro de una mitad de imagen y texto. */
	--lcr-borde: max(var(--lcr-margen), calc(50vw - var(--lcr-ancho) / 2));

	--bodyfontfamily: var(--lcr-texto);
	--headingsfontfamily: var(--lcr-display);
	--bodyfontsize: 1.0625rem;
	--bodylineheight: 1.65;
	--bodyfontweight: 400;
	--bodyletterspacing: 0;

	--h1fontsize: clamp(2.75rem, 1.5rem + 4.6vw, 5.5rem);
	--h1lineheight: 1.02;
	--h1fontweight: 760;
	--h1letterspacing: -0.03em;
	--h2fontsize: clamp(2rem, 1.35rem + 2.4vw, 3.375rem);
	--h2lineheight: 1.06;
	--h2fontweight: 720;
	--h2letterspacing: -0.022em;
	--h3fontsize: clamp(1.375rem, 1.15rem + 0.75vw, 1.875rem);
	--h3lineheight: 1.15;
	--h3fontweight: 660;
	--h3letterspacing: -0.012em;
	--h4fontsize: 1.25rem;
	--h4lineheight: 1.25;
	--h4fontweight: 660;

	--primarybtnbg: var(--lcr-magenta);
	--primarybtncolor: #ffffff;
	--primarybtnhoverbg: var(--lcr-tinta);
	--primarybtnhovercolor: #ffffff;
	--secondarybtnbg: transparent;
	--secondarybtncolor: var(--lcr-tinta);
	--secondarybtnhoverbg: var(--lcr-tinta);
	--secondarybtnhovercolor: #ffffff;
	--primarybtnborderradius: var(--lcr-radio);
	--secondarybtnborderradius: var(--lcr-radio);
	--secondarybtnborderwidth: 2px;
	--btnfs: 1rem;
	--btnlineheight: 1.3;
	--btnpadding: 1em 1.6em;
	--primarybtnpadding: 1em 1.6em;
	--secondarybtnpadding: calc(1em - 2px) calc(1.6em - 2px);

	--formfieldbordercolor: var(--lcr-tinta);
	--formfieldborderwidth: 2px;
	--formfieldborderradius: var(--lcr-radio);
	--formfieldbgcolor: #ffffff;
	--formfieldcolor: var(--lcr-tinta);

	color: var(--lcr-tinta);
	background: var(--lcr-papel);
	font-feature-settings: "kern", "liga";
	text-rendering: optimizeLegibility;
}
@media (min-width: 960px) {
	body { --bodyfontsize: 1.125rem; }
}

h1, h2, h3, h4, h5, h6 {
	font-stretch: 92%;
	font-optical-sizing: auto;
	text-wrap: balance;
	color: inherit;
}
h1 { font-stretch: 88%; }
p, li { text-wrap: pretty; }

/* ---------- Texto y enlaces ---------- */
.nv-content-wrap p,
.nv-content-wrap li { max-width: 68ch; }
.nv-content-wrap a:not(.wp-block-button__link),
.site-footer a {
	color: inherit;
	text-decoration: underline;
	text-decoration-thickness: 2px;
	text-underline-offset: 0.22em;
}
.nv-content-wrap a:not(.wp-block-button__link):hover,
.site-footer a:hover {
	background: var(--lcr-subrayador);
	color: var(--lcr-tinta);
	text-decoration-color: transparent;
}
.nv-content-wrap .lcr-lead {
	font-size: clamp(1.15rem, 1rem + 0.55vw, 1.45rem);
	line-height: 1.5;
}

/* Foco visible y bien contrastado en todos los fondos (WCAG 2.4.7). */
:focus-visible {
	outline: 3px solid var(--lcr-tinta);
	outline-offset: 3px;
	box-shadow: 0 0 0 6px var(--lcr-subrayador);
	border-radius: 2px;
}
.is-style-lcr-tinta :focus-visible,
.is-style-lcr-magenta :focus-visible,
.lcr-hero.wp-block-cover :focus-visible,
.site-footer .footer-top :focus-visible,
.site-footer .footer-bottom :focus-visible {
	outline-color: var(--lcr-subrayador);
	box-shadow: 0 0 0 6px var(--lcr-tinta);
}

/* ---------- Juegos de color (estilos de bloque) ---------- */
.is-style-lcr-papel { background-color: var(--lcr-papel); color: var(--lcr-tinta); }
.is-style-lcr-niebla { background-color: var(--lcr-niebla); color: var(--lcr-tinta); }
.is-style-lcr-tinta {
	background-color: var(--lcr-tinta);
	color: #ffffff;
	--lcr-acento: var(--lcr-subrayador);
	--primarybtnhoverbg: #ffffff;
	--primarybtnhovercolor: var(--lcr-tinta);
	--secondarybtncolor: #ffffff;
	--secondarybtnhoverbg: #ffffff;
	--secondarybtnhovercolor: var(--lcr-tinta);
}
.is-style-lcr-subrayador {
	background-color: var(--lcr-subrayador);
	color: var(--lcr-tinta);
	--lcr-acento: var(--lcr-tinta);
}
.is-style-lcr-magenta {
	background-color: var(--lcr-magenta);
	color: #ffffff;
	--lcr-acento: #ffffff;
	--primarybtnbg: #ffffff;
	--primarybtncolor: var(--lcr-magenta);
	--primarybtnhoverbg: var(--lcr-tinta);
	--primarybtnhovercolor: #ffffff;
	--secondarybtncolor: #ffffff;
	--secondarybtnhoverbg: #ffffff;
	--secondarybtnhovercolor: var(--lcr-magenta);
}
/* Enlaces dentro de las bandas amarillas: el resaltado pasa a carbón. */
.nv-content-wrap .is-style-lcr-subrayador a:not(.wp-block-button__link):hover { background: var(--lcr-tinta); color: #ffffff; }

/* ==========================================================================
   Alineación y ritmo de las bandas
   ========================================================================== */

.nv-content-wrap > .alignfull { margin-top: 0 !important; margin-bottom: 0 !important; }

/* Relleno lateral = distancia desde el borde de la pantalla hasta el contenedor de Neve.
   (La banda se sale del contenedor con margin: calc(50% - 50vw); esto lo compensa exactamente.) */
.nv-content-wrap > .lcr-seccion,
.nv-content-wrap > .wp-block-cover.lcr-hero,
.nv-content-wrap > .wp-block-cover.lcr-banda-foto {
	padding-left: max(var(--lcr-margen), calc(50vw - 50%));
	padding-right: max(var(--lcr-margen), calc(50vw - 50%));
}
.nv-content-wrap > .lcr-seccion { padding-top: var(--lcr-seccion); padding-bottom: var(--lcr-seccion); }
.nv-content-wrap > .wp-block-media-text.alignfull { padding-left: 0; padding-right: 0; }

/* WordPress envuelve el contenido de grupos y portadas y centra cada bloque por separado:
   aquí todo se alinea a la izquierda de la misma columna. */
.lcr-seccion .wp-block-group__inner-container,
.wp-block-cover.lcr-hero .wp-block-cover__inner-container,
.wp-block-cover.lcr-banda-foto .wp-block-cover__inner-container {
	width: 100%;
	max-width: none !important;
	margin: 0 !important;
}
:is(.lcr-seccion, .lcr-seccion > .wp-block-group__inner-container) > *,
.wp-block-cover.lcr-hero .wp-block-cover__inner-container > *,
.wp-block-cover.lcr-banda-foto .wp-block-cover__inner-container > * {
	margin-left: 0 !important;
	margin-right: 0 !important;
	max-width: none;
}

/* Anchos de lectura: párrafos ~68 caracteres, títulos más cortos, secciones estrechas a 42rem. */
.nv-content-wrap :is(.lcr-seccion, .wp-block-cover) p { max-width: 68ch; }
.nv-content-wrap :is(.lcr-seccion, .lcr-seccion > .wp-block-group__inner-container) > h2 { max-width: 24ch; }
.nv-content-wrap :is(.lcr-seccion--estrecha, .lcr-seccion--estrecha > .wp-block-group__inner-container) > * { max-width: var(--lcr-lectura); }

/* Ritmo vertical dentro de una sección */
:is(.lcr-seccion, .lcr-seccion > .wp-block-group__inner-container) > * { margin-top: 0; margin-bottom: 0; }
:is(.lcr-seccion, .lcr-seccion > .wp-block-group__inner-container) > * + * { margin-top: var(--lcr-flujo); }
:is(.lcr-seccion, .lcr-seccion > .wp-block-group__inner-container) > * + :is(h2, .wp-block-columns),
:is(.lcr-seccion, .lcr-seccion > .wp-block-group__inner-container) > .wp-block-columns + * { margin-top: clamp(3rem, 6vw, 5rem); }
:is(.lcr-seccion, .lcr-seccion > .wp-block-group__inner-container) > .wp-block-buttons { margin-top: 2.5rem; }
:is(.lcr-seccion, .lcr-seccion > .wp-block-group__inner-container) > .wp-block-details + .wp-block-details { margin-top: 0; }

.wp-block-columns { gap: clamp(1.5rem, 4vw, 4rem); margin-bottom: 0; }
.wp-block-column > * { margin-top: 0; margin-bottom: 0; }
.wp-block-column > * + * { margin-top: 1.1rem; }
.wp-block-column > .wp-block-buttons { margin-top: 2rem; }

/* ==========================================================================
   Heros
   ========================================================================== */
body.lcr-has-hero .neve-main > .single-page-container,
body.lcr-has-hero .nv-single-page-wrap { margin-top: 0; padding-top: 0; margin-bottom: 0; padding-bottom: 0; }
body.lcr-has-hero .nv-content-wrap > :last-child { margin-bottom: 0; }

/* Hero con foto */
.nv-content-wrap > .wp-block-cover.lcr-hero {
	padding-top: clamp(8rem, 5rem + 10vw, 14rem);
	padding-bottom: clamp(4.5rem, 3rem + 5vw, 8rem);
	color: #ffffff;
}
.lcr-hero.wp-block-cover .wp-block-cover__inner-container > * + * { margin-top: 2rem; }
.lcr-hero.wp-block-cover .wp-block-cover__inner-container > h1 + * { margin-top: 2.25rem; }
.lcr-hero.wp-block-cover .wp-block-cover__inner-container > .wp-block-buttons { margin-top: 2.75rem; }
.wp-block-cover.lcr-hero .wp-block-cover__inner-container > h1 { max-width: 15ch; color: #ffffff; }
.wp-block-cover.lcr-hero .wp-block-cover__inner-container > .lcr-lead { max-width: 40rem; }
/* Sobre foto oscura, los botones van como en las secciones Carbón */
.wp-block-cover.lcr-hero,
.wp-block-cover.lcr-banda-foto {
	--lcr-acento: var(--lcr-subrayador);
	--primarybtnhoverbg: #ffffff;
	--primarybtnhovercolor: var(--lcr-tinta);
	--secondarybtncolor: #ffffff;
	--secondarybtnhoverbg: #ffffff;
	--secondarybtnhovercolor: var(--lcr-tinta);
}

/* Hero de color (Contacto, páginas legales) */
.nv-content-wrap > .lcr-seccion.lcr-hero--color {
	padding-top: clamp(7rem, 4.5rem + 9vw, 12rem);
	padding-bottom: clamp(4rem, 3rem + 4vw, 7rem);
}
.lcr-hero--color h1 { max-width: 16ch; }
:is(.lcr-hero--color, .lcr-hero--color > .wp-block-group__inner-container) > h1 + * { margin-top: 2.25rem; }

/* Fotos «en tinta»: blanco y negro con velo carbón (multiplicar), contraste AA para el texto blanco. */
.is-style-lcr-foto-tinta .wp-block-cover__image-background { filter: grayscale(1) contrast(1.08); }
.is-style-lcr-foto-tinta .wp-block-cover__background { mix-blend-mode: multiply; }

/* Migas de pan de Yoast dentro del hero */
.lcr-hero .yoast-breadcrumbs,
.lcr-hero .yoast-breadcrumbs a { font-size: 0.9375rem; color: inherit; }

/* Banda con foto y frase de marca */
.nv-content-wrap > .wp-block-cover.lcr-banda-foto { padding-top: var(--lcr-seccion); padding-bottom: var(--lcr-seccion); }

/* ==========================================================================
   Imagen y texto (servicios con colores alternos y hero de portada)
   ========================================================================== */
.lcr-split.wp-block-media-text { min-height: clamp(28rem, 42vw, 42rem); }
.lcr-split .wp-block-media-text__content {
	padding-top: var(--lcr-seccion);
	padding-bottom: var(--lcr-seccion);
}
/* El texto respeta la línea del contenedor por el lado exterior y deja aire hacia la foto. */
.lcr-split.has-media-on-the-right .wp-block-media-text__content {
	padding-left: var(--lcr-borde);
	padding-right: clamp(2rem, 5vw, 6rem);
}
.lcr-split:not(.has-media-on-the-right) .wp-block-media-text__content {
	padding-left: clamp(2rem, 5vw, 6rem);
	padding-right: var(--lcr-borde);
}
.lcr-split .wp-block-media-text__content > * { margin-top: 0; margin-bottom: 0; }
.lcr-split .wp-block-media-text__content > * + * { margin-top: 1.5rem; }
.lcr-split .wp-block-media-text__content > .wp-block-buttons { margin-top: 2.5rem; }
.lcr-split h2, .lcr-split h3 {
	font-size: clamp(2rem, 1.3rem + 2.4vw, 3.25rem);
	line-height: 1.05;
	font-weight: 720;
	letter-spacing: -0.02em;
	max-width: 16ch;
}
.lcr-split:not(.lcr-hero--home) .wp-block-media-text__media { background: var(--lcr-tinta); }
.lcr-split:not(.lcr-hero--home) .wp-block-media-text__media img { filter: grayscale(1) contrast(1.05); mix-blend-mode: screen; }

/* Hero de la portada: el gato se asoma por el borde y mira el titular. */
.lcr-hero--home.wp-block-media-text { min-height: min(92vh, 940px); }
.lcr-hero--home .wp-block-media-text__content {
	padding-top: clamp(5rem, 3rem + 7vw, 10rem);
	padding-bottom: clamp(4.5rem, 3rem + 5vw, 8rem);
}
.lcr-hero--home .wp-block-media-text__content > h1 + * { margin-top: 2.25rem; }
.lcr-hero--home .wp-block-media-text__content > .wp-block-buttons { margin-top: 2.75rem; }
.lcr-hero--home h1 { font-size: clamp(3rem, 1.4rem + 5.2vw, 6.5rem); max-width: 11ch; }
.lcr-hero--home .wp-block-media-text__media { overflow: hidden; }
.lcr-hero--home .wp-block-media-text__media img {
	object-position: 72% 42%;
	animation: lcr-asomarse 1.5s cubic-bezier(0.16, 0.84, 0.24, 1) 0.2s both;
}
@keyframes lcr-asomarse {
	from { transform: translateX(16%); }
	to { transform: none; }
}

/* Imagen suelta «en tinta» */
.wp-block-image.is-style-lcr-foto-tinta { background: var(--lcr-tinta); line-height: 0; }
.wp-block-image.is-style-lcr-foto-tinta img { filter: grayscale(1) contrast(1.05); mix-blend-mode: screen; width: 100%; }

/* Tablet y móvil: se apila con la foto arriba y el texto con el margen general */
@media (max-width: 781px) {
	.wp-block-media-text.is-stacked-on-mobile.lcr-split { grid-template-columns: 100% !important; min-height: 0; }
	.wp-block-media-text.is-stacked-on-mobile.lcr-split .wp-block-media-text__media { grid-column: 1; grid-row: 1; min-height: 58vw; }
	.wp-block-media-text.is-stacked-on-mobile.lcr-split .wp-block-media-text__content {
		grid-column: 1;
		grid-row: 2;
		padding: clamp(3.5rem, 12vw, 5rem) var(--lcr-margen);
	}
	.lcr-hero--home.wp-block-media-text .wp-block-media-text__media { min-height: 64vw; }
}

/* ==========================================================================
   Piezas
   ========================================================================== */

/* Cuadrícula de elementos (tipos de estudio, servicios) */
.lcr-items .wp-block-column { border-top: 3px solid var(--lcr-acento); padding-top: 1.25rem; }
.lcr-items h3 { max-width: 20ch; }
:is(.lcr-seccion, .lcr-seccion > .wp-block-group__inner-container) > .lcr-items + .lcr-items { margin-top: clamp(2.5rem, 5vw, 3.5rem); }

/* Pasos: el proceso de investigación es una secuencia real, por eso va numerado. */
ol.is-style-lcr-pasos {
	list-style: none;
	counter-reset: lcr-paso;
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: clamp(1rem, 2.5vw, 2rem);
	padding: 0;
	max-width: none !important;
}
ol.is-style-lcr-pasos li { counter-increment: lcr-paso; border-top: 3px solid currentColor; padding-top: 1rem; margin: 0; }
ol.is-style-lcr-pasos li::before {
	content: counter(lcr-paso);
	display: block;
	font-family: var(--lcr-display);
	font-size: clamp(2.75rem, 2rem + 2vw, 4rem);
	font-weight: 760;
	font-stretch: 88%;
	line-height: 1;
	margin-bottom: 0.75rem;
}
ol.is-style-lcr-pasos li strong { font-family: var(--lcr-display); font-size: 1.25rem; font-weight: 680; }
ol.is-style-lcr-pasos li::before { color: var(--lcr-acento); }
@media (max-width: 960px) { ol.is-style-lcr-pasos { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { ol.is-style-lcr-pasos { grid-template-columns: 1fr; } }

/* Rasgos: lista en dos columnas con el arranque en tipografía de titular */
ul.is-style-lcr-rasgos {
	list-style: none;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(1.75rem, 3vw, 2.75rem) clamp(1.5rem, 4vw, 4rem);
	max-width: none !important;
}
ul.is-style-lcr-rasgos li { margin: 0; border-top: 3px solid var(--lcr-acento); padding-top: 1rem; }
ul.is-style-lcr-rasgos li strong {
	display: block;
	font-family: var(--lcr-display);
	font-size: 1.375rem;
	font-weight: 680;
	font-stretch: 92%;
	line-height: 1.2;
	margin-bottom: 0.4rem;
}
@media (max-width: 700px) { ul.is-style-lcr-rasgos { grid-template-columns: 1fr; } }

/* Lista de frases grandes (cuándo necesitas facilitación, proyectos UE) */
ul.lcr-lista-grande { list-style: none; padding: 0; max-width: 52rem !important; }
ul.lcr-lista-grande li {
	max-width: none;
	margin: 0;
	padding: 1.1rem 0;
	border-top: 2px solid currentColor;
	font-family: var(--lcr-display);
	font-size: clamp(1.25rem, 1.05rem + 0.8vw, 1.75rem);
	font-weight: 560;
	font-stretch: 94%;
	line-height: 1.25;
}
ul.lcr-lista-grande li:last-child { border-bottom: 2px solid currentColor; }

/* Manifiesto y frases de marca */
.nv-content-wrap .lcr-manifiesto p { font-size: clamp(1.15rem, 1.02rem + 0.45vw, 1.35rem); line-height: 1.6; }
.nv-content-wrap p.lcr-afirmacion {
	font-family: var(--lcr-display);
	font-size: clamp(1.6rem, 1.05rem + 2vw, 2.85rem);
	font-weight: 560;
	font-stretch: 94%;
	line-height: 1.18;
	letter-spacing: -0.012em;
	max-width: 26em;
}
/* El subrayador: solo para la firma de la marca, como se subraya una frase clave en una transcripción. */
.nv-content-wrap p.lcr-subrayado {
	font-family: var(--lcr-display);
	font-size: clamp(1.9rem, 1.2rem + 2.6vw, 3.4rem);
	font-weight: 760;
	font-stretch: 90%;
	line-height: 1.12;
	letter-spacing: -0.02em;
	max-width: none;
	margin-top: clamp(2.5rem, 5vw, 3.5rem);
}
.lcr-subrayado strong {
	font-weight: inherit;
	background: linear-gradient(transparent 52%, var(--lcr-subrayador) 52%, var(--lcr-subrayador) 94%, transparent 94%);
	-webkit-box-decoration-break: clone;
	box-decoration-break: clone;
	padding: 0 0.08em;
}

/* Retratos */
.lcr-retratos .wp-block-image img { aspect-ratio: 4 / 5; object-fit: cover; width: 100%; }
.wp-element-caption {
	font-family: var(--lcr-display);
	font-size: 1.0625rem;
	font-weight: 620;
	color: inherit;
	text-align: left;
	margin-top: 0.75rem;
}
.lcr-persona .wp-block-image img { aspect-ratio: 4 / 5; object-fit: cover; width: 100%; max-width: 420px; }
.lcr-persona--derecha .wp-block-image { display: flex; justify-content: flex-end; }

/* Preguntas frecuentes (desplegables) */
.wp-block-details {
	border-top: 2px solid currentColor;
	padding: 1.35rem 0;
	max-width: 52rem;
	margin-bottom: 0 !important;
}
.wp-block-details:last-child { border-bottom: 2px solid currentColor; }
.wp-block-details summary {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 1.5rem;
	cursor: pointer;
	list-style: none;
	font-family: var(--lcr-display);
	font-size: clamp(1.2rem, 1.05rem + 0.5vw, 1.5rem);
	font-weight: 660;
	font-stretch: 94%;
	line-height: 1.25;
}
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after {
	content: "+";
	flex: none;
	font-size: 1.9rem;
	line-height: 1;
	transition: transform 0.2s ease;
}
.wp-block-details[open] summary::after { transform: rotate(45deg); }
.wp-block-details > :not(summary) { margin-top: 1rem; }

/* ---------- Iconos (sólidos, propios). Magenta en fondos claros, amarillo en carbón y sobre fotos. ---------- */
[class*="is-style-lcr-icono-"]::before {
	content: "";
	display: block;
	background-color: var(--lcr-acento);
	-webkit-mask: var(--lcr-icono) center / contain no-repeat;
	mask: var(--lcr-icono) center / contain no-repeat;
}
.is-style-lcr-icono-investigacion { --lcr-icono: url("../iconos/investigacion.svg"); }
.is-style-lcr-icono-facilitacion { --lcr-icono: url("../iconos/facilitacion.svg"); }
.is-style-lcr-icono-participacion { --lcr-icono: url("../iconos/participacion.svg"); }
.is-style-lcr-icono-email { --lcr-icono: url("../iconos/email.svg"); }
.is-style-lcr-icono-movil { --lcr-icono: url("../iconos/movil.svg"); }
.is-style-lcr-icono-ubicacion { --lcr-icono: url("../iconos/ubicacion.svg"); }

/* En títulos: el icono va encima, alineado a la izquierda del texto */
:is(h1, h2, h3)[class*="is-style-lcr-icono-"]::before { width: 3rem; height: 3rem; margin-bottom: 1.5rem; }
h1[class*="is-style-lcr-icono-"]::before { width: 3.5rem; height: 3.5rem; }

/* En párrafos: el icono a la izquierda de la línea */
p[class*="is-style-lcr-icono-"] { position: relative; padding-left: 2.4rem; }
p[class*="is-style-lcr-icono-"]::before { position: absolute; left: 0; top: 0.15em; width: 1.6rem; height: 1.6rem; }

/* Botones */
.wp-block-button__link { font-weight: 700; letter-spacing: 0.005em; transition: background-color 0.15s ease, color 0.15s ease; }
.wp-block-buttons { gap: 1rem; }

/* ==========================================================================
   Cabecera
   ========================================================================== */
.header--row.header-main { border-bottom: 1px solid var(--lcr-niebla); }
.header-main .header--row-inner,
.header-main .header-main-inner { min-height: 84px; }
.header-main .row,
.header-main .hfg-slot { align-items: center; }
/* Logotipo CURIOSA (plantilla propia: header-footer-grid/templates/components/component-logo.php) */
.site-logo .lcr-logo { display: block; line-height: 0; }
.site-logo .lcr-logo img { display: block; width: auto; height: 40px; max-width: none; }
@media (max-width: 959px) { .site-logo .lcr-logo img { height: 32px; } }
.site-logo .site-title,
.site-logo .brand .site-title {
	font-family: var(--lcr-display);
	font-size: clamp(1.35rem, 1.1rem + 0.6vw, 1.7rem);
	font-weight: 790;
	font-stretch: 84%;
	letter-spacing: -0.025em;
	line-height: 1;
	color: var(--lcr-tinta);
	margin: 0;
}
.site-logo small { display: none; }
.header-main .builder-item--primary-menu {
	--color: var(--lcr-tinta);
	--hovercolor: var(--lcr-tinta);
	--activecolor: var(--lcr-tinta);
	--spacing: 1.75rem;
}
/* Todos los elementos del menú centrados en vertical con el botón de Contacto */
.header-main .nav-ul { display: flex; align-items: center; }
.header-main .nav-ul > li,
.header-main .nav-ul > li > .wrap { display: flex; align-items: center; margin-top: 0; margin-bottom: 0; }
.header-main .builder-item--primary-menu .nav-ul > li > .wrap > a {
	font-weight: 600;
	font-size: 1rem;
	line-height: 1.3;
	padding: 0.75em 0 !important;
	min-height: 0;
	text-decoration: none;
}
/* La página actual queda «subrayada» */
.nav-menu-primary .current-menu-item > .wrap > a,
.nav-menu-primary .current-menu-item > a {
	text-decoration: underline;
	text-decoration-color: var(--lcr-subrayador);
	text-decoration-thickness: 0.45em;
	text-underline-offset: -0.18em;
	text-decoration-skip-ink: none;
}
.nav-menu-primary .menu-item:not(.current-menu-item) > .wrap > a:hover {
	text-decoration: underline;
	text-decoration-thickness: 2px;
	text-underline-offset: 0.25em;
}
/* Contacto como botón en la cabecera de escritorio */
@media (min-width: 960px) {
	.header-main .builder-item--primary-menu .nav-ul > li.lcr-menu-cta > .wrap > a {
		background: var(--lcr-magenta);
		color: #ffffff;
		padding: 0.75em 1.25em !important;
		border-radius: var(--lcr-radio);
		text-decoration: none;
	}
	.header-main .builder-item--primary-menu .nav-ul > li.lcr-menu-cta > .wrap > a { text-decoration: none; }
	.header-main .builder-item--primary-menu .nav-ul > li.lcr-menu-cta > .wrap > a:hover {
		background: var(--lcr-tinta);
		color: #ffffff;
	}
}

/* ==========================================================================
   Pie
   ========================================================================== */
.site-footer .footer-top,
.site-footer .footer-bottom {
	--bgcolor: var(--lcr-tinta);
	--color: #ffffff;
	background-color: var(--lcr-tinta);
	color: #ffffff;
}
.site-footer .footer-top { padding-top: clamp(4rem, 7vw, 6.5rem); padding-bottom: clamp(3rem, 5vw, 4.5rem); }
.site-footer .footer-main { --bgcolor: #ffffff; --color: var(--lcr-tinta); background-color: #ffffff; color: var(--lcr-tinta); padding: 2rem 0; }
.site-footer .footer-main .builder-item--footer-four-widgets,
.site-footer .footer-main .widget,
.site-footer .footer-main .wp-block-image { width: 100%; max-width: none; margin: 0; }
.site-footer .footer-main .wp-block-image { text-align: center; }
.site-footer .footer-main .wp-block-image img { width: 100%; max-width: 1024px; height: auto; margin: 0 auto; }
.site-footer .footer-bottom { border-top: 1px solid rgba(255, 255, 255, 0.18); padding: 1rem 0; }
.site-footer .footer-bottom a { color: #ffffff; }
.site-footer .widget p { margin: 0 0 0.6rem; max-width: 34ch; }
.site-footer .widget ul { list-style: none; padding: 0; margin: 0; }
.site-footer .widget li { margin: 0 0 0.55rem; }
.site-footer .lcr-marca-pie { line-height: 0; margin-bottom: 1.25rem; }
.site-footer .lcr-marca-pie img { display: block; width: auto; height: 44px; }
.site-footer .lcr-titulo-pie { font-family: var(--lcr-display); font-weight: 680; font-size: 1.125rem; margin-bottom: 0.9rem; }

/* ==========================================================================
   Formulario (Contact Form 7)
   ========================================================================== */
.wpcf7 label { display: block; font-weight: 700; margin-bottom: 1.25rem; }
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 select,
.wpcf7 textarea {
	display: block;
	width: 100%;
	margin-top: 0.4rem;
	font: inherit;
	font-weight: 400;
	padding: 0.85em 0.9em;
	border: 2px solid var(--lcr-tinta);
	border-radius: var(--lcr-radio);
	background: #ffffff;
	color: var(--lcr-tinta);
}
.wpcf7 textarea { min-height: 10rem; }
.wpcf7 .wpcf7-acceptance label { font-weight: 400; display: flex; gap: 0.6rem; align-items: flex-start; }
.wpcf7 input[type="checkbox"] { width: 1.25rem; height: 1.25rem; accent-color: var(--lcr-tinta); margin-top: 0.15rem; }
.wpcf7 .wpcf7-submit { margin-top: 0.5rem; }
.lcr-panel { padding: clamp(1.5rem, 4vw, 3rem); border-radius: var(--lcr-radio); }

/* ---------- Movimiento reducido ---------- */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition: none !important; }
}

/* La barra de accesibilidad (OneTap) deja ver la sombra de su panel cerrado en el borde derecho */
.onetap-accessibility.onetap-plugin-onetap:not(.onetap-toggle-open) { box-shadow: none !important; }

/* Comprobación de suma del formulario */
.wpcf7 .lcr-suma-pregunta { display: block; font-family: var(--lcr-display); font-size: 1.25rem; font-weight: 680; margin-top: 0.35rem; }
.wpcf7 input.lcr-suma { display: block; width: 6rem; margin-top: 0.4rem; font: inherit; padding: 0.85em 0.9em; border: 2px solid var(--lcr-tinta); border-radius: var(--lcr-radio); background: #ffffff; color: var(--lcr-tinta); }
.wpcf7 input[type="tel"] { display: block; width: 100%; margin-top: 0.4rem; font: inherit; font-weight: 400; padding: 0.85em 0.9em; border: 2px solid var(--lcr-tinta); border-radius: var(--lcr-radio); background: #ffffff; color: var(--lcr-tinta); }

/* Selector de idioma (TranslatePress) en el menú: discreto, separado del botón de contacto */
.header-main .nav-ul > li.lcr-menu-idioma > .wrap > a { font-weight: 500; color: var(--lcr-grafito); }
.header-main .nav-ul > li.lcr-menu-idioma { padding-left: 0.25rem; }
.header-main .lcr-menu-idioma .trp-flag-image, .header-menu-sidebar .lcr-menu-idioma .trp-flag-image { display: none !important; }
.header-main .nav-ul > li.lcr-menu-idioma > .wrap > a { letter-spacing: 0.04em; }

/* Entre 960 y 1199 px el menú completo tiene que caber en una línea */
@media (min-width: 960px) and (max-width: 1199px) {
	.header-main .builder-item--primary-menu { --spacing: 1.05rem; }
	.header-main .builder-item--primary-menu .nav-ul > li > .wrap > a { font-size: 0.95rem; }
}

/* Botón para revisar el consentimiento de cookies: a la derecha, sin tapar los botones de los heros */
.cky-btn-revisit-wrapper { left: auto !important; right: 16px !important; bottom: 16px !important; }

/* ==========================================================================
   Marca
   ========================================================================== */

/* Llamada a la acción: el icono del logo se asoma encima del texto. */
.lcr-cta::before {
	content: "";
	display: block;
	width: clamp(3.5rem, 2.8rem + 2vw, 4.75rem);
	aspect-ratio: 142 / 147.5;
	margin-bottom: 1.75rem;
	background: url("../marca/icono-curiosa.svg") left bottom / contain no-repeat;
}

/* Título que solo leen los lectores de pantalla y los buscadores (Equipo: el cliente prefiere
   empezar directamente con el texto, pero la página conserva su H1). */
.lcr-oculto {
	position: absolute !important;
	width: 1px;
	height: 1px;
	margin: -1px !important;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}

/* Portada en magenta: el titular en blanco. */
.lcr-hero--home.is-style-lcr-magenta h1 { color: #ffffff; }

/* Banner de cookies (CookieYes) con los colores de la marca: sus colores van en línea, de ahí !important. */
.cky-btn-revisit-wrapper { background-color: var(--lcr-magenta) !important; }
.cky-btn.cky-btn-accept,
.cky-btn.cky-btn-reject,
.cky-btn.cky-btn-preferences { background-color: var(--lcr-magenta) !important; border-color: var(--lcr-magenta) !important; color: #ffffff !important; }
.cky-btn.cky-btn-customize { color: var(--lcr-magenta) !important; border-color: var(--lcr-magenta) !important; }
.cky-btn { border-radius: var(--lcr-radio) !important; font-weight: 700 !important; }
.cky-notice-des a.cky-policy,
.cky-preference-content-wrapper .cky-show-desc-btn { color: var(--lcr-magenta) !important; }
.cky-switch input[type="checkbox"]:checked { background: var(--lcr-magenta) !important; }
/* WCAG 1.4.13: el recuadro que CookieYes muestra al pasar el ratón no se puede cerrar sin mover el puntero.
   El botón ya tiene nombre accesible («Preferencias de consentimiento»), así que se suprime. */
.cky-btn-revisit-wrapper:hover::before,
.cky-btn-revisit-wrapper:hover::after { display: none !important; content: none !important; }
