/* Agregados de la web estática de CRIES (lo que antes resolvía Next.js) */
:root { --cr-ink: #171717; --cr-body: #4d4d4d; --cr-mute: #888; --cr-line: #ebebeb; --cr-soft: #fafafa; --cr-blue: #0070f3; --cr-cyan: #50e3c2; }

/* Menú móvil */
.mobile-menu { position: fixed; top: 64px; left: 0; right: 0; z-index: 49; background: #fff; border-bottom: 1px solid var(--cr-line); box-shadow: 0 12px 24px rgba(0,0,0,.06); }
.mobile-menu[hidden] { display: none; }
.mobile-menu nav { display: flex; flex-direction: column; padding: 8px 16px 16px; max-width: 1200px; margin: 0 auto; }
.mobile-menu a { padding: 14px 4px; font-weight: 600; color: var(--cr-ink); border-bottom: 1px solid var(--cr-line); text-decoration: none; }
.mobile-menu a.mm-cta { margin-top: 12px; border: 0; border-radius: 999px; background: var(--cr-ink); color: #fff; text-align: center; padding: 14px; }
@media (min-width: 1024px) { .mobile-menu { display: none !important; } }

/* Mapa del hero */
.hero-map { position: relative; width: 100%; height: 100%; min-height: 260px; display: flex; align-items: center; justify-content: center; }
.cries-map { width: 100%; height: auto; max-height: 400px; }
.cries-map .land path { fill: #f3f3f3; stroke: #b5b5b5; stroke-width: .7; stroke-linejoin: round; }
.cries-map .links line { stroke: var(--cr-blue); stroke-opacity: .35; stroke-width: 1; }
.cries-map .dot { fill: var(--cr-blue); stroke: #fff; stroke-width: 1.2; }
.cries-map .pulse { fill: var(--cr-blue); opacity: 0; transform-box: fill-box; transform-origin: center; animation: cr-pulse 3.2s ease-out infinite; }
@keyframes cr-pulse { 0% { opacity: .45; transform: scale(1); } 80%, 100% { opacity: 0; transform: scale(3.2); } }
@media (prefers-reduced-motion: reduce) { .cries-map .pulse { animation: none; } }

/* Dashboard SALW embebido */
.salw-embed { padding: 0 16px 48px; max-width: 1100px; margin: 0 auto; }
.salw-frame { position: relative; width: 100%; aspect-ratio: 16 / 9; min-height: 320px; background: #fff; border: 1px solid var(--cr-line); }
.salw-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.salw-note { margin-top: 12px; font-size: 13px; color: var(--cr-mute); }
.salw-note a { color: var(--cr-blue); font-weight: 500; }
@media (min-width: 768px) { .salw-embed { padding: 0 24px 64px; } }

.salw-inline { padding: 0; max-width: none; }

/* Publicaciones -> biblioteca */
.pubs-block { border-top: 1px solid var(--cr-line); padding: 40px 16px 56px; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 24px; }
.pubs-block p { max-width: 720px; }
.pubs-cols { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; list-style: none; padding: 0; margin: 0; max-width: 820px; }
.pubs-cols li { border: 1px solid var(--cr-line); border-radius: 999px; padding: 6px 14px; font-size: 14px; color: var(--cr-body); background: #fff; }
.pubs-btn { display: inline-flex; align-items: center; gap: 8px; min-height: 48px; padding: 0 22px; border-radius: 999px; background: var(--cr-ink); color: #fff !important; font-weight: 500; text-decoration: none; }
.pubs-btn:hover { background: #262626; }

/* 404 */
.notfound { padding: 120px 16px; text-align: center; display: flex; flex-direction: column; gap: 20px; align-items: center; }
.nf-links { display: flex; gap: 16px; align-items: center; flex-wrap: wrap; justify-content: center; }
.nf-sec { color: var(--cr-blue); font-weight: 500; }

/* Equipo: biografía visible al tocar (celulares) */
article.group.is-open > div.z-10 { opacity: 1; }

/* Equipo: fichas alternadas (foto a la izquierda en las impares) */
@media (min-width: 1024px) {
  article.team-flip > :last-child { order: -1; }
  article.team-flip > :first-child { padding-left: 2.5rem; padding-right: 1.5rem; }
}
