/* =============================================================
   Observatorio Madera, Mueble y Corcho — hoja de estilos
   Identidad campaña "¿Tienes madera?": Lima #E0FF00 · Gris 422C/424C
   Tipografía: DM Sans (local) — titulares Light, tracking -0.02/-0.03em
   ============================================================= */

/* ---------- Fuentes locales ---------- */
@font-face {
	font-family: "DM Sans";
	src: url("../fonts/DMSans-Light.ttf") format("truetype");
	font-weight: 300;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "DM Sans";
	src: url("../fonts/DMSans-Regular.ttf") format("truetype");
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "DM Sans";
	src: url("../fonts/DMSans-Medium.ttf") format("truetype");
	font-weight: 500;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "DM Sans";
	src: url("../fonts/DMSans-Italic.ttf") format("truetype");
	font-weight: 400;
	font-style: italic;
	font-display: swap;
}

/* ---------- Design tokens ---------- */
:root {
	--lima: #e0ff00;
	--lima-soft: #eeff66;
	--gris: #9ea69e;
	--gris-2: #868c86;
	--ink: #171912;
	--ink-2: #21241b;
	--paper: #f4f5f0;
	--white: #ffffff;
	--line: rgba(23, 25, 18, 0.14);
	--line-light: rgba(244, 245, 240, 0.16);

	--font: "DM Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
	--track: -0.02em;
	--track-tight: -0.035em;

	--container: 1240px;
	--gutter: clamp(1.25rem, 4vw, 2.5rem);
	--radius: 4px;

	--fs-hero: clamp(3.4rem, 10.5vw, 8.8rem);
	--fs-h2: clamp(2.1rem, 4.6vw, 3.9rem);
	--fs-h2-sm: clamp(1.7rem, 3.2vw, 2.6rem);
	--fs-cifra: clamp(2.6rem, 5vw, 4.4rem);

	--ease: cubic-bezier(0.22, 1, 0.36, 1);
}

/* ---------- Reset ligero ---------- */
*,
*::before,
*::after {
	box-sizing: border-box;
}
html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
}
body {
	margin: 0;
	font-family: var(--font);
	font-weight: 400;
	font-size: 1.0625rem;
	line-height: 1.6;
	letter-spacing: var(--track);
	color: var(--ink);
	background: var(--white);
	-webkit-font-smoothing: antialiased;
}
img,
video {
	max-width: 100%;
	height: auto;
	display: block;
}
a {
	color: inherit;
}
h1,
h2,
h3,
h4 {
	font-weight: 300;
	letter-spacing: var(--track-tight);
	line-height: 1.05;
	margin: 0 0 0.6em;
	text-wrap: balance;
}
p {
	margin: 0 0 1em;
}
.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	word-wrap: normal !important;
}
.om-skip-link {
	position: absolute;
	left: -9999px;
	top: 0;
	background: var(--lima);
	color: var(--ink);
	padding: 0.75rem 1.25rem;
	z-index: 999;
}
.om-skip-link:focus {
	left: 0;
}

.om-container {
	max-width: var(--container);
	margin-inline: auto;
	padding-inline: var(--gutter);
}

/* =============================================================
   Header
   ============================================================= */
.om-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: rgba(244, 245, 240, 0.92);
	backdrop-filter: blur(12px);
	border-bottom: 1px solid var(--line);
}
.om-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.25rem;
	min-height: 76px;
}
.om-brand {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	text-decoration: none;
	color: var(--ink);
}
.om-brand__mark {
	display: grid;
	place-items: center;
	width: 42px;
	height: 42px;
	border-radius: 50%;
	background: var(--lima);
	color: var(--ink);
	flex-shrink: 0;
}
.om-brand__mark svg {
	width: 26px;
	height: 26px;
}
.om-brand__text {
	display: flex;
	flex-direction: column;
	line-height: 1.15;
	letter-spacing: var(--track);
}
.om-brand__text strong {
	font-weight: 500;
	font-size: 0.98rem;
}
.om-brand__text span {
	font-size: 0.74rem;
	color: var(--gris-2);
	white-space: nowrap;
}

.om-nav {
	display: flex;
	align-items: center;
	gap: clamp(0.9rem, 1.4vw, 1.75rem);
	min-width: 0;
}
.om-nav__list {
	display: flex;
	align-items: center;
	gap: clamp(0.65rem, 1.15vw, 1.6rem);
	list-style: none;
	margin: 0;
	padding: 0;
}
.om-nav__list a {
	text-decoration: none;
	font-size: 0.94rem;
	color: var(--ink);
	position: relative;
	padding-block: 0.35rem;
	white-space: nowrap;
}
.om-nav__list a::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	height: 2px;
	background: var(--lima);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.3s var(--ease);
}
.om-nav__list a:hover::after,
.om-nav__list .current-menu-item > a::after,
.om-nav__list .current_page_item > a::after {
	transform: scaleX(1);
}

