/*
Theme Name:   P. Lázaro
Theme URI:    https://p-lazaro.com
Author:       Linktel Services
Author URI:   https://linktelservices.com
Description:  Tema a medida para P. Lázaro, S.L., almacén de materiales de construcción en Maó, en español, catalán, inglés y francés. Todo el contenido se edita desde el plugin «P. Lázaro · Core».
Version:      1.1.0
Requires at least: 6.0
Requires PHP: 7.4
License:      GPL-2.0-or-later
Text Domain:  plazaro
*/

/* =========================================================================
   1. Tokens del diseño
   ====================================================================== */

:root {
	/* Marca */
	--rojo: #aa1111;
	--rojo-hover: #8d0e0e;
	--rojo-enlace-hover: #7d0d0d;
	--rojo-suave: #fbeeee;
	--rojo-borde-card: #e2c4c4;
	--rojo-sobre-negro: #e08d8d;
	--texto-sobre-rojo: #f7e3e3;

	/* Neutros */
	--carbon: #111111;
	--oscuro-1: #1b1b1b;
	--oscuro-2: #262626;

	/* Texto */
	--txt: #111111;
	--txt-2: #333333;
	--txt-3: #444444;
	--txt-cuerpo: #555555;
	--txt-sec: #666666;
	--txt-ter: #777777;
	--txt-ter-2: #8a8a86;

	/* Texto sobre oscuro */
	--sobre-oscuro-1: #cfcdca;
	--sobre-oscuro-2: #c9c7c4;
	--sobre-oscuro-3: #a8a6a2;
	--sobre-oscuro-4: #6f6d6a;

	/* Fondos y bordes */
	--fondo-alt: #faf9f8;
	--placeholder: #f2f0ed;
	--borde-seccion: #eeeae6;
	--borde-card: #eae7e3;
	--borde-input: #e5e2de;
	--borde-boton: #ddd9d5;
	--borde-cabecera: #ebe8e5;
	--borde-menu: #f1eeeb;

	/* Éxito */
	--ok-fondo: #f3faf3;
	--ok-borde: #cfe6cf;
	--ok-txt: #1c6b1c;
	--ok-txt-2: #3c5c3c;

	/* Medidas */
	--gutter: clamp(18px, 3.6vw, 56px);
	--sombra-card: 0 14px 30px rgba(17, 17, 17, 0.10);
}

/* =========================================================================
   2. Base
   ====================================================================== */

*,
*::before,
*::after {
	box-sizing: border-box;
}

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

body {
	margin: 0;
	background: #fff;
	color: var(--txt);
	font-family: Manrope, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	font-size: 16px;
	line-height: 1.5;
	-webkit-font-smoothing: antialiased;
}

img {
	max-width: 100%;
	height: auto;
}

a {
	color: var(--rojo);
	text-decoration: none;
	cursor: pointer;
	transition: color 0.15s ease;
}

a:hover {
	color: var(--rojo-enlace-hover);
}

h1, h2, h3, h4 {
	margin: 0;
	font-weight: 800;
}

p {
	margin: 0;
}

button {
	font-family: inherit;
}

/* Accesibilidad: foco siempre visible */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
	outline: 2px solid var(--rojo);
	outline-offset: 2px;
}

.pl-salto-contenido {
	position: absolute;
	left: -9999px;
	top: 0;
	background: var(--carbon);
	color: #fff;
	padding: 14px 20px;
	z-index: 100;
	border-radius: 0 0 10px 0;
	font-weight: 700;
}

.pl-salto-contenido:focus {
	left: 0;
	color: #fff;
}

.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}

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

/* =========================================================================
   3. Piezas reutilizables
   ====================================================================== */

.pl-seccion {
	padding: 68px var(--gutter) 76px;
}

.pl-seccion--alt {
	background: var(--fondo-alt);
}

.pl-eyebrow {
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--rojo);
}

.pl-eyebrow--sm {
	font-size: 13px;
	letter-spacing: 0.1em;
}

.pl-h1 {
	font-size: clamp(30px, 4.2vw, 52px);
	font-weight: 800;
	letter-spacing: -0.03em;
	line-height: 1.06;
}

.pl-h2 {
	font-size: clamp(26px, 3.2vw, 40px);
	font-weight: 800;
	letter-spacing: -0.025em;
}

.pl-lead {
	font-size: 18.5px;
	line-height: 1.62;
	color: var(--txt-cuerpo);
	text-wrap: pretty;
}

.pl-migas {
	font-size: 14px;
	color: var(--txt-ter-2);
}

.pl-migas a {
	color: var(--txt-ter-2);
}

.pl-migas a:hover {
	color: var(--rojo);
}

.pl-migas [aria-current="page"],
.pl-migas .pl-migas__actual {
	color: var(--txt);
	font-weight: 600;
}

/* Botones */

