:root {

	/* === Endurance Intelligence — tokens de color (DESIGN.md 2.1 / 2.2) ===
	   IDENTIDAD DE COLOR PROPIA DEL PLUGIN. La paleta Endurance se define con
	   HEX DIRECTO, independiente del tema activo. Antes estos tokens heredaban
	   de Andromeda con fallback Endurance (var(--wp--preset--color--*, #hex)),
	   pero un tema con paleta clara (p.ej. Andromeda por defecto: surface
	   #ffffff, brand teal) ANULA el fallback y rompe la identidad de marca y el
	   contraste AA. Por eso la fuente por defecto es siempre el hex Endurance.

	   OVERRIDE OPCIONAL (NO activo, solo documentado): un sitio que quiera
	   reutilizar la paleta de su child theme (Andromeda) puede reasignar estos
	   tokens en el CSS del hijo. Al optar, el sitio asume la responsabilidad
	   del contraste AA. Ejemplo:

	   :root {
	     --rm-color-canvas:        var(--wp--preset--color--canvas);
	     --rm-color-surface:       var(--wp--preset--color--surface);
	     --rm-color-text:          var(--wp--preset--color--text);
	     --rm-color-text-soft:     var(--wp--preset--color--text-soft);
	     --rm-color-border:        var(--wp--preset--color--border);
	     --rm-color-brand:         var(--wp--preset--color--brand);
	     --rm-color-accent-signal: var(--wp--preset--color--accent);
	     --rm-color-accent-2:      var(--wp--preset--color--accent-2);
	   }
	*/
	--rm-color-canvas: #12141f;
	--rm-color-surface: #1b1e2b;
	--rm-color-surface-alt: #222537;
	--rm-color-text: #f8f4ee;
	--rm-color-text-soft: #9b9eaa;
	--rm-color-border: #2a2e3c;
	--rm-color-brand: #39ff14;
	--rm-color-accent-signal: #39ff14;
	--rm-color-accent-2: #7b6fff;
	--rm-color-positive: #00c77a;
	--rm-color-negative: #ff8080;
	--rm-color-fastest-lap: var(--rm-color-accent-2);
	--rm-color-status-live: var(--rm-color-brand);
	--rm-color-status-upcoming: #e8c14a;
	--rm-color-status-finished: #555869;
	--rm-color-status-cancelled: var(--rm-color-negative);
	--rm-color-status-scheduled: var(--rm-color-text-soft);

	/* === Tipografía (DESIGN.md 3) === */
	--rm-font-display: "Barlow Condensed", system-ui, -apple-system, "Segoe UI", sans-serif;
	--rm-font-body: "Barlow Condensed", system-ui, -apple-system, "Segoe UI", sans-serif;
	--rm-text-hero: clamp(3rem, 8vw, 7rem);
	--rm-text-3xl: 3rem;
	--rm-text-2xl: 2rem;
	--rm-text-xl: 1.5rem;
	--rm-text-lg: 1.125rem;
	--rm-text-base: 1rem;
	--rm-text-sm: 0.8125rem;
	--rm-text-xs: 0.6875rem;

	/* === Espaciado base 4px (DESIGN.md 4) === */
	--rm-space-1: 0.25rem;
	--rm-space-2: 0.5rem;
	--rm-space-3: 0.75rem;
	--rm-space-4: 1rem;
	--rm-space-6: 1.5rem;
	--rm-space-8: 2rem;
	--rm-space-12: 3rem;
	--rm-space-16: 4rem;

	/* === Radios (DESIGN.md 5.1) === */
	--rm-radius-none: 0;
	--rm-radius-sm: 2px;
	--rm-radius-pill: 999px;

	/* === Layout (DESIGN.md 6) === */
	--rm-content-max: 1200px;
	--rm-wide-max: 1400px;
	--rm-gutter: 1.5rem;
	--rm-margin-desktop: 3rem;
	--rm-block-gap: 1.5rem;

	/* === Textura de papel milimetrado al 4% (DESIGN.md 5.3) === */
	--rm-grid-texture: radial-gradient(circle, rgba(248, 244, 238, 0.04) 1px, transparent 1px);
	--rm-grid-texture-size: 20px 20px;

	/* === Alias legacy → Endurance (compatibilidad con el CSS existente).
	   El verde señal (brand) queda RESERVADO para foco / líder / LIVE: el
	   alias decorativo --rm-color-accent apunta al borde, no al verde. === */
	--rm-color-bg: var(--rm-color-canvas);
	--rm-color-surface-strong: var(--rm-color-surface-alt);
	--rm-color-muted: var(--rm-color-text-soft);
	--rm-color-accent: var(--rm-color-border);
	--rm-color-accent-contrast: var(--rm-color-canvas);
	--rm-max-width: var(--flavor-wide-width, 1400px);
}

body.rm-template-body {
	margin: 0;
	background: var(--rm-color-bg);
}

.rm-site-header {
	background: var(--rm-color-canvas);
	border-bottom: 1px solid var(--rm-color-border);
	color: var(--rm-color-text);
}

.rm-site-header__inner {
	display: grid;
	grid-template-columns: 260px minmax(0, 1fr);
	gap: 40px;
	align-items: center;
	width: min(100% - 40px, 1720px);
	min-height: 132px;
	margin: 0 auto;
	padding: 24px 0;
}

.rm-site-title {
	display: inline-block;
	color: var(--rm-color-text);
	font-size: 2rem;
	font-weight: 900;
	line-height: 1;
	text-decoration: none;
	text-transform: uppercase;
}

.rm-site-logo img {
	display: block;
	max-width: 220px;
	height: auto;
}

.rm-site-description {
	color: var(--rm-color-text-soft);
	font-size: 1rem;
	margin: 0.4rem 0 0;
}

.rm-site-nav {
	display: flex;
	align-items: center;
	justify-content: flex-end;
}

.rm-site-nav > .rm-site-nav__list,
.rm-site-nav > .menu,
.rm-site-nav .rm-site-nav__list > ul {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
	justify-content: flex-end;
	margin: 0;
	padding: 0;
	list-style: none;
}

.rm-site-nav li {
	position: relative;
	margin: 0;
	list-style: none;
}

.rm-site-nav a {
	display: inline-flex;
	align-items: center;
	min-height: 48px;
	padding: 0 18px;
	color: var(--rm-color-text);
	font-weight: 900;
	text-decoration: none;
	text-transform: uppercase;
}

.rm-site-nav a:hover,
.rm-site-nav a:focus-visible,
.rm-site-nav .current-menu-item > a {
	background: var(--rm-color-surface-alt);
	box-shadow: inset 0 -5px 0 var(--rm-color-text-soft);
}

.rm-site-nav a:focus-visible {
	outline: 3px solid var(--rm-color-brand);
	outline-offset: 2px;
}

.rm-site-nav .sub-menu,
.rm-site-nav .children {
	position: absolute;
	z-index: 20;
	top: 100%;
	left: 0;
	display: none;
	min-width: 280px;
	margin: 0;
	padding: 14px 0;
	list-style: none;
	background: var(--rm-color-surface);
	border: 1px solid var(--rm-color-border);
	border-radius: 0;
	box-shadow: 0 16px 40px rgba(0, 0, 0, 0.35);
}

.rm-site-nav li:hover > .sub-menu,
.rm-site-nav li:focus-within > .sub-menu,
.rm-site-nav li:hover > .children,
.rm-site-nav li:focus-within > .children {
	display: block;
}

.rm-site-nav .sub-menu a,
.rm-site-nav .children a {
	display: flex;
	width: 100%;
	min-height: 48px;
	padding: 0 24px;
	white-space: nowrap;
	box-shadow: none;
}

.rm-site-nav .sub-menu a:hover,
.rm-site-nav .sub-menu a:focus-visible,
.rm-site-nav .children a:hover,
.rm-site-nav .children a:focus-visible {
	background: var(--rm-color-surface-alt);
	box-shadow: inset 5px 0 0 var(--rm-color-text-soft);
}

.rm-template,
.rm-events,
.rm-event,
.rm-circuit,
.rm-driver,
.rm-championship,
.rm-championship-gallery,
.rm-season,
.rm-session-list,
.rm-results,
.rm-standings {
	color: var(--rm-color-text);
	background: var(--rm-color-bg);
}

/* Enlaces genéricos heredan el color del contenedor, PERO se excluyen los
   .rm-button: estos definen su propio par de contraste (fondo crema
   --rm-color-text + texto oscuro --rm-color-canvas). Sin el :not(.rm-button),
   esta regla (especificidad 0,0,1,1) ganaba a .rm-button (0,0,1,0) y forzaba
   `color: inherit` (crema) sobre el botón → texto crema sobre fondo crema,
   ilegible (contraste 1:1). Ver .rm-button en ~L2095. */
.rm-template a:not(.rm-button),
.rm-events a:not(.rm-button),
.rm-championship-gallery a:not(.rm-button),
.rm-event a:not(.rm-button),
.rm-circuit a:not(.rm-button),
.rm-driver a:not(.rm-button),
.rm-championship a:not(.rm-button),
.rm-season a:not(.rm-button),
.rm-results a:not(.rm-button),
.rm-standings a:not(.rm-button) {
	color: inherit;
}

.rm-template a:focus-visible,
.rm-events a:focus-visible,
.rm-championship-gallery a:focus-visible,
.rm-button:focus-visible,
.rm-session-list a:focus-visible {
	outline: 3px solid var(--rm-color-brand);
	outline-offset: 2px;
}

.rm-kicker {
	color: var(--rm-color-accent);
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0;
	margin: 0 0 0.5rem;
	text-transform: uppercase;
}

.rm-section-header {
	margin: 0 0 1.5rem;
}

.rm-section-header h1,
.rm-section-header h2,
.rm-event-hero h1 {
	color: var(--rm-color-text);
	font-weight: 900;
	letter-spacing: 0;
	line-height: 1;
	margin: 0;
	text-transform: uppercase;
}

.rm-event-hero {
	min-height: 560px;
	position: relative;
	display: grid;
	align-items: end;
	overflow: hidden;
	background: var(--rm-color-bg);
}

.rm-event-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(18, 20, 31, 0.2), rgba(18, 20, 31, 0.96));
}