/* Submenús */
.om-nav__list .sub-menu {
	display: none;
	position: absolute;
	list-style: none;
	margin: 0;
	padding: 0.6rem 0;
	background: var(--white);
	border: 1px solid var(--line);
	min-width: 230px;
	box-shadow: 0 18px 40px rgba(23, 25, 18, 0.1);
}
.om-nav__list li {
	position: relative;
}
.om-nav__list li:hover > .sub-menu,
.om-nav__list li:focus-within > .sub-menu {
	display: block;
}
.om-nav__list .sub-menu a {
	display: block;
	padding: 0.5rem 1.1rem;
	font-size: 0.92rem;
}
.om-nav__list .sub-menu a::after {
	display: none;
}
.om-nav__list .sub-menu a:hover {
	background: var(--paper);
}

/* Burger */
.om-burger {
	display: none;
	flex-direction: column;
	justify-content: center;
	gap: 7px;
	width: 46px;
	height: 46px;
	padding: 10px;
	background: none;
	border: 1px solid var(--line);
	border-radius: 50%;
	cursor: pointer;
}
.om-burger__line {
	display: block;
	height: 2px;
	width: 100%;
	background: var(--ink);
	transition: transform 0.3s var(--ease), opacity 0.2s;
}
.om-burger[aria-expanded="true"] .om-burger__line:nth-child(2) {
	transform: translateY(4.5px) rotate(45deg);
}
.om-burger[aria-expanded="true"] .om-burger__line:nth-child(3) {
	transform: translateY(-4.5px) rotate(-45deg);
}

/* =============================================================
   Botones y enlaces
   ============================================================= */
.om-btn {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.85rem 1.7rem;
	border-radius: 999px;
	border: 1px solid transparent;
	font-family: var(--font);
	font-size: 1rem;
	font-weight: 400;
	letter-spacing: var(--track);
	text-decoration: none;
	cursor: pointer;
	transition: transform 0.25s var(--ease), background 0.25s, color 0.25s, border-color 0.25s;
}
.om-btn:hover {
	transform: translateY(-2px);
}
.om-btn--sm {
	padding: 0.55rem 1.15rem;
	font-size: 0.9rem;
}
.om-btn--ink {
	background: var(--ink);
	color: var(--lima);
}
.om-btn--ink:hover {
	background: var(--ink-2);
}
.om-btn--lima {
	background: var(--lima);
	color: var(--ink);
}
.om-btn--lima:hover {
	background: var(--lima-soft);
}
.om-btn--ghost {
	border-color: var(--ink);
	color: var(--ink);
	background: transparent;
}
.om-btn--ghost:hover {
	background: var(--ink);
	color: var(--lima);
}
.om-btn--ghost-ink {
	border-color: var(--ink);
	color: var(--ink);
	background: transparent;
}
.om-btn--ghost-ink:hover {
	background: var(--ink);
	color: var(--lima);
}

.om-arrow-link {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 1rem;
	color: var(--ink);
	text-decoration: none;
	border-bottom: 1px solid currentColor;
	padding-bottom: 2px;
	white-space: nowrap;
}
.om-arrow-link__arrow {
	transition: transform 0.25s var(--ease);
}
.om-arrow-link:hover .om-arrow-link__arrow {
	transform: translateX(6px);
}
.om-arrow-link--lima {
	color: var(--lima);
}

/* Kicker */
.om-kicker {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	font-size: 0.85rem;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.14em;
	margin-bottom: 1.1rem;
}
.om-kicker__dot {
	width: 9px;
	height: 9px;
	border-radius: 50%;
	background: var(--lima);
	border: 1px solid rgba(23, 25, 18, 0.25);
}
.om-section--ink .om-kicker__dot,
.om-section--gris .om-kicker__dot {
	border-color: transparent;
}

/* Chips */
.om-chip {
	display: inline-block;
	padding: 0.22rem 0.75rem;
	border-radius: 999px;
	border: 1px solid var(--line);
	font-size: 0.78rem;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.08em;
}
.om-chip--lima {
	background: var(--lima);
	border-color: transparent;
}

/* =============================================================
   Secciones
   ============================================================= */
.om-section {
	padding-block: clamp(3.5rem, 8vw, 6.5rem);
}
.om-section--tight {
	padding-block: clamp(2rem, 5vw, 3.5rem);
}
.om-section--paper {
	background: var(--paper);
}
.om-section--ink {
	background: var(--ink);
	color: var(--paper);
}
.om-section--gris {
	background: linear-gradient(160deg, var(--gris) 0%, var(--gris-2) 100%);
	color: var(--white);
}
.om-section--lima {
	background: var(--lima);
	color: var(--ink);
}
.om-section__head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 2rem;
	margin-bottom: clamp(2rem, 5vw, 3.5rem);
	flex-wrap: wrap;
}
.om-section__title {
	font-size: var(--fs-h2);
	margin-bottom: 0;
}
.om-section__title--sm {
	font-size: var(--fs-h2-sm);
}

