:root{
  --orange:#f7931e;
  --orange2:#ff9b22;
  --brown:#210b02;
  --brown2:#0e0401;
  --cream:#fffaf4;
  --panel:#f4f4f4;
  --muted:#b7aaa2;
  --header-h:104px;
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;scroll-behavior:smooth}
body{font-family:'Lato',Arial,Helvetica,sans-serif;background:#1a0802 url('/assets/legacy/fondo-2025.webp') center top/cover fixed no-repeat;color:#fff;min-height:100vh}
a{color:inherit;text-decoration:none}
button,input,textarea,select{font:inherit}
.site-header{position:fixed;top:0;left:0;right:0;z-index:80;height:var(--header-h);display:flex;align-items:center;padding:8px 2.2vw 6px;background:linear-gradient(180deg,rgba(9,2,0,.94),rgba(16,5,1,.80) 70%,rgba(16,5,1,.12));border-bottom:0;transition:.2s}
.site-header .brand{width:95px;min-width:95px;height:86px;display:flex;align-items:center;justify-content:center;margin-right:auto}
.site-header .brand img{display:block;max-width:86px;max-height:78px;filter:none}
#nav{display:flex;align-items:center;justify-content:flex-end;gap:28px;margin-left:auto;padding-right:1vw}
#nav>a{display:flex;align-items:center;gap:10px;color:var(--orange);font-weight:500;font-size:18px;white-space:nowrap;min-height:58px;transition:opacity .15s,transform .15s}
#nav>a:hover{opacity:.88;transform:translateY(-1px)}
#nav>a img{width:34px;height:34px;object-fit:contain}
#nav>a.icon-only{gap:0}
#nav>a.icon-only img{width:40px;height:40px}
#nav>a.lang img{width:48px;height:48px}
.train-link{border:1px solid rgba(247,147,30,.65);padding:6px 12px;border-radius:999px}
.train-symbol{font-size:25px;line-height:1}.train-menu-icon{width:40px!important;height:40px!important;object-fit:contain!important}
.menu-toggle{display:none;margin-left:auto;background:transparent;border:1px solid rgba(247,147,30,.7);color:var(--orange);border-radius:8px;padding:8px 11px;font-size:24px}
main{padding:calc(var(--header-h) + 24px) 2.8vw 70px;max-width:1500px;margin:0 auto;min-height:100vh}
body.route-home{overflow-x:hidden}
body.route-home .site-header{background:linear-gradient(180deg,rgba(8,2,0,.78),rgba(8,2,0,.28) 72%,transparent)}
body.route-home main{padding:0;max-width:none;width:100%;min-height:100vh}
.legacy-home{position:relative;width:100%;height:100vh;min-height:680px;overflow:hidden;background:#170801}
.legacy-home picture,.legacy-home img{position:absolute;inset:0;width:100%;height:100%}
.legacy-home img{object-fit:cover;object-position:center center;display:block}
.legacy-home::after{content:"";position:absolute;left:0;right:0;top:0;height:128px;background:linear-gradient(180deg,rgba(4,1,0,.35),transparent);pointer-events:none}
.page-title{font-size:42px;line-height:1;margin:5px 0 22px;font-weight:800}
.subtitle{display:flex;align-items:center;gap:12px;font-size:20px;margin:0 0 22px}.subtitle::before{content:"";display:block;width:48px;height:48px;background:url('/assets/legacy/icons/2025-menu-tapas.svg') center/contain no-repeat}
.btn{border:2px solid var(--orange);background:transparent;color:var(--orange);padding:11px 20px;border-radius:999px;font-weight:800;cursor:pointer}.btn.primary{background:var(--orange);color:#261004}
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:rgba(35,12,3,.78);max-width:1390px;margin:0 auto}
.tapa-card{position:relative;aspect-ratio:1/1;background:#eee;overflow:hidden;cursor:pointer;display:block}
.tapa-card>img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s}
.tapa-card:hover>img{transform:scale(1.015)}
.tapa-card .fallback{height:100%;display:grid;place-items:center;color:#333;font-weight:900;background:#eee}
.overlay{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;background:rgba(244,153,61,.78);opacity:0;transition:.22s;text-align:center;padding:20px;color:#fff}
.tapa-card:hover .overlay,.tapa-card:focus .overlay{opacity:1}.overlay h3{font-size:25px;font-weight:400;margin:0 0 14px}.overlay h3::after{content:"";display:block;width:115px;height:2px;background:#fff;margin:16px auto 0}.overlay div{font-size:16px}
.detail{max-width:1160px;margin:0 auto;position:relative;padding-bottom:40px}
.detail-photo-wrap{position:relative;max-width:900px;margin:0 auto 28px}.detail-photo{width:100%;max-height:600px;object-fit:cover;background:#eee;display:block}
.detail-logo{position:absolute;left:28px;bottom:-86px;width:180px;height:180px;border-radius:50%;background:#080808;border:8px solid #aaa;object-fit:contain;padding:8px;z-index:2}
.detail-copy{padding-top:10px;text-align:center}.detail-copy.has-logo{padding-top:18px}.detail h1{font-size:56px;line-height:1.05;margin:0 0 10px}.detail .tapa-name{font-size:17px}.ingredients{margin:38px auto 36px;line-height:1.6;max-width:850px}
.actions{display:grid;grid-template-columns:repeat(4,1fr);gap:26px;max-width:900px;margin:0 auto}.action{border:0;background:transparent;color:#fff;padding:12px;text-align:center;cursor:pointer;min-height:105px}.action .action-icon{display:block;width:58px;height:58px;margin:0 auto 8px;background-position:center;background-repeat:no-repeat;background-size:contain}.action b{display:block;color:#fff;font-size:18px}.action.phone .action-icon{background-image:url('/assets/legacy/icons/nuevo_estab-telefono.svg')}.action.map .action-icon{background-image:url('/assets/legacy/icons/nuevo_estab-localizacion.svg')}.action.hours .action-icon{background-image:url('/assets/legacy/icons/nuevo_estab-horario.svg')}.action.social .action-icon{background-image:url('/assets/legacy/icons/nuevo_estab-fb.svg')}
.panel{background:#f2f2f2;color:#161616;border-radius:24px;padding:28px;max-width:800px;margin:auto}.panel h1,.panel h2{margin-top:0}.field{display:flex;flex-direction:column;gap:6px;margin:12px 0}.field input,.field textarea,.field select{padding:12px;border:1px solid #ccc;border-radius:10px;font:inherit}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}.tab{padding:9px 14px;border-radius:999px;background:#e3e3e3;cursor:pointer}.tab.active{background:var(--orange)}
.admin-shell{display:grid;grid-template-columns:220px 1fr;gap:24px}.admin-menu{background:#1c0b03;border:1px solid #5a2608;border-radius:18px;padding:14px;height:max-content}.admin-menu button{width:100%;text-align:left;background:none;border:0;color:#fff;padding:12px;border-radius:9px;cursor:pointer}.admin-menu button:hover,.admin-menu button.active{background:var(--orange);color:#1b0901}.admin-content{background:#f7f5f2;color:#171717;border-radius:18px;padding:22px;min-height:600px}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:10px;border-bottom:1px solid #ddd;text-align:left}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.stat{background:white;padding:20px;border-radius:14px;box-shadow:0 3px 15px #0001}.stat strong{font-size:32px;color:#8a3e00}.qrbox{background:white;padding:16px;border-radius:14px}.notice{padding:12px 16px;background:#fff3dc;border-left:4px solid var(--orange);border-radius:8px}.progress{height:16px;background:#ddd;border-radius:999px;overflow:hidden}.progress>div{height:100%;background:var(--orange)}#toast{position:fixed;right:20px;bottom:20px;background:#111;color:#fff;padding:12px 18px;border-radius:10px;display:none;z-index:100}.loading{padding:80px;text-align:center}.small{font-size:13px;color:#777}
@media(max-width:1180px){#nav{gap:16px}#nav>a{font-size:15px;gap:7px}#nav>a img{width:30px;height:30px}.site-header .brand{width:76px;min-width:76px}.site-header .brand img{max-width:70px}}
@media(max-width:900px){:root{--header-h:76px}.site-header{height:var(--header-h);padding:4px 14px;background:rgba(14,4,1,.94)}.site-header .brand{width:58px;min-width:58px;height:62px}.site-header .brand img{max-width:58px;max-height:58px}.menu-toggle{display:block}#nav{display:none;position:absolute;top:var(--header-h);left:0;right:0;padding:14px 18px 22px;background:rgba(15,4,1,.98);flex-direction:column;align-items:stretch;gap:2px}#nav.open{display:flex}#nav>a{min-height:52px;font-size:17px;padding:5px 8px}#nav>a.icon-only{display:none}.train-link{border:0;border-radius:0}.legacy-home{height:100svh;min-height:600px}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-logo{width:130px;height:130px;bottom:-60px}.detail h1{font-size:42px}.actions{grid-template-columns:repeat(2,1fr)}.admin-shell{grid-template-columns:1fr}.stat-grid{grid-template-columns:repeat(2,1fr)}main{padding:calc(var(--header-h) + 20px) 14px 50px}}
@media(max-width:560px){.cards{grid-template-columns:1fr}.page-title{font-size:34px}.subtitle{font-size:16px}.legacy-home img{object-position:center center}.detail h1{font-size:36px}.detail-logo{left:18px}.actions{gap:8px}.action b{font-size:15px}}


/* ===== V0.3 · BASE VISUAL 2025: mantener el aspecto de la web real ===== */
:root{--header-h:112px}
body{font-size:17px}
.site-header{padding:8px 2.2vw 4px}
.site-header .brand{width:112px;min-width:112px;height:94px}
.site-header .brand img{max-width:94px;max-height:86px}
#nav{gap:30px;padding-right:1.6vw}
#nav>a{position:relative;font-size:20px;font-weight:500;gap:11px;min-height:64px}
#nav>a img{width:38px;height:38px}
#nav>a.icon-only img{width:43px;height:43px}
#nav>a.lang img{width:50px;height:50px}
#nav>a.active::after{content:"";position:absolute;left:50%;transform:translateX(-50%);bottom:-3px;width:48px;height:3px;background:#fff;border-radius:4px}
.train-link{padding:6px 16px}
.train-symbol{font-size:28px}
main{padding:calc(var(--header-h) + 36px) 3vw 80px;max-width:1440px}
.legacy-page-title,.page-title{font-size:44px;line-height:1.05;font-weight:800;margin:0 0 28px}
.subtitle{font-size:22px}
.subtitle::before{width:52px;height:52px}

/* Portada: fondo + recursos originales por separado, como la web 2025 */
body.route-home .site-header{background:linear-gradient(180deg,rgba(8,2,0,.74),rgba(8,2,0,.34) 72%,transparent)}
body.route-home main{padding:0;max-width:none}
.home-real{position:relative;width:100%;height:100vh;min-height:720px;overflow:hidden;background:#170801}
.home-bg{position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:cover;object-position:center}
.home-real::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.13),transparent 30%,transparent 72%,rgba(0,0,0,.13));pointer-events:none}
.home-main-logo{position:absolute;z-index:2;left:50%;top:27%;transform:translateX(-50%);width:min(390px,25vw);height:auto}
.home-date{position:absolute;z-index:2;right:7.2%;top:25%;width:min(265px,18vw);height:auto}
.home-sponsors{position:absolute;z-index:2;left:50%;bottom:3.5%;transform:translateX(-50%);width:min(1120px,66vw);height:auto;max-height:105px;object-fit:contain}

/* La Ruta real */
body.route-ruta main,body.route-tren main{max-width:1320px}
.ruta-real{padding:14px 0 30px}
.ruta-grid{display:grid;grid-template-columns:minmax(0,.95fr) minmax(460px,1.05fr);gap:54px;align-items:start}
.ruta-copy{font-size:18px;line-height:1.48}
.ruta-copy p{margin:0 0 16px}
.mark-orange{background:#ef8a22;color:#fff;padding:1px 5px}
.ruta-copy h2{font-size:25px;line-height:1.12;margin:34px 0 14px}
.ruta-copy h2 span{color:var(--orange)}
.route-notes{font-size:16px;line-height:1.55}
.ruta-map-wrap{background:#fff;min-height:480px;overflow:hidden}
.ruta-map-wrap img{display:block;width:100%;height:100%;min-height:480px;object-fit:cover}
.prizes-title{text-align:center;font-size:38px;margin:72px 0 0;font-weight:500}

/* Horarios: misma estructura visual del calendario antiguo */
body.route-horarios{background:#160300}
body.route-horarios main{max-width:1480px;padding-top:calc(var(--header-h) + 54px)}
.horarios-real{padding:0 0 30px}
.week-tabs{display:flex;justify-content:center;gap:3px;margin:0 auto 10px}
.week-tabs button{border:0;background:#aa5c1c;color:#d2b08d;padding:14px 13px;font-weight:700;font-size:16px;cursor:pointer}
.week-tabs button:first-child{border-radius:11px 0 0 11px}
.week-tabs button:last-child{border-radius:0 11px 11px 0}
.week-tabs button.active{background:#e88823;color:#fff}
.calendar-shell{position:relative;display:grid;grid-template-columns:34px 1fr 34px;align-items:start;background:#f7ad61;border-radius:21px 21px 0 0;overflow:hidden;min-height:600px}
.calendar-days{display:grid;grid-template-columns:repeat(3,1fr);min-width:0}
.calendar-day{min-width:0;background:#f7b36d;padding:25px 18px 24px;border-left:1px solid rgba(122,66,17,.11)}
.calendar-day.today{background:#ed8a24}
.calendar-day h2{text-align:center;color:#5d3b23;font-size:28px;font-weight:500;margin:3px 0 24px}
.calendar-day ul{list-style:none;margin:0;padding:0;border-radius:8px;overflow:hidden}
.calendar-day li{background:#f0c48f;color:#5c432f;min-height:32px;font-weight:700;font-size:15px}
.calendar-day li:nth-child(even){background:#e8b778}
.calendar-day li>a,.calendar-day li{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center}
.calendar-day li>a{padding:7px 10px}
.calendar-day li:not(:has(a)){padding:7px 10px}
.calendar-day li span:last-child{text-align:right;font-weight:500;line-height:1.24}
.cal-arrow{border:0;background:transparent;color:#8e652e;font-size:58px;line-height:1;padding:18px 0;cursor:pointer}
.cal-arrow:hover{color:#54330d}
.empty-day{opacity:.6}

/* Participa: usar la ilustración original completa */
body.route-participa main{max-width:1320px}
.participa-real{padding:12px 0 25px}
.participa-art-wrap{width:100%;display:flex;justify-content:center;align-items:flex-start}
.participa-art{display:block;width:min(1220px,100%);max-height:650px;object-fit:contain;object-position:center top}
.participa-footer{width:47%;display:flex;justify-content:center;margin-top:-12px}
.legacy-outline-btn{display:inline-flex;border:2px solid rgba(255,255,255,.9);border-radius:28px;padding:13px 25px;color:#fff;font-size:14px;font-weight:800;letter-spacing:.1px}
.legacy-outline-btn:hover{border-color:var(--orange);color:var(--orange)}
.legacy-progress{max-width:620px;margin:25px auto 0;padding:16px 20px;background:rgba(0,0,0,.55);border:1px solid rgba(247,147,30,.5);border-radius:14px}
.legacy-progress strong{font-size:19px}.legacy-progress .progress{margin:10px 0 6px}

/* Acceso: recuperar proporciones y lenguaje visual de la pantalla original */
body.route-account main{display:flex;justify-content:center;align-items:flex-start;padding-top:calc(var(--header-h) + 55px)}
.account-legacy-card{width:min(650px,94vw);background:#eee;color:#111;border-radius:34px;padding:38px 28px 30px;text-align:center}
.account-legacy-card h1{font-size:34px;font-style:italic;font-weight:600;margin:0 0 28px}
.account-intro{font-size:18px;margin-bottom:20px}
.legacy-input{display:block;width:100%;border:0;border-bottom:3px solid var(--orange);background:#fff;padding:15px 20px;margin:0 0 16px;font-size:17px;font-style:italic;outline:none}
.remember{display:flex;align-items:center;gap:7px;text-align:left;font-weight:700;margin:18px 0 24px}
.remember input{width:22px;height:22px}
.legacy-login-btn{display:flex;align-items:center;justify-content:center;width:92%;margin:0 auto 22px;border:3px solid var(--orange);border-radius:999px;background:transparent;color:var(--orange);font-size:16px;font-weight:900;padding:11px 20px;cursor:pointer}
.legacy-login-btn:hover{background:var(--orange);color:#fff}
.legacy-login-btn.secondary{margin-top:18px}
.account-links{display:flex;justify-content:space-between;gap:20px;font-size:13px;font-weight:900;text-decoration:underline;text-align:left}
.google-separator{height:1px;background:#222;margin:30px 5px 20px}
.google-login{border:0;background:#df4b3c;color:#fff;padding:13px 18px;font-size:17px;border-radius:3px}
.google-login span{font-size:22px;margin-right:7px}
.register-inline{display:none}

/* Tapas/ficha: tamaño tipográfico más cercano al original */
body.route-tapas main{max-width:1500px}
.cards{max-width:1400px}
.overlay h3{font-size:27px}
.overlay div{font-size:18px}
.detail h1{font-size:60px}
.detail .tapa-name{font-size:18px}
.ingredients{font-size:17px}
.action b{font-size:20px}

/* paneles de administración conservan estilo funcional */
body.route-admin{font-size:16px}
body.route-admin #nav{opacity:.9}

@media(max-width:1280px){
  #nav{gap:18px}
  #nav>a{font-size:17px;gap:8px}
  #nav>a img{width:33px;height:33px}
  .site-header .brand{width:90px;min-width:90px}
  .site-header .brand img{max-width:78px}
  .home-main-logo{width:min(340px,27vw)}
  .home-sponsors{width:min(980px,72vw)}
}
@media(max-width:1000px){
  .ruta-grid{grid-template-columns:1fr}
  .ruta-map-wrap{min-height:420px}
  .ruta-map-wrap img{min-height:420px}
  .calendar-shell{grid-template-columns:28px 1fr 28px}
  .calendar-day{padding:18px 10px}
  .calendar-day h2{font-size:23px}
  .calendar-day li{font-size:13px}
}
@media(max-width:900px){
  :root{--header-h:78px}
  .site-header .brand{width:64px;min-width:64px}
  .site-header .brand img{max-width:62px;max-height:62px}
  .home-real{height:100svh;min-height:620px}
  .home-main-logo{width:42vw;top:25%}
  .home-date{width:25vw;right:5%;top:22%}
  .home-sponsors{width:82vw;bottom:4%}
  .legacy-page-title,.page-title{font-size:37px}
  .participa-footer{width:100%;margin-top:8px}
  .calendar-days{grid-template-columns:1fr}
  .calendar-day:not(:first-child){display:none}
  .calendar-shell{min-height:500px}
}
@media(max-width:560px){
  .home-bg{object-position:32% center}
  .home-main-logo{width:62vw;top:24%}
  .home-date{width:38vw;right:4%;top:16%}
  .home-sponsors{width:92vw;bottom:3%}
  .ruta-copy{font-size:16px}
  .ruta-copy h2{font-size:22px}
  .account-legacy-card{border-radius:24px;padding:30px 18px 24px}
  .account-links{flex-direction:column}
  .week-tabs{overflow-x:auto;justify-content:flex-start}
}


/* ===== V0.4 · completar visual real: mapa, premios y participa ===== */
.ruta-map-wrap{position:relative;height:510px;min-height:510px;border:0}
.ruta-map-wrap>img{width:100%;height:100%;min-height:0;object-fit:cover}
.leaflet-route-map{width:100%;height:510px;background:#eee}
.leaflet-route-map .leaflet-popup-content{font-size:14px;color:#222}
.leaflet-route-map .leaflet-popup-content a{color:#d96d00;font-weight:700}
.prizes-section{margin-top:66px}
.prizes-title{text-align:center;font-size:40px;line-height:1.1;margin:0 0 38px;font-weight:500;color:#fff}
.prize-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;max-width:1160px;margin:0 auto}
.prize-card{background:#efefef;color:#5d4a3c;border-radius:20px;padding:24px 22px 22px;font-size:17px;line-height:1.65}
.prize-card h3{text-align:center;font-size:26px;font-weight:500;margin:0 0 18px;color:#604b3b}
.prize-card p{margin:0 0 11px}
.prize-line{display:grid;grid-template-columns:30px 1fr;column-gap:8px;align-items:start}
.medal{width:30px;height:30px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:14px;line-height:1;font-weight:700;color:#fff;box-shadow:inset 0 0 0 2px rgba(255,255,255,.35),0 1px 3px #0003;margin-top:2px}
.medal-gold,.medal-pro{background:linear-gradient(#ebc839,#cf9f11)}
.medal-silver{background:linear-gradient(#dcdcdc,#aaa)}
.medal-bronze{background:linear-gradient(#d68b49,#a45a22)}
.medal-dark{background:linear-gradient(#565656,#242424)}
.medal-pro{font-size:10px}
.public-footer{text-align:center;margin:64px 0 2px;color:#a99a90;font-size:16px}
.public-footer a{color:#fff}.public-footer span{padding:0 6px;color:#b8aaa0}

/* Participa: conservar el recorrido original y reponer textos + tablero derecho */
body.route-participa main{max-width:1320px}
.participa-real{padding:12px 0 20px}
.participa-layout{display:grid;grid-template-columns:48% 52%;gap:12px;align-items:start}
.participa-left{position:relative;height:640px;min-width:0}
.participa-route-art{position:absolute;inset:0 0 0 0;display:flex;justify-content:center;align-items:center}
.participa-route-art img{width:94%;height:100%;object-fit:contain;object-position:center}
.participa-copy{position:absolute;color:#fff;font-size:15px;line-height:1.08;font-weight:700;text-shadow:0 1px 2px #0008;z-index:2}
.participa-copy strong{background:#ef8a22;color:#fff;padding:1px 4px;font-size:17px}
.participa-copy-1{top:23px;left:0;width:47%;text-align:right}
.participa-copy-2{top:166px;right:-2%;width:47%;text-align:left}
.participa-copy-3{top:324px;left:-1%;width:50%;text-align:right}
.participa-copy-4{top:490px;right:-2%;width:48%;text-align:left}
.participa-board-wrap{height:640px;display:flex;align-items:center;justify-content:center;overflow:visible}
.participa-board{width:100%;height:100%;object-fit:contain;object-position:center}
.participa-footer{position:absolute;left:5%;bottom:4px;width:45%;justify-content:center;margin:0;z-index:3}

@media(max-width:1000px){
  .ruta-map-wrap,.leaflet-route-map{height:430px;min-height:430px}
  .prize-grid{grid-template-columns:1fr}
  .participa-layout{grid-template-columns:1fr}
  .participa-left{height:600px}
  .participa-board-wrap{height:520px}
}
@media(max-width:700px){
  .prize-card{font-size:15px;padding:20px 16px}.prize-card h3{font-size:23px}
  .participa-copy{font-size:12px}.participa-copy strong{font-size:13px}
  .participa-left{height:520px}.participa-copy-1{top:20px}.participa-copy-2{top:138px}.participa-copy-3{top:265px}.participa-copy-4{top:402px}
  .participa-board-wrap{height:420px}
  .public-footer{font-size:13px}
}


/* ===== V0.6 · reparación estable tras V0.5 ===== */
/* Fondo: no sustituir la madera por negro en Horarios. */
body.route-horarios,
body.route-ruta,
body.route-participa,
body.route-account,
body.route-simple,
body.route-tren{
  background:#1a0802 url('/assets/legacy/fondo-2025.webp') center top/cover fixed no-repeat !important;
}

/* En portada el logo pequeño no aparece; en páginas internas el enlace lleva a #/. */
body.route-home .site-header .brand{
  visibility:hidden !important;
  pointer-events:none !important;
}

/* Premios: impedir que cada palabra quede en una línea. */
.prize-grid{align-items:start}
.prize-card{min-width:0;overflow:visible}
.prize-line{
  display:grid !important;
  grid-template-columns:30px minmax(0,1fr) !important;
  column-gap:9px !important;
  align-items:start !important;
  margin:0 0 12px !important;
  width:100% !important;
}
.prize-text{
  min-width:0 !important;
  width:100% !important;
  display:block !important;
  white-space:normal !important;
  word-break:normal !important;
  overflow-wrap:normal !important;
  line-height:1.65 !important;
}
.prize-text b{display:inline !important}

/* Participa: mantener dos zonas como en la web original. */
.participa-layout{grid-template-columns:48% 52% !important;gap:14px !important}
.participa-left,.participa-board-wrap{height:640px !important}
.participa-board{width:100% !important;height:100% !important;object-fit:contain !important}

/* El mapa de La Ruta es informativo e independiente de Sigue al tren. */
.ruta-map-wrap{height:510px !important;min-height:510px !important;background:#eee;overflow:hidden}
.ruta-map-wrap>img{display:block;width:100% !important;height:100% !important;object-fit:cover !important}

@media(max-width:1000px){
  .participa-layout{grid-template-columns:1fr !important}
  .participa-left{height:600px !important}
  .participa-board-wrap{height:520px !important}
  .ruta-map-wrap{height:430px !important;min-height:430px !important}
}


/* ===== V0.6.1 · reparación cerrada ===== */
body.route-horarios{background:#1a0802 url('/assets/legacy/fondo-2025.webp') center top/cover fixed no-repeat !important}
body.route-home .site-header .brand{visibility:hidden !important;pointer-events:none !important}
.participa-board{display:block;width:100% !important;height:100% !important;object-fit:contain !important}
.prize-line{display:grid !important;grid-template-columns:30px minmax(0,1fr) !important;gap:10px !important;width:100% !important}
.prize-text{display:block !important;min-width:0 !important;width:auto !important;white-space:normal !important;word-break:normal !important;overflow-wrap:break-word !important}
.ruta-map-wrap>img{display:block !important;width:100% !important;height:100% !important;object-fit:cover !important}


/* ===== V0.7 · fidelidad visual, consentimiento, fuente e icono del tren ===== */
body,button,input,textarea,select{font-family:'Lato',Arial,Helvetica,sans-serif}
.legacy-page-title,.page-title,.ruta-copy,.calendar-day,.participa-copy,.prize-card,#nav>a{
  font-family:'Lato',Arial,Helvetica,sans-serif
}
.legacy-page-title,.page-title{font-weight:700}
#nav>a{font-weight:400}
.train-link{padding:4px 14px 4px 9px}
.train-menu-icon{display:block;width:44px!important;height:44px!important;object-fit:contain!important}

/* Participa: ambos dibujos salen de los SVG originales del backup, no de capturas. */
.participa-layout{grid-template-columns:49% 51%!important;gap:10px!important}
.participa-left{height:620px!important}
.participa-route-art{inset:0!important}
.participa-route-art img{width:100%!important;height:100%!important;object-fit:contain!important;object-position:center top!important}
.participa-board-wrap{height:620px!important}
.participa-board{width:100%!important;height:100%!important;object-fit:contain!important;object-position:center top!important}
.participa-copy{font-family:'Lato',Arial,Helvetica,sans-serif;font-weight:700}
.participa-footer{
  position:static!important;
  width:49%!important;
  margin:-8px 0 0 0!important;
  display:flex!important;
  justify-content:center!important;
}
.legacy-outline-btn{min-width:250px;justify-content:center}

/* Gestión de consentimiento al estilo de la web original. */
.consent-tab{
  position:fixed;right:-150px;bottom:0;z-index:240;
  width:222px;height:47px;border:1px solid #d5cdc7;border-bottom:0;
  border-radius:16px 0 0 0;background:#fff;color:#5b4432;
  font-weight:700;font-size:14px;letter-spacing:.1px;cursor:pointer;
  box-shadow:0 -3px 16px rgba(0,0,0,.12);
  transition:right .22s ease,box-shadow .22s ease;
}
.consent-tab:hover,.consent-tab:focus{right:0;box-shadow:0 -5px 24px rgba(0,0,0,.20)}
.consent-overlay{
  position:fixed;inset:0;z-index:260;display:none;align-items:center;justify-content:center;
  padding:22px;background:rgba(0,0,0,.28);backdrop-filter:blur(1px)
}
.consent-overlay.open{display:flex}
.consent-modal{
  position:relative;width:min(590px,calc(100vw - 28px));max-height:calc(100vh - 44px);overflow:auto;
  background:#fff;color:#5f4332;border-radius:14px;padding:22px 24px 18px;
  box-shadow:0 18px 55px rgba(0,0,0,.38)
}
.consent-modal h2{margin:2px 34px 22px;text-align:center;font-size:18px;font-weight:700;color:#5a3f2e}
.consent-modal>p{font-size:14px;line-height:1.45;margin:0 0 22px}
.consent-close{position:absolute;right:17px;top:10px;border:0;background:transparent;color:#e9e6e3;font-size:32px;line-height:1;cursor:pointer;font-weight:900}
.consent-actions{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:8px 0 16px}
.consent-actions button,.consent-save{height:46px;border-radius:6px;font-size:16px;font-weight:700;cursor:pointer}
.consent-accept{border:0;background:#fa9229;color:#fff}
.consent-preferences-btn{border:1px solid #e5e2df;background:#f7f7f7;color:#4c3425}
.consent-links{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;font-size:12px;text-decoration:underline}
.consent-preferences{border-top:1px solid #eee;margin:4px 0 14px;padding-top:8px}
.consent-preferences label{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 2px;border-bottom:1px solid #eee}
.consent-preferences label span{display:flex;flex-direction:column;gap:2px}
.consent-preferences small{font-size:11px;color:#8b7d72;font-weight:400}
.consent-preferences input{width:20px;height:20px;accent-color:#f7931e}
.consent-save{width:100%;margin-top:12px;border:0;background:#5b4333;color:#fff}
body.consent-open{overflow:hidden}

@media(max-width:900px){
  .participa-layout{grid-template-columns:1fr!important}
  .participa-left{height:560px!important}
  .participa-board-wrap{height:500px!important}
  .participa-footer{width:100%!important;margin:0!important}
  .consent-tab{right:-160px;width:215px}
}
@media(max-width:560px){
  .consent-modal{padding:20px 17px 16px}
  .consent-actions{grid-template-columns:1fr}
  .consent-tab{height:43px}
}

/* ===== V0.8 · volver a la composición 2025 + consentimiento inferior ===== */
/* La tipografía de la web original: Fira Sans desde el backup de WordPress. */
body,button,input,textarea,select,
.legacy-page-title,.page-title,.ruta-copy,.calendar-day,.participa-copy,.prize-card,#nav>a{
  font-family:'Fira Sans',Arial,Helvetica,sans-serif!important;
}
.legacy-page-title,.page-title{font-weight:700!important;letter-spacing:0!important}
#nav>a{font-weight:400!important}

/* Participa: volver a la composición estable anterior.
   Izquierda: participa-2025.svg del backup 2025.
   Derecha: icon_participa.svg del backup original. */
body.route-participa main{max-width:1320px!important}
.participa-real{padding:12px 0 24px!important}
.participa-layout{display:grid!important;grid-template-columns:48% 52%!important;gap:12px!important;align-items:start!important}
.participa-left{position:relative!important;height:640px!important;min-width:0!important}
.participa-route-art{position:absolute!important;inset:0!important;display:flex!important;justify-content:center!important;align-items:center!important}
.participa-route-art img{width:94%!important;height:100%!important;object-fit:contain!important;object-position:center!important;opacity:1!important;filter:none!important}
.participa-copy{position:absolute!important;color:#fff!important;font-size:15px!important;line-height:1.08!important;font-weight:700!important;text-shadow:0 1px 2px #0008!important;z-index:2!important}
.participa-copy strong{background:#ef8a22!important;color:#fff!important;padding:1px 4px!important;font-size:17px!important}
.participa-copy-1{top:23px!important;left:0!important;width:47%!important;text-align:right!important}
.participa-copy-2{top:166px!important;right:-2%!important;width:47%!important;text-align:left!important}
.participa-copy-3{top:324px!important;left:-1%!important;width:50%!important;text-align:right!important}
.participa-copy-4{top:490px!important;right:-2%!important;width:48%!important;text-align:left!important}
.participa-board-wrap{height:640px!important;display:flex!important;align-items:center!important;justify-content:center!important;overflow:visible!important}
.participa-board{display:block!important;width:100%!important;height:100%!important;object-fit:contain!important;object-position:center!important;filter:none!important}
.participa-footer{position:static!important;width:48%!important;margin:-4px 0 0 0!important;display:flex!important;justify-content:center!important}
.legacy-outline-btn{min-width:250px!important;justify-content:center!important}

/* Consentimiento: la pestaña se oculta hacia ABAJO, no hacia un lateral. */
.consent-tab{
  position:fixed!important;right:18px!important;bottom:-24px!important;z-index:240!important;
  width:auto!important;min-width:218px!important;height:48px!important;padding:0 18px!important;
  border:1px solid #d5cdc7!important;border-bottom:0!important;
  border-radius:15px 15px 0 0!important;background:#fff!important;color:#5b4432!important;
  font-weight:700!important;font-size:14px!important;cursor:pointer!important;
  box-shadow:0 -3px 16px rgba(0,0,0,.12)!important;
  transition:bottom .22s ease,box-shadow .22s ease!important;
}
.consent-tab:hover,.consent-tab:focus{bottom:0!important;box-shadow:0 -5px 24px rgba(0,0,0,.20)!important}

/* El cuadro original aparece DESDE ABAJO, anclado a la izquierda. */
.consent-overlay{
  position:fixed!important;inset:0!important;z-index:260!important;
  display:none!important;align-items:flex-end!important;justify-content:flex-start!important;
  padding:0 0 18px 16px!important;background:transparent!important;backdrop-filter:none!important;
  pointer-events:none!important;
}
.consent-overlay.open{display:flex!important}
.consent-overlay.open .consent-modal{animation:consentSlideUp .24s ease-out both!important}
@keyframes consentSlideUp{from{transform:translateY(calc(100% + 30px));opacity:.2}to{transform:translateY(0);opacity:1}}
.consent-modal{
  pointer-events:auto!important;position:relative!important;
  width:min(526px,calc(100vw - 32px))!important;max-height:calc(100vh - 36px)!important;overflow:auto!important;
  background:#fff!important;color:#5f4332!important;border-radius:14px!important;padding:22px 20px 18px!important;
  box-shadow:0 12px 38px rgba(0,0,0,.32)!important;
}
.consent-modal h2{margin:2px 34px 22px!important;text-align:center!important;font-size:18px!important;font-weight:700!important;color:#5a3f2e!important}
.consent-modal>p{font-size:14px!important;line-height:1.45!important;margin:0 0 22px!important}
.consent-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:14px!important;margin:8px 0 16px!important}
.consent-actions button,.consent-save{height:46px!important;border-radius:6px!important;font-size:16px!important;font-weight:700!important}
.consent-links{display:flex!important;justify-content:center!important;gap:14px!important;flex-wrap:wrap!important;font-size:12px!important}
body.consent-open{overflow:auto!important}

@media(max-width:1000px){
  .participa-layout{grid-template-columns:1fr!important}
  .participa-left{height:600px!important}
  .participa-board-wrap{height:520px!important}
  .participa-footer{width:100%!important;margin:0!important}
}
@media(max-width:700px){
  .participa-copy{font-size:12px!important}.participa-copy strong{font-size:13px!important}
  .participa-left{height:520px!important}.participa-copy-1{top:20px!important}.participa-copy-2{top:138px!important}.participa-copy-3{top:265px!important}.participa-copy-4{top:402px!important}
  .participa-board-wrap{height:420px!important}
  .consent-overlay{padding:0!important;align-items:flex-end!important}
  .consent-modal{width:100%!important;max-width:none!important;border-radius:16px 16px 0 0!important;max-height:82vh!important}
  .consent-actions{grid-template-columns:1fr!important}
  .consent-tab{right:10px!important;bottom:-25px!important;min-width:205px!important}
}
