: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 HERO — VIMEO BACKGROUND */

.home-hero-vimeo {
	position: absolute;
	inset: 0;
	overflow: hidden;
	z-index: 0;
	pointer-events: none;
	background: #181a16;
}

.home-hero-vimeo iframe {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 100vw;
	height: 56.25vw;
	min-width: 177.78vh;
	min-height: 100%;
	transform: translate(-50%, -50%);
	border: 0;
	pointer-events: none;
}

.home-hero-fallback {
	position: absolute;
	inset: 0;
	z-index: -1;
}

.home-hero-overlay {
	z-index: 1;
}

@media (max-width: 600px) {
	.home-hero-vimeo iframe {
		width: 177.78vh;
		height: 100vh;
		min-width: 100%;
		min-height: 56.25vw;
	}
}

/* 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;
	}

}

/* ==========================================================
   SINGLE HISTORIA
   ========================================================== */

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


/* HERO */

.story-hero {
	position: relative;
	display: flex;
	align-items: flex-end;
	min-height: 88vh;
	padding: 180px 0 85px;
	overflow: hidden;
	background:
		radial-gradient(
			circle at 70% 20%,
			rgba(217,242,68,.12),
			transparent 30%
		),
		linear-gradient(
			135deg,
			#34392f,
			#11130f 60%,
			#080907
		);
	background-position: center;
	background-size: cover;
	color: white;
}

.story-hero-overlay {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(
			90deg,
			rgba(5,6,4,.83) 0%,
			rgba(5,6,4,.52) 48%,
			rgba(5,6,4,.16) 100%
		),
		linear-gradient(
			0deg,
			rgba(5,6,4,.58),
			transparent 55%
		);
}

.story-hero:not(.has-image) .story-hero-overlay {
	background:
		radial-gradient(
			circle at 75% 30%,
			rgba(217,242,68,.08),
			transparent 28%
		);
}

.story-hero-inner {
	position: relative;
	z-index: 2;
	width: 100%;
}

.story-hero-content {
	max-width: 1120px;
}

.story-hero h1 {
	max-width: 1100px;
	margin: 15px 0 30px;
	font-size: clamp(64px,8vw,125px);
	font-weight: 900;
	line-height: .86;
	letter-spacing: -.065em;
}

.story-hero-intro {
	max-width: 720px;
	margin: 0;
	color: rgba(255,255,255,.78);
	font-size: clamp(18px,2vw,23px);
	line-height: 1.55;
}

.story-hero-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 35px 55px;
	margin-top: 55px;
	padding-top: 25px;
	border-top: 1px solid rgba(255,255,255,.22);
}

.story-hero-meta div {
	min-width: 110px;
}

.story-hero-meta span {
	display: block;
	margin-bottom: 5px;
	color: var(--aa-accent);
	font-size: 8px;
	font-weight: 900;
	letter-spacing: .13em;
	text-transform: uppercase;
}

.story-hero-meta strong {
	display: block;
	color: white;
	font-size: 13px;
	font-weight: 600;
}


/* RELATO */

.story-narrative {
	padding: 120px 0 105px;
}

.story-narrative-grid {
	display: grid;
	grid-template-columns: .7fr 1.3fr;
	gap: 80px;
}

.story-narrative-copy {
	max-width: 800px;
}

.story-narrative-copy p {
	margin: 0 0 1em;
	font-size: clamp(25px,3vw,40px);
	line-height: 1.28;
	letter-spacing: -.025em;
}

.story-narrative-copy p:last-child {
	margin-bottom: 0;
}


/* DATOS DESTACADOS */

.story-highlights {
	padding: 0 0 110px;
}

.story-highlights-grid {
	display: grid;
	grid-template-columns:
		repeat(
			auto-fit,
			minmax(180px,1fr)
		);
	border-top: 1px solid var(--aa-border);
	border-bottom: 1px solid var(--aa-border);
}

.story-highlight {
	padding: 40px 28px 40px 0;
}

.story-highlight + .story-highlight {
	padding-left: 28px;
	border-left: 1px solid var(--aa-border);
}

.story-highlight strong {
	display: block;
	font-size: clamp(38px,5vw,68px);
	line-height: .95;
	letter-spacing: -.055em;
}

.story-highlight span {
	display: block;
	margin-top: 10px;
	color: var(--aa-muted);
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .1em;
	text-transform: uppercase;
}


/* GALERÍA */

.story-gallery {
	padding: 25px 0 110px;
}

.story-gallery-grid {
	display: grid;
	grid-template-columns:
		repeat(
			2,
			minmax(0,1fr)
		);
	gap: 18px;
	align-items: start;
}

.story-media-item {
	margin: 0;
	overflow: hidden;
}

.story-media-item img,
.story-media-item video {
	display: block;
	width: 100%;
	height: auto;
	background: #111;
}

.story-media-item iframe {
	display: block;
	width: 100%;
	max-width: 100%;
	aspect-ratio: 16 / 9;
	height: auto;
	border: 0;
}

.story-media-item:nth-child(3n+1) {
	grid-column: span 2;
}

.story-media-item:nth-child(3n+1) img {
	max-height: 760px;
	object-fit: cover;
}

.story-media-item figcaption {
	padding-top: 10px;
	color: var(--aa-muted);
	font-size: 10px;
	line-height: 1.5;
}


/* EXPERIENCIA */

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

.story-experience-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 100px;
	align-items: start;
}

.story-experience h2 {
	max-width: 650px;
	margin: 15px 0 0;
	font-size: clamp(45px,5vw,78px);
	line-height: .93;
	letter-spacing: -.055em;
}

.story-experience-copy {
	padding-top: 37px;
}

.story-experience-copy p {
	max-width: 650px;
	margin: 0 0 1.5em;
	color: rgba(255,255,255,.72);
	font-size: 18px;
	line-height: 1.75;
}

.story-experience-copy p:last-child {
	margin-bottom: 0;
}


/* SEGUNDA GALERÍA */

.story-gallery-second {
	padding-top: 110px;
}


/* TESTIMONIO */

.story-testimonial {
	padding: 130px 0;
	background: #eff0ea;
}

.story-testimonial-inner {
	max-width: 1050px;
	margin: 0 auto;
	text-align: center;
}

.story-quote-mark {
	display: block;
	height: 70px;
	color: var(--aa-accent);
	font-size: 110px;
	font-weight: 900;
	line-height: 1;
}

.story-testimonial blockquote {
	margin: 15px 0 35px;
	font-size: clamp(34px,4.5vw,66px);
	font-weight: 700;
	line-height: 1.06;
	letter-spacing: -.045em;
}

.story-testimonial-author strong,
.story-testimonial-author span {
	display: block;
}

.story-testimonial-author strong {
	font-size: 13px;
}

.story-testimonial-author span {
	margin-top: 4px;
	color: var(--aa-muted);
	font-size: 10px;
	text-transform: uppercase;
	letter-spacing: .08em;
}


/* CONTENIDO LIBRE */

.story-free-content {
	padding: 100px 0;
}

.story-free-content-inner {
	max-width: 760px;
	margin: 0 auto;
}

.story-free-content-inner p {
	font-size: 17px;
	line-height: 1.8;
}

.story-free-content-inner img {
	max-width: 100%;
	height: auto;
}


/* CTA FINAL */

.story-final {
	padding: 150px 0;
	background: #292d25;
	color: white;
	text-align: center;
}

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

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

.story-final > .aa-container > p:not(.hero-kicker) {
	max-width: 620px;
	margin: 0 0 40px;
	color: rgba(255,255,255,.63);
	font-size: 16px;
	line-height: 1.7;
}


/* RESPONSIVE */

@media (max-width: 900px) {

	.story-narrative-grid,
	.story-experience-grid {
		grid-template-columns: 1fr;
		gap: 35px;
	}

	.story-experience-copy {
		padding-top: 0;
	}

}


@media (max-width: 700px) {

	.story-hero {
		min-height: 760px;
		padding: 145px 0 65px;
	}

	.story-hero h1 {
		font-size: clamp(55px,16vw,82px);
	}

	.story-hero-meta {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 22px;
	}

	.story-narrative {
		padding: 85px 0 75px;
	}

	.story-highlights {
		padding-bottom: 80px;
	}

	.story-highlights-grid {
		grid-template-columns: 1fr 1fr;
	}

	.story-highlight {
		padding: 25px 15px 25px 0;
	}

	.story-highlight + .story-highlight {
		padding-left: 15px;
	}

	.story-gallery {
		padding-bottom: 80px;
	}

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

	.story-media-item:nth-child(3n+1) {
		grid-column: auto;
	}

	.story-experience {
		padding: 90px 0;
	}

	.story-gallery-second {
		padding-top: 80px;
	}

	.story-testimonial {
		padding: 90px 0;
	}

	.story-final {
		padding: 100px 0;
	}

}

/* ==========================================================
   ARCHIVO HISTORIAS
   ========================================================== */

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


/* HERO */

.stories-archive-hero {
	position: relative;
	overflow: hidden;
	padding: 145px 0 105px;
	background:
		linear-gradient(
			135deg,
			#353a30,
			#11130f 58%,
			#070806
		);
	color: white;
	background-size: cover;
	background-position: center;
}

.stories-archive-hero::after {
	display: none;
}

.stories-archive-hero-content {
	position: relative;
	z-index: 2;
	max-width: 1120px;
}

.stories-archive-hero h1 {
	max-width: 1050px;
	margin: 14px 0 28px;
	font-size: clamp(58px,7vw,108px);
	font-weight: 900;
	line-height: .88;
	letter-spacing: -.065em;
}

.stories-archive-intro {
	max-width: 650px;
	margin: 0;
	color: rgba(255,255,255,.72);
	font-size: 17px;
	line-height: 1.6;
}


/* INTRO */

.stories-intro {
	padding: 72px 0 45px;
}

.stories-intro-grid {
	display: grid;
	grid-template-columns: .62fr 1.38fr;
	gap: clamp(45px,7vw,110px);
	align-items: start;
}

.stories-intro-grid > div:last-child {
	max-width: 820px;
}

.stories-intro-grid > div:last-child p {
	margin: 0;
	font-size: clamp(24px,2.5vw,36px);
	line-height: 1.3;
	letter-spacing: -.025em;
}


/* GRID */

.stories-list {
	padding: 20px 0 105px;
}

.stories-grid {
	display: grid;
	grid-template-columns: repeat(2,minmax(0,1fr));
	gap: 72px 28px;
}

/* Una sola historia: composición editorial protagonista */
.stories-grid:has(.story-card:only-child) {
	grid-template-columns: minmax(0, 1fr);
	max-width: 1240px;
}

.stories-grid:has(.story-card:only-child) .story-card {
	display: grid;
	grid-template-columns: minmax(0,1.25fr) minmax(300px,.75fr);
	gap: clamp(34px,5vw,76px);
	align-items: center;
}

.stories-grid:has(.story-card:only-child) .story-card-visual {
	height: clamp(390px,38vw,570px);
}

.stories-grid:has(.story-card:only-child) .story-card-content {
	padding-top: 0;
}

.story-card {
	min-width: 0;
}

.story-card-featured {
	grid-column: span 2;
}

.story-card-visual {
	position: relative;
	display: block;
	height: clamp(320px,32vw,470px);
	overflow: hidden;
	background:
		linear-gradient(
			135deg,
			#2d322a,
			#11130f 68%,
			#080907
		);
	background-position: center;
	background-size: cover;
}

.story-card-featured .story-card-visual {
	height: clamp(390px,40vw,560px);
}

/* Sin fotografía: no mostramos un bloque vacío gigante */
.story-card-visual:not(.has-image) {
	height: 150px;
	background:
		linear-gradient(
			110deg,
			#242820,
			#11130f 68%,
			#090a08
		);
	border-top: 3px solid var(--aa-accent);
}

.stories-grid:has(.story-card:only-child) .story-card-visual:not(.has-image) {
	height: 180px;
}

.story-card-overlay {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(
			0deg,
			rgba(5,6,4,.58),
			transparent 58%
		);
	transition: background .3s ease;
}

.story-card:hover .story-card-overlay {
	background:
		linear-gradient(
			0deg,
			rgba(5,6,4,.72),
			rgba(5,6,4,.04) 75%
		);
}

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

.story-card-view {
	position: absolute;
	z-index: 2;
	right: 26px;
	bottom: 22px;
	color: white;
	font-size: 9px;
	font-weight: 900;
	letter-spacing: .12em;
	opacity: 0;
	transform: translateY(8px);
	transition:
		opacity .25s ease,
		transform .25s ease;
}

.story-card:hover .story-card-view,
.story-card-visual:not(.has-image) .story-card-view {
	opacity: 1;
	transform: translateY(0);
}


/* CONTENIDO TARJETA */

.story-card-content {
	padding-top: 20px;
}

.story-card-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 7px 18px;
	margin-bottom: 11px;
	color: var(--aa-muted);
	font-size: 9px;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.story-card-meta span + span::before {
	content: "·";
	margin-right: 18px;
	color: var(--aa-accent);
}

.story-card h2 {
	max-width: 760px;
	margin: 0;
	font-size: clamp(30px,3vw,46px);
	line-height: .98;
	letter-spacing: -.045em;
}

.story-card-featured h2 {
	max-width: 860px;
	font-size: clamp(36px,3.8vw,58px);
}

.stories-grid:has(.story-card:only-child) .story-card h2 {
	font-size: clamp(38px,4.2vw,62px);
}

.story-card h2 a {
	color: var(--aa-text);
}

.story-card-intro {
	max-width: 650px;
	margin: 16px 0 0;
	color: var(--aa-muted);
	font-size: 15px;
	line-height: 1.65;
}


/* SIN HISTORIAS */

.stories-empty {
	max-width: 850px;
	padding: 55px;
	background: #eff0ea;
}

.stories-empty h2 {
	max-width: 700px;
	margin: 12px 0 20px;
	font-size: clamp(38px,4.5vw,60px);
	line-height: .95;
	letter-spacing: -.05em;
}

.stories-empty > p:last-child {
	max-width: 550px;
	margin-bottom: 0;
	color: var(--aa-muted);
	line-height: 1.7;
}


/* EMPRESAS */

.stories-company {
	padding: 90px 0;
	background: var(--aa-dark);
	color: white;
}

.stories-company-grid {
	display: grid;
	grid-template-columns: 1.1fr .9fr;
	gap: clamp(55px,8vw,120px);
	align-items: center;
}

