:root {
	--aa-bg: #fafaf8;
	--aa-dark: #111210;
	--aa-text: #171815;
	--aa-muted: #696a65;
	--aa-accent: #d9f244;
	--aa-white: #ffffff;
	--aa-border: rgba(17,18,16,.12);
	--aa-max: 1380px;
}

* {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

body {
	margin: 0;
	background: var(--aa-bg);
	color: var(--aa-text);
	font-family: Arial, Helvetica, sans-serif;
	-webkit-font-smoothing: antialiased;
}

body.admin-bar .site-header {
	top: 32px;
}

img,
video {
	display: block;
	max-width: 100%;
}

a {
	color: inherit;
	text-decoration: none;
}

.aa-container {
	width: min(calc(100% - 64px), var(--aa-max));
	margin-inline: auto;
}

/* HEADER */

.site-header {
	position: sticky;
	top: 0;
	z-index: 1000;
	background: rgba(17,18,16,.96);
	color: var(--aa-white);
	backdrop-filter: blur(14px);
}

.header-inner {
	min-height: 82px;
	display: flex;
	align-items: center;
	gap: 42px;
}

.site-brand {
	margin-right: auto;
	display: flex;
	flex-direction: column;
	line-height: .85;
}

.brand-name {
	font-weight: 900;
	font-size: 22px;
	letter-spacing: -.04em;
}

.brand-sub {
	margin-top: 7px;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .32em;
	color: var(--aa-accent);
}

.primary-menu {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	align-items: center;
	gap: 34px;
}

.primary-menu a {
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .03em;
}

.primary-menu a:hover {
	color: var(--aa-accent);
}

.header-cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 0 23px;
	background: var(--aa-accent);
	color: var(--aa-dark);
	font-size: 12px;
	font-weight: 900;
	text-transform: uppercase;
	letter-spacing: .06em;
}

.menu-toggle {
	display: none;
	width: 46px;
	height: 46px;
	border: 1px solid rgba(255,255,255,.22);
	background: transparent;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	gap: 6px;
	cursor: pointer;
}

.menu-toggle span {
	width: 19px;
	height: 2px;
	background: white;
}

.mobile-menu {
	display: none;
}

/* GENERAL */

main {
	min-height: 60vh;
}

section {
	position: relative;
}

.eyebrow {
	margin: 0 0 18px;
	color: #91a300;
	font-size: 11px;
	font-weight: 900;
	letter-spacing: .17em;
	text-transform: uppercase;
}

.section-title {
	margin: 0;
	max-width: 900px;
	font-size: clamp(42px, 5vw, 78px);
	line-height: .94;
	letter-spacing: -.055em;
	font-weight: 900;
}

.section-copy {
	max-width: 680px;
	color: var(--aa-muted);
	font-size: 17px;
	line-height: 1.7;
}

/* FOOTER */

.site-footer {
	background: var(--aa-dark);
	color: white;
	padding: 88px 0 26px;
}

.footer-grid {
	display: grid;
	grid-template-columns: 1.6fr 1fr 1fr 1fr;
	gap: 70px;
}

.footer-logo {
	display: flex;
	flex-direction: column;
	font-size: 28px;
	font-weight: 900;
	line-height: .85;
}

.footer-logo small {
	margin-top: 10px;
	color: var(--aa-accent);
	font-size: 10px;
	letter-spacing: .3em;
}

.footer-brand p {
	max-width: 340px;
	margin-top: 25px;
	color: rgba(255,255,255,.56);
	line-height: 1.6;
}

.footer-title {
	margin: 0 0 22px;
	color: var(--aa-accent);
	font-size: 10px;
	font-weight: 900;
	text-transform: uppercase;
	letter-spacing: .16em;
}

.footer-grid > div:not(:first-child) > a {
	display: block;
	margin-bottom: 13px;
	font-size: 14px;
	color: rgba(255,255,255,.76);
}

.footer-grid a:hover {
	color: var(--aa-accent);
}

.footer-location {
	margin-top: 26px;
	color: rgba(255,255,255,.45);
	font-size: 13px;
}

.footer-social {
	display: flex;
	gap: 9px;
	margin-top: 22px;
}

.footer-social a {
	display: grid;
	place-items: center;
	width: 38px;
	height: 38px;
	border: 1px solid rgba(255,255,255,.18);
	font-size: 10px;
	font-weight: 900;
}

.footer-bottom {
	margin-top: 70px;
	padding-top: 22px;
	border-top: 1px solid rgba(255,255,255,.12);
	color: rgba(255,255,255,.38);
	font-size: 11px;
}

