/*
Theme Name: GeneratePress Child — CEU 15K
Theme URI:
Description: Child theme de GeneratePress para la web CEU Sevilla 15K Experience. Diseño portado del sitio estático, contenido editable con bloques.
Author: Algenio
Template: generatepress
Version: 1.0.0
Text Domain: generatepress-child-ceu15k
*/

:root{
  --color-bg-dark:#14171a; --color-cyan:#00f6ff; --color-blue:#004aad; --color-blue-dark:#003b8a;
  --color-light-blue:#e6f5ff; --color-off-white:#f9fafc; --color-white:#ffffff;
  --color-text-dark:#18253b; --color-text-muted:#5b6b82; --color-border:#e3e8ef;
  --font-heading:'Zalando Sans Expanded','Arial Narrow',sans-serif;
  --font-body:'Inter','Segoe UI',sans-serif;
  --container-width:1280px; --radius-lg:28px; --radius-md:16px; --radius-full:999px;
}
/* Base sobre GeneratePress */
body{ font-family:var(--font-body); color:var(--color-text-dark); background:var(--color-off-white); -webkit-font-smoothing:antialiased; }
.ceu-hero-title, .ceu-hero-sub, h1, h2, h3{ font-family:var(--font-heading); line-height:1.1; }
.ceu-container{ width:100%; max-width:var(--container-width); margin:0 auto; padding:0 24px; }

.ceu-btn .wp-block-button__link{ display:inline-flex; align-items:center; justify-content:center; gap:8px; font-family:var(--font-body);
  font-weight:700; font-size:.95rem; letter-spacing:.02em; text-transform:uppercase; padding:15px 30px;
  border-radius:var(--radius-full); border:none; cursor:pointer; text-decoration:none;
  transition:transform .15s ease, box-shadow .15s ease, background .15s ease; white-space:nowrap; }