.rm-event-hero__image {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.rm-event-hero__content {
	position: relative;
	z-index: 1;
	width: min(100% - 32px, var(--rm-max-width));
	margin: 0 auto;
	padding: 0 0 72px;
}

.rm-event-hero h1 {
	max-width: 900px;
	font-size: clamp(3rem, 8vw, 6.5rem);
}

.rm-event-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem 1.25rem;
	color: var(--rm-color-muted);
	font-weight: 700;
	margin: 1rem 0 0;
}

.rm-event-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 340px;
	gap: 28px;
	width: min(100% - 32px, var(--rm-max-width));
	margin: 0 auto;
	padding: 56px 0;
}

.rm-event-main,
.rm-event-sidebar,
.rm-circuit,
.rm-driver,
.rm-results,
.rm-standings {
	min-width: 0;
}

.rm-content {
	color: var(--rm-color-muted);
	line-height: 1.7;
}

.rm-event-video {
	border-top: 4px solid var(--rm-color-accent);
	margin: 32px 0;
	padding-top: 18px;
}

.rm-event-video iframe,
.rm-event-video video {
	width: 100%;
	max-width: 100%;
	aspect-ratio: 16 / 9;
	height: auto;
}

.rm-event-sidebar {
	border-left: 4px solid var(--rm-color-accent);
	padding-left: 24px;
}

.rm-circuit--summary,
.rm-event-card,
.rm-empty {
	background: var(--rm-color-surface);
	border: 1px solid var(--rm-color-border);
}

.rm-circuit--summary {
	padding: 24px;
}

.rm-circuit--summary h2 {
	font-size: 1rem;
	margin-top: 0;
	text-transform: uppercase;
}

.rm-spec-list {
	margin: 0;
}

.rm-spec-list div {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	border-bottom: 1px solid var(--rm-color-border);
	padding: 12px 0;
}

.rm-spec-list dt {
	color: var(--rm-color-muted);
	font-weight: 700;
	text-transform: uppercase;
}

.rm-spec-list dd {
	margin: 0;
	text-align: right;
	font-weight: 800;
}

.rm-circuit__profile-image,
.rm-circuit__profile img {
	display: block;
	width: 100%;
	height: auto;
	margin-top: 20px;
	border: 1px solid var(--rm-color-border);
}

.rm-session-list {
	background: var(--rm-color-surface);
	padding: 56px max(16px, calc((100vw - var(--rm-max-width)) / 2));
}

.rm-event-main .rm-session-list {
	background: transparent;
	margin-top: 32px;
	padding: 0;
	overflow-x: auto;
}

.rm-event-main .rm-session-list .rm-kicker {
	writing-mode: horizontal-tb;
	text-orientation: mixed;
}

.rm-event-main .rm-session-list table {
	min-width: 560px;
}

.rm-session-list table,
.rm-results table,
.rm-standings table {
	width: 100%;
	border-collapse: collapse;
	color: var(--rm-color-text);
	background: var(--rm-color-bg);
}

.rm-session-list caption,
.rm-results caption,
.rm-standings caption {
	text-align: left;
	margin-bottom: 12px;
	color: var(--rm-color-muted);
}

.rm-session-list th,
.rm-session-list td,
.rm-results th,
.rm-results td,
.rm-standings th,
.rm-standings td {
	border-bottom: 1px solid var(--rm-color-border);
	padding: 18px;
	text-align: left;
	vertical-align: middle;
}

.rm-session-list thead th,
.rm-results thead th,
.rm-standings thead th {
	background: var(--rm-color-surface-alt);
	color: var(--rm-color-text);
}

.rm-session-list tbody th {
	font-size: 1.05rem;
	text-transform: uppercase;
}

.rm-event-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 18px;
	justify-content: flex-end;
	width: min(100% - 32px, var(--rm-max-width));
	margin: 0 auto;
	padding: 48px 0 64px;
}

.rm-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 0.75rem 1.5rem;
	background: var(--rm-color-accent);
	color: var(--rm-color-accent-contrast);
	font-weight: 800;
	text-decoration: none;
	text-transform: uppercase;
	border: 2px solid var(--rm-color-accent);
}

.rm-button--secondary {
	background: transparent;
	border-color: var(--rm-color-text);
}

.rm-events {
	padding: 48px max(16px, calc((100vw - var(--rm-max-width)) / 2));
}

.rm-calendar {
	--rm-calendar-bg: var(--rm-color-canvas);
	--rm-calendar-text: var(--rm-color-text);
	--rm-calendar-muted: var(--rm-color-text-soft);
	--rm-calendar-accent: var(--rm-color-border);
	--rm-calendar-accent-strong: var(--rm-color-surface-alt);
	--rm-calendar-border: var(--rm-color-border);
	--rm-calendar-inverse: var(--rm-color-text);
	width: min(100% - 32px, var(--rm-max-width));
	margin: 0 auto;
	padding: clamp(28px, 4vw, 48px);
	color: var(--rm-calendar-text);
	background: var(--rm-calendar-bg);
	border: 1px solid var(--rm-calendar-border);
	border-radius: 0;
}

.rm-calendar__toolbar {
	display: flex;
	gap: 0.5rem;
	margin-bottom: 1rem;
}

.rm-calendar__button {
	display: inline-grid;
	place-items: center;
	width: 2.75rem;
	height: 2.75rem;
	color: var(--rm-color-text);
	background: var(--rm-color-canvas);
	border: 2px solid var(--rm-color-text);
	border-radius: 0;
	font: inherit;
	font-size: 1.35rem;
	font-weight: 900;
	line-height: 1;
	cursor: pointer;
}

.rm-calendar__button:hover,
.rm-calendar__button:focus-visible {
	background: var(--rm-calendar-accent);
	border-color: var(--rm-calendar-accent);
	color: var(--rm-calendar-inverse);
	outline: 3px solid var(--rm-color-text);
	outline-offset: 3px;
}

.rm-calendar__button:disabled {
	color: var(--rm-color-text-soft);
	background: var(--rm-color-surface);
	border-color: var(--rm-color-border);
	cursor: not-allowed;
	opacity: 0.72;
}

.rm-calendar__button:disabled:hover,
.rm-calendar__button:disabled:focus-visible {
	color: var(--rm-color-text-soft);
	background: var(--rm-color-surface);
	border-color: var(--rm-color-border);
	outline: none;
}

.rm-calendar__chevron {
	display: block;
	width: 0.85rem;
	height: 0.85rem;
	border-top: 0.22rem solid currentcolor;
	border-right: 0.22rem solid currentcolor;
}

.rm-calendar__chevron--up {
	transform: translateY(0.18rem) rotate(-45deg);
}

.rm-calendar__chevron--down {
	transform: translateY(-0.18rem) rotate(135deg);
}

.rm-calendar__chevron--right {
	transform: translateX(-0.12rem) rotate(45deg);
}

.rm-calendar__list {
	display: grid;
	gap: calc(1rem + 5px);
	max-height: min(72vh, 46rem);
	overflow-y: auto;
	padding-right: 0.35rem;
	scroll-snap-type: y proximity;
	scrollbar-width: none;
	-ms-overflow-style: none;
}

.rm-calendar__list::-webkit-scrollbar {
	display: none;
}

.rm-events > .rm-empty,
.rm-calendar > .rm-empty {
	display: block;
	width: 100%;
	max-width: none;
	writing-mode: horizontal-tb;
	text-orientation: mixed;
}

.rm-calendar a:focus-visible {
	outline: 3px solid var(--rm-color-brand);
	outline-offset: 2px;
}

.rm-calendar-event {
	display: grid;
	grid-template-columns: minmax(5.5rem, 7.75rem) minmax(11rem, 22rem) minmax(0, 1fr) minmax(3.75rem, 5rem);
	gap: 0;
	align-items: stretch;
	min-width: 0;
	min-height: clamp(11rem, 16vw, 13.75rem);
	padding: 0;
	color: var(--rm-calendar-inverse);
	background: var(--rm-color-surface);
	border: 0;
	border-left: 4px solid var(--rm-calendar-accent);
	border-radius: 0;
	scroll-snap-align: start;
}

.rm-calendar-event:nth-child(even) {
	background: var(--rm-calendar-accent);
}

