/* ============================================================
   CHACKPOWER · NÚCLEO — BASE
   Reset mínimo, layout, tipografía y accesibilidad.
   Los componentes consumen tokens (tokens.css o identidad.css del sitio).
   ============================================================ */

*,
*::before,
*::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  background: var(--__fondo);
  color: var(--__texto);
  font-family: var(--__fuente-texto);
  font-size: var(--__tam-base);
  line-height: 1.6;
  -webkit-text-size-adjust: 100%;
}

img, svg, video { max-width: 100%; height: auto; display: block; }

/* Enlaces */
a { color: var(--__acento); text-decoration-color: color-mix(in srgb, var(--__acento) 55%, transparent); }
a:hover { color: #ffe0b0; }

/* Foco visible siempre (accesibilidad) */
:focus-visible {
  outline: none;
  box-shadow: var(--__foco);
  border-radius: 2px;
}

/* Saltar al contenido */
.salto-contenido {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 100;
  background: var(--__panel-flotante);
  color: var(--__texto);
  padding: .6rem 1rem;
}
.salto-contenido:focus { left: .5rem; top: .5rem; }

/* Layout */
.contenedor {
  width: min(var(--__ancho-max), 100% - 2.5rem);
  margin-inline: auto;
}
.lectura { max-width: var(--__ancho-lectura); }

/* Títulos: condensada, mayúsculas, espaciado táctico */
h1, h2, h3, .titulo-condensada {
  font-family: var(--__fuente-titulo);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .06em;
  line-height: 1.15;
  margin: 0 0 var(--__esp-3);
}
h1 { font-size: var(--__tam-xxg); }
h2 { font-size: var(--__tam-xg); }
h3 { font-size: var(--__tam-g); font-weight: 500; }

p { margin: 0 0 var(--__esp-3); }
p:last-child { margin-bottom: 0; }

/* Etiqueta de sección (el detalle frio sobre los títulos) */
.rotulo-seccion {
  font-family: var(--__fuente-titulo);
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: .22em;
  font-size: var(--__tam-p);
  color: var(--__acento-frio);
  margin: 0 0 .4rem;
}

/* Marcador de contenido pendiente (nunca disfrazar de dato real) */
.pendiente {
  display: inline-block;
  font-size: var(--__tam-p);
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--__texto-mudo);
  border: var(--__borde-panel);
  border-color: color-mix(in srgb, var(--__borde) 70%, transparent);
  padding: .1rem .55rem;
  border-radius: var(--__radio);
  font-family: var(--__fuente-titulo);
}
.pendiente::before { content: "⌛ "; }

/* Secciones */
.seccion { padding: var(--__esp-5) 0; }
.seccion--banda { background: var(--__banda); border-block: var(--__borde-panel); }
.centrado { text-align: center; }

/* Aparición sutil (se desactiva abajo) */
.revelar { opacity: 0; transform: translateY(14px); transition: opacity var(--__t-normal) ease, transform var(--__t-normal) ease; }
.revelar--visible { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
  .revelar { opacity: 1; transform: none; }
}

/* Impresión */
@media print {
  .header, .footer, .nav__boton, .galeria__caja-luz { display: none !important; }
  body { background: #fff; color: #111; }
}
