@charset "UTF-8";
/* ==========================================================================
   Espacio Autónomo — Sitio en construcción
   --------------------------------------------------------------------------
   PUNTOS DE REEMPLAZO DE ASSETS: todos están en :root, bloques 1 y 3.
   Nota: las rutas url() dentro de variables se resuelven respecto a este
   archivo (styles.css), que vive junto a index.html; por eso "assets/...".
   ========================================================================== */

:root {
  /* ---- 1. LOGO -----------------------------------------------------------
     assets/logo.svg = EA_Logo_Color.svg del cliente con el viewBox recortado
     al contenido (8.4 26.6 143.25 106.8). El original está en logo-original.svg.
     --logo-offset-x: en la referencia la caja del logo queda ~4% a la derecha
     del centro (el tronco no está en el centro del dibujo). 0% = caja centrada. */
  --logo-offset-x: 4%;

  /* ---- 3. FONDO: tres capas independientes --------------------------------
     a) Curvas de nivel: Fotos/Curvas.svg (vector, nítido a cualquier tamaño).
     b) Papel: Fotos/Textura A.jpg (manchas suaves; 2560 px basta, 1600 en 1x).
     c) --color-papel: respaldo mientras cargan las imágenes.
     El orden en background-image es de arriba hacia abajo. */
  --curvas-img:   url("assets/curvas.svg");
  --curvas-size:  cover;
  --papel-img:    url("assets/textura-papel-2560.webp");
  --papel-size:   cover;

  /* ---- Tokens de diseño ---- */
  --color-papel:  #cbc2b3;   /* respaldo ≈ tono medio de Textura A */
  --color-tinta:  #1a1a1a;   /* titular y líneas */
  --color-marca:  #3a5d04;   /* verde del logo (muestreado de la referencia) */

  --font-titular: "Raleway", "Montserrat", "Helvetica Neue", Arial, sans-serif;
  --titular-peso: 250;
  --titular-size: clamp(0.95rem, 4.1vw, 4rem);      /* ~61px en 1492px de ancho */
  --titular-track: 0.06em;
  --mensaje-size: clamp(0.95rem, 0.8rem + 0.45vw, 1.2rem);
  --linea-grosor: 1.5px;
  --linea-gap:    clamp(0.6rem, 1.5vw, 1.4rem);     /* separación texto–línea */
  --linea-min:    1.25rem;                           /* largo mínimo de cada línea */

  /* Medidas calibradas contra la referencia (viewport 1492x1098):
     logo x 508–1027 / y 109–494, línea del titular en y≈652. */
  --logo-w:   clamp(200px, min(35.3vw, 48svh), 560px);  /* 527/1492 = 35.3vw */
  --espacio-top:    clamp(2rem, 9.8svh, 7.5rem);          /* 108/1098 */
  --espacio-titular: clamp(2rem, 10.5svh, 8.5rem);
}

/* ---- Base ---------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }

body {
  margin: 0;
  min-height: 100svh;
  overflow-x: clip;
  color: var(--color-tinta);
  background-color: var(--color-papel);
  background-image: var(--curvas-img), var(--papel-img);
  background-size: var(--curvas-size), var(--papel-size);
  background-repeat: no-repeat;
  background-position: center;
  background-attachment: scroll;
  font-family: var(--font-titular);
  -webkit-font-smoothing: antialiased;
}

.visually-hidden {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

/* ---- Layout -------------------------------------------------------------- */
.page {
  min-height: 100svh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;       /* contenido centrado en la pantalla */
  padding-block: var(--espacio-top);
}

/* ---- Logo ---------------------------------------------------------------- */
.logo {
  display: block;
  width: var(--logo-w);
  max-width: calc(100% - 2rem);
  height: auto;
  /* En la referencia la caja del logo queda ligeramente a la derecha del centro. */
  translate: var(--logo-offset-x) 0;
}

/* ---- Titular con líneas laterales ---------------------------------------- */
.headline {
  width: 100%;
  margin: var(--espacio-titular) 0 0;
  display: flex;
  align-items: center;
  gap: var(--linea-gap);
  font-weight: var(--titular-peso);
  font-size: var(--titular-size);
  line-height: 1.15;
  letter-spacing: var(--titular-track);
  text-transform: uppercase;
  text-align: center;
  color: var(--color-tinta);
}

.headline::before,
.headline::after {
  content: "";
  flex: 1 1 0;
  min-width: var(--linea-min);
  height: var(--linea-grosor);
  background: currentColor;
}

.headline__text {
  flex: 0 1 auto;
  /* compensa el tracking final para que el texto quede óptimamente centrado */
  margin-right: calc(var(--titular-track) * -1);
  text-wrap: balance;
}

/* ---- Mensaje bajo el titular --------------------------------------------- */
.mensaje {
  width: min(44rem, 100% - 2.5rem);
  margin: clamp(1.25rem, 4svh, 2.75rem) auto 1.5rem;
  text-align: center;
  font-size: var(--mensaje-size);
  line-height: 1.65;
  text-wrap: pretty;
}
.mensaje p { margin: 0; }
.mensaje__mision {
  font-weight: 400;
  color: color-mix(in srgb, var(--color-tinta) 85%, transparent);
}
.mensaje .mensaje__aviso {
  margin-top: 1em;
  font-weight: 500;
  letter-spacing: 0.02em;
  color: var(--color-marca);
}

/* ---- Entrada suave ------------------------------------------------------- */
@media (prefers-reduced-motion: no-preference) {
  .logo, .headline, .mensaje { animation: aparecer 1.1s ease-out both; }
  .headline { animation-delay: .25s; }
  .mensaje  { animation-delay: .5s; }

  @keyframes aparecer {
    from { opacity: 0; transform: translateY(8px); }
    to   { opacity: 1; transform: none; }
  }
}

/* ---- Pantallas bajas o panorámicas (laptops, monitores 16:9) ------------ */
@media (min-width: 481px) and (max-height: 820px), (min-aspect-ratio: 16/10) {
  :root {
    --logo-w:          clamp(170px, min(35.3vw, 38svh), 560px);
    --espacio-top:     clamp(1.5rem, 6svh, 4rem);
    --espacio-titular: clamp(1.25rem, 6svh, 4rem);
    --titular-size:    clamp(0.95rem, min(4.1vw, 6.5svh), 4rem);
  }
}

/* ---- Móvil --------------------------------------------------------------- */
@media (max-width: 480px) {
  :root {
    --titular-track: 0.05em;
    --espacio-top:     clamp(2rem, 8svh, 5rem);
    --espacio-titular: clamp(1.75rem, 8svh, 4rem);
  }
}

/* ---- Resolución de imágenes según pantalla ------------------------------- */
/* Pantallas 1x de hasta 1500px: basta la textura de 1600px (menos peso). */
@media (max-width: 1500px) and (max-resolution: 1.25dppx) {
  :root { --papel-img: url("assets/textura-papel-1600.webp"); }
}