.rm-calendar-event__media {
	display: grid;
	place-items: center;
	overflow: hidden;
	min-height: 100%;
	color: var(--rm-calendar-inverse);
	background: color-mix(in srgb, var(--rm-calendar-accent-strong) 72%, #000);
	border-radius: 0;
	text-decoration: none;
}

.rm-calendar-event__image {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.rm-calendar-event__date {
	display: grid;
	place-content: center;
	justify-items: center;
	min-width: 0;
	padding: clamp(1rem, 2vw, 1.6rem) 0.75rem;
	color: var(--rm-calendar-inverse);
	background: var(--rm-color-canvas);
	font-weight: 900;
	line-height: 1;
	text-transform: uppercase;
}

.rm-calendar-event:nth-child(even) .rm-calendar-event__date {
	color: var(--rm-color-text);
	background: var(--rm-color-surface);
}

.rm-calendar-event__date span {
	font-size: clamp(0.85rem, 1.4vw, 1rem);
}

.rm-calendar-event__date strong {
	font-size: clamp(3rem, 5vw, 4.75rem);
}

.rm-calendar-event__body {
	display: grid;
	align-content: center;
	gap: 0.65rem;
	min-width: 0;
	padding: clamp(1.2rem, 3vw, 2.4rem);
}

.rm-calendar-event__chips {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 0;
}

.rm-calendar-event__chips span {
	display: inline-flex;
	align-items: center;
	min-height: 1.9rem;
	padding: 0.2rem 0.8rem;
	color: var(--rm-calendar-inverse);
	background: color-mix(in srgb, var(--rm-color-canvas) 82%, var(--rm-calendar-accent));
	border-radius: 0;
	font-size: 0.82rem;
	font-weight: 800;
	text-transform: uppercase;
}

.rm-calendar-event__title {
	margin: 0;
	color: var(--rm-calendar-inverse);
	font-size: clamp(1.6rem, 3.1vw, 2.85rem);
	font-weight: 900;
	line-height: 1.05;
	text-transform: uppercase;
}

.rm-calendar-event__title a {
	color: inherit;
	text-decoration: none;
}

.rm-calendar-event__title a:hover,
.rm-calendar-event__title a:focus-visible {
	text-decoration: underline;
	text-decoration-thickness: 0.14em;
	text-underline-offset: 0.18em;
}

.rm-calendar-event__meta {
	display: block;
	margin: 0;
	color: var(--rm-calendar-inverse);
	font-weight: 700;
}

.rm-calendar-event__meta div {
	display: block;
	min-width: 0;
}

.rm-calendar-event__meta dt {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.rm-calendar-event__meta dd {
	margin: 0;
	overflow-wrap: anywhere;
}

.rm-calendar-event__cta {
	display: grid;
	place-items: center;
	min-width: 0;
	color: var(--rm-calendar-inverse);
	background: color-mix(in srgb, var(--rm-color-canvas) 36%, transparent);
	border-left: 1px solid color-mix(in srgb, var(--rm-calendar-inverse) 10%, transparent);
	font-size: clamp(1.4rem, 2.4vw, 2rem);
	font-weight: 900;
	text-decoration: none;
}

.rm-calendar-event__cta .rm-calendar__chevron {
	width: 1rem;
	height: 1rem;
}

.rm-calendar-event__cta:hover,
.rm-calendar-event__cta:focus-visible {
	color: var(--rm-calendar-accent);
	background: var(--rm-calendar-inverse);
}

.rm-calendar-event__excerpt {
	max-width: 60rem;
	margin: 0;
	color: var(--rm-calendar-inverse);
	opacity: 0.9;
}

.rm-events__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 20px;
}

.rm-championship-gallery {
	width: min(100% - 32px, var(--rm-max-width));
	margin: 0 auto;
	padding: 56px 0;
}

.rm-championship-gallery__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 24px;
}

.rm-championship-card {
	display: grid;
	align-content: start;
	min-height: 100%;
	border: 1px solid var(--rm-color-border);
	background: var(--rm-color-surface);
}

.rm-championship-card__media {
	display: block;
	padding: 16px 16px 0;
	text-decoration: none;
}

.rm-championship-card__image {
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
}

.rm-championship-card__media span {
	display: grid;
	place-items: center;
	aspect-ratio: 16 / 9;
	color: var(--rm-color-muted);
	background: var(--rm-color-surface);
}

.rm-championship-card__body {
	display: grid;
	gap: 18px;
	align-content: start;
	padding: 20px;
}

.rm-championship-card__title {
	margin: 0;
	font-size: clamp(1.1rem, 1.5vw, 1.45rem);
	line-height: 1.1;
	text-transform: uppercase;
}

.rm-championship-card__title a {
	text-decoration: none;
}

.rm-championship-card__excerpt {
	margin: 0;
	color: var(--rm-color-muted);
	line-height: 1.55;
}

.rm-championship-card__link {
	justify-self: start;
}

.rm-event-card {
	display: grid;
	min-height: 100%;
}

.rm-event-card__media {
	display: block;
	overflow: hidden;
}

.rm-event-card__image {
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
}

.rm-event-card__body {
	padding: 20px;
}

.rm-event-card__title {
	margin: 0;
	font-size: 1.4rem;
	text-transform: uppercase;
}

.rm-event-card__title a {
	text-decoration: none;
}

.rm-event-card__meta {
	display: grid;
	gap: 6px;
	color: var(--rm-color-muted);
}

.rm-circuit:not(.rm-circuit--summary):not(.rm-circuit--single),
.rm-driver:not(.rm-driver--single),
.rm-results,
.rm-standings {
	width: min(100% - 32px, var(--rm-max-width));
	margin: 0 auto;
	padding: 56px 0;
}

.rm-circuit--single,
.rm-driver--single,
.rm-championship--single,
.rm-season--single {
	width: auto;
	margin: 0;
	padding: 0;
}

.rm-entity-main {
	width: min(100% - 32px, var(--rm-max-width));
	margin: 0 auto;
	padding: 56px 0;
}

/* REC-3: el h2 "Eventos del campeonato" en mayúsculas, coherente con la
   identidad Endurance (resto de encabezados van uppercase). */
.rm-championship--single .rm-entity-main h2 {
	text-transform: uppercase;
}

.rm-events--embedded {
	padding-left: 0;
	padding-right: 0;
}

.rm-circuit__image,
.rm-driver__image {
	width: 100%;
	max-height: 520px;
	object-fit: cover;
	margin-bottom: 28px;
}

.rm-empty {
	color: var(--rm-color-muted);
	padding: 20px;
}

@media (prefers-reduced-motion: reduce) {

	*,
	*::before,
	*::after {
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
	}
}

@media (max-width: 780px) {

	.rm-site-header__inner {
		grid-template-columns: 1fr;
		gap: 20px;
	}

	.rm-site-nav {
		justify-content: flex-start;
		overflow-x: auto;
	}

	.rm-site-nav > .rm-site-nav__list,
	.rm-site-nav > .menu,
	.rm-site-nav .rm-site-nav__list > ul {
		justify-content: flex-start;
		flex-wrap: nowrap;
	}

	.rm-site-nav .sub-menu,
	.rm-site-nav .children {
		position: static;
		min-width: 220px;
		box-shadow: none;
	}

	.rm-event-hero {
		min-height: 440px;
	}

	.rm-event-layout {
		grid-template-columns: 1fr;
	}

	.rm-event-sidebar {
		border-left: 0;
		border-top: 4px solid var(--rm-color-accent);
		padding-left: 0;
		padding-top: 24px;
	}

	.rm-session-list {
		overflow-x: auto;
	}

	.rm-event-actions {
		justify-content: stretch;
	}

	.rm-button {
		width: 100%;
	}

	.rm-calendar {
		width: min(100% - 20px, var(--rm-max-width));
		padding: 1rem;
	}

	.rm-calendar-event {
		grid-template-columns: minmax(4.8rem, 6rem) minmax(0, 1fr) minmax(3.25rem, 4rem);
	}

	.rm-calendar-event__media {
		display: none;
	}

	.rm-calendar-event__date {
		align-self: stretch;
	}

	.rm-calendar-event__body {
		grid-column: 2;
	}

	.rm-calendar-event__cta {
		grid-column: 3;
	}
}

@media (max-width: 520px) {

	.rm-calendar-event {
		grid-template-columns: 1fr;
	}

	.rm-calendar-event__date,
	.rm-calendar-event__body,
	.rm-calendar-event__cta {
		grid-column: auto;
	}

	.rm-calendar-event__media {
		display: grid;
		min-height: 12rem;
	}

	.rm-calendar-event__date {
		justify-items: start;
	}

	.rm-calendar-event__cta {
		min-height: 3.25rem;
		border-top: 1px solid color-mix(in srgb, var(--rm-calendar-inverse) 12%, transparent);
		border-left: 0;
	}
}

/* Racing visual system and resilient boxed layout */
.rm-template *,
.rm-template *::before,
.rm-template *::after,
.rm-site-header *,
.rm-site-header *::before,
.rm-site-header *::after {
	box-sizing: border-box;
}

/* stylelint-disable */
:root {
	--rm-page-gutter: clamp(18px, 4vw, 64px);
	--rm-card-radius: 0;
	--rm-shadow-hard: 0 4px 16px rgba(0, 0, 0, 0.5);
}

.rm-template,
.rm-site-header {
	font-family: var(--rm-font-body);
}

/* Numerales tabulares en todos los contextos numéricos (DESIGN.md 3.3) */
.rm-template time,
.rm-calendar-event__date,
.rm-event-card__date,
.rm-session-list td,
.rm-session-list th,
.rm-results td,
.rm-results th,
.rm-standings td,
.rm-standings th,
.rm-circuit-card__specs dd,
.rm-spec-list dd {
	font-variant-numeric: tabular-nums lining-nums;
	font-feature-settings: "tnum" 1, "lnum" 1;
}

.rm-site-header {
	position: relative;
	z-index: 30;
	border-bottom-color: var(--rm-color-border);
}

.rm-site-header__inner {
	grid-template-columns: minmax(150px, 240px) minmax(0, 1fr);
	min-height: 78px;
	width: min(100% - var(--rm-page-gutter), 1720px);
	padding: 14px 0;
}

.rm-site-title {
	color: var(--rm-color-text-soft);
	font-size: clamp(1.35rem, 2vw, 2rem);
	text-shadow: 2px 2px 0 rgba(255, 255, 255, 0.18);
}

.rm-site-description {
	max-width: 28ch;
	color: var(--rm-color-text-soft);
}

.rm-site-nav a {
	min-height: 42px;
	padding: 0 12px;
	font-size: 0.86rem;
	letter-spacing: 0.06em;
}

.rm-event-hero {
	min-height: clamp(460px, 62vw, 760px);
	isolation: isolate;
	background-position: center;
	background-size: cover;
}

.rm-event-hero--has-image {
	background-color: var(--rm-color-canvas);
}

.rm-event-hero--no-image {
	background-color: var(--rm-color-canvas);
	background-image: var(--rm-grid-texture);
	background-size: var(--rm-grid-texture-size);
}

.rm-event-hero::after {
	z-index: 1;
	background:
		linear-gradient(90deg, rgba(18, 20, 31, 0.9), rgba(18, 20, 31, 0.28) 45%, rgba(18, 20, 31, 0.82)),
		linear-gradient(180deg, rgba(18, 20, 31, 0.18), rgba(18, 20, 31, 0.98) 88%);
}

.rm-event-hero__image {
	z-index: 0;
	object-position: center;
	filter: saturate(0.9) contrast(1.08);
}

.rm-event-hero--has-image .rm-event-hero__image {
	opacity: 1;
}

.rm-event-hero__content {
	z-index: 2;
}

.rm-event-hero__content,
.rm-event-layout,
.rm-event-actions,
.rm-entity-main,
.rm-circuit:not(.rm-circuit--summary):not(.rm-circuit--single),
.rm-driver:not(.rm-driver--single),
.rm-results,
.rm-standings {
	width: min(100% - var(--rm-page-gutter), var(--rm-max-width));
}

.rm-event-hero__content {
	padding-bottom: clamp(48px, 8vw, 112px);
}

.rm-kicker {
	display: inline-flex;
	width: fit-content;
	padding: 0.35rem 0.55rem;
	color: var(--rm-color-text);
	background: var(--rm-color-accent);
	font-size: 0.76rem;
	line-height: 1;
}

.rm-event-hero__content > .rm-event-hero__chips.rm-kicker {
	display: flex !important;
	flex-wrap: wrap;
	gap: 0.5rem;
	width: min(100%, fit-content);
	padding: 0 !important;
	color: inherit;
	background: transparent !important;
}

.rm-event-hero__chips span {
	display: inline-flex;
	align-items: center;
	width: fit-content;
	margin: 0 0.5rem 0.5rem 0;
	padding: 0.35rem 0.55rem;
	color: var(--rm-color-text);
	background: var(--rm-color-accent);
	border-radius: 0;
	line-height: 1;
}

.rm-section-header .rm-kicker,
.rm-event-main .rm-session-list .rm-kicker {
	padding-left: 0;
	color: var(--rm-color-text-soft);
	background: transparent;
}

.rm-section-header h1,
.rm-section-header h2,
.rm-event-hero h1 {
	max-width: 12ch;
	text-wrap: balance;
	text-shadow: 3px 3px 0 rgba(0, 0, 0, 0.75);
}

.rm-event-meta {
	align-items: center;
	color: var(--rm-color-text);
	font-size: 0.92rem;
	text-transform: uppercase;
}

.rm-event-layout {
	grid-template-columns: minmax(0, 1fr) minmax(280px, 360px);
	gap: clamp(24px, 4vw, 52px);
	padding: clamp(48px, 7vw, 88px) 0;
}

.rm-event--single .rm-event-layout,
.rm-event--single .rm-event-actions {
	width: min(100% - var(--rm-page-gutter), var(--flavor-wide-width, 1500px));
}

.rm-event--single .rm-event-layout {
	grid-template-columns: minmax(0, 1fr) minmax(260px, 320px);
	gap: clamp(20px, 3vw, 40px);
}

.rm-event-main > .rm-content {
	columns: 2 260px;
	column-gap: clamp(24px, 4vw, 48px);
}

.rm-content {
	color: var(--rm-color-text);
	font-size: 1rem;
}

.rm-content > :first-child {
	margin-top: 0;
}

.rm-event-video {
	margin: clamp(28px, 5vw, 56px) 0;
	padding-top: 0;
	border-top: 0;
}

.rm-event-video h2 {
	color: var(--rm-color-text-soft);
	font-size: 0.9rem;
	text-transform: uppercase;
}

.rm-event-video__frame {
	overflow: hidden;
	background: var(--rm-color-canvas);
	border: 1px solid var(--rm-color-border);
	border-bottom: 4px solid var(--rm-color-accent);
}

.rm-event-video__frame > iframe,
.rm-event-video__frame > video,
.rm-event-video__frame .wp-video,
.rm-event-video__frame .wp-video video {
	display: block;
	width: 100% !important;
	max-width: none;
	aspect-ratio: 16 / 9;
}

.rm-event-sidebar {
	align-self: start;
	padding-left: 0;
	border-left: 0;
}

.rm-circuit--summary,
.rm-event-card,
.rm-empty {
	background: var(--rm-color-surface);
	border-color: var(--rm-color-border);
	border-radius: var(--rm-card-radius);
}

.rm-circuit--summary {
	border-left: 4px solid var(--rm-color-accent);
	padding: clamp(20px, 3vw, 32px);
}

.rm-spec-list div {
	align-items: baseline;
	min-width: 0;
}

.rm-spec-list dt,
.rm-spec-list dd {
	overflow-wrap: anywhere;
}

.rm-circuit__profile,
.rm-circuit__profile-image {
	overflow: hidden;
	margin: 22px 0 0;
	background: var(--rm-color-canvas);
}

.rm-circuit__profile img,
.rm-circuit__profile-image {
	aspect-ratio: 1 / 1;
	object-fit: contain;
	padding: 14px;
}

.rm-session-list {
	padding: clamp(48px, 7vw, 84px) max(var(--rm-page-gutter), calc((100vw - var(--rm-max-width)) / 2));
}

.rm-event-main .rm-session-list {
	border-top: 1px solid var(--rm-color-border);
	padding-top: clamp(34px, 5vw, 56px);
}

.rm-session-list table,
.rm-results table,
.rm-standings table {
	table-layout: fixed;
	border: 1px solid var(--rm-color-border);
}

.rm-event--single .rm-event-main .rm-session-list {
	overflow-x: auto;
}

.rm-event--single .rm-event-main .rm-session-list table {
	min-width: 860px;
	table-layout: auto;
}

.rm-event--single .rm-event-main .rm-session-list .rm-section-header h2 {
	max-width: none;
	white-space: nowrap;
}

.rm-event--single .rm-event-main .rm-session-list th,
.rm-event--single .rm-event-main .rm-session-list td {
	overflow-wrap: normal;
	word-break: normal;
}

.rm-event--single .rm-event-main .rm-session-list thead th,
.rm-event--single .rm-event-main .rm-session-list td:nth-child(1),
.rm-event--single .rm-event-main .rm-session-list td:nth-child(4),
.rm-event--single .rm-event-main .rm-session-list td:nth-child(5) {
	white-space: nowrap;
}

.rm-event--single .rm-event-main .rm-session-list thead th:nth-child(1),
.rm-event--single .rm-event-main .rm-session-list tbody td:nth-child(1) {
	width: 13%;
}

.rm-event--single .rm-event-main .rm-session-list thead th:nth-child(2),
.rm-event--single .rm-event-main .rm-session-list tbody td:nth-child(2) {
	width: 18%;
}

.rm-event--single .rm-event-main .rm-session-list thead th:nth-child(3),
.rm-event--single .rm-event-main .rm-session-list tbody th[scope="row"] {
	width: 34%;
}

.rm-event--single .rm-event-main .rm-session-list thead th:nth-child(4),
.rm-event--single .rm-event-main .rm-session-list tbody td:nth-child(4) {
	width: 15%;
}

.rm-event--single .rm-event-main .rm-session-list thead th:nth-child(5),
.rm-event--single .rm-event-main .rm-session-list tbody td:nth-child(5) {
	width: 12%;
}

.rm-session-list th,
.rm-session-list td,
.rm-results th,
.rm-results td,
.rm-standings th,
.rm-standings td {
	overflow-wrap: anywhere;
}

.rm-session-list thead th,
.rm-results thead th,
.rm-standings thead th {
	background: var(--rm-color-surface-alt);
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.rm-session-list tbody tr:nth-child(even),
.rm-results tbody tr:nth-child(even),
.rm-standings tbody tr:nth-child(even) {
	background: var(--rm-color-surface-alt);
}

.rm-event-actions {
	align-items: center;
	border-top: 1px solid var(--rm-color-border);
}

.rm-button {
	min-width: min(100%, 220px);
	box-shadow: 4px 4px 0 rgba(0, 0, 0, 0.18);
}

.rm-button:hover,
.rm-button:focus-visible {
	background: var(--rm-color-text-soft);
	border-color: var(--rm-color-text-soft);
	color: var(--rm-color-canvas);
}

.rm-events {
	padding: clamp(48px, 7vw, 84px) max(var(--rm-page-gutter), calc((100vw - var(--rm-max-width)) / 2));
}

.is-layout-constrained > .rm-events,
.is-layout-constrained > .rm-calendar,
.wp-block-post-content > .rm-events,
.wp-block-post-content > .rm-calendar {
	width: 100vw;
	max-width: none;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}

.is-layout-constrained > .rm-calendar,
.wp-block-post-content > .rm-calendar {
	width: min(100vw - var(--rm-page-gutter), var(--rm-max-width));
	margin-left: 50%;
	margin-right: 0;
	transform: translateX(-50%);
}

.rm-events--gallery {
	background:
		linear-gradient(180deg, rgba(255, 255, 255, 0.02), transparent 220px),
		var(--rm-color-canvas);
}

.rm-events--gallery > .rm-section-header {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 20px;
	align-items: end;
	max-width: var(--rm-max-width);
}

.rm-events--gallery > .rm-section-header::after {
	content: "";
	width: min(28vw, 180px);
	height: 6px;
	background: var(--rm-color-accent);
}

.rm-events--gallery > .rm-section-header h2 {
	font-size: clamp(2.3rem, 6vw, 5.6rem);
}

.rm-events__grid {
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
	gap: clamp(20px, 3vw, 32px);
}

.rm-event-card {
	grid-template-rows: auto 1fr;
	min-width: 0;
	position: relative;
	overflow: hidden;
	border-top: 4px solid var(--rm-color-accent);
	transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}

.rm-event-card:hover,
.rm-event-card:focus-within {
	transform: translateY(-4px);
	border-color: var(--rm-color-text-soft);
	box-shadow: var(--rm-shadow-hard);
}

.rm-event-card__media {
	display: grid;
	position: relative;
	min-height: 0;
	overflow: hidden;
	background: var(--rm-color-canvas);
}

.rm-event-card__image {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 230px;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	filter: saturate(0.82) contrast(1.12);
	transition: transform 260ms ease, filter 260ms ease;
}

.rm-event-card:hover .rm-event-card__image,
.rm-event-card:focus-within .rm-event-card__image {
	transform: scale(1.045);
	filter: saturate(1) contrast(1.16);
}

.rm-event-card__media--empty {
	place-items: center;
	min-height: 230px;
	aspect-ratio: 16 / 10;
	color: var(--rm-color-text-soft);
	text-decoration: none;
	text-transform: uppercase;
	background:
		linear-gradient(135deg, rgba(0, 0, 0, 0.22), transparent 48%),
		var(--rm-color-surface);
}

.rm-event-card__date {
	position: absolute;
	left: 18px;
	bottom: 18px;
	display: grid;
	place-items: center;
	min-width: 74px;
	min-height: 74px;
	padding: 8px;
	color: var(--rm-color-canvas);
	background: var(--rm-color-text-soft);
	border-left: 6px solid var(--rm-color-accent);
	text-align: center;
	text-transform: uppercase;
	box-shadow: 6px 6px 0 rgba(0, 0, 0, 0.55);
}

.rm-event-card__date span {
	font-size: 0.78rem;
	font-weight: 900;
	line-height: 1;
}

.rm-event-card__date strong {
	font-size: 2rem;
	line-height: 0.95;
}

.rm-event-card__body {
	display: grid;
	gap: 14px;
	align-content: start;
	min-width: 0;
	padding: clamp(20px, 3vw, 28px);
}

.rm-event-card__title {
	font-size: clamp(1.25rem, 2vw, 1.7rem);
	line-height: 1.05;
	text-shadow: 2px 2px 0 rgba(0, 0, 0, 0.75);
}

.rm-event-card__title a {
	display: inline;
	background-image: linear-gradient(var(--rm-color-text-soft), var(--rm-color-text-soft));
	background-position: 0 100%;
	background-repeat: no-repeat;
	background-size: 0 2px;
	transition: background-size 180ms ease;
}

.rm-event-card__title a:hover,
.rm-event-card__title a:focus-visible {
	background-size: 100% 2px;
}

.rm-event-card__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 14px;
	margin: 0;
	color: var(--rm-color-text);
	font-size: 0.84rem;
	font-weight: 800;
	overflow-wrap: anywhere;
	text-transform: uppercase;
}

.rm-event-card__meta span,
.rm-event-card__meta time {
	display: inline-flex;
	align-items: center;
}

.rm-event-card__meta span::before {
	content: "";
	width: 6px;
	height: 6px;
	margin-right: 8px;
	background: var(--rm-color-accent);
}

.rm-event-card__link {
	justify-self: start;
	margin-top: 4px;
	color: var(--rm-color-text-soft);
	font-size: 0.82rem;
	font-weight: 900;
	letter-spacing: 0.08em;
	text-decoration: none;
	text-transform: uppercase;
}

.rm-event-card__link::after {
	content: " ->";
}

.rm-event-card__link:hover,
.rm-event-card__link:focus-visible {
	color: var(--rm-color-text);
}

.rm-circuit__image,
.rm-driver__image {
	display: block;
	aspect-ratio: 16 / 7;
	max-height: none;
	background: var(--rm-color-canvas);
}

.rm-entity-main {
	display: grid;
	gap: clamp(24px, 4vw, 48px);
}

@media (max-width: 980px) {

	.rm-site-header__inner {
		grid-template-columns: 1fr;
		gap: 14px;
	}

	.rm-site-nav {
		justify-content: flex-start;
		overflow-x: auto;
		scrollbar-width: thin;
	}

	.rm-site-nav > .rm-site-nav__list,
	.rm-site-nav > .menu,
	.rm-site-nav .rm-site-nav__list > ul {
		flex-wrap: nowrap;
		justify-content: flex-start;
		width: max-content;
	}

	.rm-event-layout {
		grid-template-columns: 1fr;
	}

	.rm-event-sidebar {
		border-top: 4px solid var(--rm-color-accent);
		padding-top: 24px;
	}
}

@media (max-width: 640px) {

	.rm-event-hero {
		min-height: 390px;
	}

	.rm-event-hero h1 {
		max-width: 10ch;
		font-size: clamp(2.55rem, 15vw, 4rem);
	}

	.rm-event-meta {
		font-size: 0.84rem;
	}

	.rm-event-main > .rm-content {
		columns: auto;
	}

	.rm-session-list table,
	.rm-results table,
	.rm-standings table {
		min-width: 640px;
		table-layout: auto;
	}

	.rm-session-list,
	.rm-results,
	.rm-standings {
		overflow-x: auto;
	}

	.rm-site-nav a {
		padding: 0 10px;
	}
}

/* Upcoming events block: reference layout */
.rm-events--gallery {
	padding-top: clamp(58px, 7vw, 96px);
	padding-bottom: clamp(58px, 7vw, 96px);
}

.rm-events--gallery .rm-events__header {
	display: flex;
	gap: 24px;
	align-items: center;
	justify-content: space-between;
	max-width: none;
	margin-bottom: clamp(42px, 5vw, 72px);
	padding-bottom: 32px;
	border-bottom: 1px solid var(--rm-color-border);
}

.rm-events--gallery .rm-events__header::after {
	content: none;
}

.rm-events--gallery .rm-events__header h2 {
	max-width: none;
	margin: 0;
	font-size: clamp(3rem, 5.5vw, 6rem);
	line-height: 0.95;
	color: var(--rm-color-text);
}

.rm-events__calendar-link {
	display: inline-flex;
	gap: 16px;
	align-items: center;
	color: var(--rm-color-text-soft);
	font-size: clamp(1rem, 1.35vw, 1.55rem);
	font-weight: 900;
	letter-spacing: 0.08em;
	text-decoration: none;
	text-transform: uppercase;
	white-space: nowrap;
}

.rm-events__calendar-link span {
	font-size: 1.8em;
	line-height: 1;
}

.rm-events__calendar-link:hover,
.rm-events__calendar-link:focus-visible {
	color: var(--rm-color-text);
}

.rm-events--gallery .rm-events__grid {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(28px, 3vw, 42px);
}

.rm-championship-list .rm-events__grid {
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
}

.rm-championship-event-card__body {
	align-content: start;
}

.rm-championship-event-card__excerpt {
	margin: 0;
	color: var(--rm-color-text);
	font-size: clamp(0.95rem, 1vw, 1.05rem);
	line-height: 1.45;
}

.rm-championship-event-card__link {
	align-self: end;
	justify-self: start;
	margin-top: auto;
}

.rm-events--gallery .rm-event-card {
	display: grid;
	grid-template-rows: auto 1fr;
	min-height: 100%;
	background: var(--rm-color-surface);
	border: 0;
	box-shadow: none;
	transform: none;
}

.rm-events--gallery .rm-event-card:hover,
.rm-events--gallery .rm-event-card:focus-within {
	transform: none;
	box-shadow: none;
}

.rm-events--gallery .rm-event-card__media {
	min-height: 0;
}

.rm-events--gallery .rm-event-card__image,
.rm-events--gallery .rm-event-card__media--empty {
	min-height: 0;
	aspect-ratio: 16 / 8.3;
}

.rm-events--gallery .rm-event-card__image {
	object-fit: cover;
	filter: saturate(0.95) contrast(1.05);
}

.rm-events--gallery .rm-event-card__body {
	gap: 16px;
	padding: clamp(28px, 3vw, 40px);
}

.rm-events--gallery .rm-event-card__round {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 6px 14px;
	align-items: start;
	margin: 0;
	color: var(--rm-color-text-soft);
	font-size: clamp(0.72rem, 0.84vw, 0.9rem);
	font-weight: 900;
	letter-spacing: 0.06em;
	line-height: 1.1;
	text-transform: uppercase;
}

.rm-events--gallery .rm-event-card__round span + span::before {
	content: none;
	margin-right: 0;
}

.rm-events--gallery .rm-event-card__event-name {
	min-width: 0;
	overflow-wrap: anywhere;
}

.rm-events--gallery .rm-event-card__date-line {
	display: inline-flex;
	gap: 0.45rem;
	align-items: center;
	justify-self: end;
	white-space: nowrap;
}

.rm-events--gallery .rm-event-card__date-line i,
.rm-events--gallery .rm-event-card__meta i {
	display: inline-block;
	flex: 0 0 auto;
	width: 1em;
	height: 1em;
	color: currentColor;
	background: currentColor;
	font-style: normal;
	line-height: 1;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-size: contain;
	mask-size: contain;
}

.rm-events--gallery .fa-calendar {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M152 64h144V24c0-13.3 10.7-24 24-24s24 10.7 24 24v40h40c35.3 0 64 28.7 64 64v320c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128c0-35.3 28.7-64 64-64h40V24c0-13.3 10.7-24 24-24s24 10.7 24 24v40zM48 192v256c0 8.8 7.2 16 16 16h320c8.8 0 16-7.2 16-16V192H48z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M152 64h144V24c0-13.3 10.7-24 24-24s24 10.7 24 24v40h40c35.3 0 64 28.7 64 64v320c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128c0-35.3 28.7-64 64-64h40V24c0-13.3 10.7-24 24-24s24 10.7 24 24v40zM48 192v256c0 8.8 7.2 16 16 16h320c8.8 0 16-7.2 16-16V192H48z'/%3E%3C/svg%3E");
}

.rm-events--gallery .fa-location-dot {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'%3E%3Cpath d='M215.7 499.2C267 435 384 279.4 384 192C384 86 298 0 192 0S0 86 0 192c0 87.4 117 243 168.3 307.2c12.3 15.3 35.1 15.3 47.4 0zM192 256a64 64 0 1 1 0-128a64 64 0 1 1 0 128z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'%3E%3Cpath d='M215.7 499.2C267 435 384 279.4 384 192C384 86 298 0 192 0S0 86 0 192c0 87.4 117 243 168.3 307.2c12.3 15.3 35.1 15.3 47.4 0zM192 256a64 64 0 1 1 0-128a64 64 0 1 1 0 128z'/%3E%3C/svg%3E");
}

.rm-events--gallery .fa-stopwatch {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M176 0h96c17.7 0 32 14.3 32 32s-14.3 32-32 32h-16v34.4c37.5 6.6 71.3 23.8 98.2 48.5l24.9-24.9c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-25.7 25.7C420.2 224.8 432 263.2 432 304c0 114.9-93.1 208-208 208S16 418.9 16 304C16 198 95.2 110.5 198 97.6V64h-22c-17.7 0-32-14.3-32-32s14.3-32 32-32zm48 448a144 144 0 1 0 0-288a144 144 0 1 0 0 288zm32-232v88c0 8.5-3.4 16.6-9.4 22.6l-48 48c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l38.6-38.6V216c0-17.7 14.3-32 32-32s32 14.3 32 32z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M176 0h96c17.7 0 32 14.3 32 32s-14.3 32-32 32h-16v34.4c37.5 6.6 71.3 23.8 98.2 48.5l24.9-24.9c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-25.7 25.7C420.2 224.8 432 263.2 432 304c0 114.9-93.1 208-208 208S16 418.9 16 304C16 198 95.2 110.5 198 97.6V64h-22c-17.7 0-32-14.3-32-32s14.3-32 32-32zm48 448a144 144 0 1 0 0-288a144 144 0 1 0 0 288zm32-232v88c0 8.5-3.4 16.6-9.4 22.6l-48 48c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l38.6-38.6V216c0-17.7 14.3-32 32-32s32 14.3 32 32z'/%3E%3C/svg%3E");
}

.rm-events--gallery .fa-flag-checkered {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M32 0C49.7 0 64 14.3 64 32v16l64-16l128 32l128-32c20.2-5.1 40 10.2 40 31v256c0 14.7-10 27.5-24.2 31l-143.8 36l-128-32l-64 16v110c0 17.7-14.3 32-32 32S0 497.7 0 480V32C0 14.3 14.3 0 32 0zm32 113.5v192l64-16v-192l-64 16zm192 32v192l96-24v-192l-96 24zm-64 176v-192l-64-16v192l64 16z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M32 0C49.7 0 64 14.3 64 32v16l64-16l128 32l128-32c20.2-5.1 40 10.2 40 31v256c0 14.7-10 27.5-24.2 31l-143.8 36l-128-32l-64 16v110c0 17.7-14.3 32-32 32S0 497.7 0 480V32C0 14.3 14.3 0 32 0zm32 113.5v192l64-16v-192l-64 16zm192 32v192l96-24v-192l-96 24zm-64 176v-192l-64-16v192l64 16z'/%3E%3C/svg%3E");
}

.rm-events--gallery .rm-event-card__title {
	margin: 0;
	font-size: clamp(1.45rem, 2.15vw, 2.45rem);
	line-height: 0.95;
}

.rm-events--gallery .rm-event-card__chips {
	display: flex;
	flex-wrap: wrap;
	gap: 0.45rem;
	margin: 0;
}

.rm-events--gallery .rm-event-card__chips span {
	display: inline-flex;
	align-items: center;
	min-height: 1.55rem;
	padding: 0.18rem 0.62rem;
	color: var(--rm-color-text);
	background: var(--rm-color-surface-alt);
	border-radius: 0;
	font-size: clamp(0.68rem, 0.78vw, 0.82rem);
	font-weight: 900;
	letter-spacing: 0;
	line-height: 1;
	text-transform: uppercase;
}

.rm-events--gallery .rm-event-card__title a {
	color: var(--rm-color-text);
	text-decoration: none;
	background: none;
}

.rm-events--gallery .rm-event-card__meta {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: 10px 16px;
	margin-top: 8px;
	color: var(--rm-color-text-soft);
	font-size: clamp(0.72rem, 0.84vw, 0.9rem);
	line-height: 1.1;
}

.rm-events--gallery .rm-event-card__meta span::before {
	content: none;
}

.rm-events--gallery .rm-event-card__meta-location,
.rm-events--gallery .rm-event-card__meta-session {
	display: inline-flex;
	gap: 0.45rem;
	align-items: center;
}

.rm-events--gallery .rm-event-card__meta-location {
	min-width: 0;
	overflow-wrap: anywhere;
}

.rm-events--gallery .rm-event-card__meta-sessions {
	display: inline-flex;
	gap: 0.55rem;
	align-items: center;
	justify-self: end;
	min-width: 1.4em;
}

.rm-events--gallery .rm-event-card__meta-separator {
	color: var(--rm-color-text-soft);
	font-weight: 900;
}

.rm-events--gallery .rm-event-card__meta-separator::before {
	content: none;
}

.rm-events--gallery .rm-event-card__live {
	position: absolute;
	top: clamp(16px, 2vw, 28px);
	left: clamp(16px, 2vw, 28px);
	display: inline-flex;
	gap: 12px;
	align-items: center;
	min-height: 48px;
	padding: 0 20px;
	color: var(--rm-color-text);
	background: var(--rm-color-accent);
	font-size: clamp(1rem, 1.25vw, 1.35rem);
	font-weight: 900;
	letter-spacing: 0.08em;
	line-height: 1;
	text-transform: uppercase;
}

.rm-events--gallery .rm-event-card__live span {
	width: 12px;
	height: 12px;
	background: var(--rm-color-text);
	border-radius: 0;
}

.rm-events--gallery .rm-event-card__date,
.rm-events--gallery .rm-event-card__link,
.rm-events--gallery .rm-kicker {
	display: none;
}

@media (max-width: 1100px) {

	.rm-events--gallery .rm-events__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 720px) {

	.rm-events--gallery .rm-events__header {
		display: grid;
		gap: 16px;
		align-items: start;
	}

	.rm-events--gallery .rm-events__grid {
		grid-template-columns: 1fr;
	}

	.rm-events--gallery .rm-event-card__body {
		padding: 24px;
	}
}

/* =====================================================================
   ENDURANCE INTELLIGENCE — capa de re-tematización (Fase 4A)
   Estos overrides reservan el verde señal (brand) para foco / líder /
   LIVE, fijan esquinas rectas, la textura de papel milimetrado y los
   badges de estado. Cargan después para ganar a las reglas legacy de
   igual especificidad. DESIGN.md secciones 5, 7, 8, 9.
   ===================================================================== */

/* --- Foco visible único: verde señal 3px, offset 2px (DESIGN.md 8) --- */
.rm-template :focus-visible,
.rm-site-header :focus-visible,
.rm-calendar :focus-visible,
.rm-calendar__button:focus-visible,
.rm-circuit-gallery :focus-visible,
.rm-button:focus-visible {
	outline: 3px solid var(--rm-color-brand);
	outline-offset: 2px;
}

/* --- Botones: neutro de alto contraste; el verde NO se usa de relleno
   general (queda reservado al indicador único). Esquinas rectas. --- */
.rm-button {
	background: var(--rm-color-text);
	color: var(--rm-color-canvas);
	border: 2px solid var(--rm-color-text);
	border-radius: var(--rm-radius-none);
	font-family: var(--rm-font-display);
}

.rm-button:hover,
.rm-button:focus-visible {
	background: var(--rm-color-text-soft);
	border-color: var(--rm-color-text-soft);
	color: var(--rm-color-canvas);
}

.rm-button--secondary {
	background: transparent;
	border-color: var(--rm-color-text);
	color: var(--rm-color-text);
}

.rm-button--secondary:hover,
.rm-button--secondary:focus-visible {
	background: var(--rm-color-surface-alt);
	border-color: var(--rm-color-text);
	color: var(--rm-color-text);
}

/* --- Kicker como etiqueta uppercase text-soft, sin chip de color --- */
.rm-kicker {
	padding: 0;
	color: var(--rm-color-text-soft);
	background: transparent;
	font-family: var(--rm-font-display);
	font-size: var(--rm-text-xs);
	font-weight: 700;
	letter-spacing: 0.1em;
}

/* --- Textura de papel milimetrado al 4% en fondos de SECCIÓN
   (no en cards ni tablas). DESIGN.md 5.3 --- */
.rm-events,
.rm-calendar,
.rm-championship-gallery,
.rm-circuit-list,
.rm-entity-main,
.rm-session-list {
	background-image: var(--rm-grid-texture);
	background-size: var(--rm-grid-texture-size);
}

.rm-events--gallery {
	background-color: var(--rm-color-canvas);
	background-image: var(--rm-grid-texture);
	background-size: var(--rm-grid-texture-size);
}

.rm-event-main .rm-session-list {
	background-image: none;
}

/* --- Cards: 1px de borde y esquinas rectas (DESIGN.md 7.3/7.7) --- */
.rm-events--gallery .rm-event-card {
	border: 1px solid var(--rm-color-border);
	border-radius: var(--rm-radius-none);
}

/* --- Indicador LIVE único: verde señal + texto (DESIGN.md 1, 7.6) --- */
.rm-events--gallery .rm-event-card__live {
	background: var(--rm-color-brand);
	color: var(--rm-color-canvas);
}

.rm-events--gallery .rm-event-card__live span {
	background: var(--rm-color-canvas);
}

/* --- Tablas: cabecera text-soft, hover de fila 120ms (DESIGN.md 7.1, 9) --- */
.rm-session-list thead th,
.rm-results thead th,
.rm-standings thead th {
	background: var(--rm-color-surface-alt);
	color: var(--rm-color-text-soft);
	font-size: var(--rm-text-sm);
}

.rm-session-list tbody tr:hover,
.rm-results tbody tr:hover,
.rm-standings tbody tr:hover {
	background: var(--rm-color-surface-alt);
	transition: background 120ms ease-out;
}

/* --- Badges de estado de evento: TEXTO primero, color secundario.
   Mapeo de términos rm_event_status a la tabla DESIGN.md 7.6. --- */
.rm-status-badge {
	display: inline-flex;
	align-items: center;
	align-self: start;
	width: fit-content;
	min-height: 1.6rem;
	margin: 0;
	padding: 0.2rem 0.6rem;
	color: var(--rm-color-text-soft);
	background: var(--rm-color-border);
	border: 1px solid var(--rm-color-border);
	border-radius: var(--rm-radius-sm);
	font-family: var(--rm-font-display);
	font-size: var(--rm-text-xs);
	font-weight: 700;
	letter-spacing: 0.08em;
	line-height: 1;
	text-transform: uppercase;
}

.rm-status-badge--programado {
	color: var(--rm-color-text-soft);
	background: var(--rm-color-border);
	border-color: var(--rm-color-border);
}

.rm-status-badge--confirmado {
	color: var(--rm-color-canvas);
	background: var(--rm-color-positive);
	border-color: var(--rm-color-positive);
}

.rm-status-badge--aplazado {
	color: var(--rm-color-canvas);
	background: var(--rm-color-status-upcoming);
	border-color: var(--rm-color-status-upcoming);
}

.rm-status-badge--cancelado {
	color: var(--rm-color-canvas);
	background: var(--rm-color-negative);
	border-color: var(--rm-color-negative);
}

.rm-status-badge--finalizado {
	/* text-soft (#9B9EAA) sobre finished (#555869) = 2.6:1 FALLA AA en texto
	   pequeño 11px bold. Se usa text (#F8F4EE) = 6.4:1 AAA. El borde claro
	   refuerza el límite del badge como indicador secundario al texto. */
	color: var(--rm-color-text);
	background: var(--rm-color-status-finished);
	border-color: var(--rm-color-text-soft);
}

.rm-calendar-event__status {
	margin-bottom: 0.2rem;
}

/* --- Galería de imágenes del circuito (rm_gallery_ids) --- */
.rm-circuit-gallery {
	margin-top: clamp(24px, 4vw, 40px);
}

.rm-circuit-gallery__title {
	margin: 0 0 var(--rm-space-4);
	color: var(--rm-color-text);
	font-family: var(--rm-font-display);
	font-size: var(--rm-text-xl);
	font-weight: 700;
	text-transform: uppercase;
}

.rm-circuit-gallery__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr));
	gap: var(--rm-space-4);
	margin: 0;
	padding: 0;
	list-style: none;
}

