/* ============================================================
   TOKENS — paleta monocroma del sitio

   Única fuente de verdad del color. Nació como la capa `buscador-mono.css`
   de /propiedades (PR #40) y aquí se promueve a hoja global: el resto de
   los estilos (property-card.css, article.css y los <style> por página)
   consumen estas variables y no vuelven a escribir un hex.

   Enlazar SIEMPRE la primera de las hojas de la página, para que cualquier
   otra regla pueda sobreescribirla sin pelearse con la cascada.

   ── LO QUE NO ES MONOCROMO ────────────────────────────────────────────
   Tres excepciones, y ninguna más:
     a. Fotos y videos de propiedades — se publican tal cual.
     b. Las teselas del mapa (Carto Positron, base gris clara). Van sobre
        la CDN de Carto, no aquí; el chrome del mapa (pines, círculos,
        popups) sí es tinta y papel.
     c. Estados funcionales de formulario: --error y --ok. Son señales, no
        decoración: un mensaje de error en gris se lee como texto de ayuda.

   ── CONTRASTE (medido, WCAG 2.1) ──────────────────────────────────────
   Sobre --paper (#fff):
     --ink      #0f0f0f  19.2:1  texto principal                     AAA
     --gray-3   #525252   7.8:1  texto secundario                    AAA
     --gray-2   #a3a3a3   2.5:1  NO apto para texto: iconografía,
                                 bordes y decoración grande solamente.
     --gray-1   #e5e5e5   1.3:1  bordes y separadores, nunca texto.
     --error    #9b2c2c   7.5:1  AAA · --ok #2f6b46 6.3:1 AA
   Sobre --ink-deep (#0d0d0d), que es el fondo oscuro del home:
     --on-ink   #ffffff  19.4:1  texto principal invertido           AAA
     --on-ink-2 #d4d4d4  13.1:1  texto secundario invertido          AAA
     --on-ink-3 #a3a3a3   7.7:1  texto terciario invertido           AAA
     --error-on-ink #d99a9a 8.4:1 · --ok-on-ink #8fd0a8 10.9:1       AAA
   Regla práctica: sobre fondo oscuro NUNCA se baja de --on-ink-3. Las
   opacidades sueltas tipo rgba(255,255,255,.45) quedaban en ~4:1 y por eso
   se cambiaron por estos tokens.
   ============================================================ */

:root{
  /* ── Papel y tinta ── */
  --ink:#0f0f0f;
  --paper:#ffffff;
  --paper-soft:#f7f7f7;
  --paper-mid:#efefef;

  --gray-1:#e5e5e5;   /* bordes sobre papel */
  --gray-2:#a3a3a3;   /* iconografía y decoración; no texto sobre papel */
  --gray-3:#525252;   /* texto secundario sobre papel */

  /* Estado "apagado" del texto que se enciende al hacer scroll (home, equipo,
     nosotros). Es texto real: si alguien llega con el JS caído o sin llegar a
     hacer scroll, tiene que poder leerlo igual. Por eso no baja de 4.5:1 sobre
     papel (4.6:1) ni de 4.3:1 sobre --paper-soft, en vez del #d0d0d0 anterior,
     que se quedaba en 1.6:1. */
  --reveal-off:#757575;

  /* ── Superficies oscuras (hero, footer, secciones del home) ── */
  --ink-deep:#0d0d0d; /* el negro de fondo del sitio */
  --ink-2:#111111;    /* superficie oscura alterna */
  --ink-3:#181818;    /* tarjetas y modales sobre negro */
  --ink-4:#232323;    /* campos de formulario sobre negro */

  --on-ink:#ffffff;
  --on-ink-2:#d4d4d4;
  --on-ink-3:#a3a3a3;

  --line-on-ink:rgba(255,255,255,.14);
  --line-on-ink-2:rgba(255,255,255,.28);
  --veil-ink:rgba(13,13,13,.82);   /* velo sobre foto para sostener texto */

  /* ── Estados funcionales (las únicas notas de color) ── */
  --error:#9b2c2c;
  --error-soft:rgba(155,44,44,.10);
  --error-on-ink:#d99a9a;
  --ok:#2f6b46;
  --ok-soft:rgba(47,107,70,.10);
  --ok-on-ink:#8fd0a8;

  /* ── Tipografía ── */
  --serif:'Cinzel',Georgia,serif;
  --sans:'Lato',Helvetica,Arial,sans-serif;
}

/* Foco visible y monocromo en todo lo interactivo. Sobre fondo oscuro el
   contorno negro desaparecería, así que ahí se invierte. */
:focus-visible{outline:2px solid var(--ink);outline-offset:2px}

/* ── Mapa (Leaflet) — chrome monocromo sobre teselas Positron ──────────
   Vive aquí y no en cada página porque el buscador y la ficha comparten
   exactamente el mismo lenguaje de mapa. */
.leaflet-container{background:var(--paper-soft)}
.leaflet-popup-content-wrapper{
  background:var(--paper)!important;color:var(--ink)!important;
  border-radius:8px!important;padding:12px!important;
  box-shadow:0 8px 32px rgba(0,0,0,.2)!important;
}
.leaflet-popup-content{margin:0!important;width:auto!important;color:var(--ink)}
.leaflet-popup-tip{background:var(--paper)!important}
.leaflet-popup-close-button{color:var(--gray-3)!important}
.leaflet-popup-close-button:hover{color:var(--ink)!important}
.leaflet-control-attribution{
  background:rgba(255,255,255,.85)!important;color:var(--gray-3)!important;
}
.leaflet-control-attribution a{color:var(--gray-3)!important}
.leaflet-bar a{color:var(--ink)!important;background:var(--paper)!important;border-color:var(--gray-1)!important}
.leaflet-bar a:hover{background:var(--paper-soft)!important}
