/*
Theme Name:   Probado en Campo
Theme URI:    https://probadoencampo.com
Description:  Tema hijo de GeneratePress para probadoencampo.com. Guías de compra de EPP, herramienta de ascenso e instrumentación de fibra para técnicos de altura y telecom. Solo apariencia: la lógica de afiliación vive en el plugin olacomercio-core.
Author:       Arrsoft
Template:     generatepress
Version:      2.0.0
License:      GNU General Public License v2 or later
Text Domain:  probadoencampo
*/

/* ====================================================================
   SISTEMA VISUAL — "Torre al amanecer"

   Tres materiales, tres trabajos. No son intercambiables:

   ACERO    azul pizarra de galvanizado. Es la estructura: header, hero,
            footer. Todo lo que sostiene, no lo que se lee.
   ALTA VIS amarillo de chaleco reflectivo. Es la atención: etiquetas,
            cintas, el dato que no puedes pasar por alto. SOLO sobre
            acero o como bloque sólido con tinta encima — sobre blanco
            tiene 1.2:1 de contraste y es ilegible.
   NARANJA  naranja de seguridad. Es la acción, y nada más: si un
            elemento no se puede clicar, no lleva naranja.

   El cuerpo del artículo vive sobre papel blanco. Este es un sitio que
   se lee, y se lee largo: la lectura gana sobre el efecto.
   ==================================================================== */

/* ====================================================================
   1 · TIPOGRAFÍA
   Archivo  — grotesca de señalética industrial, ancho 87%. Titulares.
   Source Serif 4 — cuerpo. La seriedad editorial que un sitio de
                    afiliados normalmente no tiene.
   IBM Plex Mono  — el dato: kN, dBm, specs, la placa troquelada.
   ==================================================================== */

:root {
	--pc-tipo-display: "Archivo", "Helvetica Neue", Arial, sans-serif;
	--pc-tipo-texto:   "Source Serif 4", Georgia, "Times New Roman", serif;
	--pc-tipo-dato:    "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;
	--pc-tipo-ui:      "Archivo", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

/* ====================================================================
   2 · TOKENS — cambia aquí y cambia todo el sitio
   ==================================================================== */

:root {
	/* Acero — la estructura */
	--pc-acero-900: #0A1219;
	--pc-acero-800: #101A22;
	--pc-acero-700: #17242E;
	--pc-acero-600: #21323E;
	--pc-acero-500: #334754;
	--pc-acero-300: #8FA0AD;
	--pc-acero-200: #B9C6D0;

	/* Alta visibilidad — la atención */
	--pc-hivis:       #D8F531;
	--pc-hivis-hondo: #A9C21F;

	/* Naranja de seguridad — la acción */
	--pc-naranja:        #C4400F;
	--pc-naranja-vivo:   #F2600F;
	--pc-naranja-hondo:  #97300A;

	/* Papel — la lectura */
	--pc-papel:   #FFFFFF;
	--pc-papel-2: #F3F6F7;
	--pc-papel-3: #E8EDF0;
	--pc-tinta:   #101820;
	--pc-texto:   #2B353E;
	--pc-suave:   #5C6874;
	--pc-borde:   #DCE3E7;

	/* Veredicto */
	--pc-verde: #0F6B4F;
	--pc-rojo:  #B3261E;

	/* Medidas */
	--pc-radio:       10px;
	--pc-radio-sm:    6px;
	--pc-contenedor:  1220px;
	--pc-lectura:     720px;
	--pc-canal:       clamp(18px, 5vw, 40px);
	--pc-alto-header: 76px;

	--pc-sombra-sm: 0 1px 2px rgba(16, 26, 34, .06), 0 2px 8px rgba(16, 26, 34, .05);
	--pc-sombra:    0 4px 12px rgba(16, 26, 34, .07), 0 12px 32px rgba(16, 26, 34, .07);
	--pc-sombra-lg: 0 18px 50px rgba(10, 18, 25, .28);

	/* El isotipo hereda de aquí */
	--pc-logo-acento: var(--pc-hivis);
}

/* Los componentes del plugin heredan la paleta del tema. Así el botón
   [oc_boton] de un artículo se ve igual que el botón de una plantilla. */
.oc-btn,
.oc-ficha,
.oc-tabla,
.oc-aviso {
	--oc-acento:       var(--pc-naranja);
	--oc-acento-hover: var(--pc-naranja-hondo);
	--oc-borde:        var(--pc-borde);
	--oc-texto-suave:  var(--pc-suave);
	--oc-radio:        var(--pc-radio-sm);
}

/* ====================================================================
   3 · BASE
   ==================================================================== */

/* Modelo de caja propio. El tema lo heredaba de GeneratePress, pero desde
   que este hijo sustituye cabecera y pie no puede depender del padre para
   algo tan básico: sin esto, .pc-contenedor suma su relleno al 100 % de
   ancho y todo el sitio se desborda 48 px en móvil. */
*,
*::before,
*::after { box-sizing: border-box; }

/* El cajón móvil vive fuera de la pantalla, a la derecha. Sin esto ensancha
   el documento y toda la web se desplaza en horizontal en el teléfono.
   Se usa `clip` y no `hidden` a propósito: `hidden` convertiría a <html> en
   contenedor de scroll y rompería la cabecera pegajosa. */
html { overflow-x: clip; }

body {
	margin: 0;
	font-family: var(--pc-tipo-texto);
	color: var(--pc-texto);
	background: var(--pc-papel);
	-webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6,
.pc-display {
	font-family: var(--pc-tipo-display);
	font-stretch: 87%;
	font-weight: 700;
	letter-spacing: -.018em;
	color: var(--pc-tinta);
	line-height: 1.12;
	text-wrap: balance;
}

a { color: var(--pc-naranja); }
a:hover { color: var(--pc-naranja-hondo); }

/* Foco visible siempre. Un técnico con guantes navega con teclado. */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 3px solid var(--pc-naranja-vivo);
	outline-offset: 2px;
	border-radius: 3px;
}
.pc-oscuro :where(a, button, [tabindex]):focus-visible {
	outline-color: var(--pc-hivis);
}

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%);
	white-space: nowrap; border: 0;
}

/* ====================================================================
   4 · UTILIDADES
   ==================================================================== */

.pc-contenedor {
	width: 100%;
	max-width: var(--pc-contenedor);
	margin-inline: auto;
	padding-inline: var(--pc-canal);
}

.pc-lectura { max-width: var(--pc-lectura); margin-inline: auto; }

/* Etiqueta de dato: la voz de la placa troquelada. */
.pc-etiqueta {
	font-family: var(--pc-tipo-dato);
	font-size: .715rem;
	font-weight: 600;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--pc-suave);
	display: block;
	margin: 0 0 .85rem;
}
.pc-oscuro .pc-etiqueta { color: var(--pc-hivis); }

/* Cinta de peligro. Dos veces por página como máximo: cierra el hero y
   abre el footer. Más que eso y deja de significar nada. */
.pc-cinta {
	height: 7px;
	border: 0;
	margin: 0;
	background: repeating-linear-gradient(
		115deg,
		var(--pc-hivis) 0 13px,
		var(--pc-acero-900) 13px 26px
	);
}

.pc-oscuro {
	background: var(--pc-acero-800);
	color: var(--pc-acero-200);
}
.pc-oscuro :is(h1, h2, h3, h4) { color: #fff; }

/* ====================================================================
   5 · BOTONES
   ==================================================================== */

.oc-btn,
.pc-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .5em;
	font-family: var(--pc-tipo-ui);
	font-stretch: 92%;
	font-weight: 650;
	font-size: .95rem;
	letter-spacing: -.005em;
	line-height: 1.15;
	padding: 13px 22px;
	border: 2px solid transparent;
	border-radius: var(--pc-radio-sm);
	text-decoration: none;
	text-align: center;
	cursor: pointer;
	transition: background-color .16s ease, border-color .16s ease, color .16s ease, transform .16s ease;
}
.oc-btn:active, .pc-btn:active { transform: translateY(1px); }

.oc-btn--primario, .pc-btn--primario {
	background: var(--pc-naranja);
	border-color: var(--pc-naranja);
	color: #fff;
}
.oc-btn--primario:hover, .pc-btn--primario:hover {
	background: var(--pc-naranja-hondo);
	border-color: var(--pc-naranja-hondo);
	color: #fff;
}

.oc-btn--secundario, .pc-btn--secundario {
	background: transparent;
	border-color: var(--pc-borde);
	color: var(--pc-tinta);
}
.oc-btn--secundario:hover, .pc-btn--secundario:hover {
	border-color: var(--pc-tinta);
	background: var(--pc-papel-2);
	color: var(--pc-tinta);
}

/* Sobre acero, el botón secundario invierte su contraste.
   La lista es explícita a propósito: son todos los bloques con fondo
   oscuro del sitio. Si añades uno nuevo, añádelo también aquí. */