.pl-boton {
	display: inline-block;
	padding: 17px 28px;
	border-radius: 12px;
	font-size: 16px;
	font-weight: 700;
	text-align: center;
	white-space: nowrap;
	transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.pl-boton--primario {
	background: var(--rojo);
	color: #fff;
}

.pl-boton--primario:hover {
	background: var(--rojo-hover);
	color: #fff;
}

.pl-boton--secundario {
	border: 1.5px solid var(--borde-boton);
	color: var(--txt);
}

.pl-boton--secundario:hover {
	border-color: var(--carbon);
	color: var(--txt);
}

.pl-boton--claro {
	background: #fff;
	color: var(--rojo);
	font-weight: 800;
	padding: 18px 30px;
}

.pl-boton--contorno-claro {
	border: 1.5px solid rgba(255, 255, 255, 0.6);
	color: #fff;
	font-weight: 800;
	padding: 18px 30px;
}

.pl-boton--contorno-claro:hover {
	color: #fff;
	border-color: #fff;
}

.pl-boton--oscuro {
	border: 1.5px solid #4a4a4a;
	color: #fff;
}

.pl-boton--oscuro:hover {
	color: #fff;
	border-color: #fff;
}

.pl-boton--sm {
	padding: 13px 22px;
	font-size: 15px;
	border-radius: 10px;
}

.pl-botonera {
	display: flex;
	gap: 12px;
	flex-wrap: wrap;
}

/* Placeholder de foto pendiente */

.plz-placeholder {
	background: repeating-linear-gradient(135deg, #eeecea 0 10px, #f6f5f3 10px 20px);
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: ui-monospace, monospace;
	font-size: 12px;
	color: #99958f;
	text-align: center;
	width: 100%;
	height: 100%;
	min-height: 120px;
}

/* Tarjeta de material */

.pl-card {
	background: #fff;
	border: 1px solid var(--borde-card);
	border-radius: 18px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}

.pl-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--sombra-card);
	border-color: var(--rojo-borde-card);
}

.pl-card__media {
	height: 200px;
	position: relative;
	background-color: var(--placeholder);
	background-size: cover;
	background-position: center;
	flex: 0 0 auto;
}

.pl-card__media--alta {
	height: 220px;
}

.pl-card__cuerpo {
	padding: 22px 22px 24px;
	display: flex;
	flex-direction: column;
	gap: 9px;
	flex: 1;
}

.pl-card__titulo {
	margin: 0;
	font-size: 21px;
	font-weight: 800;
	letter-spacing: -0.015em;
	color: var(--txt);
}

.pl-card__texto {
	margin: 0;
	font-size: 15.5px;
	line-height: 1.55;
	color: var(--txt-sec);
}

.pl-card__enlace {
	margin-top: auto;
	padding-top: 14px;
	font-size: 15.5px;
	font-weight: 700;
	color: var(--rojo);
}

.pl-card__link {
	position: absolute;
	inset: 0;
	z-index: 1;
}

.pl-card-wrap {
	position: relative;
	display: flex;
}

.pl-card-wrap > .pl-card {
	width: 100%;
}

/* Rejillas */

.pl-grid {
	display: grid;
	gap: 22px;
}

.pl-grid--cards {
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}

.pl-grid--cards-anchas {
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}

.pl-grid--2 {
	grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
}

.pl-grid--3 {
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}

