/* ==========================================================================
   Rivera House — Base
   Tokens de marca, reset y tipografía general. Se carga en todas las páginas.
   Los selectores usan :where() (especificidad 0) para que nunca le ganen
   a las clases de layout.css / pages/*.css.
   ========================================================================== */

:root {
  --rh-azul: #1F3A5F;          /* Azul principal */
  --rh-azul-oscuro: #152A45;
  --rh-blanco: #FFFFFF;
  --rh-gris-claro: #E1E1E1;
  --rh-grafito: #4A4A4A;       /* Texto */
  --rh-fondo: #F3F3F3;
  --rh-font-titulos: 'Playfair Display', Georgia, serif;
  --rh-font-texto: Montserrat, system-ui, sans-serif;
}

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

html, body {
  margin: 0;
  padding: 0;
  background: var(--rh-fondo);
  color: var(--rh-grafito);
  font-family: var(--rh-font-texto);
  -webkit-font-smoothing: antialiased;
  scroll-behavior: auto;
}
body { font-size: 15px; line-height: 1.55; font-weight: 400; }

:where(h1, h2, h3, h4, h5, h6) {
  font-family: var(--rh-font-titulos);
  font-weight: 600;
  line-height: 1.12;
  letter-spacing: -0.015em;
  margin: 0 0 10px;
}
:where(h1) { font-size: 42px; }
:where(h2) { font-size: 32px; }
:where(h3) { font-size: 25px; }
:where(h4) { font-size: 20px; }
:where(h5) { font-size: 16px; }
:where(h6) { font-size: 13px; letter-spacing: 0.08em; text-transform: uppercase; }
:where(p) { margin: 0 0 15px; }
:where(a) { color: inherit; text-decoration: none; text-underline-offset: 3px; }
:where(img) { display: block; max-width: 100%; }
:where(figure) { margin: 0; }
:where(figcaption) { font-size: 11px; margin-top: 5px; color: color-mix(in srgb, #201e1d 55%, transparent); }
:where(button) { font: inherit; }

[hidden] { display: none !important; }

/* Accesibilidad: foco visible solo con teclado */
:where(:focus) { outline: none; }
:where(:focus-visible) { outline: 2px solid var(--rh-azul); outline-offset: 2px; }
:where(a, button):focus-visible { outline: 2px solid var(--rh-azul); outline-offset: 3px; }

::selection { background: var(--rh-azul); color: var(--rh-blanco); }

/* Lenis (scroll suave) */
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-stopped { overflow: hidden; }

/* Indicador "Desplácese" */
@keyframes rhScroll {
  0%   { transform: translateY(-100%); }
  60%  { transform: translateY(0); }
  100% { transform: translateY(100%); }
}