:is(.pc-oscuro, .pc-hero, .pc-footer, .pc-lista, .pc-cabecera-pagina, .pc-banner, .pc-mega, .pc-cajon, .pc-header)
	:is(.oc-btn--secundario, .pc-btn--secundario) {
	border-color: var(--pc-acero-600);
	color: #fff;
	background: transparent;
}
:is(.pc-oscuro, .pc-hero, .pc-footer, .pc-lista, .pc-cabecera-pagina, .pc-banner, .pc-mega, .pc-cajon, .pc-header)
	:is(.oc-btn--secundario, .pc-btn--secundario):hover {
	border-color: var(--pc-hivis);
	background: transparent;
	color: var(--pc-hivis);
}
/* El banner claro es la excepción: fondo de papel dentro de la lista. */
.pc-banner--papel :is(.oc-btn--secundario, .pc-btn--secundario) {
	border-color: var(--pc-borde);
	color: var(--pc-tinta);
}

/* Bloque de alta visibilidad: tinta sobre amarillo. El único uso legítimo
   del hi-vis como fondo. */
.pc-btn--vivo {
	background: var(--pc-hivis);
	border-color: var(--pc-hivis);
	color: var(--pc-acero-900);
}
.pc-btn--vivo:hover {
	background: var(--pc-hivis-hondo);
	border-color: var(--pc-hivis-hondo);
	color: var(--pc-acero-900);
}

.oc-btn--sm, .pc-btn--sm { padding: 9px 15px; font-size: .85rem; }
.pc-btn--bloque { width: 100%; }

/* Flecha que avanza al pasar el cursor: el único gesto animado del sistema. */
.pc-btn .pc-flecha { transition: transform .18s ease; }
.pc-btn:hover .pc-flecha { transform: translateX(3px); }

/* ====================================================================
   6 · CABECERA
   ==================================================================== */

.pc-header {
	position: sticky;
	top: 0;
	z-index: 900;
	background: var(--pc-acero-800);
	color: var(--pc-acero-200);
}

/* Barra superior: quién es el público y de qué vive el sitio. Se dice
   arriba del todo, no escondido en una página legal. */
.pc-barra-superior {
	background: var(--pc-acero-900);
	font-family: var(--pc-tipo-dato);
	font-size: .705rem;
	letter-spacing: .06em;
	text-transform: uppercase;
	border-bottom: 1px solid rgba(255, 255, 255, .06);
}
.pc-barra-superior__interior {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	min-height: 34px;
	padding-block: 7px;
}
.pc-barra-superior p { margin: 0; color: var(--pc-acero-300); }
.pc-barra-superior strong { color: var(--pc-hivis); font-weight: 600; }
.pc-barra-superior a { color: var(--pc-acero-200); text-decoration: underline; text-underline-offset: 3px; }
.pc-barra-superior a:hover { color: var(--pc-hivis); }

.pc-header__principal { border-bottom: 1px solid rgba(255, 255, 255, .08); }
.pc-header__interior {
	display: flex;
	align-items: center;
	gap: 28px;
	min-height: var(--pc-alto-header);
	transition: min-height .2s ease;
}

/* Al bajar, la cabecera se comprime y se apoya en una sombra. */
.pc-header.esta-desplazado { --pc-alto-header: 62px; }
.pc-header.esta-desplazado .pc-barra-superior { display: none; }
.pc-header.esta-desplazado { box-shadow: 0 6px 24px rgba(10, 18, 25, .35); }

/* ---- Marca ------------------------------------------------------- */

