/* ============================================================
   base.css — Espiral Dulce
   Reset, tipografía global, utilidades de layout y animaciones
   de scroll. Nada específico de una sección o componente.
   Estructura:
     1. Reset
     2. Tipografía
     3. Utilidades de layout
     4. Animaciones de scroll (reveal)
============================================================ */


/* ============================================================
   1. RESET
============================================================ */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html { scroll-behavior: smooth; }

body {
  font-family: var(--font-body);
  color: var(--ink);
  background: var(--white);
  line-height: 1.6;
  overflow-x: hidden;
}

img  { max-width: 100%; height: auto; display: block; }
a    { color: inherit; text-decoration: none; }
ul   { list-style: none; }
button { cursor: pointer; border: none; background: none; font-family: inherit; }

::selection { background: rgba(200, 121, 65, 0.25); }


/* ============================================================
   2. TIPOGRAFÍA
============================================================ */
h1, h2, h3 {
  font-family: var(--font-display);
  line-height: 1.15;
}

h1 { font-size: clamp(2rem, 5vw, 3.5rem);   font-weight: 700; }
h2 { font-size: clamp(1.6rem, 3.5vw, 2.6rem); font-weight: 600; }
h3 { font-size: clamp(1.1rem, 2vw, 1.5rem);  font-weight: 600; }

.section-label {
  font-family: var(--font-body);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--amber);
  display: block;
  margin-bottom: 0.75rem;
}


/* ============================================================
   3. UTILIDADES DE LAYOUT
============================================================ */
.container {
  width: 90%;
  max-width: 1200px;
  margin: 0 auto;
}

.section-pad { padding: 90px 0; }

@media (max-width: 768px) {
  .section-pad { padding: 60px 0; }
}

.section-header { margin-bottom: 3rem; }


/* ============================================================
   4. ANIMACIONES DE SCROLL (REVEAL)
   Las activa el IntersectionObserver de nav.js.
============================================================ */
.reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}
.reveal.visible {
  opacity: 1;
  transform: translateY(0);
}

/* Delays escalonados para grupos de tarjetas */
.reveal-delay-1 { transition-delay: 0.1s; }
.reveal-delay-2 { transition-delay: 0.2s; }
.reveal-delay-3 { transition-delay: 0.3s; }
.reveal-delay-4 { transition-delay: 0.4s; }
.reveal-delay-5 { transition-delay: 0.5s; }