/* =============================================================
   Hero
   ============================================================= */
.om-hero {
	position: relative;
	background: var(--paper);
	overflow: hidden;
	min-height: min(88vh, 860px);
	display: flex;
	align-items: center;
}
.om-hero__inner {
	position: relative;
	z-index: 2;
	width: 100%;
	padding-block: clamp(4rem, 9vw, 7rem);
}
.om-hero__eyebrow {
	font-size: 0.9rem;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.16em;
	color: var(--gris-2);
	margin-bottom: clamp(1.5rem, 3vw, 2.5rem);
}
.om-hero__title {
	font-size: var(--fs-hero);
	font-weight: 300;
	line-height: 0.98;
	letter-spacing: var(--track-tight);
	margin: 0 0 clamp(2rem, 4vw, 3rem);
	display: flex;
	flex-direction: column;
}
.om-hero__line {
	display: block;
	opacity: 0;
	transform: translateY(40px);
	animation: om-rise 0.9s var(--ease) forwards;
}
.om-hero__line--2 {
	padding-left: clamp(2.5rem, 9vw, 9rem);
	animation-delay: 0.12s;
}
.om-hero__line--3 {
	padding-left: clamp(5rem, 18vw, 18rem);
	animation-delay: 0.24s;
}
@keyframes om-rise {
	to {
		opacity: 1;
		transform: none;
	}
}
.om-hero__word {
	position: relative;
	color: transparent;
	background: var(--ink);
	background-clip: text;
	-webkit-background-clip: text;
	border-bottom: 4px solid var(--lima);
}
.om-hero__foot {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 2.5rem;
	flex-wrap: wrap;
	max-width: 900px;
}
.om-hero__sub {
	max-width: 46ch;
	font-size: 1.1rem;
	color: var(--ink-2);
	margin: 0;
}
.om-hero__ctas {
	display: flex;
	gap: 0.9rem;
	flex-wrap: wrap;
}

/* Objetos flotantes */
.om-hero__obj {
	position: absolute;
	z-index: 1;
	filter: drop-shadow(0 30px 50px rgba(23, 25, 18, 0.28));
	pointer-events: none;
}
.om-hero__obj--mando {
	width: clamp(280px, 34vw, 560px);
	right: clamp(-40px, 2vw, 90px);
	top: clamp(60px, 10vh, 130px);
	animation: om-float 7s ease-in-out infinite;
}
.om-hero__obj--engranajes {
	width: clamp(140px, 16vw, 280px);
	right: clamp(180px, 30vw, 560px);
	bottom: -60px;
	opacity: 0.9;
	animation: om-float 9s ease-in-out 1.2s infinite;
}
@keyframes om-float {
	0%,
	100% {
		transform: translateY(0) rotate(-2deg);
	}
	50% {
		transform: translateY(-22px) rotate(2.5deg);
	}
}
@media (prefers-reduced-motion: reduce) {
	.om-hero__line,
	.om-hero__obj {
		animation: none !important;
		opacity: 1;
		transform: none;
	}
}

/* =============================================================
   Marquesina
   ============================================================= */
.om-marquee {
	background: var(--lima);
	color: var(--ink);
	overflow: hidden;
	border-block: 1px solid rgba(23, 25, 18, 0.18);
	padding-block: 0.9rem;
}
.om-marquee__track {
	display: flex;
	white-space: nowrap;
	font-size: clamp(1.1rem, 2.4vw, 1.7rem);
	font-weight: 300;
	letter-spacing: var(--track);
	animation: om-marquee 28s linear infinite;
}
@keyframes om-marquee {
	to {
		transform: translateX(-50%);
	}
}
@media (prefers-reduced-motion: reduce) {
	.om-marquee__track {
		animation: none;
	}
}

/* =============================================================
   Cifras / indicadores
   ============================================================= */
.om-cifras__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0;
	border-top: 1px solid var(--line-light);
}
.om-cifras__grid--full {
	grid-template-columns: repeat(3, 1fr);
}
.om-indicador {
	padding: clamp(1.5rem, 3vw, 2.4rem) clamp(1.2rem, 2.5vw, 2rem);
	border-bottom: 1px solid var(--line-light);
	border-right: 1px solid var(--line-light);
	transition: background 0.3s;
}
.om-indicador:hover {
	background: rgba(224, 255, 0, 0.05);
}
.om-indicador:nth-child(3n) {
	border-right: none;
}
.om-indicador__cifra {
	display: flex;
	align-items: baseline;
	gap: 0.5rem;
	margin-bottom: 0.7rem;
}
.om-indicador__valor {
	font-size: var(--fs-cifra);
	font-weight: 300;
	line-height: 1;
	letter-spacing: var(--track-tight);
	color: var(--lima);
	font-variant-numeric: tabular-nums;
}
.om-indicador__unidad {
	font-size: 1.1rem;
	color: var(--gris);
}
.om-indicador__titulo {
	font-size: 1.12rem;
	font-weight: 500;
	letter-spacing: var(--track);
	margin-bottom: 0.4rem;
}
.om-indicador__nota {
	font-size: 0.92rem;
	color: var(--gris);
	margin-bottom: 0.6rem;
}
.om-indicador__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem 1rem;
	font-size: 0.8rem;
	color: var(--gris);
	margin: 0;
}
.om-indicador__variacion {
	font-weight: 500;
	padding: 0.05rem 0.5rem;
	border-radius: 999px;
}
.om-indicador__variacion.is-up {
	background: rgba(224, 255, 0, 0.15);
	color: var(--lima);
}
.om-indicador__variacion.is-down {
	background: rgba(255, 120, 90, 0.14);
	color: #ff9d80;
}
.om-cifras__disclaimer {
	margin-top: 1.6rem;
	font-size: 0.82rem;
	color: var(--gris-2);
}

