/* ============================================================
   PROKART — SISTEMA DE DISEÑO
   Negro / Rojo / Blanco. Sin grises tibios, sin degradados decorativos.
   El sistema se apoya en el vocabulario del cronometraje deportivo:
   líneas de ruta, marcas de kilómetro, dorsales y tiempos parciales.
   ============================================================ */
:root{
  --negro:      #000000;
  --rojo:       #C61718;  /* rojo institucional, muestreado del logotipo */
  --rojo-vivo:  #FF2E2F;  /* solo estados interactivos y foco sobre negro */
  --blanco:     #FFFFFF;
  --humo:       #8C8C8C;  /* texto secundario sobre negro */
  --linea:      #242424;  /* filetes sobre negro */
  --linea-inv:  #DCDCDC;  /* filetes sobre blanco */
  --col: 1240px;
  --sans: 'Archivo', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --cond: 'Barlow Semi Condensed', 'Archivo', system-ui, sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth; scroll-padding-top:74px; -webkit-text-size-adjust:100%}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *{animation-duration:.001ms !important; transition-duration:.001ms !important}
}
body{
  margin:0; background:var(--negro); color:var(--blanco);
  font-family:var(--sans); font-variation-settings:'wdth' 100;
  font-size:17px; line-height:1.62; letter-spacing:-.003em;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%; display:block}
a{color:inherit}
:focus-visible{outline:2px solid var(--rojo-vivo); outline-offset:3px}
::selection{background:var(--rojo); color:var(--blanco)}

/* ---------- Retícula ---------- */
.wrap{max-width:var(--col); margin:0 auto; padding:0 28px}
.section{padding:110px 0; position:relative}
.section--tight{padding:74px 0}
.section--luz{background:var(--blanco); color:var(--negro)}

/* Filete de ruta: la línea roja con marcas de kilómetro que separa secciones */
.ruta-line{height:1px; background:var(--linea); position:relative}
.ruta-line::before{content:""; position:absolute; left:0; top:0; height:1px; width:96px; background:var(--rojo)}
.ruta-line::after{content:""; position:absolute; left:0; top:-3px; height:7px; width:2px; background:var(--rojo)}
.section--luz .ruta-line{background:var(--linea-inv)}

