/**
 * ALBALOCAL · Sistema Visual v1.3.0
 * ------------------------------------------------------------
 * Capa central de identidad visual.
 *
 * IMPORTANTE:
 * - Centraliza las familias Lora + Inter y los tokens visuales.
 * - No modifica selectores de otros módulos por sí sola.
 * - Los módulos públicos adoptan estas claves como contrato tipográfico común.
 * - La estructura y la operativa de ALBALOCAL permanecen intactas.
 */

:root {
    /* Familias oficiales ALBALOCAL. */
    --al2-font-identity: "Lora", serif;
    --al2-font-functional: "Inter", sans-serif;

    /* Alias compatibles con módulos ALBALOCAL existentes. */
    --al2-font-identidad: var(--al2-font-identity);
    --al2-font-funcional: var(--al2-font-functional);

    /* Pesos oficiales */
    --al2-weight-regular: 400;
    --al2-weight-medium: 500;
    --al2-weight-semibold: 600;
    --al2-weight-bold: 700;

    /* Colores consolidados ya presentes en ALBALOCAL2 */
    --al2-color-background: #f5f3ef;
    --al2-color-text: #1f1f1d;
    --al2-color-accent: #d39a32;
    --al2-color-emergency: #d71920;
    --al2-color-surface: #ffffff;

    /* Interlineados base. No se aplican automáticamente. */
    --al2-line-tight: 1.05;
    --al2-line-title: 1.15;
    --al2-line-body: 1.55;
    --al2-line-reading: 1.68;

    /* Escala espacial base. No altera márgenes existentes por sí sola. */
    --al2-space-1: 4px;
    --al2-space-2: 8px;
    --al2-space-3: 12px;
    --al2-space-4: 16px;
    --al2-space-5: 24px;
    --al2-space-6: 32px;
    --al2-space-7: 48px;
    --al2-space-8: 64px;

    /* Radios de referencia */
    --al2-radius-small: 4px;
    --al2-radius-medium: 8px;
    --al2-radius-large: 14px;
    --al2-radius-pill: 999px;
}

/*
 * Clases semánticas disponibles para la migración progresiva.
 * No afectan a ningún elemento hasta que un módulo las adopte explícitamente.
 */
.al2-type-identity {
    font-family: var(--al2-font-identity);
}

.al2-type-functional {
    font-family: var(--al2-font-functional);
}

.al2-title-page {
    font-family: var(--al2-font-identity);
    font-weight: var(--al2-weight-medium);
    line-height: var(--al2-line-tight);
}

.al2-title-section {
    font-family: var(--al2-font-identity);
    font-weight: var(--al2-weight-semibold);
    line-height: var(--al2-line-title);
}

.al2-text-body {
    font-family: var(--al2-font-functional);
    font-weight: var(--al2-weight-regular);
    line-height: var(--al2-line-body);
}

.al2-text-functional,
.al2-action {
    font-family: var(--al2-font-functional);
}

/* Urgencias: regla tipográfica central de seguridad. */
.alba-urgent-dialog,
.alba-urgent-dialog button,
.alba-urgent-dialog a,
.alba-urgent-dialog p,
.alba-urgent-dialog span,
.alba-urgent-dialog strong,
.alba-urgent-dialog b,
.alba-urgent-dialog small,
.alba-urgent-dialog div { font-family:var(--al2-font-functional); }
.alba-urgent-dialog-head h2, #alba-emergency-title { font-family:var(--al2-font-identity); }


/* Agenda: contrato tipográfico central. */
.alba-sample-agenda,
.alba-sample-agenda button,
.alba-sample-agenda a,
.alba-sample-agenda input,
.alba-sample-agenda select,
.alba-sample-agenda textarea {
    font-family:var(--al2-font-functional);
}
.alba-sample-agenda-title h1,
.alba-sample-agenda-modal-card h2 {
    font-family:var(--al2-font-identity);
}


/* ALBALOCAL 1.3.0 · Contrato tipográfico público global.
 * Todo contenido funcional hereda Inter desde su raíz pública.
 * Los puntos editoriales/identitarios se declaran después en Lora. */