.pc-marca { margin: 0; flex: 0 0 auto; font-size: inherit; }
.pc-marca__enlace {
	display: inline-flex;
	align-items: center;
	gap: 11px;
	text-decoration: none;
	color: #fff;
}
.pc-marca__vivo { fill: var(--pc-logo-acento); }
.pc-marca__signo { display: block; transition: height .2s ease; }
.pc-marca__palabra {
	display: flex;
	flex-direction: column;
	font-family: var(--pc-tipo-display);
	font-stretch: 80%;
	line-height: .95;
	text-transform: uppercase;
}
.pc-marca__linea1 { font-weight: 400; font-size: .96rem; letter-spacing: .07em; color: var(--pc-acero-200); }
.pc-marca__linea2 { font-weight: 700; font-size: 1.28rem; letter-spacing: .005em; color: #fff; }
.pc-header.esta-desplazado .pc-marca__signo { height: 28px; width: 40px; }

/* Sobre papel (footer claro, página de impresión) la marca se invierte. */
.pc-claro .pc-marca__enlace { color: var(--pc-tinta); }
.pc-claro .pc-marca__linea1 { color: var(--pc-suave); }
.pc-claro .pc-marca__linea2 { color: var(--pc-tinta); }

/* ====================================================================
   7 · NAVEGACIÓN Y MEGA MENÚ
   ==================================================================== */

.pc-nav { flex: 1 1 auto; }
.pc-nav__lista {
	display: flex;
	align-items: center;
	gap: 2px;
	list-style: none;
	margin: 0;
	padding: 0;
}
.pc-nav__item { position: relative; }

.pc-nav__enlace {
	/* La cinta de página activa se posiciona contra el propio enlace. Sin
	   esto, en el elemento del mega menú (que es position:static) se
	   estiraba a todo el ancho de la cabecera. */
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 10px 13px;
	font-family: var(--pc-tipo-ui);
	font-stretch: 92%;
	font-size: .935rem;
	font-weight: 550;
	color: var(--pc-acero-200);
	text-decoration: none;
	background: none;
	border: 0;
	border-radius: var(--pc-radio-sm);
	cursor: pointer;
	white-space: nowrap;
	transition: color .14s ease, background-color .14s ease;
}
.pc-nav__enlace:hover,
.pc-nav__enlace[aria-expanded="true"] { color: #fff; background: rgba(255, 255, 255, .07); }

/* La página actual se marca con la cinta de alta visibilidad, no con color
   de texto: sobrevive a cualquier cambio de paleta. */
.pc-nav__item.esta-activo > .pc-nav__enlace { color: #fff; }
.pc-nav__item.esta-activo > .pc-nav__enlace::after {
	content: "";
	position: absolute;
	left: 13px; right: 13px; bottom: -1px;
	height: 3px;
	background: var(--pc-hivis);
	border-radius: 2px 2px 0 0;
}

.pc-nav__chevron { transition: transform .18s ease; flex: 0 0 auto; }
.pc-nav__enlace[aria-expanded="true"] .pc-nav__chevron { transform: rotate(180deg); }

/* ---- Panel del mega menú ----------------------------------------- */

/* El panel es de ancho completo, no un globo colgando del elemento del
   menú: por eso el <li> que lo contiene deja de ser el origen de
   coordenadas y el panel se mide contra la cabecera entera. */
.pc-header__principal { position: relative; }
.pc-nav__item--mega { position: static; }

.pc-mega {
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	transform: translateY(-6px);
	background: var(--pc-acero-700);
	border-top: 3px solid var(--pc-hivis);
	border-bottom: 1px solid var(--pc-acero-600);
	box-shadow: var(--pc-sombra-lg);
	padding: 30px 0 26px;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity .16s ease, transform .16s ease, visibility .16s;
}
.pc-nav__item.esta-abierto > .pc-mega {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: translateY(0);
}

/* El contenido del panel respeta la misma medida que el resto del sitio. */
.pc-mega__interior {
	width: 100%;
	max-width: var(--pc-contenedor);
	margin-inline: auto;
	padding-inline: var(--pc-canal);
}

.pc-mega__rejilla { display: flex; gap: 38px; align-items: flex-start; }
.pc-mega__cols {
	flex: 1 1 auto;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
	gap: 26px 30px;
}
.pc-mega__col { min-width: 0; }

.pc-mega__titulo {
	display: flex;
	align-items: baseline;
	gap: 8px;
	margin: 0 0 4px;
	font-size: .98rem;
	font-weight: 700;
	color: #fff;
}
.pc-mega__titulo a { color: #fff; text-decoration: none; }
.pc-mega__titulo a:hover { color: var(--pc-hivis); }
.pc-mega__cuenta {
	font-family: var(--pc-tipo-dato);
	font-size: .66rem;
	font-weight: 500;
	color: var(--pc-acero-300);
	letter-spacing: .05em;
	white-space: nowrap;
	margin-left: auto;
}
.pc-mega__desc {
	margin: 0 0 12px;
	font-size: .845rem;
	line-height: 1.45;
	color: var(--pc-acero-300);
}

.pc-mega__lista { list-style: none; margin: 0; padding: 0; }
.pc-mega__lista li + li { margin-top: 1px; }
.pc-mega__lista a {
	display: block;
	padding: 5px 8px 5px 0;
	font-family: var(--pc-tipo-ui);
	font-size: .875rem;
	color: var(--pc-acero-200);
	text-decoration: none;
	border-radius: 4px;
	transition: color .13s ease, padding-left .13s ease;
}
.pc-mega__lista a:hover { color: var(--pc-hivis); padding-left: 6px; }

/* Columna destacada: un producto o una guía concreta, no un banner vacío. */
.pc-mega__destacado {
	flex: 0 0 288px;
	background: var(--pc-acero-800);
	border: 1px solid var(--pc-acero-600);
	border-radius: var(--pc-radio-sm);
	padding: 18px;
	text-decoration: none;
	display: block;
	transition: border-color .15s ease;
}
.pc-mega__destacado:hover { border-color: var(--pc-hivis); }
.pc-mega__destacado img {
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: contain;
	background: #fff;
	border-radius: 4px;
	margin-bottom: 12px;
}
.pc-mega__destacado-etiqueta {
	font-family: var(--pc-tipo-dato);
	font-size: .66rem;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--pc-hivis);
	display: block;
	margin-bottom: 6px;
}
.pc-mega__destacado-titulo {
	font-family: var(--pc-tipo-display);
	font-stretch: 87%;
	font-weight: 650;
	font-size: 1rem;
	line-height: 1.25;
	color: #fff;
	margin: 0 0 6px;
}
.pc-mega__destacado-nota { font-size: .82rem; color: var(--pc-acero-300); margin: 0; line-height: 1.45; }

/* Pie del panel: el atajo que la gente busca de verdad. */
.pc-mega__pie {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 22px;
	margin-top: 24px;
	padding-top: 16px;
	border-top: 1px solid var(--pc-acero-600);
	font-family: var(--pc-tipo-dato);
	font-size: .73rem;
	letter-spacing: .05em;
	text-transform: uppercase;
	color: var(--pc-acero-300);
}
.pc-mega__pie a { color: var(--pc-hivis); text-decoration: none; }
.pc-mega__pie a:hover { text-decoration: underline; text-underline-offset: 3px; }

/* ---- Submenú simple (items sin mega) ------------------------------ */

.pc-submenu {
	position: absolute;
	top: calc(100% + 1px);
	left: 0;
	min-width: 230px;
	list-style: none;
	margin: 0;
	padding: 8px;
	background: var(--pc-acero-700);
	border: 1px solid var(--pc-acero-600);
	border-top: 3px solid var(--pc-hivis);
	border-radius: 0 0 var(--pc-radio-sm) var(--pc-radio-sm);
	box-shadow: var(--pc-sombra-lg);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transform: translateY(-6px);
	transition: opacity .16s ease, transform .16s ease, visibility .16s;
}
.pc-nav__item.esta-abierto > .pc-submenu {
	opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0);
}
.pc-submenu a {
	display: block;
	padding: 8px 12px;
	font-family: var(--pc-tipo-ui);
	font-size: .875rem;
	color: var(--pc-acero-200);
	text-decoration: none;
	border-radius: 4px;
}
.pc-submenu a:hover { background: var(--pc-acero-600); color: #fff; }

/* ====================================================================
   8 · ACCIONES DE CABECERA Y BUSCADOR
   ==================================================================== */

.pc-header__acciones { display: flex; align-items: center; gap: 10px; margin-left: auto; flex: 0 0 auto; }

.pc-icono-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px; height: 40px;
	background: none;
	border: 1px solid var(--pc-acero-600);
	border-radius: var(--pc-radio-sm);
	color: var(--pc-acero-200);
	cursor: pointer;
	transition: border-color .15s ease, color .15s ease;
}
.pc-icono-btn:hover { border-color: var(--pc-hivis); color: var(--pc-hivis); }

/* Panel de búsqueda desplegable */
.pc-buscador-panel {
	display: none;
	background: var(--pc-acero-900);
	border-bottom: 1px solid var(--pc-acero-600);
	padding: 18px 0;
}
.pc-buscador-panel.esta-abierto { display: block; }
.pc-busca { display: flex; gap: 8px; }
.pc-busca__campo {
	flex: 1;
	min-width: 0;
	background: var(--pc-papel);
	border: 1px solid var(--pc-borde);
	border-radius: var(--pc-radio-sm);
	padding: 13px 16px;
	color: var(--pc-tinta);
	font-family: var(--pc-tipo-ui);
	font-size: 1rem;
}
.pc-busca__campo::placeholder { color: var(--pc-suave); }
.pc-busca__campo:focus { border-color: var(--pc-naranja); }

/* Sobre acero, el campo se invierte. */
:is(.pc-buscador-panel, .pc-cajon, .pc-lista) .pc-busca__campo {
	background: var(--pc-acero-700);
	border-color: var(--pc-acero-600);
	color: #fff;
}
:is(.pc-buscador-panel, .pc-cajon, .pc-lista) .pc-busca__campo::placeholder { color: var(--pc-acero-300); }
:is(.pc-buscador-panel, .pc-cajon, .pc-lista) .pc-busca__campo:focus { border-color: var(--pc-hivis); outline-offset: 0; }

/* ---- Hamburguesa -------------------------------------------------- */

.pc-hamburguesa { display: none; }
.pc-hamburguesa__barras { display: block; width: 19px; height: 12px; position: relative; }
.pc-hamburguesa__barras::before,
.pc-hamburguesa__barras::after,
.pc-hamburguesa__barras span {
	content: "";
	position: absolute;
	left: 0; right: 0;
	height: 2px;
	background: currentColor;
	border-radius: 2px;
	transition: transform .2s ease, opacity .2s ease;
}
.pc-hamburguesa__barras::before { top: 0; }
.pc-hamburguesa__barras span { top: 5px; }
.pc-hamburguesa__barras::after { top: 10px; }
.pc-hamburguesa[aria-expanded="true"] .pc-hamburguesa__barras::before { transform: translateY(5px) rotate(45deg); }
.pc-hamburguesa[aria-expanded="true"] .pc-hamburguesa__barras span { opacity: 0; }
.pc-hamburguesa[aria-expanded="true"] .pc-hamburguesa__barras::after { transform: translateY(-5px) rotate(-45deg); }

/* ====================================================================
   9 · MENÚ MÓVIL (cajón lateral)
   ==================================================================== */

.pc-cajon {
	position: fixed;
	inset: 0 0 0 auto;
	width: min(400px, 90vw);
	background: var(--pc-acero-800);
	border-left: 1px solid var(--pc-acero-600);
	z-index: 1000;
	transform: translateX(100%);
	visibility: hidden;
	transition: transform .26s cubic-bezier(.4, 0, .2, 1), visibility .26s;
	overflow-y: auto;
	overscroll-behavior: contain;
	display: flex;
	flex-direction: column;
}
.pc-cajon.esta-abierto { transform: translateX(0); visibility: visible; }

.pc-cajon__velo {
	position: fixed;
	inset: 0;
	background: rgba(10, 18, 25, .6);
	backdrop-filter: blur(2px);
	z-index: 999;
	opacity: 0;
	visibility: hidden;
	transition: opacity .26s ease, visibility .26s;
}
.pc-cajon__velo.esta-abierto { opacity: 1; visibility: visible; }

.pc-cajon__cabecera {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 16px 20px;
	border-bottom: 1px solid var(--pc-acero-600);
	position: sticky;
	top: 0;
	background: var(--pc-acero-800);
	z-index: 1;
}
.pc-cajon__cuerpo { padding: 8px 12px 28px; flex: 1; }
.pc-cajon__pie {
	padding: 20px;
	border-top: 1px solid var(--pc-acero-600);
	background: var(--pc-acero-900);
}

.pc-cajon__lista { list-style: none; margin: 0; padding: 0; }
.pc-cajon__fila { border-bottom: 1px solid rgba(255, 255, 255, .06); }
.pc-cajon__enlace {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	width: 100%;
	padding: 15px 10px;
	font-family: var(--pc-tipo-display);
	font-stretch: 87%;
	font-size: 1.06rem;
	font-weight: 600;
	color: #fff;
	text-decoration: none;
	background: none;
	border: 0;
	text-align: left;
	cursor: pointer;
}
.pc-cajon__enlace .pc-nav__chevron { color: var(--pc-hivis); }
.pc-cajon__sub {
	list-style: none;
	margin: 0 0 10px;
	padding: 0 10px 4px 16px;
	border-left: 2px solid var(--pc-acero-600);
	display: none;
}
.pc-cajon__fila.esta-abierto > .pc-cajon__sub { display: block; }
.pc-cajon__sub a {
	display: block;
	padding: 9px 4px;
	font-family: var(--pc-tipo-ui);
	font-size: .9rem;
	color: var(--pc-acero-200);
	text-decoration: none;
}
.pc-cajon__sub a:hover { color: var(--pc-hivis); }
.pc-cajon__sub-titulo {
	font-family: var(--pc-tipo-dato);
	font-size: .68rem;
	letter-spacing: .13em;
	text-transform: uppercase;
	color: var(--pc-hivis);
	margin: 12px 4px 2px;
	display: block;
}

/* ====================================================================
   10 · SECCIONES DE PÁGINA
   ==================================================================== */

.pc-seccion { padding-block: clamp(56px, 8vw, 92px); }
.pc-seccion--ajustada { padding-block: clamp(40px, 6vw, 64px); }
.pc-seccion + .pc-seccion { padding-top: 0; }
.pc-seccion.pc-oscuro + .pc-seccion { padding-top: clamp(56px, 8vw, 92px); }

.pc-seccion__cabecera { max-width: 640px; margin-bottom: clamp(28px, 4vw, 44px); }
.pc-seccion__cabecera--ancha { max-width: none; display: flex; align-items: flex-end; justify-content: space-between; gap: 28px; flex-wrap: wrap; }
.pc-seccion__titulo { font-size: clamp(1.6rem, 3.2vw, 2.15rem); margin: 0 0 10px; }
.pc-seccion__sub { margin: 0; font-size: 1.04rem; line-height: 1.6; color: var(--pc-suave); max-width: 58ch; }
.pc-oscuro .pc-seccion__sub { color: var(--pc-acero-300); }

/* ====================================================================
   11 · HERO
   ==================================================================== */

.pc-hero {
	background:
		radial-gradient(120% 90% at 88% 0%, rgba(216, 245, 49, .07) 0%, transparent 55%),
		linear-gradient(180deg, var(--pc-acero-800) 0%, var(--pc-acero-900) 100%);
	color: var(--pc-acero-200);
	position: relative;
}
.pc-hero__rejilla {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr);
	gap: clamp(36px, 6vw, 72px);
	align-items: center;
	padding-block: clamp(48px, 7vw, 84px);
}

.pc-hero__eyebrow {
	font-family: var(--pc-tipo-dato);
	font-size: .72rem;
	font-weight: 600;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--pc-hivis);
	display: block;
	margin: 0 0 20px;
}