.pl-grid--4 {
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

/* =========================================================================
   4. Cabecera
   ====================================================================== */

.pl-sticky {
	position: sticky;
	top: 0;
	z-index: 50;
}

.pl-topbar {
	background: var(--carbon);
	color: var(--sobre-oscuro-1);
	font-size: 13.5px;
	padding: 11px var(--gutter);
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 18px;
	white-space: nowrap;
	overflow: hidden;
}

.pl-topbar__direccion {
	overflow: hidden;
	text-overflow: ellipsis;
}

.pl-topbar__contacto {
	display: flex;
	gap: 28px;
	align-items: center;
	flex: 0 0 auto;
}

.pl-topbar__contacto a {
	color: var(--sobre-oscuro-1);
}

.pl-topbar__contacto a:hover {
	color: #fff;
}

.pl-topbar__tel {
	color: #fff;
	font-size: 15px;
	font-weight: 700;
}

.pl-cabecera {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 18px var(--gutter);
	border-bottom: 1px solid var(--borde-cabecera);
	background: #fff;
	gap: 16px;
}

.pl-logo img {
	height: 52px;
	width: auto;
	display: block;
}

.pl-nav {
	display: flex;
	gap: clamp(12px, 1.6vw, 32px);
	font-size: 15.5px;
	font-weight: 600;
	justify-content: center;
	min-width: 0;
}

.pl-nav a {
	color: var(--txt-3);
	white-space: nowrap;
}

.pl-nav a:hover,
.pl-nav a.is-activo {
	color: var(--rojo);
}

.pl-cabecera__acciones {
	display: flex;
	align-items: center;
	gap: 14px;
	flex: 0 0 auto;
}

.pl-cabecera__tel {
	font-size: 15.5px;
	font-weight: 700;
	color: var(--txt);
	white-space: nowrap;
}

.pl-cabecera__cta {
	background: var(--rojo);
	color: #fff;
	padding: 13px 24px;
	border-radius: 10px;
	font-size: 15.5px;
	font-weight: 700;
	white-space: nowrap;
}

.pl-cabecera__cta:hover {
	background: var(--rojo-hover);
	color: #fff;
}

/* Móvil */

.pl-movil {
	display: none;
	align-items: center;
	gap: 10px;
}

.pl-movil__llamar {
	border: 1px solid var(--borde-input);
	border-radius: 10px;
	padding: 12px 16px;
	font-size: 15px;
	font-weight: 700;
	color: var(--rojo);
	white-space: nowrap;
}

.pl-hamburguesa {
	width: 48px;
	height: 46px;
	border-radius: 10px;
	background: var(--carbon);
	border: 0;
	display: flex;
	flex-direction: column;
	gap: 4px;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	padding: 0;
}

.pl-hamburguesa span {
	width: 20px;
	height: 2px;
	background: #fff;
	display: block;
	border-radius: 2px;
}

.pl-menu-movil {
	background: #fff;
	max-height: 70vh;
	overflow-y: auto;
	border-bottom: 1px solid var(--borde-cabecera);
	padding: 10px var(--gutter) 20px;
	display: none;
	flex-direction: column;
}

.pl-menu-movil.is-abierto {
	display: flex;
}

.pl-menu-movil a {
	color: var(--txt-3);
	font-size: 17px;
	font-weight: 700;
	padding: 15px 0;
	border-bottom: 1px solid var(--borde-menu);
}

.pl-menu-movil a.is-activo {
	color: var(--rojo);
}

.pl-menu-movil__cta {
	background: var(--rojo);
	color: #fff !important;
	padding: 16px !important;
	border-radius: 12px;
	font-size: 16px;
	text-align: center;
	margin-top: 16px;
	border-bottom: 0 !important;
}

/* Barra fija inferior en móvil */

.pl-barra-movil {
	display: none;
	position: sticky;
	bottom: 0;
	z-index: 45;
	background: #fff;
	border-top: 1px solid var(--borde-cabecera);
	padding: 10px var(--gutter);
	gap: 10px;
}

.pl-barra-movil__llamar {
	flex: 1;
	background: var(--rojo);
	color: #fff;
	text-align: center;
	padding: 15px;
	border-radius: 12px;
	font-size: 15.5px;
	font-weight: 700;
}

.pl-barra-movil__ir {
	flex: 0 0 auto;
	border: 1.5px solid var(--borde-boton);
	color: var(--txt);
	text-align: center;
	padding: 15px 20px;
	border-radius: 12px;
	font-size: 15.5px;
	font-weight: 700;
}

@media (max-width: 1099px) {
	.pl-nav,
	.pl-cabecera__acciones {
		display: none;
	}

	.pl-movil {
		display: flex;
	}

	.pl-barra-movil {
		display: flex;
	}
}

/* =========================================================================
   5. Inicio
   ====================================================================== */

.pl-hero {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
	gap: var(--gutter);
	padding: 76px var(--gutter) 68px;
	align-items: center;
}

.pl-pill {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	background: var(--rojo-suave);
	color: var(--rojo);
	padding: 9px 15px;
	border-radius: 999px;
	font-size: 14px;
	font-weight: 700;
}

.pl-pill::before {
	content: "";
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--rojo);
	display: block;
}

.pl-hero__titulo {
	font-size: clamp(34px, 5vw, 64px);
	line-height: 1.04;
	font-weight: 800;
	letter-spacing: -0.035em;
	margin: 22px 0 0;
	text-wrap: balance;
}

.pl-hero__lead {
	font-size: 19.5px;
	line-height: 1.62;
	color: var(--txt-cuerpo);
	margin: 20px 0 0;
	max-width: 530px;
	text-wrap: pretty;
}

.pl-hero .pl-botonera {
	margin-top: 32px;
}

.pl-cifras {
	display: flex;
	gap: 44px;
	margin-top: 46px;
	padding-top: 28px;
	border-top: 1px solid var(--borde-seccion);
	flex-wrap: wrap;
}

.pl-cifra__numero {
	font-size: 27px;
	font-weight: 800;
	letter-spacing: -0.02em;
}

.pl-cifra__texto {
	font-size: 14.5px;
	color: var(--txt-ter);
	margin-top: 2px;
}

.pl-mosaico {
	display: grid;
	grid-template-columns: 1fr 1fr;
	grid-template-rows: 300px 210px;
	gap: 14px;
}

.pl-mosaico__grande {
	grid-column: span 2;
	position: relative;
	border-radius: 20px;
	overflow: hidden;
}

.pl-mosaico__grande img,
.pl-mosaico > img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	border-radius: 20px;
}

.pl-mosaico__grande img {
	border-radius: 0;
}

.pl-mosaico__etiqueta {
	position: absolute;
	left: 18px;
	bottom: 18px;
	background: rgba(17, 17, 17, 0.82);
	color: #fff;
	padding: 10px 16px;
	border-radius: 999px;
	font-size: 14px;
	font-weight: 700;
	backdrop-filter: blur(4px);
}

/* Franja de servicios */

.pl-servicios {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	border-top: 1px solid var(--borde-seccion);
	border-bottom: 1px solid var(--borde-seccion);
}

.pl-servicio {
	padding: 30px 40px 32px;
	border-right: 1px solid var(--borde-seccion);
	display: flex;
	gap: 16px;
	align-items: flex-start;
}

.pl-servicio:last-child {
	border-right: 0;
}

.pl-servicio::before {
	content: "";
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: var(--rojo);
	margin-top: 8px;
	flex: 0 0 10px;
}

.pl-servicio__titulo {
	font-size: 18.5px;
	font-weight: 800;
	letter-spacing: -0.015em;
}

.pl-servicio__texto {
	font-size: 15.5px;
	line-height: 1.55;
	color: var(--txt-sec);
	margin-top: 6px;
}

/* Encabezado de sección con enlace a la derecha */

