/* ============================================================
   base.css — Reset, tipografía y utilidades globales
   ============================================================ */

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

html {
  font-size: 16px;
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
}

body {
  font-family: var(--font-family);
  font-size: var(--font-size-base);
  color: var(--color-text);
  background-color: var(--color-white);
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body.no-scroll { overflow: hidden; }

img, video { max-width: 100%; height: auto; display: block; }
a { color: inherit; }
button { font-family: var(--font-family); cursor: pointer; }
input, select, textarea, button { font-family: inherit; font-size: inherit; }
ul, ol { list-style: none; }

/* ── Utilidades ── */
.container {
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 0 var(--container-padding);
}

.sr-only {
  position: absolute; width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}

/* ── Headings ── */
h1, h2, h3, h4, h5, h6 {
  font-weight: 800;
  line-height: 1.1;
  color: var(--color-text);
}

/* ── Sección header compartido ── */
.section__label {
  font-size: var(--font-size-xs);
  font-weight: 700;
  color: var(--color-accent);
  letter-spacing: 2px;
  text-transform: uppercase;
  display: block;
}

.section__title {
  font-size: var(--font-size-4xl);
  font-weight: 800;
  color: var(--color-text);
  line-height: 1.1;
}

.section__desc {
  font-size: var(--font-size-md);
  color: var(--color-text-muted);
  line-height: 1.6;
}

/* ── Scroll reveal ── */
.reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}
.reveal.revealed {
  opacity: 1;
  transform: translateY(0);
}
.reveal--delay-1 { transition-delay: 0.1s; }
.reveal--delay-2 { transition-delay: 0.2s; }
.reveal--delay-3 { transition-delay: 0.3s; }

/* ── Placeholder de imágenes ── */
.img-placeholder {
  background: var(--color-light);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-text-muted);
  font-size: var(--font-size-sm);
  width: 100%;
  height: 100%;
}