.pc-hero__titulo {
	font-size: clamp(2.05rem, 5.2vw, 3.5rem);
	line-height: 1.06;
	letter-spacing: -.028em;
	color: #fff;
	margin: 0 0 20px;
	max-width: 17ch;
}
/* La palabra que carga el argumento va subrayada como con marcador de
   obra: trazo de alta visibilidad debajo del texto, sin taparlo. */
.pc-hero__titulo em {
	font-style: normal;
	text-decoration: underline;
	text-decoration-color: var(--pc-hivis);
	text-decoration-thickness: .075em;
	text-underline-offset: .13em;
	text-decoration-skip-ink: none;
}

.pc-hero__sub {
	font-size: clamp(1.03rem, 1.6vw, 1.17rem);
	line-height: 1.62;
	color: var(--pc-acero-200);
	max-width: 52ch;
	margin: 0 0 28px;
}

.pc-hero__acciones { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 26px; }

.pc-hero__aviso { max-width: 56ch; }
.pc-hero__aviso .oc-aviso {
	margin: 0;
	background: rgba(255, 255, 255, .045);
	border: 1px solid var(--pc-acero-600);
	border-left: 3px solid var(--pc-hivis);
	color: var(--pc-acero-300);
	font-size: .845rem;
	line-height: 1.55;
	padding: 11px 15px;
	border-radius: var(--pc-radio-sm);
}

/* ====================================================================
   12 · PLACA DE DATOS — el elemento firma
   Todo EPP de altura lleva una placa troquelada con su norma, su carga
   nominal y su fecha. Aquí el sitio publica la suya: cómo se prueba,
   quién paga el equipo y qué se reporta. Es la promesa, hecha objeto.
   ==================================================================== */

.pc-placa {
	position: relative;
	border-radius: 9px;
	padding: 24px 26px 20px;
	font-family: var(--pc-tipo-dato);
	border: 1px solid var(--pc-acero-600);
	background:
		radial-gradient(circle at 15px 15px,            rgba(0,0,0,.5) 0 3.2px, transparent 3.6px),
		radial-gradient(circle at calc(100% - 15px) 15px, rgba(0,0,0,.5) 0 3.2px, transparent 3.6px),
		radial-gradient(circle at 15px calc(100% - 15px), rgba(0,0,0,.5) 0 3.2px, transparent 3.6px),
		radial-gradient(circle at calc(100% - 15px) calc(100% - 15px), rgba(0,0,0,.5) 0 3.2px, transparent 3.6px),
		linear-gradient(155deg, #2A3D4C 0%, #1D2C36 42%, #16232C 100%);
	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, .1),
		inset 0 -1px 0 rgba(0, 0, 0, .35),
		var(--pc-sombra-lg);
}

.pc-placa__cabecera {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 14px;
	padding-bottom: 14px;
	margin-bottom: 4px;
	border-bottom: 1px solid rgba(255, 255, 255, .13);
}
.pc-placa__titulo {
	font-family: var(--pc-tipo-dato);
	font-size: .78rem;
	font-weight: 600;
	letter-spacing: .13em;
	text-transform: uppercase;
	color: #fff;
	margin: 0 0 5px;
	line-height: 1.35;
}
.pc-placa__rev {
	font-size: .655rem;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--pc-acero-300);
	margin: 0;
}
/* Troquel de alta visibilidad en la esquina: el sello de la placa. */
.pc-placa__sello {
	flex: 0 0 auto;
	font-size: .6rem;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--pc-acero-900);
	background: var(--pc-hivis);
	padding: 5px 9px;
	border-radius: 3px;
	transform: rotate(-1.5deg);
}

.pc-placa__filas { margin: 0; }
.pc-placa__fila {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 10px;
	align-items: baseline;
	padding: 11px 0;
	border-bottom: 1px dashed rgba(255, 255, 255, .1);
}
.pc-placa__fila:last-child { border-bottom: 0; padding-bottom: 4px; }
.pc-placa__clave {
	font-size: .68rem;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--pc-acero-300);
}
.pc-placa__valor {
	font-size: .81rem;
	font-weight: 500;
	color: #fff;
	text-align: right;
}
.pc-placa__valor--no { color: var(--pc-hivis); }

.pc-placa__pie {
	margin: 14px 0 0;
	padding-top: 12px;
	border-top: 1px solid rgba(255, 255, 255, .13);
	font-size: .68rem;
	line-height: 1.5;
	color: var(--pc-acero-300);
	letter-spacing: .02em;
}

/* ====================================================================
   13 · VERTICALES — las cuatro decisiones del sitio
   Cada tarjeta muestra la norma que gobierna esa categoría. No es
   adorno: es el dato por el que un técnico elige, y el que ningún
   sitio traducido del inglés se molesta en poner.
   ==================================================================== */

.pc-verticales {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(248px, 1fr));
	gap: 18px;
}

.pc-vertical {
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 26px 24px 22px;
	background: var(--pc-papel);
	border: 1px solid var(--pc-borde);
	border-radius: var(--pc-radio);
	text-decoration: none;
	color: var(--pc-tinta);
	position: relative;
	overflow: hidden;
	transition: border-color .18s ease, transform .18s ease, box-shadow .18s ease;
}
.pc-vertical::before {
	content: "";
	position: absolute;
	inset: 0 auto 0 0;
	width: 4px;
	background: var(--pc-acero-600);
	transition: background-color .18s ease;
}
.pc-vertical:hover {
	border-color: var(--pc-acero-600);
	transform: translateY(-3px);
	box-shadow: var(--pc-sombra);
	color: var(--pc-tinta);
}
.pc-vertical:hover::before { background: var(--pc-naranja); }

.pc-vertical__icono { color: var(--pc-acero-500); margin-bottom: 4px; display: block; }
.pc-vertical:hover .pc-vertical__icono { color: var(--pc-naranja); }
.pc-vertical__nombre { font-family: var(--pc-tipo-display); font-stretch: 87%; font-size: 1.16rem; font-weight: 700; line-height: 1.2; }
.pc-vertical__desc { font-size: .93rem; line-height: 1.55; color: var(--pc-suave); flex: 1; margin: 0; }
.pc-vertical__norma {
	font-family: var(--pc-tipo-dato);
	font-size: .66rem;
	letter-spacing: .09em;
	text-transform: uppercase;
	color: var(--pc-suave);
	padding-top: 12px;
	margin-top: 4px;
	border-top: 1px dashed var(--pc-borde);
	display: flex;
	justify-content: space-between;
	gap: 10px;
}
.pc-vertical__ir { color: var(--pc-naranja); font-weight: 600; }

/* ====================================================================
   14 · CARRUSEL — scroll-snap, sin librerías
   ==================================================================== */

.pc-carrusel { position: relative; }
.pc-carrusel__pista {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: minmax(258px, 1fr);
	gap: 20px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-padding-inline: var(--pc-canal);
	padding: 4px 4px 20px;
	margin-inline: -4px;
	scrollbar-width: thin;
	scrollbar-color: var(--pc-borde) transparent;
}
.pc-carrusel__pista > * { scroll-snap-align: start; }
.pc-carrusel__pista::-webkit-scrollbar { height: 6px; }
.pc-carrusel__pista::-webkit-scrollbar-thumb { background: var(--pc-borde); border-radius: 3px; }

@media (min-width: 900px) {
	.pc-carrusel__pista { grid-auto-columns: minmax(0, calc(25% - 15px)); }
}