/* =============================================================
   Qué es / split
   ============================================================= */
.om-que-es__grid {
	display: grid;
	grid-template-columns: 1fr 1.05fr;
	gap: clamp(2rem, 6vw, 5rem);
	align-items: center;
}
.om-que-es__frame {
	background: var(--lima);
	padding: clamp(1.5rem, 4vw, 3rem);
	display: grid;
	place-items: center;
}
.om-que-es__frame--gris {
	background: linear-gradient(160deg, var(--gris), var(--gris-2));
}
.om-que-es__frame img {
	filter: drop-shadow(0 24px 40px rgba(23, 25, 18, 0.3));
	transition: transform 0.6s var(--ease);
}
.om-que-es__frame:hover img {
	transform: scale(1.04) rotate(-1.5deg);
}
.om-que-es__body p {
	max-width: 52ch;
}
.om-list {
	padding-left: 0;
	list-style: none;
	margin: 0 0 1.4rem;
}
.om-list li {
	padding: 0.8rem 0 0.8rem 1.8rem;
	border-bottom: 1px solid var(--line);
	position: relative;
}
.om-list li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 1.35rem;
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: var(--lima);
	border: 1px solid rgba(23, 25, 18, 0.25);
}

/* =============================================================
   Tarjetas
   ============================================================= */
.om-cards {
	display: grid;
	gap: clamp(1.2rem, 2.5vw, 2rem);
}
.om-cards--3 {
	grid-template-columns: repeat(3, 1fr);
}
.om-card {
	background: var(--white);
	border: 1px solid var(--line);
	transition: transform 0.35s var(--ease), box-shadow 0.35s var(--ease);
}
.om-card:hover {
	transform: translateY(-6px);
	box-shadow: 0 24px 48px rgba(23, 25, 18, 0.12);
}
.om-card__link {
	display: flex;
	flex-direction: column;
	height: 100%;
	text-decoration: none;
	color: inherit;
}
.om-card__media {
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: var(--paper);
}
.om-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.6s var(--ease);
}
.om-card:hover .om-card__media img {
	transform: scale(1.05);
}
.om-card__doc-cover {
	width: 100%;
	height: 100%;
	background: var(--ink);
	color: var(--lima);
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	padding: 1.4rem;
}
/* Portadas alternadas con la paleta de campaña */
.om-card--informe:nth-child(3n + 2) .om-card__doc-cover {
	background: var(--lima);
	color: var(--gris-2);
}
.om-card--informe:nth-child(3n + 2) .om-card__doc-brand {
	color: var(--ink);
}
.om-card--informe:nth-child(3n) .om-card__doc-cover {
	background: linear-gradient(160deg, var(--gris), var(--gris-2));
	color: var(--lima);
}
.om-card--informe:nth-child(3n) .om-card__doc-brand {
	color: var(--paper);
}
.om-card__doc-title {
	font-size: 1.35rem;
	font-weight: 300;
	letter-spacing: var(--track-tight);
	line-height: 1.15;
}
.om-card__doc-brand {
	font-size: 0.85rem;
	color: var(--gris);
}
.om-card__body {
	display: flex;
	flex-direction: column;
	gap: 0.55rem;
	padding: 1.3rem 1.4rem 1.5rem;
	flex-grow: 1;
}
.om-card__meta {
	display: flex;
	align-items: center;
	gap: 0.8rem;
	margin: 0;
	font-size: 0.82rem;
	color: var(--gris-2);
}
.om-card__date {
	font-variant-numeric: tabular-nums;
}
.om-card__title {
	font-size: 1.28rem;
	font-weight: 400;
	letter-spacing: var(--track);
	line-height: 1.25;
	margin: 0;
}
.om-card__excerpt {
	font-size: 0.95rem;
	color: var(--gris-2);
	margin: 0;
	flex-grow: 1;
}
.om-card__cta {
	font-size: 0.95rem;
	font-weight: 500;
	margin-top: 0.4rem;
}
.om-card__cta span {
	display: inline-block;
	transition: transform 0.25s var(--ease);
}
.om-card:hover .om-card__cta span {
	transform: translateX(5px);
}

