/* Barra de navegación y pie del sitio público.
   =============================================
   Van aparte de site.css porque el visor de notebooks también los lleva, y el
   visor tiene sus propios estilos (style.css + Bootstrap): cargar site.css
   entera allí le cambiaría las listas, las tablas y los títulos del notebook.
   Aquí sólo está el armazón —barra, contacto y letra pequeña—, así que hay
   una única copia y las dos partes del sitio no se descoordinan.

   Los colores salen de site.css cuando está cargada (las páginas normales);
   si no lo está (el visor), de los valores de reserva de aquí, que son los
   mismos. */

:root {
  --sc-bg: var(--bg, #ffffff);
  --sc-bg-2: var(--bg-2, #eef5fc);
  --sc-surface: var(--surface, #f7fbfe);
  --sc-surface-2: var(--surface-2, #eaf2fb);
  --sc-border: var(--border, rgba(20, 60, 110, .12));
  --sc-text: var(--text, #16263c);
  --sc-muted: var(--muted, #5c7590);
  --sc-accent: var(--accent, #2b5fd9);
  --sc-accent-soft: var(--accent-soft, #6f93e6);
}

.wrap { max-width: 1200px; margin: 0 auto; padding: 0 24px; }

/* ---------- Navegación ---------- */
.site-nav {
  position: sticky; top: 0; z-index: 1030;
  background: rgba(255, 255, 255, .92); backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--sc-border);
  font-family: 'Inter', sans-serif;
  color: var(--sc-text);
}
.site-nav .wrap { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 60px; }
/* Lo de la derecha: los botones propios de la página (el «Índice» del visor,
   por ejemplo), la hamburguesa y el menú. */
.site-nav .nav-side { display: flex; align-items: center; gap: 10px; min-width: 0; }
.brand {
  font-family: 'Literata', Georgia, serif; font-weight: 700; font-size: 1.08rem;
  display: flex; align-items: center; gap: 9px;
  color: var(--sc-text); text-decoration: none; min-width: 0;
}
.brand i { color: var(--sc-accent); }
.nav-links { display: flex; align-items: center; gap: 4px; }
.nav-links a {
  padding: 8px 14px; border-radius: 999px; font-size: .92rem; font-weight: 500;
  color: var(--sc-muted); text-decoration: none; white-space: nowrap;
  transition: .15s;
}
.nav-links a:hover { color: var(--sc-accent); background: var(--sc-surface-2); }
.nav-links a.active { color: var(--sc-accent); background: var(--sc-surface-2); font-weight: 600; }
.nav-links a.nav-admin { border: 1px solid var(--sc-border); color: var(--sc-accent); margin-left: 6px; }
.nav-toggle {
  display: none; background: none; border: 1px solid var(--sc-border); border-radius: 10px;
  padding: 7px 11px; font-size: 1.1rem; color: var(--sc-text); cursor: pointer;
}
/* Vista previa del administrador: el menú se ve igual, pero sus enlaces no
   llevan href (no navegan) para no perder la pestaña de la vista previa. */
.site-nav.is-preview .brand,
.site-nav.is-preview .nav-links a { cursor: default; }

/* Botón propio de la página dentro de la barra (el «Índice» del visor y el
   «Editar» de la vista previa). Mismo aire que un enlace del menú. */
.nav-btn {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 7px 13px; border-radius: 999px; font-size: .86rem; font-weight: 600;
  border: 1px solid var(--sc-border); background: var(--sc-surface);
  color: var(--sc-muted); text-decoration: none; cursor: pointer; white-space: nowrap;
  font-family: 'Inter', sans-serif; line-height: 1.2;
}
.nav-btn:hover { color: var(--sc-accent); border-color: var(--sc-accent-soft); background: var(--sc-surface-2); }
.nav-btn.is-primary { color: var(--sc-accent); border-color: var(--sc-accent-soft); }
.nav-btn[hidden] { display: none; }

/* ---------- Contacto ---------- */
.site-foot { font-family: 'Inter', sans-serif; line-height: 1.65; }
footer.contact {
  background: var(--sc-bg-2); border-top: 1px solid var(--sc-border);
  padding: 60px 0; color: var(--sc-text);
}
footer.contact h2 {
  font-family: 'Literata', Georgia, serif; font-weight: 600; color: var(--sc-text);
  font-size: clamp(1.4rem, 3vw, 1.8rem); margin: 8px 0 0;
}
.eyebrow { text-transform: uppercase; letter-spacing: .1em; font-size: .76rem; font-weight: 700; color: var(--sc-accent); }
.contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: center; }
.contact-info .contact-line { display: flex; gap: 10px; align-items: center; margin-top: 12px; color: var(--sc-muted); }
.contact-form input, .contact-form textarea {
  width: 100%; border: 1px solid var(--sc-border); border-radius: 10px; padding: 11px 13px; margin-bottom: 14px;
  font-family: 'Inter', sans-serif; font-size: .95rem; background: var(--sc-surface); color: var(--sc-text);
}
.contact-form input:focus, .contact-form textarea:focus { outline: 2px solid var(--sc-accent-soft); border-color: transparent; }
.contact-form input::placeholder, .contact-form textarea::placeholder { color: #93a5bb; }
.contact-form label { display: block; font-size: .8rem; font-weight: 600; margin-bottom: 6px; color: var(--sc-muted); }
.contact-form button {
  background: var(--sc-accent); color: #ffffff; border: none; padding: 12px 22px; border-radius: 10px;
  font-weight: 700; cursor: pointer; font-family: 'Inter', sans-serif; font-size: .95rem;
}
.contact-form button:hover { background: #2450b8; }

.fine-print {
  text-align: center; color: var(--sc-muted); font-size: .8rem; padding: 22px 0;
  background: var(--sc-bg-2); margin: 0;
}
.fine-print a { color: var(--sc-accent); text-decoration: none; }
.fine-print .admin-link a { display: inline-flex; align-items: center; gap: 5px; font-weight: 600; }
.fine-print .admin-link a:hover { text-decoration: underline; }

/* En la vista previa del administrador el pie se ve, pero no se toca. */
.site-foot.is-preview { pointer-events: none; user-select: none; }

/* ---------- Responsive ---------- */
@media (max-width: 760px) {
  .nav-toggle { display: block; }
  .nav-links {
    display: none; position: absolute; top: 60px; left: 0; right: 0; flex-direction: column; align-items: stretch;
    background: #fff; border-bottom: 1px solid var(--sc-border); padding: 10px 16px 16px; gap: 6px;
    box-shadow: 0 14px 30px rgba(20, 60, 110, .08);
  }
  .nav-links.open { display: flex; }
  .nav-links a { padding: 11px 14px; }
  .contact-grid { grid-template-columns: 1fr; }
}
@media (max-width: 575.98px) {
  /* El nombre, los botones de la página y la hamburguesa tienen que caber en
     una línea: si el nombre es largo se recorta antes que partir la barra. */
  .brand { font-size: .98rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; display: block; }
  .brand i { display: none; }
  .nav-btn { padding: 7px 10px; }
}