.rm-circuit-gallery__item {
	margin: 0;
}

.rm-circuit-gallery__figure {
	margin: 0;
	background: var(--rm-color-surface);
	border: 1px solid var(--rm-color-border);
	border-radius: var(--rm-radius-none);
}

.rm-circuit-gallery__image {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

.rm-circuit-gallery__caption {
	padding: var(--rm-space-2) var(--rm-space-3);
	color: var(--rm-color-text-soft);
	font-size: var(--rm-text-sm);
}

/* --- Bloque rm/circuit-gallery (listado de circuitos): reusa el patrón
   de tarjeta de campeonato + lista de specs. --- */
.rm-circuit-card__specs {
	margin: 0;
}

.rm-circuit-card__specs dd {
	font-weight: 600;
}

/* =====================================================================
   ENDURANCE INTELLIGENCE — Fase 4B
   Ficha de piloto (7.4), parrilla de pilotos (7.3) y cuenta atrás (7.5).
   Solo tokens --rm-*; el verde señal (brand) queda reservado al foco y al
   único CTA del countdown. El color de equipo (--rm-team-color) se usa
   exclusivamente como banda decorativa (DESIGN.md 2.3).
   ===================================================================== */

/* --- Texto solo para lectores de pantalla. Respaldo por si el tema no lo
   define: es crítico para la accesibilidad de la cuenta atrás. --- */
.rm-template .screen-reader-text,
.rm-countdown .screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	border: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	clip-path: inset(50%);
	white-space: nowrap;
	word-wrap: normal;
}