.pc-carrusel__mandos { display: flex; gap: 8px; }
.pc-carrusel__mando {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px; height: 42px;
	background: var(--pc-papel);
	border: 1px solid var(--pc-borde);
	border-radius: var(--pc-radio-sm);
	color: var(--pc-tinta);
	cursor: pointer;
	transition: border-color .15s ease, background-color .15s ease, opacity .15s ease;
}
.pc-carrusel__mando:hover:not(:disabled) { border-color: var(--pc-tinta); background: var(--pc-papel-2); }
.pc-carrusel__mando:disabled { opacity: .32; cursor: default; }

/* ====================================================================
   15 · TARJETA DE PRODUCTO
   ==================================================================== */

.pc-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(248px, 1fr));
	gap: 22px;
	margin: 32px 0;
}

.pc-card {
	display: flex;
	flex-direction: column;
	background: var(--pc-papel);
	border: 1px solid var(--pc-borde);
	border-radius: var(--pc-radio);
	overflow: hidden;
	transition: box-shadow .18s ease, transform .18s ease, border-color .18s ease;
}
.pc-card:hover { box-shadow: var(--pc-sombra); transform: translateY(-3px); border-color: var(--pc-acero-300); }

.pc-card__img {
	display: block;
	aspect-ratio: 4 / 3;
	background: var(--pc-papel-2);
	overflow: hidden;
	position: relative;
}
.pc-card__img img { width: 100%; height: 100%; object-fit: contain; }
.pc-card__img--vacia { display: grid; place-items: center; color: var(--pc-acero-300); }

/* Distintivo de veredicto: el resultado del ensayo, arriba a la izquierda. */
.pc-card__distintivo {
	position: absolute;
	top: 10px; left: 10px;
	font-family: var(--pc-tipo-dato);
	font-size: .63rem;
	font-weight: 600;
	letter-spacing: .1em;
	text-transform: uppercase;
	background: var(--pc-acero-900);
	color: var(--pc-hivis);
	padding: 5px 9px;
	border-radius: 3px;
}

.pc-card__cuerpo { padding: 16px 18px 18px; flex: 1; display: flex; flex-direction: column; gap: 9px; }
.pc-card__marca {
	font-family: var(--pc-tipo-dato);
	font-size: .66rem;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--pc-suave);
}
.pc-card__titulo { font-size: 1.03rem; margin: 0; line-height: 1.3; font-weight: 650; }
.pc-card__titulo a { text-decoration: none; color: var(--pc-tinta); }
.pc-card__titulo a:hover { color: var(--pc-naranja); }
.pc-card__mejor { font-size: .9rem; line-height: 1.5; color: var(--pc-suave); margin: 0; flex: 1; }
.pc-card__pie {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding-top: 12px;
	margin-top: 2px;
	border-top: 1px solid var(--pc-borde);
}
.pc-card__precio { font-family: var(--pc-tipo-dato); font-size: .8rem; font-weight: 600; color: var(--pc-tinta); }
.pc-card__ver { font-family: var(--pc-tipo-ui); font-size: .855rem; font-weight: 600; text-decoration: none; }

/* ====================================================================
   16 · TABLA DE RESPUESTA RÁPIDA
   ==================================================================== */

.pc-rapida {
	border: 1px solid var(--pc-borde);
	border-radius: var(--pc-radio);
	overflow: hidden;
	background: var(--pc-papel);
}
.pc-rapida__encabezado {
	display: grid;
	grid-template-columns: minmax(0, .9fr) minmax(0, 1.5fr) 130px;
	gap: 20px;
	padding: 12px 22px;
	background: var(--pc-acero-800);
	font-family: var(--pc-tipo-dato);
	font-size: .67rem;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--pc-acero-300);
}
.pc-rapida__fila {
	display: grid;
	grid-template-columns: minmax(0, .9fr) minmax(0, 1.5fr) 130px;
	gap: 20px;
	align-items: center;
	padding: 18px 22px;
	border-bottom: 1px solid var(--pc-borde);
	transition: background-color .14s ease;
}
.pc-rapida__fila:last-child { border-bottom: 0; }
.pc-rapida__fila:hover { background: var(--pc-papel-2); }
.pc-rapida__uso { font-family: var(--pc-tipo-ui); font-weight: 600; font-size: .93rem; color: var(--pc-tinta); line-height: 1.4; }

/* La fila necesita leerse como vitrina, no como lista de texto: imagen +
   bloque de texto en lugar de solo el nombre del producto. */
.pc-rapida__prod { display: flex; align-items: center; gap: 14px; min-width: 0; }
.pc-rapida__img {
	flex: 0 0 54px;
	width: 54px;
	height: 54px;
	border-radius: var(--pc-radio-sm);
	overflow: hidden;
	background: var(--pc-papel-2);
	border: 1px solid var(--pc-borde);
	display: block;
}
.pc-rapida__img img { width: 100%; height: 100%; object-fit: contain; }
.pc-rapida__img--vacia { display: grid; place-items: center; color: var(--pc-acero-300); }
.pc-rapida__texto { min-width: 0; }
.pc-rapida__texto a { text-decoration: none; font-weight: 650; font-family: var(--pc-tipo-ui); color: var(--pc-tinta); font-size: 1rem; }
.pc-rapida__texto a:hover { color: var(--pc-naranja); }
.pc-rapida__nota { display: block; font-size: .855rem; color: var(--pc-suave); margin-top: 3px; line-height: 1.45; }
.pc-rapida__precio { font-family: var(--pc-tipo-dato); font-size: .76rem; color: var(--pc-suave); }
.pc-rapida__cta { text-align: right; }

/* Aviso de afiliados discreto: una línea de texto suelta, no una caja de
   alerta. Se usa justo donde hay enlaces /go/ reales fuera de un artículo
   (la tabla de respuesta rápida de la portada). El aviso completo en caja
   sigue existiendo en el pie y, obligatorio, al inicio de cada artículo
   y ficha de producto. */
.pc-aviso-discreto {
	font-family: var(--pc-tipo-dato);
	font-size: .78rem;
	color: var(--pc-suave);
	margin: 10px 0 0;
	line-height: 1.5;
}
.pc-aviso-discreto a { color: var(--pc-suave); text-decoration: underline; text-underline-offset: 2px; }
.pc-aviso-discreto a:hover { color: var(--pc-naranja); }
.pc-oscuro .pc-aviso-discreto,
.pc-oscuro .pc-aviso-discreto a { color: var(--pc-acero-300); }
.pc-oscuro .pc-aviso-discreto a:hover { color: var(--pc-hivis); }

/* ====================================================================
   17 · BANNERS
   ==================================================================== */