/* =============================================================
   Multimedia
   ============================================================= */
.om-video-feature video {
	width: 100%;
	aspect-ratio: 16 / 9;
	background: var(--ink);
	box-shadow: 0 30px 70px rgba(23, 25, 18, 0.35);
}
.om-videos-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: clamp(1.2rem, 2.5vw, 2rem);
}
.om-video-card {
	margin: 0;
}
.om-video-card video {
	width: 100%;
	aspect-ratio: 16 / 9;
	background: var(--ink);
	border: 1px solid var(--line);
}
.om-video-card figcaption,
.om-audio-card figcaption {
	padding-top: 0.7rem;
	font-size: 0.98rem;
	font-weight: 500;
}
.om-audios {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: clamp(1.2rem, 2.5vw, 2rem);
}
.om-audio-card {
	margin: 0;
	padding: 1.4rem;
	background: var(--white);
	border: 1px solid var(--line);
}
.om-audio-card audio {
	width: 100%;
	margin-top: 0.6rem;
}

/* =============================================================
   CTA Formación (lima)
   ============================================================= */
.om-formacion-cta {
	position: relative;
	overflow: hidden;
}
.om-formacion-cta .om-container {
	position: relative;
	z-index: 2;
}
.om-formacion-cta__title {
	font-size: var(--fs-h2);
	display: flex;
	flex-direction: column;
	margin-bottom: 1.2rem;
}
.om-formacion-cta__indent {
	padding-left: clamp(2rem, 8vw, 7rem);
	color: var(--gris-2);
}
.om-formacion-cta__sub {
	max-width: 52ch;
	margin-bottom: 2rem;
}
.om-formacion-cta__obj {
	position: absolute;
	right: clamp(-60px, 1vw, 60px);
	bottom: -70px;
	width: clamp(200px, 24vw, 380px);
	filter: drop-shadow(0 24px 44px rgba(23, 25, 18, 0.3));
	animation: om-float 8s ease-in-out infinite;
	pointer-events: none;
	z-index: 1;
}

/* =============================================================
   Cabeceras de página
   ============================================================= */
.om-page-head {
	background: var(--paper);
	border-bottom: 1px solid var(--line);
	padding-block: clamp(3rem, 7vw, 5.5rem);
}
.om-page-head__title {
	font-size: clamp(2.6rem, 6.5vw, 5rem);
	margin-bottom: 0.3em;
}
.om-page-head__title--sm {
	font-size: clamp(2.1rem, 4.5vw, 3.4rem);
	max-width: 22ch;
}
.om-page-head__intro {
	font-size: 1.15rem;
	color: var(--gris-2);
	max-width: 62ch;
	margin: 0;
}
.om-page-head--informe,
.om-page-head--post {
	background: var(--ink);
	color: var(--paper);
	border-bottom: none;
}
.om-page-head--informe .om-page-head__intro,
.om-page-head--post .om-page-head__intro {
	color: var(--gris);
}
.om-page-head .om-card__meta {
	margin-bottom: 1.2rem;
	color: var(--gris);
}

/* =============================================================
   Contenido / prosa
   ============================================================= */
.om-prose {
	max-width: 760px;
}
.om-prose h2 {
	font-size: 1.9rem;
	margin-top: 2.2rem;
}
.om-prose h3 {
	font-size: 1.4rem;
	margin-top: 1.8rem;
	font-weight: 400;
}
.om-prose a {
	text-decoration-color: var(--lima);
	text-decoration-thickness: 2px;
	text-underline-offset: 3px;
}
.om-prose blockquote {
	margin: 2rem 0;
	padding: 1.4rem 1.8rem;
	border-left: 4px solid var(--lima);
	background: var(--paper);
	font-size: 1.15rem;
	font-weight: 300;
}
.om-prose img {
	margin-block: 1.5rem;
}
.om-prose ul,
.om-prose ol {
	padding-left: 1.3rem;
}
.om-prose li {
	margin-bottom: 0.4rem;
}
.om-single-hero {
	margin-top: clamp(2rem, 5vw, 3.5rem);
}
.om-single-hero img {
	width: 100%;
	aspect-ratio: 21 / 9;
	object-fit: cover;
}
.om-post-nav {
	display: flex;
	justify-content: space-between;
	gap: 2rem;
	padding-block: 2.5rem;
	border-top: 1px solid var(--line);
}
.om-post-nav a {
	text-decoration: none;
	max-width: 45%;
}
.om-post-nav a:hover {
	text-decoration: underline;
	text-decoration-color: var(--lima);
	text-decoration-thickness: 2px;
}

/* =============================================================
   Filtros y paginación
   ============================================================= */