/* --- Marcador decorativo de bandera. La alternativa textual real es el
   nombre del país, que se imprime siempre junto a este marcador. --- */
.rm-flag {
	display: inline-block;
	flex: 0 0 auto;
	width: 1.1em;
	height: 0.75em;
	margin-right: 0.4em;
	background: var(--rm-color-surface-alt);
	border: 1px solid var(--rm-color-border);
	vertical-align: -0.05em;
}

/* ---------- 7.4 Ficha de piloto ---------- */
.rm-driver-profile {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--rm-space-8);
	overflow: hidden;
}

@media (min-width: 768px) {

	.rm-driver-profile {
		grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
		gap: var(--rm-space-12);
	}
}

.rm-driver-profile__dorsal-bg {
	position: absolute;
	top: -0.15em;
	right: -0.05em;
	z-index: 0;
	color: var(--rm-color-text);
	font-family: var(--rm-font-display);
	font-size: var(--rm-text-hero);
	font-weight: 900;
	line-height: 0.8;
	opacity: 0.06;
	pointer-events: none;
	font-variant-numeric: tabular-nums lining-nums;
	font-feature-settings: "tnum" 1, "lnum" 1;
}

.rm-driver-profile__media {
	position: relative;
	z-index: 1;
}

.rm-driver-profile__photo {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 3 / 4;
	object-fit: cover;
	background: var(--rm-color-surface);
	border: 1px solid var(--rm-color-border);
	border-radius: var(--rm-radius-none);
}

