
:root {
  --red: #e10b0b;
  --red-dark: #b60000;
  --ink: #090909;
  --muted: #6c6c6c;
  --line: #d9d9d9;
  --blue: #4db4e8;
  --paper: #f7f7f5;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: Arial, Helvetica, sans-serif;
  overflow-x: hidden;
}
a { color: inherit; text-decoration: none; }
button, a, summary { -webkit-tap-highlight-color: transparent; }
svg { width: 1.5rem; height: 1.5rem; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

.site-header {
  position: relative;
  z-index: 20;
  min-height: 136px;
  padding: 18px max(22px, calc((100vw - 1180px) / 2));
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
  background: white;
  border-bottom: 1px solid #eee;
}
.site-header::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 165px;
  height: 14px;
  background: linear-gradient(115deg, var(--red) 0 42%, white 42% 48%, var(--ink) 48% 76%, white 76% 82%, var(--blue) 82% 100%);
  clip-path: polygon(0 0,100% 0,92% 100%,0 100%);
}
.brand { display: inline-flex; width: 230px; }
.brand img { display: block; width: 100%; height: auto; }
.site-header nav { display: flex; align-items: center; gap: 28px; font-size: .76rem; font-weight: 900; text-transform: uppercase; letter-spacing: .06em; }
.site-header nav a { padding: 13px 0; }
.site-header nav a:not(.nav-cta):hover { color: var(--red); }
.site-header .nav-cta { padding: 14px 22px; color: white; background: var(--red); clip-path: polygon(8px 0, 100% 0, calc(100% - 8px) 100%, 0 100%); }