.om-filters {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem;
	margin-bottom: clamp(2rem, 4vw, 3rem);
}
.om-filters__item {
	padding: 0.5rem 1.2rem;
	border: 1px solid var(--line);
	border-radius: 999px;
	text-decoration: none;
	font-size: 0.94rem;
	transition: background 0.25s, color 0.25s;
}
.om-filters__item:hover {
	background: var(--paper);
}
.om-filters__item.is-active {
	background: var(--ink);
	color: var(--lima);
	border-color: var(--ink);
}
.om-pagination {
	margin-top: clamp(2.5rem, 5vw, 4rem);
}
.om-pagination .nav-links {
	display: flex;
	gap: 0.5rem;
	justify-content: center;
}
.om-pagination .page-numbers {
	display: grid;
	place-items: center;
	min-width: 44px;
	height: 44px;
	padding-inline: 0.6rem;
	border: 1px solid var(--line);
	border-radius: 999px;
	text-decoration: none;
	font-variant-numeric: tabular-nums;
}
.om-pagination .page-numbers.current {
	background: var(--ink);
	color: var(--lima);
	border-color: var(--ink);
}
.om-pagination .page-numbers:hover:not(.current) {
	background: var(--paper);
}

/* =============================================================
   Formularios
   ============================================================= */
.om-search {
	display: flex;
	gap: 0.6rem;
	max-width: 480px;
}
.om-search__field {
	flex: 1;
	padding: 0.7rem 1.1rem;
	border: 1px solid var(--line);
	border-radius: 999px;
	font-family: var(--font);
	font-size: 1rem;
	background: var(--white);
}
.om-search__field:focus {
	outline: 2px solid var(--lima);
	outline-offset: 1px;
}

.om-form__grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1.1rem;
	margin-bottom: 1.1rem;
}
.om-form__field {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	font-size: 0.94rem;
	font-weight: 500;
}
.om-form__field input,
.om-form__field textarea {
	padding: 0.75rem 1rem;
	border: 1px solid var(--line);
	border-radius: var(--radius);
	font-family: var(--font);
	font-size: 1rem;
	background: var(--white);
}
.om-form__field input:focus,
.om-form__field textarea:focus {
	outline: 2px solid var(--lima);
	outline-offset: 1px;
	border-color: var(--ink);
}
.om-form__check {
	display: flex;
	gap: 0.6rem;
	align-items: flex-start;
	font-size: 0.9rem;
	margin-block: 1.1rem 1.5rem;
}
.om-form__hp {
	position: absolute;
	left: -9999px;
}
.om-form__notice {
	padding: 1rem 1.3rem;
	margin-bottom: 1.5rem;
	border-left: 4px solid var(--lima);
	background: var(--paper);
}
.om-form__notice.is-error {
	border-left-color: #d9534f;
}
.om-contacto__grid {
	display: grid;
	grid-template-columns: 1.4fr 1fr;
	gap: clamp(2rem, 6vw, 5rem);
	align-items: start;
}
.om-contacto__block {
	padding: 1.5rem;
	background: var(--paper);
	border: 1px solid var(--line);
	margin-bottom: 1.5rem;
}
.om-contacto__block h2 {
	font-size: 1.15rem;
	font-weight: 500;
}
.om-contacto__block p:last-child {
	margin-bottom: 0;
}
.om-contacto__obj {
	opacity: 0.9;
}

/* =============================================================
   Itinerarios (formación)
   ============================================================= */
.om-itinerarios {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: clamp(1.2rem, 2.5vw, 2rem);
}
.om-itinerario {
	border: 1px solid var(--line);
	padding: clamp(1.5rem, 3vw, 2.2rem);
	position: relative;
	transition: transform 0.35s var(--ease), box-shadow 0.35s var(--ease);
	background: var(--white);
}
.om-itinerario:hover {
	transform: translateY(-5px);
	box-shadow: 0 20px 44px rgba(23, 25, 18, 0.1);
}
.om-itinerario__num {
	font-size: 0.9rem;
	font-weight: 500;
	color: var(--gris-2);
	display: inline-block;
	padding: 0.25rem 0.7rem;
	border-radius: 999px;
	background: var(--lima);
	color: var(--ink);
	margin-bottom: 1.1rem;
}
.om-itinerario h2 {
	font-size: 1.4rem;
	font-weight: 400;
}
.om-itinerario p {
	color: var(--gris-2);
	margin: 0;
}

/* =============================================================
   CRN cards
   ============================================================= */
.om-crn-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: clamp(1.2rem, 2.5vw, 2rem);
}
.om-crn-card {
	background: var(--white);
	border: 1px solid var(--line);
	padding: clamp(1.6rem, 3vw, 2.4rem);
}
.om-crn-card h3 {
	font-size: 1.45rem;
	font-weight: 400;
	margin-top: 1rem;
}
.om-crn-card p {
	color: var(--gris-2);
	margin: 0;
}

/* =============================================================
   Mapa sectorial placeholder
   ============================================================= */
