@font-face{font-family:'Atkinson Hyperlegible';font-style:italic;font-weight:400;font-display:swap;src:url(/fuentes/atkinson-hyperlegible-400-italic.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Atkinson Hyperlegible';font-style:normal;font-weight:400;font-display:swap;src:url(/fuentes/atkinson-hyperlegible-400.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Atkinson Hyperlegible';font-style:normal;font-weight:700;font-display:swap;src:url(/fuentes/atkinson-hyperlegible-700.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Oswald';font-style:normal;font-weight:500;font-display:swap;src:url(/fuentes/oswald-500.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Oswald';font-style:normal;font-weight:700;font-display:swap;src:url(/fuentes/oswald-700.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}

/* Concepto: «Puerta abierta». La web es el escaparate visto desde la acera: primero, si está abierto y cómo llamar; lo demás, tranquilo y debajo. La Historia se cuenta con dorsales de carrera. Colores del propio local: pared amarilla, zócalo verde. */
:root{
  --papel:#F5F7F3;      /* fondo: blanco con un punto de verde */
  --superficie:#FFFFFF;
  --tinta:#17211A;      /* texto */
  --gris:#56625A;       /* texto secundario */
  --linea:#D6DDD7;
  --verde:#1F6B34;      /* zócalo del taller, botones */
  --verde-hondo:#14481F;
  --sobre-verde:#FFFFFF;
  --amarillo:#F2C200;   /* pared del taller, estado abierto */
  --sobre-amarillo:#1B1A0E;
  --rojo-cerrado:#9B2C1F;
  --aviso:#FFF6CF;
  --aviso-borde:#E2C64A;
  --dorsal:#FFFFFF;
  --dorsal-tinta:#111111;
  --cabecera:#000000;   /* fondo negro del logo de siempre, igual en los dos temas */
  --cabecera-texto:#FFFFFF;
  --sombra:0 1px 2px rgba(23,33,26,.08),0 6px 18px rgba(23,33,26,.07);
  --f-texto:"Atkinson Hyperlegible",-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --f-dorsal:"Oswald","Arial Narrow","Roboto Condensed",Arial,sans-serif;
  --ancho:1080px;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --papel:#0F1612;--superficie:#16201A;--tinta:#E7EEE9;--gris:#A9B6AD;--linea:#2B3830;
  --verde:#4FAE68;--verde-hondo:#8ED3A0;--sobre-verde:#08130C;--amarillo:#F2C200;--sobre-amarillo:#1B1A0E;
  --rojo-cerrado:#F08A7A;--aviso:#2A2610;--aviso-borde:#8C7A22;--dorsal:#F4F4F0;--dorsal-tinta:#111111;
  --sombra:0 1px 2px rgba(0,0,0,.4),0 6px 18px rgba(0,0,0,.35);color-scheme:dark}}
:root[data-theme="dark"]{
  --papel:#0F1612;--superficie:#16201A;--tinta:#E7EEE9;--gris:#A9B6AD;--linea:#2B3830;
  --verde:#4FAE68;--verde-hondo:#8ED3A0;--sobre-verde:#08130C;--amarillo:#F2C200;--sobre-amarillo:#1B1A0E;
  --rojo-cerrado:#F08A7A;--aviso:#2A2610;--aviso-borde:#8C7A22;--dorsal:#F4F4F0;--dorsal-tinta:#111111;
  --sombra:0 1px 2px rgba(0,0,0,.4),0 6px 18px rgba(0,0,0,.35);color-scheme:dark}

*{box-sizing:border-box}
body{background:var(--papel);color:var(--tinta);font-family:var(--f-texto);font-size:18px;line-height:1.55;-webkit-text-size-adjust:100%}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:10;background:var(--cabecera)}
.envoltorio{max-width:var(--ancho);margin-inline:auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
h1,h2,h3{line-height:1.15;text-wrap:balance;margin:0}
p{margin:0}
a{color:var(--verde)}
a:focus-visible,button:focus-visible{outline:3px solid var(--amarillo);outline-offset:3px;border-radius:6px}
img{display:block;max-width:100%;height:auto}


/* Cabecera */
.cabecera{position:sticky;top:env(safe-area-inset-top,0px);z-index:9;background:var(--cabecera);color:var(--cabecera-texto)}
.cabecera .envoltorio{display:flex;align-items:center;justify-content:space-between;gap:8px 12px;padding-block:8px;flex-wrap:wrap}
.marca{display:block;line-height:0}
.marca img{height:68px;width:auto}
.menu{display:flex;gap:4px;flex-wrap:wrap}
.menu a{text-decoration:none;color:var(--cabecera-texto);padding:10px 10px;border-radius:8px;font-size:16px;min-height:44px;display:inline-flex;align-items:center;border-bottom:3px solid transparent}
.menu a:hover{color:var(--amarillo)}
.menu a[aria-current="page"]{color:var(--amarillo);border-bottom-color:var(--amarillo);border-radius:0}
.boton{transition:transform .15s ease,background-color .15s ease}
.boton:active{transform:scale(.98)}

/* Botones de acción */
.acciones{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.boton{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:64px;padding:10px 8px;border-radius:12px;text-decoration:none;font-weight:700;text-align:center;font-size:17px;border:2px solid transparent}
.boton small{font-weight:400;font-size:14px;opacity:.9}
.boton-principal{background:var(--verde);color:var(--sobre-verde)}
.boton-secundario{background:var(--superficie);color:var(--tinta);border-color:var(--verde)}
.boton svg{width:22px;height:22px;flex:none}

/* Portada */
.portada{padding-block:28px 8px}
.portada-rejilla{display:grid;gap:24px}
.estado{display:inline-flex;align-items:center;gap:10px;font-weight:700;font-size:18px;padding:6px 14px 6px 10px;border-radius:999px;background:var(--superficie);border:2px solid var(--linea)}
.estado .punto{width:14px;height:14px;border-radius:50%;background:var(--gris)}
.estado[data-abierto="si"]{border-color:var(--amarillo)}
.estado[data-abierto="si"] .punto{background:var(--verde);box-shadow:0 0 0 4px color-mix(in srgb,var(--verde) 25%,transparent)}
.estado[data-abierto="no"] .punto{background:var(--rojo-cerrado)}
.portada h1{font-size:clamp(34px,8vw,58px);margin-top:16px;letter-spacing:-.01em}
.portada .bajada{font-size:20px;color:var(--gris);margin-top:12px;max-width:34ch}
.portada .acciones{margin-top:24px}
.foto{position:relative;border-radius:14px;overflow:hidden;background:var(--linea)}
.foto img{width:100%;aspect-ratio:4/3;object-fit:cover}
.foto figcaption{font-size:14px;color:var(--gris);padding:8px 2px 0}
.etiqueta-provisional{position:absolute;top:10px;left:10px;background:var(--aviso);color:var(--tinta);border:1px solid var(--aviso-borde);font-size:13px;padding:3px 8px;border-radius:6px}
.hueco-foto{display:grid;place-items:center;aspect-ratio:4/3;border:2px dashed var(--linea);border-radius:14px;color:var(--gris);text-align:center;padding:16px;font-size:16px;background:var(--superficie)}

/* Secciones */
.seccion{padding-block:40px}
.seccion h2{font-size:clamp(26px,5vw,36px)}
.seccion .intro{color:var(--gris);margin-top:8px;max-width:60ch}
.rejilla-2{display:grid;gap:20px;margin-top:22px}
.tarjeta{background:var(--superficie);border:1px solid var(--linea);border-radius:14px;padding:18px}

/* Cartel de la puerta (horario) */
.cartel{background:var(--superficie);border:2px solid var(--tinta);border-radius:6px;padding:20px 18px 18px;position:relative;box-shadow:var(--sombra);max-width:440px}
.cartel::before{content:"";position:absolute;top:-16px;left:50%;width:120px;height:16px;transform:translateX(-50%);border:2px solid var(--gris);border-bottom:none;border-radius:60px 60px 0 0}
.cartel h3{font-family:var(--f-dorsal);font-weight:700;text-transform:uppercase;letter-spacing:.08em;font-size:22px;text-align:center;border-bottom:2px solid var(--tinta);padding-bottom:10px}
.cartel table{width:100%;border-collapse:collapse;margin-top:10px;font-variant-numeric:tabular-nums}
.cartel th,.cartel td{text-align:left;padding:7px 0;border-bottom:1px solid var(--linea);vertical-align:top}
.cartel th{font-weight:700;padding-right:12px;white-space:nowrap}
.cartel tr[data-hoy="si"] th,.cartel tr[data-hoy="si"] td{background:color-mix(in srgb,var(--amarillo) 22%,transparent)}
.cartel .vacaciones{margin-top:12px;font-weight:700;text-align:center}

/* Pasos */
.pasos{list-style:none;margin:22px 0 0;padding:0;display:grid;gap:14px;counter-reset:paso}
.pasos li{counter-increment:paso;display:grid;grid-template-columns:44px minmax(0,1fr);gap:14px;align-items:start}
.pasos li::before{content:counter(paso);display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--amarillo);color:var(--sobre-amarillo);font-weight:700;font-size:20px}
.pasos strong{display:block;font-size:19px}

/* Reseñas */
.resenas{display:grid;gap:14px;margin-top:22px}
.resena{margin:0;background:var(--superficie);border:1px solid var(--linea);border-radius:14px;padding:18px}
.resena blockquote{margin:0;font-size:19px}
.resena figcaption{color:var(--gris);font-size:15px;margin-top:8px}
.nota-google{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-top:6px}
.nota-google .cifra{font-size:34px;font-weight:700;font-variant-numeric:tabular-nums}

/* Servicios */
.servicios{list-style:none;padding:0;margin:22px 0 0;display:grid;gap:12px}
.servicios li{background:var(--superficie);border:1px solid var(--linea);border-radius:12px;padding:16px 18px}
.servicios strong{display:block;font-size:19px}
.servicios span{color:var(--gris)}
.pendiente{display:inline-block;font-size:13px;background:var(--aviso);border:1px solid var(--aviso-borde);border-radius:6px;padding:1px 7px;margin-left:6px;vertical-align:2px;color:var(--tinta)}

/* Historia: dorsales */
.historia-cabecera{padding-block:32px 8px}
.historia-cabecera h1{font-size:clamp(32px,7vw,52px)}
.linea-tiempo{list-style:none;margin:28px 0 0;padding:0;display:grid;gap:34px}
.hito{display:grid;gap:14px}
.dorsal{position:relative;justify-self:start;background:var(--dorsal);color:var(--dorsal-tinta);border:2px solid #111;border-radius:4px;padding:10px 30px 8px;font-family:var(--f-dorsal);font-weight:700;font-size:44px;line-height:1;letter-spacing:.02em;font-variant-numeric:tabular-nums;box-shadow:var(--sombra);transform:rotate(-1.5deg)}
.hito:nth-child(even) .dorsal{transform:rotate(1.2deg)}
.dorsal::before,.dorsal::after,.dorsal i::before,.dorsal i::after{content:"";position:absolute;width:9px;height:9px;border-radius:50%;background:#B9BDB8;border:1px solid #7A7E79}
.dorsal::before{top:6px;left:8px}.dorsal::after{top:6px;right:8px}
.dorsal i::before{bottom:6px;left:8px}.dorsal i::after{bottom:6px;right:8px}
.dorsal-texto{font-size:34px}
.dorsal small{display:block;font-size:13px;letter-spacing:.12em;text-transform:uppercase;font-weight:500;margin-top:4px;text-align:center}
.hito h2{font-size:24px;margin-bottom:10px}
.historia-cabecera .intro{margin-top:12px}
.hito p{max-width:62ch}
.hito p+p{margin-top:10px}
.foto-antigua img{filter:grayscale(1) contrast(1.05);aspect-ratio:auto}
.apodo{border-left:4px solid var(--amarillo);background:var(--superficie);padding:14px 16px;border-radius:0 10px 10px 0;max-width:62ch}

/* Contacto */
.datos{display:grid;gap:12px;margin-top:20px}
.dato{background:var(--superficie);border:1px solid var(--linea);border-radius:12px;padding:16px 18px;display:grid;gap:4px}
.dato .rotulo{color:var(--gris);font-size:15px}
.dato .valor{font-size:21px;font-weight:700;font-variant-numeric:tabular-nums;user-select:all}
.plano{border-radius:14px;overflow:hidden;border:1px solid var(--linea);background:var(--superficie)}
.plano svg{display:block;width:100%;height:auto}
.plano p{padding:12px 16px;font-size:16px}

/* Textos legales */
.legal{max-width:70ch}
.legal h2{font-size:24px;margin-top:28px}
.legal p,.legal ul{margin-top:10px}

/* Pie y barra fija del móvil */
.pie{border-top:1px solid var(--linea);background:var(--superficie);margin-top:24px}
.pie .envoltorio{padding-block:24px 110px;display:grid;gap:10px;font-size:16px;color:var(--gris)}
.pie a{color:var(--gris)}
.barra-movil{position:fixed;left:0;right:0;bottom:0;z-index:8;background:var(--superficie);border-top:1px solid var(--linea);padding-top:8px;padding-bottom:calc(8px + env(safe-area-inset-bottom,0px));padding-left:max(12px,env(safe-area-inset-left,0px));padding-right:max(12px,env(safe-area-inset-right,0px))}
.barra-movil .acciones .boton{min-height:52px;font-size:16px}
.barra-movil .boton small{display:none}

.vista[hidden]{display:none!important}

@media (min-width:820px){
  .portada-rejilla{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:center}
  .rejilla-2{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}
  .resenas{grid-template-columns:repeat(3,minmax(0,1fr))}
  .servicios{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hito{grid-template-columns:200px minmax(0,1fr);gap:28px;align-items:start}
  .barra-movil{display:none}
  .pie .envoltorio{padding-block:28px}
  .datos{grid-template-columns:repeat(2,minmax(0,1fr))}
}
.galeria{display:grid;gap:12px;margin-top:22px;grid-template-columns:repeat(2,minmax(0,1fr))}
.galeria figure{margin:0;border-radius:12px;overflow:hidden;background:var(--superficie);border:1px solid var(--linea)}
.galeria img{width:100%;aspect-ratio:3/2;object-fit:cover}
.galeria figcaption{font-size:14px;color:var(--gris);padding:8px 10px}
.video video{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;background:#000}
.clips{display:grid;gap:12px;margin-top:12px;max-width:720px;grid-template-columns:repeat(2,minmax(0,1fr))}
.clips figcaption{font-size:14px;color:var(--gris);padding:8px 2px 0}
@media (min-width:820px){.galeria{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

html{scroll-padding-top:90px}
body{margin:0}
.mapa{border-radius:14px;overflow:hidden;border:1px solid var(--linea);background:var(--superficie)}
.mapa-marco{aspect-ratio:4/3;display:grid;place-items:center;align-content:center;text-align:center;padding:20px;gap:12px;background:var(--papel)}
.mapa-marco iframe{width:100%;height:100%;border:0;display:block}
.mapa-marco.cargado{padding:0}
.mapa-marco button{font:inherit;font-weight:700;padding:12px 18px;border-radius:12px;border:2px solid var(--verde);background:var(--superficie);color:var(--tinta);cursor:pointer;min-height:48px}
.mapa p{padding:12px 16px;font-size:16px}
.saltar{position:absolute;left:-9999px;top:0;background:var(--amarillo);color:var(--sobre-amarillo);padding:10px 14px;z-index:20}
.saltar:focus{left:12px;top:12px}