.stories-company h2 {
	max-width: 760px;
	margin: 12px 0 0;
	font-size: clamp(45px,5vw,72px);
	line-height: .91;
	letter-spacing: -.055em;
}

.stories-company-copy {
	padding-bottom: 0;
}

.stories-company-copy p {
	max-width: 520px;
	margin: 0 0 28px;
	color: rgba(255,255,255,.68);
	font-size: 16px;
	line-height: 1.65;
}


/* CTA */

.stories-final {
	position: relative;
	overflow: hidden;
	padding: 110px 0;
	background: #292d25;
	background-size: cover;
	background-position: center;
	color: white;
	text-align: center;
}

.stories-final .aa-container {
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: center;
}

.stories-final h2 {
	max-width: 980px;
	margin: 12px 0 34px;
	font-size: clamp(52px,6vw,88px);
	line-height: .89;
	letter-spacing: -.06em;
}


/* RESPONSIVE */

@media (max-width: 900px) {

	.stories-archive-hero {
		padding: 125px 0 90px;
	}

	.stories-intro-grid,
	.stories-company-grid {
		grid-template-columns: 1fr;
		gap: 30px;
	}

	.stories-grid {
		gap: 58px 18px;
	}

	.stories-grid:has(.story-card:only-child) .story-card {
		grid-template-columns: 1fr;
		gap: 26px;
	}

	.stories-grid:has(.story-card:only-child) .story-card-visual {
		height: clamp(360px,58vw,520px);
	}

	.stories-grid:has(.story-card:only-child) .story-card-visual:not(.has-image) {
		height: 150px;
	}

	.story-card-featured .story-card-visual {
		min-height: 500px;
	}

	.stories-company-copy {
		max-width: 620px;
	}

}


@media (max-width: 700px) {

	.stories-archive-hero {
		padding: 105px 0 72px;
		background-position: center;
	}

	.stories-archive-hero h1 {
		max-width: 100%;
		font-size: clamp(52px,15vw,76px);
		line-height: .9;
	}

	.stories-archive-intro {
		font-size: 16px;
	}

	.stories-intro {
		padding: 60px 0 38px;
	}

	.stories-intro-grid > div:last-child p {
		font-size: clamp(23px,7vw,31px);
	}

	.stories-list {
		padding: 15px 0 78px;
	}

	.stories-grid,
	.stories-grid:has(.story-card:only-child) {
		grid-template-columns: 1fr;
		gap: 52px;
		max-width: none;
	}

	.stories-grid:has(.story-card:only-child) .story-card {
		display: block;
	}

	.story-card-featured {
		grid-column: auto;
	}

	.story-card-visual,
	.story-card-featured .story-card-visual,
	.stories-grid:has(.story-card:only-child) .story-card-visual {
		height: 62vw;
		min-height: 300px;
		max-height: 430px;
	}

	.story-card-visual:not(.has-image),
	.story-card-featured .story-card-visual:not(.has-image),
	.stories-grid:has(.story-card:only-child) .story-card-visual:not(.has-image) {
		height: 135px;
		min-height: 135px;
	}

	.story-card-content,
	.stories-grid:has(.story-card:only-child) .story-card-content {
		padding-top: 18px;
	}

	.story-card-view {
		opacity: 1;
		transform: none;
	}

	.story-card-meta span + span::before {
		display: none;
	}

	.stories-company {
		padding: 72px 0;
	}

	.stories-company h2 {
		font-size: clamp(43px,13vw,64px);
	}

	.stories-final {
		padding: 82px 0;
	}

	.stories-final h2 {
		font-size: clamp(48px,13vw,72px);
	}

}


/* ==========================================================
   EMPRESAS
   ========================================================== */

.company-page {
	background: var(--aa-bg);
}

.company-hero {
	position: relative;
	min-height: min(820px, calc(100vh - 82px));
	display: flex;
	align-items: flex-end;
	overflow: hidden;
	background:
		radial-gradient(circle at 72% 22%, rgba(217,242,68,.12), transparent 24%),
		linear-gradient(135deg, #30352c 0%, #171914 50%, #090a08 100%);
	background-position: center;
	background-size: cover;
	color: var(--aa-white);
}

.company-hero-video,
.company-hero-overlay {
	position: absolute;
	inset: 0;
}

.company-hero-video {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.company-hero-overlay {
	z-index: 1;
	background:
		linear-gradient(90deg, rgba(0,0,0,.78) 0%, rgba(0,0,0,.43) 52%, rgba(0,0,0,.16) 100%),
		linear-gradient(0deg, rgba(0,0,0,.58) 0%, transparent 52%);
}

.company-hero-inner {
	position: relative;
	z-index: 2;
	width: 100%;
}

.company-hero-content {
	max-width: 920px;
	padding: 125px 0 105px;
}

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

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

.company-hero .aa-button {
	margin-top: 36px;
}

.company-needs,
.company-why {
	padding: 130px 0 140px;
}

.company-section-heading,
.company-stories-heading {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(300px, .65fr);
	gap: 80px;
	align-items: end;
	margin-bottom: 78px;
}

.company-section-heading h2,
.company-stories-heading h2 {
	max-width: 820px;
	margin: 14px 0 0;
	font-size: clamp(50px, 5.5vw, 88px);
	line-height: .91;
	letter-spacing: -.055em;
	font-weight: 900;
}

.company-section-intro,
.company-stories-heading > div:last-child {
	max-width: 520px;
	justify-self: end;
}

.company-section-intro p,
.company-stories-heading > div:last-child > p {
	margin: 0;
	color: var(--aa-muted);
	font-size: 17px;
	line-height: 1.7;
}

.company-objectives {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	border-top: 1px solid var(--aa-border);
}

.company-objective {
	min-width: 0;
	padding: 30px 28px 12px 0;
	border-right: 1px solid var(--aa-border);
}

.company-objective + .company-objective {
	padding-left: 28px;
}

.company-objective:last-child {
	border-right: 0;
}

.company-objective-number,
.company-step-number {
	display: block;
	margin-bottom: 55px;
	color: var(--aa-muted);
	font-size: 10px;
	font-weight: 900;
	letter-spacing: .15em;
}

.company-objective h3,
.company-approach-step h3,
.company-reason h3,
.company-story-content h3 {
	margin: 0;
	font-size: 25px;
	line-height: 1.05;
	letter-spacing: -.035em;
	font-weight: 900;
}

.company-objective p,
.company-approach-step p,
.company-reason p,
.company-story-content > p:last-child {
	margin: 18px 0 0;
	color: var(--aa-muted);
	font-size: 14px;
	line-height: 1.7;
}

.company-approach {
	padding: 130px 0 140px;
	background: var(--aa-dark);
	color: var(--aa-white);
}

.company-approach-heading {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(320px, .6fr);
	column-gap: 90px;
	align-items: end;
	margin-bottom: 90px;
}

.company-approach-heading .hero-kicker {
	grid-column: 1 / -1;
}

.company-approach-heading h2 {
	max-width: 900px;
	margin: 0;
	font-size: clamp(52px, 6.2vw, 100px);
	line-height: .89;
	letter-spacing: -.06em;
	font-weight: 900;
}

.company-approach-intro {
	max-width: 510px;
	margin: 0 0 5px;
	color: rgba(255,255,255,.65);
	font-size: 17px;
	line-height: 1.7;
}

.company-approach-steps {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	border-top: 1px solid rgba(255,255,255,.18);
}

.company-approach-step {
	padding: 32px 42px 10px 0;
	border-right: 1px solid rgba(255,255,255,.18);
}

.company-approach-step + .company-approach-step {
	padding-left: 42px;
}

.company-approach-step:last-child {
	border-right: 0;
}

.company-approach-step .company-step-number {
	margin-bottom: 75px;
	color: var(--aa-accent);
}

.company-approach-step p {
	color: rgba(255,255,255,.62);
}

.company-why {
	background: #f0f0ec;
}

.company-reasons {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	border-top: 1px solid var(--aa-border);
	border-left: 1px solid var(--aa-border);
}

.company-reason {
	position: relative;
	min-height: 270px;
	padding: 38px 46px 42px;
	border-right: 1px solid var(--aa-border);
	border-bottom: 1px solid var(--aa-border);
}

.company-reason-mark {
	display: block;
	width: 10px;
	height: 10px;
	margin-bottom: 65px;
	background: var(--aa-accent);
	border-radius: 50%;
}

.company-reason h3 {
	font-size: 31px;
}

.company-reason p {
	max-width: 520px;
}

.company-stories {
	padding: 130px 0 145px;
	background: var(--aa-bg);
}

.company-stories-all {
	display: inline-block;
	margin-top: 28px;
	padding-bottom: 7px;
	border-bottom: 1px solid currentColor;
	font-size: 10px;
	font-weight: 900;
	letter-spacing: .1em;
}

.company-stories-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
}

.company-story-card {
	min-width: 0;
}

.company-story-visual {
	position: relative;
	display: block;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background:
		radial-gradient(circle at 75% 22%, rgba(217,242,68,.15), transparent 22%),
		linear-gradient(135deg, #343a30 0%, #181a16 58%, #0d0e0c 100%);
	background-position: center;
	background-size: cover;
}

.company-story-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(0deg, rgba(0,0,0,.58), rgba(0,0,0,.04) 62%);
	transition: background .25s ease;
}

.company-story-visual:hover .company-story-overlay {
	background: linear-gradient(0deg, rgba(0,0,0,.68), rgba(0,0,0,.1) 68%);
}

.company-story-type,
.company-story-link {
	position: absolute;
	z-index: 2;
	color: var(--aa-white);
	font-size: 9px;
	font-weight: 900;
	letter-spacing: .13em;
	text-transform: uppercase;
}

.company-story-type {
	top: 24px;
	left: 24px;
}

.company-story-link {
	right: 24px;
	bottom: 22px;
}

.company-story-content {
	padding-top: 24px;
}

.company-story-client {
	margin: 0 0 12px;
	color: var(--aa-muted);
	font-size: 9px;
	font-weight: 900;
	letter-spacing: .13em;
	text-transform: uppercase;
}

.company-story-content h3 {
	font-size: clamp(26px, 2.4vw, 38px);
}

.company-final {
	padding: 145px 0 150px;
	background: var(--aa-dark);
	color: var(--aa-white);
}

.company-final-inner {
	max-width: 1050px;
}

.company-final h2 {
	max-width: 1000px;
	margin: 0;
	font-size: clamp(58px, 7.2vw, 116px);
	line-height: .86;
	letter-spacing: -.065em;
	font-weight: 900;
}

.company-final-inner > p:not(.hero-kicker) {
	max-width: 610px;
	margin: 32px 0 0;
	color: rgba(255,255,255,.65);
	font-size: 17px;
	line-height: 1.7;
}

.company-final .aa-button {
	margin-top: 38px;
}

@media (max-width: 1100px) {
	.company-objectives {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		border-left: 1px solid var(--aa-border);
	}

	.company-objective,
	.company-objective + .company-objective {
		padding: 28px 30px 35px;
		border-bottom: 1px solid var(--aa-border);
	}

	.company-objective:last-child {
		border-right: 1px solid var(--aa-border);
	}

	.company-objective-number {
		margin-bottom: 45px;
	}
}

@media (max-width: 900px) {
	.company-hero {
		min-height: 720px;
	}

	.company-hero-content {
		padding: 105px 0 80px;
	}

	.company-needs,
	.company-why,
	.company-stories,
	.company-approach {
		padding-top: 100px;
		padding-bottom: 105px;
	}

	.company-section-heading,
	.company-stories-heading,
	.company-approach-heading {
		grid-template-columns: 1fr;
		gap: 30px;
		margin-bottom: 60px;
	}

	.company-section-intro,
	.company-stories-heading > div:last-child {
		max-width: 650px;
		justify-self: start;
	}

	.company-approach-heading .hero-kicker {
		grid-column: auto;
	}

	.company-approach-steps {
		grid-template-columns: 1fr;
	}

	.company-approach-step,
	.company-approach-step + .company-approach-step {
		padding: 30px 0 38px;
		border-right: 0;
		border-bottom: 1px solid rgba(255,255,255,.18);
	}

	.company-approach-step:last-child {
		border-bottom: 0;
	}

	.company-approach-step .company-step-number {
		margin-bottom: 35px;
	}

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

	.company-final {
		padding: 110px 0 115px;
	}
}

@media (max-width: 700px) {
	.company-hero {
		min-height: 650px;
	}

	.company-hero-content {
		padding: 90px 0 65px;
	}

	.company-hero h1 {
		font-size: clamp(52px, 16vw, 78px);
	}

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

	.company-needs,
	.company-why,
	.company-stories,
	.company-approach {
		padding-top: 80px;
		padding-bottom: 85px;
	}

	.company-section-heading h2,
	.company-stories-heading h2,
	.company-approach-heading h2 {
		font-size: clamp(43px, 13vw, 64px);
	}

	.company-section-heading,
	.company-stories-heading,
	.company-approach-heading {
		margin-bottom: 48px;
	}

	.company-objectives,
	.company-reasons,
	.company-stories-grid {
		grid-template-columns: 1fr;
	}

	.company-objective,
	.company-objective + .company-objective {
		padding: 26px 24px 32px;
		border-right: 1px solid var(--aa-border);
	}

	.company-objective-number {
		margin-bottom: 32px;
	}

	.company-reason {
		min-height: 0;
		padding: 30px 28px 34px;
	}

	.company-reason-mark {
		margin-bottom: 38px;
	}

	.company-story-visual {
		aspect-ratio: 4 / 3;
	}

	.company-final {
		padding: 85px 0 90px;
	}

	.company-final h2 {
		font-size: clamp(50px, 15vw, 76px);
	}
}

/* ==========================================================
   EMPRESAS · AJUSTE DE COMPOSICIÓN
   Base: main.css validado 26-09-2026
   ========================================================== */

@media (min-width: 901px) {

	/* Qué necesita tu equipo: menos vacío y objetivos con más presencia */
	.company-needs {
		padding-top: clamp(90px, 8vw, 130px);
		padding-bottom: clamp(90px, 8vw, 130px);
	}

	.company-needs .company-section-heading {
		margin-bottom: clamp(55px, 5vw, 78px);
	}

	.company-objectives {
		align-items: stretch;
	}

	.company-objective {
		min-height: 290px;
		padding: 30px 30px 34px;
		display: flex;
		flex-direction: column;
		justify-content: flex-start;
		transition:
			background-color 180ms ease,
			transform 180ms ease;
	}

	.company-objective:hover {
		background: rgba(217, 242, 68, 0.10);
		transform: translateY(-4px);
	}

	.company-objective-number {
		display: block;
		margin-bottom: 54px;
		font-size: 12px;
		font-weight: 800;
		letter-spacing: 0.16em;
		color: var(--aa-lime, #d9f244);
	}

	.company-objective h3 {
		margin: 0 0 20px;
	}

	.company-objective p {
		margin-top: auto;
	}


	/* A la medida: acercar título y texto y reducir el vacío central */
	.company-approach-heading {
		display: grid;
		grid-template-columns: minmax(0, 1.35fr) minmax(330px, 0.75fr);
		column-gap: clamp(55px, 6vw, 105px);
		align-items: end;
	}

	.company-approach-heading .hero-kicker {
		grid-column: 1 / -1;
	}

	.company-approach-heading h2 {
		grid-column: 1;
		max-width: 780px;
		font-size: clamp(64px, 6.4vw, 112px);
		line-height: 0.91;
		letter-spacing: -0.055em;
	}

	.company-approach-intro {
		grid-column: 2;
		max-width: 520px;
		margin: 0 0 8px;
		justify-self: start;
	}

	.company-approach {
		padding-top: clamp(105px, 9vw, 150px);
		padding-bottom: clamp(95px, 8vw, 135px);
	}

	.company-approach-steps {
		margin-top: clamp(70px, 6vw, 100px);
	}
}


@media (max-width: 1200px) and (min-width: 901px) {

	.company-objective {
		padding-inline: 22px;
	}

	.company-approach-heading {
		grid-template-columns: minmax(0, 1.2fr) minmax(300px, 0.8fr);
		column-gap: 48px;
	}

	.company-approach-heading h2 {
		font-size: clamp(62px, 7vw, 88px);
	}
}

/* ==========================================================
   EMPRESAS · AJUSTE DE COMPOSICIÓN V2
   Corrección visual más marcada
   ========================================================== */

@media (min-width: 901px) {

	/* OBJETIVOS: contenido agrupado, no flotando dentro de columnas altas */
	.company-needs {
		padding-top: clamp(80px, 6vw, 110px);
		padding-bottom: clamp(75px, 6vw, 105px);
	}

	.company-needs .company-section-heading {
		margin-bottom: 52px;
	}

	.company-objectives {
		align-items: stretch;
	}

	.company-objective {
		min-height: 235px;
		padding: 30px 36px 34px;
		display: block;
	}

	.company-objective-number {
		margin: 0 0 44px;
	}

	.company-objective h3 {
		margin: 0 0 18px;
	}

	.company-objective p {
		margin: 0;
		max-width: 260px;
	}


	/* METODOLOGÍA: columnas realmente próximas entre sí */
	.company-approach {
		padding-top: clamp(90px, 7vw, 125px);
		padding-bottom: clamp(85px, 7vw, 120px);
	}

	.company-approach-heading {
		display: grid;
		grid-template-columns: minmax(0, 780px) minmax(320px, 500px);
		column-gap: clamp(70px, 6vw, 120px);
		justify-content: start;
		align-items: end;
	}

	.company-approach-heading .hero-kicker {
		grid-column: 1 / -1;
		margin-bottom: 30px;
	}

	.company-approach-heading h2 {
		grid-column: 1;
		max-width: 780px;
		margin: 0;
		font-size: clamp(68px, 5.5vw, 102px);
		line-height: 0.91;
		letter-spacing: -0.055em;
	}

	.company-approach-intro {
		grid-column: 2;
		max-width: 500px;
		margin: 0 0 6px;
		justify-self: start;
	}

	.company-approach-steps {
		margin-top: clamp(60px, 5vw, 85px);
	}
}

@media (max-width: 1200px) and (min-width: 901px) {

	.company-objective {
		min-height: 250px;
		padding-inline: 24px;
	}

	.company-approach-heading {
		grid-template-columns: minmax(0, 58%) minmax(0, 42%);
		column-gap: 44px;
	}

	.company-approach-heading h2 {
		font-size: clamp(62px, 6.7vw, 84px);
	}
}

/* ==========================================================
   EMPRESAS · AJUSTE FINAL DE RITMO Y COMPOSICIÓN
   Base validada: main-empresas-ajustado-v2.css
   ========================================================== */

@media (min-width: 901px) {

	/* 1. Necesidades: acercar la grilla al encabezado y compactar el cierre */
	.company-needs {
		padding-bottom: clamp(65px, 5vw, 90px);
	}

	.company-needs .company-section-heading {
		margin-bottom: 38px;
	}

	.company-objective {
		min-height: 215px;
		padding-top: 26px;
		padding-bottom: 28px;
	}

	.company-objective-number {
		margin-bottom: 38px;
	}


	/* 2. Por qué Aventura Aconcagua: razones más compactas */
	.company-why {
		padding-top: clamp(85px, 7vw, 120px);
		padding-bottom: clamp(80px, 6vw, 110px);
	}

	.company-why .company-section-heading {
		margin-bottom: clamp(52px, 4vw, 70px);
	}

	.company-reason {
		min-height: 245px;
		padding: 34px 46px 38px;
	}

	.company-reason-mark {
		margin-bottom: 58px;
	}

	.company-reason h3 {
		margin-bottom: 18px;
	}


	/* 3. Historias: adaptar la grilla a la cantidad real de historias */
	.company-stories {
		padding-top: clamp(85px, 7vw, 120px);
		padding-bottom: clamp(85px, 7vw, 120px);
	}

	.company-stories-heading {
		margin-bottom: clamp(55px, 5vw, 80px);
	}

	.company-stories-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		align-items: start;
	}

	.company-stories-grid:has(.company-story-card:only-child) {
		grid-template-columns: minmax(0, 760px);
	}

	.company-stories-grid:has(.company-story-card:nth-child(2):last-child) {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		max-width: 1200px;
	}

	.company-stories-grid:has(.company-story-card:only-child) .company-story-visual {
		aspect-ratio: 16 / 9;
	}

	.company-stories-grid:has(.company-story-card:only-child) .company-story-content {
		max-width: 680px;
	}


	/* 4. CTA final: conservar impacto con menos vacío */
	.company-final {
		padding-top: clamp(95px, 8vw, 135px);
		padding-bottom: clamp(95px, 8vw, 135px);
	}

	.company-final-inner {
		max-width: 1180px;
	}

	.company-final h2 {
		max-width: 1050px;
	}

	.company-final p:not(.hero-kicker) {
		max-width: 760px;
	}
}


@media (max-width: 1200px) and (min-width: 901px) {

	.company-reason {
		padding-inline: 32px;
	}

	.company-stories-grid:has(.company-story-card:only-child) {
		grid-template-columns: minmax(0, 68%);
	}
}


@media (max-width: 900px) {

	.company-stories-grid,
	.company-stories-grid:has(.company-story-card:only-child),
	.company-stories-grid:has(.company-story-card:nth-child(2):last-child) {
		grid-template-columns: 1fr;
		max-width: none;
	}

	.company-stories-grid:has(.company-story-card:only-child) .company-story-visual {
		aspect-ratio: 4 / 3;
	}
}

/* ==========================================================
   NOSOTROS
   ========================================================== */

.about-page {
	background: #fafaf8;
	color: #171717;
}

.about-page .eyebrow,
.about-page .hero-kicker {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .16em;
	text-transform: uppercase;
}


/* HERO */

.about-hero {
	position: relative;
	min-height: min(820px, 88vh);
	display: flex;
	align-items: flex-end;
	overflow: hidden;
	background: #171717;
	color: #fff;
	background-position: center;
	background-size: cover;
}

.about-hero-video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	z-index: 0;
}

