/* Blindmachine - identidad visual del sitio público (Inicio, Sobre mí, Servicios, Proyectos) */
/* No afecta a Aplicaciones ni al subsistema privado: todo queda dentro de body.sitio-publico */

body.sitio-publico {
  --color-fondo: #0B1830;
  --color-fondo-panel: #13213F;
  --color-texto: #F5F6F8;
  --color-texto-tenue: #9AA6BB;
  --color-acento: #B23A2E;
  --color-acento-interactivo: #C2453A;
  --fuente-titulos: -apple-system, system-ui, "SF Pro Display", "Segoe UI", sans-serif;
  --fuente-texto: -apple-system, system-ui, "SF Pro Text", "Segoe UI", sans-serif;
}

body.sitio-publico h1,
body.sitio-publico h2 {
  letter-spacing: -0.02em;
}

body.sitio-publico main {
  padding-top: 48px;
  padding-bottom: 80px;
}

/* Foco de teclado y enlace activo del menú: variante más clara del acento,
   verificada en 3:1 o más contra ambos fondos oscuros (el acento base
   B23A2E queda apenas por debajo del mínimo en estos dos usos puntuales) */
body.sitio-publico a:focus-visible,
body.sitio-publico button:focus-visible,
body.sitio-publico .boton:focus-visible {
  outline-color: var(--color-acento-interactivo);
}

body.sitio-publico nav a:hover,
body.sitio-publico nav a[aria-current="page"] {
  border-bottom-color: var(--color-acento-interactivo);
}

.bloque-publico {
  position: relative;
  margin-bottom: 56px;
}

.bloque-publico:last-child {
  margin-bottom: 0;
}

.bloque-publico h1,
.bloque-publico h2 {
  max-width: 640px;
}

.bloque-publico h2 {
  font-size: 1.5rem;
  margin: 0 0 12px 0;
}

.bloque-publico p {
  max-width: 640px;
  margin: 0 0 20px 0;
}

.bloque-publico p:last-child {
  margin-bottom: 0;
}

.lema-publico {
  font-size: 1.25rem;
  color: var(--color-texto);
}

/* Movimiento mínimo: aparición suave del contenido al cargar la página,
   desactivada por completo si el sistema tiene activado reducir movimiento */
@media (prefers-reduced-motion: no-preference) {
  .bloque-publico {
    animation: bm-aparicion-suave 280ms ease-out both;
  }
  .bloque-publico:nth-of-type(2) { animation-delay: 60ms; }
  .bloque-publico:nth-of-type(3) { animation-delay: 120ms; }
  .bloque-publico:nth-of-type(4) { animation-delay: 180ms; }
}

@keyframes bm-aparicion-suave {
  from { opacity: 0; transform: translateY(6px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Línea guía: firma visual decorativa, solo en pantallas anchas.
   Implementada con borde y pseudo-elemento CSS, no con un nodo del DOM,
   por lo que nunca queda expuesta al árbol de accesibilidad ni puede
   recibir foco: no hace falta aria-hidden porque nunca es alcanzable. */
@media (min-width: 900px) {
  .contenedor-publico {
    padding-left: 28px;
    border-left: 2px solid var(--color-acento);
  }

  .bloque-publico::before {
    content: "";
    position: absolute;
    left: -33px;
    top: 8px;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background-color: var(--color-acento);
  }
}