.alba-site,
.alba-general-home,
.alba-general-demo,
.alba-sample-cover,
.alba-sample-index,
.alba-sample-business,
.alba-sample-contact,
.alba-sample-editorial,
.alba-sample-directory,
.alba-sample-local-directory,
.alba-sample-emergency-directory,
.alba-sample-dea,
.alba-sample-agenda,
.alba-sample-jobs,
.alba-sample-legal,
.alba-business-map-page,
.alba-jobs-public,
.alba-editorial-public,
.alba-policy,
.alba-cookie-panel,
.alba-urgent-dialog {
    font-family: var(--al2-font-functional);
}
.alba-site button,.alba-site input,.alba-site select,.alba-site textarea,
.alba-general-home button,.alba-general-home input,.alba-general-home select,.alba-general-home textarea,
.alba-sample-cover button,.alba-sample-cover input,.alba-sample-cover select,.alba-sample-cover textarea,
.alba-sample-index button,.alba-sample-index input,.alba-sample-index select,.alba-sample-index textarea,
.alba-sample-business button,.alba-sample-business input,.alba-sample-business select,.alba-sample-business textarea,
.alba-sample-contact button,.alba-sample-contact input,.alba-sample-contact select,.alba-sample-contact textarea,
.alba-sample-editorial button,.alba-sample-editorial input,.alba-sample-editorial select,.alba-sample-editorial textarea,
.alba-sample-directory button,.alba-sample-directory input,.alba-sample-directory select,.alba-sample-directory textarea,
.alba-sample-local-directory button,.alba-sample-local-directory input,.alba-sample-local-directory select,.alba-sample-local-directory textarea,
.alba-sample-emergency-directory button,.alba-sample-emergency-directory input,.alba-sample-emergency-directory select,.alba-sample-emergency-directory textarea,
.alba-sample-dea button,.alba-sample-dea input,.alba-sample-dea select,.alba-sample-dea textarea,
.alba-sample-agenda button,.alba-sample-agenda input,.alba-sample-agenda select,.alba-sample-agenda textarea,
.alba-sample-jobs button,.alba-sample-jobs input,.alba-sample-jobs select,.alba-sample-jobs textarea,
.alba-sample-legal button,.alba-sample-legal input,.alba-sample-legal select,.alba-sample-legal textarea,
.alba-jobs-public button,.alba-jobs-public input,.alba-jobs-public select,.alba-jobs-public textarea,
.alba-cookie-panel button,.alba-cookie-panel input,.alba-cookie-panel select,.alba-cookie-panel textarea,
.alba-urgent-dialog button,.alba-urgent-dialog input,.alba-urgent-dialog select,.alba-urgent-dialog textarea {
    font-family: var(--al2-font-functional);
}