.pl-seccion__cabecera {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px;
	flex-wrap: wrap;
	margin-bottom: 34px;
}

.pl-seccion__cabecera p {
	font-size: 17.5px;
	color: var(--txt-sec);
	margin: 10px 0 0;
}

.pl-seccion__enlace {
	font-size: 16px;
	font-weight: 700;
}

/* Bloque negro */

.pl-familia {
	background: var(--carbon);
	color: #fff;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
	align-items: center;
	gap: 60px;
	padding: 80px var(--gutter);
}

.pl-familia__media {
	height: 460px;
	border-radius: 20px;
	overflow: hidden;
}

.pl-familia__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.pl-familia__media .plz-placeholder {
	background: repeating-linear-gradient(135deg, #1c1c1c 0 10px, #232323 10px 20px);
	color: #5d5d5d;
	font-size: 13px;
	height: 100%;
}

.pl-familia .pl-eyebrow {
	color: var(--rojo-sobre-negro);
}

.pl-familia__titulo {
	font-size: clamp(29px, 3.8vw, 48px);
	line-height: 1.08;
	font-weight: 800;
	letter-spacing: -0.03em;
	margin: 16px 0 0;
}

.pl-familia__texto {
	font-size: 18.5px;
	line-height: 1.65;
	color: var(--sobre-oscuro-2);
	margin: 18px 0 0;
	max-width: 560px;
	text-wrap: pretty;
}

.pl-familia__cita {
	margin-top: 26px;
	padding: 22px 26px;
	border-radius: 16px;
	background: var(--oscuro-1);
	border-left: 4px solid var(--rojo);
	font-size: 21px;
	line-height: 1.45;
	font-weight: 600;
}

.pl-familia .pl-boton {
	margin-top: 26px;
}

/* Reseñas */

.pl-resena {
	border: 1px solid var(--borde-card);
	border-radius: 18px;
	padding: 26px 28px;
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.pl-resena__estrellas {
	color: var(--rojo);
	font-size: 15px;
	letter-spacing: 0.14em;
	font-weight: 700;
}

.pl-resena__texto {
	margin: 0;
	font-size: 17px;
	line-height: 1.55;
	color: var(--txt-2);
	text-wrap: pretty;
}

.pl-resena__fuente {
	margin-top: auto;
	font-size: 14px;
	color: var(--txt-ter-2);
}

.pl-grid--resenas {
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	gap: 20px;
}

/* Franja de marcas */

.pl-franja-marcas {
	padding: 46px var(--gutter);
	border-top: 1px solid var(--borde-seccion);
	border-bottom: 1px solid var(--borde-seccion);
	display: flex;
	align-items: center;
	gap: 44px;
	flex-wrap: wrap;
}

.pl-franja-marcas__texto {
	flex: 0 0 210px;
	font-size: 15.5px;
	font-weight: 700;
	color: var(--txt-3);
	line-height: 1.5;
}

.pl-franja-marcas__texto a {
	font-size: 14.5px;
}

.pl-franja-marcas__logos {
	flex: 1;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
	gap: 14px;
	min-width: 240px;
}

.pl-logo-caja {
	height: 72px;
	border: 1px solid var(--borde-card);
	border-radius: 12px;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	padding: 10px;
}

.pl-logo-caja img {
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
	display: block;
}

/* CTA roja */

.pl-cta {
	background: var(--rojo);
	color: #fff;
	padding: 70px var(--gutter);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 48px;
	flex-wrap: wrap;
}

.pl-cta__titulo {
	margin: 0;
	font-size: clamp(28px, 3.4vw, 44px);
	font-weight: 800;
	letter-spacing: -0.03em;
	line-height: 1.08;
}

.pl-cta__texto {
	margin: 14px 0 0;
	font-size: 18.5px;
	line-height: 1.6;
	color: var(--texto-sobre-rojo);
	max-width: 640px;
}

/* =========================================================================
   6. Materiales (listado)
   ====================================================================== */

.pl-cabecera-pagina {
	padding: var(--gutter) var(--gutter) 40px;
	background: var(--fondo-alt);
	border-bottom: 1px solid var(--borde-seccion);
}

.pl-cabecera-pagina .pl-h1 {
	margin: 16px 0 0;
}

.pl-cabecera-pagina .pl-lead {
	margin: 12px 0 0;
	max-width: 660px;
}

.pl-buscador {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-top: 24px;
	max-width: 460px;
	border: 1px solid var(--borde-boton);
	background: #fff;
	border-radius: 12px;
	padding: 4px 6px 4px 16px;
}

.pl-buscador__icono {
	color: #a9a5a0;
	font-size: 16px;
}

.pl-buscador__input {
	flex: 1;
	border: 0;
	outline: none;
	padding: 13px 0;
	font-family: inherit;
	font-size: 15.5px;
	color: var(--txt);
	background: transparent;
	min-width: 0;
}

.pl-buscador__limpiar {
	background: none;
	border: 0;
	cursor: pointer;
	color: var(--txt-ter-2);
	font-size: 14px;
	font-weight: 700;
	padding: 10px 12px;
}

.pl-buscador__limpiar[hidden] {
	display: none;
}

.pl-listado {
	display: flex;
	flex-wrap: wrap;
	gap: 44px;
	padding: 44px var(--gutter) 76px;
	align-items: flex-start;
}

.pl-sidebar {
	flex: 1 1 240px;
	max-width: 300px;
	position: sticky;
	top: 190px;
}

.pl-sidebar__lista {
	display: flex;
	flex-direction: column;
	gap: 2px;
	margin-top: 14px;
}

.pl-sidebar__lista a {
	padding: 12px 14px;
	border-radius: 10px;
	font-size: 15.5px;
	font-weight: 600;
	color: var(--txt-2);
	background: var(--fondo-alt);
	transition: background 0.15s ease, color 0.15s ease;
}

.pl-sidebar__lista a:hover,
.pl-sidebar__lista a.is-activo {
	background: var(--rojo-suave);
	color: var(--rojo);
}

.pl-caja-ayuda {
	margin-top: 26px;
	border: 1px solid var(--borde-card);
	border-radius: 16px;
	padding: 20px;
}

.pl-caja-ayuda__titulo {
	font-size: 17px;
	font-weight: 800;
	letter-spacing: -0.015em;
}

.pl-caja-ayuda p {
	font-size: 15px;
	line-height: 1.55;
	color: var(--txt-sec);
	margin: 8px 0 14px;
}

.pl-caja-ayuda .pl-boton {
	display: block;
	padding: 13px;
	font-size: 15px;
	border-radius: 10px;
}

.pl-resultados {
	flex: 3 1 520px;
	min-width: 0;
}

.pl-vacio {
	border: 1px dashed var(--borde-boton);
	border-radius: 18px;
	padding: 40px;
	text-align: center;
}

.pl-vacio[hidden] {
	display: none;
}

.pl-vacio__titulo {
	font-size: 19px;
	font-weight: 800;
	letter-spacing: -0.015em;
}

.pl-vacio p {
	font-size: 16px;
	color: var(--txt-sec);
	margin: 10px 0 18px;
}

.pl-card-wrap[hidden] {
	display: none;
}

/* =========================================================================
   7. Ficha de material
   ====================================================================== */

.pl-ficha-hero {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
	gap: 48px;
	padding: 48px var(--gutter) var(--gutter);
	align-items: center;
	background: var(--fondo-alt);
	border-bottom: 1px solid var(--borde-seccion);
}

.pl-ficha-hero__titulo {
	font-size: clamp(30px, 4vw, 50px);
	margin: 16px 0 0;
}

.pl-ficha-hero__lead {
	margin: 14px 0 0;
	max-width: 540px;
}

.pl-ficha-hero .pl-botonera {
	margin-top: 26px;
}

.pl-ficha-hero__media {
	height: 400px;
	border-radius: 20px;
	position: relative;
	overflow: hidden;
	background-color: var(--placeholder);
}

.pl-ficha-hero__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.pl-ficha-items {
	padding: var(--gutter) var(--gutter) 40px;
}

.pl-ficha-items__titulo {
	font-size: clamp(24px, 2.6vw, 32px);
	font-weight: 800;
	letter-spacing: -0.025em;
	margin: 0 0 24px;
}

.pl-item {
	border: 1px solid var(--borde-card);
	border-radius: 16px;
	overflow: hidden;
}

.pl-item__media {
	height: 150px;
	background: var(--placeholder);
}

.pl-item__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.pl-item__media .plz-placeholder {
	min-height: 150px;
	font-size: 11px;
}

.pl-item__cuerpo {
	padding: 16px 18px 20px;
}

.pl-item__titulo {
	font-size: 17px;
	font-weight: 800;
	letter-spacing: -0.01em;
}

.pl-item__texto {
	font-size: 14.5px;
	color: var(--txt-sec);
	line-height: 1.5;
	margin-top: 6px;
}

.pl-marcas-familia {
	background: var(--fondo-alt);
	border-top: 1px solid var(--borde-seccion);
	border-bottom: 1px solid var(--borde-seccion);
	padding: 34px var(--gutter) 38px;
}

.pl-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 16px;
}

.pl-pill-marca {
	background: #fff;
	border: 1px solid var(--borde-input);
	border-radius: 999px;
	padding: 11px 18px;
	font-size: 15px;
	font-weight: 700;
	color: var(--txt);
	white-space: nowrap;
	transition: border-color 0.15s ease, color 0.15s ease;
}

.pl-pill-marca:hover {
	border-color: var(--rojo);
	color: var(--rojo);
}

.pl-cajas-ficha {
	padding: 34px var(--gutter) 64px;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	gap: 22px;
}

.pl-caja {
	border-radius: 18px;
	padding: 28px 30px;
}

.pl-caja--gris {
	background: var(--fondo-alt);
}

.pl-caja--negra {
	background: var(--carbon);
	color: #fff;
}

.pl-caja__titulo {
	font-size: 21px;
	font-weight: 800;
	letter-spacing: -0.015em;
}

.pl-caja p {
	font-size: 16px;
	line-height: 1.6;
	color: var(--txt-cuerpo);
	margin: 10px 0 0;
}

.pl-caja--negra p {
	color: var(--sobre-oscuro-2);
	margin-bottom: 16px;
}

/* Navegación anterior / siguiente */

.pl-nav-fichas {
	border-top: 1px solid var(--borde-seccion);
	padding: 30px var(--gutter) 64px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	flex-wrap: wrap;
}

.pl-nav-fichas__enlace {
	display: flex;
	flex-direction: column;
	gap: 4px;
	max-width: 45%;
}

.pl-nav-fichas__enlace--siguiente {
	align-items: flex-end;
	text-align: right;
}

.pl-nav-fichas__etiqueta {
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--txt-ter-2);
}