.pc-banner {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 24px 36px;
	align-items: center;
	padding: 32px clamp(24px, 4vw, 44px);
	border-radius: var(--pc-radio);
	overflow: hidden;
	background: linear-gradient(120deg, var(--pc-acero-800) 0%, var(--pc-acero-700) 100%);
	color: var(--pc-acero-200);
	margin: 40px 0;
}
/* El borde de cinta, en vertical y solo del lado izquierdo. */
.pc-banner::before {
	content: "";
	position: absolute;
	inset: 0 auto 0 0;
	width: 8px;
	background: repeating-linear-gradient(115deg, var(--pc-hivis) 0 11px, var(--pc-acero-900) 11px 22px);
}
.pc-banner__etiqueta {
	font-family: var(--pc-tipo-dato);
	font-size: .68rem;
	font-weight: 600;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--pc-hivis);
	display: block;
	margin-bottom: 9px;
}
.pc-banner__titulo { font-size: clamp(1.25rem, 2.4vw, 1.62rem); color: #fff; margin: 0 0 8px; max-width: 24ch; }
.pc-banner__texto { margin: 0; font-size: .98rem; line-height: 1.6; color: var(--pc-acero-300); max-width: 56ch; }
.pc-banner__accion { flex: 0 0 auto; }

/* Variante de alta visibilidad: para el imán de correo, una vez por página. */
.pc-banner--vivo {
	background: var(--pc-hivis);
	color: var(--pc-acero-900);
}
.pc-banner--vivo::before { background: repeating-linear-gradient(115deg, var(--pc-acero-900) 0 11px, transparent 11px 22px); }
.pc-banner--vivo .pc-banner__etiqueta { color: var(--pc-acero-900); opacity: .72; }
.pc-banner--vivo .pc-banner__titulo { color: var(--pc-acero-900); }
.pc-banner--vivo .pc-banner__texto { color: var(--pc-acero-900); opacity: .8; }

/* Variante clara, para dentro de un artículo. */
.pc-banner--papel {
	background: var(--pc-papel-2);
	color: var(--pc-texto);
	border: 1px solid var(--pc-borde);
}
.pc-banner--papel::before { background: repeating-linear-gradient(115deg, var(--pc-naranja) 0 11px, var(--pc-naranja-hondo) 11px 22px); }
.pc-banner--papel .pc-banner__etiqueta { color: var(--pc-naranja); }
.pc-banner--papel .pc-banner__titulo { color: var(--pc-tinta); }
.pc-banner--papel .pc-banner__texto { color: var(--pc-suave); }

/* ====================================================================
   18 · BLOQUE DE AUTORIDAD
   ==================================================================== */

.pc-autoridad {
	display: grid;
	grid-template-columns: 152px minmax(0, 1fr);
	gap: clamp(24px, 4vw, 40px);
	align-items: center;
	background: var(--pc-papel-2);
	border: 1px solid var(--pc-borde);
	border-radius: var(--pc-radio);
	padding: clamp(26px, 4vw, 40px);
}
.pc-autoridad__foto { position: relative; }
.pc-autoridad__foto img {
	width: 152px; height: 152px;
	border-radius: 50%;
	object-fit: cover;
	display: block;
	border: 3px solid var(--pc-papel);
	box-shadow: var(--pc-sombra-sm);
}
.pc-autoridad__titulo { font-size: clamp(1.3rem, 2.4vw, 1.62rem); margin: 0 0 12px; }
.pc-autoridad__texto p { margin: 0 0 14px; line-height: 1.68; font-size: 1.02rem; }
.pc-autoridad__cred {
	font-family: var(--pc-tipo-dato);
	font-size: .74rem;
	letter-spacing: .05em;
	color: var(--pc-verde);
	display: block;
	margin-bottom: 18px;
	line-height: 1.55;
}

/* Caja de autor al pie del artículo */
.pc-autor {
	display: grid;
	grid-template-columns: 78px minmax(0, 1fr);
	gap: 20px;
	align-items: start;
	background: var(--pc-papel-2);
	border: 1px solid var(--pc-borde);
	border-left: 4px solid var(--pc-naranja);
	border-radius: var(--pc-radio-sm);
	padding: 22px 24px;
	margin: 42px auto;
	max-width: var(--pc-lectura);
}
.pc-autor__foto img { width: 78px; height: 78px; border-radius: 50%; object-fit: cover; display: block; }
.pc-autor__nombre { font-family: var(--pc-tipo-display); font-stretch: 87%; font-weight: 700; margin: 0 0 5px; font-size: 1.05rem; color: var(--pc-tinta); }
.pc-autor__bio { margin: 0; font-size: .95rem; color: var(--pc-suave); line-height: 1.62; }
.pc-autor__cred { display: block; margin-top: 9px; font-family: var(--pc-tipo-dato); font-size: .72rem; color: var(--pc-verde); line-height: 1.5; }

/* ====================================================================
   19 · ARTÍCULOS
   ==================================================================== */

.pc-articulos {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 26px;
}

.pc-articulo { display: flex; flex-direction: column; gap: 11px; }
.pc-articulo__img {
	display: block;
	aspect-ratio: 16 / 10;
	border-radius: var(--pc-radio-sm);
	overflow: hidden;
	background: var(--pc-papel-2);
}
.pc-articulo__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.pc-articulo:hover .pc-articulo__img img { transform: scale(1.03); }
.pc-articulo__meta {
	font-family: var(--pc-tipo-dato);
	font-size: .665rem;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--pc-suave);
	display: flex;
	flex-wrap: wrap;
	gap: 6px 10px;
	align-items: center;
}
.pc-articulo__cat { color: var(--pc-naranja); font-weight: 600; text-decoration: none; }
.pc-articulo__cat:hover { text-decoration: underline; text-underline-offset: 3px; }
.pc-articulo__titulo { font-size: 1.12rem; margin: 0; line-height: 1.28; }
.pc-articulo__titulo a { text-decoration: none; color: var(--pc-tinta); }
.pc-articulo__titulo a:hover { color: var(--pc-naranja); }
.pc-articulo__extracto { font-size: .945rem; color: var(--pc-suave); margin: 0; line-height: 1.6; }

/* Destacado: el primero de la lista ocupa dos columnas y lleva imagen grande. */
.pc-articulos--destacado > .pc-articulo:first-child { grid-column: span 2; }
.pc-articulos--destacado > .pc-articulo:first-child .pc-articulo__titulo { font-size: clamp(1.3rem, 2.4vw, 1.62rem); }
.pc-articulos--destacado > .pc-articulo:first-child .pc-articulo__img { aspect-ratio: 21 / 9; }

/* ====================================================================
   20 · CAPTURA DE CORREO
   ==================================================================== */

.pc-lista {
	background:
		radial-gradient(100% 120% at 12% 0%, rgba(216, 245, 49, .08) 0%, transparent 60%),
		var(--pc-acero-800);
	border-radius: var(--pc-radio);
	padding: clamp(34px, 5vw, 52px);
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, .85fr);
	gap: clamp(28px, 5vw, 56px);
	align-items: center;
}
.pc-lista__titulo { color: #fff; font-size: clamp(1.4rem, 2.8vw, 1.85rem); margin: 0 0 12px; max-width: 20ch; }
.pc-lista__texto { color: var(--pc-acero-300); margin: 0 0 6px; line-height: 1.62; max-width: 48ch; }
.pc-lista__forma input[type="email"],
.pc-lista__forma input[type="text"] {
	width: 100%;
	background: var(--pc-acero-700);
	border: 1px solid var(--pc-acero-600);
	border-radius: var(--pc-radio-sm);
	padding: 14px 16px;
	color: #fff;
	font-family: var(--pc-tipo-ui);
	font-size: 1rem;
}
.pc-lista__forma input::placeholder { color: var(--pc-acero-300); }
.pc-lista__forma input:focus { border-color: var(--pc-hivis); }
.pc-lista__forma p { margin: 0 0 10px; }
.pc-lista__forma .oc-btn,
.pc-lista__forma button,
.pc-lista__forma input[type="submit"] { width: 100%; }
.pc-lista__forma p.pc-lista__letra-chica {
	font-family: var(--pc-tipo-dato);
	font-size: .68rem;
	color: var(--pc-acero-300);
	margin: 14px 0 0;
	line-height: 1.55;
}

.pc-nota-admin {
	background: rgba(216, 245, 49, .12);
	border: 1px dashed var(--pc-hivis);
	color: var(--pc-hivis) !important;
	padding: 14px 16px;
	border-radius: var(--pc-radio-sm);
	font-family: var(--pc-tipo-dato);
	font-size: .8rem;
	line-height: 1.55;
}

/* ====================================================================
   21 · PIE DE PÁGINA
   ==================================================================== */

.pc-footer { background: var(--pc-acero-900); color: var(--pc-acero-300); margin-top: auto; }
.pc-footer__cuerpo {
	display: grid;
	grid-template-columns: minmax(0, 1.5fr) repeat(3, minmax(0, 1fr));
	gap: clamp(28px, 4vw, 52px);
	padding-block: clamp(44px, 6vw, 66px);
}
.pc-footer__marca { max-width: 34ch; }
.pc-footer__lema { margin: 18px 0 20px; font-size: .95rem; line-height: 1.65; color: var(--pc-acero-300); }
.pc-footer__sello {
	font-family: var(--pc-tipo-dato);
	font-size: .68rem;
	letter-spacing: .08em;
	line-height: 1.6;
	color: var(--pc-acero-300);
	border-left: 2px solid var(--pc-hivis);
	padding-left: 12px;
}

.pc-footer__titulo {
	font-family: var(--pc-tipo-dato);
	font-size: .69rem;
	font-weight: 600;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--pc-hivis);
	margin: 0 0 16px;
}
.pc-footer__lista { list-style: none; margin: 0; padding: 0; }
.pc-footer__lista li + li { margin-top: 9px; }
.pc-footer__lista a {
	font-family: var(--pc-tipo-ui);
	font-size: .9rem;
	color: var(--pc-acero-200);
	text-decoration: none;
	transition: color .14s ease;
}
.pc-footer__lista a:hover { color: var(--pc-hivis); }

.pc-footer__legal {
	border-top: 1px solid rgba(255, 255, 255, .08);
	padding-block: 22px;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 14px 26px;
	font-family: var(--pc-tipo-dato);
	font-size: .705rem;
	letter-spacing: .04em;
	color: var(--pc-acero-300);
	line-height: 1.6;
}
.pc-footer__legal p { margin: 0; max-width: 78ch; }
.pc-footer__legal-menu { display: flex; flex-wrap: wrap; gap: 8px 18px; list-style: none; margin: 0; padding: 0; }
.pc-footer__legal-menu a { color: var(--pc-acero-200); text-decoration: none; }
.pc-footer__legal-menu a:hover { color: var(--pc-hivis); text-decoration: underline; text-underline-offset: 3px; }

/* El aviso de afiliados del pie: obligatorio, y por eso destacado. */
.pc-footer__aviso {
	background: rgba(255, 255, 255, .04);
	border-top: 1px solid rgba(255, 255, 255, .08);
	border-bottom: 1px solid rgba(255, 255, 255, .08);
	padding-block: 18px;
	font-size: .8rem;
	line-height: 1.6;
	color: var(--pc-acero-300);
}
.pc-footer__aviso .oc-aviso {
	background: none;
	margin: 0;
	color: inherit;
	font-size: inherit;
	border-left: 2px solid var(--pc-hivis);
	border-radius: 0;
	padding: 2px 0 2px 14px;
}

