/* Catálogo del ecosistema creativo · se carga solo en catalogo.html, después de crec.css (usa sus fichas: --azul, --tinta, --papel, --borde, --ease…).
   Los colores de cada subsector son literales (no se invierten con el tema): viven en catalogo.js y llegan como --c en cada elemento. */

.cat-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:48px;padding:.7rem 1.4rem;border-radius:var(--r);
  background:var(--btn-fondo);color:var(--btn-texto);font-weight:700;text-decoration:none;border:2px solid var(--btn-fondo);font:inherit;font-weight:700;cursor:pointer;
  transition:background-color var(--t-rapida) var(--ease),border-color var(--t-rapida) var(--ease)}
.cat-btn:hover{background:var(--btn-hover);border-color:var(--btn-hover)}
.cat-btn--sec{background:transparent;color:var(--azul);border-color:var(--azul)}
.cat-btn--sec:hover{background:var(--papel);border-color:var(--azul)}
.cat-btn[hidden]{display:none}

.cat-estado{display:flex;align-items:center;gap:.6rem;margin:-.5rem 0 2rem;font-size:var(--f-peq);color:var(--apoyo)}
.cat-estado::before{content:"";width:.65rem;height:.65rem;border-radius:50%;background:var(--apoyo);flex:none}
.cat-estado[data-vivo="si"]::before{background:#61DB61;box-shadow:0 0 0 4px rgba(97,219,97,.25)}

/* ---- Rueda: gráfico de dona con los 14 subsectores alrededor ---- */
.cat-eco{display:grid;gap:clamp(2rem,5vw,4rem);align-items:center}
@media (min-width:960px){.cat-eco{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr)}}
.rueda{position:relative;margin:0;width:100%;max-width:600px;justify-self:center;aspect-ratio:1/1}
.rueda__svg{width:100%;height:100%;overflow:visible}
.rueda__pista{fill:none;stroke:var(--borde);stroke-width:72;opacity:.45}
.tajada{fill:none;stroke:var(--c);stroke-width:72;cursor:pointer;transition:stroke-width var(--t-estandar) var(--ease),opacity var(--t-estandar) var(--ease)}
.tajada:hover,.tajada.is-sobre{stroke-width:86}
.rueda.hay-sel .tajada{opacity:.28}
.rueda.hay-sel .tajada.is-sel{opacity:1;stroke-width:90}
.nodo{cursor:pointer}
.nodo__fondo{fill:var(--fondo);stroke:var(--c);stroke-width:3;transition:stroke-width var(--t-rapida) var(--ease)}
.nodo__ico{color:var(--tinta)}
.nodo__num{font:700 13px/1 "Open Sans",system-ui,sans-serif;fill:var(--tinta)}
.nodo__num-fondo{fill:var(--c)}
.nodo--vacio .nodo__fondo{stroke:var(--borde);stroke-dasharray:4 5}
.nodo--vacio .nodo__ico{color:var(--apoyo);opacity:.55}
.nodo:hover .nodo__fondo,.nodo.is-sobre .nodo__fondo,.nodo.is-sel .nodo__fondo{stroke-width:6}
.rueda.hay-sel .nodo:not(.is-sel){opacity:.45}
.nodo,.tajada{outline:none}
/* El texto vive dentro del hueco de la dona: no toca las tajadas (radio interior 160 de 320) */
.rueda__centro{position:absolute;left:50%;top:50%;width:40%;transform:translate(-50%,-50%);display:grid;justify-items:center;gap:.35rem;text-align:center;pointer-events:none}
.rueda__titulo{font-weight:800;font-size:clamp(.9rem,.55rem + 1.4vw,1.45rem);line-height:1.15;color:var(--azul);letter-spacing:-.01em}
.rueda__dato{font-size:clamp(.8rem,.65rem + .5vw,1rem);line-height:1.35;color:var(--apoyo)}
.nuevo-pulso{fill:none;stroke:#FFE815;stroke-width:6;opacity:0;pointer-events:none}

/* ---- Leyenda viva ---- */
.leyenda__t{margin:0 0 .25rem;font-size:var(--f-h3);font-weight:800;color:var(--tinta)}
.leyenda__ayuda{margin:0 0 1.25rem;color:var(--apoyo)}
.leyenda__lista{list-style:none;margin:0 0 1.5rem;padding:0;display:grid;gap:.35rem}
@media (min-width:600px) and (max-width:959px){.leyenda__lista{grid-template-columns:1fr 1fr;column-gap:1rem}}
.ley{width:100%;display:grid;grid-template-columns:1.6rem 1fr auto;align-items:center;gap:.75rem;min-height:48px;padding:.4rem .75rem;border:1px solid transparent;border-radius:var(--r);
  background:none;color:var(--tinta);font:inherit;text-align:left;cursor:pointer;transition:background-color var(--t-rapida) var(--ease),border-color var(--t-rapida) var(--ease)}
.ley:hover,.ley.is-sobre{background:var(--papel)}
.ley[aria-pressed="true"]{border-color:var(--azul);background:var(--papel)}
.ley__ico{width:1.6rem;height:1.6rem;color:var(--tinta)}
.ley__nombre{font-weight:600;line-height:1.25;position:relative;padding-left:1rem}
.ley__nombre::before{content:"";position:absolute;left:0;top:.35em;width:.6rem;height:.6rem;border-radius:2px;background:var(--c)}
.ley__dato{font-size:var(--f-peq);color:var(--apoyo);white-space:nowrap}
.ley--vacio .ley__nombre::before{background:transparent;border:1.5px dashed var(--apoyo)}
.ley--vacio .ley__ico{color:var(--apoyo)}

/* ---- Directorio ---- */
.dir-filtros{display:grid;gap:1rem;margin-bottom:1.25rem}
@media (min-width:760px){.dir-filtros{grid-template-columns:2fr 1.4fr 1fr 1fr;align-items:end}}
.dir-filtros label{display:grid;gap:.35rem;font-weight:600;font-size:var(--f-peq)}
.dir-filtros input,.dir-filtros select{width:100%;min-height:48px;padding:.6rem .8rem;border:1.5px solid var(--borde);border-radius:var(--r);background:var(--fondo);color:var(--tinta);font:inherit;font-weight:400}
.dir-filtros input:focus-visible,.dir-filtros select:focus-visible{border-color:var(--vivo)}
.dir-cuenta{margin:0 0 1.25rem;color:var(--apoyo)}
.dir-lista{list-style:none;margin:0;padding:0;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(min(100%,17.5rem),1fr))}
.org{position:relative;display:grid;grid-template-rows:auto 1fr auto;gap:.6rem;height:100%;padding:1.1rem 1.2rem 1.2rem;border:1px solid var(--borde);border-radius:var(--r);background:var(--fondo);overflow:hidden}
.org::before{content:"";position:absolute;inset:0 auto 0 0;width:6px;background:var(--c)}
.org__sub{display:flex;align-items:center;gap:.55rem;font-size:.9rem;font-weight:600;color:var(--apoyo)}
.org__sub svg{width:1.5rem;height:1.5rem;flex:none;color:var(--tinta)}
.org__nombre{margin:0;font-size:1.2rem;line-height:1.3;font-weight:800;color:var(--tinta);overflow-wrap:anywhere}
.org__meta{display:flex;flex-wrap:wrap;gap:.4rem;margin:0;padding:0;list-style:none}
.org__meta li{padding:.2rem .6rem;border-radius:999px;background:var(--papel);font-size:.85rem;line-height:1.4}
.sec--papel .org__meta li{background:var(--est-prov)}
.org{transition:border-color var(--t-rapida) var(--ease),box-shadow var(--t-rapida) var(--ease)}
.org:hover{border-color:var(--c);box-shadow:0 6px 18px rgba(16,32,43,.12)}
.org__abrir{all:unset;cursor:pointer;color:inherit;font:inherit}
.org__abrir::after{content:"";position:absolute;inset:0;border-radius:var(--r)}
.org__abrir:focus-visible::after{outline:3px solid var(--vivo);outline-offset:-3px}
.org__meta li.org__etapa{font-weight:700}
.org.is-nuevo{box-shadow:0 0 0 3px #FFE815}
.dir-vacio{display:grid;justify-items:start;gap:1rem;padding:1.5rem;border:1.5px dashed var(--borde);border-radius:var(--r);max-width:44rem}
.dir-vacio p{margin:0}
.dir-vacio[hidden]{display:none}

/* ---- Ficha en modal (capa declarada en la plantilla) ---- */
.ficha{padding:0;border:0;background:transparent;width:min(36rem,calc(100vw - 2rem));max-width:none;max-height:calc(100dvh - 2rem);overflow:visible;color:var(--tinta)}
.ficha::backdrop{background:rgba(8,18,26,.62)}
.ficha__caja{position:relative;max-height:calc(100dvh - 2rem);overflow:auto;padding:1.6rem 1.5rem 1.5rem;border-radius:var(--r);background:var(--fondo);color:var(--tinta);border-top:8px solid var(--c);box-shadow:0 20px 60px rgba(0,0,0,.35)}
.ficha__cerrar{position:absolute;top:.6rem;right:.6rem;width:44px;height:44px;display:grid;place-items:center;border:0;border-radius:50%;background:transparent;color:var(--tinta);cursor:pointer;transition:background-color var(--t-rapida) var(--ease)}
.ficha__cerrar:hover{background:var(--papel)}
.ficha__cerrar svg{width:22px;height:22px}
.ficha__subs{list-style:none;margin:0 3rem .6rem 0;padding:0;display:flex;flex-wrap:wrap;gap:.4rem .9rem}
.ficha__sub{display:flex;align-items:center;gap:.45rem;font-size:.9rem;font-weight:600;color:var(--apoyo)}
.ficha__sub svg{width:1.6rem;height:1.6rem;flex:none;color:var(--tinta)}
.ficha__nombre{margin:0 0 1rem;font-size:clamp(1.35rem,1rem + 1.4vw,1.8rem);line-height:1.2;font-weight:800;color:var(--tinta);overflow-wrap:anywhere}
.ficha__datos{margin:0 0 1.25rem;display:grid;gap:.5rem}
.ficha__fila{display:grid;grid-template-columns:6rem 1fr;gap:.75rem}
.ficha__fila dt{font-weight:700;color:var(--apoyo)}
.ficha__fila dd{margin:0}
.ficha__etapa{padding:1rem;border-radius:var(--r);background:var(--papel)}
.ficha__etapa[hidden]{display:none}
.ficha__etapa-t{margin:0 0 .9rem;font-size:1.05rem;font-weight:800;color:var(--tinta)}
.recorrido{list-style:none;margin:0 0 .9rem;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.25rem}
.rpaso{display:grid;justify-items:stretch;align-content:start;gap:.35rem;text-align:center;position:relative}
.rpaso::before{content:"";position:absolute;z-index:0;top:calc(1rem - 1.5px);right:50%;width:100%;height:3px;background:var(--borde)}
.rpaso:first-child::before{display:none}
.rpaso--hecho::before,.rpaso--actual::before{background:var(--azul)}
.rpaso__num{position:relative;z-index:1;justify-self:center;width:2rem;height:2rem;display:grid;place-items:center;border-radius:50%;border:2px solid var(--borde);background:var(--fondo);color:var(--tinta);font-weight:700;font-size:.9rem}
.rpaso--hecho .rpaso__num,.rpaso--actual .rpaso__num{border-color:#0F69B4;background:#0F69B4;color:#FFFFFF}
.rpaso--actual .rpaso__num{box-shadow:0 0 0 4px rgba(15,105,180,.3)}
.rpaso__t{font-size:.72rem;line-height:1.2;color:var(--apoyo);overflow-wrap:break-word;hyphens:auto}
.rpaso--actual .rpaso__t{font-weight:700;color:var(--tinta)}
/* En pantallas angostas los nombres no caben bajo cada número: quedan para el lector de pantalla y el título ya nombra la etapa */
@media (max-width:540px){.rpaso__t{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}}
.ficha__etapa-d{margin:0 0 .35rem;color:var(--tinta)}
.ficha__nota{margin:0;font-size:.85rem;color:var(--apoyo)}
.ficha__nota{margin:.9rem 0 0}
.ficha__contacto{margin:1.1rem 0 0}
.canales{margin-top:.8rem}
.canales[hidden]{display:none}
.canales__lista{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.6rem}
.canal{display:inline-flex;align-items:center;gap:.5rem;min-height:48px;padding:.6rem 1.1rem;border:1.5px solid var(--borde);border-radius:999px;color:var(--tinta);font-weight:600;text-decoration:none;cursor:pointer;transition:background-color var(--t-rapida) var(--ease),border-color var(--t-rapida) var(--ease)}
.canal:hover{background:var(--papel);border-color:var(--azul)}
.canal svg{width:1.3rem;height:1.3rem;flex:none}
.canal.is-pendiente{color:var(--apoyo);border-style:dashed;cursor:help}
.canal.is-pendiente:hover{border-color:var(--borde)}
.canales__nota{margin:.6rem 0 0;font-size:.85rem;color:var(--apoyo)}
.canales__nota:empty{display:none}

/* ---- Avance hacia la meta ---- */
.avance{list-style:none;margin:0;padding:0;display:grid;gap:.75rem;grid-template-columns:repeat(auto-fill,minmax(min(100%,22rem),1fr))}
.av{display:grid;grid-template-columns:2.2rem 1fr;gap:.35rem .9rem;align-items:center;padding:.9rem 1rem;border:1px solid var(--borde);border-radius:var(--r);background:var(--papel);
  transition:transform var(--t-rapida) var(--ease),border-color var(--t-rapida) var(--ease),box-shadow var(--t-rapida) var(--ease)}
.av:hover{transform:translateY(-2px);border-color:var(--sem);box-shadow:0 6px 18px rgba(0,0,0,.18)}
.av__ico{grid-row:span 2;width:2.2rem;height:2.2rem;color:var(--tinta)}
.av__cab{display:flex;justify-content:space-between;align-items:baseline;gap:.75rem;font-weight:700;line-height:1.3}
.av__estado{display:inline-flex;align-items:center;gap:.4rem;font-size:.85rem;font-weight:600;color:var(--apoyo);white-space:nowrap}
.av__estado::before{content:"";width:.7rem;height:.7rem;border-radius:50%;background:var(--sem);box-shadow:0 0 0 1px rgba(16,32,43,.25)}
.av__barra{position:relative;height:.6rem;border-radius:999px;background:var(--borde);overflow:hidden}
.av__lleno{position:absolute;inset:0;background:var(--sem);transform-origin:left center;border-radius:999px}
.av__meta{position:absolute;top:0;bottom:0;left:50%;width:2px;background:var(--apoyo);opacity:.55}
.av__texto{grid-column:2;font-size:.85rem;color:var(--apoyo)}

.cat-datos__cols{display:grid;gap:0 3rem;max-width:62rem;margin-bottom:1.5rem}
@media (min-width:760px){.cat-datos__cols{grid-template-columns:1fr 1fr}}
.cat-datos__cols p{margin:0 0 1rem;font-size:var(--f-cuerpo)}

/* Los íconos de subsector del sprite no traen relleno propio: toman el color del texto, que cambia con el tema */
.nodo__ico,.ley__ico,.org__sub svg,.av__ico,.ficha__sub svg{fill:currentColor}

@media (prefers-reduced-motion:reduce){
  .av:hover{transform:none}
  .tajada,.nodo__fondo,.ley,.cat-btn,.av{transition:none}
}