.pl-nav-fichas__titulo {
	font-size: 19px;
	font-weight: 800;
	letter-spacing: -0.015em;
	color: var(--txt);
}

.pl-nav-fichas__centro {
	font-size: 15.5px;
	font-weight: 700;
}

/* =========================================================================
   8. Nosotros
   ====================================================================== */

.pl-nosotros-hero {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
	gap: var(--gutter);
	padding: 64px var(--gutter);
	align-items: center;
}

.pl-nosotros-hero__titulo {
	font-size: clamp(32px, 4.6vw, 56px);
	line-height: 1.05;
	letter-spacing: -0.035em;
	margin: 16px 0 0;
}

.pl-nosotros-hero p {
	font-size: 19px;
	line-height: 1.65;
	color: var(--txt-cuerpo);
	margin: 18px 0 0;
	max-width: 560px;
	text-wrap: pretty;
}

.pl-nosotros-hero p + p {
	margin-top: 14px;
}

.pl-nosotros-hero img {
	width: 100%;
	height: 480px;
	object-fit: cover;
	border-radius: 20px;
	display: block;
}

.pl-valores {
	background: var(--fondo-alt);
	padding: var(--gutter);
	border-top: 1px solid var(--borde-seccion);
	border-bottom: 1px solid var(--borde-seccion);
}