/* ====================================================================
   22 · CONTENIDO LARGO
   ==================================================================== */

.pc-cuerpo { padding-block: clamp(32px, 5vw, 56px); }

.entry-content {
	font-family: var(--pc-tipo-texto);
	font-size: 1.115rem;
	line-height: 1.72;
	color: var(--pc-texto);
	max-width: var(--pc-lectura);
	margin-inline: auto;
}
.entry-content > * { max-width: 100%; }
.entry-content h2 { margin-top: 2.3em; margin-bottom: .55em; font-size: clamp(1.42rem, 2.6vw, 1.72rem); }
.entry-content h3 { margin-top: 1.9em; margin-bottom: .5em; font-size: 1.24rem; }
.entry-content p { margin-bottom: 1.35em; }
.entry-content a { text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1.5px; }
/* Un botón no es un enlace de texto: dentro del artículo pierde el subrayado. */
.entry-content :is(.pc-btn, .oc-btn, .pc-card__ver, .pc-card__titulo a, .pc-articulo__titulo a, .pc-mega__destacado) {
	text-decoration: none;
}
.entry-content ul, .entry-content ol { margin-bottom: 1.4em; padding-left: 1.3em; }
.entry-content li { margin-bottom: .5em; }
.entry-content img { border-radius: var(--pc-radio-sm); }
.entry-content figcaption {
	font-family: var(--pc-tipo-dato);
	font-size: .74rem;
	color: var(--pc-suave);
	text-align: left;
	margin-top: 9px;
	line-height: 1.5;
}
.entry-content blockquote {
	border-left: 3px solid var(--pc-hivis-hondo);
	background: var(--pc-papel-2);
	margin: 1.8em 0;
	padding: 18px 24px;
	border-radius: 0 var(--pc-radio-sm) var(--pc-radio-sm) 0;
	font-size: 1.06rem;
}
.entry-content blockquote p:last-child { margin-bottom: 0; }
/* Los componentes anchos rompen la columna de lectura a propósito. */
.entry-content > :is(.pc-banner, .oc-tabla-wrap, .pc-grid, .pc-carrusel) {
	max-width: min(100%, 940px);
	margin-inline: auto;
}

/* Los títulos que viven DENTRO de un componente no son títulos de sección
   del artículo: no deben heredar el margen de aire de .entry-content h2,
   que es más específico que la clase del componente y le ganaba. */
.entry-content :is(
	.pc-banner__titulo,
	.pc-seccion__titulo,
	.pc-card__titulo,
	.pc-articulo__titulo,
	.oc-ficha__titulo,
	.pc-juicio h3,
	.pc-protocolo__titulo
) {
	margin-top: 0;
}

.pc-disclosure {
	font-family: var(--pc-tipo-dato);
	font-size: .755rem;
	line-height: 1.55;
	color: var(--pc-suave);
	background: var(--pc-papel-2);
	border-left: 3px solid var(--pc-naranja);
	padding: 11px 15px;
	border-radius: 0 var(--pc-radio-sm) var(--pc-radio-sm) 0;
	margin: 0 auto 30px;
	max-width: var(--pc-lectura);
}

/* Cabecera de entrada */
.pc-cabecera-entrada { max-width: var(--pc-lectura); margin: 0 auto clamp(26px, 4vw, 38px); }
.pc-cabecera-entrada__meta {
	font-family: var(--pc-tipo-dato);
	font-size: .69rem;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--pc-suave);
	display: flex;
	flex-wrap: wrap;
	gap: 6px 12px;
	margin-bottom: 16px;
}
.pc-cabecera-entrada__meta a { color: var(--pc-naranja); text-decoration: none; font-weight: 600; }
.entry-title, .pc-cabecera-entrada__titulo { font-size: clamp(1.85rem, 4.2vw, 2.75rem); line-height: 1.09; margin: 0 0 16px; }
.pc-cabecera-entrada__bajada { font-size: 1.16rem; line-height: 1.6; color: var(--pc-suave); margin: 0; }

