:root{--teal:#12906a;--teal-ink:#fff;--bg:#f3f6f4;--surface:#fff;--ink:#15231c;--muted:#5d6d64;--line:#dbe4de;--green:#0b7a4b;--green-ink:#fff;--green-soft:#e2f2ea;--amber:#9a5a00;--amber-soft:#fbefdc;--red:#b3261e;color-scheme:light}
@media (prefers-color-scheme:dark){:root{--bg:#0f1713;--surface:#17221c;--ink:#e7efe9;--muted:#9db0a4;--line:#2a3a31;--green:#2fbf7c;--green-ink:#07130d;--green-soft:#193628;--teal:#6fd9ad;--teal-ink:#07130d;--amber:#f0a531;--amber-soft:#33270f;--red:#ff7b72;color-scheme:dark}}
[hidden]{display:none!important}
*{box-sizing:border-box}html,body{margin:0}
body{background:var(--bg);color:var(--ink);font:16px/1.5 "Atkinson Hyperlegible",system-ui,sans-serif;padding:env(safe-area-inset-top,0) 0 env(safe-area-inset-bottom,0)}
.wrap{max-width:680px;margin:0 auto;padding-inline:16px;padding-block:14px 40px}
header{display:flex;flex-direction:column;align-items:center;gap:6px;padding-block:6px 16px;text-align:center}
.logo{display:block;width:min(280px,78vw);height:auto}
.pueblos{margin:0;font-size:.95rem;color:var(--muted)}
.pueblos b{color:var(--green);font-weight:700}
.fecha{margin:4px 0 0;font:700 1.05rem "Atkinson Hyperlegible",sans-serif;color:var(--ink)}
.fecha::first-letter{text-transform:uppercase}
.hero{background:var(--green);color:var(--green-ink);border-radius:18px;padding:18px;display:grid;gap:6px}
.eyebrow{font-size:.78rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;opacity:.85}
.hero h2{font:800 1.9rem/1.05 "Bricolage Grotesque",sans-serif;margin:2px 0 0;text-wrap:balance}
.hero .addr{font-size:1.05rem}
.hero .until{font-size:.92rem;opacity:.9}
.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.btn{display:inline-flex;align-items:center;gap:6px;text-decoration:none;font:700 .95rem "Atkinson Hyperlegible",sans-serif;padding:10px 14px;border-radius:11px;border:1.5px solid var(--green);background:var(--surface);color:var(--green);cursor:pointer}
.hero .btn{border-color:var(--green-ink)}
.hero .btn.solid{background:var(--green-ink);color:var(--green)}
.hero .btn.ghost{background:transparent;color:var(--green-ink)}
.btn:focus-visible,select:focus-visible{outline:3px solid var(--amber);outline-offset:2px}
.hero.ref{--green:var(--teal);--green-ink:var(--teal-ink);margin-top:12px}
.week .r{color:var(--teal)!important}
.town{background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.town+.town{margin-top:8px}
.town summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:10px;padding:14px 16px;font:700 1.05rem "Bricolage Grotesque",sans-serif}
.town summary::-webkit-details-marker{display:none}
.town summary .cnt{font:400 .85rem "Atkinson Hyperlegible",sans-serif;color:var(--muted)}
.chev{margin-left:auto;flex:none;color:var(--muted);transition:transform .2s}
.town[open] .chev{transform:rotate(180deg)}
.town summary:focus-visible{outline:3px solid var(--amber);outline-offset:-3px}
.town .dir{padding:0 12px 12px}
.tag.ref{color:var(--teal)}
h3{font:700 .78rem "Atkinson Hyperlegible",sans-serif;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin:24px 0 8px}
.week{list-style:none;margin:0;padding:0;background:var(--surface);border:1px solid var(--line);border-radius:14px}
.week li{display:grid;grid-template-columns:5.5rem 1fr;gap:10px;padding:10px 14px;border-top:1px solid var(--line)}
.week li:first-child{border-top:0}
.week .d{font-variant-numeric:tabular-nums;color:var(--muted);font-size:.9rem}
.week .d b{display:block;color:var(--ink);font-size:.95rem;text-transform:capitalize}
.week .r{font-size:.85rem;color:var(--amber)}
.week li.today{background:var(--green-soft)}
.dir{display:grid;gap:8px;list-style:none;padding:0;margin:0}
.dir li{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:10px 14px;display:flex;gap:10px;justify-content:space-between;align-items:center;flex-wrap:nowrap}
.dir .n{font-weight:700}.dir .m{color:var(--muted);font-size:.9rem}
.dir li.on{border-color:var(--green);border-width:2px}
.tag{display:inline-block;white-space:nowrap;font-size:.72rem;font-weight:700;padding:1px 7px;border-radius:99px;border:1.5px solid currentColor;color:var(--green);margin-left:6px}
.note{font-size:.84rem;color:var(--muted);margin-top:26px;border-top:1px solid var(--line);padding-top:14px}
/* Aviso de cookies */
.cookies{position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px));z-index:10;max-width:640px;margin:0 auto;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:16px;padding:14px 16px;box-shadow:0 10px 30px rgba(0,0,0,.18);display:grid;gap:10px;font-size:.9rem}
.cookies p{margin:0}
.cookies a{color:inherit}
.cookies .bts{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}
.cookies .btn{padding:8px 14px}
.cookies .btn.solid{background:var(--green);color:var(--green-ink)}
.linkbtn{background:none;border:0;padding:0;font:inherit;color:inherit;text-decoration:underline;cursor:pointer}
/* Selector de zona */
.zonas{display:flex;gap:4px;padding:4px;margin:2px 0 0;background:var(--surface);border:1px solid var(--line);border-radius:999px;max-width:100%}
.zonas a{flex:1 1 auto;text-align:center;text-decoration:none;color:var(--muted);font-weight:700;font-size:.9rem;padding:8px 14px;border-radius:999px;white-space:nowrap}
.zonas a[aria-current="page"]{background:var(--green);color:var(--green-ink)}
@media (hover:hover){.zonas a:not([aria-current]):hover{background:var(--green-soft);color:var(--green)}}
.zonas a:focus-visible{outline:3px solid var(--amber);outline-offset:2px}
@media (max-width:380px){.zonas a{font-size:.8rem;padding:8px 8px}}
/* Publicidad */
.publi{margin-top:14px;position:relative;background:var(--surface);border:1px dashed var(--line);border-radius:14px}
.publi-tag{position:absolute;top:-9px;left:12px;background:var(--bg);padding:0 6px;font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.publi-in{display:flex;align-items:center;gap:12px;padding:14px 16px;color:var(--ink);text-decoration:none}
.publi-in img{width:52px;height:52px;object-fit:contain;border-radius:10px;flex:none;background:#fff}
.publi-txt{display:grid;gap:2px;flex:1;min-width:0}
.publi-txt b{font-size:1rem}
.publi-txt span{font-size:.88rem;color:var(--muted)}
.publi-cta{flex:none;font-weight:700;font-size:.9rem;color:var(--green);white-space:nowrap}
.publi-in:focus-visible{outline:3px solid var(--amber);outline-offset:2px;border-radius:14px}
@media (hover:hover){.publi-in:hover .publi-cta{text-decoration:underline}}
/* Móvil: solo 3 próximos días */
.week li:nth-child(n+4){display:none}
.btn{transition:filter .15s,background-color .15s}
@media (hover:hover){.btn:hover{filter:brightness(.93)}.town summary:hover{background:var(--green-soft)}}
/* ===== Versión ordenador ===== */
@media (min-width:960px){
  .wrap{max-width:1160px;padding-inline:32px;padding-block:28px 48px}
  header{flex-direction:row;justify-content:space-between;align-items:center;text-align:left;padding-block:0 22px;margin-bottom:26px;border-bottom:1px solid var(--line)}
  .logo{width:300px}
  .meta{text-align:right}
  .fecha{font-size:1.2rem}
  .grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);grid-template-areas:"ahora dias" "todas dias";column-gap:36px;align-items:start}
  .ahora{grid-area:ahora}
  .todas{grid-area:todas}
  .dias{grid-area:dias;position:sticky;top:24px}
  .dias h3{margin-top:0}
  .hero{padding:26px 28px;border-radius:22px}
  .hero h2{font-size:2.7rem}
  .hero .addr{font-size:1.2rem}
  .hero .until{font-size:1rem}
  .btn{padding:11px 18px;font-size:1rem}
  .week li:nth-child(n+4){display:grid}
  .week li{padding:12px 18px}
  .note{max-width:760px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}

/* ===== Páginas por pueblo ===== */
.logo-link{display:block;line-height:0;border-radius:12px}
.logo-link:focus-visible{outline:3px solid var(--amber);outline-offset:4px}
.pueblo{display:inline-flex;align-items:center;gap:8px;margin:2px 0 0;background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:5px 6px 5px 14px;font-size:1rem}
.pueblo svg{flex:none;color:var(--green)}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.pueblo b{font-family:"Bricolage Grotesque",system-ui,sans-serif;font-size:1.1rem}
.pueblo a{margin-left:4px;text-decoration:none;font-weight:700;font-size:.85rem;color:var(--green);background:var(--green-soft);border-radius:999px;padding:6px 12px}
.pueblo a:focus-visible{outline:3px solid var(--amber);outline-offset:2px}
.zona{margin:0;font-size:.85rem;color:var(--muted)}
@media (max-width:420px){.pueblo{padding-left:10px;gap:5px;max-width:100%}.pueblo b{font-size:.92rem}.pueblo a{padding:5px 9px;font-size:.8rem;margin-left:2px}}
.colabora{display:flex;align-items:center;justify-content:center;gap:10px;margin:0 0 16px;padding:10px 14px;background:var(--surface);border:1px solid var(--line);border-radius:14px;font-size:.9rem;color:var(--muted)}
.colabora img{height:40px;width:auto}
.colabora b{color:var(--ink)}
@media (min-width:960px){.colabora{justify-content:flex-start;margin-top:-10px}}