/* RESPONSIVE */

@media (max-width: 900px) {

	.aa-container {
		width: min(calc(100% - 36px), var(--aa-max));
	}

	.desktop-nav,
	.header-cta {
		display: none;
	}

	.menu-toggle {
		display: flex;
	}

	.mobile-menu {
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		padding: 22px 18px 30px;
		background: var(--aa-dark);
		border-top: 1px solid rgba(255,255,255,.12);
	}

	.mobile-menu.is-open {
		display: block;
	}

	.mobile-menu a {
		display: block;
		padding: 16px 0;
		border-bottom: 1px solid rgba(255,255,255,.1);
		font-size: 20px;
		font-weight: 800;
	}

	.footer-grid {
		grid-template-columns: 1fr 1fr;
		gap: 50px 30px;
	}
}

@media (max-width: 600px) {

	body.admin-bar .site-header {
		top: 46px;
	}

	.header-inner {
		min-height: 72px;
	}

	.footer-grid {
		grid-template-columns: 1fr;
	}

	.site-footer {
		padding-top: 64px;
	}

	.section-title {
		font-size: clamp(38px, 13vw, 58px);
	}
}

/* ==========================================================
   HOME
   ========================================================== */

.home-hero {
	position: relative;
	min-height: calc(100vh - 82px);
	display: flex;
	align-items: flex-end;
	overflow: hidden;
	background: #181a16;
	color: white;
}

.home-hero-media,
.home-hero-overlay {
	position: absolute;
	inset: 0;
}

.home-hero-placeholder {
	width: 100%;
	height: 100%;
	background:
		radial-gradient(circle at 70% 20%, rgba(217,242,68,.14), transparent 25%),
		linear-gradient(135deg, #2d3229 0%, #171914 48%, #090a08 100%);
}

.home-hero-overlay {
	background:
		linear-gradient(90deg, rgba(0,0,0,.76) 0%, rgba(0,0,0,.34) 55%, rgba(0,0,0,.15) 100%),
		linear-gradient(0deg, rgba(0,0,0,.45), transparent 45%);
}

.home-hero-content {
	position: relative;
	z-index: 2;
	padding-top: 120px;
	padding-bottom: 105px;
}

.hero-kicker {
	margin: 0 0 23px;
	color: var(--aa-accent);
	font-size: 10px;
	font-weight: 900;
	letter-spacing: .19em;
}

.home-hero h1 {
	max-width: 1020px;
	margin: 0;
	font-size: clamp(66px, 8.4vw, 138px);
	line-height: .82;
	letter-spacing: -.07em;
	font-weight: 900;
}

.hero-intro {
	max-width: 610px;
	margin: 34px 0 0;
	color: rgba(255,255,255,.72);
	font-size: 18px;
	line-height: 1.6;
}

.hero-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 37px;
}

.aa-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 54px;
	padding: 0 27px;
	font-size: 11px;
	font-weight: 900;
	letter-spacing: .07em;
	text-transform: uppercase;
	transition: transform .2s ease, background .2s ease;
}

.aa-button:hover {
	transform: translateY(-2px);
}

.aa-button-accent {
	background: var(--aa-accent);
	color: var(--aa-dark);
}

.aa-button-outline {
	border: 1px solid rgba(255,255,255,.36);
	color: white;
}

.hero-scroll {
	position: absolute;
	right: 30px;
	bottom: 37px;
	z-index: 2;
	display: flex;
	align-items: center;
	gap: 14px;
	transform: rotate(90deg);
	transform-origin: right bottom;
	font-size: 8px;
	font-weight: 900;
	letter-spacing: .18em;
}

.hero-scroll i {
	display: block;
	width: 60px;
	height: 1px;
	background: rgba(255,255,255,.5);
}


/* PATHS */

.home-paths,
.home-stories {
	padding: 130px 0;
	background: var(--aa-bg);
}

.home-section-heading {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 80px;
	margin-bottom: 65px;
}

.home-section-heading .section-copy {
	margin: 0;
	max-width: 470px;
}

.paths-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	min-height: 570px;
}

.path-card {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	padding: 40px;
	overflow: hidden;
	color: white;
	transition: transform .35s ease;
}

.path-card:hover {
	transform: translateY(-6px);
}

.path-company {
	background:
		linear-gradient(145deg, rgba(217,242,68,.1), transparent 45%),
		#1d211b;
}