/* Protocolo "Prueba de campo": la placa, versión clara, dentro del artículo. */
.pc-protocolo {
	border: 1px solid var(--pc-acero-600);
	border-top: 4px solid var(--pc-hivis);
	border-radius: var(--pc-radio-sm);
	padding: 22px 24px 18px;
	margin: 36px auto;
	max-width: var(--pc-lectura);
	background: var(--pc-acero-800);
	font-family: var(--pc-tipo-dato);
}
.pc-protocolo__titulo {
	font-size: .72rem;
	text-transform: uppercase;
	letter-spacing: .16em;
	color: var(--pc-hivis);
	font-weight: 600;
	margin: 0 0 16px;
}
.pc-protocolo dl { margin: 0; }
.pc-protocolo div {
	display: grid;
	grid-template-columns: minmax(120px, 172px) minmax(0, 1fr);
	gap: 8px 18px;
	padding: 10px 0;
	border-bottom: 1px dashed rgba(255, 255, 255, .11);
}
.pc-protocolo div:last-child { border-bottom: 0; }
.pc-protocolo dt { font-size: .68rem; letter-spacing: .1em; text-transform: uppercase; color: var(--pc-acero-300); }
.pc-protocolo dd { margin: 0; font-size: .84rem; color: #fff; line-height: 1.55; }

/* ====================================================================
   23 · PRODUCTO
   ==================================================================== */

.pc-producto__cabecera {
	display: grid;
	grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
	gap: clamp(26px, 4vw, 48px);
	align-items: start;
	margin-bottom: 40px;
}
.pc-producto__img {
	background: var(--pc-papel-2);
	border: 1px solid var(--pc-borde);
	border-radius: var(--pc-radio);
	padding: 22px;
}
.pc-producto__img img { width: 100%; height: auto; display: block; }
.pc-producto__marca { font-family: var(--pc-tipo-dato); font-size: .72rem; text-transform: uppercase; letter-spacing: .14em; color: var(--pc-suave); margin: 0 0 10px; }
.pc-producto__veredicto { font-size: 1.1rem; line-height: 1.62; margin: 16px 0 22px; color: var(--pc-texto); }
.pc-producto__acciones { display: flex; flex-wrap: wrap; gap: 10px; }
.pc-producto__garantia { font-family: var(--pc-tipo-dato); font-size: .7rem; color: var(--pc-suave); margin: 14px 0 0; line-height: 1.55; }

.pc-specs { width: 100%; border-collapse: collapse; margin: 26px auto; max-width: var(--pc-lectura); }
.pc-specs th, .pc-specs td { border-bottom: 1px solid var(--pc-borde); padding: 12px 14px; text-align: left; font-size: .95rem; }
.pc-specs th { width: 42%; font-family: var(--pc-tipo-dato); font-size: .74rem; letter-spacing: .06em; text-transform: uppercase; font-weight: 500; color: var(--pc-suave); }
.pc-specs td { font-family: var(--pc-tipo-dato); font-size: .86rem; color: var(--pc-tinta); }

.pc-juicio {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
	gap: 24px;
	margin: 32px auto;
	max-width: var(--pc-lectura);
}
.pc-juicio > div { border: 1px solid var(--pc-borde); border-radius: var(--pc-radio-sm); padding: 20px 22px; }
.pc-juicio .pc-si { border-top: 3px solid var(--pc-verde); }
.pc-juicio .pc-no { border-top: 3px solid var(--pc-rojo); }
.pc-juicio h3 { font-size: 1.02rem; margin: 0 0 12px; }
.pc-juicio ul { list-style: none; margin: 0; padding: 0; }
.pc-juicio li { padding: 5px 0 5px 24px; position: relative; font-size: .95rem; line-height: 1.55; }
.pc-juicio .pc-si li::before { content: "+"; position: absolute; left: 2px; top: 4px; color: var(--pc-verde); font-weight: 700; font-family: var(--pc-tipo-dato); }
.pc-juicio .pc-no li::before { content: "−"; position: absolute; left: 2px; top: 4px; color: var(--pc-rojo); font-weight: 700; font-family: var(--pc-tipo-dato); }

/* ====================================================================
   24 · ARCHIVOS Y PÁGINAS INTERNAS
   ==================================================================== */

.pc-cabecera-pagina {
	background: var(--pc-acero-800);
	color: var(--pc-acero-200);
	padding-block: clamp(38px, 6vw, 62px);
	position: relative;
}
.pc-cabecera-pagina__titulo { color: #fff; font-size: clamp(1.9rem, 4vw, 2.7rem); margin: 0 0 14px; }
.pc-cabecera-pagina__desc { color: var(--pc-acero-300); font-size: 1.06rem; line-height: 1.62; margin: 0; max-width: 62ch; }

/* Miga de pan */
.pc-miga {
	font-family: var(--pc-tipo-dato);
	font-size: .69rem;
	letter-spacing: .1em;
	text-transform: uppercase;
	margin: 0 0 16px;
	color: var(--pc-acero-300);
}
.pc-miga a { color: var(--pc-acero-200); text-decoration: none; }
.pc-miga a:hover { color: var(--pc-hivis); }
.pc-miga span[aria-hidden] { opacity: .5; margin-inline: 7px; }

/* Filtros del catálogo */
.pc-filtros { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 28px; }
.pc-filtros a {
	font-family: var(--pc-tipo-ui);
	font-size: .875rem;
	font-weight: 550;
	padding: 8px 16px;
	border: 1px solid var(--pc-borde);
	border-radius: 22px;
	text-decoration: none;
	color: var(--pc-texto);
	background: var(--pc-papel);
	transition: border-color .14s ease, background-color .14s ease, color .14s ease;
}
.pc-filtros a:hover { border-color: var(--pc-tinta); color: var(--pc-tinta); }
.pc-filtros a.esta-activo { background: var(--pc-acero-800); border-color: var(--pc-acero-800); color: #fff; }

/* Paginación */
.pc-paginacion { margin: 44px 0 0; }
.pc-paginacion .nav-links { display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; }
.pc-paginacion .page-numbers {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 42px; height: 42px; padding: 0 12px;
	border: 1px solid var(--pc-borde); border-radius: var(--pc-radio-sm);
	font-family: var(--pc-tipo-dato); font-size: .85rem;
	color: var(--pc-texto); text-decoration: none;
}
.pc-paginacion .page-numbers:hover { border-color: var(--pc-tinta); }
.pc-paginacion .page-numbers.current { background: var(--pc-acero-800); border-color: var(--pc-acero-800); color: #fff; }

/* 404 y estados vacíos */
.pc-vacio { text-align: center; padding: clamp(40px, 8vw, 80px) 0; max-width: 56ch; margin-inline: auto; }
.pc-vacio__codigo {
	font-family: var(--pc-tipo-dato);
	font-size: clamp(3rem, 10vw, 5.5rem);
	font-weight: 600;
	color: var(--pc-papel-3);
	line-height: 1;
	margin: 0 0 8px;
	letter-spacing: -.03em;
}
.pc-vacio__titulo { font-size: clamp(1.5rem, 3.5vw, 2rem); margin: 0 0 14px; }
.pc-vacio p { color: var(--pc-suave); line-height: 1.65; margin: 0 0 26px; }

/* ====================================================================
   25 · COMPONENTES DEL PLUGIN, afinados
   ==================================================================== */

.oc-ficha { border-radius: var(--pc-radio); background: var(--pc-papel); }
.oc-ficha__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
	margin: 0 0 14px;
}
.oc-ficha__titulo { font-family: var(--pc-tipo-display); font-stretch: 87%; }
.oc-tag { font-family: var(--pc-tipo-dato); font-size: .72rem; letter-spacing: .04em; background: var(--pc-papel-2); border: 1px solid var(--pc-borde); }
.oc-nota { font-family: var(--pc-tipo-dato); color: var(--pc-naranja); }
.oc-tabla { font-family: var(--pc-tipo-ui); }
.oc-tabla__nombre { font-family: var(--pc-tipo-display); font-stretch: 87%; }
.oc-aviso {
	font-family: var(--pc-tipo-dato);
	font-size: .755rem;
	line-height: 1.55;
	background: var(--pc-papel-2);
	border-left: 3px solid var(--pc-naranja);
	color: var(--pc-suave);
	padding: 11px 15px;
	border-radius: 0 var(--pc-radio-sm) var(--pc-radio-sm) 0;
}

/* ====================================================================
   26 · ADAPTACIÓN A PANTALLAS
   ==================================================================== */

@media (max-width: 1080px) {
	.pc-mega__destacado { display: none; }
	.pc-footer__cuerpo { grid-template-columns: minmax(0, 1fr) repeat(2, minmax(0, 1fr)); }
	.pc-footer__marca { grid-column: 1 / -1; max-width: none; }
}

@media (max-width: 960px) {
	.pc-nav, .pc-header__acciones .pc-btn { display: none; }
	.pc-hamburguesa { display: inline-flex; }
	.pc-hero__rejilla { grid-template-columns: minmax(0, 1fr); }
	.pc-lista { grid-template-columns: minmax(0, 1fr); }
	.pc-producto__cabecera { grid-template-columns: minmax(0, 1fr); }
	.pc-articulos--destacado > .pc-articulo:first-child { grid-column: span 1; }
	.pc-articulos--destacado > .pc-articulo:first-child .pc-articulo__img { aspect-ratio: 16 / 10; }
}

@media (max-width: 720px) {
	:root { --pc-alto-header: 62px; }
	.pc-barra-superior__interior { justify-content: center; }
	.pc-barra-superior__texto { display: none; }
	.pc-autoridad { grid-template-columns: minmax(0, 1fr); text-align: center; justify-items: center; }
	.pc-autoridad__cred { text-align: center; }
	.pc-rapida__encabezado { display: none; }
	.pc-rapida__fila { grid-template-columns: minmax(0, 1fr); gap: 10px; padding: 18px; }
	.pc-rapida__cta { text-align: left; }
	.pc-rapida__img { flex-basis: 46px; width: 46px; height: 46px; }
	.pc-banner { grid-template-columns: minmax(0, 1fr); padding-left: 28px; }
	.pc-footer__cuerpo { grid-template-columns: minmax(0, 1fr); gap: 32px; }
	.pc-footer__legal { flex-direction: column; align-items: flex-start; }
	.entry-content { font-size: 1.06rem; }
	.pc-protocolo div { grid-template-columns: minmax(0, 1fr); gap: 3px; }
	.pc-protocolo dt { margin-top: 6px; }
	.pc-autor { grid-template-columns: minmax(0, 1fr); }
	.pc-placa { padding: 20px; }
	.pc-placa__fila { grid-template-columns: minmax(0, 1fr); gap: 3px; }
	.pc-placa__valor { text-align: left; }
}

/* ====================================================================
   27 · MOVIMIENTO E IMPRESIÓN
   ==================================================================== */

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .01ms !important;
		scroll-behavior: auto !important;
	}
	.pc-carrusel__pista { scroll-behavior: auto; }
}

@media print {
	.pc-header, .pc-footer, .pc-banner, .pc-lista, .pc-cajon, .pc-cajon__velo, .pc-carrusel__mandos { display: none !important; }
	.entry-content { max-width: none; font-size: 11pt; }
	.pc-placa, .pc-protocolo { background: none !important; border: 1px solid #333; color: #000; }
	.pc-placa :is(.pc-placa__valor, .pc-placa__titulo), .pc-protocolo dd { color: #000; }
	.pc-protocolo__titulo, .pc-placa__clave { color: #333; }
}

/* ====================================================================
   28 · PIEZAS SUELTAS
   ==================================================================== */

/* Salto al contenido: invisible hasta que alguien navega con teclado. */
.pc-saltar {
	position: absolute;
	left: 12px;
	top: -60px;
	z-index: 1200;
	background: var(--pc-hivis);
	color: var(--pc-acero-900);
	font-family: var(--pc-tipo-ui);
	font-weight: 650;
	font-size: .9rem;
	padding: 11px 18px;
	border-radius: 0 0 var(--pc-radio-sm) var(--pc-radio-sm);
	text-decoration: none;
	transition: top .16s ease;
}
.pc-saltar:focus { top: 0; color: var(--pc-acero-900); }

/* Imagen destacada de entrada y página. */
.pc-entrada__imagen {
	margin: 0 auto clamp(28px, 4vw, 42px);
	max-width: 940px;
}
.pc-entrada__imagen img {
	width: 100%;
	height: auto;
	display: block;
	border-radius: var(--pc-radio);
}

/* Comentarios: heredan la columna de lectura. */
.pc-lectura :is(.comments-area, .comment-respond) { margin-top: 44px; }
.pc-lectura :is(.comment-reply-title, .comments-title) {
	font-family: var(--pc-tipo-display);
	font-stretch: 87%;
	font-size: 1.3rem;
}
.pc-lectura :is(input[type="text"], input[type="email"], input[type="url"], textarea) {
	width: 100%;
	border: 1px solid var(--pc-borde);
	border-radius: var(--pc-radio-sm);
	padding: 12px 14px;
	font-family: var(--pc-tipo-ui);
	font-size: 1rem;
	background: var(--pc-papel);
	color: var(--pc-tinta);
}

/* El cuerpo del sitio empuja el pie al fondo aunque la página sea corta. */
body.pc-sitio { display: flex; flex-direction: column; min-height: 100vh; }
body.pc-sitio > #pc-principal { flex: 1 0 auto; }

/* GeneratePress: si alguna plantilla del padre se cuela, que no rompa el ancho. */
.pc-sitio .site-content, .pc-sitio .inside-article { padding: 0; }
