/* Variante clara de Inscripción. Adaptación móvil/tablet propuesta. */
.registration-page { background:#fff; color:#151610; --focus-color:#436126; }
.registration-page .site-header { color:#151610; }
.registration-page .main-nav .button--red { color:#fff; }
.registration-page .race-nav__links { color:#fff; }
.registration-page .skip-link,.registration-page .notice { color:#fff; }
.registration-container { width:calc(100% - 80px); max-width:1600px; margin-inline:auto; }
.registration-hero { aspect-ratio:1441/555; overflow:hidden; }
.registration-hero img { width:100%; height:100%; object-fit:cover; }
.registration-intro { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:40px; padding-top:70px; padding-bottom:80px; }
.registration-intro h1 { font-size:54px; font-weight:400; line-height:1.05; }
.registration-copy { max-width:580px; font-size:18px; line-height:1.4; }
.registration-copy p+p { margin-top:26px; }
.registration-announcement { border:1px solid #91948a; background:#f5f5f0; padding:60px 32px; text-align:center; }
.registration-announcement p { max-width:680px; margin-inline:auto; font-size:24px; line-height:1.4; }
.registration-actions { display:flex; flex-wrap:wrap; gap:24px; margin-top:55px; }
.registration-page main .button--outline { border-color:currentColor; }
.registration-page main button:disabled { opacity:.7; }
.registration-page main .button:disabled:hover { background:transparent; }
.registration-steps { padding-top:170px; padding-bottom:90px; }
.registration-eyebrow { font:400 16px/1.4 var(--font-body); text-transform:uppercase; }
.registration-sequence { --step-gap:50px; --connector-size:50px; list-style:none; margin:100px 0 0; padding:0; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.65fr) minmax(0,1.55fr) minmax(0,1.5fr); gap:var(--step-gap); }
.registration-sequence li { position:relative; min-width:0; text-align:center; }
/* Conector decorativo entre pasos, según inscripcion.pdf; no es un control. */
.registration-sequence li+li::before {
  content:""; position:absolute;
  left:calc((var(--step-gap) + var(--connector-size)) / -2); top:12px;
  width:var(--connector-size); height:var(--connector-size);
  background-color:currentColor;
  -webkit-mask:url("../Iconos/flecha-pasos-inscripcion.svg") center / contain no-repeat;
  mask:url("../Iconos/flecha-pasos-inscripcion.svg") center / contain no-repeat;
  pointer-events:none;
}
.registration-sequence__number { font-family:var(--font-sans); font-weight:700; font-size:16px; margin-bottom:10px; }
/* Excepción del esquema según captura 17h26_51: Antonio 36/43.2.
   La pauta general 55/64 sigue vigente en el resto de títulos interiores.
   Especificidad limitada al componente para evitar que esa pauta lo sobrescriba. */
body.registration-page main .registration-sequence h3.display-heading { font-size:36px; font-weight:400; line-height:1.2; margin-bottom:12px; }
.registration-sequence time { white-space:normal; overflow-wrap:break-word; }
.registration-step-info { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:40px; padding-top:190px; padding-bottom:100px; }
.registration-step-info .registration-copy { grid-column:2; }
.registration-closed { border-top:1px solid #777b72; }
.registration-closed h3 { font:400 28px/1.3 var(--font-body); }
.registration-closed button { display:grid; grid-template-columns:200px minmax(0,1fr) 25px; gap:26px; width:100%; align-items:baseline; padding:30px 0; text-align:left; font:inherit; }
.registration-closed button>span:first-child { font-size:18px; }
.registration-charity { position:relative; min-height:751px; display:flex; align-items:center; }
.registration-charity__photo { position:absolute; inset:0; overflow:hidden; }
.registration-charity__photo img { position:absolute; width:131.25%; max-width:none; height:167.70%; left:-31.13%; top:-26.44%; object-fit:cover; }
.registration-charity__content { position:relative; width:36%; margin-left:59.5%; padding-block:65px; }
.registration-charity h2 { font-size:64px; line-height:1.1; }
.registration-charity__content>p { font-size:20px; line-height:1.35; max-width:450px; margin-top:26px; }
.registration-charity .button { margin-top:25px; }
/* Mismo pie, con recursos monocromos y contraste para el fondo blanco. */
.registration-page .footer-subscribe__brand,.registration-page .organizer>img { filter:brightness(0); }
.registration-page .organizer p { border-color:#151610; }
.registration-page .subscribe-form { border-color:#555; }
.registration-page .subscribe-form input::placeholder { color:#555; }
.registration-page .subscribe-form button { color:#fff; border-left-color:#555; }
.registration-page .footer-subscribe .subscribe-note { color:#555; }
@media(min-width:1600px) {
  .registration-charity { min-height:52.12vw; }
}
@media(max-width:1100px) {
  .registration-container { width:calc(100% - 48px); }
  .registration-hero { min-height:390px; }
  .registration-page .main-nav { color:#fff; }
  .registration-page .menu-toggle { color:#fff; text-shadow:0 1px 4px #000; }
  .registration-intro { gap:30px; padding-block:55px; }
  .registration-intro h1 { font-size:48px; }
  .registration-copy { font-size:17px; }
  .registration-steps { padding-top:100px; }
  .registration-sequence { --step-gap:48px; --connector-size:48px; margin-top:65px; }
  body.registration-page main .registration-sequence h3.display-heading { font-size:30px; }
  .registration-step-info { padding-top:100px; padding-bottom:65px; }
  .registration-closed button { grid-template-columns:120px minmax(0,1fr) 25px; gap:20px; }
  .registration-charity { min-height:620px; }
  .registration-charity__content { width:43%; margin-left:54%; }
  .registration-charity h2 { font-size:48px; }
  .registration-charity__content>p { font-size:18px; }
}
@media(max-width:600px) {
  .registration-hero { aspect-ratio:auto; height:420px; min-height:0; }
  .registration-hero img { object-position:43% center; }
  .registration-intro { grid-template-columns:minmax(0,1fr); padding-block:45px; gap:28px; }
  .registration-intro h1 { font-size:44px; }
  .registration-announcement { padding:36px 24px; }
  .registration-announcement p { font-size:21px; }
  .registration-actions { flex-direction:column; align-items:stretch; gap:16px; margin-top:30px; }
  .registration-actions .button { width:100%; }
  .registration-steps { padding-top:75px; padding-bottom:55px; }
  .registration-sequence { --step-gap:88px; --connector-size:64px; grid-template-columns:minmax(0,1fr); margin-top:45px; }
  body.registration-page main .registration-sequence h3.display-heading { font-size:32px; }
  .registration-sequence li+li::before { top:calc((var(--step-gap) + var(--connector-size)) / -2); left:50%; transform:translateX(-50%) rotate(45deg); }
  .registration-step-info { display:block; padding-top:65px; padding-bottom:45px; }
  .registration-closed h3 { font-size:22px; }
  .registration-closed button { grid-template-columns:minmax(0,1fr) 22px; gap:12px; padding-block:25px; }
  .registration-closed button>span:first-child { grid-column:1/-1; font-size:16px; }
  .registration-charity { display:block; min-height:0; }
  .registration-charity__photo { position:relative; height:330px; }
  .registration-charity__photo img { width:100%; height:100%; inset:0; object-fit:cover; object-position:35% center; }
  .registration-charity__content { width:auto; margin:0; padding:40px 24px 50px; }
  .registration-charity h2 { font-size:44px; }
  .registration-charity__content>p { font-size:18px; }
}

/* Mantener la portada dentro del viewport cuando actúa min-height en tablet. */
.registration-hero { width:100%; }
.registration-steps>.excel-disclosure:first-of-type { margin-top:64px; }
.registration-embed { display:block; width:100%; min-height:70vh; border:0; margin-block:32px; }
/* El pie aprobado es compartido también en la página clara. */
.registration-page .site-footer { background:var(--color-deep); color:#fff; }
.registration-page .footer-subscribe__brand,.registration-page .organizer>img { filter:none; }
.registration-page .organizer p { border-color:#fff; }
/* En tablet también se apilan: el conector conserva espacio propio sin estrechar los títulos. */
@media(min-width:601px) and (max-width:1000px) {
  .registration-sequence { --step-gap:88px; --connector-size:64px; grid-template-columns:minmax(0,1fr); }
  .registration-sequence li+li::before { top:calc((var(--step-gap) + var(--connector-size)) / -2); left:50%; transform:translateX(-50%) rotate(45deg); }
}

/* Ajustes confirmados en capturas 17h26: composición editorial, no panel de Figma. */
.registration-intro .registration-actions { flex-direction:column; align-items:flex-start; margin-top:44px; gap:16px; }
.registration-page main .button--red { color:#fff; }
.registration-steps { padding-top:50px; }
.registration-disclosure { position:relative; }
.registration-disclosure>summary { display:grid; grid-template-columns:minmax(90px,1fr) minmax(0,2fr) minmax(0,3fr); gap:24px; font:400 28px/1.3 var(--font-body); align-items:start; padding-right:42px; }
.registration-disclosure .registration-step-number { font:400 16px/1.5 var(--font-body); padding-top:5px; }
.registration-page main .registration-disclosure>summary::after { position:absolute; right:0; top:30px; }
.registration-disclosure>div { max-width:none; margin-left:50%; padding:0 50px 0 0; margin-top:-36px; min-height:36px; font-size:18px; }
.registration-disclosure>div p:last-child { margin-bottom:0; }
.registration-disclosure[open] { padding-bottom:48px; }
@media(max-width:1000px) {
 .registration-disclosure>summary { grid-template-columns:90px minmax(0,1fr); font-size:24px; }
 .registration-disclosure>div { margin:24px 0 0 114px; padding-right:0; }
}
@media(max-width:600px) {
 .registration-steps { padding-top:30px; }
 .registration-disclosure>summary { grid-template-columns:minmax(0,1fr); gap:12px; }
 .registration-disclosure>div { margin:24px 0 0; font-size:17px; }
 .registration-intro .registration-actions { align-items:stretch; }
}
