/* Grupo B&B: el grupo es el marco (negro, hueso, vino); cada restaurante trae su color y su letra por variables. */
:root{--a:#541110;--a2:#9A7B3F;--tinta:#111;--fondo:#fff;--panel:#F2EDE4;--linea:rgba(0,0,0,.14);--gris:#6b635c;
  --disp:'Barlow Condensed','Nimbus Sans','Helvetica Neue',Arial,sans-serif;--cuerpo:'Nimbus Sans','Helvetica Neue',Helvetica,Arial,sans-serif;--dw:700;
  --g:'Barlow Condensed','Nimbus Sans','Helvetica Neue',Arial,sans-serif;color-scheme:light}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:120px}
body{margin:0;background:var(--fondo);color:var(--tinta);font-family:var(--cuerpo);font-size:17px;line-height:1.5;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
h1,h2,h3{margin:0;text-wrap:balance;line-height:1.05}
p{margin:0}
main{display:flex;flex-direction:column}
.k{font-family:var(--g);font-weight:700;letter-spacing:.14em;text-transform:uppercase;font-size:14px}
.k a{text-decoration:none}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:10px 20px;border-radius:999px;background:var(--a);color:#fff;font-weight:600;text-decoration:none;border:2px solid var(--a);font-size:16px;font-family:inherit;cursor:pointer}
.btn.sec{background:transparent;color:var(--tinta);border-color:var(--tinta)}
.btn:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--a2);outline-offset:2px}
.lnk{font-weight:600;text-underline-offset:4px}
.acc{display:flex;gap:10px 14px;flex-wrap:wrap;align-items:center}
mark{background:#ffe08a;padding:0 5px;border-radius:4px;font-size:.8em;font-weight:700}

.borrador{background:#ffe08a;color:#3a2a00;font-size:14px;padding:6px 20px;display:flex;gap:16px;align-items:baseline;flex-wrap:wrap}
.borrador details{flex:1;min-width:0}.borrador summary{cursor:pointer;font-weight:600}.borrador ul{margin:6px 0 4px;padding-left:20px}

.cab{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:20px;padding:10px 20px;background:rgba(255,255,255,.96);border-bottom:1px solid var(--linea);backdrop-filter:blur(6px);color:#111;font-family:'Nimbus Sans','Helvetica Neue',Arial,sans-serif}
.cab .marca{display:flex;align-items:center;gap:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;text-decoration:none;font-family:var(--g);font-size:22px}
.cab .marca img{height:34px;width:auto}
.cab nav{display:flex;gap:22px;margin-left:auto;font-size:15.5px;font-weight:600}
.cab nav a{text-decoration:none;padding:6px 0}
.cab nav a:hover{text-decoration:underline;text-underline-offset:6px}
.idioma{border:1.5px solid #111;border-radius:999px;padding:6px 14px;text-decoration:none;font-size:14px;font-weight:700;white-space:nowrap}

.bloque{padding:56px 20px;max-width:1180px;width:100%;margin:0 auto;display:flex;flex-direction:column;gap:22px}
.bloque.estrecho{max-width:760px}
.bloque>h2,.banda h2,.form h2{font-family:var(--g);font-weight:700;font-size:clamp(30px,4.5vw,44px);text-transform:uppercase;letter-spacing:.01em}
.bloque h1{font-family:var(--g);font-weight:700;font-size:clamp(40px,7vw,68px);text-transform:uppercase}
.intro{font-size:clamp(19px,2.2vw,23px);line-height:1.4;max-width:60ch}

/* Portada */
.hero{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:36px;align-items:center;padding:48px 20px 40px;max-width:1180px;width:100%;margin:0 auto}
.hero h1{font-family:var(--g);font-weight:700;font-size:clamp(46px,7.2vw,92px);text-transform:uppercase;line-height:.92;margin:10px 0 18px}
.hero .sub{font-size:clamp(18px,2vw,21px);max-width:44ch;margin-bottom:24px}
.hero .k{color:var(--a)}
.h-img{display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:150px;gap:8px}
.h-img img{width:100%;height:100%;object-fit:cover;border-radius:6px}
.h-img img:nth-child(1){grid-column:span 4;grid-row:span 2}.h-img img:nth-child(2){grid-column:span 2}.h-img img:nth-child(3){grid-column:span 2}
.h-img img:nth-child(4){grid-column:span 3}.h-img img:nth-child(5){grid-column:span 3}
.sedes{display:grid;grid-template-columns:repeat(6,1fr);gap:34px 26px}
.sede{grid-column:span 2;display:flex;flex-direction:column;gap:14px;min-width:0}
.sede:nth-child(-n+2){grid-column:span 3}
.sede .img{display:block;overflow:hidden;border-radius:8px;aspect-ratio:3/2;background:var(--panel)}
.sede .img img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.sede:hover .img img{transform:scale(1.03)}
.sede .txt{display:flex;flex-direction:column;gap:8px;border-top:4px solid var(--a);padding-top:12px}
.sede .tipo{font-size:13.5px;letter-spacing:.06em;text-transform:uppercase;font-weight:700;color:var(--gris)}
.sede h3{font-family:var(--g);font-size:34px;text-transform:uppercase}
.sede h3 a{text-decoration:none}
.sede .acc{margin-top:6px}
.sede .btn{background:#111;border-color:#111;min-height:42px;padding:8px 18px}
.banda{max-width:none;background:#111;color:#fff;display:grid;grid-template-columns:repeat(2,minmax(0,560px));justify-content:center;gap:40px;padding:60px 20px}
.banda.uno{grid-template-columns:minmax(0,760px);background:var(--a2);margin-top:20px}
.banda>div{display:flex;flex-direction:column;gap:14px;align-items:flex-start}
.banda .btn{background:#fff;color:#111;border-color:#fff}

/* Página de restaurante */
.p-sede h2,.p-sede .msec h3{font-family:var(--disp);font-weight:var(--dw);text-transform:none;letter-spacing:0}
.p-sede .bloque>h2,.p-sede .banda h2{font-size:clamp(34px,5vw,52px)}
.s-hero{position:relative;min-height:min(72vh,620px);display:flex;align-items:flex-end;color:#fff;background:#111;overflow:hidden}
.s-hero .fondo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.s-capa{position:relative;width:100%;padding:150px 20px 34px;background:linear-gradient(to top,rgba(0,0,0,.82),rgba(0,0,0,.45) 55%,rgba(0,0,0,0));display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.s-capa>*{max-width:1140px;width:100%;margin-inline:auto}
.s-capa h1{font-size:0}
.s-capa .lg{max-height:120px;max-width:min(380px,70vw);width:auto}
.s-capa .wm{font-family:var(--disp);font-weight:var(--dw);font-size:clamp(46px,9vw,96px);line-height:1}
.serie{font-family:var(--disp);font-weight:var(--dw);font-size:clamp(26px,4vw,40px);line-height:1.1}
.datos{max-width:1180px;width:100%;margin:0 auto;padding:40px 20px 8px;display:flex;flex-direction:column;gap:22px}
.datos dl{margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 40px;border-top:1px solid var(--linea);border-bottom:1px solid var(--linea);padding:18px 0}
.datos dt{font-size:13px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:var(--a)}
.datos dd{margin:3px 0 0;font-size:18px}
.gal{columns:4 220px;column-gap:10px}
.gal figure{margin:0 0 10px;break-inside:avoid;border-radius:6px;overflow:hidden;background:var(--panel)}
.gal img{width:100%}
.chips{position:sticky;top:57px;z-index:5;display:flex;gap:8px;overflow-x:auto;padding:10px 0;background:var(--fondo);border-bottom:1px solid var(--linea);scrollbar-width:thin}
.chips a{white-space:nowrap;text-decoration:none;font-size:14.5px;font-weight:600;padding:7px 14px;border-radius:999px;background:var(--panel)}
.chips a:hover{background:var(--a);color:#fff}
.msec{padding-top:26px}
.msec h3{font-size:clamp(28px,4vw,40px);color:var(--a);margin-bottom:6px}
.mnota{color:var(--gris);font-size:15px;max-width:70ch}
.mnota.fin{margin-top:30px;padding-top:16px;border-top:1px solid var(--linea)}
.platos{list-style:none;margin:10px 0 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 48px}
.platos li{padding:13px 0;border-bottom:1px solid var(--linea);break-inside:avoid}
.pl{display:flex;justify-content:space-between;gap:16px;align-items:baseline}
.pl b{font-weight:700;font-size:17.5px}
.pr,.vars{font-variant-numeric:tabular-nums;font-weight:700;white-space:nowrap}
.vars{display:flex;flex-direction:column;align-items:flex-end;gap:2px;font-size:15.5px}
.vars i{font-style:normal;font-weight:500;color:var(--gris);margin-right:6px}
.platos p{color:var(--gris);font-size:15.5px;margin-top:3px;max-width:52ch}
.s-escala .cab,.s-estica .cab{background:rgba(255,255,255,.96)}

/* Eventos y formularios */
.lugares{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.lugares article{display:flex;flex-direction:column;gap:8px}
.lugares img{border-radius:8px;aspect-ratio:3/2;object-fit:cover;width:100%}
.lugares h3{font-family:var(--g);font-size:28px;text-transform:uppercase}
.lugares p{color:var(--gris);font-size:15px}
.form{display:flex;flex-direction:column;gap:16px;background:var(--panel);padding:28px;border-radius:12px}
.form label{display:flex;flex-direction:column;gap:6px;font-size:14.5px;font-weight:600}
.form input[type=text],.form input[type=tel],.form input[type=date],.form input[type=number],.form select,.form textarea{font:inherit;font-weight:400;padding:11px 12px;border:1.5px solid rgba(0,0,0,.35);border-radius:8px;background:#fff;color:#111;width:100%;min-height:46px}
.dos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.form .chk{flex-direction:row;align-items:flex-start;gap:10px;font-weight:400;font-size:15px}
.form .chk input{width:20px;height:20px;margin-top:2px;flex:0 0 auto}
.form .btn{align-self:flex-start}
.hp{position:absolute;left:-9999px}
.estado{font-weight:600}

.pie{background:#111;color:#fff;padding:36px 20px;display:flex;justify-content:space-between;gap:20px 40px;flex-wrap:wrap;font-size:15px;font-family:'Nimbus Sans','Helvetica Neue',Arial,sans-serif}
.pie div{display:flex;flex-direction:column;gap:6px}
.pie a{text-underline-offset:4px}

@media (max-width:900px){
  .hero{grid-template-columns:1fr;padding-top:30px}
  .h-img{grid-auto-rows:110px}
  .sede,.sede:nth-child(-n+2){grid-column:span 3}
  .platos{grid-template-columns:1fr}
  .lugares{grid-template-columns:1fr}
  .banda{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:640px){
  body{font-size:16px}
  .cab{gap:10px;padding:8px 16px;flex-wrap:wrap}
  .cab nav{order:3;width:100%;margin:0;gap:18px;font-size:14.5px;overflow-x:auto;white-space:nowrap}
  .idioma{margin-left:auto}
  .chips{top:92px}
  html{scroll-padding-top:150px}
  .bloque{padding:40px 16px}.hero,.datos{padding-inline:16px}
  .sede,.sede:nth-child(-n+2){grid-column:span 6}
  .datos dl,.dos{grid-template-columns:1fr}
  .gal{columns:2 140px}
  .form{padding:20px 16px}
  .s-capa{padding:120px 16px 26px}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.sede .img img{transition:none}}
/* Platos con varias presentaciones: en pantallas angostas los precios bajan a su propia línea */
.platos li,.pl b{min-width:0}.pl b{overflow-wrap:anywhere}
.vars{white-space:normal}.vars span{white-space:nowrap}
@media (max-width:640px){.pl{flex-wrap:wrap}.vars{flex-direction:row;flex-wrap:wrap;gap:2px 14px;align-items:baseline;justify-content:flex-start;width:100%}}
@media (max-width:640px){.vars span{white-space:normal}}

/* Menú desplegable (las «rayitas») */
.menu{position:static}
.menu summary{list-style:none;display:flex;align-items:center;gap:9px;cursor:pointer;font-weight:700;font-size:14px;padding:8px 14px;border-radius:999px;background:#111;color:#fff;user-select:none}
.menu summary::-webkit-details-marker{display:none}
.ray{width:18px;height:12px;border-top:2px solid #fff;border-bottom:2px solid #fff;position:relative}
.ray::after{content:"";position:absolute;left:0;right:0;top:3px;border-top:2px solid #fff}
.panel{position:absolute;left:0;right:0;top:100%;background:#111;color:#fff;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px 40px;padding:32px max(20px,calc((100vw - 1140px)/2)) 40px;max-height:calc(100vh - 60px);overflow:auto;box-shadow:0 20px 40px rgba(0,0,0,.25)}
.panel div{display:flex;flex-direction:column;gap:2px}
.panel h2{font-family:var(--g);font-size:15px;letter-spacing:.14em;text-transform:uppercase;color:#bdb3a6;margin-bottom:8px;font-weight:700}
.panel a{text-decoration:none;font-size:21px;font-weight:700;padding:7px 0;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;font-family:'Nimbus Sans','Helvetica Neue',Arial,sans-serif}
.panel a small{font-size:13px;font-weight:400;color:#bdb3a6}
.panel a:hover{text-decoration:underline;text-underline-offset:5px}
/* Fotos que cambian en las tarjetas */
.rot{position:relative}
.rot img{position:absolute;inset:0;opacity:0;transition:opacity .7s ease}
.rot img.on{opacity:1}
.redes{font-size:15.5px}.redes a{font-weight:600;text-underline-offset:4px}
.gal figcaption{font-size:13px;padding:6px 8px;color:var(--gris);background:var(--fondo)}
.chips.fijo{position:static;border:0;flex-wrap:wrap}
.p-galeria .bloque>h2 a{text-decoration:none}
.contactos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 44px}
.contactos article{display:flex;flex-direction:column;gap:6px;border-top:4px solid #111;padding-top:12px}
.contactos h3{font-family:var(--g);font-size:30px;text-transform:uppercase}.contactos h3 a{text-decoration:none}
.contactos .acc{margin-top:8px}.contactos .btn{background:#111;border-color:#111}
@media (max-width:900px){.contactos{grid-template-columns:1fr}.panel{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.cab .navp{display:none}.cab{flex-wrap:nowrap}.idioma{margin-left:auto}.panel{grid-template-columns:1fr;padding:24px 16px 32px}.chips{top:57px}html{scroll-padding-top:120px}.menu .mtx{display:none}.menu summary{padding:11px 12px}}

/* Nosotros */
.mv{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:36px 56px}
.mv article{display:flex;flex-direction:column;gap:12px;border-top:4px solid var(--a);padding-top:16px}
.mv h2{font-family:var(--g);font-size:20px;letter-spacing:.14em;text-transform:uppercase;color:var(--a)}
.mv p{font-size:clamp(22px,2.6vw,29px);line-height:1.3;text-wrap:balance}
.vals{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:22px;counter-reset:v}
.vals li{counter-increment:v;display:flex;flex-direction:column;gap:6px;border-top:1px solid var(--linea);padding-top:14px}
.vals li::before{content:"0" counter(v);font-family:var(--g);font-weight:700;color:var(--a2);font-size:15px;letter-spacing:.1em}
.vals b{font-family:var(--g);font-size:25px;text-transform:uppercase;line-height:1.05}
.vals span{font-size:15.5px;color:var(--gris)}
.banda.cult{background:#111;margin-top:0}
.cult .lemac{font-family:var(--g);font-size:clamp(34px,5vw,54px);text-transform:uppercase;line-height:1;font-weight:700}
.cult ul{margin:8px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:0;width:100%}
.cult li{padding:13px 0;border-top:1px solid rgba(255,255,255,.22);font-size:19px}
/* Mapa */
#mapa{height:min(68vh,560px);min-height:380px;border-radius:10px;background:var(--panel);z-index:0}
.mtip{background:#fff;border:0;border-radius:6px;box-shadow:0 1px 6px rgba(0,0,0,.25);font:700 13px/1.2 'Nimbus Sans','Helvetica Neue',Arial,sans-serif;color:#111;padding:4px 8px}
.mtip::before{display:none}
.leaflet-popup-content{font:400 14px/1.4 'Nimbus Sans','Helvetica Neue',Arial,sans-serif}.leaflet-popup-content b{font-size:16px}
.mlistas{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 56px;margin-top:10px}
.mlistas h2{font-family:var(--g);font-size:28px;text-transform:uppercase;margin-bottom:6px}
.mlist{list-style:none;margin:0;padding:0}
.mlist li{display:flex;flex-direction:column;gap:2px;padding:12px 0 12px 16px;border-bottom:1px solid var(--linea);border-left:5px solid var(--a,#7a7269);margin-bottom:6px}
.mlist:not(.sedesl) li{border-left-color:#b9b0a5}
.mlist b{font-size:18px}.mlist b a{text-decoration:none}.mlist span{font-size:15px}.mlist small{font-size:13.5px;color:var(--gris)}
.mapa-t{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:40px;align-items:center;border-top:1px solid var(--linea)}
.mapa-t>div{display:flex;flex-direction:column;gap:14px;align-items:flex-start}
.mapa-t h2{font-family:var(--g);font-weight:700;font-size:clamp(30px,4.5vw,44px);text-transform:uppercase}
@media (max-width:1000px){.vals{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:900px){.mv,.mlistas,.mapa-t{grid-template-columns:1fr}}
@media (max-width:1100px){.cab .navp{gap:16px;font-size:14.5px}}
@media (max-width:900px){.cab .navp{display:none}}
/* Misión y visión oficiales (texto largo) y valores con descripción */
.mv p{font-size:clamp(17px,1.6vw,19px);line-height:1.5;text-wrap:pretty}
.vals b{font-size:23px}.vals span{font-size:14.5px}
/* Mapa: botones de navegación en cada punto y espacio de las municipalidades */
.mbot{display:flex;gap:8px;margin:10px 0 8px}
.mbot a{flex:1;text-align:center;background:#111;color:#fff !important;text-decoration:none;font-weight:700;padding:9px 12px;border-radius:999px;font-size:14px;white-space:nowrap}
.mver{font-weight:700;color:#111 !important}
.munis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 44px}
.munis article{display:flex;flex-direction:column;gap:8px;border-top:4px solid #111;padding-top:14px}
.munis h3{font-family:var(--g);font-size:28px;text-transform:uppercase}
@media (max-width:900px){.munis{grid-template-columns:1fr}}
/* Mapa: el nombre del restaurante también abre las opciones */
.mtip{cursor:pointer;pointer-events:auto !important;border:1.5px solid #111;padding:5px 10px}
.mtip i{font-style:normal;font-size:11px;margin-left:2px;opacity:.7}
.mtip:hover{background:#111;color:#fff}
.mayuda{font-size:15.5px;font-weight:600;background:var(--panel);border-radius:8px;padding:10px 14px;align-self:flex-start}
/* Mapa: botones para volar a cada restaurante y capas */
#mapa{height:min(78vh,680px)}
.mir{display:flex;gap:8px;flex-wrap:wrap}
.chipb{font:inherit;font-size:14.5px;font-weight:700;padding:8px 15px;border-radius:999px;border:2px solid var(--a,#111);background:#fff;color:#111;cursor:pointer}
.chipb:hover,.chipb:focus-visible{background:var(--a,#111);color:#fff}
.chipb.todo{border-color:#111;border-style:dashed}
.leaflet-control-layers{font:600 13.5px/1.4 'Nimbus Sans','Helvetica Neue',Arial,sans-serif;border-radius:8px}
.leaflet-control-layers label{margin:2px 0}
/* Video de portada sobre la foto: aparece cuando ya está reproduciendo */
.s-hero .vid{opacity:0;transition:opacity .9s ease}
.s-hero .vid.listo{opacity:1}
.vpausa{position:absolute;right:16px;top:16px;z-index:2;font:600 12.5px/1 'Nimbus Sans','Helvetica Neue',Arial,sans-serif;color:#fff;background:rgba(0,0,0,.55);border:1px solid rgba(255,255,255,.6);border-radius:999px;padding:8px 13px;cursor:pointer}
.vpausa:hover,.vpausa:focus-visible{background:#000}
/* Clip vertical en pantalla ancha: va en un panel a la derecha, sin recortarlo a una franja */
@media (min-width:900px){
  .s-hero.conv:has(.vid.vert){min-height:min(84vh,720px)}
  .s-hero .vid.vert{left:auto;right:0;width:auto;height:100%;aspect-ratio:9/16;max-width:46%;box-shadow:-30px 0 60px rgba(0,0,0,.45)}
  .s-hero.conv:has(.vid.vert) .s-capa>*{max-width:1140px}
}

/* Ruta al volcán: la línea se dibuja al llegar, cada parada se abre */
.rv{display:flex;flex-direction:column;gap:14px}
.rv-ay{font-size:14px;color:var(--gris);margin:0}
.ruta{list-style:none;margin:0;padding:0 0 0 30px;position:relative;display:flex;flex-direction:column;gap:6px}
.ruta::before{content:"";position:absolute;left:8px;top:10px;bottom:10px;width:3px;background:#111;transform-origin:top;transform:scaleY(var(--lin,1))}
.ruta li{position:relative}
.ruta li::before{content:"";position:absolute;left:-29px;top:14px;width:13px;height:13px;border-radius:50%;background:var(--a,#111);border:3px solid #fff;box-shadow:0 0 0 1px #111;transition:transform .25s ease}
.ruta li.fin::before{background:#541110}
.ruta details{border-radius:12px;transition:background .2s ease}
.ruta summary{list-style:none;cursor:pointer;padding:8px 40px 8px 10px;display:flex;flex-direction:column;position:relative;border-radius:12px}
.ruta summary::-webkit-details-marker{display:none}
.ruta summary::after{content:"+";position:absolute;right:12px;top:50%;transform:translateY(-50%);font:600 22px/1 var(--g);color:#111;transition:transform .25s ease}
.ruta summary:hover,.ruta summary:focus-visible{background:rgba(0,0,0,.05)}
.ruta summary:hover b{text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:2px}
.ruta li:hover::before,.ruta li:has(details[open])::before{transform:scale(1.35)}
.ruta b{font-family:var(--g);font-size:23px;text-transform:uppercase;line-height:1.1}
.ruta span{font-size:14px;color:var(--gris)}
.ruta em{font-style:normal;font-size:12.5px;color:var(--gris);opacity:.85}
.ruta details[open]{background:#fff;box-shadow:0 8px 28px rgba(0,0,0,.08)}
.ruta details[open] summary::after{transform:translateY(-50%) rotate(45deg)}
.ruta .rp{display:flex;gap:14px;padding:4px 12px 14px 10px;align-items:flex-start}
.ruta .rf{flex:0 0 112px;border-radius:10px;overflow:hidden;aspect-ratio:1}
.ruta .rf img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s ease}
.ruta .rf:hover img{transform:scale(1.06)}
.ruta .rp p{margin:0 0 8px;font-size:14.5px}
.ruta .ra{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center}
.ruta .rl{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:13.5px}
.ruta .rl a{font-weight:600}
@media (prefers-reduced-motion:no-preference){
  .ruta.espera{--lin:0}
  .ruta::before{transition:transform 1.4s cubic-bezier(.5,0,.2,1)}
  .ruta.espera li{opacity:0;transform:translateX(-10px)}
  .ruta li{transition:opacity .45s ease .15s,transform .45s ease .15s}
  .ruta li:nth-child(1){transition-delay:0.15s}.ruta li:nth-child(2){transition-delay:0.35s}.ruta li:nth-child(3){transition-delay:0.55s}.ruta li:nth-child(4){transition-delay:0.75s}.ruta li:nth-child(5){transition-delay:0.95s}.ruta li:nth-child(6){transition-delay:1.15s}
  .ruta details[open] .rp{animation:rv-abre .3s ease}
}
@keyframes rv-abre{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
@media (max-width:520px){.ruta .rf{flex-basis:84px}.ruta b{font-size:20px}}
/* Ilustración de la subida (solo con JavaScript; sin él queda la lista) */
.rv-il{display:none;width:100%;height:auto;border-radius:18px;overflow:visible}
.rv.ilus .rv-il{display:block}
.rv-il .sol{fill:#f1d9a6;opacity:.7}
.rv-il .lejos{fill:#d6d3c2;opacity:.8}
.rv-il .campo.c0{fill:#a9b56f;opacity:.55}.rv-il .campo.c1{fill:#c2a979;opacity:.45}.rv-il .campo.c2{fill:#8fa35c;opacity:.5}
.rv-il .crater{fill:#4f4a42}
.rv-il .humo circle{fill:#e7e2d8;opacity:.85}
.rv-il .valle{fill:#d9dfbe}
.rv-il .arbol{fill:#4a6b3a}
.rv-il .casita{fill:#efe6d6;stroke:#8a7f6e;stroke-width:1}
.rv-il .basilica{fill:#f4efe6;stroke:#7a6f5f;stroke-width:1.2}
.rv-il .guia{fill:none;stroke:none}
.rv-il .camino{fill:none;stroke:#2f2d2a;stroke-width:7;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:0}
.rv-il .raya{fill:none;stroke:#fff;stroke-width:1.4;stroke-dasharray:6 7;opacity:.85}
.rv-il .viajero{fill:#fff;stroke:#111;stroke-width:3;filter:drop-shadow(0 2px 3px rgba(0,0,0,.35))}
.rv-il .pa{cursor:pointer;outline:none}
.rv-il .pin{transform-box:fill-box;transform-origin:center;transition:transform .25s ease}
.rv-il .pin>circle{fill:var(--a,#111);stroke:#fff;stroke-width:3}
.rv-il .c-volcan{--a:#541110}
.rv-il .ico *{fill:none;stroke:#fff;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.rv-il .ico .ll{fill:#fff;stroke:none}
.rv-il .halo{fill:none;stroke:var(--a,#111);stroke-width:2.5;opacity:0;transform-box:fill-box;transform-origin:center}
.rv-il .pa:hover .pin,.rv-il .pa:focus-visible .pin{transform:scale(1.15)}
.rv-il .pa:focus-visible .halo{opacity:1}
.rv-il .pa.activo .pin{transform:scale(1.28)}
.rv-il .pa.activo .halo{opacity:.9}
.rv-il .rv-nom{font-family:var(--g);font-weight:700;font-size:19px;letter-spacing:.2px;fill:#111;paint-order:stroke;stroke:rgba(255,255,255,.88);stroke-width:5px;stroke-linejoin:round}
.rv-il .rv-sub{font-size:13px;fill:#3b3631;paint-order:stroke;stroke:rgba(255,255,255,.85);stroke-width:4px}
.rv-il .pa.activo .rv-nom{fill:var(--a,#111)}
.rv.ilus .ruta{padding-left:0}
.rv.ilus .ruta::before,.rv.ilus .ruta li::before,.rv.ilus .ruta summary::after{display:none}
.rv.ilus .ruta li{display:none}.rv.ilus .ruta li.sel{display:block}
.rv.ilus .ruta summary{cursor:default;padding:12px 14px 6px}
.rv.ilus .ruta summary:hover{background:none}.rv.ilus .ruta summary:hover b{text-decoration:none}
.rv.ilus .ruta details{background:#fff;box-shadow:0 8px 28px rgba(0,0,0,.08);border-top:4px solid var(--a,#111)}
.rv.ilus .ruta .fin details{border-top-color:#541110}
.rv-nav{display:flex;align-items:center;justify-content:space-between;gap:12px}
.rv-nav[hidden]{display:none}
.rv-nav .btn{min-width:0;padding:9px 18px}
.rv-nav .btn:disabled{opacity:.35;cursor:default}
.rv-n{font-size:14px;color:var(--gris);font-variant-numeric:tabular-nums}
@media (prefers-reduced-motion:no-preference){
  .rv-il .camino{transition:stroke-dashoffset 2.2s cubic-bezier(.45,0,.2,1)}
  .rv-il.espera .camino{stroke-dashoffset:1}
  .rv-il .raya,.rv-il .viajero{transition:opacity .6s ease 2s}
  .rv-il.espera .raya,.rv-il.espera .viajero{opacity:0}
  .rv-il.espera .pa .pin{transform:scale(0)}
  .rv-il .pa:nth-of-type(1) .pin{transition-delay:.2s}.rv-il .pa:nth-of-type(2) .pin{transition-delay:.55s}.rv-il .pa:nth-of-type(3) .pin{transition-delay:.9s}
  .rv-il .pa:nth-of-type(4) .pin{transition-delay:1.25s}.rv-il .pa:nth-of-type(5) .pin{transition-delay:1.6s}.rv-il .pa:nth-of-type(6) .pin{transition-delay:1.95s}
  .rv-il:not(.espera) .pa .pin{transition:transform .35s cubic-bezier(.3,1.6,.5,1)}
  .rv-il .pa.activo .halo{animation:rv-late 1.8s ease-out infinite}
  .rv-il .humo circle{animation:rv-humo 6s ease-in-out infinite}
  .rv-il .humo circle:nth-child(2){animation-delay:-2s}.rv-il .humo circle:nth-child(3){animation-delay:-4s}
}
@keyframes rv-late{0%{transform:scale(.75);opacity:.9}100%{transform:scale(1.35);opacity:0}}
@keyframes rv-humo{0%,100%{transform:translate(0,0);opacity:.85}50%{transform:translate(5px,-6px);opacity:.55}}
.mapa-t>.rv{align-items:stretch;width:100%}
.form .estado.mal{color:#9b1c1c}
.legal h2{font-family:var(--g);font-size:24px;text-transform:uppercase;margin:28px 0 6px}
.legal p{max-width:68ch}.legal .act{color:var(--gris);font-size:14px;margin-top:28px}
.form .chk a{font-weight:600}

/* Identidad de cada restaurante */
.s-benvenuti{--a:#000000;--a2:#000000;--tinta:#000000;--fondo:#ffffff;--panel:#f3f3f1;--disp:'Mea Culpa', cursive;--cuerpo:'Fredoka', system-ui, sans-serif;--dw:400}.c-benvenuti{--a:#111111}
.s-casa_brava{--a:#BB6E57;--a2:#123D24;--tinta:#333333;--fondo:#ffffff;--panel:#f7f1ee;--disp:'Great Vibes', cursive;--cuerpo:Avenir, 'Avenir Next', 'Nunito Sans', system-ui, sans-serif;--dw:400}.c-casa_brava{--a:#BB6E57}
.s-duo{--a:#865674;--a2:#F08633;--tinta:#3a2433;--fondo:#ffffff;--panel:#f8f1ea;--disp:'Arial Rounded MT Bold', 'Nunito', system-ui, sans-serif;--cuerpo:'Nunito', system-ui, sans-serif;--dw:800}.c-duo{--a:#865674}
.s-escala{--a:#C0291B;--a2:#C98A2E;--tinta:#2E2A24;--fondo:#F7EBDA;--panel:#efdcc0;--disp:Didot, 'Bodoni MT', 'Playfair Display', Georgia, serif;--cuerpo:'Avenir Next', Avenir, 'Nunito Sans', system-ui, sans-serif;--dw:500}.c-escala{--a:#C0291B}
.s-estica{--a:#2B543C;--a2:#38A0B0;--tinta:#22352a;--fondo:#FEF6E0;--panel:#f3e8c8;--disp:'Poppins', system-ui, sans-serif;--cuerpo:'Poppins', system-ui, sans-serif;--dw:700}.c-estica{--a:#2B543C}