.rm-driver-profile__photo--empty {
	background: var(--rm-color-surface-alt);
}

.rm-driver-profile__info {
	position: relative;
	z-index: 1;
	min-width: 0;
}

.rm-driver-profile__topline {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: var(--rm-space-4);
}

.rm-driver-profile__nationality {
	display: inline-flex;
	align-items: center;
	margin: 0;
	color: var(--rm-color-text-soft);
	font-family: var(--rm-font-display);
	font-size: var(--rm-text-sm);
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.rm-driver-profile__dorsal {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	margin: 0;
	line-height: 1;
}

.rm-driver-profile__dorsal-value {
	color: var(--rm-color-text);
	font-family: var(--rm-font-display);
	font-size: var(--rm-text-2xl);
	font-weight: 900;
	font-variant-numeric: tabular-nums lining-nums;
	font-feature-settings: "tnum" 1, "lnum" 1;
}

.rm-driver-profile__dorsal-label {
	color: var(--rm-color-text-soft);
	font-family: var(--rm-font-display);
	font-size: var(--rm-text-xs);
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.rm-driver-profile__name {
	margin: var(--rm-space-3) 0 var(--rm-space-2);
	line-height: 0.92;
}

.rm-driver-profile__firstname {
	display: block;
	color: var(--rm-color-text-soft);
	font-family: var(--rm-font-display);
	font-size: var(--rm-text-lg);
	font-weight: 400;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.rm-driver-profile__lastname {
	display: block;
	color: var(--rm-color-text);
	font-family: var(--rm-font-display);
	font-size: var(--rm-text-2xl);
	font-weight: 900;
	letter-spacing: 0.01em;
	text-transform: uppercase;
}

@media (min-width: 768px) {

	.rm-driver-profile__lastname {
		font-size: var(--rm-text-3xl);
	}
}

.rm-driver-profile__birth {
	margin: 0 0 var(--rm-space-3);
	color: var(--rm-color-text-soft);
	font-size: var(--rm-text-sm);
}

.rm-driver-profile__entry-label {
	margin: var(--rm-space-3) 0 var(--rm-space-1);
	color: var(--rm-color-text-soft);
	font-family: var(--rm-font-display);
	font-size: var(--rm-text-xs);
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.rm-driver-profile__team {
	display: flex;
	align-items: stretch;
	gap: var(--rm-space-3);
	margin: 0;
}

.rm-driver-profile__team-strip {
	display: block;
	flex: 0 0 auto;
	width: 4px;
	min-height: 1.4em;
	background: var(--rm-team-color, var(--rm-color-border));
}

.rm-driver-profile__team-name {
	color: var(--rm-color-text);
	font-family: var(--rm-font-display);
	font-size: var(--rm-text-lg);
	font-weight: 700;
	text-transform: uppercase;
}

.rm-driver-stats {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: var(--rm-space-4);
	margin: var(--rm-space-6) 0;
	padding: var(--rm-space-4) 0;
	border-top: 1px solid var(--rm-color-border);
	border-bottom: 1px solid var(--rm-color-border);
	list-style: none;
}

@media (max-width: 480px) {

	.rm-driver-stats {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.rm-stat {
	display: flex;
	flex-direction: column;
	gap: var(--rm-space-1);
	margin: 0;
}

.rm-stat__value {
	color: var(--rm-color-text);
	font-family: var(--rm-font-display);
	font-size: var(--rm-text-2xl);
	font-weight: 600;
	line-height: 1;
	font-variant-numeric: tabular-nums lining-nums;
	font-feature-settings: "tnum" 1, "lnum" 1;
}

.rm-stat__label {
	color: var(--rm-color-text-soft);
	font-family: var(--rm-font-display);
	font-size: var(--rm-text-xs);
	font-weight: 400;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.rm-driver-palmares {
	margin: var(--rm-space-6) 0 0;
}

.rm-driver-palmares__table {
	width: 100%;
	border-collapse: collapse;
}

.rm-driver-palmares__table caption {
	margin-bottom: var(--rm-space-2);
	color: var(--rm-color-text-soft);
	font-family: var(--rm-font-display);
	font-size: var(--rm-text-xs);
	font-weight: 700;
	letter-spacing: 0.12em;
	text-align: left;
	text-transform: uppercase;
}

.rm-driver-palmares__table th,
.rm-driver-palmares__table td {
	padding: var(--rm-space-3);
	text-align: left;
	border-bottom: 1px solid var(--rm-color-border);
}

.rm-driver-palmares__table thead th {
	color: var(--rm-color-text-soft);
	font-family: var(--rm-font-display);
	font-size: var(--rm-text-sm);
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.rm-driver-palmares__table tbody th,
.rm-driver-palmares__table tbody td {
	color: var(--rm-color-text);
	font-size: var(--rm-text-sm);
	font-weight: 600;
	font-variant-numeric: tabular-nums lining-nums;
	font-feature-settings: "tnum" 1, "lnum" 1;
}

.rm-driver-palmares__table tbody tr:hover {
	background: var(--rm-color-surface-alt);
	transition: background 120ms ease-out;
}

/* ---------- 7.3 Parrilla de pilotos ---------- */
.rm-driver-grid {
	background-color: var(--rm-color-canvas);
	background-image: var(--rm-grid-texture);
	background-size: var(--rm-grid-texture-size);
	color: var(--rm-color-text);
}

.rm-driver-grid .rm-events__header h2 {
	color: var(--rm-color-text);
}

.rm-driver-grid__group + .rm-driver-grid__group {
	margin-top: var(--rm-space-8);
}

.rm-driver-grid__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr));
	gap: var(--rm-space-4);
	margin: 0;
	padding: 0;
	list-style: none;
}

@media (max-width: 1024px) {

	.rm-driver-grid__grid {
		grid-template-columns: repeat(auto-fill, minmax(min(100%, 180px), 1fr));
	}
}

@media (max-width: 640px) {

	.rm-driver-grid__grid {
		grid-template-columns: repeat(auto-fill, minmax(min(100%, 150px), 1fr));
	}
}

.rm-driver-grid__item {
	margin: 0;
}

.rm-driver-card {
	position: relative;
	height: 100%;
	background: var(--rm-color-surface);
	border: 1px solid var(--rm-color-border);
	border-radius: var(--rm-radius-none);
	overflow: hidden;
}

.rm-driver-card__link {
	display: flex;
	flex-direction: column;
	height: 100%;
	color: inherit;
	text-decoration: none;
}

.rm-driver-card__link:focus-visible {
	outline: 3px solid var(--rm-color-brand);
	outline-offset: 2px;
}

.rm-driver-card__dorsal {
	position: absolute;
	top: var(--rm-space-2);
	right: var(--rm-space-3);
	z-index: 1;
	color: var(--rm-color-text);
	font-family: var(--rm-font-display);
	font-size: 5rem;
	font-weight: 900;
	line-height: 0.8;
	opacity: 0.12;
	pointer-events: none;
	font-variant-numeric: tabular-nums lining-nums;
	font-feature-settings: "tnum" 1, "lnum" 1;
}

.rm-driver-card__media {
	display: block;
	aspect-ratio: 1 / 1;
	background: var(--rm-color-surface-alt);
}

.rm-driver-card__photo {
	display: block;
	width: 100%;
	height: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
}

.rm-driver-card__photo--empty {
	background: var(--rm-color-surface-alt);
}

.rm-driver-card__body {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	gap: var(--rm-space-1);
	padding: var(--rm-space-3) var(--rm-space-4) 0;
}

.rm-driver-card__nationality {
	display: inline-flex;
	align-items: center;
	color: var(--rm-color-text-soft);
	font-family: var(--rm-font-display);
	font-size: var(--rm-text-xs);
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.rm-driver-card__name {
	margin: var(--rm-space-1) 0 var(--rm-space-3);
	line-height: 0.96;
}

.rm-driver-card__surname {
	display: block;
	color: var(--rm-color-text);
	font-family: var(--rm-font-display);
	font-size: var(--rm-text-xl);
	font-weight: 700;
	text-transform: uppercase;
}

.rm-driver-card__firstname {
	display: block;
	color: var(--rm-color-text-soft);
	font-family: var(--rm-font-display);
	font-size: var(--rm-text-sm);
	font-weight: 400;
}

.rm-driver-card__team {
	display: block;
	margin-top: auto;
	margin-inline: calc(var(--rm-space-4) * -1);
	padding: var(--rm-space-2) var(--rm-space-4);
	color: var(--rm-color-text-soft);
	font-family: var(--rm-font-display);
	font-size: var(--rm-text-sm);
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	border-bottom: 4px solid var(--rm-team-color, var(--rm-color-border));
}

/* ---------- 7.5 Cuenta atrás ---------- */
.rm-countdown {
	max-width: var(--rm-content-max);
	margin-inline: auto;
	padding: var(--rm-space-12) var(--rm-margin-desktop);
	background-color: var(--rm-color-canvas);
	background-image: var(--rm-grid-texture);
	background-size: var(--rm-grid-texture-size);
	color: var(--rm-color-text);
	text-align: center;
}

.rm-countdown__header {
	margin-bottom: var(--rm-space-8);
}

.rm-countdown__event {
	display: inline-block;
	margin: 0;
	padding-bottom: var(--rm-space-3);
	color: var(--rm-color-text);
	font-family: var(--rm-font-display);
	font-size: var(--rm-text-2xl);
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	border-bottom: 3px solid var(--rm-color-border);
}

.rm-countdown__units {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	justify-content: center;
	gap: var(--rm-space-4);
	margin: 0 auto;
}

.rm-countdown__unit {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--rm-space-2);
	min-width: 4.5rem;
	padding-inline: var(--rm-space-6);
}

.rm-countdown__unit + .rm-countdown__unit::before {
	content: "";
	position: absolute;
	top: 10%;
	left: 0;
	width: 1px;
	height: 60%;
	background: var(--rm-color-border);
}

.rm-countdown__value {
	color: var(--rm-color-text);
	font-family: var(--rm-font-display);
	font-size: var(--rm-text-hero);
	font-weight: 900;
	line-height: 0.9;
	font-variant-numeric: tabular-nums lining-nums;
	font-feature-settings: "tnum" 1, "lnum" 1;
}

.rm-countdown__label {
	color: var(--rm-color-text-soft);
	font-family: var(--rm-font-display);
	font-size: var(--rm-text-xs);
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.rm-countdown__when {
	margin: var(--rm-space-8) 0 var(--rm-space-6);
	color: var(--rm-color-text-soft);
	font-family: var(--rm-font-display);
	font-size: var(--rm-text-base);
	letter-spacing: 0.04em;
	font-variant-numeric: tabular-nums lining-nums;
	font-feature-settings: "tnum" 1, "lnum" 1;
}

.rm-countdown__cta {
	margin: 0;
}

/* CTA: ÚNICO uso del verde señal en esta pantalla (DESIGN.md 7.5). La doble
   clase gana en especificidad a la regla neutra de .rm-button de la Fase 4A. */
.rm-countdown__button.rm-button {
	display: inline-flex;
	align-items: center;
	gap: var(--rm-space-2);
	min-height: 44px;
	background: var(--rm-color-brand);
	border-color: var(--rm-color-brand);
	color: var(--rm-color-canvas);
}

.rm-countdown__button.rm-button:hover,
.rm-countdown__button.rm-button:focus-visible {
	background: var(--rm-color-positive);
	border-color: var(--rm-color-positive);
	color: var(--rm-color-canvas);
}

/* ===================================================================
   Fase 4C — Multiclase: clases (tabs), clasificación y resultados.
   =================================================================== */

/* --- Tabs de clase (DESIGN.md 7.1/7.2/7.3) --- */
.rm-class-tabs__list {
	display: flex;
	flex-wrap: wrap;
	gap: var(--rm-space-4);
	margin-bottom: var(--rm-space-6);
	border-bottom: 1px solid var(--rm-color-border);
}

.rm-class-tabs__tab {
	display: inline-flex;
	align-items: center;
	gap: var(--rm-space-2);
	min-height: 44px;
	margin-bottom: -1px;
	padding: var(--rm-space-2) var(--rm-space-1);
	border: 0;
	border-bottom: 2px solid transparent;
	background: transparent;
	color: var(--rm-color-text-soft);
	font-family: var(--rm-font-display);
	font-size: var(--rm-text-sm);
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	cursor: pointer;
}

.rm-class-tabs__tab[aria-selected="true"] {
	border-bottom-color: var(--rm-color-text);
	color: var(--rm-color-text);
}

.rm-class-tabs__tab:hover {
	color: var(--rm-color-text);
}

.rm-class-tabs__tab:focus-visible {
	outline: 3px solid var(--rm-color-brand);
	outline-offset: 2px;
}

/* Banda de color de clase: SOLO decorativa, junto al texto del tab. */
.rm-class-tabs__swatch {
	display: inline-block;
	width: 0.75rem;
	height: 0.75rem;
	background: var(--rm-cat-color, var(--rm-color-border));
	border: 1px solid var(--rm-color-border);
}

.rm-class-section + .rm-class-section {
	margin-top: var(--rm-space-12);
}

.rm-class-section {
	overflow-x: auto;
}

.rm-class-section__title {
	display: flex;
	align-items: center;
	gap: var(--rm-space-3);
	margin: 0 0 var(--rm-space-4);
	font-family: var(--rm-font-display);
	font-size: var(--rm-text-xl);
	font-weight: 700;
	text-transform: uppercase;
}

/* Banda de color de clase (decorativa) + etiqueta textual siempre visible. */
.rm-class-section__strip {
	display: inline-block;
	width: 0.5rem;
	height: 1.4rem;
	background: var(--rm-cat-color, var(--rm-color-accent-2));
}

/* --- Standings por clase (DESIGN.md 7.1) --- */
.rm-standings__table,
.rm-results__table {
	table-layout: auto;
}

.rm-standings__pos {
	font-family: var(--rm-font-display);
	font-size: var(--rm-text-2xl);
	font-weight: 900;
	line-height: 1;
	font-variant-numeric: tabular-nums lining-nums;
}

.rm-standings__num,
.rm-standings__points,
.rm-results__num,
.rm-results__points,
.rm-results__pos {
	font-variant-numeric: tabular-nums lining-nums;
	text-align: right;
}

.rm-standings__points,
.rm-results__points {
	font-weight: 600;
}

.rm-standings__number,
.rm-results__number {
	margin-right: var(--rm-space-2);
	color: var(--rm-color-text-soft);
	font-variant-numeric: tabular-nums lining-nums;
}

/* Fila líder: verde señal ÚNICO + badge textual "LÍDER" (color nunca solo). */
.rm-standings__row--leader > * {
	background: color-mix(in srgb, var(--rm-color-brand) 6%, transparent);
}

.rm-standings__row--leader .rm-standings__pos {
	box-shadow: inset 3px 0 0 0 var(--rm-color-brand);
}

.rm-standings__leader-badge {
	display: inline-block;
	margin-left: var(--rm-space-2);
	padding: 0 var(--rm-space-1);
	color: var(--rm-color-brand);
	font-size: var(--rm-text-xs);
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

/* Banda de color de equipo: border-left decorativo + nombre legible. */
.rm-standings__team,
.rm-results__driver {
	border-left: 4px solid var(--rm-team-color, transparent);
}

.rm-standings__team-name,
.rm-results__team-name {
	color: var(--rm-color-text-soft);
}

.rm-results__team {
	display: block;
	margin-top: var(--rm-space-1);
	font-size: var(--rm-text-sm);
}

/* --- Resultados de sesión (DESIGN.md 7.2) --- */
.rm-results__gap,
.rm-results__time {
	font-variant-numeric: tabular-nums lining-nums;
}

.rm-results__gap {
	color: var(--rm-color-text-soft);
}

/* Vuelta rápida: badge índigo #7B6FFF + texto "VR" SIEMPRE visible.
   Texto oscuro (canvas #12141F) sobre el morado reservado #7B6FFF = 4.85:1 (AA),
   conservando la identidad de vuelta rápida. El color nunca es el único indicador:
   el texto "VR" + el screen-reader-text "Vuelta rápida" siguen presentes. */
.rm-fl-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 1.8rem;
	padding: 0.1rem var(--rm-space-2);
	background: var(--rm-color-fastest-lap);
	color: var(--rm-color-canvas);
	border-radius: var(--rm-radius-sm);
	font-size: var(--rm-text-xs);
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

/* Filas DNF/DNS/DSQ: opacidad + TEXTO de estado en la celda de tiempo. */
.rm-results__row--retired {
	opacity: 0.65;
}

.rm-results__row--separator > * {
	border-top: 2px solid var(--rm-color-border);
}

.rm-results__status {
	font-weight: 700;
	text-transform: uppercase;
}

.rm-results__status-note {
	display: block;
	color: var(--rm-color-text-soft);
	font-size: var(--rm-text-sm);
}

/* --- Badge de clase en la tarjeta de piloto (DESIGN.md 7.3) --- */
.rm-driver-card__class {
	display: inline-block;
	align-self: flex-start;
	margin-bottom: var(--rm-space-1);
	padding: 0 var(--rm-space-2);
	background: var(--rm-color-surface-alt);
	color: var(--rm-color-text-soft);
	border-radius: var(--rm-radius-sm);
	font-size: var(--rm-text-xs);
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}