.pl-valores h2,
.pl-hitos h2 {
	font-size: clamp(24px, 2.8vw, 34px);
	font-weight: 800;
	letter-spacing: -0.025em;
	margin: 0 0 28px;
}

.pl-valor {
	background: #fff;
	border: 1px solid var(--borde-card);
	border-radius: 18px;
	padding: 26px 28px;
}

.pl-valor__num {
	width: 40px;
	height: 40px;
	border-radius: 11px;
	background: var(--rojo-suave);
	color: var(--rojo);
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 800;
	font-size: 16px;
}

.pl-valor__titulo {
	font-size: 20px;
	font-weight: 800;
	letter-spacing: -0.015em;
	margin-top: 16px;
}

.pl-valor p {
	font-size: 15.5px;
	line-height: 1.6;
	color: var(--txt-sec);
	margin: 8px 0 0;
}

.pl-hitos {
	padding: 60px var(--gutter);
}

.pl-hitos h2 {
	margin-bottom: 30px;
}

.pl-hito {
	border-top: 3px solid var(--rojo);
	padding-top: 18px;
}

.pl-hito__dato {
	font-size: 26px;
	font-weight: 800;
	letter-spacing: -0.02em;
}

.pl-hito p {
	font-size: 15.5px;
	line-height: 1.6;
	color: var(--txt-sec);
	margin: 8px 0 0;
}

/* =========================================================================
   9. Marcas
   ====================================================================== */

.pl-marcas {
	padding: 48px var(--gutter) 70px;
}

.pl-grid--marcas {
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 20px;
}

.pl-marca {
	border: 1px solid var(--borde-card);
	border-radius: 16px;
	padding: 26px;
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.pl-marca__logo {
	height: 92px;
	display: flex;
	align-items: center;
	justify-content: flex-start;
}

.pl-marca__logo img {
	max-width: 100%;
	max-height: 92px;
	object-fit: contain;
	display: block;
}

.pl-marca__nombre {
	font-size: 17.5px;
	font-weight: 800;
	letter-spacing: -0.01em;
}

.pl-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: -6px 0 -2px;
}

.pl-chip {
	background: var(--rojo-suave);
	color: var(--rojo);
	border-radius: 999px;
	padding: 6px 12px;
	font-size: 13px;
	font-weight: 700;
	white-space: nowrap;
}

.pl-marca__desc {
	font-size: 14.5px;
	color: var(--txt-sec);
	line-height: 1.5;
}

.pl-caja-final {
	margin-top: 34px;
	background: var(--carbon);
	color: #fff;
	border-radius: 20px;
	padding: 34px 38px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 30px;
	flex-wrap: wrap;
}

.pl-caja-final__titulo {
	font-size: 26px;
	font-weight: 800;
	letter-spacing: -0.02em;
}

.pl-caja-final p {
	font-size: 16.5px;
	color: var(--sobre-oscuro-2);
	margin: 8px 0 0;
}

/* =========================================================================
   10. Exposición
   ====================================================================== */

.pl-expo-hero {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
	gap: 48px;
	padding: 60px var(--gutter) var(--gutter);
	align-items: center;
}

.pl-expo-hero__titulo {
	font-size: clamp(32px, 4.4vw, 54px);
	line-height: 1.05;
	letter-spacing: -0.035em;
	margin: 16px 0 0;
}

.pl-expo-hero p {
	font-size: 19px;
	line-height: 1.65;
	color: var(--txt-cuerpo);
	margin: 16px 0 0;
	max-width: 540px;
}

.pl-expo-hero .pl-botonera {
	margin-top: 28px;
}

.pl-expo-hero img {
	width: 100%;
	height: 440px;
	object-fit: cover;
	border-radius: 20px;
	display: block;
}

.pl-galeria {
	padding: 0 var(--gutter) var(--gutter);
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 16px;
}

