/* Cabecera y pie públicos, iguales a los de proyectos-investigacion
   (resources/css/publico.css allá). Mismos valores; el modo oscuro sigue a
   body.fm-dark, que es el tema de este sitio. */
:root {
    --pub-primary: #004AAE;
    --pub-primary-ink: #004AAE;
    --pub-primary-soft: #e6efff;
    --pub-chrome: #0e1422;
    --pub-surface: #ffffff;
    --pub-border: #e6e8ee;
    --pub-text: #0e1422;
    --pub-text-muted: #3a4151;
    --pub-bg-hover: #f6f7fb;
}
body.fm-dark {
    --pub-primary: #0A5BAB;
    --pub-primary-ink: #6AA5FF;
    --pub-primary-soft: #16243d;
    --pub-chrome: #070b14;
    --pub-surface: #161d2f;
    --pub-border: #253049;
    --pub-text: #eef1f7;
    --pub-text-muted: #aab4c8;
    --pub-bg-hover: #0b0f1a;
}

.pub-contenedor { max-width: 1240px; margin: 0 auto; padding: 0 1.5rem; box-sizing: border-box; }

/* ---------- Barra superior y cabecera ---------- */
.pub-topbar { background: var(--pub-chrome); font-size: .78rem; }
.pub-topbar-inner { display: flex; gap: 1.1rem; align-items: center; min-height: 34px; }
.pub-topbar a { color: #fff !important; opacity: .85; text-decoration: none; transition: opacity .15s; }
.pub-topbar a:hover { opacity: 1; }

.pub-nav { background: var(--pub-surface); border-bottom: 1px solid var(--pub-border); }
.pub-nav-inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 120px; }
.pub-nav-marca { display: inline-flex; align-items: center; gap: 1rem; text-decoration: none; }
.pub-nav-logo { height: 96px; width: auto; display: block; }
.pub-nav-acciones { display: flex; align-items: center; gap: .5rem; }
.pub-nav-tag {
    font-size: .72rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase;
    background: var(--pub-primary-soft); color: var(--pub-primary-ink);
    padding: 4px 9px; border-radius: 6px;
}
.pub-selector-tema {
    width: 44px; height: 44px; flex: none; cursor: pointer;
    display: inline-flex; align-items: center; justify-content: center;
    border-radius: 10px; border: 1.5px solid var(--pub-border);
    background: var(--pub-surface); color: var(--pub-text-muted);
    transition: color .18s, border-color .18s, background .18s;
}
.pub-selector-tema:hover { color: var(--pub-primary-ink); border-color: var(--pub-primary-ink); background: var(--pub-bg-hover); }
.pub-selector-tema svg { width: 20px; height: 20px; }
.pub-icono-sol { display: none; }
body.fm-dark .pub-icono-sol { display: block; }
body.fm-dark .pub-icono-luna { display: none; }
.pub-nav-acceso, .pub-nav-link {
    display: inline-flex; align-items: center; gap: .45rem; min-height: 44px;
    padding: 0 1.1rem; border: 1px solid var(--pub-border); border-radius: 999px;
    font-size: .85rem; font-weight: 700; color: var(--pub-text) !important; white-space: nowrap;
    text-decoration: none; transition: border-color .15s, color .15s;
}
.pub-nav-link { border-color: transparent; }
.pub-nav-acceso:hover, .pub-nav-link:hover { border-color: var(--pub-primary-ink); color: var(--pub-primary-ink) !important; }
.pub-nav-acceso svg { width: 17px; height: 17px; }

/* ---------- Footer ---------- */
.pub-footer {
    background: var(--pub-chrome);
    color: #fff;
    padding-top: 3.5rem;
    border-top: 4px solid var(--pub-primary);
    margin-top: 2rem;
}
.pub-footer-marca { padding-bottom: 2.5rem; border-bottom: 1px solid rgba(255, 255, 255, .12); }
.pub-footer-acreditacion { width: min(560px, 100%); height: auto; display: block; }
.pub-footer-cols {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 2rem;
    padding: 2.5rem 0; border-bottom: 1px solid rgba(255, 255, 255, .12);
}
.pub-footer h4 { font-size: .78rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; margin: 0 0 1rem; color: #fff; }
.pub-footer-cols p { font-size: .88rem; opacity: .8; margin: 0 0 .35rem; }
.pub-footer-cols a { display: block; color: #fff !important; font-size: .88rem; opacity: .7; margin-bottom: .55rem; text-decoration: none; }
.pub-footer-cols a:hover { opacity: 1; }
.pub-footer-nota { margin: 0; padding: 1.25rem 0 0; font-size: .8rem; opacity: .6; }
.pub-footer-copy { font-size: .8rem; padding: 1.25rem 0; }
.pub-footer-copy > span { opacity: .6; }

@media (max-width: 640px) {
    .pub-nav-tag { display: none; }
    .pub-nav-inner { min-height: 96px; }
    .pub-nav-logo { height: 72px; }
    .pub-nav-link span, .pub-nav-acceso span { display: none; }
    .pub-nav-link, .pub-nav-acceso { padding: 0; width: 44px; justify-content: center; }
    .pub-nav-link { border-color: var(--pub-border); }
}