.about-hero-overlay {
	position: absolute;
	inset: 0;
	z-index: 1;
	background:
		linear-gradient(
			180deg,
			rgba(0,0,0,.12) 0%,
			rgba(0,0,0,.2) 38%,
			rgba(0,0,0,.78) 100%
		);
}

.about-hero-inner {
	position: relative;
	z-index: 2;
	width: 100%;
	padding-top: 180px;
	padding-bottom: clamp(70px, 8vw, 125px);
}

.about-hero-content {
	max-width: 1080px;
}

.about-hero .hero-kicker {
	margin: 0 0 28px;
	color: #d9f244;
}

.about-hero h1 {
	max-width: 1050px;
	margin: 0;
	font-size: clamp(62px, 7.4vw, 132px);
	line-height: .88;
	letter-spacing: -.055em;
	font-weight: 600;
}

.about-hero-intro {
	max-width: 700px;
	margin: 40px 0 0;
	font-size: clamp(19px, 1.55vw, 25px);
	line-height: 1.48;
	color: rgba(255,255,255,.84);
}


/* NUESTRA HISTORIA */

.about-story {
	padding: clamp(95px, 9vw, 155px) 0;
}

.about-story-grid {
	display: grid;
	grid-template-columns: minmax(0, .92fr) minmax(420px, 1.08fr);
	gap: clamp(70px, 8vw, 145px);
	align-items: center;
}

.about-story-copy {
	max-width: 670px;
}

.about-story .eyebrow {
	margin: 0 0 28px;
}

.about-story h2 {
	margin: 0;
	font-size: clamp(54px, 5.4vw, 94px);
	line-height: .94;
	letter-spacing: -.05em;
	font-weight: 600;
}

.about-story-copy > p:last-child {
	max-width: 610px;
	margin: 42px 0 0;
	font-size: 19px;
	line-height: 1.72;
	color: #555;
}

.about-story-media {
	position: relative;
	min-height: 610px;
	background: #202020;
	background-position: center;
	background-size: cover;
	overflow: hidden;
}

.about-media-label {
	position: absolute;
	left: 32px;
	bottom: 30px;
	color: #d9f244;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .14em;
}


/* TRAYECTORIA */

.about-trajectory {
	padding: clamp(100px, 9vw, 160px) 0;
	background: #171717;
	color: #fff;
}

.about-trajectory-heading {
	display: grid;
	grid-template-columns: minmax(0, 1.2fr) minmax(320px, .65fr);
	gap: clamp(70px, 9vw, 155px);
	align-items: end;
}

.about-trajectory .hero-kicker {
	margin: 0 0 28px;
	color: #d9f244;
}

.about-trajectory h2 {
	max-width: 900px;
	margin: 0;
	font-size: clamp(58px, 6vw, 106px);
	line-height: .91;
	letter-spacing: -.055em;
	font-weight: 600;
}

.about-trajectory-text {
	padding-bottom: 8px;
}

.about-trajectory-text p {
	margin: 0;
	font-size: 19px;
	line-height: 1.7;
	color: rgba(255,255,255,.72);
}

.about-trajectory-image {
	margin-top: clamp(65px, 7vw, 110px);
	min-height: 570px;
	background-position: center;
	background-size: cover;
}


/* TERRITORIO */

.about-territory {
	padding: clamp(100px, 9vw, 160px) 0;
}

.about-territory-grid {
	display: grid;
	grid-template-columns: minmax(420px, 1.05fr) minmax(0, .95fr);
	gap: clamp(70px, 8vw, 145px);
	align-items: center;
}

.about-territory-media {
	position: relative;
	min-height: 660px;
	background: #202020;
	background-position: center;
	background-size: cover;
	overflow: hidden;
}

.about-territory-copy {
	max-width: 680px;
}

.about-territory .eyebrow {
	margin: 0 0 28px;
}

.about-territory h2 {
	margin: 0;
	font-size: clamp(54px, 5.2vw, 92px);
	line-height: .94;
	letter-spacing: -.05em;
	font-weight: 600;
}

.about-territory-copy > p:last-child {
	margin: 42px 0 0;
	font-size: 19px;
	line-height: 1.72;
	color: #555;
}


/* PRINCIPIOS */

.about-principles {
	padding: clamp(100px, 9vw, 155px) 0;
	border-top: 1px solid rgba(0,0,0,.12);
}

.about-principles-heading {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(320px, .65fr);
	gap: clamp(70px, 9vw, 150px);
	align-items: end;
	margin-bottom: clamp(65px, 7vw, 105px);
}

.about-principles .eyebrow {
	margin: 0 0 28px;
}

.about-principles h2 {
	max-width: 850px;
	margin: 0;
	font-size: clamp(58px, 5.8vw, 102px);
	line-height: .92;
	letter-spacing: -.055em;
	font-weight: 600;
}

.about-principles-intro p {
	margin: 0;
	font-size: 19px;
	line-height: 1.65;
	color: #555;
}

.about-principles-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	border-top: 1px solid rgba(0,0,0,.18);
	border-left: 1px solid rgba(0,0,0,.18);
}

.about-principle {
	min-height: 300px;
	padding: 38px 46px 42px;
	display: flex;
	flex-direction: column;
	border-right: 1px solid rgba(0,0,0,.18);
	border-bottom: 1px solid rgba(0,0,0,.18);
	transition: background-color .25s ease;
}

.about-principle:hover {
	background: #d9f244;
}

.about-principle-number {
	margin-bottom: auto;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .12em;
}

.about-principle h3 {
	margin: 55px 0 16px;
	font-size: clamp(27px, 2.1vw, 36px);
	line-height: 1.05;
	letter-spacing: -.035em;
}

.about-principle p {
	max-width: 530px;
	margin: 0;
	font-size: 16px;
	line-height: 1.6;
	color: #555;
}

.about-principle:hover p {
	color: #171717;
}


/* CTA FINAL */

.about-final {
	padding: clamp(105px, 10vw, 175px) 0;
	background: #171717;
	color: #fff;
}

.about-final-inner {
	max-width: 1160px;
}

.about-final .hero-kicker {
	margin: 0 0 28px;
	color: #d9f244;
}

.about-final h2 {
	max-width: 1080px;
	margin: 0;
	font-size: clamp(58px, 6.2vw, 108px);
	line-height: .91;
	letter-spacing: -.055em;
	font-weight: 600;
}

.about-final-inner > p:not(.hero-kicker) {
	max-width: 720px;
	margin: 38px 0 0;
	font-size: 19px;
	line-height: 1.65;
	color: rgba(255,255,255,.72);
}

