/* Las tipografías del sitio, servidas desde geusisp.com.
 *
 * Dos bloques: las dos familias de marca —Sora y Source Sans 3— y, al final, la fuente
 * de iconos de PrimeIcons. Van en el mismo archivo porque comparten exactamente el mismo
 * motivo para estar aquí y no en un CDN, y porque una hoja de tipografías es una petición
 * bloqueante: dos serían dos.
 *
 * No se enlazan desde fonts.googleapis.com a propósito: cada visita enviaría la IP del
 * visitante a un tercero fuera de Colombia, y eso es una transferencia internacional que
 * la política de tratamiento publicada no declara. Autoalojarlas conserva la tipografía
 * de marca y deja la política diciendo la verdad.
 *
 * Sora y Source Sans 3 se distribuyen bajo la SIL Open Font License 1.1, que permite
 * expresamente alojarlas y servirlas desde el propio dominio.
 *
 * Son **fuentes variables**: un solo archivo por familia cubre todos los pesos. Google
 * sirve el mismo .woff2 para cada peso que se le pida —comprobado por md5—, así que pedir
 * cuatro pesos de Sora descargaría cuatro veces el mismo archivo. Aquí va una vez, con su
 * rango de peso declarado.
 */

@font-face {
  font-family: 'Sora';
  font-style: normal;
  font-weight: 100 800;
  font-display: swap;
  src: url('/fonts/sora-variable.woff2') format('woff2-variations');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
    U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215,
    U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 200 900;
  font-display: swap;
  src: url('/fonts/source-sans-3-variable.woff2') format('woff2-variations');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
    U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215,
    U+FEFF, U+FFFD;
}

/* ---------------------------------------------------------------------------
 * PrimeIcons 8.0, autoalojado y podado
 *
 * El paquete `primeicons` estaba instalado desde el principio pero **ninguna página lo
 * cargaba**: escribir `pi pi-loquesea` no pintaba nada, y `Formulario.tsx` lo dejó dicho
 * por escrito el día que quiso un icono y puso un carácter. Esto lo carga.
 *
 * Se autoaloja por la misma razón que Sora y Source Sans 3, y no por gusto: pedir la
 * hoja o la fuente a un CDN entregaría la IP y el User-Agent de cada visitante a un
 * tercero fuera de Colombia. La sección 15 de la política publicada cierra la lista de
 * quién accede a los datos con «Nadie más.» y la 17 enumera las únicas herramientas que
 * reciben información fuera del país. Ningún CDN está en ninguna de las dos listas.
 *
 * Del `@font-face` original se conserva **solo `woff2`**. El de PrimeIcons declara cinco
 * formatos —eot, woff2, woff, ttf, svg— para navegadores que este sitio no soporta;
 * mantenerlos obligaría a publicar 615 KB de fuentes para servir 32 KB.
 *
 * Y de los **359 iconos** que declara `primeicons.css` (18,5 KB), aquí viven los **22**
 * que el sitio usa de verdad, agrupados por para qué sirven. No es una poda por ahorrar
 * bytes —son 16 KB de texto que comprimen a poco—: es que una hoja con 359 nombres
 * disponibles es una invitación a que cada página elija el suyo, y lo que hace coherente
 * a un sitio es tener **un vocabulario corto** y repetirlo. Añadir uno es una línea, y
 * el codepoint sale de `node_modules/primeicons/primeicons.css`.
 *
 * PrimeIcons se distribuye bajo la licencia de PrimeUI, la misma con la que este sitio
 * usa PrimeReact (clave Community, `docs/compatibilidad-primereact-11.md`). Servir la
 * fuente desde el propio dominio es uso normal del paquete, no redistribución.
 */

@font-face {
  font-family: 'primeicons';
  font-style: normal;
  font-weight: normal;
  /* `block` y no `swap`: los glifos viven en el área de uso privado y una tipografía
   * suplente no tiene nada que poner ahí. Con `swap` el visitante vería un cuadrado roto
   * antes de ver el icono; con `block` no ve nada hasta que el icono existe. La espera se
   * evita con el `preload` de `BaseLayout.astro`, no con un tofu. */
  font-display: block;
  src: url('/fonts/primeicons.woff2') format('woff2');
}

.pi {
  font-family: 'primeicons';
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  line-height: 1;
  display: inline-block;
  speak: none;
  text-transform: none;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Aviso y estado. `info-circle` es el de la nota de condición: informa, no alerta. */
.pi-info-circle::before { content: '\e924'; }

/* Navegación */
.pi-chevron-down::before { content: '\e902'; }
.pi-arrow-right::before { content: '\e91b'; }

/* Datos y medida */
.pi-chart-bar::before { content: '\e96d'; }
.pi-calculator::before { content: '\e9ef'; }
.pi-database::before { content: '\e9e3'; }

/* Red y operación */
.pi-wifi::before { content: '\e96f'; }
.pi-sync::before { content: '\e9e6'; }
.pi-power-off::before { content: '\e95c'; }
.pi-wrench::before { content: '\e9ff'; }

/* Dinero */
.pi-wallet::before { content: '\e9c3'; }
.pi-credit-card::before { content: '\e9bf'; }
.pi-receipt::before { content: '\ea06'; }
.pi-file-edit::before { content: '\e9f6'; }

/* Personas */
.pi-users::before { content: '\e941'; }
.pi-graduation-cap::before { content: '\ea34'; }
.pi-comments::before { content: '\e97e'; }

/* Contacto */

/* Dispositivo y medio */
.pi-mobile::before { content: '\e982'; }
.pi-desktop::before { content: '\e993'; }
.pi-video::before { content: '\e962'; }

/* Tiempo y confianza */
.pi-clock::before { content: '\e940'; }
.pi-compass::before { content: '\e9ab'; }
