/**
 * cpdisenador — Las doce familias del diseñador.
 *
 * ────────────────────────────────────────────────────────────────────────────
 * ESTA HOJA ES UN ESPEJO DE fonts/CATALOGO.json, NO UNA LISTA APARTE
 * ────────────────────────────────────────────────────────────────────────────
 * El `font-family` de cada @font-face de aquí es, LETRA POR LETRA, el campo
 * `interno` de esa familia en el catálogo. Esa misma cadena es la que se pone
 * como `fontFamily` en el objeto de Fabric y la que recibirá `jsPDF.addFont()`
 * como 2.º argumento en F3e. Son cuatro sitios y una sola cadena: si divergen,
 * el texto se ve bien en pantalla y sale con OTRA tipografía en el PDF, que es
 * el peor fallo posible porque no se detecta hasta tener el PDF delante.
 *
 * Por eso los nombres van sin espacios y sin tildes ("OpenSans", no "Open
 * Sans"), aunque el name[1] del propio TTF diga otra cosa: la cadena viaja al
 * JSON del diseño y a una llamada de jsPDF, y ahí un espacio es una fuente de
 * errores gratuita. jsPDF no lee el nombre del fichero —se lo pasamos nosotros—
 * así que no hay nada que casar contra el TTF.
 *
 * ────────────────────────────────────────────────────────────────────────────
 * font-display: block, Y NO swap
 * ────────────────────────────────────────────────────────────────────────────
 * El resto del proyecto usa `swap`, que es lo correcto en una página de lectura:
 * mejor texto en otra fuente que texto invisible. Aquí es al revés. Un texto del
 * diseño pintado con la fuente de reserva tiene OTRAS MÉTRICAS: ocupa otro
 * ancho, se sale del margen de seguridad o deja de salirse, y el cliente ve una
 * caja que no es la que va a imprimirse. Con `block` el texto no se pinta hasta
 * que la fuente real está, que es un parpadeo a cambio de no mentir sobre la
 * medida. El bloqueo de `block` es de ~3 s como máximo y luego cae a la de
 * reserva igualmente, así que no hay riesgo de texto invisible permanente.
 *
 * ────────────────────────────────────────────────────────────────────────────
 * RUTAS RELATIVAS, Y AQUÍ SÍ SE PUEDE
 * ────────────────────────────────────────────────────────────────────────────
 * editor.css declara Inter con rutas ABSOLUTAS porque apunta a los woff2 del
 * TEMA, que están en otra rama del sitio. Estos TTF están dentro del módulo, a
 * un nivel de la hoja (`css/` -> `fonts/`), así que `../fonts/` resuelve solo y
 * el módulo se puede mover sin tocar nada.
 *
 * ⚠ SON TTF Y NO woff2, Y ES A PROPÓSITO. Pesan bastante más (~9 MB las doce en
 * dos pesos), pero son los MISMOS ficheros que F3e embeberá en el PDF: una sola
 * copia de cada fuente en el módulo, y garantía de que lo que se ve en pantalla
 * y lo que se incrusta en el PDF es el mismo contorno. Con woff2 para pantalla y
 * TTF para el PDF habría dos ficheros por peso que podrían desincronizarse en
 * una actualización. El navegador solo baja la familia que el diseño use.
 *
 * ⚠ Los woff2 de Inter que declara editor.css son los de la INTERFAZ (botones,
 * barra, paneles) y no se tocan. El "Inter" de esta hoja es el de los objetos
 * del lienzo. Comparten nombre de familia a propósito: es la misma tipografía y
 * el navegador elige el @font-face cuyo peso case, así que no colisionan.
 *
 * @author Gráficas Campoamor
 */

/* ── Inter · OFL 1.1 · 4.001 (rsms v4.1) ─────────────────────────────────── */
@font-face {
    font-family: "Inter";
    font-style: normal;
    font-weight: 400;
    font-display: block;
    src: url("../fonts/inter/Inter-Regular.ttf") format("truetype");
}
@font-face {
    font-family: "Inter";
    font-style: normal;
    font-weight: 700;
    font-display: block;
    src: url("../fonts/inter/Inter-Bold.ttf") format("truetype");
}

/* ── Roboto · OFL 1.1 · 3.016 ────────────────────────────────────────────── */
@font-face {
    font-family: "Roboto";
    font-style: normal;
    font-weight: 400;
    font-display: block;
    src: url("../fonts/roboto/Roboto-Regular.ttf") format("truetype");
}
@font-face {
    font-family: "Roboto";
    font-style: normal;
    font-weight: 700;
    font-display: block;
    src: url("../fonts/roboto/Roboto-Bold.ttf") format("truetype");
}

/* ── OpenSans · OFL 1.1 · 3.003 ──────────────────────────────────────────── */
@font-face {
    font-family: "OpenSans";
    font-style: normal;
    font-weight: 400;
    font-display: block;
    src: url("../fonts/open-sans/OpenSans-Regular.ttf") format("truetype");
}
@font-face {
    font-family: "OpenSans";
    font-style: normal;
    font-weight: 700;
    font-display: block;
    src: url("../fonts/open-sans/OpenSans-Bold.ttf") format("truetype");
}

