/* Página «Zona de actuación»: mapa interactivo y textos por localidad */
.vh{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wrap.narrow{max-width:860px}
.zmap-app{display:grid;gap:18px}
.zmap-tools{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:14px 28px}
.zm-find{flex:1 1 320px;max-width:560px}
.zm-find label{display:block;font:700 1.15rem/1.2 var(--f-body);letter-spacing:0;margin-bottom:8px}
.zm-find input{width:100%;min-height:52px;padding:12px 18px;border:2px solid var(--ink);border-radius:999px;background:#fff;font:inherit;font-size:1rem}
.zm-find input:focus-visible{outline:3px solid var(--orange);outline-offset:2px}
.zm-msg{min-height:1.4em;margin:8px 4px 0;font-size:.92rem;color:var(--muted)}
.zm-msg a{font-weight:700;text-decoration:underline}
.zm-toggles{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.zm-tl{font-size:.85rem;font-weight:700;color:var(--muted);margin-right:2px}
.chip-tg{min-height:44px;padding:8px 16px;border-radius:999px;border:2px solid var(--ink);background:#fff;font:600 .9rem/1 var(--f-body);cursor:pointer}
.chip-tg[aria-pressed="true"]{background:var(--ink);color:#fff}
.chip-tg:focus-visible,.town-chip:focus-visible,.zmap-ctrl button:focus-visible{outline:3px solid var(--orange);outline-offset:2px}
.zmap-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:clamp(18px,3vw,40px);align-items:start}
@media(max-width:900px){.zmap-grid{grid-template-columns:1fr}}
.zmap-stage{position:relative;border:2px solid var(--ink);border-radius:var(--r);overflow:hidden;box-shadow:var(--hard);background:var(--cream-2)}
.zmap{display:block;width:100%;height:auto;-webkit-user-select:none;user-select:none}
.zmap.zoomed{cursor:grab;touch-action:none}.zmap.zoomed.drag{cursor:grabbing}
.zmap .am-lbl{font-size:var(--lbl,23px)}
.zm-km{font:600 var(--kml,17px) var(--f-body);fill:#4A5260;paint-order:stroke;stroke:#F2EDE0;stroke-width:5px}
.zm-town{cursor:pointer;outline:none}
.zm-hit{fill:transparent;r:26px}
.zm-town:focus-visible .zm-hit{stroke:#0B0D10;stroke-width:3;fill:rgba(248,90,0,.15)}
.zm-dot{transition:r .15s,stroke-width .15s}
.zm-town:hover .zm-dot,.zm-town:focus-visible .zm-dot{r:13px}
.zm-town.sel .zm-dot{r:15px;stroke-width:4}
.zm-town.sel .am-lbl{fill:#0B0D10;stroke:#FFD9BF;stroke-width:8px}
.zm-spoke.on{stroke-opacity:.85;stroke-width:3;stroke-dasharray:none}
.zmap.no-dist .zm-km,.zmap.no-dist .zm-spoke{display:none}
.zm-ring.off{display:none}
.zm-base .zm-hit{r:34px}
.zmap-ctrl{position:absolute;top:10px;right:10px;z-index:2;display:flex;flex-direction:column;gap:6px}
.zmap-ctrl button{width:44px;height:44px;border-radius:12px;border:2px solid var(--ink);background:#fff;font:700 1.3rem/1 var(--f-body);cursor:pointer;box-shadow:2px 2px 0 var(--ink)}
.zmap-ctrl button:hover{background:var(--cream-2)}
.zm-hint{position:absolute;left:12px;bottom:10px;margin:0;font-size:.78rem;color:#4A5260;background:rgba(250,247,240,.9);padding:4px 10px;border-radius:999px}
@media(max-width:700px){.zmap{--lbl:32px;--kml:24px}.zm-hit{r:46px}.zm-base .zm-hit{r:52px}.zm-hint{display:none}}
.zmap-panel{position:sticky;top:calc(var(--header-h,76px) + 16px)}
@media(max-width:900px){.zmap-panel{position:static}}
.zmap-panel h3{font-size:clamp(1.6rem,3vw,2.2rem);margin:.4em 0 .2em}
.zm-km-line{font-weight:700;color:var(--ink);margin:0 0 .8em}
.zm-svc{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}
.zm-stats{display:flex;flex-wrap:wrap;gap:10px;list-style:none;margin:16px 0 0;padding:0}
.zm-stats li{padding:8px 14px;border-radius:14px;background:var(--cream-2);font-size:.9rem}.zm-stats strong{font:900 1.3rem var(--f-display);margin-right:4px}
.tag.t0,.tag.t1{background:#FFE3D1}.tag.t2{background:#D5ECFA}.tag.t3{background:#E6F3CC}
.tiers{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:20px}
.tier-card{padding:24px;background:#fff;border:2px solid var(--ink);border-radius:var(--r);box-shadow:var(--hard)}
.tier-card h3{font-size:1.35rem}
.towns-btn{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:16px 0 0;padding:0}
.town-chip{min-height:44px;padding:8px 14px;border-radius:999px;border:2px solid var(--ink);background:var(--cream);font:600 .92rem/1 var(--f-body);cursor:pointer}
.town-chip small{color:var(--muted);font-weight:500;margin-left:4px}
.town-chip:hover{background:var(--cream-2)}
.town-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:18px}
.town-card{padding:22px;background:var(--cream);border:2px solid var(--ink);border-radius:var(--r);display:flex;flex-direction:column;gap:6px}
.town-top{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:8px}
.town-card h3{font-size:1.2rem;margin:0}
.town-card p{margin:0;font-size:.96rem}
.town-links{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:auto!important;padding-top:10px}
.town-links .link-arrow{background:none;border:0;border-bottom:2px solid currentColor;padding:8px 0;font:inherit;font-weight:600;cursor:pointer;color:inherit}
@media(prefers-reduced-motion:reduce){.zm-dot{transition:none}}
.zmap-panel .tag,.town-card .tag{display:inline-block}
button.link-arrow{background:none;border:0;border-bottom:2px solid currentColor;padding:8px 0;font:inherit;font-weight:600;cursor:pointer;color:inherit;border-radius:0}

/* ---- Pestañas y mapa real */
.zmap-main{min-width:0}
.zmap-views{display:inline-flex;gap:4px;padding:4px;margin-bottom:12px;border:2px solid var(--ink);border-radius:999px;background:#fff}
.zv-tab{min-height:40px;padding:8px 20px;border:0;border-radius:999px;background:transparent;font:700 .92rem/1 var(--f-body);cursor:pointer;color:var(--ink)}
.zv-tab[aria-selected="true"]{background:var(--ink);color:#fff}
.zv-tab:focus-visible{outline:3px solid var(--orange);outline-offset:2px}
.zmap-view[hidden],.rm-gate[hidden]{display:none}
.rm-root{position:relative;height:clamp(460px,72vh,700px);overflow:hidden;background:#e8e4d8;touch-action:pan-x pan-y;cursor:grab;outline:none;-webkit-user-select:none;user-select:none}
.rm-root.drag{cursor:grabbing}
.rm-root:focus-visible{box-shadow:inset 0 0 0 3px var(--orange)}
.rm-tiles,.rm-marks{position:absolute;inset:0;overflow:hidden}
.rm-tile{position:absolute;left:0;top:0;width:256px;height:256px;max-width:none;opacity:0;transition:opacity .2s;pointer-events:none;will-change:transform}
.rm-tile.ok{opacity:1}
.rm-over{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.rm-ring{stroke-width:3;stroke-dasharray:3 9;stroke-linecap:round;fill:none}
.rm-ring.r10{stroke:#F85A00}.rm-ring.r20{stroke:#379DDC}.rm-ring.r30{stroke:#5E8F12}
.rm-marks{pointer-events:none}
.rm-mark{position:absolute;left:0;top:0;width:0;height:0;padding:0;border:0;background:none;pointer-events:auto;cursor:pointer;will-change:transform}
.rm-mark::before{content:"";position:absolute;left:-22px;top:-22px;width:44px;height:44px;border-radius:50%}
.rm-dot{position:absolute;left:-9px;top:-9px;width:18px;height:18px;border-radius:50%;background:var(--c,#F85A00);border:3px solid var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.35);transition:transform .15s}
.rm-mark.t2{--c:#379DDC}.rm-mark.t3{--c:#89C12E}.rm-mark.t0{--c:#F85A00}
.rm-mark.t0 .rm-dot{width:26px;height:26px;left:-13px;top:-13px}
.rm-mark:hover .rm-dot,.rm-mark:focus-visible .rm-dot{transform:scale(1.25)}
.rm-mark:focus-visible .rm-dot{outline:3px solid var(--orange);outline-offset:3px}
.rm-mark.sel .rm-dot{transform:scale(1.5);border-width:4px}
.rm-lbl{position:absolute;left:14px;top:-12px;display:none;white-space:nowrap;padding:3px 9px;border-radius:999px;background:rgba(255,255,255,.95);border:1.5px solid var(--ink);font:700 .8rem/1.2 var(--f-body);color:var(--ink);pointer-events:none}
.rm-mark.lbl .rm-lbl{display:block}
.rm-mark.sel .rm-lbl{display:block;background:#FFD9BF;z-index:1}
.rm-mark.sel{z-index:2}
.rm-ctrl{position:absolute;top:10px;right:10px;z-index:3;display:flex;flex-direction:column;gap:6px}
.rm-ctrl button{width:44px;height:44px;border-radius:12px;border:2px solid var(--ink);background:#fff;font:700 1.3rem/1 var(--f-body);cursor:pointer;box-shadow:2px 2px 0 var(--ink)}
.rm-ctrl button:disabled{opacity:.4;cursor:default}
.rm-hint{position:absolute;left:50%;bottom:34px;transform:translateX(-50%);z-index:3;margin:0;padding:6px 14px;border-radius:999px;background:rgba(11,13,16,.85);color:#fff;font-size:.8rem;white-space:nowrap;opacity:0;transition:opacity .25s;pointer-events:none}
.rm-root.hint .rm-hint{opacity:1}
.rm-attr{position:absolute;right:0;bottom:0;z-index:3;margin:0;padding:2px 8px;background:rgba(255,255,255,.85);font-size:.7rem;color:#333}
.rm-attr a{text-decoration:underline}
.rm-gate{position:absolute;inset:0;z-index:5;display:grid;place-items:center;padding:24px;text-align:center;background:repeating-linear-gradient(0deg,transparent 0 38px,rgba(11,13,16,.06) 38px 40px),repeating-linear-gradient(90deg,transparent 0 38px,rgba(11,13,16,.06) 38px 40px),var(--cream-2)}
.rm-gate strong{font:400 1.6rem/1.1 var(--f-display)}
.rm-gate p{max-width:44ch;margin:8px auto 14px;color:var(--muted);font-size:.95rem}
.rm-gate .btn-row{justify-content:center}
@media(max-width:700px){.rm-root{height:min(70vh,520px)}.rm-hint{white-space:normal;width:max-content;max-width:86%;text-align:center}}

/* Mapa limpio: sin líneas cruzando textos */
.zmap .am-lbl{paint-order:stroke;stroke:#F2EDE0;stroke-width:8px;stroke-linejoin:round}
.zmap .am-km{paint-order:stroke;stroke:#F2EDE0;stroke-width:8px;stroke-linejoin:round}
.zm-spoke{stroke-opacity:0;transition:stroke-opacity .15s}
.zm-spoke.on{stroke-opacity:.9}
.zm-town.sel .am-lbl{stroke:#FFD9BF}
.zm-town .zm-km{pointer-events:none}.zm-town .am-lbl{pointer-events:none}
@media(max-width:700px){.zm-km{transform:translateY(6px)}}
@media(max-width:700px){.zmap-stage{margin-inline:calc(var(--gut) * -1);border-radius:0;border-inline:0;box-shadow:none}}