.hero {
  position: relative;
  min-height: clamp(560px, 68vw, 760px);
  display: flex;
  align-items: flex-end;
  isolation: isolate;
  overflow: hidden;
  background: #232323;
}
.hero-image { position: absolute; inset: 0; z-index: -3; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.hero-shade { position: absolute; inset: 0; z-index: -2; background: linear-gradient(180deg, rgba(0,0,0,.03) 20%, rgba(0,0,0,.16) 50%, rgba(0,0,0,.94) 100%), linear-gradient(90deg, rgba(0,0,0,.45), transparent 56%); }
.hero::after {
  content: "";
  position: absolute;
  z-index: -1;
  inset: auto 0 0;
  height: 210px;
  opacity: .25;
  background-image: radial-gradient(#fff 1px, transparent 1.5px);
  background-size: 12px 12px;
  mask-image: linear-gradient(90deg, black, transparent 35%);
}
.hero-content { width: min(1180px, calc(100% - 44px)); margin: 0 auto; padding: 0 0 72px; color: white; }
.eyebrow, .section-kicker { margin: 0 0 13px; color: var(--red); font-size: .75rem; font-weight: 900; letter-spacing: .18em; text-transform: uppercase; }
.eyebrow { display: flex; align-items: center; gap: 10px; color: white; }
.eyebrow span { width: 34px; height: 4px; background: var(--red); transform: skewX(-24deg); }
h1, h2 { margin: 0; text-transform: uppercase; font-weight: 950; letter-spacing: -.055em; line-height: .86; font-style: italic; }
h1 { max-width: 900px; font-size: clamp(3.8rem, 9.3vw, 8.9rem); text-shadow: 0 5px 25px rgba(0,0,0,.25); }
.date-ribbon { display: inline-block; margin-top: 25px; padding: 12px 36px 10px 27px; background: var(--red); clip-path: polygon(12px 0,100% 0,calc(100% - 18px) 100%,0 100%); font-size: clamp(.9rem,2vw,1.25rem); text-transform: uppercase; letter-spacing: .04em; font-weight: 950; font-style: italic; }
.location { margin: 15px 0 0; text-transform: uppercase; letter-spacing: .07em; font-size: clamp(.72rem,1.8vw,1rem); font-weight: 900; }
.hero-stripes { position: absolute; right: -40px; bottom: -54px; width: 250px; height: 150px; transform: rotate(-18deg); background: repeating-linear-gradient(90deg, rgba(255,255,255,.9) 0 18px, transparent 18px 34px); opacity: .16; }

.countdown-shell {
  position: relative;
  z-index: 3;
  width: min(1050px, calc(100% - 34px));
  margin: -36px auto 0;
  padding: 24px 26px 25px;
  display: grid;
  grid-template-columns: .72fr 2fr;
  gap: 22px;
  align-items: center;
  background: white;
  border: 1px solid #ddd;
  box-shadow: 0 18px 60px rgba(0,0,0,.12);
  clip-path: polygon(16px 0,calc(100% - 16px) 0,100% 16px,100% calc(100% - 16px),calc(100% - 16px) 100%,16px 100%,0 calc(100% - 16px),0 16px);
}
.countdown-heading { border-right: 1px solid var(--line); text-transform: uppercase; }
.countdown-heading span { display: block; color: var(--muted); font-size: .66rem; font-weight: 800; letter-spacing: .15em; }
.countdown-heading strong { color: var(--red); font-size: 2rem; font-style: italic; }
.countdown { display: grid; grid-template-columns: repeat(4,1fr); }
.time-unit { position: relative; text-align: center; }
.time-unit:not(:last-child)::after { content: ""; position: absolute; right: 0; top: 13%; height: 74%; width: 1px; background: var(--line); transform: skewX(-12deg); }
.time-unit strong { display: block; font-size: clamp(2.1rem,6vw,4.3rem); line-height: 1; font-weight: 950; letter-spacing: -.06em; font-style: italic; font-variant-numeric: tabular-nums; }
.time-unit span { color: #555; font-size: .68rem; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; }

.action-panel { width: min(920px, calc(100% - 34px)); margin: 40px auto 78px; display: grid; gap: 12px; }
.action {
  min-height: 76px;
  padding: 0 28px;
  display: grid;
  grid-template-columns: 54px 1fr 28px;
  align-items: center;
  gap: 16px;
  color: white;
  transition: transform .18s ease, filter .18s ease;
  clip-path: polygon(10px 0,calc(100% - 10px) 0,100% 10px,100% calc(100% - 10px),calc(100% - 10px) 100%,10px 100%,0 calc(100% - 10px),0 10px);
}
.action:hover { transform: translateX(5px); filter: brightness(1.05); }
.action.primary { background: linear-gradient(110deg, var(--red-dark), var(--red)); }
.action.dark { background: linear-gradient(110deg, #0b0b0b, #252525); }
.action.values { background: linear-gradient(110deg, #a90000, #f01515); box-shadow: inset 0 0 0 2px rgba(255,255,255,.22); }
.action-icon { width: 46px; height: 46px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.4); border-radius: 50%; }
.action > span:nth-child(2) { font-size: clamp(1.2rem,3vw,1.7rem); font-weight: 950; font-style: italic; text-transform: uppercase; }
.action small { display: block; margin-bottom: 2px; color: rgba(255,255,255,.68); font-size: .6rem; font-style: normal; letter-spacing: .1em; }
.action > svg { justify-self: end; }

.facts { width: min(1180px, calc(100% - 34px)); margin: 0 auto 96px; display: grid; grid-template-columns: repeat(3,1fr); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.facts article { min-height: 170px; padding: 28px 4.2vw; display: flex; align-items: center; justify-content: center; gap: 15px; }
.facts article:not(:last-child) { border-right: 1px solid var(--line); }
.fact-number { color: var(--red); font-size: clamp(3.7rem,7vw,6.2rem); line-height: 1; font-weight: 950; letter-spacing: -.08em; font-style: italic; }
.facts strong { font-size: 1.1rem; }
.facts p { margin: 5px 0 0; color: var(--muted); font-size: .75rem; line-height: 1.4; text-transform: uppercase; font-weight: 800; }
.facts b { color: var(--ink); }

.return-block {
  position: relative;
  min-height: 620px;
  padding: 85px max(22px,calc((100vw - 1180px)/2));
  display: grid;
  place-items: center;
  overflow: hidden;
  color: white;
  background-color: #080808;
  background-image:
    linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px);
  background-size: 42px 42px;
}
.return-block::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 5px;
  background: linear-gradient(90deg,white 0 33%,transparent 33% 67%,var(--red) 67% 100%);
}
.return-block::after {
  content: "";
  position: absolute;
  width: 300px;
  height: 300px;
  right: -180px;
  bottom: -180px;
  border: 42px solid rgba(225,11,11,.08);
  transform: rotate(45deg);
}
.return-block-inner { position: relative; z-index: 1; width: 100%; text-align: center; }
.return-block p { margin: 0 0 26px; font-size: .68rem; font-weight: 950; letter-spacing: .18em; text-transform: uppercase; }
.return-block h2 { display: grid; color: var(--red); font-size: clamp(5.2rem,11vw,10.8rem); line-height: .75; }
.return-block h2 span { color: white; font-size: .74em; }
.return-block a {
  min-width: 255px;
  margin-top: 52px;
  padding: 18px 24px;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 35px;
  background: var(--red);
  color: white;
  font-size: .75rem;
  font-weight: 950;
  text-align: left;
  text-transform: uppercase;
  transition: transform .18s ease, filter .18s ease;
  clip-path: polygon(8px 0,100% 0,calc(100% - 8px) 100%,0 100%);
}
.return-block a:hover { transform: translateY(-3px); filter: brightness(1.08); }
.return-block a svg { width: 1.1rem; }

.story { position: relative; min-height: 570px; padding: 95px max(22px,calc((100vw - 1180px)/2)); display: grid; grid-template-columns: 1.35fr .65fr; align-items: center; overflow: hidden; color: white; background: #0a0a0a; }
.story::before { content: ""; position: absolute; inset: 0; opacity: .09; background-image: radial-gradient(white 1px,transparent 1px); background-size: 15px 15px; mask-image: linear-gradient(110deg, transparent 35%, black); }
.story::after { content: ""; position: absolute; left: 0; top: 0; width: 38%; height: 8px; background: linear-gradient(90deg,var(--red) 70%,var(--blue)); clip-path: polygon(0 0,100% 0,96% 100%,0 100%); }
.story-copy { position: relative; z-index: 1; max-width: 710px; }
.story h2, .categories h2, .coming-soon h2 { font-size: clamp(3rem,7vw,6.5rem); }
.story-copy > p:not(.section-kicker) { max-width: 660px; margin: 26px 0 35px; color: #c9c9c9; font-size: 1rem; line-height: 1.75; }
.story ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 13px; text-transform: uppercase; font-size: .75rem; font-weight: 900; letter-spacing: .04em; }
.story li { display: flex; align-items: center; gap: 14px; }
.story li span { color: var(--red); font-style: italic; }
.story-mark { position: relative; z-index: 1; justify-self: end; min-width: 330px; color: #1e1e1e; text-align: right; transform: rotate(-6deg); }
.story-mark span { display: block; font-size: clamp(9rem,22vw,20rem); line-height: .7; font-weight: 950; letter-spacing: -.12em; font-style: italic; }
.story-mark small { display: block; margin-right: 10px; color: var(--red); font-size: 2rem; font-weight: 950; }

.categories { padding: 105px max(22px,calc((100vw - 1180px)/2)); background: white; }
.section-head { margin-bottom: 50px; display: grid; grid-template-columns: 1fr 1fr; gap: 45px; align-items: end; }
.section-head > p { max-width: 510px; margin: 0; color: var(--muted); line-height: 1.7; }
.category-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 15px; }
.category-card { border: 1px solid var(--line); background: #fafafa; }
.category-card[open] { background: #111; color: white; border-color: #111; }
.category-card summary { min-height: 105px; padding: 22px 27px; display: grid; grid-template-columns: 43px 1fr 25px; align-items: center; gap: 14px; cursor: pointer; list-style: none; }
.category-card summary::-webkit-details-marker { display: none; }
.category-order { color: var(--red); font-weight: 950; font-style: italic; }
.category-title { font-size: 1.2rem; font-weight: 950; text-transform: uppercase; font-style: italic; }
.category-title small { display: block; margin-top: 5px; color: #888; font-size: .63rem; font-style: normal; letter-spacing: .09em; }
.plus { justify-self: end; color: var(--red); font-size: 1.8rem; font-weight: 300; transition: transform .2s; }
.category-card[open] .plus { transform: rotate(45deg); }
.category-card ul { margin: 0; padding: 0 27px 26px 84px; list-style: none; }
.category-card li { padding: 9px 0; border-bottom: 1px solid #2f2f2f; color: #d1d1d1; font-size: .78rem; font-weight: 700; }

.coming-soon { padding: 75px max(22px,calc((100vw - 1180px)/2)); display: grid; grid-template-columns: 1.2fr .8fr; gap: 45px; align-items: center; background: var(--red); color: white; }
.coming-soon .section-kicker { color: white; opacity: .7; }
.coming-soon h2 { max-width: 790px; font-size: clamp(2.8rem,6vw,5.5rem); }
.coming-soon p:not(.section-kicker) { max-width: 650px; line-height: 1.6; }
.coming-soon > a { justify-self: end; min-width: 290px; padding: 21px 25px; display: flex; align-items: center; justify-content: space-between; background: white; color: var(--ink); font-size: .9rem; font-weight: 950; text-transform: uppercase; clip-path: polygon(10px 0,100% 0,calc(100% - 10px) 100%,0 100%); }

footer { padding: 35px max(22px,calc((100vw - 1180px)/2)); display: grid; grid-template-columns: 180px 1fr auto; align-items: center; gap: 35px; background: white; border-top: 1px solid var(--line); }
footer img { display: block; width: 180px; }
footer p { color: var(--muted); font-size: .68rem; font-weight: 800; line-height: 1.55; text-transform: uppercase; letter-spacing: .06em; }
footer a { font-size: .68rem; font-weight: 900; text-transform: uppercase; }

@media (max-width: 800px) {
  .site-header { min-height: 112px; justify-content: center; padding: 15px 20px; }
  .brand { width: 205px; }
  .site-header nav { display: none; }
  .hero { min-height: 620px; }
  .hero-image { object-position: 57% center; }
  .hero-content { padding-bottom: 95px; }
  .countdown-shell { margin-top: -52px; padding: 21px 12px 19px; display: block; }
  .countdown-heading { margin-bottom: 15px; border: 0; text-align: center; }
  .countdown-heading span { display: none; }
  .countdown-heading strong { font-size: 1.45rem; }
  .time-unit strong { font-size: clamp(2.1rem,12vw,3.8rem); }
  .time-unit span { font-size: .56rem; }
  .action-panel { margin-top: 27px; margin-bottom: 62px; }
  .action { min-height: 69px; padding: 0 18px; grid-template-columns: 42px 1fr 22px; gap: 11px; }
  .action-icon { width: 38px; height: 38px; }
  .action-icon svg { width: 1.2rem; }
  .action > span:nth-child(2) { font-size: clamp(1rem,5vw,1.35rem); }
  .facts { grid-template-columns: 1fr; margin-bottom: 65px; }
  .facts article { min-height: 116px; padding: 20px; justify-content: flex-start; }
  .facts article:not(:last-child) { border-right: 0; border-bottom: 1px solid var(--line); }
  .fact-number { width: 45%; text-align: right; font-size: 4.6rem; }
  .return-block { min-height: 530px; padding: 72px 15px; background-size: 34px 34px; }
  .return-block p { max-width: 310px; margin-left: auto; margin-right: auto; line-height: 1.6; }
  .return-block h2 { font-size: clamp(4.2rem,20vw,7rem); line-height: .78; }
  .return-block a { margin-top: 45px; }
  .story { min-height: 0; padding-top: 75px; padding-bottom: 85px; grid-template-columns: 1fr; }
  .story h2 { font-size: clamp(3rem,14vw,5rem); }
  .story-mark { display: none; }
  .categories { padding-top: 75px; padding-bottom: 80px; }
  .section-head { grid-template-columns: 1fr; gap: 22px; margin-bottom: 35px; }
  .categories h2 { font-size: 4.2rem; }
  .category-grid { grid-template-columns: 1fr; }
  .category-card summary { min-height: 90px; padding: 18px; }
  .category-card ul { padding: 0 18px 22px 75px; }
  .coming-soon { padding-top: 65px; padding-bottom: 65px; grid-template-columns: 1fr; }
  .coming-soon h2 { font-size: 3.2rem; }
  .coming-soon > a { justify-self: stretch; min-width: 0; }
  footer { grid-template-columns: 1fr; justify-items: center; text-align: center; gap: 12px; }
}

@media (max-width: 420px) {
  h1 { font-size: 3.55rem; }
  .hero { min-height: 590px; }
  .hero-content { width: calc(100% - 30px); }
  .date-ribbon { padding-left: 18px; font-size: .8rem; }
  .location { max-width: 270px; line-height: 1.4; }
  .countdown-shell, .action-panel, .facts { width: calc(100% - 24px); }
  .time-unit strong { font-size: 2.45rem; }
  .story h2 { font-size: 3.4rem; }
  .categories h2 { font-size: 3.7rem; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; }
}

/* Portada compacta inspirada en la pieza visual aprobada */
body { background: #e7e7e7; }
main {
  width: min(941px, 100%);
  margin: 0 auto;
  background: #fff;
  box-shadow: 0 0 55px rgba(0,0,0,.13);
}
.site-header {
  min-height: 286px;
  padding: 22px;
  justify-content: center;
  overflow: hidden;
  background:
    radial-gradient(circle, #111 1.4px, transparent 1.7px) 11% 17% / 12px 12px no-repeat,
    linear-gradient(130deg, transparent 0 88%, #f2f2f2 88% 92%, transparent 92%),
    #fff;
}
.site-header::before {
  width: 150px;
  height: 150px;
  background: linear-gradient(125deg,var(--red) 0 23%,white 23% 31%,#111 31% 49%,white 49% 55%,#2060aa 55% 59%,transparent 59%);
  clip-path: none;
}
.site-header::after {
  content: "";
  position: absolute;
  right: 35px;
  top: 58px;
  width: 110px;
  height: 70px;
  opacity: .55;
  background: repeating-linear-gradient(125deg,#ddd 0 9px,transparent 9px 17px);
  transform: skewX(-12deg);
}
.brand { width: 410px; max-width: 56%; }
.site-header nav { display: none; }

.hero { min-height: 570px; align-items: flex-end; }
.hero-image { object-position: 55% center; }
.hero-shade { background: linear-gradient(180deg,transparent 35%,rgba(0,0,0,.12) 57%,rgba(0,0,0,.94) 100%); }
.hero-content { width: calc(100% - 50px); padding: 0 0 25px; text-align: center; }
.hero .eyebrow { display: none; }
.hero h1 { max-width: none; font-size: clamp(3.4rem,7.7vw,5rem); line-height: .9; white-space: nowrap; }
.date-ribbon { margin-top: 17px; padding: 10px 55px 9px; font-size: 1.15rem; }
.location { margin-top: 11px; font-size: .9rem; }

.countdown-shell {
  width: calc(100% - 70px);
  margin: 0 auto;
  padding: 18px 24px 22px;
  display: block;
  box-shadow: none;
  border: 1px solid #cfcfcf;
  border-top: 7px solid #fff;
  background: #fff;
}
.countdown-heading { margin-bottom: 8px; border: 0; text-align: center; }
.countdown-heading span { display: none; }
.countdown-heading strong { font-size: 1.75rem; }
.time-unit strong { font-size: clamp(3rem,7.4vw,4.6rem); }
.time-unit span { font-size: .8rem; }

.action-panel { width: calc(100% - 220px); margin: 20px auto 24px; gap: 9px; }
.action { min-height: 73px; }
.action > span:nth-child(2) { font-size: 1.45rem; }
.action small { display: none; }

.facts {
  width: calc(100% - 70px);
  margin: 0 auto 0;
  grid-template-columns: repeat(3,1fr);
  border: 1px solid #cfcfcf;
  background: #fff;
  clip-path: polygon(14px 0,calc(100% - 14px) 0,100% 14px,100% calc(100% - 14px),calc(100% - 14px) 100%,14px 100%,0 calc(100% - 14px),0 14px);
}
.facts article { min-height: 145px; padding: 16px 10px; flex-direction: column-reverse; gap: 3px; text-align: center; }
.facts article:not(:last-child) { border-right: 1px solid var(--line); border-bottom: 0; }
.fact-number { width: auto; color: #111; font-size: 3.35rem; line-height: .9; text-align: center; }
.facts strong { display: none; }
.facts p { margin: 0; color: #111; font-size: .72rem; line-height: 1.25; }
.facts p::first-line { color: var(--red); }

.intro-panel {
  position: relative;
  min-height: 310px;
  padding: 48px 54px 38px;
  display: flex;
  align-items: center;
  overflow: hidden;
  background:
    radial-gradient(#151515 1px,transparent 1.4px) 5% 82% / 11px 11px no-repeat,
    linear-gradient(135deg,transparent 0 93%,var(--red) 93%),
    #fff;
}
.intro-copy { position: relative; z-index: 2; }
.intro-panel h2 { font-size: clamp(3.15rem,7vw,5.1rem); line-height: .88; }
.intro-panel h2 span { color: var(--red); font-size: .58em; letter-spacing: -.035em; }
.race-line { width: 78%; height: 8px; margin: 20px 0 24px; display: flex; transform: skewX(-24deg); }
.race-line i:nth-child(1) { width: 34%; background: var(--red); }
.race-line i:nth-child(2) { width: 18%; background: var(--blue); }
.race-line i:nth-child(3) { flex: 1; background: #111; }
.intro-panel a {
  min-width: 390px;
  padding: 18px 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 45px;
  color: white;
  background: var(--red);
  font-weight: 950;
  font-size: 1.15rem;
  font-style: italic;
  text-transform: uppercase;
  clip-path: polygon(10px 0,100% 0,calc(100% - 10px) 100%,0 100%);
}
.finish-pattern {
  position: absolute;
  width: 280px;
  height: 220px;
  right: -30px;
  bottom: -55px;
  opacity: .86;
  background: conic-gradient(#111 25%,white 0 50%,#111 0 75%,white 0) 0 0 / 42px 42px;
  transform: rotate(-16deg) skewY(-8deg);
  mask-image: linear-gradient(120deg,transparent 0 18%,black 54%);
}

.story { min-height: 500px; padding: 75px 55px; }
.categories { padding: 80px 55px; }
.return-block { min-height: 540px; padding-left: 38px; padding-right: 38px; }
.coming-soon { padding: 65px 55px; }
footer { padding-left: 45px; padding-right: 45px; }

@media (max-width: 620px) {
  main { box-shadow: none; }
  .site-header { min-height: 190px; padding: 18px; }
  .site-header::before { width: 92px; height: 110px; }
  .site-header::after { right: 8px; top: 35px; width: 70px; height: 45px; }
  .brand { width: 270px; max-width: 76%; }
  .hero { min-height: 455px; }
  .hero-image { object-position: 58% center; }
  .hero-content { width: calc(100% - 20px); padding-bottom: 16px; }
  .hero h1 { font-size: clamp(2.35rem,10.8vw,3.5rem); white-space: normal; }
  .date-ribbon { margin-top: 12px; padding: 8px 24px 7px; font-size: .82rem; }
  .location { margin: 8px auto 0; max-width: none; font-size: .61rem; white-space: nowrap; }
  .countdown-shell { width: calc(100% - 24px); margin-top: 0; padding: 13px 7px 17px; }
  .countdown-heading { margin-bottom: 7px; }
  .countdown-heading strong { font-size: 1.2rem; }
  .time-unit strong { font-size: clamp(2.2rem,12vw,3rem); }
  .time-unit span { font-size: .55rem; }
  .action-panel { width: calc(100% - 42px); margin: 16px auto 18px; }
  .action { min-height: 59px; padding: 0 15px; grid-template-columns: 38px 1fr 20px; gap: 8px; }
  .action-icon { width: 34px; height: 34px; }
  .action > span:nth-child(2) { font-size: clamp(.93rem,4.8vw,1.18rem); }
  .facts { width: calc(100% - 24px); display: grid !important; grid-template-columns: repeat(3,minmax(0,1fr)) !important; }
  .facts article { min-height: 112px; padding: 12px 2px; }
  .fact-number { font-size: clamp(2rem,10vw,2.65rem); }
  .facts p { font-size: .52rem; }
  .intro-panel { min-height: 260px; padding: 35px 22px 30px; }
  .intro-panel h2 { font-size: clamp(2.5rem,12.8vw,3.45rem); }
  .intro-panel h2 span { font-size: .52em; }
  .race-line { width: 76%; height: 6px; margin: 15px 0 19px; }
  .intro-panel a { min-width: 245px; padding: 14px 18px; gap: 30px; font-size: .9rem; }
  .finish-pattern { width: 150px; height: 140px; right: -32px; bottom: -42px; background-size: 27px 27px; }
  .story { min-height: 0; padding: 65px 22px 75px; }
  .story h2 { font-size: 3rem; }
  .categories { padding: 65px 18px; }
  .categories h2 { font-size: 3.35rem; }
  .return-block { min-height: 480px; }
  .return-block h2 { font-size: clamp(3.75rem,18vw,5.5rem); }
  .coming-soon { padding: 58px 22px; }
  footer { padding-left: 22px; padding-right: 22px; }
}

@media (max-width: 420px) {
  .facts { display: grid !important; grid-template-columns: repeat(3,minmax(0,1fr)) !important; }
  .facts article { width: auto !important; min-width: 0; border-bottom: 0 !important; }
  .facts article:not(:last-child) { border-right: 1px solid var(--line) !important; }
}

/* Subpáginas: valores e inscripción */
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.subpage-body { min-height: 100vh; background: #e7e7e7; }
.subpage-shell, .registration-shell { width: min(941px,100%); min-height: 100vh; margin: 0 auto; background: #fff; box-shadow: 0 0 55px rgba(0,0,0,.13); }
.subpage-header {
  position: relative;
  min-height: 120px;
  padding: 17px 32px;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 20px;
  overflow: hidden;
  background: white;
  border-bottom: 1px solid #e2e2e2;
}
.subpage-header::before { content: ""; position: absolute; top: 0; left: 0; width: 130px; height: 10px; background: linear-gradient(90deg,var(--red) 0 58%,#111 58% 80%,var(--blue) 80%); transform: skewX(-28deg) translateX(-10px); }
.subpage-logo { width: 225px; display: block; }
.subpage-logo img { width: 100%; height: auto; display: block; }
.back-link, .values-mini-link { position: relative; z-index: 2; display: inline-flex; align-items: center; gap: 7px; color: #202020; font-size: .72rem; font-weight: 950; letter-spacing: .06em; text-transform: uppercase; }
.back-link svg { width: 1.15rem; }
.values-mini-link { justify-self: end; padding: 11px 15px; color: white; background: #111; clip-path: polygon(7px 0,100% 0,calc(100% - 7px) 100%,0 100%); }
.header-spacer { min-width: 70px; }

.values-image-section { padding: 28px 34px 34px; display: grid; place-items: center; background: #efefef; }
.values-image-section img { display: block; width: min(720px,100%); height: auto; background: white; box-shadow: 0 18px 50px rgba(0,0,0,.15); }

.values-hero { position: relative; padding: 58px 55px 50px; overflow: hidden; text-align: center; background: linear-gradient(155deg,#fff 0 72%,#f2f2f2 72%); }
.values-hero::before, .values-hero::after { content: ""; position: absolute; width: 160px; height: 36px; opacity: .9; background: repeating-linear-gradient(125deg,var(--red) 0 11px,transparent 11px 18px); transform: rotate(-15deg); }
.values-hero::before { left: -30px; top: 35px; }
.values-hero::after { right: -25px; bottom: 25px; }
.values-hero h1 { position: relative; z-index: 1; color: #111; font-size: clamp(3.6rem,9vw,6.5rem); line-height: .78; }
.values-hero h1 span { color: var(--red); }
.values-hero > p:last-child { position: relative; z-index: 1; margin: 20px 0 0; font-size: .85rem; font-weight: 950; font-style: italic; letter-spacing: .04em; text-transform: uppercase; }

.fees-wrap { padding: 18px 34px 48px; background: white; }
.fees-table-scroll { overflow-x: auto; border: 2px solid #222; border-radius: 12px; box-shadow: 0 14px 32px rgba(0,0,0,.09); }
.fees-table { width: 100%; min-width: 660px; border-collapse: separate; border-spacing: 0; table-layout: fixed; background: white; }
.fees-table th, .fees-table td { height: 98px; padding: 12px 8px; border-right: 1px solid #b9b9b9; border-bottom: 1px solid #b9b9b9; text-align: center; }
.fees-table tr > *:last-child { border-right: 0; }
.fees-table tbody tr:last-child > * { border-bottom: 0; }
.fees-table thead th { height: 88px; color: white; background: linear-gradient(180deg,#e31212,#c90000); font-size: 1rem; font-style: italic; text-transform: uppercase; }
.fees-table thead .deadline-head { width: 24%; color: #111; background: white; }
.vehicle-icon { height: 25px; display: block; margin-bottom: 5px; font-size: 1.4rem; line-height: 1; font-style: normal; }
.fees-table tbody th { color: #111; background: #f4f4f4; text-transform: uppercase; }
.fees-table tbody th small { display: block; color: #777; font-size: .6rem; letter-spacing: .04em; }
.fees-table tbody th strong { display: block; margin-top: 4px; font-size: 1.15rem; font-style: italic; }
.fees-table td strong { font-size: 2.2rem; font-style: italic; letter-spacing: -.05em; }
.fees-table td small { margin-left: 5px; color: #777; font-size: .65rem; font-weight: 900; }
.fees-table .featured-fee th { color: white; background: #111; }
.fees-table .featured-fee th small { color: #ddd; }
.fees-table .featured-fee td strong { color: #111; }
.currency-note { margin: 16px 0 0; color: #555; font-size: .72rem; font-weight: 700; text-align: center; }

.values-cta { margin: 0 34px 50px; padding: 26px 28px; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 24px; color: white; background: #0a0a0a; border-left: 10px solid var(--red); clip-path: polygon(0 0,calc(100% - 12px) 0,100% 12px,100% 100%,12px 100%,0 calc(100% - 12px)); }
.values-cta small { display: block; margin-bottom: 4px; color: #aaa; font-size: .64rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.values-cta strong { display: block; font-size: 1.6rem; font-style: italic; text-transform: uppercase; }
.values-cta a { min-width: 205px; padding: 16px 19px; display: flex; align-items: center; justify-content: space-between; gap: 18px; color: white; background: var(--red); font-size: .75rem; font-weight: 950; text-transform: uppercase; clip-path: polygon(8px 0,100% 0,calc(100% - 8px) 100%,0 100%); }
.values-cta a svg { width: 1.1rem; }
.subpage-footer { padding: 26px 34px; display: grid; grid-template-columns: 145px 1fr auto; align-items: center; gap: 25px; border-top: 1px solid #ddd; }
.subpage-footer img { width: 145px; }
.subpage-footer p, .subpage-footer a { color: #666; font-size: .63rem; font-weight: 800; line-height: 1.5; letter-spacing: .04em; text-transform: uppercase; }
.subpage-footer a { color: var(--red); font-size: .75rem; font-style: italic; }

.registration-shell { width: min(1280px,100%); background: #f2f2f2; }
.registration-title { padding: 32px max(24px,calc((100% - 1120px)/2)); display: grid; grid-template-columns: 1.1fr .9fr; gap: 30px; align-items: end; color: white; background: #111; border-bottom: 6px solid var(--red); }
.registration-title h1 { font-size: clamp(3rem,7vw,5.4rem); }
.registration-title > p { max-width: 440px; margin: 0 0 4px; color: #ccc; line-height: 1.55; }
.registration-direct { width: min(1180px,calc(100% - 28px)); margin: 18px auto 0; padding: 18px 22px; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 22px; color: white; background: #111; border-left: 7px solid var(--red); }
.registration-direct strong { display: block; font-size: 1rem; font-style: italic; text-transform: uppercase; }
.registration-direct span { display: block; margin-top: 4px; color: #bbb; font-size: .72rem; }
.registration-direct a { min-width: 205px; padding: 15px 18px; display: flex; align-items: center; justify-content: space-between; gap: 18px; color: white; background: var(--red); font-size: .72rem; font-weight: 950; text-transform: uppercase; clip-path: polygon(8px 0,100% 0,calc(100% - 8px) 100%,0 100%); }
.registration-direct a svg { width: 1.05rem; }
.iframe-shell { width: min(1180px,calc(100% - 28px)); margin: 18px auto 0; overflow: hidden; background: white; border: 1px solid #d7d7d7; border-radius: 12px; box-shadow: 0 14px 45px rgba(0,0,0,.1); }
.iframe-shell iframe { width: 100%; min-height: 1600px; display: block; border: 0; background: white; }
.iframe-fallback { margin: 14px auto 0; padding: 0 20px 28px; color: #666; font-size: .74rem; text-align: center; }
.iframe-fallback a { color: var(--red); font-weight: 900; text-decoration: underline; }

@media (max-width: 700px) {
  .subpage-header { min-height: 96px; padding: 13px 15px; grid-template-columns: 1fr auto 1fr; gap: 8px; }
  .subpage-logo { width: 145px; }
  .back-link { font-size: .62rem; }
  .values-mini-link { padding: 9px 8px; font-size: .56rem; }
  .header-spacer { min-width: 48px; }
  .values-image-section { padding: 12px 0 22px; }
  .values-image-section img { width: 100%; box-shadow: none; }
  .values-hero { padding: 45px 14px 38px; }
  .values-hero h1 { font-size: clamp(3.15rem,16vw,4.7rem); }
  .values-hero > p:last-child { font-size: .7rem; }
  .fees-wrap { padding: 10px 12px 32px; }
  .fees-table-scroll { overflow: visible; border-radius: 8px; }
  .fees-table { min-width: 0; }
  .fees-table th, .fees-table td { height: 76px; padding: 6px 2px; }
  .fees-table thead th { height: 70px; font-size: .64rem; }
  .fees-table thead .deadline-head { width: 26%; font-size: .58rem; }
  .vehicle-icon { height: 18px; margin-bottom: 3px; font-size: 1rem; }
  .fees-table tbody th small { font-size: .46rem; }
  .fees-table tbody th strong { font-size: .78rem; }
  .fees-table tbody th strong:last-child { overflow-wrap: anywhere; }
  .fees-table td strong { display: block; font-size: clamp(1.15rem,6vw,1.65rem); }
  .fees-table td small { display: block; margin: 1px 0 0; font-size: .48rem; }
  .currency-note { font-size: .62rem; }
  .values-cta { margin: 0 12px 34px; padding: 22px 18px; grid-template-columns: 1fr; text-align: center; border-left-width: 7px; }
  .values-cta strong { font-size: 1.35rem; }
  .values-cta a { width: 100%; min-width: 0; justify-content: center; }
  .subpage-footer { padding: 22px 15px; grid-template-columns: 1fr; justify-items: center; gap: 9px; text-align: center; }
  .registration-title { padding: 25px 18px; grid-template-columns: 1fr; gap: 14px; }
  .registration-title h1 { font-size: 3.3rem; }
  .registration-title > p { font-size: .8rem; }
  .registration-direct { width: calc(100% - 24px); padding: 16px; grid-template-columns: 1fr; text-align: center; }
  .registration-direct a { width: 100%; min-width: 0; justify-content: center; }
  .iframe-shell { width: 100%; margin-top: 0; border: 0; border-radius: 0; box-shadow: none; }
  .iframe-shell iframe { min-height: 2100px; }
}