/* ---------- Tipografía ---------- */
h1,h2,h3,h4{margin:0; font-weight:800; font-variation-settings:'wdth' 112,'wght' 800; letter-spacing:-.035em; line-height:.96}
h1{font-size:clamp(2.9rem, 7.4vw, 6.1rem)}
h2{font-size:clamp(2.1rem, 4.4vw, 3.5rem)}
h3{font-size:clamp(1.25rem, 2vw, 1.6rem); letter-spacing:-.025em; line-height:1.12}
p{margin:0 0 1.15em}
.lede{font-size:clamp(1.05rem,1.5vw,1.32rem); line-height:1.5; color:var(--humo); max-width:62ch; font-variation-settings:'wdth' 100,'wght' 400}
.section--luz .lede{color:#4A4A4A}
.dato{font-family:var(--cond); font-weight:700; font-variation-settings:normal; letter-spacing:.01em; font-feature-settings:'tnum'}
.mini{font-family:var(--cond); font-weight:600; font-size:.86rem; letter-spacing:.09em; text-transform:uppercase; color:var(--humo)}
.section--luz .mini{color:#6B6B6B}

/* marca de cifra sin confirmar */
.tent{border-bottom:1px dotted var(--rojo); cursor:help}

/* ---------- Botones ---------- */
.btn{
  display:inline-flex; align-items:center; gap:.6em; border:0; cursor:pointer;
  background:var(--rojo); color:var(--blanco); text-decoration:none;
  font-family:var(--sans); font-size:.95rem; font-weight:700; font-variation-settings:'wdth' 104,'wght' 700;
  letter-spacing:-.01em; padding:15px 26px; transition:background .18s ease;
}
.btn:hover{background:var(--rojo-vivo)}
.btn--linea{background:transparent; box-shadow:inset 0 0 0 1px var(--linea); color:var(--blanco)}
.btn--linea:hover{background:transparent; box-shadow:inset 0 0 0 1px var(--rojo); color:var(--rojo-vivo)}
.section--luz .btn--linea{box-shadow:inset 0 0 0 1px var(--linea-inv); color:var(--negro)}
.section--luz .btn--linea:hover{box-shadow:inset 0 0 0 1px var(--rojo); color:var(--rojo)}

/* ============================================================
   NAVEGACIÓN
   ============================================================ */
.nav{
  position:sticky; top:0; z-index:80; background:rgba(0,0,0,.92);
  backdrop-filter:blur(14px); border-bottom:1px solid var(--linea);
}
.nav__in{max-width:var(--col); margin:0 auto; padding:0 28px; height:74px; display:flex; align-items:center; gap:36px}
.nav__logo{display:block; flex:0 0 auto}
.nav__logo img{height:23px; width:auto}
.nav__links{display:flex; gap:26px; margin-left:auto; align-items:center}
.nav__links a{
  text-decoration:none; font-size:.94rem; font-weight:600; font-variation-settings:'wdth' 100,'wght' 600;
  letter-spacing:-.012em; padding:6px 0; position:relative; color:var(--blanco);
}
.nav__links a::after{content:""; position:absolute; left:0; right:100%; bottom:0; height:2px; background:var(--rojo); transition:right .22s ease}
.nav__links a:hover::after, .nav__links a.is-active::after{right:0}
.nav__cta{margin-left:4px}
.nav__burger{display:none; margin-left:auto; background:none; border:0; color:var(--blanco); padding:10px; cursor:pointer}
.nav__burger span{display:block; width:24px; height:2px; background:currentColor; margin:5px 0}
@media (max-width:900px){
  .nav__links{
    position:fixed; inset:74px 0 auto 0; background:var(--negro); flex-direction:column;
    align-items:flex-start; gap:0; padding:8px 28px 28px; border-bottom:1px solid var(--linea);
    display:none;
  }
  .nav__links.is-open{display:flex}
  .nav__links a{width:100%; padding:16px 0; border-bottom:1px solid var(--linea); font-size:1.15rem}
  .nav__cta{margin-top:20px}
  .nav__burger{display:block}
}

/* ============================================================
   HERO
   ============================================================ */
.hero{padding:96px 0 0; position:relative; overflow:hidden}
.hero__grid{display:grid; grid-template-columns:1fr auto; gap:48px; align-items:start}
.hero h1{max-width:15ch}
.hero h1 .quiebre{display:block}
.hero__txt{max-width:54ch; margin-top:34px; font-size:1.16rem; line-height:1.55; color:var(--humo)}
.hero__sello{width:min(300px,30vw); opacity:.95}
.hero__acc{display:flex; gap:14px; flex-wrap:wrap; margin-top:36px}
@media (max-width:860px){ .hero__grid{grid-template-columns:1fr} .hero__sello{width:230px; order:-1} }

/* --- Riel de temporada: el elemento distintivo de la portada --- */
.riel{margin-top:88px; padding-bottom:20px}
.riel__head{display:flex; align-items:baseline; gap:18px; margin-bottom:26px; flex-wrap:wrap}
.riel__head h2{font-size:clamp(1.1rem,1.6vw,1.35rem); letter-spacing:.06em; text-transform:uppercase; font-family:var(--cond); font-weight:700; font-variation-settings:normal}
.riel__scroll{overflow-x:auto; overflow-y:hidden; padding-bottom:8px; scrollbar-width:thin}
.riel__track{
  position:relative; display:grid; grid-auto-flow:column; grid-auto-columns:minmax(158px,1fr);
  min-width:940px; padding-top:30px;
}
.riel__track::before{
  content:""; position:absolute; top:6px; left:0; height:2px; background:var(--linea); width:100%;
}
.riel__track::after{
  content:""; position:absolute; top:6px; left:0; height:2px; background:var(--rojo);
  width:var(--avance,58%); transform-origin:left; animation:trazo 1.5s cubic-bezier(.22,.61,.36,1) both;
}
@keyframes trazo{from{transform:scaleX(0)} to{transform:scaleX(1)}}
.hito{position:relative; padding:22px 16px 0 0; text-decoration:none; color:var(--blanco); display:block}
.hito::before{
  content:""; position:absolute; top:0; left:0; width:13px; height:13px; border-radius:50%;
  background:var(--negro); box-shadow:inset 0 0 0 2px var(--linea); transform:translateY(-1px);
}
.hito.is-hecho::before{box-shadow:inset 0 0 0 2px var(--rojo)}
.hito.is-proximo::before{background:var(--rojo); box-shadow:0 0 0 5px rgba(198,23,24,.28)}
.hito__fecha{font-family:var(--cond); font-weight:700; font-size:1.55rem; line-height:1; letter-spacing:.01em; display:block}
.hito__mes{font-family:var(--cond); font-weight:600; font-size:.78rem; letter-spacing:.14em; text-transform:uppercase; color:var(--humo); display:block; margin-top:5px}
.hito__nom{display:block; margin-top:11px; font-size:.93rem; font-weight:600; line-height:1.24; letter-spacing:-.015em; max-width:16ch}
.hito.is-hecho .hito__nom, .hito.is-hecho .hito__fecha{color:var(--humo)}
.hito.is-proximo .hito__fecha{color:var(--rojo-vivo)}
.hito:hover .hito__nom{color:var(--rojo-vivo)}
.hito__tag{display:inline-block; margin-top:9px; font-family:var(--cond); font-weight:700; font-size:.68rem; letter-spacing:.13em; text-transform:uppercase; color:var(--rojo-vivo)}

/* ---------- Cifras ---------- */
.cifras{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--linea); border-top:1px solid var(--linea); border-bottom:1px solid var(--linea)}
.cifra{background:var(--negro); padding:34px 26px 32px}
.cifra__n{font-family:var(--cond); font-weight:700; font-size:clamp(2.6rem,5vw,3.9rem); line-height:.9; letter-spacing:-.01em}
.cifra__l{margin-top:10px; font-size:.9rem; color:var(--humo); line-height:1.35; max-width:22ch}
@media (max-width:820px){ .cifras{grid-template-columns:repeat(2,1fr)} }

/* ============================================================
   EVENTOS FUTUROS
   ============================================================ */
.cab{display:flex; justify-content:space-between; align-items:flex-end; gap:30px; margin-bottom:44px; flex-wrap:wrap}
.cab p{margin:14px 0 0}
.grid-ev{display:grid; grid-template-columns:repeat(3,1fr); gap:28px}
@media (max-width:1000px){ .grid-ev{grid-template-columns:repeat(2,1fr)} }
@media (max-width:660px){ .grid-ev{grid-template-columns:1fr} }
.ev{
  position:relative; display:flex; flex-direction:column; color:inherit;
  border:1px solid var(--linea); background:var(--negro); transition:border-color .2s ease;
}
.ev:hover{border-color:var(--rojo)}
.ev__img{position:relative; aspect-ratio:4/3; overflow:hidden}
.ev__cuerpo{padding:22px 22px 24px; display:flex; flex-direction:column; flex:1}
.ev__fecha{font-family:var(--cond); font-weight:700; font-size:1.08rem; letter-spacing:.06em; text-transform:uppercase; color:var(--rojo-vivo)}
.ev h3{margin:9px 0 8px}
.ev__lugar{font-size:.9rem; color:var(--humo); margin:0}
.ev__dist{display:flex; gap:7px; margin:18px 0 22px; flex-wrap:wrap}
.ev__dist span{font-family:var(--cond); font-weight:700; font-size:.8rem; letter-spacing:.05em; padding:4px 9px; box-shadow:inset 0 0 0 1px var(--linea); color:var(--humo)}
.ev__acc{margin-top:auto; padding-top:16px; border-top:1px solid var(--linea); display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap}
.ev__sitio{font-size:.88rem; font-weight:700; text-decoration:none; display:inline-flex; align-items:center; gap:8px}
.ev__sitio::after{content:""; position:absolute; inset:0; z-index:1} /* toda la tarjeta lleva al sitio del evento */
.ev:hover .ev__sitio{color:var(--rojo-vivo)}

/* Botón de Instagram por carrera (tarjetas y carrusel) */
.ig{
  position:relative; z-index:2; display:inline-flex; align-items:center; gap:8px; text-decoration:none;
  font-size:.84rem; font-weight:700; letter-spacing:-.01em; padding:9px 14px; color:var(--blanco);
  box-shadow:inset 0 0 0 1px var(--linea); transition:box-shadow .18s, color .18s;
}
.ig:hover{box-shadow:inset 0 0 0 1px var(--rojo); color:var(--rojo-vivo)}
.ig svg{flex:0 0 auto}

/* Marcador de imagen de reemplazo (placeholder) */
.ph{
  position:absolute; inset:0;
  background:
    repeating-linear-gradient(118deg, #0C0C0C 0 22px, #111 22px 44px);
  display:flex; align-items:center; justify-content:center; text-align:center;
}
.ph::before{
  content:""; position:absolute; top:0; bottom:0; left:50%; width:34%;
  background:linear-gradient(118deg, transparent 46%, rgba(198,23,24,.5) 46%, rgba(198,23,24,.5) 54%, transparent 54%);
}
.ph__t{position:relative; font-family:var(--cond); font-weight:700; font-size:.74rem; letter-spacing:.18em; text-transform:uppercase; color:#5C5C5C; padding:8px 14px; box-shadow:inset 0 0 0 1px #2E2E2E; background:rgba(0,0,0,.72)}
.ph--video .ph__t{padding-left:36px}
.ph--video .ph__t::before{
  content:""; position:absolute; left:13px; top:50%; transform:translateY(-50%);
  border-left:11px solid var(--rojo); border-top:7px solid transparent; border-bottom:7px solid transparent;
}

/* ============================================================
   CARRUSEL — EVENTOS PASADOS
   ============================================================ */
.carr{position:relative}
.carr__vista{overflow:hidden}
.carr__pista{display:flex; transition:transform .55s cubic-bezier(.4,.02,.2,1)}
.slide{flex:0 0 100%; min-width:0; display:grid; grid-template-columns:minmax(0,1.35fr) minmax(0,1fr); gap:0; align-items:stretch}
@media (max-width:880px){ .slide{grid-template-columns:minmax(0,1fr)} }
.slide__img{position:relative; width:100%; min-width:0; aspect-ratio:16/10; min-height:320px}
.slide__txt{min-width:0; background:#0A0A0A; padding:44px 42px; display:flex; flex-direction:column; justify-content:center; border:1px solid var(--linea); border-left:0}
@media (max-width:880px){ .slide__txt{border-left:1px solid var(--linea); border-top:0; padding:34px 26px} }
.slide__meta{display:flex; gap:16px; align-items:center; margin-bottom:16px; flex-wrap:wrap}
.slide__fecha{font-family:var(--cond); font-weight:700; font-size:.95rem; letter-spacing:.11em; text-transform:uppercase; color:var(--rojo-vivo)}
.slide__sep{width:24px; height:1px; background:var(--linea)}
.slide__ciudad{font-size:.88rem; color:var(--humo)}
.slide p{color:var(--humo); font-size:1rem; margin:16px 0 0; max-width:44ch}
.slide__nums{display:flex; flex-wrap:wrap; gap:16px 30px; margin-top:26px; padding-top:22px; border-top:1px solid var(--linea)}
.slide__num b{font-family:var(--cond); font-weight:700; font-size:1.7rem; display:block; line-height:1}
.slide__num span{font-size:.78rem; color:var(--humo); display:block; margin-top:5px}
.slide__acc{margin-top:26px; display:flex; gap:12px; flex-wrap:wrap}
.carr__ctrl{display:flex; align-items:center; gap:12px; margin-top:26px}
.carr__btn{
  width:50px; height:50px; border:1px solid var(--linea); background:transparent; color:var(--blanco);
  cursor:pointer; display:grid; place-items:center; transition:border-color .18s, color .18s;
}
#pasados .carr__btn:is(:hover,:focus){border-color:var(--rojo); background:var(--rojo); color:var(--blanco)}
.carr__puntos{display:flex; gap:8px; margin-left:14px}
.carr__punto{width:26px; height:3px; background:var(--linea); border:0; padding:0; cursor:pointer}
#pasados .carr__punto:is(.is-on,:hover,:focus){background:var(--rojo)}
.carr__cuenta{margin-left:auto; font-family:var(--cond); font-weight:700; letter-spacing:.08em; color:var(--humo); font-size:.95rem}

/* ============================================================
   MANIFIESTO — MISIÓN / VISIÓN / PROPÓSITO
   ============================================================ */
.proposito{margin:0 0 8px; max-width:19ch; font-size:clamp(2.4rem,5.6vw,4.6rem)}
.proposito{display:block}
.proposito svg{display:inline-block; vertical-align:-.06em; width:.72em; height:.72em; margin-left:.16em; color:var(--rojo)}
.firma{display:flex; align-items:center; gap:14px; margin-top:28px; color:#5A5A5A; font-size:.9rem}
.firma__l{width:60px; height:1px; background:var(--rojo)}
.mv{display:grid; grid-template-columns:1fr 1fr; gap:0; margin-top:78px; border-top:1px solid var(--linea-inv)}
@media (max-width:800px){ .mv{grid-template-columns:1fr} }
.mv__col{padding:40px 44px 44px 0; border-right:1px solid var(--linea-inv)}
.mv__col:last-child{padding-right:0; padding-left:44px; border-right:0}
@media (max-width:800px){
  .mv__col{padding:34px 0; border-right:0; border-bottom:1px solid var(--linea-inv)}
  .mv__col:last-child{padding-left:0; border-bottom:0}
}
.mv__col h3{margin-bottom:16px}
.mv__col p{font-size:1.05rem; line-height:1.55; color:#333; max-width:46ch}
.mv__corto{margin-top:18px; padding-left:18px; border-left:2px solid var(--rojo); font-size:1rem; color:var(--negro); font-weight:600}

.adn{margin-top:78px}
.adn__lista{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--linea-inv); margin-top:32px; border:1px solid var(--linea-inv)}
@media (max-width:900px){ .adn__lista{grid-template-columns:repeat(2,1fr)} }
@media (max-width:560px){ .adn__lista{grid-template-columns:1fr} }
.adn__item{background:var(--blanco); padding:28px 26px 30px}
.adn__item h4{font-size:1.12rem; margin-bottom:9px}
.adn__item h4::first-letter{color:var(--rojo)}
.adn__item p{font-size:.94rem; color:#4A4A4A; margin:0; line-height:1.5}

.pilares{margin-top:78px}
.pilar{border-top:1px solid var(--linea-inv)}
.pilar:last-child{border-bottom:1px solid var(--linea-inv)}
.pilar__btn{
  width:100%; background:none; border:0; cursor:pointer; text-align:left; font-family:var(--sans);
  display:grid; grid-template-columns:auto 1fr auto; gap:24px; align-items:center; padding:26px 4px; color:var(--negro); border-radius:0;
}
#nosotros .pilar__btn[aria-expanded="false"]:is(:hover,:focus){background:transparent; color:var(--negro)}
#nosotros .pilar__btn[aria-expanded="true"]{background:var(--rojo); color:var(--blanco)}
#nosotros .pilar__btn[aria-expanded="true"] .pilar__n{color:inherit}
.pilar__n{font-family:var(--cond); font-weight:700; font-size:1.05rem; color:var(--rojo); letter-spacing:.06em}
.pilar__t{font-size:clamp(1.15rem,2.3vw,1.65rem); font-weight:800; font-variation-settings:'wdth' 108,'wght' 800; letter-spacing:-.028em; line-height:1.1}
.pilar__mas{width:22px; height:22px; position:relative; flex:0 0 auto}
.pilar__mas::before,.pilar__mas::after{content:""; position:absolute; background:currentColor; transition:transform .25s ease}
.pilar__mas::before{top:10px; left:0; width:22px; height:2px}
.pilar__mas::after{left:10px; top:0; width:2px; height:22px}
.pilar__btn[aria-expanded="true"] .pilar__mas::after{transform:scaleY(0)}
.pilar__cont{display:none; padding:0 4px 34px 60px; max-width:74ch}
.pilar__cont.is-open{display:block}
.pilar__cont p{color:#4A4A4A; font-size:1rem}
.pilar__cont .mini{display:block; margin-bottom:8px}
@media (max-width:640px){ .pilar__cont{padding-left:0} .pilar__btn{gap:14px} }

/* ============================================================
   LA RUTA — 4 artículos rotativos
   ============================================================ */
.ruta{display:grid; grid-template-columns:1.25fr 1fr; gap:48px; align-items:start}
@media (max-width:900px){ .ruta{grid-template-columns:1fr; gap:36px} }
.ruta__lista{display:flex; flex-direction:column; gap:30px}
.post{display:flex; flex-direction:column; text-decoration:none; color:inherit; border-top:2px solid var(--linea); padding-top:20px; transition:border-color .2s}
.post:hover{border-color:var(--rojo)}
.post--dest{border-top:0; padding-top:0}
.post__img{position:relative; aspect-ratio:16/10; margin-bottom:24px; border-top:2px solid var(--linea); transition:border-color .2s}
.post--dest:hover .post__img{border-color:var(--rojo)}
.post__fecha{font-family:var(--cond); font-weight:700; font-size:.8rem; letter-spacing:.1em; text-transform:uppercase; color:var(--rojo-vivo)}
.post h3{margin:10px 0 10px; font-size:1.28rem}
.post--dest h3{font-size:clamp(1.55rem,2.7vw,2.15rem); line-height:1.06; margin:12px 0 14px}
.post:hover h3{color:var(--rojo-vivo)}
.post__bajada{font-size:.95rem; color:var(--humo); margin:0 0 20px; line-height:1.5}
.post--dest .post__bajada{font-size:1.05rem; max-width:52ch}
.post__autor{margin-top:auto; padding-top:16px; border-top:1px solid var(--linea); display:flex; gap:12px; align-items:center}
.post__ini{width:38px; height:38px; flex:0 0 auto; display:grid; place-items:center; background:var(--rojo); font-family:var(--cond); font-weight:700; font-size:.95rem}
.post__autor>span{min-width:0}
.post__nom{display:block; font-size:.87rem; font-weight:700; line-height:1.25}
.post__rol{display:block; font-size:.79rem; color:var(--humo); line-height:1.25}
.post__tiempo{margin-left:auto; white-space:nowrap; font-family:var(--cond); font-weight:600; font-size:.8rem; color:var(--humo); letter-spacing:.06em}

/* ============================================================
   PRENSA — archivo de comunicados
   ============================================================ */
.prensa{display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:64px; align-items:start}
@media (max-width:980px){ .prensa{grid-template-columns:minmax(0,1fr); gap:48px} }
.prensa__filtros{display:flex; gap:24px; align-items:flex-end; flex-wrap:wrap; margin-bottom:18px}
.prensa__filtros .campo{margin:0; flex:1 1 200px; max-width:280px}
.prensa__cuenta{margin:0 0 12px auto; font-size:.88rem; color:var(--humo)}
.cp-lista{list-style:none; margin:0 0 28px; padding:0; border-top:1px solid var(--linea)}
.cp{position:relative; display:grid; grid-template-columns:118px minmax(0,1fr) auto; gap:24px; align-items:center; padding:20px 0; border-bottom:1px solid var(--linea)}
.cp.is-oculto{display:none}
.cp__fecha{font-family:var(--cond); font-weight:700; font-size:.92rem; letter-spacing:.06em; text-transform:uppercase; color:var(--humo); font-feature-settings:'tnum'; white-space:nowrap}
.cp__ev{display:block; font-size:.82rem; font-weight:600; color:var(--rojo-vivo); margin-bottom:5px}
.cp__t{margin:0; font-size:1.08rem; line-height:1.3; letter-spacing:-.015em; font-variation-settings:'wdth' 100,'wght' 700}
.cp__t a{text-decoration:none}
.cp__t a::after{content:""; position:absolute; inset:0}
.cp:hover .cp__t a{color:var(--rojo-vivo)}
.cp__pdf{
  position:relative; z-index:1; display:inline-flex; align-items:center; gap:7px; text-decoration:none;
  font-family:var(--cond); font-weight:700; font-size:.82rem; letter-spacing:.08em; padding:8px 12px;
  box-shadow:inset 0 0 0 1px var(--linea); color:var(--humo); transition:.18s;
}
.cp__pdf:hover{box-shadow:inset 0 0 0 1px var(--rojo); color:var(--rojo-vivo)}
@media (max-width:600px){
  .cp{grid-template-columns:minmax(0,1fr) auto; gap:8px 16px}
  .cp__fecha{grid-column:1 / -1}
}
.cp-vacio{padding:26px 0; color:var(--humo); margin:0}
.prensa__aside{border:1px solid var(--linea)}
.prensa__bloque{padding:28px 28px 30px}
.prensa__bloque + .prensa__bloque{border-top:1px solid var(--linea)}
.prensa__bloque h3{font-size:1.15rem; margin-bottom:10px}
.prensa__bloque p{color:var(--humo); font-size:.93rem; margin:0 0 16px; line-height:1.5}
.prensa__bloque .canal__v{font-size:1.02rem}

/* ============================================================
   BANDA MARCAS
   ============================================================ */
.banda{background:var(--rojo); color:var(--blanco); padding:70px 0}
.banda__in{display:grid; grid-template-columns:1.5fr 1fr; gap:44px; align-items:center}
@media (max-width:820px){ .banda__in{grid-template-columns:1fr} }
.banda h2{max-width:17ch}
.banda p{margin:18px 0 0; font-size:1.08rem; max-width:48ch; color:rgba(255,255,255,.86)}
.banda .btn{background:var(--negro)}
.banda .btn:hover{background:var(--blanco); color:var(--negro)}

/* ============================================================
   CONTACTO
   ============================================================ */
.cto{display:grid; grid-template-columns:1.25fr 1fr; gap:76px}
@media (max-width:900px){ .cto{grid-template-columns:1fr; gap:52px} }
.campo{margin-bottom:22px}
.campo label{display:block; font-family:var(--cond); font-weight:600; font-size:.84rem; letter-spacing:.1em; text-transform:uppercase; color:var(--humo); margin-bottom:9px}
.campo input,.campo select,.campo textarea{
  width:100%; background:transparent; border:0; border-bottom:1px solid var(--linea); color:var(--blanco);
  font-family:var(--sans); font-size:1rem; padding:12px 0; transition:border-color .18s;
}
.campo select{appearance:none; background-image:linear-gradient(45deg,transparent 50%,var(--humo) 50%),linear-gradient(135deg,var(--humo) 50%,transparent 50%); background-position:calc(100% - 12px) 22px,calc(100% - 7px) 22px; background-size:5px 5px,5px 5px; background-repeat:no-repeat; cursor:pointer}
.campo select option{background:var(--negro)}
.campo textarea{resize:vertical; min-height:110px; line-height:1.55}
.campo input:focus,.campo select:focus,.campo textarea:focus{border-color:var(--rojo); outline:none}
.campo input::placeholder,.campo textarea::placeholder{color:#4C4C4C}
.campo.is-mal input,.campo.is-mal textarea,.campo.is-mal select{border-color:var(--rojo-vivo)}
.campo__error{display:none; margin-top:7px; font-size:.82rem; color:var(--rojo-vivo)}
.campo.is-mal .campo__error{display:block}
.dos{display:grid; grid-template-columns:1fr 1fr; gap:24px}
@media (max-width:560px){ .dos{grid-template-columns:1fr} }
.legal{font-size:.82rem; color:#5C5C5C; margin:6px 0 22px; max-width:46ch}
.legal a{color:var(--humo)}
.ok{display:none; padding:26px; box-shadow:inset 0 0 0 1px var(--rojo); margin-top:8px}
.ok.is-on{display:block}
.ok b{display:block; font-size:1.15rem; margin-bottom:7px}
.ok p{margin:0; color:var(--humo); font-size:.95rem}

.canal{border-top:1px solid var(--linea); padding:22px 0}
.canal:first-of-type{border-top:0; padding-top:0}
.canal__t{font-size:.84rem; color:var(--humo); margin:0 0 6px}
.canal__v{font-size:1.12rem; font-weight:700; text-decoration:none; letter-spacing:-.02em}
.canal__v:hover{color:var(--rojo-vivo)}
.rrss{display:flex; gap:10px; flex-wrap:wrap; margin-top:14px}
.rrss a{
  display:grid; place-items:center; width:46px; height:46px; box-shadow:inset 0 0 0 1px var(--linea);
  color:var(--blanco); transition:.18s;
}
.rrss a:hover{box-shadow:inset 0 0 0 1px var(--rojo); color:var(--rojo-vivo)}

/* ============================================================
   PIE
   ============================================================ */
.pie{border-top:1px solid var(--linea); padding:64px 0 40px}
.pie__top{display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:44px; align-items:start}
@media (max-width:800px){ .pie__top{grid-template-columns:1fr 1fr; gap:34px} }
@media (max-width:520px){ .pie__top{grid-template-columns:1fr} }
.pie__logo img{height:26px; margin-bottom:20px}
.pie__claim{width:210px; opacity:.8; margin-top:22px}
.pie h4{font-family:var(--cond); font-weight:700; font-size:.85rem; letter-spacing:.13em; text-transform:uppercase; color:var(--humo); margin-bottom:16px}
.pie ul{list-style:none; margin:0; padding:0}
.pie li{margin-bottom:11px}
.pie li a{font-size:.94rem; text-decoration:none}
.pie li a:hover{color:var(--rojo-vivo)}
.pie__bcorp{margin-top:26px; font-size:.85rem; color:var(--humo); max-width:30ch; padding-left:15px; border-left:2px solid var(--rojo)}
.pie__bajo{margin-top:54px; padding-top:24px; border-top:1px solid var(--linea); display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap; font-size:.82rem; color:#5C5C5C}

/* Aviso de prototipo */
.aviso{background:#111; border-bottom:1px solid var(--linea); font-size:.82rem; color:var(--humo); padding:11px 0; text-align:center}
.aviso b{color:var(--blanco); font-weight:700}
.sr{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap}
.saltar{position:absolute; left:-999px; top:0; background:var(--rojo); color:#fff; padding:12px 18px; z-index:200}
.saltar:focus{left:0}

/* ============================================================
   FOTOS Y VIDEOS REALES
   Reemplazan al bloque .ph dentro de cada contenedor.
   ============================================================ */
.ev__img > img,
.slide__img > img,
.slide__img > video,
.slide__img > iframe,
.post__img > img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; border:0; display:block}

/* Logos con width/height en el HTML: el alto lo define el diseño */
.nav__logo img, .pie__logo img, .hero__sello, .pie__claim{height:auto}
.nav__logo img{height:23px; width:auto}
.pie__logo img{height:26px; width:auto}

/* Error de envío del formulario */
.form-error{margin:16px 0 0; padding:14px 16px; box-shadow:inset 0 0 0 1px var(--rojo-vivo); color:var(--blanco); font-size:.92rem}

/* Mantiene las secciones de Elementor editables sin añadir márgenes al diseño. */
body.prokart-home { margin: 0; }
.prokart-home .prokart-section-wrap { padding: 0; margin: 0; gap: 0; }
.prokart-home:not(.elementor-editor-active) .prokart-section-wrap:has(.elementor-widget-prokart_cabecera) {
  position: sticky;
  top: 0;
  z-index: 80;
}
.prokart-home.admin-bar:not(.elementor-editor-active) .prokart-section-wrap:has(.elementor-widget-prokart_cabecera) {
  top: var(--wp-admin--admin-bar--height, 32px);
}
.prokart-home .elementor-widget-prokart_cabecera .nav { position: relative; }
.prokart-home .elementor-widget-prokart_cabecera .aviso { position: relative; z-index: 1; }
.prokart-home .nav__burger:hover, .prokart-home .nav__burger:focus { background: transparent; }
.prokart-home .prokart-trampa { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.prokart-home #carrusel:has(#total:empty), .prokart-home #carrusel:has(#pista:empty) { display: none; }
.prokart-home a[aria-disabled="true"] { cursor: default; }
.prokart-home .elementor-widget-prokart_portada .hero__sello { width: min(300px,30vw); }
@media (max-width:860px) {
  .prokart-home .elementor-widget-prokart_portada .hero__sello { width: 230px; }
}
.prokart-home .prokart-cookies[hidden] { display: none; }
.prokart-home .prokart-cookies {
  position: fixed; z-index: 95; inset: auto 20px 20px; max-width: 960px; margin: auto;
  padding: 20px 24px; background: var(--negro); color: var(--blanco);
  border: 1px solid var(--linea); border-top: 2px solid var(--rojo);
  display: flex; justify-content: space-between; align-items: center; gap: 16px; box-shadow: 0 4px 28px #0008;
}
.prokart-home .prokart-cookies p { margin: 6px 0 0; color: var(--humo); font-size: .92rem; }
.prokart-home .prokart-cookies a { text-decoration: underline; }
.prokart-home .prokart-cookies__actions { display: flex; flex-wrap: wrap; gap: 8px; flex-shrink: 0; }
.prokart-home .prokart-cookies-link { font: inherit; color: inherit; background: none; padding: 0; border: 0; cursor: pointer; }
.prokart-home .prokart-cookies-link:hover { color: var(--rojo-vivo); }
@media (max-width: 740px) {
  .prokart-home .prokart-cookies { flex-direction: column; align-items: start; inset: auto 12px 12px; padding: 14px; }
  .prokart-home .prokart-cookies__actions { flex-shrink: 1; }
  .prokart-home .prokart-cookies__actions .btn { font-size: .83rem; padding: 10px 12px; }
}
html:has(body.prokart-home .aviso) { scroll-padding-top: 110px; }
@media (max-width: 900px) {
  .prokart-home .nav__links { position: absolute; top: 100%; }
}

/* Calendario descargable y suscripción a las próximas carreras. */
.calendario-acciones { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 10px; min-width: 0; }
.calendario-suscripcion { position: relative; min-width: 0; }
.calendario-suscripcion > summary { list-style: none; cursor: pointer; }
.calendario-suscripcion > summary::-webkit-details-marker { display: none; }
.calendario-suscripcion__panel {
  position: absolute; z-index: 3; inset: calc(100% + 10px) 0 auto auto;
  width: min(400px, calc(100vw - 56px)); padding: 18px; background: #111;
  border: 1px solid #2b2b2b; box-shadow: 0 10px 28px #0009;
}
.calendario-suscripcion__panel p { margin: 0 0 12px; color: var(--humo); font-size: .9rem; }
.calendario-suscripcion__panel > a { margin-bottom: 12px; }
.calendario-suscripcion__url { display: flex; flex-wrap: wrap; gap: 8px; }
.calendario-suscripcion__url input {
  flex: 1 1 175px; min-width: 0; max-width: 100%; background: #000; color: #fff;
  border: 1px solid #555; border-radius: 0; font: inherit; font-size: .85rem; padding: 8px;
}
.calendario-suscripcion__url button[hidden] { display: none; }
.calendario-suscripcion__url button { padding: 8px 12px; }
.ev__aviso { color: var(--humo); font-size: .88rem; margin: 0 0 14px; }
@media (max-width: 760px) {
  .calendario-acciones { width: 100%; }
  .calendario-suscripcion { max-width: 100%; }
  .calendario-suscripcion__panel { position: static; width: auto; margin-top: 10px; box-shadow: none; }
}
@media (max-width: 767px) {
  #nosotros .pilar__btn { grid-template-columns: auto minmax(0, 1fr) auto; }
  #nosotros .pilar__btn .pilar__t { min-width: 0; white-space: normal; overflow-wrap: anywhere; }
}
@media (max-width: 400px) {
  .hero__grid { grid-template-columns: minmax(0, 1fr); }
  .hero__grid > * { min-width: 0; max-width: 100%; }
  .hero h1 { font-size: clamp(2.25rem, 12vw, 2.9rem); overflow-wrap: anywhere; }
  .cifras { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cifra { min-width: 0; padding-inline: clamp(8px, 4vw, 17px); }
  .cifra__n { font-size: clamp(1.8rem, 10vw, 2.6rem); }
  .cifra__l { overflow-wrap: anywhere; }
  .carr__ctrl { flex-wrap: wrap; gap: 8px; }
  .carr__btn { width: 44px; height: 44px; }
  .carr__puntos { min-width: 0; margin-left: 4px; gap: 5px; flex-wrap: wrap; }
  .carr__punto { width: 18px; }
}