.om-mapa-placeholder {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: clamp(2rem, 5vw, 4rem);
	align-items: center;
	background: linear-gradient(160deg, var(--gris), var(--gris-2));
	color: var(--white);
	padding: clamp(2rem, 5vw, 4rem);
	margin-bottom: 2.5rem;
}
.om-mapa-placeholder img {
	width: clamp(180px, 22vw, 320px);
	filter: drop-shadow(0 24px 44px rgba(23, 25, 18, 0.35));
	animation: om-float 9s ease-in-out infinite;
}
.om-mapa-placeholder h2 {
	font-size: var(--fs-h2-sm);
}
.om-mapa-placeholder .om-arrow-link {
	color: var(--lima);
}

/* =============================================================
   Zona privada
   ============================================================= */
.om-login-wrap {
	display: grid;
	grid-template-columns: 1.2fr 1fr;
	gap: clamp(2rem, 6vw, 5rem);
	align-items: center;
}
.om-login-card {
	background: var(--white);
	border: 1px solid var(--line);
	padding: clamp(1.8rem, 4vw, 3rem);
}
.om-login-card form p {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	margin-bottom: 1.1rem;
}
.om-login-card label {
	font-size: 0.94rem;
	font-weight: 500;
}
.om-login-card input[type="text"],
.om-login-card input[type="password"] {
	padding: 0.75rem 1rem;
	border: 1px solid var(--line);
	border-radius: var(--radius);
	font-family: var(--font);
	font-size: 1rem;
}
.om-login-card input:focus {
	outline: 2px solid var(--lima);
	outline-offset: 1px;
}
.om-login-card .login-remember {
	flex-direction: row;
	align-items: center;
	gap: 0.5rem;
}
.om-login-card input[type="submit"] {
	background: var(--ink);
	color: var(--lima);
	border: none;
	border-radius: 999px;
	padding: 0.85rem 1.7rem;
	font-family: var(--font);
	font-size: 1rem;
	cursor: pointer;
	transition: background 0.25s;
}
.om-login-card input[type="submit"]:hover {
	background: var(--ink-2);
}
.om-login-card__note {
	font-size: 0.9rem;
	color: var(--gris-2);
	margin: 0.5rem 0 0;
}
.om-login-side {
	display: grid;
	place-items: center;
}
.om-login-side img {
	animation: om-float 8s ease-in-out infinite;
	filter: drop-shadow(0 24px 44px rgba(23, 25, 18, 0.25));
}

.om-admin-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: clamp(1rem, 2.5vw, 1.8rem);
	margin-bottom: 2.5rem;
}
.om-admin-card {
	display: block;
	padding: clamp(1.4rem, 3vw, 2rem);
	border: 1px solid var(--line);
	background: var(--white);
	text-decoration: none;
	transition: transform 0.3s var(--ease), box-shadow 0.3s var(--ease), background 0.3s;
}
.om-admin-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 18px 40px rgba(23, 25, 18, 0.1);
	background: var(--lima);
}
.om-admin-card h2 {
	font-size: 1.25rem;
	font-weight: 500;
	margin-bottom: 0.3rem;
}
.om-admin-card p {
	font-size: 0.92rem;
	color: var(--gris-2);
	margin: 0;
}
.om-admin-card--out {
	background: var(--paper);
}

/* =============================================================
   404
   ============================================================= */
.om-404__inner {
	text-align: center;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1rem;
	padding-block: 2rem;
}
.om-404__obj {
	animation: om-float 7s ease-in-out infinite;
}
.om-404__title {
	font-size: clamp(5rem, 16vw, 11rem);
	line-height: 1;
	margin: 0;
	color: var(--lima);
	-webkit-text-stroke: 2px var(--ink);
}
.om-404__text {
	font-size: 1.2rem;
	max-width: 42ch;
}
.om-404__search {
	margin-top: 1.5rem;
	width: 100%;
	display: flex;
	justify-content: center;
}

/* =============================================================
   Vacíos
   ============================================================= */
.om-empty {
	font-size: 1.15rem;
	color: var(--gris-2);
	margin-bottom: 1.5rem;
}

/* =============================================================
   Footer
   ============================================================= */