.path-races {
	background:
		linear-gradient(145deg, rgba(217,242,68,.05), transparent 45%),
		#0d0f0c;
}

.path-number {
	color: rgba(255,255,255,.36);
	font-size: 11px;
	font-weight: 800;
}

.path-content p {
	margin: 0 0 17px;
	color: var(--aa-accent);
	font-size: 10px;
	font-weight: 900;
	letter-spacing: .17em;
}

.path-content h3 {
	margin: 0 0 30px;
	font-size: clamp(38px, 4vw, 66px);
	line-height: .95;
	letter-spacing: -.05em;
}

.path-content span {
	font-size: 10px;
	font-weight: 900;
	letter-spacing: .08em;
}


/* EMPRESAS */

.home-company {
	padding: 135px 0;
	background: #f1f2ee;
}

.company-grid {
	display: grid;
	grid-template-columns: .9fr 1.1fr;
	align-items: center;
	gap: 100px;
}

.company-copy .section-title {
	font-size: clamp(46px, 5vw, 76px);
}

.company-copy .section-copy {
	margin: 30px 0;
}

.company-goals {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 38px;
}

.company-goals span {
	padding: 9px 13px;
	border: 1px solid var(--aa-border);
	border-radius: 30px;
	font-size: 11px;
	font-weight: 700;
}

.aa-text-link {
	display: inline-block;
	padding-bottom: 5px;
	border-bottom: 2px solid var(--aa-accent);
	font-size: 10px;
	font-weight: 900;
	letter-spacing: .08em;
}