.about-final .aa-button {
	margin-top: 42px;
}


/* RESPONSIVE */

@media (max-width: 1100px) {

	.about-story-grid,
	.about-territory-grid {
		gap: 60px;
	}

	.about-story-grid {
		grid-template-columns: minmax(0, 1fr) minmax(360px, .9fr);
	}

	.about-territory-grid {
		grid-template-columns: minmax(360px, .9fr) minmax(0, 1fr);
	}

	.about-story-media,
	.about-territory-media {
		min-height: 540px;
	}

	.about-trajectory-heading,
	.about-principles-heading {
		gap: 65px;
	}
}


@media (max-width: 800px) {

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

	.about-hero-inner {
		padding-top: 150px;
		padding-bottom: 65px;
	}

	.about-hero h1 {
		font-size: clamp(58px, 15vw, 88px);
	}

	.about-hero-intro {
		margin-top: 30px;
		font-size: 18px;
	}

	.about-story,
	.about-territory,
	.about-principles {
		padding: 85px 0;
	}

	.about-trajectory {
		padding: 90px 0;
	}

	.about-story-grid,
	.about-territory-grid,
	.about-trajectory-heading,
	.about-principles-heading {
		grid-template-columns: 1fr;
		gap: 48px;
	}

	.about-story h2,
	.about-territory h2,
	.about-trajectory h2,
	.about-principles h2,
	.about-final h2 {
		font-size: clamp(48px, 12vw, 72px);
	}

	.about-story-copy > p:last-child,
	.about-territory-copy > p:last-child {
		margin-top: 30px;
		font-size: 17px;
	}

	.about-story-media,
	.about-territory-media {
		min-height: 480px;
	}

	.about-trajectory-image {
		min-height: 430px;
		margin-top: 55px;
	}

	.about-principles-heading {
		margin-bottom: 52px;
	}

	.about-principles-grid {
		grid-template-columns: 1fr;
	}

	.about-principle {
		min-height: 245px;
		padding: 30px;
	}

	.about-principle h3 {
		margin-top: 45px;
	}

	.about-final {
		padding: 90px 0;
	}
}


@media (max-width: 520px) {

	.about-hero {
		min-height: 690px;
	}

	.about-hero h1 {
		font-size: 56px;
	}

	.about-story-media,
	.about-territory-media {
		min-height: 390px;
	}

	.about-trajectory-image {
		min-height: 340px;
	}

	.about-media-label {
		left: 22px;
		bottom: 22px;
	}

	.about-principle {
		min-height: 225px;
		padding: 26px 24px 30px;
	}
}

/* =========================================================
   CONTACTO — versión visual
   ========================================================= */

.contact-page {
	background: #f5f4ef;
	color: #171917;
}

.contact-hero {
	padding: clamp(8rem, 12vw, 10.5rem) 0 clamp(3rem, 5vw, 4.5rem);
	background: #171917;
	color: #fff;
}

.contact-hero .hero-kicker,
.contact-form-kicker {
	margin: 0 0 1rem;
	color: #d9f244;
	font-size: .74rem;
	font-weight: 800;
	letter-spacing: .15em;
}

.contact-hero h1 {
	margin: 0;
	color: #fff;
	font-size: clamp(3.8rem, 8vw, 7.2rem);
	line-height: .92;
	letter-spacing: -.06em;
}

.contact-hero-intro {
	max-width: 620px;
	margin: 1.5rem 0 0;
	color: rgba(255,255,255,.7);
	font-size: clamp(1rem, 1.5vw, 1.18rem);
	line-height: 1.65;
}

.contact-main {
	padding: clamp(4rem, 7vw, 6.5rem) 0 clamp(6rem, 9vw, 9rem);
}

.contact-message {
	margin: 0 0 3rem;
	padding: 1.1rem 1.25rem;
	border-left: 3px solid #d9f244;
	background: #171917;
	color: #fff;
}

.contact-message strong {
	display: block;
	margin-bottom: .2rem;
}

.contact-message p {
	margin: 0;
	color: rgba(255,255,255,.7);
}

.contact-message-error {
	border-left-color: #171917;
	background: #e7e6e0;
	color: #171917;
}

.contact-message-error p {
	color: #66665f;
}

/* Selector */

.contact-selector-heading {
	margin-bottom: 2.2rem;
}

.contact-selector-heading .eyebrow {
	margin: 0 0 .85rem;
	color: #73736c;
	font-size: .73rem;
	font-weight: 800;
	letter-spacing: .14em;
}

.contact-selector-heading h2 {
	max-width: 900px;
	margin: 0;
	font-size: clamp(2.6rem, 5vw, 5rem);
	line-height: .95;
	letter-spacing: -.055em;
}

.contact-type-selector {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	margin-bottom: clamp(4rem, 7vw, 6.5rem);
	border: 1px solid #d4d4cc;
}

.contact-type {
	position: relative;
	display: flex;
	min-height: 175px;
	flex-direction: column;
	align-items: flex-start;
	justify-content: flex-end;
	padding: 1.7rem 1.8rem;
	border: 0;
	border-right: 1px solid #d4d4cc;
	background: rgba(255,255,255,.62);
	color: #171917;
	text-align: left;
	cursor: pointer;
	transition: background-color 180ms ease, color 180ms ease;
}

.contact-type:last-child {
	border-right: 0;
}

.contact-type:hover,
.contact-type.is-active {
	background: #171917;
	color: #fff;
}

.contact-type-number {
	position: absolute;
	top: 1.4rem;
	left: 1.8rem;
	color: #9b9d96;
	font-size: .72rem;
	font-weight: 800;
	letter-spacing: .08em;
}

.contact-type.is-active .contact-type-number,
.contact-type:hover .contact-type-number {
	color: #d9f244;
}

.contact-type strong {
	display: block;
	margin-bottom: .5rem;
	font-size: clamp(1.35rem, 2vw, 1.85rem);
	line-height: 1;
	letter-spacing: -.035em;
}

.contact-type-description {
	max-width: 260px;
	color: #666861;
	font-size: .88rem;
	line-height: 1.45;
}

.contact-type:hover .contact-type-description,
.contact-type.is-active .contact-type-description {
	color: rgba(255,255,255,.68);
}

/* Bloque imagen + formulario */

.contact-experience {
	display: grid;
	grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr);
	min-height: 620px;
	background: #171917;
}