/* ALBALOCAL · Sistema tipográfico integral v1.3.0 */
:root {
    --al2-type-line-height-1: 1;
    --al2-type-line-height-1-02: 1.02;
    --al2-type-line-height-1-03: 1.03;
    --al2-type-line-height-1-04: 1.04;
    --al2-type-line-height-1-05: 1.05;
    --al2-type-line-height-1-08: 1.08;
    --al2-type-line-height-1-1: 1.1;
    --al2-type-line-height-1-12: 1.12;
    --al2-type-line-height-1-15: 1.15;
    --al2-type-line-height-1-18: 1.18;
    --al2-type-line-height-1-2: 1.2;
    --al2-type-line-height-1-25: 1.25;
    --al2-type-line-height-1-3: 1.3;
    --al2-type-line-height-1-35: 1.35;
    --al2-type-line-height-1-4: 1.4;
    --al2-type-line-height-1-42: 1.42;
    --al2-type-line-height-1-42-important: 1.42!important;
    --al2-type-line-height-1-45: 1.45;
    --al2-type-line-height-1-45-important: 1.45!important;
    --al2-type-line-height-1-48: 1.48;
    --al2-type-line-height-1-5: 1.5;
    --al2-type-line-height-1-55: 1.55;
    --al2-type-line-height-1-55-important: 1.55!important;
    --al2-type-line-height-1-58: 1.58;
    --al2-type-line-height-1-6: 1.6;
    --al2-type-line-height-1-6-important: 1.6!important;
    --al2-type-line-height-1-62: 1.62;
    --al2-type-line-height-1-65: 1.65;
    --al2-type-line-height-1-68: 1.68;
    --al2-type-line-height-1-7: 1.7;
    --al2-type-line-height-1-72: 1.72;
    --al2-type-line-height-1-8-important: 1.8!important;
    --al2-type-line-height-17px: 17px;
    --al2-type-line-height-8: .8;
    --al2-type-line-height-84: .84;
    --al2-type-line-height-86: .86;
    --al2-type-line-height-9: .9;
    --al2-type-line-height-92: .92;
    --al2-type-line-height-94: .94;
    --al2-type-line-height-95: .95;
    --al2-type-line-height-96: .96;
    --al2-type-line-height-98: .98;
    --al2-type-line-height-var-al2-line-body: var(--al2-line-body);
    --al2-type-line-height-var-al2-line-tight: var(--al2-line-tight);
    --al2-type-line-height-var-al2-line-title: var(--al2-line-title);
    --al2-type-size-0-important: 0!important;
    --al2-type-size-10-5px: 10.5px;
    --al2-type-size-10px: 10px;
    --al2-type-size-10px-important: 10px!important;
    --al2-type-size-11-5px: 11.5px;
    --al2-type-size-11px: 11px;
    --al2-type-size-12-5px: 12.5px;
    --al2-type-size-12px: 12px;
    --al2-type-size-12px-important: 12px!important;
    --al2-type-size-13px: 13px;
    --al2-type-size-13px-important: 13px!important;
    --al2-type-size-14px: 14px;
    --al2-type-size-14px-important: 14px!important;
    --al2-type-size-15px: 15px;
    --al2-type-size-16px: 16px;
    --al2-type-size-17px: 17px;
    --al2-type-size-18px: 18px;
    --al2-type-size-19px: 19px;
    --al2-type-size-20px: 20px;
    --al2-type-size-21px: 21px;
    --al2-type-size-22px: 22px;
    --al2-type-size-23px: 23px;
    --al2-type-size-24px: 24px;
    --al2-type-size-25px: 25px;
    --al2-type-size-26px: 26px;
    --al2-type-size-27px: 27px;
    --al2-type-size-28px: 28px;
    --al2-type-size-29px: 29px;
    --al2-type-size-30px: 30px;
    --al2-type-size-31px: 31px;
    --al2-type-size-31px-important: 31px!important;
    --al2-type-size-32px: 32px;
    --al2-type-size-34px: 34px;
    --al2-type-size-36px: 36px;
    --al2-type-size-40px: 40px;
    --al2-type-size-42px: 42px;
    --al2-type-size-44px: 44px;
    --al2-type-size-46px: 46px;
    --al2-type-size-48px: 48px;
    --al2-type-size-54px: 54px;
    --al2-type-size-62px: 62px;
    --al2-type-size-7px: 7px;
    --al2-type-size-8-5px: 8.5px;
    --al2-type-size-84px: 84px;
    --al2-type-size-8px: 8px;
    --al2-type-size-9-5px: 9.5px;
    --al2-type-size-9px: 9px;
    --al2-type-size-9px-important: 9px!important;
    --al2-type-size-clamp-11px-1-25vw-17px: clamp(11px,1.25vw,17px);
    --al2-type-size-clamp-12px-1-15vw-17px: clamp(12px,1.15vw,17px);
    --al2-type-size-clamp-29px-8-7vw-39px: clamp(29px,8.7vw,39px);
    --al2-type-size-clamp-31px-9-2vw-41px: clamp(31px,9.2vw,41px);
    --al2-type-size-clamp-34px-3vw-52px: clamp(34px,3vw,52px);
    --al2-type-size-clamp-34px-5vw-58px: clamp(34px,5vw,58px);
    --al2-type-size-clamp-38px-12vw-64px: clamp(38px,12vw,64px);
    --al2-type-size-clamp-38px-6vw-74px: clamp(38px,6vw,74px);
    --al2-type-size-clamp-39px-3-15vw-56px: clamp(39px,3.15vw,56px);
    --al2-type-size-clamp-40px-7vw-74px: clamp(40px,7vw,74px);
    --al2-type-size-clamp-42px-5vw-76px: clamp(42px,5vw,76px);
    --al2-type-size-clamp-42px-6-1vw-96px: clamp(42px,6.1vw,96px);
    --al2-type-size-clamp-46px-15vw-82px: clamp(46px,15vw,82px);
    --al2-type-size-clamp-54px-9vw-128px: clamp(54px,9vw,128px);
    --al2-type-size-clamp-54px-9vw-86px: clamp(54px,9vw,86px);
    --al2-type-size-clamp-72px-7vw-128px: clamp(72px,7vw,128px);
    --al2-type-style-italic: italic;
    --al2-type-style-normal: normal;
    --al2-type-tracking-spacing-0: 0;
    --al2-type-tracking-spacing-005em: .005em;
    --al2-type-tracking-spacing-015em: .015em;
    --al2-type-tracking-spacing-018em: .018em;
    --al2-type-tracking-spacing-018em: -.018em;
    --al2-type-tracking-spacing-01em: -.01em;
    --al2-type-tracking-spacing-025em: .025em;
    --al2-type-tracking-spacing-025em: -.025em;
    --al2-type-tracking-spacing-02em: .02em;
    --al2-type-tracking-spacing-035em: .035em;
    --al2-type-tracking-spacing-03em: .03em;
    --al2-type-tracking-spacing-045em: .045em;
    --al2-type-tracking-spacing-04em: .04em;
    --al2-type-tracking-spacing-06em: .06em;
    --al2-type-tracking-spacing-06em-important: .06em!important;
    --al2-type-tracking-spacing-075em: .075em;
    --al2-type-tracking-spacing-08em: .08em;
    --al2-type-tracking-spacing-095em: .095em;
    --al2-type-tracking-spacing-09em: .09em;
    --al2-type-tracking-spacing-105em: .105em;
    --al2-type-tracking-spacing-11em: .11em;
    --al2-type-tracking-spacing-12em: .12em;
    --al2-type-tracking-spacing-13em: .13em;
    --al2-type-tracking-spacing-14em: .14em;
    --al2-type-tracking-spacing-15em: .15em;
    --al2-type-tracking-spacing-16em: .16em;
    --al2-type-tracking-spacing-17em: .17em;
    --al2-type-tracking-spacing-18em: .18em;
    --al2-type-tracking-spacing-22em: .22em;
    --al2-type-tracking-spacing-2em: .2em;
    --al2-type-tracking-spacing-2px: -2px;
    --al2-type-transform-none: none;
    --al2-type-transform-uppercase: uppercase;
    --al2-type-weight-300: 300;
    --al2-type-weight-400: 400;
    --al2-type-weight-500: 500;
    --al2-type-weight-500-important: 500!important;
    --al2-type-weight-600: 600;
    --al2-type-weight-700: 700;
    --al2-type-weight-700-important: 700!important;
    --al2-type-weight-800: 800;
    --al2-type-weight-var-al2-weight-medium: var(--al2-weight-medium);
    --al2-type-weight-var-al2-weight-regular: var(--al2-weight-regular);
    --al2-type-weight-var-al2-weight-semibold: var(--al2-weight-semibold);
    --al2-type-rhythm-title-after: 0.45em;
    --al2-type-rhythm-paragraph: 0.85em;
}
/* Contrato global: controles funcionales nunca dependen de la tipografía del tema. */
.alba-sample-cover button,.alba-sample-cover input,.alba-sample-cover select,.alba-sample-cover textarea,
.alba-sample-index button,.alba-sample-index input,.alba-sample-index select,.alba-sample-index textarea,
.alba-business-page button,.alba-business-page input,.alba-business-page select,.alba-business-page textarea,
.alba-sample-agenda button,.alba-sample-agenda input,.alba-sample-agenda select,.alba-sample-agenda textarea,
.alba-urgent-dialog button,.alba-urgent-dialog input,.alba-urgent-dialog select,.alba-urgent-dialog textarea { font-family:var(--al2-font-functional); }
/* Cursiva editorial: solo donde ya está declarada semánticamente; no se fuerza globalmente. */