.ceu-btn .wp-block-button__link:hover{ transform:translateY(-2px); }
.ceu-btn-lg .wp-block-button__link{ font-size:clamp(.85rem,1.56vw,1.28rem); padding:clamp(12px,1.6vw,23px) clamp(22px,3vw,44px); }
.ceu-btn-cyan .wp-block-button__link{ background:var(--color-cyan); color:var(--color-blue); }
.ceu-btn-cyan .wp-block-button__link:hover{ box-shadow:0 8px 24px rgba(0,246,255,.35); }
.ceu-btn-blue .wp-block-button__link{ background:var(--color-blue); color:var(--color-white); }
.ceu-btn-blue .wp-block-button__link:hover{ box-shadow:0 8px 24px rgba(0,74,173,.3); }
.ceu-btn-outline .wp-block-button__link{ background:#eceef1; color:var(--color-text-dark); }
.ceu-btn-outline .wp-block-button__link:hover{ background:#e1e4e9; }
.ceu-eyebrow{ font-family:var(--font-heading); font-weight:700; letter-spacing:.12em; text-transform:uppercase;
  font-size:.85rem; color:var(--color-blue); }

/* ---------------------------------------------------------------------- */
/* Cabecera transparente sobre el hero (GeneratePress)                     */
/* Requiere Personalizador -> Layout -> Primary Navigation ->              */
/* Navigation Location = "Float Right" (nav dentro de .inside-header).     */
/* Selectores reales confirmados en inc/structure/*.php:                   */
/*   #masthead.site-header > .inside-header                                */
/*   .site-logo img.header-image.is-logo-image                             */
/*   nav#site-navigation.main-navigation > .inside-navigation >            */
/*     #primary-menu.main-nav ul li a                                      */
/* ---------------------------------------------------------------------- */
.ceu-has-hero .site-header{ position:absolute; top:0; left:0; right:0; z-index:50; background:transparent!important;
  padding-top:clamp(14px,1.7vw,24px); }
.ceu-has-hero .site-header .inside-header{ position:relative; display:flex; align-items:center; justify-content:space-between;
  max-width:1440px; margin:0 auto;
  padding-left:clamp(20px,6.6vw,95px); padding-right:clamp(20px,4.9vw,70px);
  padding-bottom:clamp(16px,2vw,28px); }
.ceu-has-hero .site-header .inside-header::after{ content:''; position:absolute; left:-100vw; right:-100vw; bottom:0;
  border-bottom:1px solid rgba(255,255,255,.22); }
.ceu-has-hero .site-logo img, .ceu-has-hero .header-image{ width:clamp(30px,3.15vw,45px); height:auto; }

/* Menú centrado y blanco (nav dentro de la cabecera vía "Float Right") */
.ceu-has-hero .main-navigation{ position:absolute; left:50%; top:clamp(4px,0.7vw,10px); transform:translateX(-50%);
  background:transparent; width:max-content; max-width:min(78vw,900px); }
.ceu-has-hero .main-navigation .inside-navigation{ background:transparent; }
.ceu-has-hero .main-navigation .main-nav ul li a{ color:#fff; font-family:var(--font-body); font-weight:500;
  font-size:clamp(.8rem,1.1vw,1rem); text-transform:none; opacity:.95; }
.ceu-has-hero .main-navigation .main-nav ul li a:hover{ opacity:1; text-decoration:underline; background:transparent; color:#fff; }
/* Toggle móvil de GP: mantenerlo visible sobre el hero oscuro (no se toca su funcionalidad JS) */
.ceu-has-hero .main-navigation .menu-toggle{ color:#fff; background:transparent; }
.ceu-has-hero .main-navigation .menu-toggle .gp-icon path,
.ceu-has-hero .main-navigation .menu-toggle .gp-icon rect{ fill:#fff; stroke:#fff; }

/* Móvil: deshacer el centrado absoluto para que .main-navigation vuelva al flujo
   normal del layout apilado nativo de GP (evita que el nav/.menu-toggle se
   superponga al logo). No se tocan las reglas de GP que muestran/ocultan
   .menu-toggle o colapsan .main-nav ul — eso sigue siendo 100% de GP. */
@media (max-width:768px){
  .ceu-has-hero .main-navigation{ position:static; transform:none; width:auto; max-width:none; }
}

/* ---------------------------------------------------------------------- */
/* Pie — base (detalle de columnas se afina en Task 7)                     */
/* ---------------------------------------------------------------------- */
.ceu-footer{ background:var(--color-blue); color:#fff; }
.ceu-footer a{ color:#fff; }
.ceu-footer-bottom{ background:#0c1015; }
.site-info{ background:#0c1015; color:#fff; }
.site-info a{ color:#fff; }

/* ---------------------------------------------------------------------- */
/* Home — parte 1 (hero, intro, resumen de recorrido)                      */
/* ---------------------------------------------------------------------- */

/* Home base resets */
/* Reset verbatim del original (web html/css/styles.css: "p{ margin:0; }" y
   "h1, h2, h3{ margin:0; }") — evita que el margen por defecto del navegador en
   encabezados/párrafos infle la altura de tarjetas/columnas compuestas con bloques
   core (group/columns). Las secciones re-añaden margin donde toca.
   Escopado a las raíces de nuestros patrones (hero/secciones/cta/footer) para que
   NO se filtre a páginas interiores/futuras fuera de estos patrones. */
:where(.ceu-hero, .ceu-section, .ceu-cta, .ceu-footer) :where(h1, h2, h3, p){ margin:0; }

/* ---- HERO ---- */
.ceu-hero.wp-block-cover{ color:#fff; overflow:hidden; align-items:stretch; }
.ceu-hero .wp-block-cover__inner-container{ width:100%; position:relative; z-index:2; }
.ceu-hero-inner{ width:100%; max-width:1440px; margin:0 auto;
  padding:clamp(100px,9.5vw,140px) clamp(20px,4.9vw,70px) clamp(29px,7.74vw,110px) clamp(20px,6.6vw,95px); }
.ceu-hero .wp-block-cover__background{ background:linear-gradient(180deg,rgba(10,12,14,.7) 0%,rgba(10,12,14,.4) 45%,rgba(10,12,14,.85) 100%)!important; }
.ceu-hero-route{ position:absolute; top:clamp(42px,9.21vw,136px); left:58%; width:clamp(128px,22.77vw,327px);
  z-index:1; opacity:.92; margin:0; pointer-events:none; }
.ceu-hero-toprow{ display:flex; justify-content:flex-end; align-items:center; gap:clamp(14px,1.8vw,26px);
  margin-bottom:clamp(39px,11.05vw,161px); }
.ceu-countdown{ text-align:right; font-family:var(--font-heading); }
.ceu-countdown-days,.ceu-countdown-clock{ font-size:clamp(.85rem,1.5vw,1.3rem); font-weight:500; margin:0; }
.ceu-countdown-clock{ font-variant-numeric:tabular-nums; letter-spacing:.02em; }
.ceu-hero-title{ color:#fff; font-size:clamp(1.7rem,3.98vw,3.7rem); font-weight:600; text-transform:uppercase;
  letter-spacing:-.005em; line-height:1.04; max-width:min(56%,640px); margin:0 0 clamp(5px,1.19vw,17px); }
.ceu-hero-footer{ display:flex; flex-wrap:wrap; gap:clamp(20px,3vw,44px); border-top:1px solid rgba(255,255,255,.3);
  padding-top:clamp(10px,1.19vw,19px); align-items:flex-start; }
.ceu-hero-desc{ flex:1 1 320px; font-size:clamp(.85rem,1.2vw,1.02rem); line-height:1.5; max-width:410px; }
.ceu-hero-meta{ flex:1 1 240px; max-width:305px; font-size:clamp(.85rem,1.15vw,1rem); line-height:1.7; }
.ceu-hero-meta p{ margin:0; }
.ceu-hero-stats{ display:flex; flex-direction:column; gap:6px; font-weight:600; font-family:var(--font-heading);
  font-size:clamp(.8rem,1.1vw,.98rem); flex:1 1 200px; max-width:280px; }
.ceu-hero-stats p{ margin:0; padding-bottom:6px; border-bottom:1px solid rgba(255,255,255,.3); }
.ceu-hero-stats p:last-child{ border-bottom:none; }

/* ---- INTRO ---- */
.ceu-intro{ background:var(--color-off-white); padding:clamp(40px,4.5vw,64px) 0 90px; overflow:hidden; }
.ceu-intro .wp-block-columns{ gap:40px; align-items:flex-start!important; }
.ceu-intro-graphic{ position:relative; }
.ceu-intro-graphic .wp-block-image img{ width:100%; max-width:660px; }
.ceu-intro-heading{ position:absolute; top:0; left:0; font-family:var(--font-heading);
  font-size:clamp(1.6rem,2.25vw,2rem); font-weight:500; line-height:1.25; max-width:420px; }
.ceu-intro-heading p{ margin:0; }
.ceu-intro-accent{ margin-top:18px!important; color:var(--color-text-dark); }
.ceu-intro-copy p{ font-size:1.05rem; line-height:1.7; margin-bottom:20px; color:var(--color-text-dark); }
.ceu-hashtags{ font-weight:700; margin-bottom:26px!important; }

/* ---- ROUTE SUMMARY ---- */
.ceu-route-summary{ background:var(--color-light-blue); padding:80px 0; }
.ceu-route-summary .wp-block-columns{ gap:36px; align-items:stretch!important; }
.ceu-route-photo{ position:relative; border-radius:var(--radius-lg); overflow:hidden; background:#000; min-height:380px; }
.ceu-route-bgphoto{ position:absolute; inset:0; margin:0; }
.ceu-route-bgphoto img{ width:100%; height:100%; object-fit:cover; opacity:.55; }
.ceu-km-figure{ position:relative; z-index:2; padding:40px; color:var(--color-cyan); }
.ceu-km-figure p{ margin:0; display:flex; align-items:baseline; gap:10px; }
.ceu-km-figure strong{ font-family:var(--font-heading); font-size:5.5rem; font-weight:800; line-height:1; }
.ceu-km-figure span{ font-size:1.3rem; font-weight:700; }
.ceu-mini-route{ position:absolute; bottom:20px; right:20px; width:55%; z-index:2; opacity:.9; margin:0; }
.ceu-route-info{ background:var(--color-off-white); border-radius:var(--radius-lg); padding:48px;
  display:flex; flex-direction:column; justify-content:center; gap:18px; }
.ceu-route-info h2{ font-size:clamp(1.6rem,2.4vw,2.1rem); color:var(--color-blue); font-weight:700; }
.ceu-route-info p{ font-size:1.02rem; line-height:1.65; color:var(--color-text-dark); margin:0; }
.ceu-route-statrow{ display:flex; flex-wrap:wrap; gap:28px; margin:10px 0 6px; font-family:var(--font-heading); font-weight:700; color:var(--color-blue); }
.ceu-route-statrow p{ margin:0; }
.ceu-route-actions{ display:flex; flex-wrap:wrap; gap:16px; margin-top:12px; }

@media (max-width:960px){
  .ceu-intro .wp-block-columns, .ceu-route-summary .wp-block-columns{ flex-direction:column; }
  .ceu-hero-route{ top:40px; left:54%; width:200px; opacity:.85; }
  .ceu-hero-footer{ flex-direction:column; gap:20px; }
  .ceu-hero-desc,.ceu-hero-meta,.ceu-hero-stats{ flex-basis:auto; max-width:none; }
  .ceu-intro-heading{ position:static; max-width:none; margin-bottom:24px; }
  .ceu-intro-graphic{ order:2; max-width:320px; } .ceu-intro-copy{ order:1; }
  .ceu-route-photo{ min-height:300px; }
}
@media (max-width:720px){
  .ceu-hero-route{ top:130px; left:46%; width:150px; opacity:.6; }
  .ceu-hero-inner{ padding-top:100px; padding-bottom:34px; }
  .ceu-hero-toprow{ flex-wrap:wrap; justify-content:space-between; margin-bottom:40px; }
  .ceu-countdown{ text-align:left; }
  .ceu-hero-title{ font-size:clamp(2.1rem,9vw,2.8rem); max-width:100%; }
  .ceu-intro,.ceu-route-summary{ padding:56px 0; }
  .ceu-route-info{ padding:32px 26px; }
  .ceu-route-statrow{ gap:16px 24px; }
}

/* ---------------------------------------------------------------------- */
/* Home — parte 2 (info/acordeón, CTA, ediciones, sponsors)                */
/* ---------------------------------------------------------------------- */

/* ---- INFO / ACCORDION ---- */
.ceu-info{ background:var(--color-off-white); padding:90px 0 60px; }
.ceu-info h2{ font-size:clamp(2rem,3.4vw,2.8rem); font-weight:400; margin-bottom:40px; }
/* Acordeón nativo <details> (idéntico al original, sin dependencia de plugin) */
.ceu-info details.ceu-acc{ border-top:1px solid var(--color-blue); }
.ceu-info details.ceu-acc:last-of-type{ border-bottom:1px solid var(--color-blue); }
.ceu-info summary.ceu-acc-trigger{ list-style:none; cursor:pointer; padding:22px 4px; display:flex;
  align-items:center; justify-content:space-between; font-family:var(--font-heading); font-weight:700;
  font-size:1.1rem; color:var(--color-blue); }
.ceu-info summary.ceu-acc-trigger::-webkit-details-marker{ display:none; }
.ceu-info .ceu-acc-trigger .icon{ position:relative; width:20px; height:20px; flex-shrink:0; }
.ceu-info .ceu-acc-trigger .icon::before,.ceu-info .ceu-acc-trigger .icon::after{ content:''; position:absolute;
  background:var(--color-blue); top:50%; left:50%; transform:translate(-50%,-50%); }
.ceu-info .ceu-acc-trigger .icon::before{ width:18px; height:2.5px; }
.ceu-info .ceu-acc-trigger .icon::after{ width:2.5px; height:18px; transition:transform .2s ease; }
.ceu-info details.ceu-acc[open] .ceu-acc-trigger .icon::after{ transform:translate(-50%,-50%) rotate(90deg) scale(0); }
.ceu-info .ceu-acc-panel{ padding:0 4px 22px; }
.ceu-info .ceu-acc-panel p{ color:var(--color-text-muted); line-height:1.6; font-size:.98rem; margin:0; }
.ceu-info-plain{ border-top:1px solid var(--color-blue); border-bottom:1px solid var(--color-blue);
  padding:22px 4px!important; font-family:var(--font-heading); font-weight:700; font-size:1.1rem; }
.ceu-info-plain a{ color:var(--color-blue); }

/* ---- CTA ---- */
.ceu-cta.wp-block-cover{ padding:120px 24px; text-align:center; color:#fff; }
.ceu-cta .wp-block-cover__inner-container{ max-width:820px; margin:0 auto; }
.ceu-cta .ceu-eyebrow{ color:#fff; opacity:.85; font-weight:600; }
.ceu-cta h2{ font-weight:500; font-size:clamp(1.9rem,3.4vw,2.7rem); margin:14px 0 18px; }
.ceu-cta-price{ font-family:var(--font-heading); font-size:clamp(2.2rem,4vw,3rem); font-weight:600; margin:0 0 4px; }
.ceu-cta-price span{ font-size:1rem; font-weight:500; margin-left:6px; }
.ceu-cta-sub{ font-size:.95rem; opacity:.9; margin:0 0 26px; }
.ceu-cta-fine{ font-size:.85rem; opacity:.8; margin-top:18px; }

/* ---- EDICIONES ---- */
.ceu-editions{ background:var(--color-light-blue); padding:90px 0; }
.ceu-editions h2{ font-size:clamp(2rem,3.4vw,2.8rem); font-weight:400; margin-bottom:40px; }
.ceu-editions-grid{ display:flex; gap:24px; align-items:center; }
.ceu-edition-card{ position:relative; width:320px; height:400px; border-radius:var(--radius-lg); overflow:hidden;
  background:#000; flex-shrink:0; }
.ceu-edition-card .wp-block-image{ position:absolute; inset:0; margin:0; }
.ceu-edition-card img{ width:100%; height:100%; object-fit:cover; opacity:.7; }
.ceu-edition-card p{ position:absolute; bottom:24px; left:24px; margin:0; font-family:var(--font-heading);
  font-size:4.2rem; font-weight:800; color:var(--color-cyan); z-index:2; }
.ceu-editions-btn{ margin-left:auto; }

/* ---- SPONSORS ---- */
.ceu-sponsors{ background:var(--color-off-white); padding:90px 0; text-align:center; }
.ceu-sponsors .ceu-eyebrow{ display:block; margin-bottom:26px; }
.ceu-sponsor-card{ display:inline-flex; align-items:center; justify-content:center; padding:26px 48px;
  border:1px solid var(--color-border); border-radius:var(--radius-md); margin-bottom:12px; }
.ceu-sponsor-card img{ height:40px; width:auto; }
.ceu-sponsor-label{ display:block; font-family:var(--font-heading); font-weight:700; letter-spacing:.1em;
  text-transform:uppercase; font-size:.85rem; color:var(--color-blue); margin-bottom:36px; }
.ceu-sponsor-pills{ display:flex; flex-wrap:wrap; justify-content:center; gap:18px; }
.ceu-sponsor-pills p{ margin:0; border:1px solid var(--color-border); border-radius:var(--radius-md);
  padding:16px 30px; font-size:.95rem; color:var(--color-text-muted); }

@media (max-width:720px){
  .ceu-info,.ceu-editions,.ceu-sponsors{ padding:56px 0; }
  .ceu-cta.wp-block-cover{ padding:80px 24px; }
  .ceu-editions-grid{ flex-direction:column; align-items:stretch; }
  .ceu-edition-card{ width:100%; }
  .ceu-editions-btn{ margin-left:0; align-self:flex-start; }
}

/* ---------------------------------------------------------------------- */
/* Recorrido (hero variante, detalle con mapa, carrusel km)                */
/* ---------------------------------------------------------------------- */

/* ---- HERO recorrido (variante) ---- */
.ceu-hero-recorrido .ceu-hero-inner{ padding-top:clamp(95px,11.9vw,170px); padding-bottom:clamp(34px,5.1vw,68px); }
.ceu-hero-recorrido .ceu-hero-title{ font-size:clamp(1.9rem,5.1vw,4.6rem); max-width:70%; margin-bottom:clamp(9px,1.36vw,19px); }
.ceu-hero-sub{ font-family:var(--font-body); font-size:clamp(.95rem,1.3vw,1.15rem); line-height:1.6; margin:0; color:#fff; }

/* ---- DETALLE recorrido ---- */
.ceu-rec-detail{ background:var(--color-off-white); padding:90px 0; }
.ceu-rec-detail h2{ font-size:clamp(1.9rem,3.2vw,2.6rem); font-weight:400; margin-bottom:36px; }
.ceu-rec-detail .wp-block-columns{ gap:40px; align-items:center; }
.ceu-map{ position:relative; border-radius:var(--radius-lg); overflow:hidden; background:#000; aspect-ratio:4/3; }
.ceu-map-bg{ position:absolute; inset:0; margin:0; }
.ceu-map-bg img{ width:100%; height:100%; object-fit:cover; opacity:.6; }
.ceu-map-overlay{ position:absolute; inset:8%; z-index:2; width:84%; margin:0; }
.ceu-map-landmarks{ position:absolute; inset:0; z-index:3; }
.ceu-map-landmarks .wp-block-image{ position:absolute; margin:0; }
.ceu-map-landmarks img{ filter:drop-shadow(0 2px 6px rgba(0,0,0,.35)); }
.ceu-lm-giralda{ width:9%; top:18%; left:21%; } .ceu-lm-parasol{ width:15%; top:8%; left:34%; }
.ceu-lm-triana{ width:16%; top:30%; left:45%; } .ceu-lm-arch{ width:10%; top:46%; left:62%; }
.ceu-lm-colonnade{ width:15%; top:52%; left:70%; }
.ceu-rec-lead{ font-size:1.02rem; line-height:1.65; margin-bottom:4px; }
.ceu-rec-dl{ margin:18px 0; font-size:1rem; line-height:1.9; list-style:none; padding:0; }
.ceu-rec-dl li{ margin:0; }

/* ---- CARRUSEL km ---- */
.ceu-km-carousel{ background:var(--color-light-blue); padding:90px 0 100px; }
.ceu-km-head{ display:flex; align-items:flex-end; margin-bottom:34px; gap:20px; }
.ceu-km-head h2{ font-size:clamp(1.9rem,3.2vw,2.6rem); font-weight:400; }
.ceu-km-controls{ display:flex; gap:12px; flex-shrink:0; }
.ceu-km-controls button{ width:46px; height:46px; border-radius:50%; border:none; background:var(--color-blue);
  color:#fff; font-size:1.2rem; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:background .15s ease; }
.ceu-km-controls button:hover{ background:var(--color-blue-dark); }
.ceu-km-track{ display:flex; gap:24px!important; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:10px;
  scrollbar-width:none; flex-wrap:nowrap!important; }
.ceu-km-track::-webkit-scrollbar{ display:none; }
.ceu-km-card{ scroll-snap-align:start; flex:0 0 auto; width:280px; }
.ceu-km-card .wp-block-image{ width:100%; height:340px; border-radius:var(--radius-lg); overflow:hidden; background:#000; margin:0; }
.ceu-km-card .wp-block-image img{ width:100%; height:100%; object-fit:cover; }
.ceu-km-card p{ margin-top:16px; color:var(--color-blue); font-weight:700; font-size:1.05rem; line-height:1.4; text-transform:uppercase; }

@media (max-width:960px){ .ceu-rec-detail .wp-block-columns{ flex-direction:column; } .ceu-map{ aspect-ratio:1/1; } }
@media (max-width:720px){
  .ceu-hero-recorrido .ceu-hero-inner{ padding-top:120px; } .ceu-hero-recorrido .ceu-hero-title{ max-width:100%; }
  .ceu-rec-detail,.ceu-km-carousel{ padding:56px 0; }
  .ceu-km-head{ flex-direction:column; align-items:flex-start; }
}

/* ---------------------------------------------------------------------- */
/* Footer (patrón de widget: heading + gráfico de ruta + columnas)         */
/* ---------------------------------------------------------------------- */

.ceu-footer{ background:var(--color-blue); color:#fff; padding:80px 0 60px; overflow:hidden; }
.ceu-footer-top{ margin-bottom:60px; align-items:center; }
.ceu-footer-top h2{ font-size:clamp(2rem,4vw,3rem); font-weight:700; text-transform:uppercase; }
.ceu-footer-route{ margin:0; }
.ceu-footer-route img{ width:min(480px,100%); opacity:.9; margin-left:auto; display:block; }
.ceu-footer-cols{ gap:32px; }
.ceu-footer-cols h3{ font-family:var(--font-heading); font-size:1rem; font-weight:700; text-transform:uppercase; margin-bottom:18px; }
.ceu-footer-cols ul{ list-style:none; padding:0; margin:0; }
.ceu-footer-cols li{ margin-bottom:10px; }
.ceu-footer-cols a{ color:#fff; font-weight:600; font-size:1rem; }
/* Barra inferior de GeneratePress (copyright) en tono oscuro */
.site-info{ background:#0c1015!important; }
.site-info, .site-info a{ font-size:.85rem; opacity:.75; color:#fff; }
@media (max-width:960px){ .ceu-footer-top.wp-block-columns{ flex-direction:column; } .ceu-footer-route img{ width:220px; margin:24px 0 0; } }
@media (max-width:720px){ .ceu-footer{ padding:56px 0; } .ceu-footer-cols{ flex-direction:column; gap:30px; } }

/* ==========================================================================
   Integración con GeneratePress + correcciones de fidelidad
   (verificado midiendo estilos computados contra la maqueta HTML original)
   El body recibe .ceu-has-hero cuando el contenido incluye el hero (functions.php).
   ========================================================================== */
html, body{ overflow-x:hidden; }

/* Páginas hero: ocultar título, full width sin sidebar */
.ceu-has-hero .entry-header{ display:none !important; }
.ceu-has-hero .site-content{ display:block !important; }
.ceu-has-hero .content-area{ width:100% !important; max-width:100% !important; float:none !important; }
.ceu-has-hero .site-main{ margin:0 !important; padding:0 !important; }
.ceu-has-hero .widget-area, .ceu-has-hero #right-sidebar, .ceu-has-hero #left-sidebar{ display:none !important; }
.ceu-has-hero.separate-containers .inside-article{ padding:0; border:0; box-shadow:none; background:none; }
.ceu-has-hero .entry-content{ margin-top:0; }
.ceu-has-hero .entry-content > .alignfull{ margin-left:calc(50% - 50vw) !important; margin-right:calc(50% - 50vw) !important; width:100vw !important; max-width:100vw !important; }

/* Cabecera: solo el logo badge */
.site-header .main-title, .site-header .site-description{ display:none; }

/* Footer full-bleed desde el área de widgets */
.footer-widgets .widget{ padding:0; margin:0; }
.footer-widgets .ceu-footer{ margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw); width:100vw; max-width:100vw; }

/* Barra de copyright (widget en footer-bar) */
.copyright-bar{ display:none; }
.site-info .ceu-fbar{ display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px; }
.site-info .ceu-fbar-links{ display:flex; gap:24px; flex-wrap:wrap; }
.site-info .ceu-fbar a, .site-info .ceu-fbar span{ font-size:.85rem; opacity:.75; color:#fff; }

/* Botones: forzar colores del diseño sobre GeneratePress (que los pinta grises) */
.ceu-btn .wp-block-button__link{ line-height:normal !important; }
.ceu-btn-cyan .wp-block-button__link{ background-color:#00f6ff !important; color:#004aad !important; }
.ceu-btn-blue .wp-block-button__link{ background-color:#004aad !important; color:#ffffff !important; }
.ceu-btn-outline .wp-block-button__link{ background-color:#eceef1 !important; color:#18253b !important; }
.ceu-btn-cyan .wp-block-button__link:hover{ box-shadow:0 8px 24px rgba(0,246,255,.35); }
.ceu-btn-blue .wp-block-button__link:hover{ box-shadow:0 8px 24px rgba(0,74,173,.3); }
.ceu-btn-outline .wp-block-button__link:hover{ background-color:#e1e4e9 !important; }

/* Contador sin altura extra */
.ceu-countdown-days, .ceu-countdown-clock{ line-height:1.2 !important; }
/* Route summary: columnas 0.85 / 1.15 como el original */
.ceu-route-summary .ceu-route-photo{ flex:0.85 1 0 !important; }
.ceu-route-summary .ceu-route-info{ flex:1.15 1 0 !important; }
/* Números de ediciones sin line-height extra */
.ceu-edition-card p{ line-height:1 !important; }

/* Hero: overlay a opacidad plena (el original no lo aclara) */
.ceu-hero .wp-block-cover__background{ opacity:1 !important; }
/* Hero: neutralizar el layout "constrained" de WP y alinear como el original */
.ceu-hero{ padding-left:0 !important; padding-right:0 !important; }
.ceu-hero .wp-block-cover__inner-container{ padding:0 !important; width:100% !important; max-width:none !important; }
.ceu-hero .ceu-hero-inner{ width:100% !important; max-width:1440px !important; margin:0 auto !important; padding:0 !important; }
.ceu-hero .ceu-hero-inner > .wp-block-group__inner-container{ max-width:none !important;
  padding:clamp(100px,9.5vw,140px) clamp(20px,4.9vw,70px) clamp(29px,7.74vw,110px) clamp(20px,6.6vw,95px) !important; }
.ceu-hero .ceu-hero-inner > .wp-block-group__inner-container > *{ margin-left:0 !important; margin-right:0 !important; max-width:none !important; }
.ceu-hero .ceu-hero-inner .ceu-hero-title{ max-width:min(56%,640px) !important; }
/* Hero footer: quitar el padding-bottom:40px espurio de los inner-container de WP */
.ceu-hero-footer .wp-block-group__inner-container{ padding:0 !important; margin:0 !important; }
.ceu-hero-meta > .wp-block-group__inner-container{ display:block; }
.ceu-hero-meta p{ margin:0 !important; }
.ceu-hero-stats > .wp-block-group__inner-container{ display:flex; flex-direction:column; gap:6px; }
.ceu-hero-stats p{ margin:0 !important; line-height:1.2 !important; }

/* Ancho de secciones: liberar el inner-container de WP (max 1200 + pad 40) para que
   mande el .ceu-container (1280) como en el original */
.ceu-section > .wp-block-group__inner-container{ max-width:none !important; padding-left:0 !important; padding-right:0 !important; }
.ceu-route-summary .wp-block-column, .ceu-rec-detail .wp-block-column{ min-width:0 !important; }

/* Recorrido: título hero a 70% (como el original) */
.ceu-hero-recorrido .ceu-hero-title{ max-width:70% !important; }
/* Recorrido: columnas mapa/copy 1.1 / 1 */
.ceu-rec-detail .ceu-map{ flex:1.1 1 0 !important; }
.ceu-rec-detail .ceu-rec-copy{ flex:1 1 0 !important; }
/* Recorrido: km cards a ancho completo (imagen 280) sin alto/padding extra */
.ceu-km-card > .wp-block-group__inner-container{ padding:0 !important; margin:0 !important; }
.ceu-km-card > .wp-block-group__inner-container > *{ max-width:none !important; margin-left:0 !important; margin-right:0 !important; }
.ceu-km-card .wp-block-image{ margin:0 !important; width:100% !important; }
.ceu-km-card p{ margin:16px 0 0 !important; line-height:1.4 !important; }

/* Móvil: el título del hero a ancho completo (no romper palabras) */
@media (max-width:720px){
  .ceu-hero .ceu-hero-inner .ceu-hero-title,
  .ceu-hero-recorrido .ceu-hero-title{ max-width:100% !important; }
}