.contact-visual {
	position: relative;
	min-height: 620px;
	overflow: hidden;
	background:
		linear-gradient(135deg, #30332e, #181a18);
}

.contact-visual img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.contact-visual-placeholder {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: flex-end;
	padding: 2rem;
	background:
		linear-gradient(180deg, rgba(23,25,23,.05), rgba(23,25,23,.82)),
		linear-gradient(135deg, #4b5047, #1b1e1b);
	color: rgba(255,255,255,.72);
	font-size: .75rem;
	font-weight: 800;
	letter-spacing: .12em;
}

.contact-form-panel {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: clamp(2.5rem, 5vw, 5rem);
	color: #fff;
}

.contact-form-heading {
	margin-bottom: 2.4rem;
}

.contact-form-heading h2 {
	max-width: 650px;
	margin: 0 0 1rem;
	color: #d9f244;
	font-size: clamp(2.25rem, 4vw, 4rem);
	line-height: .98;
	letter-spacing: -.05em;
}

.contact-form-heading p {
	max-width: 590px;
	margin: 0;
	color: rgba(255,255,255,.63);
	line-height: 1.6;
}

.contact-form-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem;
}

.contact-field {
	min-width: 0;
}

.contact-field-full {
	grid-column: 1 / -1;
}

.contact-field[hidden] {
	display: none !important;
}

.contact-field label {
	display: block;
	margin: 0 0 .45rem;
	color: rgba(255,255,255,.76);
	font-size: .74rem;
	font-weight: 700;
	letter-spacing: .025em;
}

.contact-field input[type="text"],
.contact-field input[type="email"],
.contact-field input[type="tel"],
.contact-field select,
.contact-field textarea {
	width: 100%;
	border: 1px solid rgba(255,255,255,.23);
	border-radius: 0;
	outline: 0;
	background: rgba(255,255,255,.035);
	color: #fff;
	font: inherit;
	transition: border-color 160ms ease, background-color 160ms ease;
}

.contact-field input[type="text"],
.contact-field input[type="email"],
.contact-field input[type="tel"],
.contact-field select {
	min-height: 52px;
	padding: .75rem .95rem;
}

.contact-field textarea {
	min-height: 130px;
	padding: .85rem .95rem;
	resize: vertical;
	line-height: 1.55;
}

.contact-field input:focus,
.contact-field select:focus,
.contact-field textarea:focus {
	border-color: #d9f244;
	background: rgba(255,255,255,.055);
}

.contact-field textarea::placeholder {
	color: rgba(255,255,255,.35);
}

.contact-field select {
	appearance: none;
	-webkit-appearance: none;
	padding-right: 2.5rem;
	background-image:
		linear-gradient(45deg, transparent 50%, #d9f244 50%),
		linear-gradient(135deg, #d9f244 50%, transparent 50%);
	background-position:
		calc(100% - 17px) 50%,
		calc(100% - 12px) 50%;
	background-size: 5px 5px, 5px 5px;
	background-repeat: no-repeat;
	cursor: pointer;
}

.contact-field select option {
	background: #171917;
	color: #fff;
}

.contact-privacy {
	padding: .5rem 0;
}

.contact-privacy label {
	display: flex;
	gap: .7rem;
	align-items: flex-start;
	margin: 0;
	color: rgba(255,255,255,.58);
	font-size: .78rem;
	font-weight: 400;
	line-height: 1.5;
	cursor: pointer;
}

.contact-privacy input[type="checkbox"] {
	width: 16px;
	height: 16px;
	flex: 0 0 16px;
	margin-top: .12rem;
	accent-color: #d9f244;
}

.contact-submit {
	min-width: 215px;
	margin-top: .35rem;
	cursor: pointer;
}

.contact-honeypot {
	position: absolute !important;
	left: -10000px !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
	opacity: 0 !important;
	pointer-events: none !important;
}

@media (max-width: 900px) {
	.contact-experience {
		grid-template-columns: 1fr;
	}

	.contact-visual {
		min-height: 420px;
	}

	.contact-form-panel {
		padding: 3rem 2rem;
	}
}

@media (max-width: 680px) {
	.contact-hero {
		padding-top: 8rem;
	}

	.contact-hero h1 {
		font-size: clamp(3.5rem, 17vw, 5.4rem);
	}

	.contact-type-selector {
		grid-template-columns: 1fr;
		border-bottom: 0;
	}

	.contact-type {
		min-height: 135px;
		border-right: 0;
		border-bottom: 1px solid #d4d4cc;
	}

	.contact-experience {
		min-height: 0;
	}

	.contact-visual {
		min-height: 300px;
	}

	.contact-form-panel {
		padding: 2.5rem 1.25rem;
	}

	.contact-form-grid {
		grid-template-columns: 1fr;
	}

	.contact-field-full {
		grid-column: auto;
	}

	.contact-submit {
		width: 100%;
	}
}

/* ============================================================
   HOME · PRÓXIMAS CARRERAS DINÁMICAS
   ============================================================ */

.home-races-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
	margin-top: 42px;
}

.home-race-card {
	min-width: 0;
}

.home-race-card-link {
	display: flex;
	flex-direction: column;
	height: 100%;
	color: inherit;
	text-decoration: none;
	background: #171918;
	overflow: hidden;
	transition: transform 220ms ease, background-color 220ms ease;
}

.home-race-card-link:hover {
	transform: translateY(-4px);
	background: #1d201e;
}

.home-race-card-media {
	position: relative;
	min-height: 300px;
	background:
		linear-gradient(135deg, rgba(217, 242, 68, 0.12), rgba(255, 255, 255, 0.02)),
		#20231f;
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	overflow: hidden;
}

.home-race-card-media::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(
		to bottom,
		rgba(15, 17, 16, 0.04) 30%,
		rgba(15, 17, 16, 0.48) 100%
	);
	pointer-events: none;
}

.home-race-status {
	position: absolute;
	z-index: 2;
	top: 20px;
	left: 20px;
	display: inline-flex;
	align-items: center;
	min-height: 34px;
	padding: 7px 12px;
	background: #d9f244;
	color: #111311;
	font-size: 11px;
	font-weight: 800;
	line-height: 1;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.home-race-card-body {
	display: flex;
	flex: 1;
	flex-direction: column;
	align-items: flex-start;
	padding: 28px 28px 30px;
}

.home-race-date {
	margin: 0 0 14px;
	color: #d9f244;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.07em;
	text-transform: uppercase;
}

.home-race-card-body h3 {
	margin: 0;
	color: #fff;
	font-size: clamp(26px, 2.25vw, 38px);
	font-weight: 700;
	line-height: 1.04;
	letter-spacing: -0.035em;
}

.home-race-place {
	margin: 16px 0 0;
	color: rgba(255, 255, 255, 0.76);
	font-size: 14px;
	line-height: 1.45;
}

.home-race-intro {
	margin: 20px 0 0;
	color: rgba(255, 255, 255, 0.62);
	font-size: 15px;
	line-height: 1.6;
}

.home-race-more {
	display: inline-block;
	margin-top: auto;
	padding-top: 30px;
	color: #fff;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	border-bottom: 3px solid #d9f244;
	padding-bottom: 7px;
}

/* Una sola carrera: composición editorial horizontal */
.home-races-grid:has(.home-race-card:only-child) {
	grid-template-columns: 1fr;
}

.home-races-grid:has(.home-race-card:only-child) .home-race-card-link {
	display: grid;
	grid-template-columns: minmax(0, 1.45fr) minmax(340px, 0.75fr);
	min-height: 440px;
}

.home-races-grid:has(.home-race-card:only-child) .home-race-card-media {
	min-height: 440px;
}

.home-races-grid:has(.home-race-card:only-child) .home-race-card-body {
	justify-content: center;
	padding: clamp(36px, 5vw, 72px);
}

.home-races-grid:has(.home-race-card:only-child) .home-race-card-body h3 {
	font-size: clamp(38px, 4vw, 64px);
	max-width: 10ch;
}

.home-races-grid:has(.home-race-card:only-child) .home-race-intro {
	max-width: 34rem;
}

/* Dos carreras: cada una ocupa media sección */
.home-races-grid:has(.home-race-card:nth-child(2):last-child) {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.home-races-grid:has(.home-race-card:nth-child(2):last-child) .home-race-card-media {
	min-height: 360px;
}

@media (max-width: 980px) {
	.home-races-grid,
	.home-races-grid:has(.home-race-card:nth-child(2):last-child) {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.home-races-grid:has(.home-race-card:only-child) .home-race-card-link {
		grid-template-columns: 1fr;
	}

	.home-races-grid:has(.home-race-card:only-child) .home-race-card-media {
		min-height: 380px;
	}

	.home-races-grid:has(.home-race-card:only-child) .home-race-card-body h3 {
		max-width: none;
	}
}

@media (max-width: 680px) {
	.home-races-grid,
	.home-races-grid:has(.home-race-card:nth-child(2):last-child) {
		grid-template-columns: 1fr;
		gap: 18px;
		margin-top: 30px;
	}

	.home-race-card-media,
	.home-races-grid:has(.home-race-card:nth-child(2):last-child) .home-race-card-media,
	.home-races-grid:has(.home-race-card:only-child) .home-race-card-media {
		min-height: 300px;
	}

	.home-race-card-body,
	.home-races-grid:has(.home-race-card:only-child) .home-race-card-body {
		padding: 24px 22px 26px;
	}

	.home-race-card-body h3,
	.home-races-grid:has(.home-race-card:only-child) .home-race-card-body h3 {
		font-size: clamp(30px, 9vw, 44px);
	}

	.home-race-more {
		padding-top: 24px;
	}
}

/* ============================================================
   HOME · HISTORIAS DINÁMICAS
   ============================================================ */

.home-story-card {
	position: relative;
	display: flex;
	align-items: flex-end;
	min-width: 0;
	overflow: hidden;
	background-color: #1b1e1c;
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	color: #fff;
	text-decoration: none;
	isolation: isolate;
}

.home-story-card::before {
	content: "";
	position: absolute;
	z-index: -2;
	inset: 0;
	background:
		linear-gradient(135deg, rgba(217, 242, 68, 0.09), transparent 48%),
		#20231f;
}

.home-story-card.has-image::before {
	background: transparent;
}

.home-story-overlay {
	position: absolute;
	z-index: -1;
	inset: 0;
	background: linear-gradient(
		to top,
		rgba(10, 12, 11, 0.92) 0%,
		rgba(10, 12, 11, 0.42) 52%,
		rgba(10, 12, 11, 0.08) 100%
	);
	transition: background 240ms ease;
}

.home-story-card:hover .home-story-overlay {
	background: linear-gradient(
		to top,
		rgba(10, 12, 11, 0.96) 0%,
		rgba(10, 12, 11, 0.52) 58%,
		rgba(10, 12, 11, 0.12) 100%
	);
}

.home-story-card .story-preview-copy {
	position: relative;
	z-index: 2;
	width: 100%;
}

.home-story-card .story-preview-copy > p {
	color: #d9f244;
}

.home-story-card .story-preview-copy h3 {
	color: #fff;
}

.home-story-meta,
.home-story-intro,
.home-story-more {
	display: block;
}

.home-story-meta {
	margin-top: 14px;
	color: rgba(255, 255, 255, 0.78);
	font-size: 12px;
	font-weight: 700;
	line-height: 1.45;
	letter-spacing: 0.07em;
	text-transform: uppercase;
}

.home-story-intro {
	max-width: 42rem;
	margin-top: 14px;
	color: rgba(255, 255, 255, 0.72);
	font-size: 14px;
	line-height: 1.55;
}

.home-story-more {
	width: max-content;
	margin-top: 22px;
	padding-bottom: 6px;
	color: #fff;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	border-bottom: 3px solid #d9f244;
}

/* Cuando sólo existe una historia publicada, ocupa todo el ancho. */
.stories-preview:has(.home-story-card:only-child) {
	grid-template-columns: 1fr;
}

.stories-preview:has(.home-story-card:only-child) .home-story-card {
	min-height: 560px;
}

.stories-preview:has(.home-story-card:only-child) .story-preview-copy {
	max-width: 760px;
}

@media (max-width: 760px) {
	.home-story-intro {
		display: none;
	}

	.home-story-meta {
		margin-top: 10px;
	}

	.home-story-more {
		margin-top: 18px;
	}

	.stories-preview:has(.home-story-card:only-child) .home-story-card {
		min-height: 440px;
	}
}

/* ============================================================
   HEADER + FOOTER · LOGO REAL
   ============================================================ */

.site-brand {
	display: flex;
	align-items: center;
	flex-shrink: 0;
}

.site-brand-image {
	display: block;
	width: auto;
	height: 72px;
	max-width: 230px;
	object-fit: contain;
	object-position: left center;
}

.footer-logo a {
	display: inline-flex;
	align-items: center;
}

.footer-logo-image {
	display: block;
	width: auto;
	height: 110px;
	max-width: 280px;
	object-fit: contain;
	object-position: left center;
}

@media (max-width: 980px) {
	.site-brand-image {
		height: 58px;
		max-width: 190px;
	}

	.footer-logo-image {
		height: 92px;
		max-width: 240px;
	}
}

@media (max-width: 680px) {
	.site-brand-image {
		height: 48px;
		max-width: 160px;
	}

	.footer-logo-image {
		height: 82px;
		max-width: 220px;
	}
}

/* =========================================================
   EMPRESAS — AJUSTE MARGEN HERO
   ========================================================= */

.company-hero-inner {
    padding-left: clamp(32px, 6vw, 110px);
    padding-right: clamp(32px, 6vw, 110px);
}

@media (max-width: 767px) {
    .company-hero-inner {
        padding-left: 24px;
        padding-right: 24px;
    }
}

/* ==========================================================
   EMPRESAS · ALINEACIÓN CON DISEÑO APROBADO · 28-09-2026
   Bloque aditivo: preserva todas las reglas anteriores.
   ========================================================== */

.company-needs { background:#f5f4ee; }
.company-needs .company-section-heading { display:block; margin-bottom:48px; }
.company-needs .company-section-intro { max-width:720px; margin-top:24px; }
.company-objectives { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; background:transparent; border:0; }
.company-objective, .company-objective + .company-objective { min-height:250px; padding:48px 40px 42px; background:#fff; border:0; display:flex; flex-direction:column; justify-content:flex-start; }
.company-objective:hover { background:#fff; transform:none; }
.company-objective-number { display:none; }
.company-objective h3 { margin:0 0 24px; font-size:clamp(25px,2vw,35px); line-height:1; letter-spacing:-.035em; text-transform:uppercase; }
.company-objective p { margin:0; max-width:440px; color:var(--aa-muted); font-size:16px; line-height:1.55; }

.company-approach { padding:120px 0 130px; background:#10170f; color:#fff; }
.company-approach-heading { margin-bottom:52px; }
.company-approach-heading h2 { max-width:1120px; color:#fff; }
.company-approach-intro { max-width:720px; color:rgba(255,255,255,.64); }
.company-approach-steps { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0; background:#fff; }
.company-approach-step { min-height:315px; padding:50px 36px 40px; background:#fff; color:var(--aa-text); border:0; border-right:1px solid var(--aa-border); }
.company-approach-step:last-child { border-right:0; }
.company-approach-step .company-step-number { display:block; margin:0 0 34px; color:var(--aa-text); font-size:42px; font-weight:900; line-height:1; letter-spacing:-.04em; }
.company-approach-step h3 { margin:0 0 20px; font-size:20px; line-height:1.1; }
.company-approach-step p { margin:0; color:var(--aa-text); font-size:16px; line-height:1.45; }

.company-clients { padding:115px 0 0; background:#f5f4ee; overflow:hidden; }
.company-clients-heading { margin-bottom:55px; }
.company-clients-heading h2 { max-width:1150px; margin:12px 0 26px; font-size:clamp(46px,5.7vw,86px); line-height:.92; letter-spacing:-.055em; }
.company-clients-heading > p:last-child { max-width:760px; margin:0; color:var(--aa-muted); font-size:17px; line-height:1.65; }
.company-clients-track-wrap { width:100%; overflow:hidden; background:#fff; border-top:1px solid var(--aa-border); border-bottom:1px solid var(--aa-border); }
.company-clients-track { display:flex; width:max-content; animation:aa-company-clients-scroll 34s linear infinite; }
.company-clients-track:hover { animation-play-state:paused; }
.company-client-logo { flex:0 0 270px; width:270px; min-height:170px; display:flex; align-items:center; justify-content:center; padding:36px 44px; border-right:1px solid var(--aa-border); }
.company-client-logo img { display:block; max-width:165px; max-height:78px; width:auto; height:auto; object-fit:contain; filter:grayscale(1); opacity:.72; transition:filter .2s ease,opacity .2s ease; }
.company-client-logo:hover img { filter:grayscale(0); opacity:1; }
@keyframes aa-company-clients-scroll { from{transform:translateX(0)} to{transform:translateX(-50%)} }
@media (prefers-reduced-motion:reduce){ .company-clients-track{animation:none;} }

@media (max-width:1000px){
 .company-objectives{grid-template-columns:repeat(2,minmax(0,1fr));}
 .company-approach-steps{grid-template-columns:repeat(2,minmax(0,1fr));}
 .company-approach-step:nth-child(2){border-right:0;}
 .company-approach-step:nth-child(-n+2){border-bottom:1px solid var(--aa-border);}
}
@media (max-width:700px){
 .company-objectives{grid-template-columns:1fr;gap:14px;}
 .company-objective,.company-objective + .company-objective{min-height:0;padding:34px 28px 36px;}
 .company-approach{padding:80px 0 90px;}
 .company-approach-steps{grid-template-columns:1fr;}
 .company-approach-step,.company-approach-step:nth-child(2){min-height:0;padding:35px 28px 38px;border-right:0;border-bottom:1px solid var(--aa-border);}
 .company-approach-step:last-child{border-bottom:0;}
 .company-clients{padding-top:80px;}
 .company-clients-heading{margin-bottom:38px;}
 .company-client-logo{flex-basis:210px;width:210px;min-height:135px;padding:28px 34px;}
 .company-client-logo img{max-width:140px;max-height:65px;}
}

/* =========================================================
   EMPRESAS — COMPACTAR CAJAS
   ========================================================= */

/* ¿Qué necesita tu equipo? */
.company-objective,
.company-objective + .company-objective {
    min-height: 190px;
    padding: 34px 36px 32px;
}

.company-objective h3 {
    margin-bottom: 18px;
}

/* De una necesidad a una experiencia */
.company-approach-step {
    min-height: 235px;
    padding: 38px 34px 34px;
}

.company-approach-step .company-step-number {
    margin-bottom: 26px;
}

.company-approach-step h3 {
    margin-bottom: 16px;
}

/* EMPRESAS — compactar sección metodología */
.company-approach {
    padding-top: 75px;
    padding-bottom: 90px;
}

.company-approach-heading {
    margin-bottom: 42px;
}

/* =========================================================
   EMPRESAS — POR QUÉ AVENTURA ACONCAGUA
   Versión editorial compacta
   ========================================================= */

.company-why {
    padding-top: 80px;
    padding-bottom: 80px;
}

.company-why .company-section-heading {
    margin-bottom: 48px;
}

/* 4 argumentos en una sola franja */
.company-reasons {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    border-top: 1px solid var(--aa-border);
    border-bottom: 1px solid var(--aa-border);
}

.company-reason {
    min-height: 0;
    padding: 34px 30px 38px;
    border: 0;
    border-right: 1px solid var(--aa-border);
}

.company-reason:last-child {
    border-right: 0;
}

/* Quitamos los puntos verdes anteriores */
.company-reason-mark {
    display: none;
}

.company-reason-number {
    display: block;
    margin-bottom: 30px;
    color: var(--aa-accent);
    font-size: 15px;
    font-weight: 800;
    letter-spacing: .12em;
}

.company-reason h3 {
    margin: 0 0 16px;
    font-size: 24px;
    line-height: 1.1;
}

.company-reason p {
    margin: 0;
    color: var(--aa-muted);
    font-size: 15px;
    line-height: 1.55;
}

/* Menos vacío antes de Historias */
.company-stories {
    padding-top: 85px;
}


/* Tablet */
@media (max-width: 1000px) {

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

    .company-reason:nth-child(2) {
        border-right: 0;
    }

    .company-reason:nth-child(-n+2) {
        border-bottom: 1px solid var(--aa-border);
    }
}


/* Mobile */
@media (max-width: 700px) {

    .company-why {
        padding-top: 65px;
        padding-bottom: 65px;
    }

    .company-reasons {
        grid-template-columns: 1fr;
    }

    .company-reason,
    .company-reason:nth-child(2) {
        padding: 28px 0 30px;
        border-right: 0;
        border-bottom: 1px solid var(--aa-border);
    }

    .company-reason:last-child {
        border-bottom: 0;
    }

    .company-reason-number {
        margin-bottom: 18px;
    }
}
/* EMPRESAS — overlay CTA final con imagen */
.company-final.has-image {
    position: relative;
    background-size: cover;
    background-position: center;
    isolation: isolate;
}

.company-final.has-image::before {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(8, 13, 11, 0.42);
    z-index: -1;
}

/* =========================================================
   SINGLE CARRERA — AJUSTES VISUALES 28-09-2026
   ========================================================= */

/* Hero más compacto y navegación más próxima al contenido */
.race-hero {
	min-height: 590px;
}

.race-hero-content {
	padding-top: 95px;
	padding-bottom: 48px;
}

.race-hero-intro {
	margin-top: 22px;
}

.race-hero-meta {
	margin: 28px 0 0;
}

/* Secciones con menos vacío vertical */
.race-section {
	padding: 88px 0;
}

/* Introducción: más editorial y menos sobredimensionada */
.race-introduction .race-two-columns {
	grid-template-columns: .72fr 1.28fr;
	gap: clamp(60px, 8vw, 130px);
	align-items: start;
}

.race-introduction .section-title {
	max-width: 560px;
	font-size: clamp(44px, 4.5vw, 70px);
	line-height: .96;
}

.race-introduction .race-rich-content {
	padding-top: 6px;
	font-size: 18px;
	line-height: 1.65;
}

/* Distancias: tarjetas más compactas y con mayor jerarquía */
.race-distances {
	padding: 82px 0 88px;
}

.race-distance-grid {
	gap: 14px;
	margin-top: 38px;
	background: transparent;
}

.race-distance-card {
	position: relative;
	min-height: 245px;
	padding: 28px 30px 30px;
	border: 1px solid rgba(255,255,255,.10);
	background: linear-gradient(145deg, #1b1e19 0%, #151713 100%);
	overflow: hidden;
}

.race-distance-card::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 58px;
	height: 3px;
	background: var(--aa-accent);
}

.race-distance-card h3 {
	margin: 8px 0 28px;
	font-size: clamp(38px, 3.5vw, 48px);
}

.distance-data {
	gap: 16px;
	margin-bottom: 18px;
}

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

.race-distance-card p {
	margin-bottom: 0;
}

/* Recorridos: no crear un mapa ficticio cuando aún no existe */
.race-routes-list {
	margin-top: 38px;
}

.race-route-card.no-map {
	display: block;
	min-height: 0;
	margin-bottom: 14px;
	border-top: 1px solid var(--aa-border);
	background: transparent;
}

.race-route-card.no-map .race-route-copy {
	display: grid;
	grid-template-columns: 100px minmax(220px, .75fr) 1fr;
	align-items: center;
	gap: 28px;
	padding: 26px 0;
}

.race-route-card.no-map .race-route-copy .eyebrow {
	margin: 0;
}

.race-route-card.no-map .race-route-copy h3 {
	margin: 0;
	font-size: clamp(28px, 2.8vw, 40px);
}

.race-route-card.no-map .race-route-copy > p:not(.eyebrow) {
	margin: 0;
}

.race-route-card.no-map .race-route-links {
	grid-column: 3;
	margin-top: 0;
}

@media (max-width: 900px) {
	.race-hero {
		min-height: 540px;
	}

	.race-introduction .race-two-columns {
		grid-template-columns: 1fr;
		gap: 34px;
	}

	.race-route-card.no-map .race-route-copy {
		grid-template-columns: 80px 1fr;
	}

	.race-route-card.no-map .race-route-copy > p:not(.eyebrow),
	.race-route-card.no-map .race-route-links {
		grid-column: 2;
	}
}

@media (max-width: 600px) {
	.race-hero {
		min-height: 500px;
	}

	.race-hero-content {
		padding-top: 78px;
		padding-bottom: 38px;
	}

	.race-section,
	.race-distances {
		padding: 68px 0;
	}

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

	.race-distance-card {
		min-height: 0;
		padding: 26px 24px;
	}

	.race-route-card.no-map .race-route-copy {
		display: block;
		padding: 24px 0;
	}

	.race-route-card.no-map .race-route-copy .eyebrow {
		margin-bottom: 8px;
	}

	.race-route-card.no-map .race-route-copy > p:not(.eyebrow),
	.race-route-card.no-map .race-route-links {
		margin-top: 14px;
	}
}


/* =========================================================
   ARCHIVO CARRERAS — AJUSTE EDITORIAL PRÓXIMOS DESAFÍOS
   ========================================================= */

.races-upcoming {
    padding-top: 96px;
}

.races-section-heading {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(320px, .65fr);
    align-items: end;
    gap: 70px;
    margin-bottom: 48px;
}

.races-section-heading .section-title {
    max-width: 720px;
    font-size: clamp(48px, 5.2vw, 76px);
}

.races-section-intro {
    max-width: 520px;
    margin: 0 0 6px;
    color: var(--aa-muted);
    font-size: 17px;
    line-height: 1.65;
}

/* Una sola carrera: ocupa mejor el espacio sin convertirse en un banner gigante. */
.races-upcoming-grid:has(> .race-card:only-child) {
    grid-template-columns: minmax(0, 920px);
}

.races-upcoming-grid:has(> .race-card:only-child) .race-card-image {
    min-height: 500px;
}

.races-upcoming-grid:has(> .race-card:only-child) .race-card-content {
    max-width: 920px;
}

@media (max-width: 950px) {
    .races-section-heading {
        grid-template-columns: 1fr;
        gap: 22px;
    }

    .races-section-intro {
        max-width: 650px;
    }

    .races-upcoming-grid:has(> .race-card:only-child) {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 600px) {
    .races-upcoming {
        padding-top: 72px;
    }

    .races-section-heading {
        margin-bottom: 36px;
    }

    .races-section-heading .section-title {
        font-size: clamp(42px, 13vw, 60px);
    }

    .races-section-intro {
        font-size: 16px;
    }

    .races-upcoming-grid:has(> .race-card:only-child) .race-card-image {
        min-height: 390px;
    }
}

/* ==========================================================
   HISTORIAS — TARJETAS SIN IMAGEN
   ========================================================== */

.stories-grid:has(.story-card:only-child) .story-card.no-image {
	display: block;
	max-width: 920px;
	padding: 38px 0 8px;
	border-top: 3px solid var(--aa-accent);
}

.story-card.no-image .story-card-content {
	padding-top: 0;
}

.story-card-type-text {
	display: inline-block;
	margin: 0 0 22px;
	padding: 9px 12px;
	background: var(--aa-accent);
	color: var(--aa-dark);
	font-size: 8px;
	font-weight: 900;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.story-card-text-link {
	display: inline-block;
	margin-top: 25px;
	padding-bottom: 5px;
	border-bottom: 2px solid var(--aa-accent);
	color: var(--aa-text);
	font-size: 10px;
	font-weight: 900;
	letter-spacing: .1em;
	text-transform: uppercase;
}

.story-card-text-link:hover {
	opacity: .65;
}

.stories-grid:has(.story-card:only-child) .story-card.no-image h2 {
	max-width: 720px;
	font-size: clamp(42px,4.8vw,68px);
}

.stories-grid:has(.story-card:only-child) .story-card.no-image .story-card-intro {
	max-width: 720px;
}

@media (max-width: 700px) {
	.stories-grid:has(.story-card:only-child) .story-card.no-image {
		padding-top: 28px;
	}

	.stories-grid:has(.story-card:only-child) .story-card.no-image h2 {
		font-size: clamp(38px,11vw,56px);
	}
}

/* ==========================================================
   SINGLE HISTORIA — AJUSTE EDITORIAL
   ========================================================== */

/* HERO: mantiene impacto, pero con una escala más controlada */

.story-single .story-hero {
	min-height: 760px;
	padding-top: 150px;
	padding-bottom: 70px;
}

.story-single .story-hero-content {
	max-width: 1050px;
}

.story-single .story-hero h1 {
	max-width: 980px;
	font-size: clamp(58px, 7vw, 108px);
	line-height: .88;
}

.story-single .story-hero-intro {
	max-width: 660px;
	font-size: clamp(17px, 1.5vw, 21px);
	line-height: 1.55;
}

.story-single .story-hero-meta {
	margin-top: 42px;
}


/* ----------------------------------------------------------
   EL DESAFÍO
   ---------------------------------------------------------- */

.story-single .story-narrative {
	padding: 110px 0 105px;
}

.story-single .story-narrative-grid {
	display: grid;
	grid-template-columns: minmax(160px, .55fr) minmax(0, 1.45fr);
	gap: clamp(60px, 8vw, 140px);
	align-items: start;
}

.story-single .story-narrative-copy {
	max-width: 780px;
}

.story-single .story-narrative-copy p {
	margin-top: 0;
	margin-bottom: 24px;
	font-size: clamp(20px, 1.65vw, 25px);
	line-height: 1.55;
	letter-spacing: -.02em;
	font-weight: 400;
}

.story-single .story-narrative-copy p:last-child {
	margin-bottom: 0;
}


/* ----------------------------------------------------------
   DATOS DESTACADOS
   ---------------------------------------------------------- */

.story-single .story-highlights {
	padding: 0 0 105px;
}

.story-single .story-highlights-grid {
	gap: 0;
	border-top: 1px solid var(--aa-border);
	border-bottom: 1px solid var(--aa-border);
}

.story-single .story-highlight {
	padding-top: 28px;
	padding-bottom: 28px;
}

.story-single .story-highlight strong {
	font-size: clamp(28px, 3vw, 42px);
	line-height: 1;
}

.story-single .story-highlight span {
	margin-top: 9px;
	font-size: 10px;
}


/* ----------------------------------------------------------
   GALERÍA / BLOQUES VISUALES
   ---------------------------------------------------------- */

.story-single .story-gallery {
	padding: 25px 0 110px;
}

.story-single .story-gallery-grid {
	gap: 18px;
}

.story-single .story-media-item {
	margin: 0;
}

.story-single .story-media-item img,
.story-single .story-media-item video,
.story-single .story-media-item iframe {
	width: 100%;
	max-height: 680px;
	object-fit: cover;
}

.story-single .story-media-item figcaption {
	margin-top: 12px;
	font-size: 12px;
	line-height: 1.5;
	color: var(--aa-muted);
}


/* ----------------------------------------------------------
   LA EXPERIENCIA
   ---------------------------------------------------------- */

.story-single .story-experience {
	padding: 110px 0;
}

.story-single .story-experience-grid {
	display: grid;
	grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
	gap: clamp(65px, 8vw, 130px);
	align-items: start;
}

.story-single .story-experience h2 {
	max-width: 620px;
	margin: 12px 0 0;
	font-size: clamp(44px, 4.5vw, 68px);
	line-height: .96;
	letter-spacing: -.055em;
}

.story-single .story-experience-copy {
	max-width: 650px;
}

.story-single .story-experience-copy p {
	margin-top: 0;
	margin-bottom: 22px;
	font-size: 18px;
	line-height: 1.7;
	color: rgba(255,255,255,.68);
}

.story-single .story-experience-copy p:last-child {
	margin-bottom: 0;
}


/* Segundo bloque visual */

.story-single .story-gallery-second {
	padding-top: 100px;
}


/* ----------------------------------------------------------
   TESTIMONIO
   ---------------------------------------------------------- */

.story-single .story-testimonial {
	padding: 120px 0;
}

.story-single .story-testimonial-inner {
	max-width: 980px;
	margin: 0 auto;
	text-align: center;
}

.story-single .story-quote-mark {
	display: block;
	margin-bottom: 22px;
	font-size: 70px;
	line-height: .65;
	color: var(--aa-accent);
}

.story-single .story-testimonial blockquote {
	max-width: 940px;
	margin: 0 auto;
	font-size: clamp(34px, 3.6vw, 54px);
	line-height: 1.08;
	letter-spacing: -.045em;
	font-weight: 800;
}

.story-single .story-testimonial-author {
	margin-top: 38px;
}


/* ----------------------------------------------------------
   CONTENIDO LIBRE
   ---------------------------------------------------------- */

.story-single .story-free-content {
	padding: 100px 0;
}

.story-single .story-free-content-inner {
	max-width: 760px;
	margin: 0 auto;
	font-size: 18px;
	line-height: 1.75;
}


/* ----------------------------------------------------------
   CTA FINAL
   ---------------------------------------------------------- */

.story-single .story-final {
	padding: 125px 0;
}

.story-single .story-final h2 {
	max-width: 900px;
	font-size: clamp(54px, 6.5vw, 94px);
	line-height: .9;
}

.story-single .story-final > .aa-container > p:not(.hero-kicker) {
	max-width: 610px;
	font-size: 17px;
	line-height: 1.65;
}


/* ==========================================================
   SINGLE HISTORIA — TABLET
   ========================================================== */

@media (max-width: 900px) {

	.story-single .story-hero {
		min-height: 680px;
		padding-top: 120px;
		padding-bottom: 60px;
	}

	.story-single .story-narrative {
		padding: 85px 0;
	}

	.story-single .story-narrative-grid,
	.story-single .story-experience-grid {
		grid-template-columns: 1fr;
		gap: 35px;
	}

	.story-single .story-narrative-copy,
	.story-single .story-experience-copy {
		max-width: 720px;
	}

	.story-single .story-experience {
		padding: 90px 0;
	}

	.story-single .story-experience h2 {
		max-width: 650px;
	}

	.story-single .story-gallery {
		padding-bottom: 90px;
	}

	.story-single .story-gallery-second {
		padding-top: 80px;
	}

	.story-single .story-testimonial {
		padding: 95px 0;
	}

}


/* ==========================================================
   SINGLE HISTORIA — MOBILE
   ========================================================== */

@media (max-width: 600px) {

	.story-single .story-hero {
		min-height: 620px;
		padding-top: 95px;
		padding-bottom: 45px;
	}

	.story-single .story-hero h1 {
		font-size: clamp(48px, 15vw, 70px);
	}

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

	.story-single .story-hero-meta {
		gap: 22px 30px;
		margin-top: 32px;
		padding-top: 20px;
	}

	.story-single .story-narrative {
		padding: 70px 0;
	}

	.story-single .story-narrative-grid {
		gap: 25px;
	}

	.story-single .story-narrative-copy p {
		font-size: 19px;
		line-height: 1.6;
	}

	.story-single .story-highlights {
		padding-bottom: 75px;
	}

	.story-single .story-gallery {
		padding-top: 10px;
		padding-bottom: 75px;
	}

	.story-single .story-experience {
		padding: 75px 0;
	}

	.story-single .story-experience-grid {
		gap: 35px;
	}

	.story-single .story-experience h2 {
		font-size: clamp(40px, 12vw, 56px);
	}

	.story-single .story-experience-copy p {
		font-size: 17px;
	}

	.story-single .story-gallery-second {
		padding-top: 65px;
	}

	.story-single .story-testimonial {
		padding: 80px 0;
	}

	.story-single .story-testimonial blockquote {
		font-size: clamp(30px, 9vw, 42px);
		line-height: 1.12;
	}

	.story-single .story-quote-mark {
		font-size: 58px;
	}

	.story-single .story-free-content {
		padding: 75px 0;
	}

	.story-single .story-free-content-inner {
		font-size: 17px;
	}

	.story-single .story-final {
		padding: 90px 0;
	}

	.story-single .story-final h2 {
		font-size: clamp(46px, 13vw, 68px);
	}

}

/* ==========================================================
   SINGLE HISTORIA — AJUSTE TESTIMONIO
   ========================================================== */

.story-single .story-testimonial {
	padding: 105px 0 110px;
}

.story-single .story-testimonial-inner {
	max-width: 1050px;
	margin: 0 auto;
	text-align: center;
}

.story-single .story-testimonial blockquote {
	max-width: 1000px;
	margin: 0 auto;
	font-size: clamp(30px, 2.8vw, 44px);
	line-height: 1.16;
	letter-spacing: -.035em;
	font-weight: 750;
}

.story-single .story-quote-mark {
	margin-bottom: 30px;
	font-size: 62px;
}

.story-single .story-testimonial-author {
	margin-top: 34px;
}

@media (max-width: 600px) {

	.story-single .story-testimonial {
		padding: 75px 0 80px;
	}

	.story-single .story-testimonial blockquote {
		font-size: clamp(27px, 8vw, 36px);
		line-height: 1.18;
	}

}

.story-single .story-testimonial blockquote {
	font-weight: 650;
}

/* ==========================================================
   SINGLE HISTORIA — HERO / MÁRGENES
   ========================================================== */

.story-single .story-hero-inner {
	padding-left: clamp(32px, 6vw, 110px);
	padding-right: clamp(32px, 6vw, 110px);
	box-sizing: border-box;
}

.story-single .story-hero-content {
	max-width: 1100px;
}

.story-single .story-hero h1 {
	max-width: 1050px;
	font-size: clamp(58px, 6.5vw, 100px);
	line-height: .9;
}

.story-single .story-hero-intro {
	max-width: 720px;
}

.story-single .story-hero-meta {
	max-width: 1050px;
}


/* MOBILE */

@media (max-width: 767px) {

	.story-single .story-hero-inner {
		padding-left: 24px;
		padding-right: 24px;
	}

	.story-single .story-hero h1 {
		font-size: clamp(48px, 14vw, 68px);
	}

}

/* ==========================================================
   NOSOTROS — AJUSTE DE ESCALA / DESKTOP
   Mantiene estructura y contenido; reduce escala visual.
   ========================================================== */

@media (min-width: 801px) {

	.about-hero {
		min-height: min(690px, 78vh);
	}

	.about-hero-inner {
		padding-top: 125px;
		padding-bottom: clamp(58px, 6vw, 88px);
	}

	.about-hero-content {
		max-width: 900px;
	}

	.about-hero .hero-kicker {
		margin-bottom: 20px;
	}

	.about-hero h1 {
		max-width: 860px;
		font-size: clamp(58px, 5.7vw, 96px);
		line-height: .91;
	}

	.about-hero-intro {
		max-width: 620px;
		margin-top: 28px;
		font-size: clamp(17px, 1.25vw, 20px);
		line-height: 1.55;
	}


	/* NUESTRA HISTORIA */

	.about-story {
		padding: clamp(78px, 7vw, 110px) 0;
	}

	.about-story-grid {
		grid-template-columns: minmax(0, .95fr) minmax(380px, 1.05fr);
		gap: clamp(55px, 6vw, 95px);
	}

	.about-story-copy {
		max-width: 600px;
	}

	.about-story .eyebrow {
		margin-bottom: 20px;
	}

	.about-story h2 {
		font-size: clamp(46px, 4.1vw, 68px);
		line-height: .97;
	}

	.about-story-copy > p:last-child {
		max-width: 570px;
		margin-top: 30px;
		font-size: 17px;
		line-height: 1.68;
	}

	.about-story-media {
		min-height: 480px;
	}


	/* TRAYECTORIA */

	.about-trajectory {
		padding: clamp(78px, 7vw, 110px) 0;
	}

	.about-trajectory-heading {
		grid-template-columns: minmax(0, 1.15fr) minmax(300px, .65fr);
		gap: clamp(55px, 7vw, 110px);
	}

	.about-trajectory .hero-kicker {
		margin-bottom: 20px;
	}

	.about-trajectory h2 {
		max-width: 760px;
		font-size: clamp(48px, 4.6vw, 76px);
		line-height: .94;
	}

	.about-trajectory-text p {
		font-size: 17px;
		line-height: 1.65;
	}

	.about-trajectory-image {
		min-height: 460px;
		margin-top: clamp(48px, 5vw, 75px);
	}


	/* TERRITORIO */

	.about-territory {
		padding: clamp(78px, 7vw, 110px) 0;
	}

	.about-territory-grid {
		grid-template-columns: minmax(380px, 1fr) minmax(0, 1fr);
		gap: clamp(55px, 6vw, 95px);
	}

	.about-territory-media {
		min-height: 500px;
	}

	.about-territory-copy {
		max-width: 610px;
	}

	.about-territory .eyebrow {
		margin-bottom: 20px;
	}

	.about-territory h2 {
		font-size: clamp(46px, 4vw, 68px);
		line-height: .97;
	}

	.about-territory-copy > p:last-child {
		margin-top: 30px;
		font-size: 17px;
		line-height: 1.68;
	}


	/* PRINCIPIOS */

	.about-principles {
		padding: clamp(78px, 7vw, 110px) 0;
	}

	.about-principles-heading {
		grid-template-columns: minmax(0, 1.1fr) minmax(300px, .65fr);
		gap: clamp(55px, 7vw, 110px);
		margin-bottom: clamp(45px, 5vw, 70px);
	}

	.about-principles .eyebrow {
		margin-bottom: 20px;
	}

	.about-principles h2 {
		max-width: 730px;
		font-size: clamp(48px, 4.5vw, 74px);
		line-height: .95;
	}

	.about-principles-intro p {
		font-size: 17px;
		line-height: 1.65;
	}

	.about-principle {
		min-height: 235px;
		padding: 30px 38px 34px;
	}

	.about-principle h3 {
		margin: 38px 0 13px;
		font-size: clamp(25px, 1.8vw, 31px);
	}

	.about-principle p {
		font-size: 15px;
	}


	/* CTA FINAL */

	.about-final {
		padding: clamp(80px, 7vw, 115px) 0;
	}

	.about-final-inner {
		max-width: 950px;
	}

	.about-final .hero-kicker {
		margin-bottom: 20px;
	}

	.about-final h2 {
		max-width: 900px;
		font-size: clamp(48px, 4.8vw, 78px);
		line-height: .94;
	}

	.about-final-inner > p:not(.hero-kicker) {
		max-width: 650px;
		margin-top: 28px;
		font-size: 17px;
	}

	.about-final .aa-button {
		margin-top: 32px;
	}

}

/* ==========================================================
   NOSOTROS — HERO / MÁRGENES LATERALES
   ========================================================== */

.about-hero-inner {
	padding-left: clamp(32px, 6vw, 110px);
	padding-right: clamp(32px, 6vw, 110px);
	box-sizing: border-box;
}

@media (max-width: 767px) {

	.about-hero-inner {
		padding-left: 24px;
		padding-right: 24px;
	}

}

/* ==========================================================
   CONTACTO — CORRECCIÓN IMÁGENES DINÁMICAS
   ========================================================== */

.contact-visual-placeholder[hidden],
.contact-visual img[hidden] {
	display: none !important;
}

.contact-visual img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* ==========================================================
   EMPRESAS — FIX DEFINITIVO METODOLOGÍA MOBILE
   ========================================================== */

@media screen and (max-width: 700px) {

	body .company-approach .company-approach-steps {
		display: block !important;
		width: 100% !important;
		max-width: 100% !important;
		margin: 0 !important;
		padding: 0 !important;
		background: #fff;
	}

	body .company-approach .company-approach-step,
	body .company-approach .company-approach-step + .company-approach-step,
	body .company-approach .company-approach-step:nth-child(n) {
		display: block !important;
		position: relative !important;
		width: 100% !important;
		max-width: 100% !important;
		min-height: 0 !important;
		height: auto !important;

		margin: 0 !important;
		padding: 32px 28px 34px !important;

		left: auto !important;
		right: auto !important;
		top: auto !important;
		bottom: auto !important;

		transform: none !important;

		background: #fff !important;
		border: 0 !important;
		border-bottom: 1px solid var(--aa-border) !important;
		box-sizing: border-box !important;
	}

	body .company-approach .company-approach-step:last-child {
		border-bottom: 0 !important;
	}

	body .company-approach .company-step-number {
		display: block !important;
		margin: 0 0 24px !important;
		font-size: 42px !important;
		line-height: 1 !important;
	}

	body .company-approach .company-approach-step h3 {
		margin: 0 0 16px !important;
	}

	body .company-approach .company-approach-step p {
		margin: 0 !important;
	}
}

/* ==========================================================
   EMPRESAS — CLIENTES DESTACADOS
   ========================================================== */

.company-clients .company-clients-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	margin-top: 52px;
	border-top: 1px solid var(--aa-border);
	border-left: 1px solid var(--aa-border);
}

.company-clients .company-clients-grid .company-client-logo {
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 0;
	width: auto;
	height: 150px;
	padding: 34px 42px;
	background: #fff;
	border-right: 1px solid var(--aa-border);
	border-bottom: 1px solid var(--aa-border);
	overflow: hidden;
	transition: background .2s ease, transform .2s ease;
}

.company-clients .company-clients-grid a.company-client-logo:hover {
	background: #f4f5f0;
	transform: translateY(-2px);
}

.company-clients .company-clients-grid .company-client-logo img {
	display: block;
	width: 100%;
	height: 100%;
	max-width: 175px;
	max-height: 72px;
	object-fit: contain;
}

.company-clients-proof {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 18px;
	margin: 42px auto 0;
	text-align: left;
}

.company-clients-proof strong {
	color: var(--aa-dark);
	font-size: clamp(38px, 4vw, 58px);
	line-height: .9;
	letter-spacing: -.055em;
}

.company-clients-proof span {
	max-width: 390px;
	color: var(--aa-muted);
	font-size: 14px;
	line-height: 1.45;
}

@media (max-width: 900px) {
	.company-clients .company-clients-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.company-clients .company-clients-grid .company-client-logo {
		height: 135px;
		padding: 30px;
	}
}

@media (max-width: 600px) {
	.company-clients .company-clients-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		margin-top: 36px;
	}

	.company-clients .company-clients-grid .company-client-logo {
		height: 112px;
		padding: 24px;
	}

	.company-clients .company-clients-grid .company-client-logo img {
		max-width: 130px;
		max-height: 58px;
	}

	.company-clients-proof {
		align-items: flex-start;
		justify-content: flex-start;
		gap: 14px;
		margin-top: 30px;
	}

	.company-clients-proof strong {
		font-size: 40px;
	}

	.company-clients-proof span {
		font-size: 13px;
	}
}



/* ==========================================================
   EMPRESAS — CLIENTES DESTACADOS / AJUSTE EDITORIAL
   ========================================================== */

.company-clients {
	overflow: hidden;
}

.company-clients .company-clients-heading {
	max-width: var(--aa-max);
}

.company-clients .company-clients-heading h2 {
	max-width: 900px;
	font-size: clamp(44px, 5vw, 76px);
	line-height: .94;
	letter-spacing: -.055em;
}

.company-clients .company-clients-heading > p:last-child {
	max-width: 720px;
	margin-top: 26px;
	color: var(--aa-muted);
	font-size: 17px;
	line-height: 1.65;
}

.company-clients .company-clients-grid {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 24px 48px;
	margin-top: 62px;
	border: 0;
}

.company-clients .company-clients-grid .company-client-logo {
	flex: 0 1 180px;
	width: 180px;
	height: 92px;
	padding: 12px 18px;
	background: transparent;
	border: 0;
	overflow: visible;
	transform: none;
}

.company-clients .company-clients-grid a.company-client-logo:hover {
	background: transparent;
	transform: translateY(-3px);
}

.company-clients .company-clients-grid .company-client-logo img {
	width: 100%;
	height: 100%;
	max-width: 160px;
	max-height: 68px;
	object-fit: contain;
}

.company-clients-proof {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 22px;
	max-width: 760px;
	margin: 54px auto 0;
	padding-top: 26px;
	border-top: 1px solid var(--aa-border);
	color: var(--aa-muted);
	text-align: center;
}

.company-clients-proof span {
	max-width: none;
	font-size: 13px;
	line-height: 1.4;
}

.company-clients-proof strong {
	color: var(--aa-dark);
	font-size: inherit;
	line-height: inherit;
	letter-spacing: 0;
	font-weight: 900;
}

.company-clients-proof i {
	display: block;
	width: 4px;
	height: 4px;
	flex: 0 0 4px;
	border-radius: 50%;
	background: #91a300;
}

@media (max-width: 900px) {
	.company-clients .company-clients-grid {
		display: flex;
		gap: 22px 34px;
	}

	.company-clients .company-clients-grid .company-client-logo {
		flex-basis: 160px;
		width: 160px;
		height: 86px;
		padding: 12px 16px;
	}
}

@media (max-width: 600px) {
	.company-clients .company-clients-heading h2 {
		font-size: clamp(38px, 11vw, 54px);
	}

	.company-clients .company-clients-heading > p:last-child {
		font-size: 15px;
	}

	.company-clients .company-clients-grid {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 20px 18px;
		margin-top: 42px;
	}

	.company-clients .company-clients-grid .company-client-logo {
		width: 100%;
		height: 78px;
		padding: 10px 14px;
	}

	.company-clients .company-clients-grid .company-client-logo img {
		max-width: 135px;
		max-height: 58px;
		margin: auto;
	}

	.company-clients-proof {
		flex-wrap: wrap;
		justify-content: flex-start;
		gap: 10px 14px;
		margin-top: 38px;
		padding-top: 22px;
		text-align: left;
	}

	.company-clients-proof span {
		font-size: 12px;
	}
}


/* ==========================================================
   EMPRESAS — CLIENTES / CIERRE LIMPIO
   ========================================================== */

.company-clients .company-clients-grid {
	width: 100%;
	max-width: 1180px;
	margin: 58px auto 0;
	padding: 0 24px;
	justify-content: center;
	gap: 30px 46px;
	box-sizing: border-box;
}

.company-clients .company-clients-grid .company-client-logo {
	flex: 0 1 170px;
	width: 170px;
	max-width: 170px;
	height: 88px;
	padding: 10px 14px;
	box-sizing: border-box;
}

.company-clients .company-clients-grid .company-client-logo img {
	width: 100%;
	height: 100%;
	max-width: 150px;
	max-height: 64px;
	margin: auto;
	object-fit: contain;
}

.company-clients-proof {
	display: none !important;
}

@media (max-width: 900px) {
	.company-clients .company-clients-grid {
		max-width: 720px;
		padding: 0 20px;
		gap: 24px 34px;
	}
}

@media (max-width: 600px) {
	.company-clients .company-clients-grid {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		max-width: 420px;
		margin-top: 40px;
		padding: 0;
		gap: 22px 18px;
	}

	.company-clients .company-clients-grid .company-client-logo {
		width: 100%;
		max-width: none;
		height: 76px;
		padding: 8px 12px;
	}
}


/* ==========================================================
   SINGLE CARRERA — KIT DEL CORREDOR + MAPA
   ========================================================== */

.race-kit .section-title {
	max-width: 820px;
}

.race-kit-layout {
	display: grid;
	grid-template-columns: 1fr;
	gap: 56px;
	margin-top: 58px;
}

.race-kit-layout.has-map {
	grid-template-columns: minmax(0, 1.08fr) minmax(360px, .92fr);
	gap: clamp(48px, 6vw, 92px);
	align-items: start;
}

.race-kit-main {
	min-width: 0;
}

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

.race-kit-schedule-item {
	padding: 28px 0 30px;
	border-bottom: 1px solid var(--aa-border);
}

.race-kit-schedule-date {
	margin: 0 0 19px;
	color: #91a300;
	font-size: 11px;
	font-weight: 900;
	line-height: 1.2;
	letter-spacing: .14em;
	text-transform: uppercase;
}

.race-kit-schedule-details {
	display: grid;
	grid-template-columns: minmax(150px, .72fr) minmax(220px, 1.28fr);
	gap: 30px;
}

.race-kit-detail {
	display: flex;
	flex-direction: column;
	gap: 7px;
}

.race-kit-detail span {
	color: var(--aa-muted);
	font-size: 8px;
	font-weight: 900;
	letter-spacing: .14em;
	text-transform: uppercase;
}

.race-kit-detail strong {
	font-size: 17px;
	line-height: 1.35;
	font-weight: 800;
}

.race-kit-instructions {
	max-width: 720px;
	margin-top: 38px;
}

.race-kit-instructions p {
	margin: 0 0 17px;
}

.race-kit-map {
	position: sticky;
	top: 92px;
	overflow: hidden;
	background: #eceee8;
}

.race-kit-map-frame {
	position: relative;
	width: 100%;
	min-height: 430px;
	background: #e5e7e1;
}

.race-kit-map-frame iframe {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
	filter: grayscale(1) contrast(.92);
}

.race-kit-map-footer {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px;
	padding: 24px 26px 26px;
	border-top: 1px solid var(--aa-border);
}

.race-kit-map-footer > div {
	min-width: 0;
}

.race-kit-map-footer span {
	display: block;
	margin-bottom: 7px;
	color: #91a300;
	font-size: 8px;
	font-weight: 900;
	letter-spacing: .14em;
	text-transform: uppercase;
}

.race-kit-map-footer strong {
	display: block;
	font-size: 15px;
	line-height: 1.35;
}

.race-kit-map-footer .aa-text-link {
	flex: 0 0 auto;
	white-space: nowrap;
}

@media (max-width: 980px) {
	.race-kit-layout.has-map {
		grid-template-columns: 1fr;
		gap: 48px;
	}

	.race-kit-map {
		position: relative;
		top: auto;
	}

	.race-kit-map-frame {
		min-height: 400px;
	}
}

@media (max-width: 600px) {
	.race-kit-layout {
		margin-top: 42px;
		gap: 38px;
	}

	.race-kit-schedule-item {
		padding: 24px 0 25px;
	}

	.race-kit-schedule-details {
		grid-template-columns: 1fr;
		gap: 16px;
	}

	.race-kit-detail strong {
		font-size: 16px;
	}

	.race-kit-instructions {
		margin-top: 30px;
	}

	.race-kit-map-frame {
		min-height: 330px;
	}

	.race-kit-map-footer {
		display: block;
		padding: 21px;
	}

	.race-kit-map-footer .aa-text-link {
		margin-top: 18px;
	}
}
/* ==========================================================
   SINGLE HISTORIA — GALERÍA VISOR
   ========================================================== */

.story-single .story-gallery-viewer {
	padding: 110px 0 105px;
	background: var(--aa-bg);
	overflow: hidden;
}

.story-single .story-gallery-heading {
	margin-bottom: 52px;
}

.story-single .story-gallery-heading .section-title {
	max-width: 850px;
}

.story-single .story-gallery-stage-wrap {
	position: relative;
	width: 100%;
	min-height: 520px;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 28px 84px;
	background: #eceee8;
}

.story-single .story-gallery-stage {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
}

.story-single .story-gallery-slide {
	display: none;
	width: 100%;
	margin: 0;
	text-align: center;
}

.story-single .story-gallery-slide.is-active {
	display: block;
}

.story-single .story-gallery-media {
	width: 100%;
	min-height: 460px;
	display: flex;
	align-items: center;
	justify-content: center;
}

.story-single .story-gallery-media img {
	display: block;
	width: auto;
	height: auto;
	max-width: 100%;
	max-height: 620px;
	margin: 0 auto;
	object-fit: contain;
}

.story-single .story-gallery-media video,
.story-single .story-gallery-media iframe {
	display: block;
	width: min(100%, 1050px);
	max-height: 620px;
	margin: 0 auto;
	aspect-ratio: 16 / 9;
	border: 0;
	background: #111210;
	object-fit: contain;
}

.story-single .story-gallery-slide figcaption {
	max-width: 900px;
	margin: 18px auto 0;
	padding: 0 20px;
	color: var(--aa-muted);
	font-size: 12px;
	line-height: 1.55;
	text-align: center;
}

.story-single .story-gallery-arrow {
	position: absolute;
	top: 50%;
	z-index: 5;
	width: 48px;
	height: 48px;
	display: grid;
	place-items: center;
	padding: 0 0 4px;
	transform: translateY(-50%);
	border: 1px solid rgba(17,18,16,.18);
	border-radius: 50%;
	background: rgba(250,250,248,.92);
	color: var(--aa-dark);
	cursor: pointer;
	font: inherit;
	font-size: 31px;
	line-height: 1;
	transition: background .2s ease, border-color .2s ease;
}

.story-single .story-gallery-arrow:hover {
	border-color: var(--aa-accent);
	background: var(--aa-accent);
}

.story-single .story-gallery-prev {
	left: 24px;
}

.story-single .story-gallery-next {
	right: 24px;
}

.story-single .story-gallery-thumbs-wrap {
	width: 100%;
	padding: 18px 32px 0;
	background: var(--aa-bg);
}

.story-single .story-gallery-thumbs {
	display: flex;
	align-items: center;
	gap: 9px;
	width: max-content;
	max-width: 100%;
	margin: 0 auto;
	padding: 0 0 10px;
	overflow-x: auto;
	scrollbar-width: thin;
	scroll-behavior: smooth;
}

.story-single .story-gallery-thumb {
	flex: 0 0 118px;
	width: 118px;
	height: 78px;
	padding: 3px;
	overflow: hidden;
	border: 2px solid transparent;
	background: #e7e8e3;
	cursor: pointer;
	opacity: .68;
	transition: opacity .2s ease, border-color .2s ease;
}

.story-single .story-gallery-thumb:hover {
	opacity: 1;
}

.story-single .story-gallery-thumb.is-active {
	border-color: var(--aa-accent);
	opacity: 1;
}

.story-single .story-gallery-thumb img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.story-single .story-gallery-thumb-label {
	width: 100%;
	height: 100%;
	display: grid;
	place-items: center;
	background: var(--aa-dark);
	color: var(--aa-accent);
	font-size: 9px;
	font-weight: 900;
	letter-spacing: .12em;
	text-transform: uppercase;
}

@media (max-width: 900px) {
	.story-single .story-gallery-viewer {
		padding: 85px 0;
	}

	.story-single .story-gallery-heading {
		margin-bottom: 40px;
	}

	.story-single .story-gallery-stage-wrap {
		min-height: 430px;
		padding: 24px 64px;
	}

	.story-single .story-gallery-media {
		min-height: 380px;
	}

	.story-single .story-gallery-media img,
	.story-single .story-gallery-media video,
	.story-single .story-gallery-media iframe {
		max-height: 520px;
	}

	.story-single .story-gallery-prev {
		left: 12px;
	}

	.story-single .story-gallery-next {
		right: 12px;
	}
}

@media (max-width: 600px) {
	.story-single .story-gallery-viewer {
		padding: 70px 0;
	}

	.story-single .story-gallery-heading {
		margin-bottom: 32px;
	}

	.story-single .story-gallery-stage-wrap {
		min-height: 330px;
		padding: 18px 46px;
	}

	.story-single .story-gallery-media {
		min-height: 290px;
	}

	.story-single .story-gallery-media img,
	.story-single .story-gallery-media video,
	.story-single .story-gallery-media iframe {
		max-height: 430px;
	}

	.story-single .story-gallery-arrow {
		width: 38px;
		height: 38px;
		font-size: 25px;
	}

	.story-single .story-gallery-prev {
		left: 5px;
	}

	.story-single .story-gallery-next {
		right: 5px;
	}

	.story-single .story-gallery-thumbs-wrap {
		padding: 12px 14px 0;
	}

	.story-single .story-gallery-thumbs {
		margin: 0;
	}

	.story-single .story-gallery-thumb {
		flex-basis: 88px;
		width: 88px;
		height: 60px;
	}
}

/* ==========================================================
   ARCHIVO HISTORIAS — GRILLA COMPACTA
   Mantiene hero e introducción; compacta únicamente el archivo.
   ========================================================== */

@media (min-width: 901px) {
	.stories-archive .stories-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 52px 22px;
	}

	/* En un archivo con varias historias, ninguna tarjeta se trata como destacada. */
	.stories-archive .story-card-featured {
		grid-column: auto;
	}

	.stories-archive .story-card-visual,
	.stories-archive .story-card-featured .story-card-visual {
		height: 245px;
		min-height: 0;
	}

	.stories-archive .story-card-content {
		padding-top: 16px;
	}

	.stories-archive .story-card-meta {
		gap: 5px 12px;
		margin-bottom: 9px;
		font-size: 8px;
	}

	.stories-archive .story-card-meta span + span::before {
		margin-right: 12px;
	}

	.stories-archive .story-card h2,
	.stories-archive .story-card-featured h2 {
		font-size: clamp(24px, 2vw, 31px);
		line-height: 1.02;
	}

	.stories-archive .story-card-intro {
		display: -webkit-box;
		margin-top: 11px;
		overflow: hidden;
		font-size: 13px;
		line-height: 1.5;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 2;
	}

	.stories-archive .story-card-type {
		top: 15px;
		left: 15px;
		padding: 7px 9px;
		font-size: 7px;
	}

	.stories-archive .story-card-view {
		right: 16px;
		bottom: 15px;
	}
}

@media (min-width: 701px) and (max-width: 900px) {
	.stories-archive .stories-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 48px 18px;
	}

	.stories-archive .story-card-featured {
		grid-column: auto;
	}

	.stories-archive .story-card-visual,
	.stories-archive .story-card-featured .story-card-visual {
		height: 270px;
		min-height: 0;
	}

	.stories-archive .story-card h2,
	.stories-archive .story-card-featured h2 {
		font-size: clamp(25px, 3.5vw, 32px);
	}

	.stories-archive .story-card-intro {
		display: -webkit-box;
		overflow: hidden;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 2;
	}
}

@media (max-width: 700px) {
	.stories-archive .stories-grid {
		gap: 40px;
	}

	.stories-archive .story-card-visual,
	.stories-archive .story-card-featured .story-card-visual,
	.stories-archive .stories-grid:has(.story-card:only-child) .story-card-visual {
		height: 58vw;
		min-height: 240px;
		max-height: 350px;
	}

	.stories-archive .story-card h2,
	.stories-archive .story-card-featured h2 {
		font-size: clamp(28px, 8vw, 38px);
	}

	.stories-archive .story-card-intro {
		display: -webkit-box;
		overflow: hidden;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 2;
	}
}

/* ==========================================================
   EMPRESAS — CARRUSEL DE CLIENTES
   ========================================================== */

.company-clients .aa-container:has(.company-clients-carousel) {
	overflow: visible;
}

.company-clients-carousel {
	width: 100%;
	overflow: hidden;
	padding: 18px 0 24px;
}

.company-clients-track {
	display: flex;
	width: max-content;
	align-items: center;
	animation: aa-clients-scroll 42s linear infinite;
	will-change: transform;
}

.company-clients-carousel:hover .company-clients-track {
	animation-play-state: paused;
}

.company-client-item {
	position: relative;
	display: flex;
	flex: 0 0 260px;
	height: 150px;
	align-items: center;
	justify-content: center;
	margin-right: 42px;
}

.company-client-logo {
	position: relative;
	display: flex;
	width: 100%;
	height: 100%;
	align-items: center;
	justify-content: center;
}

.company-client-logo img {
	display: block;
	width: auto;
	height: auto;
	max-width: 220px;
	max-height: 120px;
	object-fit: contain;
}

.company-client-tooltip {
	position: absolute;
	left: 50%;
	bottom: calc(50% + 72px);
	z-index: 20;
	max-width: 220px;
	padding: 7px 10px;
	transform: translate(-50%, 4px);
	border-radius: 3px;
	background: var(--aa-dark);
	color: var(--aa-white);
	font-size: 11px;
	font-weight: 700;
	line-height: 1.2;
	white-space: nowrap;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
}

.company-client-tooltip::after {
	content: "";
	position: absolute;
	top: 100%;
	left: 50%;
	transform: translateX(-50%);
	border: 5px solid transparent;
	border-top-color: var(--aa-dark);
}

.company-client-logo:hover .company-client-tooltip,
.company-client-logo:focus-visible .company-client-tooltip {
	opacity: 1;
	visibility: visible;
	transform: translate(-50%, 0);
}

@keyframes aa-clients-scroll {
	from {
		transform: translateX(0);
	}
	to {
		transform: translateX(-50%);
	}
}

@media (max-width: 900px) {
	.company-client-item {
		flex-basis: 220px;
		height: 135px;
		margin-right: 32px;
	}

	.company-client-logo img {
		max-width: 190px;
		max-height: 105px;
	}
}

@media (hover: none), (max-width: 600px) {
	.company-client-tooltip {
		display: none;
	}

	.company-clients-track {
		animation-duration: 34s;
	}

	.company-client-item {
		flex-basis: 190px;
		height: 120px;
		margin-right: 24px;
	}

	.company-client-logo img {
		max-width: 165px;
		max-height: 92px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.company-clients-track {
		animation: none;
	}
}