.pl-galeria img {
	width: 100%;
	height: 260px;
	object-fit: cover;
	border-radius: 18px;
	display: block;
}

.pl-expo-datos {
	background: var(--fondo-alt);
	border-top: 1px solid var(--borde-seccion);
	padding: 48px var(--gutter) 64px;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 22px;
}

.pl-dato {
	background: #fff;
	border: 1px solid var(--borde-card);
	border-radius: 18px;
	padding: 26px;
}

.pl-dato__texto {
	font-size: 16.5px;
	line-height: 1.65;
	color: var(--txt-2);
	margin-top: 10px;
}

/* =========================================================================
   11. Contacto
   ====================================================================== */

.pl-contacto {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
	gap: 48px;
	padding: 48px var(--gutter) 72px;
}

.pl-contacto__datos {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 18px;
}

.pl-contacto__dato {
	border: 1px solid var(--borde-card);
	border-radius: 16px;
	padding: 20px 22px;
}

.pl-contacto__dato .pl-dato__texto {
	font-size: 16px;
	line-height: 1.6;
	margin-top: 8px;
}

.pl-mapa {
	height: 320px;
	border-radius: 20px;
	margin-top: 22px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	gap: 12px;
	align-items: center;
	justify-content: center;
	background: repeating-linear-gradient(135deg, #eeecea 0 10px, #f6f5f3 10px 20px);
	color: var(--txt-sec);
}

.pl-mapa iframe {
	width: 100%;
	height: 100%;
	border: 0;
	display: block;
}

.pl-mapa__nota {
	font-family: ui-monospace, monospace;
	font-size: 13px;
	color: #99958f;
	text-align: center;
	padding: 0 20px;
}

.pl-mapa__boton {
	background: var(--carbon);
	color: #fff;
	padding: 13px 22px;
	border-radius: 10px;
	font-size: 15px;
	font-weight: 700;
}

.pl-mapa__boton:hover {
	color: #fff;
}

/* Formulario */

.pl-form {
	border: 1px solid var(--borde-card);
	border-radius: 20px;
	padding: 30px 32px;
}

.pl-form__titulo {
	margin: 0;
	font-size: 26px;
	font-weight: 800;
	letter-spacing: -0.02em;
}

.pl-form__lead {
	font-size: 15.5px;
	color: var(--txt-sec);
	margin: 8px 0 22px;
}

.pl-form__campos {
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.pl-form__fila {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	gap: 14px;
}

.pl-form__label {
	display: block;
	font-size: 14px;
	font-weight: 700;
	color: var(--txt-3);
	margin-bottom: 6px;
}

.pl-form__input {
	width: 100%;
	border: 1px solid var(--borde-input);
	border-radius: 10px;
	padding: 14px;
	font-family: inherit;
	font-size: 15px;
	color: var(--txt);
	outline: none;
	background: #fff;
	transition: border-color 0.15s ease;
}

.pl-form__input:focus {
	border-color: var(--rojo);
}

textarea.pl-form__input {
	height: 120px;
	resize: vertical;
}

.pl-form__error {
	background: var(--rojo-suave);
	color: var(--rojo);
	border-radius: 10px;
	padding: 12px 14px;
	font-size: 14.5px;
	font-weight: 600;
}

.pl-form__enviar {
	background: var(--rojo);
	color: #fff;
	text-align: center;
	padding: 16px;
	border-radius: 12px;
	font-size: 16px;
	font-weight: 700;
	cursor: pointer;
	border: 0;
	width: 100%;
	transition: background 0.15s ease;
	font-family: inherit;
}

.pl-form__enviar:hover {
	background: var(--rojo-hover);
}

.pl-form__aviso {
	font-size: 13px;
	color: var(--txt-ter-2);
	line-height: 1.5;
}

.pl-form__ok {
	border: 1px solid var(--ok-borde);
	background: var(--ok-fondo);
	border-radius: 16px;
	padding: 28px;
}

.pl-form__ok-titulo {
	font-size: 20px;
	font-weight: 800;
	letter-spacing: -0.015em;
	color: var(--ok-txt);
}

.pl-form__ok p {
	font-size: 16px;
	line-height: 1.6;
	color: var(--ok-txt-2);
	margin: 10px 0 18px;
}

/* Trampa antispam: invisible para personas, presente para robots */
.pl-hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

/* =========================================================================
   12. Pie
   ====================================================================== */

.pl-footer {
	background: var(--carbon);
	color: var(--sobre-oscuro-1);
	padding: 62px var(--gutter) 32px;
}

.pl-footer__cols {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
	gap: 44px;
}

.pl-footer__logo {
	background: #fff;
	border-radius: 12px;
	padding: 12px 16px;
	display: inline-flex;
	align-self: flex-start;
}

.pl-footer__logo img {
	height: 46px;
	width: auto;
	display: block;
}

.pl-footer__desc {
	font-size: 15.5px;
	line-height: 1.65;
	color: var(--sobre-oscuro-3);
	margin: 18px 0 0;
	max-width: 320px;
}

.pl-footer__titulo {
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: #fff;
	margin-bottom: 10px;
}

.pl-footer__col {
	font-size: 15.5px;
	line-height: 2.05;
}

.pl-footer__col a {
	color: var(--sobre-oscuro-3);
	display: block;
}

.pl-footer__col a:hover {
	color: #fff;
}

.pl-footer__contacto {
	font-size: 15.5px;
	line-height: 1.85;
	color: var(--sobre-oscuro-3);
}

.pl-footer__contacto a {
	color: var(--sobre-oscuro-3);
}

.pl-footer__contacto a:hover {
	color: #fff;
}

.pl-footer__legal {
	border-top: 1px solid var(--oscuro-2);
	margin-top: 48px;
	padding-top: 22px;
	display: flex;
	justify-content: space-between;
	gap: 20px;
	flex-wrap: wrap;
	font-size: 13.5px;
	color: var(--sobre-oscuro-4);
}

.pl-footer__legal a {
	color: var(--sobre-oscuro-4);
}

.pl-footer__legal a:hover {
	color: #fff;
}

/* =========================================================================
   13. Ajustes finos en pantallas pequeñas
   ====================================================================== */

@media (max-width: 720px) {
	.pl-hero {
		padding-top: 44px;
		padding-bottom: 44px;
	}

	.pl-mosaico {
		grid-template-rows: 220px 150px;
	}

	.pl-familia {
		gap: 36px;
		padding: 56px var(--gutter);
	}

	.pl-familia__media {
		height: 300px;
	}

	.pl-servicio {
		padding: 24px var(--gutter);
		border-right: 0;
		border-bottom: 1px solid var(--borde-seccion);
	}

	.pl-servicios > .pl-servicio:last-child {
		border-bottom: 0;
	}

	.pl-cifras {
		gap: 26px;
	}

	.pl-sidebar {
		position: static;
		max-width: none;
		flex-basis: 100%;
	}

	.pl-listado {
		gap: 32px;
	}

	.pl-nosotros-hero img,
	.pl-expo-hero img {
		height: 320px;
	}

	.pl-form,
	.pl-caja-final {
		padding: 24px;
	}

	.pl-cta {
		padding: 48px var(--gutter);
	}
}

/* Impresión: que una ficha se pueda llevar a la obra en papel */
@media print {
	.pl-topbar,
	.pl-cabecera__acciones,
	.pl-movil,
	.pl-barra-movil,
	.pl-menu-movil,
	.pl-cta,
	.pl-nav-fichas {
		display: none !important;
	}

	body {
		font-size: 12pt;
	}
}

/* =========================================================================
   14. Páginas de texto (aviso legal, privacidad, cookies)
   ====================================================================== */

.pl-texto {
	max-width: 780px;
	font-size: 17px;
	line-height: 1.7;
	color: var(--txt-cuerpo);
}

.pl-texto h2 {
	font-size: clamp(22px, 2.4vw, 28px);
	letter-spacing: -0.02em;
	color: var(--txt);
	margin: 36px 0 12px;
}

.pl-texto h3 {
	font-size: 19px;
	color: var(--txt);
	margin: 26px 0 10px;
}

.pl-texto p {
	margin: 0 0 16px;
}

.pl-texto ul,
.pl-texto ol {
	margin: 0 0 16px;
	padding-left: 22px;
}

.pl-texto li {
	margin-bottom: 8px;
}

.pl-texto table {
	width: 100%;
	border-collapse: collapse;
	margin: 0 0 20px;
	font-size: 15.5px;
}

.pl-texto th,
.pl-texto td {
	border: 1px solid var(--borde-card);
	padding: 10px 12px;
	text-align: left;
}

.pl-texto th {
	background: var(--fondo-alt);
	font-weight: 700;
	color: var(--txt);
}

/* =========================================================================
   15. Selector de idioma
   ====================================================================== */

.pl-idiomas {
	display: flex;
	align-items: center;
	gap: 2px;
	flex: 0 0 auto;
}

.pl-idiomas .pl-idioma {
	display: inline-block;
	padding: 3px 7px;
	border-radius: 4px;
	color: var(--sobre-oscuro-3);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.04em;
	line-height: 1.2;
	text-decoration: none;
}

.pl-idiomas .pl-idioma:hover,
.pl-idiomas .pl-idioma:focus-visible {
	color: #ffffff;
	background: var(--oscuro-2);
}

.pl-idiomas .pl-idioma.is-activo {
	color: #ffffff;
	background: var(--rojo);
}

/* En el menú móvil se ve como una fila de pastillas grandes, porque ahí
   el selector de la barra negra queda fuera de alcance del pulgar. */

.pl-idiomas--movil {
	gap: 8px;
	margin-top: 18px;
	padding-top: 18px;
	border-top: 1px solid var(--oscuro-2);
}

.pl-idiomas--movil .pl-idioma {
	padding: 10px 16px;
	border: 1px solid var(--borde-card);
	border-radius: 999px;
	font-size: 14px;
	/* Sobre el fondo claro del menú, el gris de la barra negra no tendría
	   contraste suficiente. */
	color: var(--txt-2);
}

.pl-idiomas--movil .pl-idioma:hover,
.pl-idiomas--movil .pl-idioma:focus-visible {
	background: var(--fondo-alt);
	border-color: var(--rojo);
	color: var(--rojo);
}

.pl-idiomas--movil .pl-idioma.is-activo {
	background: var(--rojo);
	border-color: var(--rojo);
	color: #ffffff;
}

@media (max-width: 900px) {
	.pl-topbar .pl-idiomas {
		display: none;
	}
}

@media print {
	.pl-idiomas {
		display: none !important;
	}
}