.company-visual {
	position: relative;
	min-height: 650px;
	background:
		linear-gradient(155deg, transparent 25%, rgba(217,242,68,.16)),
		linear-gradient(135deg, #30352c, #12140f);
}

.visual-label {
	position: absolute;
	right: 0;
	bottom: 0;
	width: min(370px, 85%);
	padding: 29px;
	background: var(--aa-accent);
	color: var(--aa-dark);
}

.visual-label span {
	display: block;
	margin-bottom: 10px;
	font-size: 9px;
	font-weight: 900;
	letter-spacing: .15em;
}

.visual-label strong {
	display: block;
	font-size: 25px;
	line-height: 1.05;
}


/* CARRERAS */

.home-races {
	padding: 135px 0;
	background: var(--aa-dark);
	color: white;
}

.light-heading .section-title {
	color: white;
}

.light-link {
	color: white;
}

.race-placeholder {
	position: relative;
	min-height: 480px;
	display: flex;
	align-items: flex-end;
	padding: 45px;
	background:
		linear-gradient(0deg, rgba(0,0,0,.72), transparent),
		linear-gradient(135deg, #333a2d, #141712);
}

.race-placeholder-info {
	max-width: 700px;
}

.race-placeholder-info p {
	color: var(--aa-accent);
	font-size: 10px;
	font-weight: 900;
	letter-spacing: .17em;
}

.race-placeholder-info h3 {
	margin: 13px 0;
	font-size: clamp(38px, 5vw, 72px);
	line-height: .95;
	letter-spacing: -.05em;
}

.race-placeholder-info span {
	color: rgba(255,255,255,.62);
}


/* HISTORIAS */

.stories-preview {
	display: grid;
	grid-template-columns: 1.35fr .65fr;
	gap: 16px;
	margin-bottom: 35px;
}

.story-preview-large,
.story-preview-small {
	position: relative;
	min-height: 570px;
	display: flex;
	align-items: flex-end;
	padding: 35px;
	background:
		linear-gradient(0deg, rgba(0,0,0,.75), transparent 65%),
		linear-gradient(135deg, #384032, #151813);
	color: white;
}

.story-preview-small {
	background:
		linear-gradient(0deg, rgba(0,0,0,.75), transparent 65%),
		linear-gradient(135deg, #20241e, #090a08);
}

.story-preview-copy p {
	margin: 0 0 12px;
	color: var(--aa-accent);
	font-size: 9px;
	font-weight: 900;
	letter-spacing: .15em;
}

.story-preview-copy h3 {
	max-width: 560px;
	margin: 0;
	font-size: clamp(30px, 3.5vw, 52px);
	line-height: 1;
	letter-spacing: -.045em;
}


/* FINAL */

.home-final {
	padding: 150px 0;
	background: #22261e;
	color: white;
	text-align: center;
}

.home-final .aa-container {
	display: flex;
	flex-direction: column;
	align-items: center;
}

.home-final h2 {
	margin: 0;
	max-width: 1050px;
	font-size: clamp(55px, 7.5vw, 112px);
	line-height: .88;
	letter-spacing: -.065em;
}

.home-final > .aa-container > p:not(.hero-kicker) {
	max-width: 570px;
	margin: 30px 0 38px;
	color: rgba(255,255,255,.63);
	font-size: 17px;
	line-height: 1.6;
}


/* HOME RESPONSIVE */

@media (max-width: 900px) {

	.home-hero {
		min-height: 760px;
	}

	.home-hero-content {
		padding-bottom: 75px;
	}

	.home-hero h1 {
		font-size: clamp(58px, 13vw, 100px);
	}

	.home-section-heading {
		display: block;
	}

	.home-section-heading .section-copy,
	.home-section-heading .aa-text-link {
		margin-top: 25px;
	}

	.paths-grid,
	.company-grid,
	.stories-preview {
		grid-template-columns: 1fr;
	}

	.paths-grid {
		min-height: auto;
	}

	.path-card {
		min-height: 480px;
	}

	.company-grid {
		gap: 60px;
	}

	.company-visual {
		min-height: 560px;
	}

	.story-preview-large,
	.story-preview-small {
		min-height: 480px;
	}
}

@media (max-width: 600px) {

	.home-paths,
	.home-company,
	.home-races,
	.home-stories,
	.home-final {
		padding: 90px 0;
	}

	.home-hero {
		min-height: calc(100svh - 72px);
	}

	.home-hero-content {
		padding-top: 90px;
		padding-bottom: 65px;
	}

	.hero-intro {
		font-size: 16px;
	}

	.hero-actions {
		align-items: stretch;
		flex-direction: column;
	}

	.aa-button {
		width: 100%;
	}

	.hero-scroll {
		display: none;
	}

	.path-card {
		min-height: 400px;
		padding: 28px;
	}

	.company-visual {
		min-height: 440px;
	}

	.race-placeholder {
		min-height: 430px;
		padding: 28px;
	}

	.story-preview-large,
	.story-preview-small {
		min-height: 410px;
		padding: 27px;
	}
}

/* HOME MEDIA */

.home-hero-media {
	overflow: hidden;
}

.home-hero-video,
.home-hero-image {
	width: 100%;
	height: 100%;
}

.home-hero-video {
	object-fit: cover;
}

.home-hero-image {
	background-position: center;
	background-size: cover;
	background-repeat: no-repeat;
}

.company-visual.has-image {
	background-position: center;
	background-size: cover;
	background-repeat: no-repeat;
}

/* ==========================================================
   SINGLE CARRERA
   ========================================================== */

html {
	scroll-behavior: smooth;
}

.race-single {
	background: var(--aa-bg);
	color: var(--aa-text);
}


/* HERO */

.race-hero {
	position: relative;
	min-height: 720px;
	display: flex;
	align-items: flex-end;
	overflow: hidden;
	background:
		radial-gradient(
			circle at 75% 20%,
			rgba(217, 242, 68, .12),
			transparent 28%
		),
		linear-gradient(
			135deg,
			#30352c,
			#11130f 55%,
			#070806
		);
	color: white;
	background-position: center;
	background-size: cover;
}

.race-hero-overlay {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(
			90deg,
			rgba(0,0,0,.82) 0%,
			rgba(0,0,0,.4) 60%,
			rgba(0,0,0,.2) 100%
		),
		linear-gradient(
			0deg,
			rgba(0,0,0,.65),
			transparent 55%
		);
}

.race-hero-content {
	position: relative;
	z-index: 2;
	padding-top: 130px;
	padding-bottom: 80px;
}

.race-status {
	display: inline-flex;
	margin-bottom: 22px;
	padding: 9px 13px;
	background: var(--aa-accent);
	color: var(--aa-dark);
	font-size: 9px;
	font-weight: 900;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.race-hero h1 {
	max-width: 1050px;
	margin: 0;
	font-size: clamp(64px, 8vw, 126px);
	line-height: .84;
	letter-spacing: -.065em;
	font-weight: 900;
}

.race-hero-intro {
	max-width: 650px;
	margin: 30px 0 0;
	color: rgba(255,255,255,.76);
	font-size: 18px;
	line-height: 1.6;
}

.race-hero-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 55px;
	margin: 38px 0;
}

.race-hero-meta div {
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.race-hero-meta span,
.race-info-panel span,
.distance-data span {
	font-size: 9px;
	font-weight: 900;
	letter-spacing: .15em;
	color: var(--aa-accent);
}

.race-hero-meta strong {
	font-size: 17px;
}

.race-hero-meta small {
	color: rgba(255,255,255,.55);
}


/* NAVEGACIÓN */

.race-nav {
	position: sticky;
	top: 0;
	z-index: 50;
	background: rgba(17,18,16,.97);
	border-bottom: 1px solid rgba(255,255,255,.08);
}

.race-nav-inner {
	display: flex;
	align-items: center;
	gap: 28px;
	overflow-x: auto;
	min-height: 60px;
	scrollbar-width: none;
}

.race-nav-inner::-webkit-scrollbar {
	display: none;
}

.race-nav a {
	flex: 0 0 auto;
	color: rgba(255,255,255,.68);
	font-size: 9px;
	font-weight: 900;
	letter-spacing: .09em;
	text-transform: uppercase;
}

.race-nav a:hover {
	color: var(--aa-accent);
}


/* SECCIONES */

.race-section {
	padding: 120px 0;
	scroll-margin-top: 70px;
}

.race-section:nth-of-type(even) {
	background: #f1f2ee;
}

.race-two-columns {
	display: grid;
	grid-template-columns: .8fr 1.2fr;
	gap: 100px;
}

.race-rich-content,
.race-body-copy {
	max-width: 760px;
	font-size: 17px;
	line-height: 1.75;
	color: var(--aa-muted);
}

.race-rich-content p:first-child {
	margin-top: 0;
}


/* DISTANCIAS */

.race-distances {
	background: var(--aa-dark) !important;
	color: white;
}

.race-distances .section-title {
	color: white;
}

.race-distance-grid {
	display: grid;
	grid-template-columns:
		repeat(
			auto-fit,
			minmax(260px, 1fr)
		);
	gap: 1px;
	margin-top: 55px;
	background: rgba(255,255,255,.12);
}

.race-distance-card {
	padding: 36px;
	background: #181a16;
}

.race-distance-card h3 {
	margin: 0 0 32px;
	color: var(--aa-accent);
	font-size: 52px;
	line-height: 1;
	letter-spacing: -.05em;
}

.distance-data {
	display: grid;
	grid-template-columns:
		repeat(
			auto-fit,
			minmax(90px,1fr)
		);
	gap: 20px;
	margin-bottom: 28px;
}

.distance-data div {
	display: flex;
	flex-direction: column;
	gap: 5px;
}

.distance-data strong {
	font-size: 18px;
}

.race-distance-card p {
	color: rgba(255,255,255,.62);
	line-height: 1.6;
}

.distance-start {
	padding-top: 20px;
	border-top: 1px solid rgba(255,255,255,.12);
}


/* RECORRIDOS */

.race-routes-list {
	margin-top: 55px;
}

.race-route-card {
	display: grid;
	grid-template-columns: .75fr 1.25fr;
	min-height: 460px;
	margin-bottom: 30px;
	background: #eceee8;
}

.race-route-copy {
	padding: 45px;
}

.race-route-copy h3 {
	margin: 8px 0 22px;
	font-size: 42px;
	letter-spacing: -.04em;
}

.race-route-copy > p:not(.eyebrow) {
	color: var(--aa-muted);
	line-height: 1.7;
}

.race-route-links {
	display: flex;
	flex-wrap: wrap;
	gap: 25px;
	margin-top: 30px;
}

.race-route-map {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 400px;
	background:
		linear-gradient(
			135deg,
			#30352c,
			#151813
		);
	background-size: cover;
	background-position: center;
	color: rgba(255,255,255,.45);
	font-size: 9px;
	font-weight: 900;
	letter-spacing: .15em;
}


/* PROGRAMA */

.race-timeline {
	border-top: 1px solid var(--aa-border);
}

.race-timeline-item {
	display: grid;
	grid-template-columns: 140px 1fr;
	gap: 30px;
	padding: 28px 0;
	border-bottom: 1px solid var(--aa-border);
}

.timeline-time {
	display: flex;
	flex-direction: column;
	gap: 5px;
}

.timeline-time span {
	color: var(--aa-muted);
	font-size: 11px;
}

.timeline-time strong {
	font-size: 20px;
}

.race-timeline-item h3 {
	margin: 0 0 8px;
	font-size: 21px;
}

.race-timeline-item p {
	margin: 0;
	color: var(--aa-muted);
	line-height: 1.6;
}


/* KIT */

.race-info-panel {
	display: grid;
	grid-template-columns:
		repeat(
			auto-fit,
			minmax(180px,1fr)
		);
	margin: 50px 0 35px;
	border-top: 1px solid var(--aa-border);
	border-bottom: 1px solid var(--aa-border);
}

.race-info-panel div {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 25px 25px 25px 0;
}

.race-info-panel strong {
	font-size: 17px;
}


/* CATEGORÍAS */

.race-table {
	margin-top: 45px;
	border-top: 1px solid var(--aa-border);
}

.race-table-row {
	display: grid;
	grid-template-columns: 1.3fr .5fr 1fr;
	gap: 30px;
	padding: 20px 0;
	border-bottom: 1px solid var(--aa-border);
}

.race-table-row span {
	color: var(--aa-muted);
}


/* EQUIPAMIENTO */

.race-equipment-grid {
	display: grid;
	grid-template-columns:
		repeat(
			auto-fit,
			minmax(240px,1fr)
		);
	gap: 1px;
	margin-top: 45px;
	background: var(--aa-border);
}

.equipment-item {
	padding: 28px;
	background: var(--aa-bg);
}

.equipment-item > span {
	display: block;
	margin-bottom: 12px;
	color: var(--aa-muted);
	font-size: 8px;
	font-weight: 900;
	letter-spacing: .14em;
}

.equipment-item strong {
	display: block;
	font-size: 20px;
}

.equipment-item p {
	margin-bottom: 0;
	color: var(--aa-muted);
}


/* BOTÓN OSCURO */

.aa-button-dark {
	background: var(--aa-dark);
	color: white;
}


/* FAQ */

.race-faq-list {
	border-top: 1px solid var(--aa-border);
}

.race-faq-item {
	border-bottom: 1px solid var(--aa-border);
}

.race-faq-item summary {
	position: relative;
	padding: 24px 45px 24px 0;
	cursor: pointer;
	list-style: none;
	font-size: 17px;
	font-weight: 800;
}

.race-faq-item summary::-webkit-details-marker {
	display: none;
}

.race-faq-item summary::after {
	content: "+";
	position: absolute;
	right: 5px;
	top: 20px;
	font-size: 25px;
	font-weight: 400;
}

.race-faq-item[open] summary::after {
	content: "–";
}

.race-faq-item > div {
	padding: 0 50px 25px 0;
	color: var(--aa-muted);
	line-height: 1.7;
}


/* RESULTADOS */

.race-results {
	background: var(--aa-dark) !important;
	color: white;
}

.race-results .section-title {
	color: white;
}

.race-results-copy {
	max-width: 600px;
	color: rgba(255,255,255,.65);
	font-size: 17px;
	line-height: 1.7;
}

.race-result-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 35px;
}


/* GALERÍA */

.race-gallery-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 15px;
	margin-top: 50px;
}

.race-gallery-item {
	margin: 0;
	overflow: hidden;
	background: #e7e8e3;
}

.race-gallery-item img,
.race-gallery-item video,
.race-gallery-item iframe {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	border: 0;
}

.race-gallery-item figcaption {
	padding: 13px 0;
	color: var(--aa-muted);
	font-size: 12px;
}


/* SPONSORS */

.race-sponsors-grid {
	display: grid;
	grid-template-columns:
		repeat(
			auto-fit,
			minmax(160px,1fr)
		);
	gap: 1px;
	margin-top: 45px;
	background: var(--aa-border);
}

.race-sponsor {
	min-height: 150px;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 30px;
	background: white;
}

.race-sponsor a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
}

.race-sponsor img {
	max-width: 150px;
	max-height: 75px;
	width: auto;
	height: auto;
	object-fit: contain;
}


/* CTA FINAL */

.race-final-cta {
	padding: 140px 0;
	background: #22261e;
	color: white;
	text-align: center;
}

.race-final-cta .aa-container {
	display: flex;
	flex-direction: column;
	align-items: center;
}

.race-final-cta h2 {
	max-width: 900px;
	margin: 0 0 40px;
	font-size: clamp(55px, 7vw, 105px);
	line-height: .88;
	letter-spacing: -.06em;
}


/* RESPONSIVE */

@media (max-width: 900px) {

	.race-hero {
		min-height: 650px;
	}

	.race-two-columns,
	.race-route-card {
		grid-template-columns: 1fr;
	}

	.race-two-columns {
		gap: 45px;
	}

	.race-route-map {
		min-height: 350px;
	}

	.race-gallery-grid {
		grid-template-columns: 1fr;
	}

}


@media (max-width: 600px) {

	.race-hero {
		min-height: 600px;
	}

	.race-hero-content {
		padding-top: 100px;
		padding-bottom: 55px;
	}

	.race-hero h1 {
		font-size: clamp(54px, 16vw, 80px);
	}

	.race-hero-intro {
		font-size: 16px;
	}

	.race-hero-meta {
		gap: 25px;
	}

	.race-section {
		padding: 85px 0;
	}

	.race-nav-inner {
		gap: 22px;
	}

	.race-distance-card {
		padding: 28px;
	}

	.race-route-copy {
		padding: 30px;
	}

	.race-timeline-item {
		grid-template-columns: 90px 1fr;
		gap: 18px;
	}

	.race-table-row {
		grid-template-columns: 1fr;
		gap: 5px;
	}

	.race-final-cta {
		padding: 100px 0;
	}

}

/* ==========================================================
   ARCHIVO CARRERAS
   ========================================================== */

.races-archive {
	background: var(--aa-bg);
	color: var(--aa-text);
}


/* HERO */

.races-archive-hero {
	position: relative;
	overflow: hidden;
	padding: 190px 0 120px;
	background:
		radial-gradient(
			circle at 75% 20%,
			rgba(217,242,68,.13),
			transparent 27%
		),
		linear-gradient(
			135deg,
			#30352c,
			#11130f 55%,
			#070806
		);
	color: white;
}

.races-archive-hero::after {
	content: "";
	position: absolute;
	right: -10%;
	bottom: -45%;
	width: 55vw;
	height: 55vw;
	border: 1px solid rgba(217,242,68,.12);
	border-radius: 50%;
}

.races-archive-hero .aa-container {
	position: relative;
	z-index: 2;
}

.races-archive-hero h1 {
	max-width: 1100px;
	margin: 15px 0 35px;
	font-size: clamp(70px, 9vw, 135px);
	line-height: .82;
	letter-spacing: -.07em;
	font-weight: 900;
}

.races-archive-intro {
	max-width: 560px;
	margin: 0;
	color: rgba(255,255,255,.65);
	font-size: 18px;
	line-height: 1.65;
}


/* PRÓXIMAS */

.races-upcoming {
	padding: 120px 0 140px;
}

.races-section-heading {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 40px;
	margin-bottom: 55px;
}

.races-upcoming-grid {
	display: grid;
	grid-template-columns:
		repeat(
			2,
			minmax(0,1fr)
		);
	gap: 45px 22px;
}


/* CARD */

.race-card-image {
	position: relative;
	display: block;
	overflow: hidden;
	min-height: 480px;
	background:
		linear-gradient(
			135deg,
			#34382f,
			#161914
		);
	background-position: center;
	background-size: cover;
}

.race-card-overlay {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(
			0deg,
			rgba(0,0,0,.52),
			transparent 55%
		);
	transition: background .3s ease;
}

.race-card:hover .race-card-overlay,
.race-history-card:hover .race-card-overlay {
	background:
		linear-gradient(
			0deg,
			rgba(0,0,0,.65),
			rgba(0,0,0,.06) 70%
		);
}

.race-card-status {
	position: absolute;
	top: 24px;
	left: 24px;
	z-index: 2;
	padding: 9px 12px;
	background: var(--aa-accent);
	color: var(--aa-dark);
	font-size: 8px;
	font-weight: 900;
	letter-spacing: .11em;
	text-transform: uppercase;
}

.race-card-date {
	position: absolute;
	right: 28px;
	bottom: 27px;
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	color: white;
}

.race-card-date strong {
	font-size: 62px;
	line-height: .8;
	letter-spacing: -.06em;
}

.race-card-date span {
	margin-top: 8px;
	color: var(--aa-accent);
	font-size: 11px;
	font-weight: 900;
	letter-spacing: .15em;
}

.race-card-date small {
	margin-top: 3px;
	color: rgba(255,255,255,.6);
	font-size: 10px;
}

.race-card-content {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 25px;
	padding-top: 24px;
}

.race-card-location {
	margin: 0 0 9px;
	color: var(--aa-muted);
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.race-card-content h3 {
	margin: 0;
	font-size: clamp(28px,3vw,44px);
	line-height: 1;
	letter-spacing: -.045em;
}

.race-card-content h3 a {
	color: var(--aa-text);
}

.race-card-distances {
	display: flex;
	flex-wrap: wrap;
	gap: 7px;
	margin-top: 18px;
}

.race-card-distances span {
	padding: 7px 10px;
	border: 1px solid var(--aa-border);
	font-size: 9px;
	font-weight: 800;
}

.race-card-arrow {
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 50px;
	height: 50px;
	border-radius: 50%;
	background: var(--aa-dark);
	color: white;
	font-size: 20px;
	transition:
		background .2s ease,
		color .2s ease,
		transform .2s ease;
}

.race-card:hover .race-card-arrow {
	background: var(--aa-accent);
	color: var(--aa-dark);
	transform: translateX(3px);
}


/* VACÍO */

.races-empty {
	max-width: 850px;
	padding: 60px;
	background: #f0f1ec;
}

.races-empty h3 {
	margin: 12px 0 15px;
	font-size: clamp(35px,5vw,60px);
	letter-spacing: -.05em;
}

.races-empty > p:last-child {
	max-width: 500px;
	color: var(--aa-muted);
	line-height: 1.65;
}


/* HISTÓRICO */

.races-history {
	padding: 130px 0;
	background: var(--aa-dark);
	color: white;
}

.races-history .section-title {
	color: white;
}

.races-history-heading {
	display: grid;
	grid-template-columns: 1.2fr .8fr;
	align-items: end;
	gap: 80px;
	margin-bottom: 50px;
}

.races-history-heading > p {
	max-width: 470px;
	margin: 0 0 8px;
	color: rgba(255,255,255,.58);
	line-height: 1.7;
}


/* FILTROS */

.race-year-filters {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 45px;
}

.race-year-filter {
	padding: 10px 17px;
	border: 1px solid rgba(255,255,255,.18);
	background: transparent;
	color: rgba(255,255,255,.6);
	cursor: pointer;
	font: inherit;
	font-size: 9px;
	font-weight: 900;
	letter-spacing: .1em;
	text-transform: uppercase;
}

.race-year-filter:hover,
.race-year-filter.is-active {
	border-color: var(--aa-accent);
	background: var(--aa-accent);
	color: var(--aa-dark);
}


/* HISTORIAL GRID */

.races-history-grid {
	display: grid;
	grid-template-columns:
		repeat(
			3,
			minmax(0,1fr)
		);
	gap: 50px 18px;
}

.race-history-card.is-hidden {
	display: none;
}

.race-history-image {
	position: relative;
	display: block;
	min-height: 330px;
	overflow: hidden;
	background:
		linear-gradient(
			135deg,
			#34382f,
			#161914
		);
	background-size: cover;
	background-position: center;
}

.race-history-year {
	position: absolute;
	left: 20px;
	bottom: 18px;
	z-index: 2;
	color: var(--aa-accent);
	font-size: 34px;
	font-weight: 900;
	letter-spacing: -.04em;
}

.race-history-content {
	padding-top: 19px;
}

.race-history-content > p {
	margin: 0 0 7px;
	color: rgba(255,255,255,.48);
	font-size: 9px;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.race-history-content h3 {
	margin: 0 0 17px;
	font-size: 25px;
	line-height: 1.05;
	letter-spacing: -.035em;
}

.race-history-content h3 a {
	color: white;
}

.races-history .aa-text-link {
	color: var(--aa-accent);
}

.races-history-empty {
	padding: 35px 0;
	color: rgba(255,255,255,.55);
}


/* CTA FINAL */

.races-archive-final {
	padding: 150px 0;
	background: #262a22;
	color: white;
	text-align: center;
}

.races-archive-final .aa-container {
	display: flex;
	flex-direction: column;
	align-items: center;
}

.races-archive-final h2 {
	max-width: 1000px;
	margin: 12px 0 42px;
	font-size: clamp(55px,7vw,105px);
	line-height: .87;
	letter-spacing: -.065em;
}


/* RESPONSIVE */

@media (max-width: 950px) {

	.races-upcoming-grid {
		grid-template-columns: 1fr;
	}

	.races-history-grid {
		grid-template-columns:
			repeat(2,minmax(0,1fr));
	}

	.races-history-heading {
		grid-template-columns: 1fr;
		gap: 25px;
	}

}


@media (max-width: 600px) {

	.races-archive-hero {
		padding: 150px 0 90px;
	}

	.races-archive-hero h1 {
		font-size: clamp(62px,18vw,90px);
	}

	.races-upcoming {
		padding: 85px 0 100px;
	}

	.race-card-image {
		min-height: 390px;
	}

	.race-card-date strong {
		font-size: 50px;
	}

	.races-history {
		padding: 95px 0;
	}

	.races-history-grid {
		grid-template-columns: 1fr;
	}

	.race-history-image {
		min-height: 380px;
	}

	.races-archive-final {
		padding: 100px 0;
	}

}