/* ── Lato · OFL 1.1 · 2.015 ──────────────────────────────────────────────── */
@font-face {
    font-family: "Lato";
    font-style: normal;
    font-weight: 400;
    font-display: block;
    src: url("../fonts/lato/Lato-Regular.ttf") format("truetype");
}
@font-face {
    font-family: "Lato";
    font-style: normal;
    font-weight: 700;
    font-display: block;
    src: url("../fonts/lato/Lato-Bold.ttf") format("truetype");
}

/* ── Montserrat · OFL 1.1 · 9.000 ────────────────────────────────────────── */
@font-face {
    font-family: "Montserrat";
    font-style: normal;
    font-weight: 400;
    font-display: block;
    src: url("../fonts/montserrat/Montserrat-Regular.ttf") format("truetype");
}
@font-face {
    font-family: "Montserrat";
    font-style: normal;
    font-weight: 700;
    font-display: block;
    src: url("../fonts/montserrat/Montserrat-Bold.ttf") format("truetype");
}

/* ── SourceSans3 · OFL 1.1 · 3.052 ───────────────────────────────────────── */
@font-face {
    font-family: "SourceSans3";
    font-style: normal;
    font-weight: 400;
    font-display: block;
    src: url("../fonts/source-sans-3/SourceSans3-Regular.ttf") format("truetype");
}
@font-face {
    font-family: "SourceSans3";
    font-style: normal;
    font-weight: 700;
    font-display: block;
    src: url("../fonts/source-sans-3/SourceSans3-Bold.ttf") format("truetype");
}

/* ── PlayfairDisplay · OFL 1.1 · 1.203 ───────────────────────────────────── */
@font-face {
    font-family: "PlayfairDisplay";
    font-style: normal;
    font-weight: 400;
    font-display: block;
    src: url("../fonts/playfair-display/PlayfairDisplay-Regular.ttf") format("truetype");
}
@font-face {
    font-family: "PlayfairDisplay";
    font-style: normal;
    font-weight: 700;
    font-display: block;
    src: url("../fonts/playfair-display/PlayfairDisplay-Bold.ttf") format("truetype");
}

/* ── Merriweather · OFL 1.1 · 2.100 · CORTE ÓPTICO 24pt ──────────────────── */
/* El nombre de fichero lleva el _24pt y el font-family NO: ver la nota de esta
 * familia en CATALOGO.json. No existe un estático de nombre limpio en ninguna
 * fuente oficial, así que se fija el corte de texto corrido y se esconde el
 * detalle detrás del nombre de familia. */
@font-face {
    font-family: "Merriweather";
    font-style: normal;
    font-weight: 400;
    font-display: block;
    src: url("../fonts/merriweather/Merriweather_24pt-Regular.ttf") format("truetype");
}
@font-face {
    font-family: "Merriweather";
    font-style: normal;
    font-weight: 700;
    font-display: block;
    src: url("../fonts/merriweather/Merriweather_24pt-Bold.ttf") format("truetype");
}

/* ── Oswald · OFL 1.1 · 4.103 · SIN ITÁLICA ──────────────────────────────── */
@font-face {
    font-family: "Oswald";
    font-style: normal;
    font-weight: 400;
    font-display: block;
    src: url("../fonts/oswald/Oswald-Regular.ttf") format("truetype");
}
@font-face {
    font-family: "Oswald";
    font-style: normal;
    font-weight: 700;
    font-display: block;
    src: url("../fonts/oswald/Oswald-Bold.ttf") format("truetype");
}

/* ── Raleway · OFL 1.1 · 4.026 ───────────────────────────────────────────── */
@font-face {
    font-family: "Raleway";
    font-style: normal;
    font-weight: 400;
    font-display: block;
    src: url("../fonts/raleway/Raleway-Regular.ttf") format("truetype");
}
@font-face {
    font-family: "Raleway";
    font-style: normal;
    font-weight: 700;
    font-display: block;
    src: url("../fonts/raleway/Raleway-Bold.ttf") format("truetype");
}

/* ── LiberationSerif · OFL 1.1 · 2.1.5 (Red Hat) ─────────────────────────── */
@font-face {
    font-family: "LiberationSerif";
    font-style: normal;
    font-weight: 400;
    font-display: block;
    src: url("../fonts/liberation-serif/LiberationSerif-Regular.ttf") format("truetype");
}
@font-face {
    font-family: "LiberationSerif";
    font-style: normal;
    font-weight: 700;
    font-display: block;
    src: url("../fonts/liberation-serif/LiberationSerif-Bold.ttf") format("truetype");
}

/* ── Tinos · OFL 1.1 · 1.340 (relicenciada desde Apache 2.0) ─────────────── */
@font-face {
    font-family: "Tinos";
    font-style: normal;
    font-weight: 400;
    font-display: block;
    src: url("../fonts/tinos/Tinos-Regular.ttf") format("truetype");
}
@font-face {
    font-family: "Tinos";
    font-style: normal;
    font-weight: 700;
    font-display: block;
    src: url("../fonts/tinos/Tinos-Bold.ttf") format("truetype");
}