.om-footer {
	background: var(--ink);
	color: var(--paper);
	overflow: hidden;
}
.om-footer__tagline {
	border-bottom: 1px solid var(--line-light);
	padding: clamp(2.5rem, 7vw, 5rem) var(--gutter) 0;
	line-height: 0.85;
}
.om-footer__tagline span {
	display: block;
	font-size: clamp(4rem, 13vw, 12rem);
	font-weight: 300;
	letter-spacing: var(--track-tight);
	color: transparent;
	-webkit-text-stroke: 1.5px rgba(224, 255, 0, 0.55);
	white-space: nowrap;
	transform: translateY(0.12em);
}
.om-footer__grid {
	display: grid;
	grid-template-columns: 1.5fr 1fr 1.3fr 1fr;
	gap: clamp(2rem, 5vw, 4rem);
	padding-block: clamp(2.5rem, 6vw, 4.5rem);
}
.om-footer__brand {
	font-size: 1.3rem;
	font-weight: 300;
	letter-spacing: var(--track-tight);
	line-height: 1.25;
	margin-bottom: 1rem;
}
.om-footer__desc {
	font-size: 0.92rem;
	color: var(--gris);
	margin: 0;
}
.om-footer__heading {
	font-size: 0.82rem;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.14em;
	color: var(--lima);
	margin-bottom: 1.1rem;
}
.om-footer__menu {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.55rem;
	font-size: 0.95rem;
}
.om-footer__menu a {
	color: var(--paper);
	text-decoration: none;
}
.om-footer__menu a:hover {
	color: var(--lima);
}
.om-footer__menu--static {
	color: var(--gris);
}
.om-footer__legal {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	flex-wrap: wrap;
	padding-block: 1.4rem;
	border-top: 1px solid var(--line-light);
	font-size: 0.85rem;
	color: var(--gris);
}
.om-footer__legal p {
	margin: 0;
}
.om-footer__legal-menu {
	list-style: none;
	display: flex;
	gap: 1.5rem;
	margin: 0;
	padding: 0;
}
.om-footer__legal-menu a {
	color: var(--gris);
	text-decoration: none;
}
.om-footer__legal-menu a:hover {
	color: var(--lima);
}

/* =============================================================
   Animación de aparición al hacer scroll
   ============================================================= */
.om-reveal {
	opacity: 0;
	transform: translateY(28px);
	transition: opacity 0.7s var(--ease), transform 0.7s var(--ease);
}
.om-reveal.is-visible {
	opacity: 1;
	transform: none;
}
@media (prefers-reduced-motion: reduce) {
	.om-reveal {
		opacity: 1;
		transform: none;
		transition: none;
	}
}

/* =============================================================
   Responsive
   ============================================================= */
@media (max-width: 1024px) {
	.om-cifras__grid,
	.om-cifras__grid--full {
		grid-template-columns: repeat(2, 1fr);
	}
	.om-indicador:nth-child(3n) {
		border-right: 1px solid var(--line-light);
	}
	.om-indicador:nth-child(2n) {
		border-right: none;
	}
	.om-cards--3 {
		grid-template-columns: repeat(2, 1fr);
	}
	.om-footer__grid {
		grid-template-columns: 1fr 1fr;
	}
}

/* Menú colapsado a burger cuando la fila no cabe con holgura */
@media (max-width: 1150px) {
	.om-nav {
		position: fixed;
		inset: 76px 0 auto 0;
		background: var(--paper);
		border-bottom: 1px solid var(--line);
		flex-direction: column;
		align-items: stretch;
		gap: 0;
		padding: 1rem var(--gutter) 1.6rem;
		transform: translateY(-130%);
		transition: transform 0.4s var(--ease);
		z-index: 90;
		max-height: calc(100vh - 76px);
		overflow-y: auto;
	}
	.om-nav.is-open {
		transform: none;
	}
	.om-nav__list {
		flex-direction: column;
		align-items: stretch;
		gap: 0;
	}
	.om-nav__list a {
		display: block;
		padding: 0.9rem 0;
		font-size: 1.15rem;
		border-bottom: 1px solid var(--line);
		white-space: normal;
	}
	.om-nav__list .sub-menu {
		display: block;
		position: static;
		border: none;
		box-shadow: none;
		background: transparent;
		padding: 0 0 0 1.2rem;
	}
	.om-nav__actions {
		margin-top: 1.2rem;
	}
	.om-burger {
		display: flex;
	}
}

@media (max-width: 860px) {
	.om-que-es__grid,
	.om-contacto__grid,
	.om-login-wrap {
		grid-template-columns: 1fr;
	}
	.om-que-es__media {
		order: -1;
	}
	.om-mapa-placeholder {
		grid-template-columns: 1fr;
		text-align: center;
		justify-items: center;
	}
	.om-hero__obj--mando {
		opacity: 0.45;
	}
	.om-admin-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 640px) {
	.om-hero__line--2 {
		padding-left: 1.5rem;
	}
	.om-hero__line--3 {
		padding-left: 3rem;
	}
	.om-hero__title {
		overflow-wrap: anywhere;
	}
	.om-formacion-cta__indent {
		padding-left: 1.25rem;
	}
	.om-footer__tagline span {
		white-space: normal;
	}
	.om-cards--3,
	.om-cifras__grid,
	.om-cifras__grid--full,
	.om-videos-grid,
	.om-audios,
	.om-itinerarios,
	.om-crn-grid,
	.om-form__grid,
	.om-admin-grid {
		grid-template-columns: 1fr;
	}
	.om-indicador {
		border-right: none !important;
	}
	.om-section__head {
		flex-direction: column;
		align-items: flex-start;
		gap: 1rem;
	}
	.om-hero {
		min-height: auto;
	}
	.om-hero__obj--engranajes {
		display: none;
	}
	.om-footer__grid {
		grid-template-columns: 1fr;
	}
	.om-post-nav {
		flex-direction: column;
	}
	.om-post-nav a {
		max-width: 100%;
	}
}
