/* KC bundle generado: 32 archivos */

/* ===== fonts.css ===== */
/* ============================================================
   kc/fonts.css — Manrope self-hosted + Manrope Fallback
   ============================================================
   Servir Manrope LOCAL es la única forma de garantizar que la
   fuente esté disponible al instante (sin red lenta a Google).
   Combinado con <link rel="preload"> del woff2 en el HTML,
   Manrope llega antes del primer paint → cero salto visual.
   ============================================================ */

/* === Manrope real (3 pesos, woff2 local) === */
@font-face {
    font-family: 'Manrope';
    src: url('../../fonts/manrope-400.woff2') format('woff2');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Manrope';
    src: url('../../fonts/manrope-500.woff2') format('woff2');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Manrope';
    src: url('../../fonts/manrope-700.woff2') format('woff2');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Manrope';
    src: url('../../fonts/manrope-800.woff2') format('woff2');
    font-weight: 800;
    font-style: normal;
    font-display: swap;
}

/* === Manrope Fallback (Arial ajustado con métricas reales) ===
   Mientras Manrope termina de descargar, Arial se renderiza con
   las MISMAS métricas (Capsize) → no hay reflow al swap. */
@font-face {
    font-family: 'Manrope Fallback';
    src: local('Arial');
    size-adjust: 100.06%;
    ascent-override: 92.84%;
    descent-override: 24.41%;
    line-gap-override: 0%;
}


/* ===== 00-tokens.css ===== */
/* ============================================================
   kc/00-tokens.css — Design tokens (variables CSS)
   ============================================================
   Fuente única de verdad para colores, tipografía, spacing.
   Paleta oficial RKC: verde bosque + lima + blanco.
   ============================================================ */

:root {
    /* ============================================================
       BRANDING OFICIAL RKC
       Estos tres tokens son la fuente canónica de la marca.
       ============================================================ */
    --rkc-primary: #063D2B;
    --rkc-accent:  #9BEA16;
    --rkc-white:   #FFFFFF;

    /* Escala derivada del verde de marca. */
    --kc-green-900:  #031f16;
    --kc-green-800:  #042e20;
    --kc-green-700:  var(--rkc-primary);
    --kc-green-600:  #0a523a;
    --kc-green-500:  #137052;
    --kc-green-300:  #6a9d89;
    --kc-green-100:  #d7e5df;
    --kc-green-50:   #f0f6f3;

    /* ============================================================
       LIMA RKC — acento de marca
       ============================================================ */
    --kc-lime-700:   #4d7a00;   /* texto accesible sobre blanco */
    --kc-lime-600:   #72b600;
    --kc-lime-500:   var(--rkc-accent);
    --kc-lime-400:   #b5f04f;
    --kc-lime-100:   #ecfbcf;
    --kc-lime-50:    #f7feeb;

    /* ============================================================
       ROJO FUNCIONAL — EN VIVO, urgente y error
       ============================================================ */
    --kc-red-800:    #a8120e;
    --kc-red-700:    #c41510;
    --kc-red-600:    #f51e1a;   /* ROJO MARCA — accent / EN VIVO */
    --kc-red-500:    #ff3733;
    --kc-red-400:    #ff6664;

    /* ============================================================
       AZUL "ESCUCHAR" (botones audio)
       ============================================================ */
    --kc-blue-700:   #1d4ed8;
    --kc-blue-600:   #2563eb;   /* PLAY/ESCUCHAR */
    --kc-blue-500:   #3b82f6;

    /* ============================================================
       NEGRO EDITORIAL + GRISES (sistema slate)
       ============================================================ */
    --kc-black:      #000000;
    --kc-ink-900:    #0f172a;   /* NEGRO EDITORIAL */
    --kc-ink-800:    #1e293b;
    --kc-ink-700:    #334155;
    --kc-ink-600:    #475569;   /* TEXTO BODY */
    --kc-ink-500:    #64748b;
    --kc-ink-400:    #94a3b8;
    --kc-ink-300:    #cbd5e1;
    --kc-ink-200:    #e2e8f0;
    --kc-ink-100:    #f1f5f9;
    --kc-ink-50:     #f8fafc;
    --kc-white:      var(--rkc-white);

    /* Identidad de plataformas, para enlaces a redes sociales. */
    --kc-social-facebook: #0866ff;
    --kc-social-twitter: #087ac1;
    --kc-social-instagram-purple: #833ab4;
    --kc-social-instagram-pink: #e1306c;
    --kc-social-instagram-orange: #f77737;
    --kc-social-youtube: #e60000;
    --kc-social-telegram: #0079b5;

    /* Colaboración EVO Pueblo: colores tomados del emblema proporcionado. */
    --kc-evo-blue: #02489e;
    --kc-evo-green: #09a64a;

    /* ============================================================
       SEMÁNTICOS — usar SIEMPRE estos en componentes
       ============================================================ */
    --kc-text:           var(--kc-ink-900);
    --kc-text-soft:      var(--kc-ink-700);
    --kc-text-muted:     var(--kc-ink-600);
    --kc-text-faint:     var(--kc-ink-400);
    --kc-text-inverse:   var(--kc-white);

    --kc-bg:             var(--kc-white);
    --kc-bg-alt:         var(--kc-ink-50);
    --kc-bg-soft:        var(--kc-ink-100);
    --kc-bg-ink:         var(--kc-ink-900);     /* secciones negras */
    --kc-bg-brand:       var(--kc-green-700);   /* secciones verdes */
    --kc-bg-brand-deep:  var(--kc-green-900);

    --kc-border:         var(--kc-ink-200);
    --kc-border-strong:  var(--kc-ink-300);
    --kc-border-brand:   var(--kc-green-700);

    --kc-primary:        var(--kc-green-700);
    --kc-primary-hover:  var(--kc-green-600);
    --kc-primary-deep:   var(--kc-green-900);
    --kc-accent:         var(--rkc-accent);
    --kc-accent-hover:   #88d00e;
    --kc-accent-text:    var(--kc-green-900);
    --kc-accent-strong:  var(--kc-lime-700);
    --kc-live:           var(--kc-red-600);
    --kc-live-hover:     var(--kc-red-700);
    --kc-listen:         var(--kc-blue-600);
    --kc-listen-hover:   var(--kc-blue-700);
    --kc-link:           var(--kc-green-700);
    --kc-editorial-line: var(--kc-primary);

    /* ============================================================
       TIPOGRAFÍA
       ============================================================ */
    /* Una sola fuente para TODO el sitio: Manrope.
       Fallback "Manrope Fallback" = Arial con métricas ajustadas (Capsize)
       para que el render sea visualmente idéntico mientras carga Manrope. */
    --ff-sans:     'Manrope', 'Manrope Fallback', Arial, sans-serif;
    --ff-serif:    var(--ff-sans);  /* alias por compat — todo es sans */
    --ff-mono:     'JetBrains Mono', 'Courier New', monospace;

    /* ============================================================
       ESCALA TIPOGRÁFICA — clara y consistente (estilo RPP)
       ============================================================
       Cada tamaño tiene un PROPÓSITO específico. No mezclar.

       USO POR TOKEN:
       --fs-xs   11px  → chips, badges, eyebrows, footer titulos, meta micro
       --fs-sm   13px  → meta noticias, nav, pills, botones, card title sidebar
       --fs-base 15px  → UI default, form inputs, body de cards
       --fs-md   16px  → body de párrafos (lectura larga)
       --fs-lg   18px  → card title regular, h5
       --fs-xl   20px  → card title featured, h4, schedule time
       --fs-2xl  24px  → h3, section title, page header sm
       --fs-3xl  30px  → h2, page header md
       --fs-4xl  38px  → h1, hero principal
       --fs-5xl  48px  → hero gigante (raro)
       ============================================================ */
    --fs-xs:    0.75rem;     /* 12px (era 11) */
    --fs-sm:    0.875rem;    /* 14px (era 13) */
    --fs-base:  1rem;        /* 16px (era 15) */
    --fs-md:    1.0625rem;   /* 17px (era 16) */
    --fs-lg:    1.25rem;     /* 20px (era 18) */
    --fs-xl:    1.375rem;    /* 22px (era 20) */
    --fs-2xl:   1.625rem;    /* 26px (era 24) */
    --fs-3xl:   2rem;        /* 32px (era 30) */
    --fs-4xl:   2.625rem;    /* 42px (era 38) */
    --fs-5xl:   3.25rem;     /* 52px (era 48) */

    /* Pesos */
    /* 4 pesos reales cargados: 400, 500, 700 y 800 (manrope-*.woff2).
       Los intermedios (300, 600, 900) son alias al peso real más
       cercano para evitar faux-bold del navegador. */
    --fw-light:    400;
    --fw-regular:  400;
    --fw-medium:   500;
    --fw-semibold: 500;
    --fw-bold:     700;
    --fw-extrabold: 800;   /* titulares */
    --fw-black:    800;

    /* Line heights */
    --lh-tight:    1.1;
    --lh-snug:     1.25;
    --lh-normal:   1.5;
    --lh-relaxed:  1.65;
    --lh-loose:    1.85;

    /* Letter spacing */
    --tracking-tight:     0;
    --tracking-snug:      0;
    --tracking-normal:    0;
    --tracking-wide:      0.025em;
    --tracking-wider:     0.05em;
    --tracking-widest:    0.1em;

    /* ============================================================
       SPACING (sistema 4px)
       ============================================================ */
    --sp-0:   0;
    --sp-1:   0.25rem;   /* 4 */
    --sp-2:   0.5rem;    /* 8 */
    --sp-3:   0.75rem;   /* 12 */
    --sp-4:   1rem;      /* 16 */
    --sp-5:   1.25rem;   /* 20 */
    --sp-6:   1.5rem;    /* 24 */
    --sp-8:   2rem;      /* 32 */
    --sp-10:  2.5rem;    /* 40 */
    --sp-12:  3rem;      /* 48 */
    --sp-16:  4rem;      /* 64 */
    --sp-20:  5rem;      /* 80 */

    /* ============================================================
       RADIUS
       ============================================================ */
    --radius-none:  0;
    --radius-sm:    4px;
    --radius:       6px;
    --radius-md:    8px;
    --radius-lg:    12px;
    --radius-xl:    16px;
    --radius-2xl:   24px;
    --radius-full:  9999px;

    /* ============================================================
       SOMBRAS (sistema elevación slate)
       ============================================================ */
    --shadow-xs: 0 1px 2px rgba(15, 23, 42, 0.05);
    --shadow-sm: 0 1px 3px rgba(15, 23, 42, 0.08), 0 1px 2px rgba(15, 23, 42, 0.05);
    --shadow:    0 4px 6px -1px rgba(15, 23, 42, 0.08), 0 2px 4px -2px rgba(15, 23, 42, 0.05);
    --shadow-md: 0 10px 15px -3px rgba(15, 23, 42, 0.1), 0 4px 6px -4px rgba(15, 23, 42, 0.07);
    --shadow-lg: 0 20px 25px -5px rgba(15, 23, 42, 0.12), 0 8px 10px -6px rgba(15, 23, 42, 0.06);
    --shadow-xl: 0 25px 50px -12px rgba(15, 23, 42, 0.25);
    --shadow-brand: 0 6px 20px -4px rgba(6, 61, 43, 0.35);

    /* ============================================================
       TRANSICIONES
       ============================================================ */
    --t-fast:   120ms cubic-bezier(0.4, 0, 0.2, 1);
    --t-base:   200ms cubic-bezier(0.4, 0, 0.2, 1);
    --t-slow:   320ms cubic-bezier(0.4, 0, 0.2, 1);
    --t-slower: 500ms cubic-bezier(0.4, 0, 0.2, 1);

    /* ============================================================
       LAYOUT
       ============================================================ */
    --container-sm: 540px;
    --container-md: 720px;
    --container-lg: 960px;
    --container-xl: 1140px;
    --container-content: 1160px;      /* ancho útil editorial estilo El Deber */
    --container-page: 1208px;         /* 1160px + gutters desktop de 24px por lado */
    --container-page-half: 604px;
    --container-header: 1275px;
    --container-2xl: var(--container-page);   /* alias legado para módulos existentes */

    --z-base:     1;
    --z-sticky:   100;
    --z-header:   1000;
    --z-overlay:  1100;
    --z-modal:    1200;
    --z-toast:    1300;
    --z-tooltip:  1400;
}


/* ===== 01-base.css ===== */
/* ============================================================
   kc/01-base.css — Reset moderno + utilidades base
   ============================================================ */

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

html {
    scroll-behavior: smooth;
    /* Conserva el ancho al bloquear el fondo de menús y visores.
       En dispositivos con scrollbar superpuesto no añade espacio. */
    scrollbar-gutter: stable;
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
}

body {
    margin: 0;
    background: var(--kc-bg);
    color: var(--kc-text);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
}

img, picture, svg, video {
    max-width: 100%;
    height: auto;
    display: block;
}

/* Focus ring accesible global */
:focus { outline: none; }
*:focus-visible {
    outline: 2px solid var(--kc-primary);
    outline-offset: 2px;
    border-radius: 2px;
}
button:focus-visible,
a:focus-visible { outline-offset: 3px; }

/* Selección de texto */
::selection {
    background-color: var(--kc-green-700);
    color: var(--kc-white);
}

/* Scrollbar moderna (WebKit) */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: var(--kc-bg-alt); }
::-webkit-scrollbar-thumb {
    background: var(--kc-ink-300);
    border-radius: var(--radius-full);
    border: 2px solid var(--kc-bg-alt);
}
::-webkit-scrollbar-thumb:hover { background: var(--kc-ink-400); }

/* Print */
@media print {
    .kc-no-print,
    header, footer,
    .back-to-top,
    nav, .news-info-bar,
    .wmb-news-sidebar,
    .wmb-news-detail-share,
    .wmb-news-navigation { display: none !important; }

    body { background: white; color: black; }
    a { color: black; text-decoration: none; }
}

/* Reduced motion (accesibilidad) */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}


/* ===== 02-typography.css ===== */
/* ============================================================
   kc/02-typography.css — Jerarquía editorial
   ============================================================
   Una sola fuente: Manrope (humanista moderna), 4 pesos reales
   cargados: 400 / 500 / 700 / 800 (manrope-*.woff2).
   La jerarquía se construye con TAMAÑO + PESO + LINE-HEIGHT.

   ESCALA DE PESOS — dónde va cada uno:
   - 400 regular    → LECTURA: párrafos del artículo, extractos de
                      tarjeta, leads, texto del footer, subtítulos.
   - 500 medium     → UI Y META: navegación, fechas, vistas, captions,
                      eyebrows suaves, labels de formulario.
   - 700 bold       → ÉNFASIS: subtítulos, títulos pequeños de lista y
                      widget (≤15px), botones/CTA, chips y labels en
                      MAYÚSCULAS, <strong> dentro del texto.
   - 800 extrabold  → TITULARES DISPLAY (≥17px): hero, título del
                      artículo, títulos de tarjeta y de sección,
                      títulos de página y números de ranking.

   Regla rápida: si es un TITULAR que invita al clic → 800;
   si es texto que se LEE → 400; si es UI/dato → 500; resto → 700.
   ============================================================ */

/* ============================================================
   BODY DEFAULT
   ============================================================ */
body {
    font-family: var(--ff-sans);
    font-size: var(--fs-base);       /* 15px — UI default */
    line-height: var(--lh-normal);   /* 1.5 */
    color: var(--kc-text);
    font-weight: var(--fw-regular);  /* 400 */
}

/* ============================================================
   HEADINGS — siempre serif editorial + 700 bold + line-height tight
   ============================================================ */
h1, h2, h3, h4, h5, h6,
.kc-heading {
    font-family: var(--ff-serif);   /* Source Serif 4 — titulares editoriales */
    font-weight: var(--fw-bold);     /* 700 */
    color: var(--kc-text);
    margin: 0 0 var(--sp-3);
    line-height: var(--lh-snug);     /* 1.25 */
    letter-spacing: var(--tracking-snug);
}

/* H1: hero / artículos / page headers grandes — responsive */
h1, .kc-h1 {
    font-size: var(--fs-3xl);
    font-weight: var(--fw-extrabold);  /* 800 — display */
    line-height: var(--lh-tight);    /* 1.1 */
    letter-spacing: var(--tracking-tight);
}
@media (min-width: 768px) {
    h1, .kc-h1 { font-size: var(--fs-4xl); }
}

/* H2: títulos de sección destacados */
h2, .kc-h2 {
    font-size: var(--fs-2xl);
    line-height: var(--lh-snug);
}
@media (min-width: 768px) {
    h2, .kc-h2 { font-size: var(--fs-3xl); }
}

/* H3: subsecciones, section titles */
h3, .kc-h3 {
    font-size: var(--fs-2xl);        /* 24px */
}

/* H4: card titles featured, schedule names */
h4, .kc-h4 {
    font-size: var(--fs-xl);         /* 20px */
}

/* H5: card titles regular */
h5, .kc-h5 {
    font-size: var(--fs-lg);         /* 18px */
}

/* H6: card titles small, sidebar items */
h6, .kc-h6 {
    font-size: var(--fs-base);       /* 15px */
}

/* ============================================================
   PÁRRAFOS — para lectura larga
   ============================================================ */
p {
    margin: 0 0 var(--sp-4);
    line-height: var(--lh-relaxed);  /* 1.65 */
    color: var(--kc-text-soft);
    font-size: var(--fs-md);         /* 16px (cómodo para leer) */
}

/* Lead paragraph (intro de artículos) */
.kc-lead {
    font-size: var(--fs-lg);         /* 18px */
    line-height: var(--lh-relaxed);
    color: var(--kc-text);
    font-weight: var(--fw-regular);
}

/* ============================================================
   LINKS
   ============================================================ */
a {
    color: var(--kc-link);
    text-decoration: none;
}
a:hover {
    color: var(--kc-primary-hover);
}

/* ============================================================
   LISTAS, TEXTO INLINE
   ============================================================ */
ul, ol { padding-left: var(--sp-5); margin: 0 0 var(--sp-4); }
li {
    line-height: var(--lh-relaxed);
    font-size: var(--fs-md);
}

strong, b { font-weight: var(--fw-bold); color: var(--kc-text); }
em, i { font-style: italic; }
small { font-size: var(--fs-xs); }   /* 11px */

mark, .kc-highlight {
    background: #fff3a0;  /* amarillo suave para highlights/mark */
    color: var(--kc-ink-900);
    padding: 0 0.25em;
    border-radius: 2px;
}

/* ============================================================
   CITAS (blockquote)
   ============================================================ */
blockquote {
    border-left: 4px solid var(--kc-primary);
    padding: var(--sp-3) var(--sp-5);
    margin: var(--sp-6) 0;
    background: var(--kc-bg-alt);
    border-radius: 0 var(--radius) var(--radius) 0;
    color: var(--kc-text);
    font-style: italic;
    font-size: var(--fs-lg);         /* 18px */
    line-height: var(--lh-relaxed);
}

/* ============================================================
   CODE
   ============================================================ */
code, pre, kbd, samp {
    font-family: var(--ff-mono);
    font-size: 0.9em;
}
code {
    background: var(--kc-bg-soft);
    padding: 0.125em 0.375em;
    border-radius: var(--radius-sm);
    color: var(--kc-ink-800);
}

/* ============================================================
   CLASES UTILITARIAS TIPOGRÁFICAS
   ============================================================ */
.kc-text-serif     { font-family: var(--ff-serif); }
.kc-text-sans      { font-family: var(--ff-sans); }
.kc-text-mono      { font-family: var(--ff-mono); }

.kc-text-xs        { font-size: var(--fs-xs); }
.kc-text-sm        { font-size: var(--fs-sm); }
.kc-text-base      { font-size: var(--fs-base); }
.kc-text-md        { font-size: var(--fs-md); }
.kc-text-lg        { font-size: var(--fs-lg); }
.kc-text-xl        { font-size: var(--fs-xl); }
.kc-text-2xl       { font-size: var(--fs-2xl); }
.kc-text-3xl       { font-size: var(--fs-3xl); }

.kc-fw-regular     { font-weight: var(--fw-regular); }
.kc-fw-medium      { font-weight: var(--fw-medium); }
.kc-fw-semibold    { font-weight: var(--fw-semibold); }
.kc-fw-bold        { font-weight: var(--fw-bold); }
.kc-fw-extrabold   { font-weight: var(--fw-extrabold); }
.kc-fw-black       { font-weight: var(--fw-black); }

.kc-uppercase      { text-transform: uppercase; letter-spacing: var(--tracking-wider); }
.kc-tracking-wide  { letter-spacing: var(--tracking-wide); }

.kc-text-muted     { color: var(--kc-text-muted); }
.kc-text-faint     { color: var(--kc-text-faint); }
.kc-text-soft      { color: var(--kc-text-soft); }
.kc-text-primary   { color: var(--kc-primary); }
.kc-text-live      { color: var(--kc-live); }
.kc-text-inverse   { color: var(--kc-text-inverse); }

/* ============================================================
   EYEBROW / KICKER (categoría sobre titular)
   Siempre micro + bold + UPPERCASE + tracking wider
   ============================================================ */
.kc-eyebrow {
    display: inline-block;
    font-family: var(--ff-sans);
    font-size: var(--fs-xs);         /* 11px */
    font-weight: var(--fw-bold);     /* 700 */
    color: var(--kc-primary);
    text-transform: uppercase;
    letter-spacing: var(--tracking-widest);
    margin-bottom: var(--sp-2);
    line-height: 1;
}
.kc-eyebrow--live   { color: var(--kc-live); }
.kc-eyebrow--accent { color: var(--kc-accent-strong); }


/* ===== 03-layout.css ===== */
/* ============================================================
   kc/03-layout.css — Contenedores y grids
   ============================================================ */

.kc-container {
    width: 100%;
    max-width: var(--container-2xl);
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--sp-4);
    padding-right: var(--sp-4);
}
@media (min-width: 768px) {
    .kc-container { padding-left: var(--sp-6); padding-right: var(--sp-6); }
}

.main-content > .container,
.kc-footer > .container {
    width: 100%;
    max-width: var(--container-2xl);
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--sp-4);
    padding-right: var(--sp-4);
}
@media (min-width: 768px) {
    .main-content > .container,
    .kc-footer > .container {
        padding-left: var(--sp-6);
        padding-right: var(--sp-6);
    }
}

/* Main wrapper (entre header y footer) */
.main-content {
    min-height: 50vh;
    display: block;
    background: var(--kc-bg);
}

.kc-container-narrow {
    width: 100%;
    max-width: var(--container-lg);
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--sp-4);
    padding-right: var(--sp-4);
}

/* Layout principal: contenido + sidebar (estilo RPP) */
.kc-layout {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--sp-8);
}
@media (min-width: 992px) {
    .kc-layout--with-sidebar {
        grid-template-columns: minmax(0, 1fr) 320px;
    }
}
@media (min-width: 1280px) {
    .kc-layout--with-sidebar {
        grid-template-columns: minmax(0, 1fr) 360px;
        gap: var(--sp-10);
    }
}

.kc-main { min-width: 0; }

.kc-aside {
    display: flex;
    flex-direction: column;
    gap: var(--sp-6);
}
@media (min-width: 992px) {
    .kc-aside--sticky {
        position: sticky;
        top: calc(var(--sp-6) + 80px);
        align-self: start;
        max-height: calc(100vh - 100px);
        overflow-y: auto;
        padding-right: var(--sp-2);
    }
}

/* Hero grid: principal + 2 secundarias (RPP-style) */
.kc-hero-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--sp-5);
}
@media (min-width: 768px) {
    .kc-hero-grid {
        grid-template-columns: 2fr 1fr;
        grid-template-rows: 1fr 1fr;
        gap: var(--sp-5);
    }
    .kc-hero-grid > :first-child {
        grid-row: span 2;
    }
}

/* Grid auto-fit para listados */
.kc-grid {
    display: grid;
    gap: var(--sp-5);
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
}
.kc-grid--gap-lg { gap: var(--sp-8); }
.kc-grid--gap-sm { gap: var(--sp-3); }

.kc-grid--2 { grid-template-columns: 1fr; }
@media (min-width: 768px) {
    .kc-grid--2 { grid-template-columns: repeat(2, 1fr); }
}
.kc-grid--3 { grid-template-columns: 1fr; }
@media (min-width: 640px) { .kc-grid--3 { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 992px) { .kc-grid--3 { grid-template-columns: repeat(3, 1fr); } }

.kc-grid--4 { grid-template-columns: 1fr; }
@media (min-width: 640px) { .kc-grid--4 { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 992px) { .kc-grid--4 { grid-template-columns: repeat(4, 1fr); } }

/* Stack (vertical flex con gap) */
.kc-stack {
    display: flex;
    flex-direction: column;
    gap: var(--sp-4);
}
.kc-stack--sm { gap: var(--sp-2); }
.kc-stack--lg { gap: var(--sp-6); }
.kc-stack--xl { gap: var(--sp-8); }

/* Cluster (horizontal flex con wrap) */
.kc-cluster {
    display: flex;
    flex-wrap: wrap;
    gap: var(--sp-3);
    align-items: center;
}

/* Divider editorial */
.kc-divider {
    height: 1px;
    background: var(--kc-border);
    border: 0;
    margin: var(--sp-6) 0;
}
.kc-divider--brand {
    height: 3px;
    background: var(--kc-primary);
    width: 60px;
    margin: var(--sp-4) 0;
    border-radius: var(--radius-full);
}

/* Section paddings */
.kc-section {
    padding: var(--sp-10) 0;
}
.kc-section--sm { padding: var(--sp-8) 0; }
.kc-section--lg { padding: var(--sp-16) 0; }
.kc-section--ink {
    background: var(--kc-bg-ink);
    color: var(--kc-text-inverse);
    border-top: 6px solid var(--kc-editorial-line);
}
.kc-section--ink h1,
.kc-section--ink h2,
.kc-section--ink h3,
.kc-section--ink h4 { color: var(--kc-white); }
.kc-section--ink p { color: var(--kc-ink-300); }

.kc-section--alt { background: var(--kc-bg-alt); }
.kc-section--brand {
    background: var(--kc-bg-brand);
    color: var(--kc-white);
}
.kc-section--brand h2 { color: var(--kc-white); }

@media (max-width: 768px) {
    .kc-section     { padding: var(--sp-8) 0; }
    .kc-section--lg { padding: var(--sp-10) 0; }
}


/* ===== 04-header.css ===== */
/* ============================================================
   kc/04-header.css — Header RKC v3 (estructura invertida)
   ============================================================
   1. Topbar verde profundo: menús del sitio + fecha + redes
   2. Header principal: Menú+Buscar | LOGO | Señal + Play
   3. Titulares compactos
   4. Secciones (categorías noticias) tipo periódico moderno
   5. Buscador y menú móvil
   ============================================================ */

/* ============================================================
   ESTRUCTURA BASE
   ============================================================ */
.kc-site-header {
    position: relative;
    z-index: var(--z-header);
    background: var(--kc-primary-deep);
    box-shadow: none;
    padding-bottom: 3px;   /* espacio de la línea de señal */
}

/* Línea de señal: degradado lima que separa el bloque oscuro del header
   de la barra de categorías. Se funde con el fondo en ambos extremos. */
.kc-site-header::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 3px;
    background: linear-gradient(90deg, transparent 0, var(--kc-accent) 22%, var(--kc-accent) 78%, transparent 100%);
    pointer-events: none;
    z-index: 31;
}

.kc-site-header .kc-container,
.kc-sections .kc-container {
    max-width: var(--container-header);
}

/* ============================================================
   SCROLL DEL HEADER
   El topbar, logo y titulares salen por scroll natural. Solo
   .kc-sections queda sticky, evitando recalcular la altura del header
   durante el scroll.
   ============================================================ */
.kc-topbar,
.kc-site-header .kc-header,
.kc-newsline {
    overflow: hidden;
    max-height: none;
    opacity: 1;
}

/* ============================================================
   1. TOPBAR VERDE PROFUNDO — menús del sitio
   ============================================================ */
.kc-topbar {
    background: linear-gradient(90deg, var(--kc-green-900) 0%, var(--kc-primary-deep) 58%, var(--kc-green-900) 100%);
    color: var(--kc-white);
    height: 38px;
    display: flex;
    align-items: center;
    position: relative;
    z-index: 30;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.kc-topbar__inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    gap: var(--sp-4);
    height: 100%;
}

/* Nav menús del sitio (izquierda) */
.kc-topbar__nav {
    display: flex;
    align-items: center;
    gap: 0;
    flex-wrap: nowrap;
    overflow-x: auto;
    scrollbar-width: none;
    height: 100%;
}
.kc-topbar__nav::-webkit-scrollbar { display: none; }

.kc-topbar__link {
    display: inline-flex;
    align-items: center;
    padding: 0 14px;
    color: rgba(255, 255, 255, 0.85);
    font-size: 14px;                /* era 12.5px */
    font-weight: var(--fw-medium);
    text-decoration: none;
    height: 100%;
    white-space: nowrap;
    line-height: 1;
    letter-spacing: 0.01em;
    position: relative;
}
.kc-topbar__link:hover {
    background: rgba(255, 255, 255, 0.07);
    color: var(--kc-white);
}
.kc-topbar__link.active {
    color: var(--kc-white);
}
.kc-topbar__link.active::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 14px;
    right: 14px;
    height: 2px;
    background: var(--kc-accent);
}

/* Derecha: fecha + redes */
.kc-topbar__right {
    display: flex;
    align-items: center;
    gap: var(--sp-4);
    flex-shrink: 0;
}

.kc-topbar__date {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 13px;               /* era 12 */
    font-weight: var(--fw-regular);
    color: rgba(255, 255, 255, 0.78);
    text-transform: none;   /* la mayúscula inicial la pone PHP; capitalize escribía "1 De Septiembre" */
    line-height: 1;
}
.kc-topbar__date i {
    color: var(--kc-accent);
    font-size: 11px;               /* era 10 */
}

.kc-topbar__social {
    display: inline-flex;
    align-items: center;
    gap: 2px;
}
.kc-topbar__social a {
    width: 26px;
    height: 26px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: rgba(255, 255, 255, 0.75);
    border-radius: 3px;
    font-size: 11px;
    text-decoration: none;
}
.kc-topbar__social a:hover {
    background: rgba(255, 255, 255, 0.08);
    color: var(--kc-white);
}

@media (max-width: 991px) {
    .kc-topbar__date span { display: none; }
}
@media (max-width: 768px) {
    .kc-topbar { height: 38px; }
    .kc-topbar__date { display: none; }
    .kc-topbar__link { padding: 0 10px; font-size: 11.5px; }
}

/* ============================================================
   Sprint B — Navegación duplicada en móvil
   ============================================================
   En móvil el topbar ofrecía los MISMOS 6 destinos que el menú hamburguesa,
   en una tira con scroll horizontal (fácil de no ver) y con enlaces de 13px
   de alto. Dos caminos al mismo sitio, ninguno cómodo.

   En móvil se oculta la franja completa: el menú lo cubre la hamburguesa y las
   cuatro redes ya están en el footer, así que no se pierde ningún destino.
   Se recuperan los 38px de la franja, que compensan de sobra los 11px que
   crece el ticker al darle un objetivo táctil usable (ver .kc-newsline__item).
   ============================================================ */
@media (max-width: 640px) {
    .kc-topbar { display: none; }
}

/* ============================================================
   2. HEADER PRINCIPAL — Botones | LOGO centrado | Señal+Play
   ============================================================ */
.kc-header {
    background:
        radial-gradient(circle at 50% 48%, rgba(24, 116, 68, 0.32) 0, rgba(24, 116, 68, 0.12) 34%, transparent 58%),
        linear-gradient(105deg, var(--kc-green-900) 0%, var(--kc-green-800) 40%, var(--kc-primary-deep) 56%, var(--kc-green-900) 100%);
    padding: 10px 0;
    position: relative;
    overflow: hidden;
    min-height: 122px;
    isolation: isolate;
}

.kc-header__inner {
    display: grid;
    grid-template-columns: minmax(230px, 1fr) minmax(0, 340px) minmax(230px, 1fr);
    align-items: center;
    gap: var(--sp-5);
    min-height: 104px;
    position: relative;
    z-index: 1;
}

/* Permitir que el topbar deje sobresalir al logo */
.kc-topbar { overflow: visible; }
.kc-site-header { overflow: visible; }

.kc-header__left {
    display: flex;
    align-items: center;
    gap: 10px;
    grid-column: 1;
    min-width: 0;
}
.kc-header__right {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: var(--sp-3);
    grid-column: 3;
    min-width: 0;
}

.kc-hbtn {
    display: inline-flex;
    flex-shrink: 0;
    align-items: center;
    gap: 8px;
    padding: 0 20px;
    height: 42px;
    background: rgba(255, 255, 255, 0.11);
    color: var(--kc-white);
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: var(--radius-full);
    font-family: var(--ff-sans);
    font-size: 14px;                  /* era 13 */
    font-weight: var(--fw-medium);
    cursor: pointer;
    text-decoration: none;
    line-height: 1;
    letter-spacing: 0.01em;
}
.kc-hbtn:hover {
    background: rgba(255, 255, 255, 0.18);
    color: var(--kc-white);
    border-color: rgba(255, 255, 255, 0.28);
}
/* Sprint A — Foco accesible en el header.
   ANTES: outline rgba(245,30,26,0.45). El rojo al 45% se mezclaba con el fondo
   y quedaba por debajo del mínimo WCAG 2.2 (3:1) en TODAS las superficies:
     · sobre el topbar verde oscuro ....... 1.47:1
     · sobre fondo blanco ................. 2.06:1
     · sobre el botón play rojo ........... 1.00:1  (invisible: rojo sobre rojo)

   AHORA: anillo doble blanco + verde oscuro. Sobre fondo oscuro destaca el
   blanco; sobre fondo claro destaca el verde. Funciona en cualquier superficie
   sin tener que escribir una regla por componente. */
.kc-hbtn:focus-visible,
.kc-header__play:focus-visible,
.kc-header__brand:focus-visible,
.kc-topbar__link:focus-visible,
.kc-newsline__item:focus-visible,
.kc-sections__link:focus-visible,
.kc-sections__brand:focus-visible,
.kc-sections__search:focus-visible,
.kc-sections__live:focus-visible {
    outline: 2px solid var(--kc-white);
    outline-offset: 2px;
    box-shadow: 0 0 0 5px var(--kc-green-900);
    border-radius: 2px;
}
.kc-hbtn i {
    font-size: 13px;
    color: rgba(255, 255, 255, 0.82);
}
.kc-hbtn:hover i { color: var(--kc-accent); }

@media (max-width: 767px) {
    .kc-hbtn { padding: 0; width: 38px; min-width: 38px; height: 38px; flex: 0 0 38px; justify-content: center; }
    .kc-hbtn:focus-visible { border-radius: var(--radius-full); }
    .kc-hbtn span { display: none; }
    .kc-hbtn i { font-size: 15px; color: var(--kc-white); }
}

/* ============================================================
   LOGO CENTRAL — completo con fondo oscuro
   ============================================================ */
.kc-header__brand {
    display: flex;
    align-items: center;
    justify-content: center;
    justify-self: center;
    text-decoration: none;
    position: relative;
    transform: none;
    z-index: 2;
    line-height: 0;
    width: min(32vw, 340px);
    max-width: 100%;
    height: 104px;
}
.kc-header__brand::before {
    content: '';
    position: absolute;
    inset: 50% auto auto 50%;
    width: 128px;
    height: 128px;
    transform: translate(-50%, -50%);
    border-radius: var(--radius-full);
    background: radial-gradient(circle, rgba(9, 71, 36, 0.30), rgba(9, 71, 36, 0.08) 56%, transparent 74%);
    z-index: -1;
}
.kc-header__brand img {
    width: 100%;
    height: 100%;
    display: block;
    border-radius: 0;
    filter: none;
    object-fit: contain;
}
@media (min-width: 992px) {
    .kc-header__brand { width: min(32vw, 350px); }
}

/* ============================================================
   SEÑAL EN VIVO + BOTÓN PLAY
   ============================================================ */
.kc-header__signal {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;                  /* era 12 */
    color: rgba(255, 255, 255, 0.78);
    line-height: 1;
    font-weight: var(--fw-regular);
    padding: 11px 14px;
    background: rgba(0, 0, 0, 0.16);
    border: 1px solid rgba(255, 255, 255, 0.10);
    border-radius: var(--radius-full);
}
.kc-header__signal-dot {
    width: 8px;
    height: 8px;
    border-radius: var(--radius-full);
    background: var(--kc-red-600);
    flex-shrink: 0;
}
.kc-header__signal-label {
    color: var(--kc-white);
    font-weight: var(--fw-bold);
    text-transform: uppercase;
}
.kc-header__signal-links {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.kc-header__signal-links a {
    color: var(--kc-white);
    font-weight: var(--fw-bold);
    text-decoration: none;
    letter-spacing: 0.02em;
}
.kc-header__signal-links a:hover { color: var(--kc-red-500); }
.kc-header__signal-links .sep {
    color: rgba(255, 255, 255, 0.32);
    font-weight: var(--fw-regular);
}

.kc-header__play {
    width: 46px;
    height: 46px;
    border-radius: var(--radius-full);
    background: var(--kc-red-600);
    color: var(--kc-white);
    border: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    text-decoration: none;
    flex-shrink: 0;
}
.kc-header__play:hover {
    background: var(--kc-red-700);
    color: var(--kc-white);
}
.kc-header__play i {
    font-size: 14px;
    margin-left: 3px;
}

@media (max-width: 991px) {
    .kc-header__signal { display: none; }
}

@media (max-width: 767px) {
    .kc-header { padding: 8px 0; min-height: 92px; }
    .kc-header__inner {
        /* Dos botones de 38px + 10px de separación. Los lados iguales
           mantienen el logo centrado; solo el centro puede encogerse. */
        grid-template-columns: minmax(86px, 1fr) minmax(0, 180px) minmax(86px, 1fr);
        min-height: 76px;
        gap: var(--sp-2);
    }
    .kc-header__brand { width: 100%; height: 76px; }
    .kc-header__brand::before { width: 84px; height: 84px; }
    .kc-header__play { width: 40px; height: 40px; }
}

/* ============================================================
   3. TITULARES — línea compacta de últimas noticias
   ============================================================ */
.kc-newsline {
    background: linear-gradient(90deg, var(--kc-green-900) 0%, var(--kc-primary-deep) 50%, var(--kc-green-900) 100%);
    color: var(--kc-white);
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    position: relative;
    z-index: 30;
}

.kc-newsline__inner {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 30px;
    overflow: hidden;
}

.kc-newsline__label {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 21px;
    padding: 0 9px;
    background: var(--kc-red-600);
    color: var(--kc-white);
    border-radius: 4px;
    font-size: 10px;
    font-weight: var(--fw-bold);
    line-height: 1;
    letter-spacing: var(--tracking-wider);
    text-transform: uppercase;
    flex-shrink: 0;
}

.kc-newsline__label i {
    font-size: 9px;
}

.kc-newsline__viewport {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 24px, #000 calc(100% - 24px), transparent 100%);
    mask-image: linear-gradient(90deg, transparent 0, #000 24px, #000 calc(100% - 24px), transparent 100%);
}

.kc-newsline__track {
    display: inline-flex;
    align-items: center;
    width: max-content;
    white-space: nowrap;
    will-change: transform;
}

/* Animación del ticker — el track tiene 2 grupos idénticos para loop
   seamless. Mover translateX 0 → -50% completa exactamente 1 grupo,
   por lo que al hacer loop el contenido se ve continuo (sin saltos). */
@keyframes scroll-ticker-immediate {
    from { transform: translateX(0); }
    to   { transform: translateX(-50%); }
}

.kc-newsline__group {
    display: inline-flex;
    align-items: center;
    gap: 13px;
    padding-right: 13px;
}

.kc-newsline__item {
    color: rgba(255, 255, 255, 0.9);
    font-size: 13px;                  /* era 12 */
    font-weight: var(--fw-medium);
    line-height: 1;
    text-decoration: none;

    /* Sprint B — Objetivo táctil.
       Los titulares medían 13px de alto: 60 de los 181 elementos interactivos
       de la portada quedaban por debajo del mínimo de 24px (WCAG 2.2 SC 2.5.8),
       y 96 por debajo de los 44px que recomiendan Apple y Google en móvil.
       Se amplía el área activa con padding vertical, sin tocar el tamaño del
       texto ni la altura de la banda: el ticker se ve igual, pero se puede
       tocar sin fallar. */
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding-block: var(--sp-2);
}

@media (max-width: 640px) {
    /* En móvil se sube al objetivo pleno de 44px */
    .kc-newsline__item { min-height: 44px; }
    .kc-newsline { height: auto; }
}

.kc-newsline__item:hover {
    color: var(--kc-accent);
}

.kc-newsline__dot {
    width: 4px;
    height: 4px;
    border-radius: var(--radius-full);
    background: var(--kc-accent);
    flex-shrink: 0;
}

@media (prefers-reduced-motion: reduce) {
    .kc-newsline__viewport {
        overflow-x: auto;
        -webkit-mask-image: none;
        mask-image: none;
        scrollbar-width: none;
    }
    .kc-newsline__viewport::-webkit-scrollbar { display: none; }
    .kc-newsline__track {
        animation: none !important;
    }
}

@media (max-width: 640px) {
    .kc-newsline__inner {
        gap: 8px;
        min-height: 31px;
    }
    .kc-newsline__label {
        height: 20px;
        padding: 0 8px;
        font-size: 9px;
    }
    .kc-newsline__label span {
        display: none;
    }
    .kc-newsline__item {
        font-size: 11.5px;
    }
    .kc-newsline__group {
        gap: 11px;
        padding-right: 11px;
    }
}

/* ============================================================
   4. SECCIONES — categorías de noticias estilo periódico moderno
   ============================================================ */
.kc-sections {
    background: linear-gradient(180deg, var(--kc-white) 0%, #f8faf9 100%);
    border-top: 1px solid rgba(1, 73, 61, 0.08);
    border-bottom: 1px solid rgba(1, 73, 61, 0.16);
    overflow-x: auto;
    scrollbar-width: none;
    position: sticky;
    top: 0;
    z-index: var(--z-header);
}
.kc-sections::-webkit-scrollbar { display: none; }

.kc-sections__inner {
    display: flex;
    align-items: stretch;
    gap: 0;
    flex-wrap: nowrap;
    min-width: max-content;
}

.kc-sections__link {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 14px 22px;
    color: var(--kc-text);
    font-size: 15px;                  /* era 13 — más legible */
    font-weight: var(--fw-medium);
    text-decoration: none;
    text-transform: capitalize;
    border-bottom: 3px solid transparent;
    white-space: nowrap;
    line-height: 1;
    position: relative;
    letter-spacing: 0.01em;
}

.kc-sections__link i {
    font-size: 12px;                  /* era 11 */
    color: var(--kc-accent-strong);
}

.kc-sections__link:hover {
    color: var(--kc-primary);
    background: rgba(1, 73, 61, 0.05);
    border-bottom-color: rgba(1, 73, 61, 0.25);
}

.kc-sections__link.active {
    color: var(--kc-primary);
    border-bottom-color: var(--kc-accent);
    background: var(--kc-lime-50);
    font-weight: var(--fw-bold);
}

.kc-sections__link--all {
    color: var(--kc-accent-strong);
    font-weight: var(--fw-bold);
    border-right: 1px solid var(--kc-ink-200);
    margin-right: 4px;
}
.kc-sections__link--all:hover {
    color: var(--kc-primary);
}

@media (max-width: 640px) {
    .kc-sections__link { padding: 12px 14px; font-size: 12px; }
}

/* ------------------------------------------------------------
   Color propio de cada sección
   El enlace trae data-kc-cat (color) y data-kc-cat-text (versión legible
   sobre blanco); dynamic-styles.js los expone como --kc-cat y --kc-cat-text.
   Mientras el JS no corre, el fallback es el lima de marca.
   ------------------------------------------------------------ */
.kc-sections__link[data-kc-cat]:hover {
    color: var(--kc-text);
    background: transparent;
    border-bottom-color: var(--kc-cat, var(--kc-accent));
}
.kc-sections__link[data-kc-cat].active {
    color: var(--kc-cat-text, var(--kc-primary));
    background: transparent;
    border-bottom-color: var(--kc-cat, var(--kc-accent));
}

/* ------------------------------------------------------------
   Barra fija (clase is-stuck, la pone kc-header.js al observar el
   centinela). En reposo y en móvil el mini-logo y las herramientas no existen
   visualmente; al quedar fija en escritorio aparecen y los enlaces se compactan.
   ------------------------------------------------------------ */
.kc-sections__sentinel {
    height: 1px;
    margin-bottom: -1px;
    visibility: hidden;
    pointer-events: none;
}

.kc-sections.is-stuck {
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.10);
}

.kc-sections__brand,
.kc-sections__tools {
    display: none;
}

@media (min-width: 992px) {
    .kc-sections.is-stuck .kc-sections__link {
        padding: 14px 13px;
        font-size: 14.5px;
    }

    .kc-sections.is-stuck .kc-sections__brand {
        display: flex;
        align-items: center;
        padding-right: 14px;
        margin-right: 6px;
        border-right: 1px solid var(--kc-border);
        line-height: 0;
        flex-shrink: 0;
    }
    .kc-sections__brand img {
        display: block;
        height: 30px;
        width: 90px;
        object-fit: contain;
    }

    /* Herramientas pegadas al borde derecho del área visible: si la fila
       desborda, las categorías se desplazan por debajo de ellas. */
    .kc-sections.is-stuck .kc-sections__tools {
        display: flex;
        align-items: center;
        gap: 8px;
        margin-left: auto;
        padding-left: 12px;
        position: sticky;
        right: 0;
        background: var(--kc-white);
        box-shadow: -14px 0 12px -6px rgba(255, 255, 255, 0.96);
        flex-shrink: 0;
    }
}

/* Entre 992 y 1199px la fila va justa: el mini-logo se sacrifica primero. */
@media (min-width: 992px) and (max-width: 1199px) {
    .kc-sections.is-stuck .kc-sections__brand { display: none; }
}

.kc-sections__search {
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    padding: 0;
    border-radius: var(--radius-full);
    border: 1px solid var(--kc-border);
    background: var(--kc-bg-alt);
    color: var(--kc-text-muted);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    font-size: 13px;
    line-height: 1;
}
.kc-sections__search:hover {
    color: var(--kc-primary);
    background: var(--kc-white);
    border-color: var(--kc-border-strong);
}
.kc-sections__search:focus-visible,
.kc-header__play:focus-visible { border-radius: var(--radius-full); }

.kc-sections__live {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    height: 36px;
    padding: 0 14px 0 12px;
    border-radius: var(--radius-full);
    background: var(--kc-live);
    color: var(--kc-white);
    font-size: 12px;
    font-weight: var(--fw-extrabold);
    letter-spacing: 0.08em;
    line-height: 1;
    text-decoration: none;
    white-space: nowrap;
}
.kc-sections__live:hover {
    background: var(--kc-live-hover);
    color: var(--kc-white);
}
.kc-sections__live i {
    font-size: 10px;
}
.kc-sections__live-dot {
    width: 7px;
    height: 7px;
    border-radius: var(--radius-full);
    background: var(--kc-white);
    box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.28);
    flex-shrink: 0;
}

/* ============================================================
   SEARCH OVERLAY — modal de búsqueda
   ============================================================ */
.kc-search-overlay {
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, 0.92);
    z-index: var(--z-modal);
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: 80px var(--sp-4) var(--sp-4);
    opacity: 0;
    visibility: hidden;
}
.kc-search-overlay.active {
    opacity: 1;
    visibility: visible;
}

.kc-search-overlay__inner {
    width: 100%;
    max-width: 720px;
    position: relative;
}

.kc-search-overlay__close {
    position: absolute;
    top: -56px;
    right: 0;
    width: 44px;
    height: 44px;
    background: rgba(255, 255, 255, 0.12);
    color: var(--kc-white);
    border: 0;
    border-radius: var(--radius-full);
    cursor: pointer;
    font-size: 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.kc-search-overlay__close:hover {
    background: var(--kc-primary-hover);
}

.kc-search-overlay__form {
    position: relative;
    display: flex;
    align-items: center;
    background: var(--kc-white);
    border-radius: var(--radius-full);
    padding: 4px;
}

.kc-search-overlay__icon {
    position: absolute;
    left: 24px;
    color: var(--kc-text-faint);
    font-size: 18px;
    pointer-events: none;
}

.kc-search-overlay__form input {
    flex: 1;
    min-width: 0;
    padding: 18px 18px 18px 60px;
    border: 0;
    background: transparent;
    font-family: var(--ff-sans);
    font-size: 18px;
    font-weight: var(--fw-medium);
    color: var(--kc-text);
    outline: none;
}
.kc-search-overlay__form input::placeholder {
    color: var(--kc-text-faint);
    font-weight: var(--fw-regular);
}

/* Buscar utiliza la variante principal de 09-buttons.css. */

@media (max-width: 640px) {
    .kc-search-overlay { padding: 60px var(--sp-3) var(--sp-3); }
    .kc-search-overlay__form input { font-size: 16px; padding: 14px 14px 14px 48px; }
    .kc-search-overlay__icon { left: 18px; font-size: 14px; }
    .kc-search-overlay__submit { padding-inline: var(--sp-4); }
}


/* ===== 05-navigation.css ===== */
/* ============================================================
   kc/05-navigation.css — Navegación principal + pills
   ============================================================ */

/* ============================================================
   NAV PRINCIPAL — verde corporativo
   ============================================================ */
.kc-nav {
    background: var(--kc-primary);
    color: var(--kc-white);
    box-shadow: none;
}

.kc-nav__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--sp-4);
}

.kc-nav__list {
    display: flex;
    align-items: center;
    gap: 0;
    list-style: none;
    padding: 0;
    margin: 0;
    flex-wrap: wrap;
}

.kc-nav__item {
    position: relative;
}

.kc-nav__link {
    display: inline-flex;
    align-items: center;
    padding: 12px var(--sp-4);
    color: var(--kc-white);
    font-size: var(--fs-sm);            /* 13px */
    font-weight: var(--fw-medium);      /* 500 */
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: var(--tracking-wide);
    position: relative;
    line-height: 1;
}

.kc-nav__link::after {
    content: '';
    position: absolute;
    left: 50%;
    bottom: 4px;
    transform: translateX(-50%);
    width: 0;
    height: 3px;
    background: var(--kc-accent);
    border-radius: 2px;
}

.kc-nav__link:hover,
.kc-nav__link.active {
    background: rgba(255, 255, 255, 0.08);
    color: var(--kc-white);
}

.kc-nav__link:hover::after,
.kc-nav__link.active::after {
    width: calc(100% - 24px);
}

/* Dropdown submenu */
.kc-nav__item--has-dropdown > .kc-nav__link::after {
    content: none;
}
.kc-nav__item--has-dropdown > .kc-nav__link i {
    margin-left: var(--sp-2);
    font-size: 0.75em;
}
.kc-nav__item--has-dropdown:hover > .kc-nav__link i {
    transform: none;
}

.kc-nav__dropdown {
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 220px;
    background: var(--kc-white);
    border-radius: 0 0 var(--radius-md) var(--radius-md);
    box-shadow: none;
    padding: var(--sp-2) 0;
    opacity: 0;
    visibility: hidden;
    transform: none;
    list-style: none;
    margin: 0;
    z-index: var(--z-overlay);
}

.kc-nav__item--has-dropdown:hover > .kc-nav__dropdown,
.kc-nav__item--has-dropdown:focus-within > .kc-nav__dropdown {
    opacity: 1;
    visibility: visible;
    transform: none;
}

.kc-nav__dropdown a {
    display: block;
    padding: var(--sp-2) var(--sp-4);
    color: var(--kc-text-soft);
    font-size: var(--fs-sm);
    font-weight: var(--fw-medium);
    text-decoration: none;
    text-transform: none;
}
.kc-nav__dropdown a:hover {
    background: var(--kc-bg-alt);
    color: var(--kc-primary);
}

/* Acciones a la derecha del nav (escuchar/ver TV) */
.kc-nav__actions {
    display: inline-flex;
    align-items: center;
    gap: var(--sp-2);
    padding-right: var(--sp-4);
}

.kc-nav__btn-listen {
    display: inline-flex;
    align-items: center;
    gap: var(--sp-2);
    padding: 8px var(--sp-4);
    background: var(--kc-accent);
    color: var(--kc-accent-text);
    font-size: var(--fs-xs);           /* 11px */
    font-weight: var(--fw-bold);       /* 700 */
    text-transform: uppercase;
    letter-spacing: var(--tracking-wide);
    border-radius: var(--radius-full);
    text-decoration: none;
    border: 0;
    cursor: pointer;
    line-height: 1;
}
.kc-nav__btn-listen:hover {
    background: var(--kc-accent-hover);
    color: var(--kc-accent-text);
}
.kc-nav__btn-listen i { font-size: 0.85em; }

/* ============================================================
   PILLS — "Hoy / Última hora / Más leídas"
   ============================================================ */
.kc-pills {
    background: var(--kc-white);
    border-bottom: 1px solid var(--kc-border);
    padding: var(--sp-3) 0;
    overflow-x: auto;
    scrollbar-width: none;
}
.kc-pills::-webkit-scrollbar { display: none; }

.kc-pills__inner {
    display: flex;
    align-items: center;
    gap: var(--sp-2);
    flex-wrap: nowrap;
    min-width: max-content;
}

.kc-pill {
    display: inline-flex;
    align-items: center;
    gap: var(--sp-2);
    padding: 6px var(--sp-4);
    background: var(--kc-bg-alt);
    color: var(--kc-text-soft);
    font-size: var(--fs-xs);          /* 11px */
    font-weight: var(--fw-bold);      /* 700 */
    text-transform: uppercase;
    letter-spacing: var(--tracking-wide);
    border-radius: var(--radius-full);
    text-decoration: none;
    border: 1px solid transparent;
    white-space: nowrap;
    line-height: 1;
}
.kc-pill:hover {
    background: var(--kc-green-50);
    color: var(--kc-primary);
    border-color: var(--kc-primary);
}
.kc-pill.active,
.kc-pill--primary {
    background: var(--kc-primary);
    color: var(--kc-white);
    border-color: var(--kc-primary);
}
.kc-pill.active:hover,
.kc-pill--primary:hover {
    background: var(--kc-primary-hover);
    color: var(--kc-white);
}

.kc-pill--live {
    background: var(--kc-live);
    color: var(--kc-white);
    border-color: var(--kc-live);
}
.kc-pill--live::before {
    content: '';
    width: 6px;
    height: 6px;
    background: var(--kc-white);
    border-radius: var(--radius-full);
}
.kc-pill--live:hover {
    background: var(--kc-live-hover);
    color: var(--kc-white);
}

.kc-pill__separator {
    width: 1px;
    height: 20px;
    background: var(--kc-border);
    margin: 0 var(--sp-2);
}


@media (max-width: 991px) {
    .kc-nav__list,
    .kc-nav__actions {
        display: none;
    }
    .kc-nav {
        padding: var(--sp-2) 0;
    }
    .kc-pills { padding: var(--sp-2) 0; }
    .kc-pill { font-size: 10px; padding: 4px var(--sp-3); }
}


/* ============================================================
   Sprint B — Migas de pan (breadcrumb)
   ============================================================
   Respaldan el schema BreadcrumbList que la página ya emitía sin
   contraparte visible. Discretas: son orientación, no navegación
   principal — no deben competir con el antetítulo ni con el titular.
   ============================================================ */
.kc-breadcrumb {
    margin-bottom: var(--sp-3);
}
.kc-breadcrumb__list {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--sp-2);
    margin: 0;
    padding: 0;
    list-style: none;
    font-family: var(--ff-sans);
    font-size: var(--fs-xs);
}
.kc-breadcrumb__item {
    display: flex;
    align-items: center;
    gap: var(--sp-2);
    color: var(--kc-text-muted);
    min-width: 0;
}
/* Separador generado por CSS: no es contenido, no debe leerlo un lector de pantalla */
.kc-breadcrumb__item + .kc-breadcrumb__item::before {
    content: "›";
    color: var(--kc-text-faint);
    font-size: 1.1em;
    line-height: 1;
}
.kc-breadcrumb__item a {
    color: var(--kc-text-muted);
    text-decoration: none;
    /* Sprint B — objetivo táctil: el texto se ve pequeño pero el área activa
       llega a 44px de alto en móvil sin alterar el diseño. */
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: var(--sp-1) 0;
}
.kc-breadcrumb__item a:hover {
    color: var(--kc-primary);
    text-decoration: underline;
    text-underline-offset: 3px;
}
.kc-breadcrumb__item a:focus-visible {
    outline: 2px solid var(--kc-primary);
    outline-offset: 2px;
    border-radius: 2px;
}
.kc-breadcrumb__item--current {
    color: var(--kc-text-faint);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

@media (max-width: 640px) {
    /* En móvil la ruta completa no cabe: se oculta el título actual y se deja
       Inicio › Noticias › Categoría, que es lo accionable. */
    .kc-breadcrumb__item--current { display: none; }
    .kc-breadcrumb__item a { min-height: 44px; }
}


/* ===== 06-cards.css ===== */
/* ============================================================
   kc/06-cards.css — Sistema de cards (.kc-card-*)
   ============================================================ */

/* ============================================================
   CATEGORY CHIP (badge sobre card)
   ============================================================ */
.kc-chip {
    display: inline-flex;
    align-items: center;
    gap: var(--sp-1);
    padding: 4px 8px;
    background: var(--kc-primary);
    color: var(--kc-white);
    font-size: 10px;                  /* micro: chips siempre 10px */
    font-weight: var(--fw-bold);      /* 700 */
    text-transform: uppercase;
    letter-spacing: var(--tracking-wider);
    border-radius: 2px;
    text-decoration: none;
    line-height: 1.3;
}
.kc-chip:hover { color: var(--kc-white); }
.kc-chip--live    { background: var(--kc-live); }
.kc-chip--accent  { background: var(--kc-accent); color: var(--kc-accent-text); }
.kc-chip--ink     { background: var(--kc-ink-900); color: var(--kc-white); }
.kc-chip--outline {
    background: transparent;
    color: var(--kc-primary);
    border: 1.5px solid var(--kc-primary);
    padding: 2px var(--sp-2);
}

/* ============================================================
   CARD BASE (estilo periodístico RPP)
   ============================================================ */
.kc-card {
    display: flex;
    flex-direction: column;
    background: var(--kc-white);
    border-radius: 0;
    overflow: hidden;
    height: 100%;
    text-decoration: none;
    color: inherit;
}
.kc-card:hover {
    color: inherit;
}
.kc-card:hover .kc-card__title {
    color: var(--kc-primary);
}

.kc-card__media {
    position: relative;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: var(--kc-bg-soft);
    border-radius: var(--radius-sm);
}
.kc-card__media img,
.kc-card__media picture {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.kc-card__media-chip {
    position: absolute;
    top: var(--sp-3);
    left: var(--sp-3);
    z-index: 2;
}
.kc-card__media-icon {
    position: absolute;
    bottom: var(--sp-3);
    right: var(--sp-3);
    width: 36px;
    height: 36px;
    background: rgba(15, 23, 42, 0.85);
    color: var(--kc-white);
    border-radius: var(--radius-full);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: var(--fs-md);
    backdrop-filter: blur(4px);
}

.kc-card__body {
    padding: var(--sp-3) 0 0;
    display: flex;
    flex-direction: column;
    gap: var(--sp-2);
    flex-grow: 1;
}

.kc-card__eyebrow {
    font-family: var(--ff-sans);
    font-size: var(--fs-sm);
    font-weight: var(--fw-medium);
    color: var(--kc-text);
    text-transform: none;
    letter-spacing: 0;
    padding-bottom: 4px;
    border-bottom: 2px solid var(--kc-editorial-line);
    line-height: 1;
}

.kc-card__title {
    font-family: var(--ff-serif);      /* Source Serif 4 — titular editorial */
    font-size: var(--fs-lg);           /* 18px */
    font-weight: var(--fw-extrabold);  /* 800 — titulares de tarjeta */
    line-height: var(--lh-snug);       /* 1.25 */
    color: var(--kc-text);
    margin: 0;
    letter-spacing: var(--tracking-snug);
    display: -webkit-box;
    -webkit-line-clamp: 3;
    line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.kc-card__excerpt {
    font-size: var(--fs-base);         /* 16px */
    font-weight: var(--fw-regular);    /* 400 — extracto: texto de lectura */
    color: var(--kc-text-soft);        /* más oscuro (era text-muted) */
    line-height: var(--lh-relaxed);
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.kc-card__meta {
    margin-top: auto;
    display: flex;
    align-items: center;
    gap: var(--sp-3);
    font-size: var(--fs-xs);           /* 11px */
    font-weight: var(--fw-medium);     /* 500 */
    color: var(--kc-text-faint);
    padding-top: var(--sp-2);
    line-height: 1.4;
}
.kc-card__meta-item {
    display: inline-flex;
    align-items: center;
    gap: var(--sp-1);
}
.kc-card__meta-item i { color: var(--kc-primary); }

/* ============================================================
   VARIANTES DE CARD
   ============================================================ */

/* Hero card (más grande, principal) */
.kc-card--hero .kc-card__media { aspect-ratio: 16 / 10; }
.kc-card--hero .kc-card__body { padding: var(--sp-5) var(--sp-2); }
.kc-card--hero .kc-card__title {
    font-size: var(--fs-xl);           /* 20px */
    -webkit-line-clamp: 4;
    line-clamp: 4;
}
@media (min-width: 992px) {
    .kc-card--hero .kc-card__title { font-size: var(--fs-2xl); /* 24px */ }
}

/* Card secundaria (horizontal compacta) */
.kc-card--horizontal {
    flex-direction: row;
    gap: var(--sp-4);
    align-items: stretch;
}
.kc-card--horizontal .kc-card__media {
    width: 140px;
    aspect-ratio: 1 / 1;
    flex-shrink: 0;
    border-radius: var(--radius-sm);
}
.kc-card--horizontal .kc-card__body {
    padding: 0;
    justify-content: space-between;
}
.kc-card--horizontal .kc-card__title {
    font-size: var(--fs-base);         /* 15px */
    -webkit-line-clamp: 3;
    line-clamp: 3;
}

@media (max-width: 640px) {
    .kc-card--horizontal .kc-card__media {
        width: 110px;
    }
    .kc-card--horizontal .kc-card__title {
        font-size: var(--fs-sm);       /* 13px */
    }
}

/* Card sobre fondo oscuro (sección negra) */
.kc-card--on-ink {
    background: transparent;
    color: var(--kc-white);
}
.kc-card--on-ink .kc-card__title { color: var(--kc-white); }
.kc-card--on-ink .kc-card__excerpt { color: var(--kc-ink-300); }
.kc-card--on-ink .kc-card__meta { color: var(--kc-ink-400); }
.kc-card--on-ink .kc-card__eyebrow { color: var(--kc-accent); }
.kc-card--on-ink:hover .kc-card__title { color: var(--kc-accent); }
.kc-card--on-ink .kc-card__media-icon { background: var(--kc-accent); color: var(--kc-accent-text); }

/* Card minimal (sin imagen, solo texto + categoría) */
.kc-card--minimal {
    padding: var(--sp-4);
    border-left: 3px solid var(--kc-primary);
    background: var(--kc-bg-alt);
    border-radius: 0;
}
.kc-card--minimal:hover { background: var(--kc-bg-soft); }

/* Card podcast / TV */
.kc-card--podcast .kc-card__media {
    aspect-ratio: 1 / 1;
    border-radius: var(--radius-lg);
}
.kc-card--podcast .kc-card__title { font-size: var(--fs-base); /* 15px */ -webkit-line-clamp: 2; line-clamp: 2; }
.kc-card--podcast .kc-card__media-icon {
    width: 48px;
    height: 48px;
    background: var(--kc-accent);
    color: var(--kc-accent-text);
    font-size: var(--fs-lg);
}

/* ============================================================
   CARD FLAT (ref. editorial): imagen limpia sin chip, kicker de
   categoría como TEXTO en color (solo listado general) y fecha
   gris en MAYÚSCULAS tipo "08 DE JULIO, 2026".
   ============================================================ */
.kc-card__kicker {
    font-size: var(--fs-xs);              /* 11px */
    font-weight: var(--fw-bold);
    text-transform: uppercase;
    letter-spacing: var(--tracking-wider);
    color: var(--kc-primary);             /* fallback; la vista inyecta el color */
    line-height: 1;
}
.kc-card__date {
    font-size: 12px;
    font-weight: var(--fw-medium);
    color: var(--kc-text-faint);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    line-height: 1;
    margin-top: auto;                     /* la fecha siempre al pie de la tarjeta */
    padding-top: var(--sp-2);
}


/* ===== 07-sections.css ===== */
/* ============================================================
   kc/07-sections.css — Bandas y headers de sección
   ============================================================ */

/* ============================================================
   SECTION TITLE — encabezado editorial estilo RPP
   ============================================================ */
.kc-section-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--sp-4);
    margin-bottom: var(--sp-6);
    padding-top: var(--sp-4);
    padding-bottom: 0;
    border-top: 6px solid var(--kc-editorial-line);
    border-bottom: 0;
    position: relative;
}
.kc-section-title::before {
    content: none;
}

.kc-section-title__heading {
    font-family: var(--ff-serif);
    font-size: var(--fs-2xl);
    font-weight: var(--fw-extrabold); /* 800 — títulos de sección */
    color: var(--kc-text);
    margin: 0;
    text-transform: none;
    letter-spacing: 0;
    line-height: var(--lh-tight);
}
@media (min-width: 768px) {
    .kc-section-title__heading { font-size: var(--fs-3xl); }
}

.kc-section-title__heading i {
    color: var(--kc-primary);
    margin-right: var(--sp-2);
}

.kc-section-title__link {
    font-size: var(--fs-xs);            /* 11px */
    color: var(--kc-text-muted);
    font-weight: var(--fw-bold);        /* 700 */
    text-transform: uppercase;
    letter-spacing: var(--tracking-wider);
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: var(--sp-2);
    white-space: nowrap;
    line-height: 1;
}
.kc-section-title__link:hover {
    color: var(--kc-primary);
}
.kc-section-title__link i { font-size: 10px; }

/* Variante sobre fondo oscuro */
.kc-section--ink .kc-section-title {
    border-top-color: var(--kc-editorial-line);
}
.kc-section--ink .kc-section-title__heading {
    color: var(--kc-white);
}
.kc-section--ink .kc-section-title__heading i {
    color: var(--kc-white);
}
.kc-section--ink .kc-section-title__link {
    color: var(--kc-ink-300);
}
.kc-section--ink .kc-section-title__link:hover {
    color: var(--kc-accent);
}

/* ============================================================
   BAND — banda verde de transición entre secciones
   ============================================================ */
.kc-band {
    background: var(--kc-primary);
    color: var(--kc-white);
    padding: var(--sp-5) 0;
    position: relative;
    overflow: hidden;
}
.kc-band--deep   { background: var(--kc-primary-deep); }
.kc-band--ink    { background: var(--kc-ink-900); }

.kc-band__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--sp-5);
    flex-wrap: wrap;
}

.kc-band__title {
    font-family: var(--ff-serif);
    font-size: var(--fs-xl);            /* 20px */
    font-weight: var(--fw-extrabold);   /* 800 — titular de franja */
    color: var(--kc-white);
    margin: 0;
    text-transform: uppercase;
    letter-spacing: var(--tracking-tight);
    display: inline-flex;
    align-items: center;
    gap: var(--sp-3);
    line-height: 1.1;
}
@media (min-width: 768px) {
    .kc-band__title { font-size: var(--fs-2xl); /* 24px */ }
}
.kc-band__title i {
    color: var(--kc-accent);
}
.kc-band__subtitle {
    font-size: var(--fs-sm);            /* 13px */
    color: rgba(255, 255, 255, 0.85);
    margin: 0;
    margin-top: var(--sp-1);
    line-height: 1.4;
}

.kc-band__cta {
    display: inline-flex;
    align-items: center;
    gap: var(--sp-2);
    padding: 8px var(--sp-5);
    background: var(--kc-white);
    color: var(--kc-primary);
    font-size: var(--fs-xs);            /* 11px */
    font-weight: var(--fw-bold);        /* 700 */
    text-transform: uppercase;
    letter-spacing: var(--tracking-wide);
    border-radius: var(--radius-full);
    text-decoration: none;
    line-height: 1;
}
.kc-band__cta:hover {
    background: var(--kc-accent);
    color: var(--kc-accent-text);
}

/* Sprint D — Aquí vivía una definición de .kc-breaking que ninguna plantilla
   llegó a usar nunca (buscaba .kc-breaking__content, una clase que no existe en
   el HTML). Se elimina para no dejar dos bloques compitiendo por los mismos
   selectores: la barra de última hora que sí funciona está al final de este
   archivo, y la emite views/partials/header.php desde los ajustes del panel. */

/* ============================================================
   FEATURED SPLIT — dos columnas grandes (foto + texto)
   ============================================================ */
.kc-featured-split {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--sp-6);
    align-items: center;
    background: var(--kc-bg);
    border-radius: var(--radius-sm);
    overflow: hidden;
    border: 1px solid var(--kc-border);
}
@media (min-width: 768px) {
    .kc-featured-split { grid-template-columns: 5fr 4fr; gap: 0; }
}
.kc-featured-split__media {
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: var(--kc-bg-soft);
}
.kc-featured-split__media img {
    width: 100%; height: 100%;
    object-fit: cover;
}
.kc-featured-split__body {
    padding: var(--sp-6);
    display: flex;
    flex-direction: column;
    gap: var(--sp-4);
}
@media (min-width: 992px) {
    .kc-featured-split__body { padding: var(--sp-10); }
}
.kc-featured-split__title {
    font-family: var(--ff-serif);
    font-size: var(--fs-xl);
    font-weight: var(--fw-extrabold);   /* 800 — titular destacado */
    line-height: var(--lh-snug);
    color: var(--kc-text);
    margin: 0;
    letter-spacing: var(--tracking-tight);
}
@media (min-width: 768px) {
    .kc-featured-split__title { font-size: var(--fs-2xl); }
}

/* ============================================================
   ARTICLE DETAIL — estilos compartidos para noticias internas
   ============================================================ */
.kc-article {
    padding-top: var(--sp-6);   /* mismo espacio superior que el resto de páginas (24px) */
}

/* a.kc-article-back: especificidad (0,0,1,1) para GANARLE a
   .kc-page-header__breadcrumb (0,0,1,0) que se carga después en 16-empty */
a.kc-article-back {
    color: var(--kc-text-muted);
    margin-bottom: var(--sp-5);
    display: flex;                 /* bloque propio → la categoría baja a su línea */
    width: fit-content;            /* pero solo tan ancho como su contenido */
    align-items: center;
    gap: var(--sp-2);
    font-size: var(--fs-sm);
    font-weight: var(--fw-medium);
    text-decoration: none;
    transition: color 0.15s ease;
}
a.kc-article-back:hover { color: var(--kc-primary); }
a.kc-article-back i { font-size: 12px; }

.kc-article-title {
    font-family: var(--ff-serif);
    font-size: var(--fs-3xl);
    font-weight: var(--fw-extrabold);   /* 800 — titular principal */
    line-height: var(--lh-tight);
    letter-spacing: 0;
    margin: 0 0 var(--sp-4);
    color: var(--kc-text);
}
@media (min-width: 768px) {
    .kc-article-title { font-size: var(--fs-4xl); }
}

.kc-article-meta {
    display: flex;
    flex-wrap: wrap;
    gap: var(--sp-4);
    padding: var(--sp-4) 0;
    border-top: 1px solid var(--kc-border);
    border-bottom: 1px solid var(--kc-border);
    font-size: var(--fs-sm);
    font-weight: var(--fw-medium);
    color: var(--kc-text-muted);
    margin-bottom: var(--sp-6);
    line-height: 1.4;
}
.kc-article-meta span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.kc-article-meta i { color: var(--kc-primary); }
.kc-article-meta strong {
    color: var(--kc-text);
    font-weight: var(--fw-medium);
}
/* Chip de categoría dentro de la meta */
.kc-article-cat {
    display: inline-flex;
    align-items: center;
    background: var(--kc-primary);
    color: var(--kc-white);
    font-family: var(--ff-sans);
    font-size: 11px;
    font-weight: var(--fw-bold);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    padding: 4px 11px;
    border-radius: 3px;
    text-decoration: none;
    line-height: 1;
    transition: background 0.15s ease;
}
.kc-article-cat:hover { background: var(--kc-primary-deep); color: var(--kc-white); }

/* Antetítulo (kicker): categoría en su propio color, sobre el titular.
   El color y el texto legible se inyectan por variables inline desde la vista. */
.kc-article-kicker {
    display: inline-flex;
    align-items: center;
    background: var(--kc-cat, var(--kc-primary));
    color: var(--kc-cat-text, var(--kc-white));
    font-family: var(--ff-sans);
    font-size: 12px;
    font-weight: var(--fw-bold);
    text-transform: uppercase;
    letter-spacing: 0.07em;
    padding: 5px 13px;
    border-radius: 4px;
    text-decoration: none;
    line-height: 1;
    margin-bottom: var(--sp-3);
    transition: filter 0.15s ease;
}
.kc-article-kicker:hover { filter: brightness(0.90); color: var(--kc-cat-text, var(--kc-white)); }

.kc-article-image {
    width: 100%;
    height: auto;
    border-radius: var(--radius-sm);
    margin-bottom: var(--sp-6);
}

.kc-article-content {
    font-family: var(--ff-sans);
    font-size: 1.125rem;
    line-height: 1.75;
    color: var(--kc-ink-900);
    font-weight: var(--fw-regular);   /* 400 — lectura larga: regular; las negritas resaltan más */

    /* La columna del artículo ya limita la lectura: usar su ancho completo
       mantiene el cuerpo alineado con el titular y la foto, también en móvil. */
    width: 100%;
    max-width: none;
    overflow-wrap: anywhere;
}

/* Sprint B — Colisión de cascada corregida.
   02-typography.css define `p { font-size: var(--fs-md); line-height: var(--lh-relaxed) }`.
   Aunque su especificidad es menor (0,0,1) que la de .kc-article-content (0,1,0),
   ganaba igualmente: la regla de clase solo alcanzaba a los <p> por HERENCIA, y
   la herencia siempre pierde frente a una regla que apunte al elemento directo.
   Resultado: el cuerpo se veía a 17px/1.65 en lugar de 18px/1.75.
   Estas reglas apuntan al <p> explícitamente, así que ya sí aplican. */
.kc-article-content p {
    margin: 0 0 var(--sp-5);
    font-size: inherit;      /* hereda los 1.125rem del contenedor */
    line-height: inherit;    /* hereda el 1.75 del contenedor */
    color: inherit;          /* ink-900, no el text-soft genérico de los <p> */
}
.kc-article-content h2,
.kc-article-content h3 {
    margin-top: var(--sp-8);
    margin-bottom: var(--sp-3);
    color: var(--kc-text);
    line-height: var(--lh-snug);
    font-family: var(--ff-serif);
    font-weight: var(--fw-bold);
    letter-spacing: 0;
}
.kc-article-content h2 { font-size: var(--fs-2xl); }
.kc-article-content h3 { font-size: var(--fs-xl); }
.kc-article-content img {
    border-radius: var(--radius-sm);
    margin: var(--sp-6) auto;
    max-width: 100%;
    height: auto;
    display: block;
}
.kc-article-content figure {
    margin: var(--sp-6) 0;
    text-align: center;
}
.kc-article-content figcaption {
    font-size: var(--fs-xs);
    font-weight: var(--fw-medium);
    color: var(--kc-text-muted);
    margin-top: var(--sp-2);
    font-style: italic;
    font-family: var(--ff-sans);
    line-height: 1.4;
}
.kc-article-content blockquote {
    border-left: 4px solid var(--kc-editorial-line);
    padding: var(--sp-3) var(--sp-5);
    margin: var(--sp-6) 0;
    background: var(--kc-bg-alt);
    border-radius: 0;
    color: var(--kc-text);
    font-style: italic;
    font-size: var(--fs-lg);
    line-height: 1.6;
}
.kc-article-content blockquote p:last-child { margin-bottom: 0; }
.kc-article-content a {
    color: var(--kc-primary);
    text-decoration: underline;
    text-decoration-thickness: 1.5px;
    text-underline-offset: 3px;
}
.kc-article-content ul,
.kc-article-content ol {
    margin: 0 0 var(--sp-5);
    padding-left: var(--sp-6);
}
.kc-article-content li { margin-bottom: var(--sp-2); }
.kc-article-content iframe {
    max-width: 100%;
    border-radius: var(--radius-sm);
    margin: var(--sp-6) 0;
}

.kc-share-panel {
    background: var(--kc-bg-alt);
    border-top: 4px solid var(--kc-editorial-line);
    padding: var(--sp-5);
    margin-top: var(--sp-8);
}
.kc-share-panel__title {
    font-family: var(--ff-sans);
    font-size: var(--fs-base);
    font-weight: var(--fw-bold);
    color: var(--kc-text);
    margin: 0 0 var(--sp-4);
    line-height: 1.3;
}
.kc-share-panel__title i { color: var(--kc-primary); }
.kc-share-panel__buttons {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--sp-3);
}
.kc-share-panel__buttons .kc-btn-share {
    width: 100%;
    min-width: 0;
    height: 48px;
    padding: var(--sp-2);
    justify-content: center;
    box-shadow: none;
}
.kc-share-panel__buttons .kc-btn-share:focus-visible {
    outline: 2px solid var(--kc-primary);
    outline-offset: 3px;
}
@media (max-width: 760px) {
    .kc-share-panel__buttons { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.kc-article-nav {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: var(--sp-3);
    margin-top: var(--sp-8);
}
.kc-article-nav__next { margin-left: auto; }

/* ============================================================
   Escuchar esta nota — reproductor de texto a voz (TTS)
   Barra pill verde de marca · botones circulares blancos
   ============================================================ */
.kc-tts {
    display: flex;
    align-items: center;
    gap: var(--sp-3);
    background: var(--kc-primary);
    border-radius: 999px;
    padding: var(--sp-2) var(--sp-3);
    margin: var(--sp-5) 0 var(--sp-6);
    box-shadow: 0 6px 18px rgba(1, 73, 61, 0.22);
}
.kc-tts__btn {
    width: 46px;
    height: 46px;
    border-radius: 50%;
    background: #fff;
    color: var(--kc-primary);
    border: none;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    cursor: pointer;
    flex-shrink: 0;
    padding: 0;
}
.kc-tts__btn:hover { background: #e6f2ee; }
.kc-tts__btn:focus-visible { outline: 3px solid rgba(255, 255, 255, 0.55); outline-offset: 2px; }
.kc-tts__btn i { pointer-events: none; }
.kc-tts__label {
    margin-left: auto;
    display: inline-flex;
    align-items: center;
    gap: var(--sp-3);
    color: #fff;
    font-weight: var(--fw-bold);
    font-size: 0.9rem;
    padding-right: var(--sp-2);
    white-space: nowrap;
}
.kc-tts__icon { font-size: 1.3rem; }

@media (max-width: 575.98px) {
    .kc-tts { padding: var(--sp-2); gap: var(--sp-2); }
    .kc-tts__btn { width: 42px; height: 42px; }
    .kc-tts__label { font-size: 0.8rem; gap: var(--sp-2); }
    .kc-tts__icon { font-size: 1.1rem; }
}

/* ============================================================
   CATHEAD — encabezado de sección de categoría (ref. editorial):
   nombre en MAYÚSCULAS + barrita del color de la categoría
   montada sobre una línea gris que cruza todo el ancho.
   ============================================================ */
.kc-cathead {
    padding: var(--sp-6) 0 0;
    margin-bottom: var(--sp-5);
}
.kc-cathead__title {
    font-family: var(--ff-sans);
    font-size: var(--fs-xl);              /* 20px */
    font-weight: var(--fw-extrabold);     /* 800 */
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: var(--kc-text);
    line-height: 1.1;
    margin: 0 0 var(--sp-3);
}
.kc-cathead__line {
    position: relative;
    height: 1px;
    background: var(--kc-border);
}
.kc-cathead__line span {
    position: absolute;
    left: 0;
    top: -2px;                            /* centrada sobre la línea */
    width: 56px;
    height: 5px;
    background: var(--kc-accent);
}

/* ============================================================
   Sprint D — Barra de última hora
   ============================================================
   Deliberadamente NO es sticky ni parpadea: una franja roja permanente deja de
   significar «urgente» a los dos días. Se enciende desde el panel solo para
   coberturas en vivo y se apaga cuando pasan.

   Contraste verificado: blanco sobre --kc-red-700 (#c41510) = 6.07:1, por
   encima del 4.5:1 que exige WCAG para texto normal.
   ============================================================ */
.kc-breaking {
    display: block;
    background: var(--kc-red-700);
    color: var(--kc-white);
    text-decoration: none;
    border-bottom: 1px solid rgba(0, 0, 0, .2);
}
a.kc-breaking:hover { background: var(--kc-red-800); }
a.kc-breaking:focus-visible {
    outline: 2px solid var(--kc-white);
    outline-offset: -4px;
}

.kc-breaking__inner {
    display: flex;
    align-items: center;
    gap: var(--sp-3);
    padding-block: var(--sp-3);
    min-height: 44px;          /* objetivo táctil pleno */
    color: var(--kc-white);
}

.kc-breaking__label {
    flex: none;
    display: inline-flex;
    align-items: center;
    background: var(--kc-white);
    color: var(--kc-red-800);
    font-family: var(--ff-sans);
    font-size: var(--fs-xs);
    font-weight: var(--fw-extrabold);
    letter-spacing: var(--tracking-wider);
    text-transform: uppercase;
    padding: 3px var(--sp-3);
    border-radius: var(--radius-sm);
    white-space: nowrap;
}

.kc-breaking__text {
    flex: 1;
    min-width: 0;
    font-family: var(--ff-sans);
    font-size: var(--fs-base);
    font-weight: var(--fw-bold);
    line-height: 1.35;
}

.kc-breaking__more {
    flex: none;
    font-size: var(--fs-sm);
    font-weight: var(--fw-bold);
    opacity: .9;
    white-space: nowrap;
}

@media (max-width: 640px) {
    .kc-breaking__inner  { align-items: flex-start; gap: var(--sp-2); flex-wrap: wrap; }
    .kc-breaking__text   { font-size: var(--fs-sm); flex-basis: 100%; }
    .kc-breaking__more   { display: none; }
}

/* Sprint D — la firma del artículo lleva a la página del periodista */
.kc-article-meta__autor {
    color: var(--kc-primary);
    text-decoration: none;
    font-weight: var(--fw-bold);
    border-bottom: 1px solid transparent;
}
.kc-article-meta__autor:hover {
    border-bottom-color: var(--kc-primary);
}
.kc-article-meta__autor:focus-visible {
    outline: 2px solid var(--kc-primary);
    outline-offset: 2px;
    border-radius: 2px;
}

/* ============================================================
   Sprint D — Aviso de vista previa
   ============================================================
   Franja ámbar, no roja: no es un error, es un estado. Fija arriba porque el
   editor puede hacer scroll y no debe olvidar en ningún momento que lo que ve
   todavía no está publicado.
   ============================================================ */
.kc-previa {
    position: sticky;
    top: 0;
    z-index: var(--z-header);
    background: #a86200;
    color: var(--kc-white);
    border-bottom: 2px solid #7a4a00;
}
.kc-previa__inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--sp-3);
    padding-block: var(--sp-3);
    font-family: var(--ff-sans);
    font-size: var(--fs-sm);
    line-height: 1.4;
}
.kc-previa strong {
    background: var(--kc-white);
    color: #7a4a00;
    padding: 3px var(--sp-3);
    border-radius: var(--radius-sm);
    font-size: var(--fs-xs);
    font-weight: var(--fw-extrabold);
    letter-spacing: var(--tracking-wider);
    text-transform: uppercase;
}
.kc-previa__estado {
    margin-left: auto;
    font-weight: var(--fw-bold);
    opacity: .95;
}
@media (max-width: 640px) {
    .kc-previa__estado { margin-left: 0; flex-basis: 100%; }
}


/* ===== 08-widgets.css ===== */
/* ============================================================
   kc/08-widgets.css — Sidebar widgets (TV, Radio, Clima)
   ============================================================ */

.kc-widget {
    background: var(--kc-white);
    border: 1px solid var(--kc-border);
    border-radius: var(--radius-md);
    overflow: hidden;
}

.kc-widget__head {
    background: var(--kc-primary);
    color: var(--kc-white);
    padding: 10px var(--sp-4);
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-family: var(--ff-sans);
    font-size: var(--fs-xs);             /* 11px */
    font-weight: var(--fw-bold);         /* 700 */
    text-transform: uppercase;
    letter-spacing: var(--tracking-wider);
    line-height: 1;
}
.kc-widget__head i {
    color: var(--kc-accent);
    font-size: var(--fs-sm);             /* 13px (matchea con label) */
}

.kc-widget__title {
    display: inline-flex;
    align-items: center;
    gap: var(--sp-2);
}

.kc-widget__live-dot {
    width: 8px;
    height: 8px;
    background: var(--kc-live);
    border-radius: var(--radius-full);
}

.kc-widget__body { padding: var(--sp-4); }

/* ============================================================
   WIDGET TV EN VIVO
   ============================================================ */
.kc-widget--tv .kc-widget__head {
    background: var(--kc-ink-900);
}
/* Badge "En vivo" del header del widget TV (a la derecha) */
.kc-tv-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: var(--kc-red-600);
    color: var(--kc-white);
    border-radius: var(--radius-full);
    padding: 3px 9px;
    font-size: 10px;
    font-weight: var(--fw-bold);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    line-height: 1;
}
.kc-tv-badge__dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--kc-white);
    animation: kc-tv-badge-pulse 1.6s ease-in-out infinite;
}
@keyframes kc-tv-badge-pulse {
    0%, 100% { opacity: 1; }
    50%      { opacity: 0.35; }
}
.kc-widget--tv .kc-widget__body {
    padding: 0;
    background: var(--kc-black);
}
.kc-widget--tv iframe,
.kc-widget--tv video {
    width: 100%;
    aspect-ratio: 16 / 9;
    border: 0;
    display: block;
}
.kc-live-loader {
    position: relative;
    aspect-ratio: 16 / 9;
    background: #0a0a0c;
}
/* Antes de estar listo, el <video>/iframe queda oculto y se ve el spinner */
.kc-live-loader iframe,
.kc-live-loader video {
    display: none;
}
.kc-live-loader.is-ready iframe,
.kc-live-loader.is-ready video {
    display: block;
}

/* Placeholder de carga: fondo oscuro + spinner verde centrado */
.kc-live-loader__loading {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--kc-primary-deep) 0%, var(--kc-ink-900) 60%, #000 100%);
}
.kc-live-loader.is-ready .kc-live-loader__loading {
    display: none;
}
.kc-live-loader__spin {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    border: 3px solid rgba(255, 255, 255, 0.25);
    border-top-color: var(--kc-green-300);
    animation: kc-live-spin 0.8s linear infinite;
}
@keyframes kc-live-spin {
    to { transform: rotate(360deg); }
}
.kc-widget--tv .kc-widget__footer {
    padding: var(--sp-3) var(--sp-4);
    background: var(--kc-ink-900);
    color: var(--kc-ink-300);
    font-size: var(--fs-xs);
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.kc-widget__footer-link {
    color: var(--kc-white);
    font-weight: var(--fw-bold);
}
.kc-widget__footer-link:hover { color: var(--kc-primary); }

/* ============================================================
   WIDGET RADIO — Ahora Suena
   ============================================================ */
.kc-widget--radio {
    background: linear-gradient(135deg, var(--kc-primary) 0%, var(--kc-primary-deep) 100%);
    color: var(--kc-white);
    border: 0;
}
.kc-widget--radio .kc-widget__head {
    background: transparent;
}
.kc-widget--radio .kc-widget__body {
    padding: var(--sp-5);
    text-align: center;
}
.kc-widget--radio .kc-widget__now {
    font-family: var(--ff-serif);        /* Source Serif 4 */
    font-size: var(--fs-lg);             /* 18px */
    font-weight: var(--fw-bold);         /* 700 */
    margin: var(--sp-2) 0 var(--sp-1);
    color: var(--kc-white);
    line-height: var(--lh-snug);
}
.kc-widget--radio .kc-widget__artist {
    font-size: var(--fs-sm);             /* 13px */
    font-weight: var(--fw-medium);       /* 500 */
    color: rgba(255, 255, 255, 0.85);
    margin-bottom: var(--sp-4);
    line-height: 1.4;
}
.kc-widget--radio .kc-widget__art {
    width: 120px;
    height: 120px;
    border-radius: var(--radius-full);
    margin: 0 auto var(--sp-4);
    background: var(--kc-ink-900);
    object-fit: cover;
    border: 4px solid rgba(255,255,255,0.2);
}

.kc-widget--radio .kc-widget__controls {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--sp-3);
}

/* ============================================================
   WIDGET CLIMA
   ============================================================ */
.kc-widget--weather .kc-widget__head {
    background: linear-gradient(90deg, #0284c7 0%, #38bdf8 100%);
}
.kc-widget--weather .kc-widget__body {
    text-align: center;
}
.kc-weather__temp {
    font-family: var(--ff-sans);
    font-size: var(--fs-3xl);             /* 30px */
    font-weight: var(--fw-bold);          /* 700 */
    color: var(--kc-text);
    line-height: 1;
}
.kc-weather__location {
    font-size: var(--fs-sm);              /* 13px */
    font-weight: var(--fw-medium);        /* 500 */
    color: var(--kc-text-muted);
    margin-top: var(--sp-2);
}
.kc-weather__icon {
    font-size: var(--fs-3xl);             /* 30px */
    color: #f59e0b;
    margin-bottom: var(--sp-2);
}
.kc-weather__condition {
    font-size: var(--fs-sm);              /* 13px */
    font-weight: var(--fw-medium);        /* 500 */
    color: var(--kc-text-soft);
    text-transform: capitalize;
}

/* ============================================================
   WIDGET ÚLTIMAS — lista compacta
   ============================================================ */
.kc-widget--list .kc-widget__body { padding: 0; }
.kc-widget__list { list-style: none; padding: 0; margin: 0; }
.kc-widget__list li {
    border-bottom: 1px solid var(--kc-border);
}
.kc-widget__list li:last-child { border-bottom: 0; }
.kc-widget__list a {
    display: flex;
    gap: var(--sp-3);
    padding: var(--sp-3) var(--sp-4);
    color: var(--kc-text);
    text-decoration: none;
}
.kc-widget__list a:hover {
    background: var(--kc-bg-alt);
    color: var(--kc-primary);
}
.kc-widget__list-counter {
    flex-shrink: 0;
    width: 26px;
    height: 26px;
    background: var(--kc-bg-alt);
    color: var(--kc-primary);
    border-radius: var(--radius-full);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: var(--ff-sans);
    font-weight: var(--fw-bold);         /* 700 */
    font-size: var(--fs-sm);             /* 13px */
}
.kc-widget__list-title {
    font-family: var(--ff-sans);
    font-size: var(--fs-sm);             /* 13px */
    font-weight: var(--fw-bold);         /* 700 */
    line-height: var(--lh-snug);
    color: var(--kc-text);
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.kc-widget__list-date {
    font-size: var(--fs-xs);
    color: var(--kc-text-faint);
    margin-top: 4px;
}

.kc-widget-empty {
    padding: var(--sp-5);
    text-align: center;
    color: var(--kc-text-muted);
    font-size: var(--fs-sm);
}
.kc-widget-empty__icon {
    font-size: 2rem;
    color: var(--kc-text-faint);
    margin-bottom: var(--sp-2);
    display: block;
}

/* ============================================================
   WIDGET PROGRAMA AHORA
   ============================================================ */
.kc-widget--program {
    background: var(--kc-ink-900);
    color: var(--kc-white);
    border: 0;
}
.kc-widget--program .kc-widget__head {
    background: transparent;
    border-bottom: 1px solid var(--kc-ink-800);
}
.kc-widget--program .kc-program {
    display: flex;
    gap: var(--sp-3);
    align-items: center;
    padding: var(--sp-3) var(--sp-4);
}
.kc-widget--program .kc-program__img {
    width: 56px;
    height: 56px;
    border-radius: var(--radius-md);
    object-fit: cover;
    flex-shrink: 0;
}
.kc-widget--program .kc-program__info {
    flex: 1;
    min-width: 0;
}
.kc-widget--program .kc-program__name {
    font-family: var(--ff-sans);
    font-size: var(--fs-base);            /* 15px */
    font-weight: var(--fw-bold);          /* 700 */
    color: var(--kc-white);
    margin: 0 0 var(--sp-1);
    line-height: 1.3;
}
.kc-widget--program .kc-program__time {
    font-size: var(--fs-xs);              /* 11px */
    font-weight: var(--fw-medium);        /* 500 */
    color: var(--kc-ink-400);
    text-transform: uppercase;
    letter-spacing: var(--tracking-wide);
    line-height: 1;
}


/* ===== 09-buttons.css ===== */
/* ============================================================
   kc/09-buttons.css — Sistema de botones
   ============================================================ */

.kc-btn,
.kc-btn-share {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--sp-2);
    min-height: 48px;
    padding: var(--sp-3) var(--sp-6);
    font-family: var(--ff-sans);
    font-size: var(--fs-base);
    font-weight: var(--fw-bold);          /* 700 */
    line-height: 1.25;
    text-decoration: none;
    border: 1px solid transparent;
    border-radius: var(--radius-full);
    box-shadow: none;
    transition: background-color 150ms ease, color 150ms ease, border-color 150ms ease;
    cursor: pointer;
    white-space: nowrap;
    user-select: none;
}
.kc-btn:hover { color: inherit; }
.kc-btn:focus-visible,
.kc-btn-share:focus-visible {
    outline: 2px solid var(--kc-primary);
    outline-offset: 2px;
}
.kc-btn:disabled,
.kc-btn.disabled {
    opacity: 0.5;
    cursor: not-allowed;
    transform: none !important;
}

/* Tamaños */
.kc-btn--sm { min-height: 44px; padding: 6px var(--sp-3); font-size: var(--fs-sm); }
.kc-btn--lg { padding: 12px var(--sp-6); font-size: var(--fs-base); /* 15px */ }
.kc-btn--xl { padding: 14px var(--sp-8); font-size: var(--fs-md); /* 16px */ }

/* Forma */
.kc-btn--pill   { border-radius: var(--radius-full); }
.kc-btn--block  { width: 100%; }

/* ============================================================
   VARIANTES
   ============================================================ */

/* Primary (verde marca) */
.kc-btn--primary {
    background: var(--kc-primary);
    color: var(--kc-white);
    border-color: var(--kc-primary);
}
.kc-btn--primary:hover {
    background: var(--kc-primary-hover);
    border-color: var(--kc-primary-hover);
    color: var(--kc-white);
}

/* Outline (borde primary) */
.kc-btn--outline,
.kc-btn-share {
    background: var(--kc-white);
    color: var(--kc-primary);
    border-color: var(--kc-primary);
}
.kc-btn--outline:hover,
.kc-btn-share:hover {
    background: var(--kc-green-50);
    color: var(--kc-primary);
}

/* Ghost (sin borde, fondo hover) */
.kc-btn--ghost {
    background: transparent;
    color: var(--kc-text-soft);
    border-color: transparent;
}
.kc-btn--ghost:hover {
    background: var(--kc-bg-alt);
    color: var(--kc-primary);
}

/* Ink (negro editorial) */
.kc-btn--ink {
    background: var(--kc-ink-900);
    color: var(--kc-white);
    border-color: var(--kc-ink-900);
}
.kc-btn--ink:hover {
    background: var(--kc-ink-800);
    border-color: var(--kc-ink-800);
    color: var(--kc-white);
}

/* Listen (azul "Escuchar") */
.kc-btn--listen {
    background: var(--kc-listen);
    color: var(--kc-white);
    border-color: var(--kc-listen);
}
.kc-btn--listen:hover {
    background: var(--kc-listen-hover);
    border-color: var(--kc-listen-hover);
    color: var(--kc-white);
}

/* Live (rojo EN VIVO) */
.kc-btn--live {
    background: var(--kc-live);
    color: var(--kc-white);
    border-color: var(--kc-live);
}
.kc-btn--live:hover {
    background: var(--kc-live-hover);
    border-color: var(--kc-live-hover);
    color: var(--kc-white);
}
.kc-btn--live::before {
    content: '';
    width: 8px;
    height: 8px;
    background: var(--kc-white);
    border-radius: var(--radius-full);
}

/* Accent (verde lima) */
.kc-btn--accent {
    background: var(--kc-accent);
    color: var(--kc-ink-900);
    border-color: var(--kc-accent);
}
.kc-btn--accent:hover {
    background: var(--kc-accent-hover);
    border-color: var(--kc-accent-hover);
    color: var(--kc-ink-900);
}

/* White (sobre fondo oscuro) */
.kc-btn--white {
    background: var(--kc-white);
    color: var(--kc-text);
    border-color: var(--kc-white);
}
.kc-btn--white:hover {
    background: var(--kc-bg-alt);
    color: var(--kc-text);
}

/* Icon only (botón circular) */
.kc-btn--icon {
    min-height: 0;
    width: 42px;
    height: 42px;
    padding: 0;
    border-radius: var(--radius-full);
    flex-shrink: 0;
}
.kc-btn--icon.kc-btn--sm { width: 32px; height: 32px; }
.kc-btn--icon.kc-btn--lg { width: 52px; height: 52px; }

/* Group de botones */
.kc-btn-group {
    display: inline-flex;
    gap: var(--sp-2);
    align-items: center;
}

/* Compartir utiliza la misma base y variante secundaria, sin colores por red. */
.kc-btn-share i { width: 1em; text-align: center; }

/* ============================================================
   BACK TO TOP — botón flotante
   ============================================================ */
.back-to-top,
.kc-back-to-top {
    position: fixed;
    right: 24px;
    bottom: 24px;
    width: 48px;
    height: 48px;
    border-radius: var(--radius-full);
    background: var(--kc-primary);
    color: var(--kc-white);
    border: 0;
    cursor: pointer;
    opacity: 0;
    pointer-events: none;
    z-index: var(--z-sticky);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: var(--fs-md);
}
.back-to-top.visible,
.kc-back-to-top.visible {
    opacity: 0.95;
    pointer-events: auto;
}
.back-to-top:hover,
.kc-back-to-top:hover {
    opacity: 1;
    background: var(--kc-primary-hover);
}
.back-to-top:focus-visible,
.kc-back-to-top:focus-visible {
    outline: 2px solid var(--kc-white);
    outline-offset: 2px;
    opacity: 1;
}
@media (max-width: 576px) {
    .back-to-top,
    .kc-back-to-top {
        right: 16px;
        bottom: 16px;
        width: 42px;
        height: 42px;
    }
}

/* Shared previous/next controls for pagination and article details only. */
.kc-direction {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    gap: var(--sp-3);
    min-width: 44px;
    min-height: 44px;
    padding: var(--sp-3) var(--sp-4);
    border: 1px solid var(--kc-border);
    border-radius: var(--radius-full);
    background: var(--kc-bg);
    color: var(--kc-primary);
    font-family: var(--ff-sans);
    font-size: var(--fs-sm);
    font-weight: var(--fw-semibold);
    line-height: 1;
    text-decoration: none;
    cursor: pointer;
    box-shadow: none;
    transition: background-color 150ms ease, color 150ms ease;
}
.kc-direction:hover {
    background: var(--kc-bg-soft);
    color: var(--kc-primary);
    box-shadow: none;
}
.kc-direction:focus-visible {
    outline: 2px solid var(--kc-primary);
    outline-offset: 3px;
}
.kc-direction:disabled,
.kc-direction.is-disabled {
    color: var(--kc-text-faint);
    background: var(--kc-bg);
    border-color: transparent;
    cursor: default;
}


/* ===== 10-footer.css ===== */
/* ============================================================
   Footer RKC — cierra la página con el mismo verde profundo y la misma
   línea lima de la cabecera, así el logo cromado se ve igual arriba y abajo.
   Solo tokens del root; sin estilos inline ni JavaScript.
   ============================================================ */

.kc-footer {
    --kc-footer-soft: color-mix(in srgb, var(--kc-white) 74%, transparent);
    --kc-footer-faint: color-mix(in srgb, var(--kc-white) 55%, transparent);
    --kc-footer-line: color-mix(in srgb, var(--kc-white) 10%, transparent);
    position: relative;
    margin-top: var(--sp-12);
    background: var(--kc-primary-deep);
    color: var(--kc-white);
}
/* Línea de señal lima: la misma que separa la cabecera del resto. */
.kc-footer::before {
    content: '';
    position: absolute;
    inset: 0 0 auto;
    height: 3px;
    background: linear-gradient(90deg, transparent 0, var(--kc-accent) 22%, var(--kc-accent) 78%, transparent 100%);
    pointer-events: none;
}
.kc-footer > .kc-container { padding-block: var(--sp-10) var(--sp-5); }
/* Los enlaces globales son verdes: aquí, sobre verde, se fijan en blanco. */
.kc-footer a { color: var(--kc-white); text-decoration: none; }
.kc-footer a:hover { color: var(--kc-white); }
.kc-footer a:focus-visible { outline: 2px solid var(--kc-accent); outline-offset: 4px; }

/* ── Marca y redes ─────────────────────────────────────────── */
.kc-footer__masthead {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: var(--sp-6);
    padding-bottom: var(--sp-8);
    border-bottom: 1px solid var(--kc-footer-line);
}
.kc-footer__brand { display: flex; align-items: center; gap: var(--sp-5); min-width: 0; }
.kc-footer__logo { display: inline-flex; flex: 0 0 auto; }
.kc-footer__logo img { display: block; width: 168px; height: 56px; object-fit: contain; }
.kc-footer__brand-name { margin: 0 0 var(--sp-1); color: var(--kc-white); font-size: var(--fs-lg); font-weight: var(--fw-extrabold); line-height: var(--lh-snug); }
.kc-footer__tagline { margin: 0; max-width: 44ch; color: var(--kc-footer-soft); font-size: var(--fs-sm); line-height: var(--lh-normal); }

.kc-footer__social { display: flex; flex-wrap: wrap; gap: var(--sp-2); }
.kc-footer__social-link {
    --footer-social-color: var(--kc-primary);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: var(--radius-full);
}
.kc-footer__social-circle {
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    border: 1px solid var(--kc-footer-line);
    border-radius: var(--radius-full);
    background: color-mix(in srgb, var(--kc-white) 8%, transparent);
    color: var(--kc-white);
    font-size: 16px;
    transition: background-color 150ms ease, border-color 150ms ease;
}
/* Al pasar el ratón cada red toma su color de marca (tokens --kc-social-*). */
.kc-footer__social-link:is(:hover, :focus-visible) .kc-footer__social-circle { border-color: var(--footer-social-color); background: var(--footer-social-color); }
.kc-footer__social-link--facebook { --footer-social-color: var(--kc-social-facebook); }
.kc-footer__social-link--youtube { --footer-social-color: var(--kc-social-youtube); }
.kc-footer__social-link--tiktok { --footer-social-color: var(--kc-black); }
.kc-footer__social-link--telegram { --footer-social-color: var(--kc-social-telegram); }
.kc-footer__social-link--instagram { --footer-social-color: var(--kc-social-instagram-purple); }
.kc-footer__social-link--twitter { --footer-social-color: var(--kc-social-twitter); }

/* ── Columnas ──────────────────────────────────────────────── */
.kc-footer__main { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--sp-8); padding-block: var(--sp-8); }
.kc-footer__col { min-width: 0; }
.kc-footer__col-title { margin: 0 0 var(--sp-4); color: var(--kc-accent); font-size: var(--fs-xs); font-weight: var(--fw-extrabold); line-height: var(--lh-normal); letter-spacing: var(--tracking-wider); text-transform: uppercase; }
.kc-footer__list { display: grid; gap: 0 var(--sp-6); margin: 0; padding: 0; list-style: none; }
.kc-footer__list--categories { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.kc-footer .kc-footer__list a {
    display: flex;
    align-items: center;
    min-height: 36px;
    color: var(--kc-footer-soft);
    font-size: var(--fs-sm);
    font-weight: var(--fw-medium);
    line-height: var(--lh-normal);
    overflow-wrap: anywhere;
}
.kc-footer .kc-footer__list a:hover { color: var(--kc-white); text-decoration: underline; text-decoration-color: var(--kc-accent); text-underline-offset: 4px; }

/* Contacto: una fila por dato, con el ícono en un círculo como las redes. */
.kc-footer__contact { display: grid; gap: var(--sp-3); margin: 0; }
.kc-footer__contact > div { display: flex; align-items: center; gap: var(--sp-3); }
.kc-footer__contact dt { display: grid; place-items: center; flex: 0 0 36px; height: 36px; border: 1px solid var(--kc-footer-line); border-radius: var(--radius-full); background: color-mix(in srgb, var(--kc-white) 8%, transparent); color: var(--kc-accent); font-size: 14px; }
.kc-footer__contact dd { min-width: 0; margin: 0; color: var(--kc-footer-soft); font-size: var(--fs-sm); line-height: var(--lh-relaxed); overflow-wrap: anywhere; }
.kc-footer .kc-footer__contact a:hover { text-decoration: underline; text-decoration-color: var(--kc-accent); text-underline-offset: 4px; }

/* ── Pie ───────────────────────────────────────────────────── */
.kc-footer__bottom { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: var(--sp-2) var(--sp-6); padding-top: var(--sp-5); border-top: 1px solid var(--kc-footer-line); color: var(--kc-footer-faint); font-size: var(--fs-xs); line-height: var(--lh-relaxed); }
.kc-footer__copy { min-width: 0; }
.kc-footer__copy strong { color: var(--kc-white); font-weight: var(--fw-bold); }
.kc-footer .kc-footer__developer { display: inline-flex; align-items: center; min-height: 32px; padding-block: var(--sp-1); color: var(--kc-white); font-weight: var(--fw-bold); }
.kc-footer .kc-footer__developer:hover { color: var(--kc-accent); }

@media (min-width: 640px) {
    .kc-footer__main { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .kc-footer__connect { grid-column: 1 / -1; }
}
@media (min-width: 992px) {
    .kc-footer__main { grid-template-columns: minmax(0, 1.4fr) minmax(0, .8fr) minmax(0, 1fr); gap: var(--sp-10); }
    .kc-footer__connect { grid-column: auto; }
    .kc-footer .kc-footer__list a { min-height: 32px; }
}
@media (max-width: 639px) {
    .kc-footer { margin-top: var(--sp-8); }
    .kc-footer > .kc-container { padding-top: var(--sp-8); }
    .kc-footer__masthead { gap: var(--sp-5); padding-bottom: var(--sp-6); }
    .kc-footer__brand { flex-direction: column; align-items: flex-start; gap: var(--sp-3); }
    .kc-footer__main { gap: var(--sp-6); padding-block: var(--sp-6); }
    .kc-footer__list--explore { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .kc-footer__bottom { flex-direction: column; align-items: flex-start; }
}
@media (prefers-reduced-motion: reduce) {
    .kc-footer__social-circle { transition: none; }
}


/* ===== 11-hero.css ===== */
/* ============================================================
   kc/11-hero.css — HERO principal del home
   OVERLAY sobre imagen: texto blanco sobre gradiente oscuro que
   deja libre la parte superior y gana contraste detrás del título.
   Robusto: el overlay se ancla al .kc-hero__media (aspect-ratio fijo).
   ============================================================ */

/* ── Contenedor / slider ───────────────────────────────────── */
.kc-hero {
    position: relative;
    width: 100%;
    overflow: hidden;
    border-radius: var(--radius-md);
    background: var(--kc-ink-900);
}

/* Track: apila los slides en la misma celda (grid 1/1) para fundido */
.kc-hero__track {
    display: grid;
    width: 100%;
}

.kc-hero__slide {
    grid-area: 1 / 1;              /* todos superpuestos en la misma celda */
    width: 100%;
    position: relative;
    opacity: 0;
    transition: opacity 0.4s ease;
    pointer-events: none;
    z-index: 0;
}
.kc-hero__slide.active {
    opacity: 1;
    pointer-events: auto;
    z-index: 1;
}

/* ── Imagen con aspect fijo (ancla del overlay) — no muy alto ── */
.kc-hero__media {
    position: relative;
    display: block;
    width: 100%;
    aspect-ratio: 3 / 2;
    overflow: hidden;
    background: var(--kc-ink-900);
    color: var(--kc-white);
    text-decoration: none;
}
.kc-hero__media:focus-visible {
    outline: 2px solid var(--kc-accent);
    outline-offset: -3px;
    border-radius: var(--radius-md);
}
@media (min-width: 768px) {
    .kc-hero__media { aspect-ratio: 16 / 9; }   /* más ancho/bajo en desktop */
}
.kc-hero__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s ease;
}
.kc-hero:hover .kc-hero__media img { transform: scale(1.03); }

/* ── Overlay: degradado suave, concentrado detrás del título ── */
.kc-hero__overlay {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-end;
    /* padding lateral generoso (el hero es ancho ~820px en desktop) */
    padding: var(--sp-6) var(--sp-8) var(--sp-6);
    background: linear-gradient(180deg,
        transparent 0%,
        transparent 32%,
        color-mix(in srgb, var(--kc-black) 32%, transparent) 52%,
        color-mix(in srgb, var(--kc-black) 64%, transparent) 72%,
        color-mix(in srgb, var(--kc-black) 80%, transparent) 100%);
}
@media (min-width: 768px) {
    .kc-hero__overlay { padding: var(--sp-10) var(--sp-12) var(--sp-10); }
}

/* ── Eyebrow: punto naranja/rojo + categoría ───────────────── */
.kc-hero__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--kc-white);
    font-family: var(--ff-sans);
    font-size: 12px;
    font-weight: var(--fw-bold);
    text-transform: uppercase;
    letter-spacing: 0.09em;
    line-height: 1;
    margin: 0 0 var(--sp-3);
    position: relative;
    z-index: 2;
}
.kc-hero__eyebrow-dot {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--kc-accent);
    flex-shrink: 0;
}

/* ── Título dentro del enlace que cubre la foto completa ───── */
.kc-hero__title {
    font-family: var(--ff-serif);
    font-size: clamp(1.35rem, 1.8vw + 0.75rem, 2.125rem); /* 22 → 34px */
    font-weight: var(--fw-extrabold);
    line-height: 1.2;
    letter-spacing: -0.012em;
    color: var(--kc-white);
    margin: 0;
    max-width: 800px;
    overflow-wrap: anywhere;
    text-wrap: balance;
    text-shadow: 0 2px 4px color-mix(in srgb, var(--kc-black) 55%, transparent);
    display: -webkit-box;
    -webkit-line-clamp: 3;
    line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    position: relative;
    z-index: 2;
}
/* ── Meta: avatar + autor + tiempo (blanco) ────────────────── */
.kc-hero__meta {
    display: flex;
    align-items: center;
    gap: 10px;
    font-family: var(--ff-sans);
    font-size: 13px;
    font-weight: var(--fw-medium);
    color: rgba(255, 255, 255, 0.8);
    line-height: 1.2;
    flex-wrap: wrap;
    position: relative;
    z-index: 2;                     /* por encima del stretched link */
}
.kc-hero__avatar {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--kc-green-500), var(--kc-primary));
    color: var(--kc-white);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: var(--fw-bold);
    flex-shrink: 0;
    border: 1.5px solid rgba(255, 255, 255, 0.35);
}
.kc-hero__author strong {
    color: var(--kc-white);
    font-weight: var(--fw-bold);
}
.kc-hero__meta-sep {
    color: rgba(255, 255, 255, 0.4);
}
.kc-hero__time {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.kc-hero__time i { font-size: 11px; opacity: 0.85; }

/* Los controles conservan su posición sobre la foto.
   El titular reserva una fila inferior exclusiva para los indicadores. */
.kc-hero__controls { display: contents; }
.kc-hero--carousel .kc-hero__overlay { padding-bottom: 64px; }

/* ── Flechas: centradas verticalmente sobre la imagen ──────── */
.kc-hero__nav {
    position: absolute;
    top: 42%;                       /* centro de la zona de imagen (antes del texto) */
    transform: translateY(-50%);
    width: 40px;
    height: 40px;
    background: rgba(6, 10, 16, 0.5);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: var(--radius-full);
    color: var(--kc-white);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    cursor: pointer;
    z-index: 5;
    transition: background 0.18s ease, opacity 0.18s ease;
}
.kc-hero__nav:hover { background: var(--kc-primary); }
.kc-hero__nav--prev { left: var(--sp-4); }
.kc-hero__nav--next { right: var(--sp-4); }
@media (min-width: 992px) {
    .kc-hero__nav { opacity: 0; }
    .kc-hero:hover .kc-hero__nav,
    .kc-hero:focus-within .kc-hero__nav { opacity: 1; }
}

/* ── Indicadores: una zona propia, nunca encima del titular ── */
.kc-hero__dots {
    position: absolute;
    top: auto;
    bottom: var(--sp-3);
    right: var(--sp-8);
    display: flex;
    align-items: center;
    gap: 0;
    z-index: 6;
}
@media (min-width: 768px) {
    .kc-hero__dots {
        right: var(--sp-12);
    }
}
/* Puntos redondos y compactos, como en el diseño original. */
.kc-hero__dot {
    width: 16px;
    height: 32px;
    flex: 0 0 16px;
    background: transparent;
    border: 0;
    border-radius: 50%;
    cursor: pointer;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-shadow: none;
}
.kc-hero__dot::before {
    content: "";
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.55);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);
    transition: background 0.2s ease, transform 0.2s ease;
}
.kc-hero__dot:hover::before { background: rgba(255, 255, 255, 0.85); }
.kc-hero__dot.active::before {
    background: var(--kc-accent);
    transform: scale(1.25);
}
.kc-hero__dot:focus-visible {
    outline: 2px solid var(--kc-white);
    outline-offset: 2px;
}

@media (max-width: 767px) {
    .kc-hero__overlay {
        padding: var(--sp-5) clamp(16px, 5vw, 24px);
    }
    /* Reservar espacio para los puntos, sin agregar una barra debajo. */
    .kc-hero--carousel .kc-hero__overlay { padding-bottom: 56px; }
    .kc-hero__title {
        font-size: clamp(1.3125rem, 4.8vw + 0.25rem, 1.75rem);
        line-height: 1.25;
        text-wrap: pretty;
        -webkit-line-clamp: 3;
        line-clamp: 3;
    }
    .kc-hero__nav { display: none; }
    .kc-hero__dots { right: clamp(16px, 5vw, 24px); }
    .kc-hero__dot { height: 28px; }
}

/* Layout home: hero+lista (izq) + sidebar (der) MISMA ALTURA */
.kc-home-top {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--sp-6);
}
@media (min-width: 992px) {
    .kc-home-top {
        grid-template-columns: minmax(0, 1fr) 320px;
        align-items: stretch;             /* el grid hace que las dos cols midan igual */
        gap: var(--sp-5);
    }
}

/* Wrapper izquierdo: slider arriba + lista de últimas debajo */
.kc-home-top > div:first-child {
    display: flex;
    flex-direction: column;
    gap: var(--sp-4);
    min-width: 0;
}

/* Sidebar (kc-stack): toma la altura del grid item y la distribuye internamente */
@media (min-width: 992px) {
    .kc-home-top > .kc-stack {
        display: flex;
        flex-direction: column;
        gap: var(--sp-4);
        min-height: 0;
        /* No fixed height — el grid stretch ya le da altura igual al lado izq */
    }
    /* TV widget mantiene altura natural (aspect-ratio 16:9 del iframe) */
    .kc-home-top > .kc-stack > .kc-widget--tv,
    .kc-home-top > .kc-stack > .kc-ad {
        flex-shrink: 0;
    }
    /* Lo más leído estira para llenar el resto, SIN cortar */
    .kc-home-top > .kc-stack > .kc-most-read {
        flex: 1 1 auto;
    }
}

/* ============================================================
   HERO LIST — 4 noticias debajo del slider en MISMA columna
   ============================================================ */
.kc-hero-list {
    display: grid;
    /* Dos columnas también en móvil: las cuatro noticias ocupan la mitad de
       alto que apiladas a una columna, y RKC TV sube una pantalla entera. */
    grid-template-columns: repeat(2, 1fr);
    gap: 0;
    background: var(--kc-white);
    border-top: 1px solid var(--kc-border);
}
@media (min-width: 992px) {
    .kc-hero-list {
        grid-template-columns: repeat(4, 1fr);
    }
}

.kc-hero-list__item {
    display: flex;
    flex-direction: column;
    gap: var(--sp-2);
    padding: var(--sp-3) var(--sp-3);
    text-decoration: none;
    color: inherit;
    border-right: 1px solid var(--kc-border);
    border-bottom: 1px solid var(--kc-border);
    min-width: 0;
}
.kc-hero-list__item:last-child {
    border-right: 0;
}
@media (max-width: 991px) {
    .kc-hero-list__item:nth-child(even) { border-right: 0; }
    .kc-hero-list__item { border-right: 1px solid var(--kc-border); }
}
@media (max-width: 639px) {
    .kc-hero-list__item { padding: var(--sp-3) var(--sp-2); }
}

.kc-hero-list__media {
    aspect-ratio: 16 / 9;
    overflow: hidden;
    border-radius: var(--radius-sm);
    background: var(--kc-bg-soft);
    margin-bottom: var(--sp-1);
}
.kc-hero-list__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.kc-hero-list__body {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.kc-hero-list__eyebrow {
    font-family: var(--ff-sans);
    font-size: 11px;
    font-weight: var(--fw-bold);
    color: var(--kc-primary);
    text-transform: uppercase;
    letter-spacing: var(--tracking-wider);
    line-height: 1;
}

.kc-hero-list__title {
    font-family: var(--ff-serif);
    font-size: 15px;                /* eran 14px: los titulares más frescos no deben ser los más pequeños */
    font-weight: var(--fw-bold);
    line-height: 1.3;
    color: var(--kc-text);
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.kc-hero-list__item:hover .kc-hero-list__title {
    color: var(--kc-primary);
}

.kc-hero-list__meta {
    font-size: 11px;
    font-weight: var(--fw-medium);
    color: var(--kc-text-muted);
    line-height: 1.2;
    margin-top: 2px;
}

/* ============================================================
   MOST READ — sidebar limpio estilo editorial
   ============================================================ */
.kc-most-read {
    background: var(--kc-white);
    border: 0;
    border-top: 4px solid var(--kc-accent);
    border-radius: 0;
    overflow: visible;
    display: flex;
    flex-direction: column;
    min-height: 0;
}

.kc-most-read__head {
    background: var(--kc-white);
    color: var(--kc-text);
    padding: 14px 0 12px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    font-family: var(--ff-sans);
    font-size: 16px;
    font-weight: var(--fw-bold);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    line-height: 1;
    border-bottom: 1px solid var(--kc-border);
}
.kc-most-read__head i {
    color: var(--kc-accent-strong);
    font-size: 14px;
}
.kc-most-read__head > span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}
/* "esta semana": solo aparece cuando el ranking sale de las visitas reales */
.kc-most-read__period {
    font-size: 11px;
    font-weight: var(--fw-bold);
    color: var(--kc-text-faint);
    text-transform: none;
    letter-spacing: 0;
}
.kc-most-read__list {
    list-style: none;
    margin: 0;
    padding: 0;
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
}

.kc-most-read__item {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px 0;
    border-bottom: 1px solid var(--kc-border);
    flex: 1 1 auto;
    min-height: 0;
}
.kc-most-read__item:last-child { border-bottom: 0; padding-bottom: 4px; }

/* Número grande rojo — protagonista visual con su propia columna */
.kc-most-read__num {
    flex-shrink: 0;
    font-family: var(--ff-sans);
    font-weight: var(--fw-extrabold);
    font-size: 36px;
    line-height: 0.9;
    color: var(--kc-primary);
    width: 28px;
    text-align: center;
    letter-spacing: -0.04em;
    font-variant-numeric: tabular-nums;
}

/* Link con el título */
.kc-most-read__link {
    flex: 1;
    min-width: 0;
    text-decoration: none;
    color: inherit;
    display: block;
}
.kc-most-read__title {
    font-family: var(--ff-serif);
    font-size: 15px;
    font-weight: var(--fw-bold);
    line-height: 1.35;
    margin: 0;
    color: var(--kc-text);
    display: -webkit-box;
    -webkit-line-clamp: 3;
    line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    transition: color var(--t-fast);
    letter-spacing: -0.005em;
}
.kc-most-read__link:hover .kc-most-read__title { color: var(--kc-primary); }

/* ============================================================
   NEWS BLOCK — Seccion de noticias estilo RPP
   ============================================================ */
.kc-news-block {
    margin-bottom: var(--sp-12);
    padding-top: var(--sp-4);
    border-top: 6px solid var(--kc-editorial-line);
}

.kc-news-block__head {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin-bottom: var(--sp-5);
    gap: var(--sp-4);
}

.kc-news-block__title {
    font-family: var(--ff-serif);
    font-size: var(--fs-3xl);
    font-weight: var(--fw-extrabold);
    color: var(--kc-text);
    margin: 0;
    line-height: 1;
    letter-spacing: 0;
    min-width: 0;
    overflow-wrap: anywhere;
}
.kc-news-block__title a {
    color: inherit;
    text-decoration: none;
}
.kc-news-block__title a:hover {
    color: var(--kc-primary);
}

.kc-news-block__more {
    flex-shrink: 0;
    font-size: 13px;
    font-weight: var(--fw-medium);
    color: var(--kc-text-muted);
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: var(--tracking-wider);
    white-space: nowrap;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.kc-news-block__more:hover {
    color: var(--kc-primary);
}
.kc-news-block__more i {
    font-size: 10px;
}

.kc-news-block__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--sp-5);
}
.kc-news-block--compact {
    margin-bottom: var(--sp-10);
}
@media (max-width: 991px) {
    .kc-news-block__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 540px) {
    .kc-news-block__head { gap: var(--sp-3); }
    .kc-news-block__title {
        font-size: clamp(var(--fs-2xl), 8vw, var(--fs-3xl));
        line-height: var(--lh-tight);
    }
    .kc-news-block__grid { grid-template-columns: 1fr; }

    /* ============================================================
       Sprint C — Patrón editorial "lead + lista" en móvil
       ============================================================
       Cada bloque de categoría apilaba 4 tarjetas de 311px (193px de foto +
       102px de texto) = 1.283px. Con cuatro bloques eso son 5.100px, el 42%
       de una portada de 16 pantallas.

       No se recorta contenido: siguen apareciendo los mismos 4 titulares por
       categoría. Cambia la jerarquía, que es como lo resuelven los medios en
       móvil: la primera nota conserva su foto grande como entrada de sección,
       y las tres siguientes pasan a fila compacta con miniatura a la izquierda
       —el mismo patrón que ya usa .kc-hero-list en esta misma portada.

       Cada bloque baja de ~1.283px a ~640px. En las cuatro categorías se
       recuperan unos 2.500px, y de paso los titulares se escanean mejor.
       ============================================================ */
    .kc-news-block__grid { gap: var(--sp-4); }

    /* Cerrar la noticia principal antes de empezar la lista compacta.
       Sin este separador los dos primeros titulares parecen continuos. */
    .kc-news-block__grid > .kc-news-card:first-child:not(:last-child) {
        padding-bottom: var(--sp-5);
        border-bottom: 1px solid var(--kc-border);
    }

    .kc-news-card:not(:first-child) {
        flex-direction: row;
        gap: var(--sp-3);
        align-items: flex-start;
        padding-bottom: var(--sp-4);
        border-bottom: 1px solid var(--kc-border);
    }
    .kc-news-card:not(:first-child) .kc-news-card__media {
        flex: 0 0 116px;
        width: 116px;
        margin-bottom: 0;
    }
    .kc-news-card:not(:first-child) .kc-news-card__body {
        flex: 1;
        min-width: 0;
        gap: var(--sp-1);
    }
    /* En fila compacta el antetítulo repite la categoría del encabezado del
       bloque: se oculta para dejar el ancho al titular, que es lo que se lee. */
    .kc-news-card:not(:first-child) .kc-news-card__eyebrow { display: none; }
    .kc-news-card:not(:first-child) .kc-news-card__title {
        font-size: var(--fs-base);
        line-height: var(--lh-snug);
    }
    /* La última no lleva línea: la cierra el margen del propio bloque. */
    .kc-news-card:last-child { border-bottom: 0; padding-bottom: 0; }
}

/* === Card individual (estilo limpio editorial) === */
.kc-news-card {
    display: flex;
    flex-direction: column;
    background: transparent;
}

.kc-news-card__media {
    aspect-ratio: 16 / 9;
    overflow: hidden;
    border-radius: var(--radius-sm);
    margin-bottom: var(--sp-4);
    display: block;
    background: var(--kc-bg-soft);
}
.kc-news-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.kc-news-card__body {
    display: flex;
    flex-direction: column;
    gap: var(--sp-3);
    flex-grow: 1;
}

.kc-news-card__eyebrow {
    align-self: flex-start;
    display: inline-block;
    font-family: var(--ff-sans);
    font-size: 13px;
    font-weight: var(--fw-medium);
    color: var(--kc-text);
    text-decoration: none;
    padding-bottom: 5px;
    border-bottom: 2px solid var(--kc-editorial-line);
    line-height: 1;
    letter-spacing: 0.01em;
}
.kc-news-card__eyebrow:hover {
    color: var(--kc-primary);
}

.kc-news-card__title {
    font-family: var(--ff-serif);
    font-size: 17px;
    font-weight: var(--fw-extrabold);
    line-height: 1.3;
    color: var(--kc-text);
    margin: 0;
    letter-spacing: 0;
    display: -webkit-box;
    -webkit-line-clamp: 4;
    line-clamp: 4;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.kc-news-card__title a {
    color: inherit;
    text-decoration: none;
}
.kc-news-card__title a:hover {
    color: var(--kc-primary);
}

.kc-news-card__excerpt {
    margin: 0;
    color: var(--kc-text-soft);
    font-size: var(--fs-sm);
    font-weight: var(--fw-regular);
    line-height: var(--lh-relaxed);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.kc-news-card__meta {
    margin-top: auto;
    padding-top: var(--sp-3);
    border-top: 1px solid var(--kc-border);
    font-size: 12px;
    font-weight: var(--fw-regular);
    color: var(--kc-text-muted);
    line-height: 1.5;
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.kc-news-card__author {
    color: var(--kc-text);
    font-size: 12px;
    line-height: 1.4;
}
.kc-news-card__author strong {
    color: var(--kc-text);
    font-weight: var(--fw-semibold);
}
.kc-news-card__date {
    color: var(--kc-text-faint);
    font-size: 11px;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-weight: var(--fw-medium);
}
.kc-news-card__date i {
    font-size: 10px;
    color: var(--kc-primary);
    opacity: 0.9;
}

/* Variante lead: una nota principal y tres apoyos, como modulos editoriales RPP */
@media (min-width: 768px) {
    .kc-news-block--lead .kc-news-card:first-child {
        grid-column: 1 / -1;
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(0, 0.9fr);
        gap: var(--sp-6);
        align-items: center;
        margin-bottom: var(--sp-2);
    }
    .kc-news-block--lead .kc-news-card:first-child .kc-news-card__media {
        margin-bottom: 0;
        aspect-ratio: 16 / 9;
    }
    .kc-news-block--lead .kc-news-card:first-child .kc-news-card__title {
        font-size: var(--fs-2xl);
        line-height: var(--lh-snug);
        -webkit-line-clamp: 4;
        line-clamp: 4;
    }
}
@media (min-width: 992px) {
    .kc-news-block--lead .kc-news-block__grid {
        grid-template-columns: repeat(3, 1fr);
    }
}


/* ===== 12-video-grid.css ===== */
/* ============================================================
   Videos — lenguaje visual compartido: portada, catálogo y detalle.
   Colores, radios y tipografía siempre proceden de los tokens root.
   Sigue la línea de la portada: raya editorial arriba, título grande,
   "VER MÁS" en texto, tarjetas como las de noticias y el mismo play
   redondo de los Reels.
   ============================================================ */

.kc-play-triangle {
    display: block;
    width: 0;
    height: 0;
    margin-left: 2px;
    border-style: solid;
    border-color: transparent transparent transparent currentColor;
    border-width: 7px 0 7px 11px;
    line-height: 0;
}

/* Un solo control de reproducción, el mismo de los Reels: círculo con el
   acento del root y el verde más oscuro, blanco al pasar el ratón. Solo
   cambia el tamaño según la miniatura. */
.kc-video-play {
    position: absolute;
    left: var(--sp-3);
    bottom: var(--sp-3);
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    min-height: 0;
    padding: 0;
    border: 0;
    border-radius: var(--radius-full);
    background: var(--kc-accent);
    color: var(--kc-green-900);
    line-height: 1;
    flex-shrink: 0;
    transition: background-color 150ms ease;
}
button.kc-video-play { cursor: pointer; appearance: none; }
.kc-video-play .kc-play-triangle { margin-left: 3px; }
.kc-video-play--large {
    top: 50%;
    left: 50%;
    bottom: auto;
    transform: translate(-50%, -50%);
    width: 72px;
    height: 72px;
}
.kc-video-play--large .kc-play-triangle { border-width: 12px 0 12px 19px; margin-left: 5px; }
.kc-video-play:hover,
.kc-video-card:is(:hover, :focus-visible) .kc-video-play { background: var(--kc-white); }
.kc-video-play:focus-visible { outline: 3px solid var(--kc-white); outline-offset: 4px; }

/* Tarjeta única: las variantes solo ajustan distribución y escala. Misma
   anatomía que las tarjetas de noticias de la portada. */
.kc-video-card {
    display: flex;
    flex-direction: column;
    gap: var(--sp-3);
    min-width: 0;
    color: var(--kc-text);
    text-decoration: none;
    border-radius: var(--radius-sm);
}
.kc-video-card__media {
    position: relative;
    flex-shrink: 0;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    border-radius: var(--radius-sm);
    background: var(--kc-bg-soft);
}
.kc-video-card__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.kc-video-card__body { display: grid; align-content: start; gap: var(--sp-2); min-width: 0; }
.kc-video-card__title {
    margin: 0;
    color: var(--kc-text);
    font: var(--fw-extrabold) 17px/1.3 var(--ff-sans);
    overflow-wrap: anywhere;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.kc-video-card__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: var(--sp-1) var(--sp-2);
    color: var(--kc-text-faint);
    font: var(--fw-medium) 11px/1.4 var(--ff-sans);
}
/* "Video" en cada tarjeta de una sección de videos sobraba: la etiqueta solo
   se ve, como "Seleccionado", en la tarjeta que suena arriba en la portada. */
.kc-video-card__label { display: none; color: var(--kc-primary); font-weight: var(--fw-bold); }
.kc-video-card.is-playing .kc-video-card__label { display: inline; }
.kc-video-card__meta time { display: inline; }
.kc-video-card.is-playing .kc-video-card__label + time::before { content: '·'; margin-right: var(--sp-2); }
/* Sin fecha ni selección, el bloque de datos no deja hueco. */
.kc-video-card:not(.is-playing) .kc-video-card__meta:not(:has(time)) { display: none; }
.kc-video-card:is(:hover, :focus-visible) .kc-video-card__title { color: var(--kc-primary); }
.kc-video-card:focus-visible { outline: 2px solid var(--kc-primary); outline-offset: 5px; }
.kc-video-card.is-playing .kc-video-card__media { outline: 2px solid var(--kc-primary); outline-offset: 3px; }
.kc-video-card--compact .kc-video-card__title { font-size: 15px; }
.kc-video-card--horizontal { display: grid; grid-template-columns: 120px minmax(0, 1fr); align-items: start; gap: var(--sp-3); }
.kc-video-card--horizontal .kc-video-card__title { font-size: var(--fs-sm); }
.kc-video-card--horizontal .kc-video-card__body { gap: var(--sp-1); }
.kc-video-card--horizontal .kc-video-play { width: 28px; height: 28px; left: var(--sp-1); bottom: var(--sp-1); }
.kc-video-card--horizontal .kc-play-triangle { border-width: 5px 0 5px 8px; margin-left: 2px; }

/* Mismo póster y reproducción bajo demanda en home y detalle. */
.kc-video-featured {
    position: relative;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    border-radius: var(--radius-sm);
    background: var(--kc-bg-ink);
    scroll-margin-top: 100px;
}
.kc-video-featured > img { display: block; width: 100%; height: 100%; object-fit: cover; }
.kc-video-featured__player { position: absolute; inset: 0; display: none; z-index: 1; }
.kc-video-featured__player iframe { display: block; width: 100%; height: 100%; border: 0; }
.kc-video-featured.is-active .kc-video-featured__player { display: block; }
.kc-video-featured.is-active .kc-video-featured__play { visibility: hidden; }
.kc-video-featured__fallback { position: absolute; inset: auto 0 0; padding: var(--sp-3); background: var(--kc-primary); color: var(--kc-white); text-align: center; }

/* Encabezados: los mismos de las secciones de la portada (Trópico, Reels…). */
.kc-video-heading {
    margin: 0;
    color: var(--kc-text);
    font: var(--fw-extrabold) var(--fs-3xl)/1 var(--ff-sans);
    letter-spacing: 0;
    overflow-wrap: anywhere;
}
/* El catálogo utiliza el encabezado compartido .kc-cathead de Noticias. */
.kc-video-library__intro { margin: var(--sp-3) 0 0; color: var(--kc-text-muted); font-size: var(--fs-sm); }
.kc-video-library { padding-bottom: var(--sp-8); }
.kc-video-library__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--sp-8) var(--sp-6); }

/* Portada: destacado y cuatro tarjetas, con la cabecera de las demás secciones. */
.kc-videos-section { padding: var(--sp-8) 0; background: var(--kc-bg); color: var(--kc-text); }
.kc-videos-section__panel { padding-top: var(--sp-4); border-top: 6px solid var(--kc-editorial-line); }
.kc-videos-section__header { display: flex; align-items: baseline; justify-content: space-between; gap: var(--sp-4); margin-bottom: var(--sp-5); }
.kc-videos-section__all { flex-shrink: 0; }
.kc-videos-block { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); align-items: start; gap: var(--sp-8); }
.kc-videos-block--single { grid-template-columns: minmax(0, 1fr); }
.kc-videos-block--single .kc-videos-block__main { width: 100%; max-width: 800px; }
.kc-videos-block__main { display: grid; gap: var(--sp-4); min-width: 0; }
.kc-videos-block__main-info { display: grid; gap: var(--sp-2); min-width: 0; }
/* Igual que la etiqueta de las tarjetas de noticias. */
.kc-videos-block__main-eyebrow { justify-self: start; padding-bottom: 5px; border-bottom: 2px solid var(--kc-editorial-line); color: var(--kc-text); font: var(--fw-medium) 13px/1 var(--ff-sans); letter-spacing: .01em; }
.kc-videos-block__main-title { margin: 0; font: var(--fw-extrabold) clamp(1.25rem, 2vw, 1.5rem)/1.3 var(--ff-sans); overflow-wrap: anywhere; }
.kc-videos-block__main-title a { color: var(--kc-text); text-decoration: none; }
.kc-videos-block__main-title a:hover { color: var(--kc-primary); }
.kc-videos-block__main-title a:focus-visible { outline: 2px solid var(--kc-primary); outline-offset: 5px; }
.kc-videos-block__aside { min-width: 0; }
.kc-videos-block__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-6) var(--sp-4); }

/* Detalle: la misma estructura que una noticia (etiqueta, título, medio, franja
   de datos y compartir) con el video en lugar de la imagen. El título y la franja
   usan los estilos base de las noticias; aquí solo se ajustan los márgenes. */
.kc-video-detail { padding-bottom: var(--sp-8); }
.kc-video-detail__heading { display: grid; justify-items: start; gap: var(--sp-3); }
.kc-video-detail .kc-article-title { margin: 0 0 var(--sp-5); overflow-wrap: anywhere; }
.kc-video-detail .kc-article-meta { margin-top: var(--sp-5); }
/* "Más videos" en el mismo recuadro que "Noticias relacionadas". */
.kc-video-detail__related { min-width: 0; align-self: start; }
.kc-widget--videos .kc-widget__title { margin: 0; color: inherit; font: inherit; letter-spacing: inherit; }
.kc-video-detail__related-list { display: grid; gap: var(--sp-4); }
.kc-widget--videos .kc-widget__footer { padding: var(--sp-3) var(--sp-4); border-top: 1px solid var(--kc-border); }

@media (max-width: 991px) {
    .kc-videos-block { grid-template-columns: minmax(0, 1fr); gap: var(--sp-6); }
    .kc-video-library__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 640px) and (max-width: 991px) {
    .kc-video-detail__related-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-6); }
}
@media (max-width: 640px) {
    .kc-videos-section { padding: var(--sp-6) 0; }
    .kc-videos-section__panel { display: flex; flex-direction: column; gap: var(--sp-5); }
    .kc-videos-section__header { display: contents; }
    .kc-videos-section__all { order: 1; align-self: start; }
    .kc-videos-block__list,
    .kc-video-library__grid { gap: var(--sp-5) var(--sp-4); }
    .kc-video-card--compact .kc-video-card__title { font-size: var(--fs-sm); }
    .kc-video-card--compact { gap: var(--sp-2); }
    .kc-video-card--compact .kc-video-play { width: 34px; height: 34px; left: var(--sp-2); bottom: var(--sp-2); }
    .kc-video-card--compact .kc-play-triangle { border-width: 6px 0 6px 9px; margin-left: 2px; }
    .kc-video-play--large { width: 60px; height: 60px; }
}
@media (max-width: 540px) {
    .kc-video-heading { font-size: clamp(var(--fs-2xl), 8vw, var(--fs-3xl)); line-height: var(--lh-tight); }
}
@media (max-width: 479px) {
    .kc-video-library__grid { grid-template-columns: minmax(0, 1fr); row-gap: var(--sp-6); }
}
@media (prefers-reduced-motion: reduce) {
    .kc-video-play { transition: none; }
}


/* ===== 13-schedule.css ===== */
/* Programación semanal: tokens compartidos, sin recortes ni bordes decorativos. */
.kc-schedule-page { padding-block: 2.25rem 3rem; }
.kc-schedule-card { background: var(--kc-white); border: 1px solid var(--kc-border); border-radius: 16px; overflow: hidden; }
.kc-schedule-header { padding: 1.5rem 1.5rem 1rem; }
.kc-schedule-header h1 { margin: 0; color: var(--kc-primary); font: 800 clamp(1.5rem, 2.5vw, 1.875rem)/1.2 var(--ff-sans); letter-spacing: -.03em; }
.kc-schedule-tabs { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: .5rem; margin: 0 1.5rem; }
.kc-schedule-tab { display: flex; align-items: center; justify-content: center; min-width: 0; min-height: 44px; padding: .65rem .25rem; border: 0; border-radius: var(--radius-full); background: var(--kc-green-50); color: var(--kc-primary); font-family: var(--ff-sans); cursor: pointer; box-shadow: none; }
.kc-schedule-tab:hover { background: var(--kc-lime-100); color: var(--kc-primary); }
.kc-schedule-tab.active { background: var(--kc-primary); color: var(--kc-white); }
.kc-schedule-tab.active:hover { background: var(--kc-primary-hover); }
.kc-schedule-tab__day { font-size: .9375rem; font-weight: 600; }
.kc-schedule-tab__short { display: none; }
.kc-schedule-panel[hidden], .kc-schedule-listen[hidden] { display: none; }
.kc-schedule-day-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; padding: 1.25rem 1.5rem; border-bottom: 1px solid var(--kc-border); }
.kc-schedule-day-heading h2 { margin: 0; color: var(--kc-text); font: 700 1.125rem/1.4 var(--ff-sans); }
.kc-schedule-day-heading > span { color: var(--kc-text-muted); font-size: .875rem; }
.kc-schedule-list { display: flex; flex-direction: column; }
.kc-schedule-item { display: grid; grid-template-columns: 80px 96px minmax(0, 1fr) 120px; gap: 1.25rem; align-items: center; padding: 1rem 1.5rem; background: var(--kc-white); }
.kc-schedule-item + .kc-schedule-item { border-top: 1px solid var(--kc-border); }
.kc-schedule-item.live { background: var(--kc-green-50); }
.kc-schedule-time { display: flex; flex-direction: column; gap: .4rem; font-variant-numeric: tabular-nums; }
.kc-schedule-time__start { font: 700 1.25rem/1 var(--ff-sans); color: var(--kc-primary); }
.kc-schedule-time__end { font-size: .875rem; color: var(--kc-text-muted); }
.kc-schedule-art { display: grid; place-items: center; aspect-ratio: 1; min-width: 0; overflow: hidden; border-radius: 8px; background: var(--kc-bg-alt); }
.kc-schedule-img { display: block; width: 100%; height: 96px; object-fit: contain; }
.kc-schedule-body { min-width: 0; }
.kc-schedule-name { margin: 0; color: var(--kc-text); font: 700 1.125rem/1.4 var(--ff-sans); overflow-wrap: anywhere; }
.kc-schedule-host { margin: .3rem 0 0; color: var(--kc-primary); font-size: .875rem; font-weight: 600; }
.kc-schedule-desc { margin: .35rem 0 0; color: var(--kc-text-soft); font-size: .875rem; line-height: 1.55; overflow-wrap: anywhere; }
.kc-schedule-action { display: flex; flex-direction: column; align-items: flex-end; gap: .6rem; }
.kc-schedule-item:not(.live) .kc-schedule-action { display: none; }
.kc-schedule-state { color: var(--kc-text-muted); font-size: .8125rem; font-weight: 600; }
.live .kc-schedule-state { display: inline-flex; align-items: center; gap: .4rem; color: var(--kc-primary); }
.live .kc-schedule-state::before { content: ''; width: 6px; height: 6px; background: var(--kc-primary); border-radius: 50%; }
.kc-schedule-listen { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; min-height: 40px; padding: .5rem .8rem; border-radius: var(--radius-full); color: var(--kc-accent-text); background: var(--kc-accent); font-size: .875rem; font-weight: 700; text-decoration: none; box-shadow: none; }
.kc-schedule-listen:hover { color: var(--kc-accent-text); background: var(--kc-accent-hover); }
.kc-schedule-page :is(button, a, summary, [role="tabpanel"]):focus-visible { outline: 2px solid var(--kc-primary); outline-offset: 3px; }
.kc-schedule-posters { padding: .5rem 1.5rem; border-top: 1px solid var(--kc-border); }
.kc-schedule-posters summary { padding-block: 1rem; cursor: pointer; color: var(--kc-primary); font-weight: 600; font-size: .875rem; }
.kc-schedule-posters summary span { margin-left: .4rem; color: var(--kc-text-muted); }
.kc-schedule-posters .kc-programas-grid { margin-top: 1rem; }
.kc-schedule-posters .kc-programa__poster img { object-fit: contain; }
.kc-schedule-posters .kc-programa:hover .kc-programa__poster img { transform: none; }
@media (max-width: 900px) {
    .kc-schedule-tab__full { display: none; }
    .kc-schedule-tab__short { display: inline; }
    .kc-schedule-item { grid-template-columns: 72px 80px minmax(0, 1fr) 116px; gap: 1rem; padding: 1rem; }
    .kc-schedule-img { height: 80px; }
}
@media (max-width: 600px) {
    .kc-schedule-page { padding-block: 1.5rem 2rem; }
    .kc-schedule-header { padding: 1.25rem 1rem .75rem; }
    .kc-schedule-tabs { margin: 0 .75rem; gap: .25rem; }
    .kc-schedule-tab { padding-inline: .1rem; }
    .kc-schedule-tab__day { font-size: .8125rem; }
    .kc-schedule-day-heading { padding: 1rem; gap: .5rem; }
    .kc-schedule-item { grid-template-columns: 72px minmax(0, 1fr); gap: .75rem; padding: 1rem .75rem; align-items: start; }
    .kc-schedule-time { grid-column: 2; grid-row: 1; flex-direction: row; flex-wrap: wrap; align-items: baseline; gap: .5rem; }
    .kc-schedule-time__start { font-size: 1.125rem; }
    .kc-schedule-art { grid-column: 1; grid-row: 1 / 3; }
    .kc-schedule-img { height: 72px; }
    .kc-schedule-body { grid-column: 2; grid-row: 2; }
    .kc-schedule-name { font-size: 1rem; }
    .kc-schedule-desc { font-size: .875rem; }
    .kc-schedule-action { grid-column: 2 / -1; grid-row: 3; flex-direction: row; flex-wrap: wrap; justify-content: space-between; align-items: center; }
}


/* ===== 14-forms.css ===== */
/* ============================================================
   kc/14-forms.css — Formularios y inputs
   ============================================================ */

.kc-form { display: flex; flex-direction: column; gap: var(--sp-4); }
.kc-form-actions { margin-top: var(--sp-2); }

.kc-form__row {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--sp-4);
}
@media (min-width: 640px) {
    .kc-form__row--2 { grid-template-columns: repeat(2, 1fr); }
}

.kc-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.kc-field__label {
    font-family: var(--ff-sans);
    font-size: var(--fs-sm);              /* 13px */
    font-weight: var(--fw-bold);          /* 700 */
    color: var(--kc-text);
    display: inline-flex;
    align-items: center;
    gap: 4px;
    line-height: 1.3;
}
.kc-field__label-req::after {
    content: '*';
    color: var(--kc-live);
    margin-left: 2px;
}
.kc-field__hint {
    font-size: var(--fs-xs);
    color: var(--kc-text-muted);
}
.kc-field__error {
    font-size: var(--fs-xs);
    color: var(--kc-live);
    display: none;
}
.kc-field.is-invalid .kc-field__error { display: block; }

.kc-input,
.kc-textarea,
.kc-select {
    width: 100%;
    padding: 10px var(--sp-4);
    border: 1px solid var(--kc-border-strong);
    border-radius: var(--radius-md);
    background: var(--kc-white);
    color: var(--kc-text);
    font-family: var(--ff-sans);
    font-size: var(--fs-base);            /* 15px */
    font-weight: var(--fw-regular);       /* 400 */
    line-height: var(--lh-snug);
}
.kc-input:focus,
.kc-textarea:focus,
.kc-select:focus {
    border-color: var(--kc-primary);
    box-shadow: none;
    outline: 2px solid rgba(9, 71, 36, 0.22);
    outline-offset: 1px;
}
.kc-input:disabled,
.kc-textarea:disabled,
.kc-select:disabled {
    background: var(--kc-bg-alt);
    color: var(--kc-text-faint);
    cursor: not-allowed;
}
.kc-textarea { resize: vertical; min-height: 130px; }

.kc-field.is-invalid .kc-input,
.kc-field.is-invalid .kc-textarea,
.kc-field.is-invalid .kc-select {
    border-color: var(--kc-live);
}
.kc-field.is-invalid .kc-input:focus,
.kc-field.is-invalid .kc-textarea:focus,
.kc-field.is-invalid .kc-select:focus {
    box-shadow: none;
    outline-color: rgba(220, 38, 38, 0.35);
}

/* Card-form (contenedor de formulario destacado) */
.kc-form-card {
    background: var(--kc-white);
    border: 1px solid var(--kc-border);
    border-radius: var(--radius-md);
    padding: var(--sp-8) var(--sp-6);
}
@media (min-width: 768px) {
    .kc-form-card { padding: var(--sp-10); }
}

.kc-form-card__head {
    margin-bottom: var(--sp-6);
    padding-bottom: var(--sp-5);
    border-bottom: 1px solid var(--kc-border);
}
.kc-form-card__title {
    font-family: var(--ff-serif);         /* Source Serif 4 */
    font-size: var(--fs-xl);              /* 20px */
    font-weight: var(--fw-bold);          /* 700 */
    color: var(--kc-text);
    margin: 0 0 var(--sp-2);
    letter-spacing: var(--tracking-tight);
    line-height: 1.2;
}
@media (min-width: 768px) {
    .kc-form-card__title { font-size: var(--fs-2xl); /* 24px */ }
}
.kc-form-card__subtitle {
    font-size: var(--fs-base);            /* 15px */
    font-weight: var(--fw-regular);       /* 400 */
    color: var(--kc-text-muted);
    margin: 0;
    line-height: var(--lh-relaxed);
}

/* Info cards (contacto: ubicación, teléfono, etc) */
.kc-info-stack {
    display: flex;
    flex-direction: column;
    gap: var(--sp-4);
}

.kc-info-card {
    display: flex;
    gap: var(--sp-4);
    background: var(--kc-white);
    border: 1px solid var(--kc-border);
    border-radius: var(--radius-md);
    padding: var(--sp-5);
}
.kc-info-card:hover {
    border-color: var(--kc-primary);
}

.kc-info-card__icon {
    flex-shrink: 0;
    width: 48px;
    height: 48px;
    background: var(--kc-green-50);
    color: var(--kc-primary);
    border-radius: var(--radius-md);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: var(--fs-lg);
}

.kc-info-card__body {
    flex: 1;
    min-width: 0;
}
.kc-info-card__title {
    font-family: var(--ff-sans);
    font-size: var(--fs-base);            /* 15px */
    font-weight: var(--fw-bold);          /* 700 */
    color: var(--kc-text);
    margin: 0 0 4px;
    line-height: 1.3;
}
.kc-info-card__text {
    font-size: var(--fs-sm);              /* 13px */
    font-weight: var(--fw-regular);       /* 400 */
    color: var(--kc-text-muted);
    margin: 0;
    line-height: var(--lh-relaxed);
}

.kc-toast {
    position: fixed;
    top: 90px;
    right: 20px;
    z-index: 9999;
    min-width: 300px;
    padding: 14px 18px;
    border-radius: var(--radius-md);
    color: var(--kc-white);
    font-family: var(--ff-sans);
    font-size: 14px;
    font-weight: var(--fw-medium);
}
.kc-toast--success { background: var(--kc-primary); }
.kc-toast--error { background: var(--kc-live); }
.kc-toast__icon { margin-right: 8px; }

/* ============================================================
   Sprint D — Sugerencias del buscador
   ============================================================
   Se despliegan bajo el campo dentro del overlay de búsqueda. La opción
   resaltada se marca con fondo y barra lateral, no solo con color: quien no
   distingue bien los colores necesita otra señal.
   ============================================================ */
.kc-search-overlay__form { position: relative; }

.kc-sug {
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
    right: 0;
    z-index: var(--z-modal);
    background: var(--kc-white);
    border: 1px solid var(--kc-border);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-lg);
    overflow: hidden;
    max-height: 60vh;
    overflow-y: auto;
    text-align: left;
}

.kc-sug__item {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: var(--sp-3) var(--sp-4);
    border-left: 3px solid transparent;
    border-bottom: 1px solid var(--kc-border);
    text-decoration: none;
    color: var(--kc-text);
    min-height: 44px;
    justify-content: center;
}
.kc-sug__item:last-child { border-bottom: 0; }
.kc-sug__item:hover,
.kc-sug__item.is-activa {
    background: var(--kc-bg-alt);
    border-left-color: var(--kc-primary);
}
.kc-sug__item:focus-visible {
    outline: 2px solid var(--kc-primary);
    outline-offset: -2px;
}

.kc-sug__titulo {
    font-family: var(--ff-sans);
    font-size: var(--fs-base);
    font-weight: var(--fw-bold);
    line-height: 1.3;
    color: var(--kc-text);
}
.kc-sug__titulo mark {
    background: var(--kc-green-100);
    color: var(--kc-green-900);
    padding: 0 1px;
    border-radius: 2px;
}
.kc-sug__meta {
    font-size: var(--fs-xs);
    color: var(--kc-text-faint);
    font-weight: var(--fw-medium);
}
.kc-sug__vacio {
    padding: var(--sp-4);
    font-size: var(--fs-sm);
    color: var(--kc-text-muted);
    text-align: center;
}


/* ===== 15-player.css ===== */
/* ============================================================
   kc/15-player.css — Reproductor independiente de TV (Radio: 26-radio.css)
   ============================================================ */

/* Backdrop dark con imagen */
.kc-player-page {
    min-height: 100vh;
    background:
        linear-gradient(135deg, color-mix(in srgb, var(--kc-primary) 95%, transparent) 0%, color-mix(in srgb, var(--kc-bg-ink) 85%, transparent) 100%);
    padding: var(--sp-8) var(--sp-4);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--kc-white);
}
.kc-player-page--has-bg {
    background-blend-mode: multiply;
    background-size: cover;
    background-position: center;
    background-attachment: fixed;
}
.kc-player-page--tv {
    background: linear-gradient(135deg, color-mix(in srgb, var(--kc-bg-ink) 95%, transparent) 0%, color-mix(in srgb, var(--kc-primary) 92%, transparent) 100%);
}

.kc-player-card {
    background: var(--kc-white);
    color: var(--kc-text);
    max-width: 880px;
    width: 100%;
    border-radius: var(--radius-md);
    overflow: hidden;
    box-shadow: none;
}
.kc-player-card--wide {
    max-width: 1080px;
}

.kc-player-card__head {
    background: linear-gradient(135deg, var(--kc-primary) 0%, var(--kc-primary-deep) 100%);
    color: var(--kc-white);
    padding: var(--sp-8) var(--sp-6) var(--sp-6);
    text-align: center;
    position: relative;
    overflow: hidden;
}
.kc-player-card__head::after {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 50% 100%, color-mix(in srgb, var(--kc-accent) 30%, transparent) 0%, transparent 60%);
    pointer-events: none;
}

.kc-player-card__logo {
    width: 96px;
    height: 96px;
    border-radius: var(--radius-full);
    background: var(--kc-white);
    padding: var(--sp-2);
    margin: 0 auto var(--sp-3);
    object-fit: contain;
    box-shadow: none;
    position: relative;
    z-index: 1;
}

.kc-player-card__title {
    font-family: var(--ff-serif);          /* Source Serif 4 */
    font-size: var(--fs-2xl);              /* 24px */
    font-weight: var(--fw-bold);           /* 700 */
    color: var(--kc-white);
    margin: 0 0 var(--sp-2);
    letter-spacing: var(--tracking-wide);
    text-transform: uppercase;
    position: relative;
    z-index: 1;
    line-height: 1.1;
}
@media (min-width: 768px) {
    .kc-player-card__title { font-size: var(--fs-3xl); /* 30px */ }
}

.kc-player-card__live {
    display: inline-flex;
    align-items: center;
    gap: var(--sp-2);
    color: var(--kc-red-500);
    font-size: var(--fs-xs);               /* 11px */
    font-weight: var(--fw-bold);           /* 700 */
    text-transform: uppercase;
    letter-spacing: var(--tracking-widest);
    position: relative;
    z-index: 1;
    line-height: 1;
}
.kc-player-card__live i {
    color: var(--kc-live);
}

.kc-player-card__body {
    padding: var(--sp-6);
}


/* ============================================================
   VIDEO PLAYER (TV)
   ============================================================ */
.kc-video-player {
    background: var(--kc-black);
    border-radius: var(--radius-lg);
    overflow: hidden;
    aspect-ratio: 16 / 9;
    position: relative;
}
.kc-video-player iframe,
.kc-video-player video {
    width: 100%;
    height: 100%;
    display: block;
    border: 0;
}

.kc-player-controls {
    display: flex;
    justify-content: center;
    gap: var(--sp-3);
    margin-top: var(--sp-5);
    flex-wrap: wrap;
}

.kc-player-control {
    display: inline-flex;
    align-items: center;
    gap: var(--sp-2);
    padding: 10px var(--sp-5);
    background: var(--kc-white);
    color: var(--kc-text);
    border: 1px solid var(--kc-border-strong);
    border-radius: var(--radius-full);
    font-family: var(--ff-sans);
    font-size: var(--fs-sm);              /* 13px */
    font-weight: var(--fw-bold);          /* 700 */
    cursor: pointer;
    line-height: 1;
}
.kc-player-control:hover {
    background: var(--kc-primary);
    color: var(--kc-white);
    border-color: var(--kc-primary);
}

.kc-player-cross {
    margin-top: var(--sp-6);
    padding-top: var(--sp-6);
    border-top: 1px solid var(--kc-border);
    text-align: center;
}
.kc-player-cross h5 {
    font-family: var(--ff-sans);
    font-size: var(--fs-base);            /* 15px */
    font-weight: var(--fw-bold);          /* 700 */
    color: var(--kc-text);
    margin: 0 0 var(--sp-2);
    line-height: 1.3;
}
.kc-player-cross p {
    font-size: var(--fs-sm);              /* 13px */
    font-weight: var(--fw-regular);       /* 400 */
    color: var(--kc-text-muted);
    margin: 0 0 var(--sp-4);
    line-height: 1.5;
}

.kc-player-return {
    text-align: center;
    margin-top: var(--sp-5);
    padding-top: var(--sp-4);
    border-top: 1px solid var(--kc-border);
}
.kc-player-return__link {
    font-size: var(--fs-sm);
    color: var(--kc-text-muted);
    text-decoration: none;
}
.kc-player-return__link:hover { color: var(--kc-primary); }

.kc-empty--compact {
    margin: 0;
    padding: var(--sp-12) var(--sp-4);
}
.kc-empty__icon--listen {
    color: var(--kc-listen);
}


/* ===== 16-empty.css ===== */
/* ============================================================
   kc/16-empty.css — Empty states + page headers
   ============================================================ */

.kc-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    width: 100%;
    min-width: 0;
    min-height: clamp(320px, 50svh, 440px);
    padding: clamp(40px, 6vw, 72px) var(--sp-4);
    margin: 0;
}

.kc-empty__icon {
    margin: 0 0 var(--sp-6);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--kc-primary);
    font-size: clamp(3.5rem, 7vw, 5rem);
    line-height: 1;
}

.kc-empty__title {
    font-family: var(--ff-sans);
    font-size: clamp(1.5rem, 2.5vw, 2rem);
    font-weight: var(--fw-bold);
    color: var(--kc-text);
    max-width: 30ch;
    margin: 0;
    line-height: 1.2;
    text-wrap: balance;
}
.kc-empty > .kc-btn {
    min-height: 48px;
    margin-top: var(--sp-6);
}
.kc-empty > .kc-btn,
.kc-empty > .kc-btn:hover,
.kc-empty > .kc-btn:active {
    box-shadow: none;
}

/* ============================================================
   PAGE HEADERS — Encabezado de página interna
   ============================================================ */
.kc-page-header {
    background: linear-gradient(135deg, var(--kc-primary) 0%, var(--kc-primary-deep) 100%);
    color: var(--kc-white);
    padding: var(--sp-10) 0 var(--sp-8);
    margin-bottom: var(--sp-8);
    position: relative;
    overflow: hidden;
}
.kc-page-header::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg,
        transparent 0%,
        var(--kc-accent) 30%,
        var(--kc-accent-hover) 50%,
        var(--kc-accent) 70%,
        transparent 100%);
}

/* Estructura base del breadcrumb (válida en cualquier contexto) */
.kc-page-header__breadcrumb {
    display: inline-flex;
    align-items: center;
    gap: var(--sp-2);
    color: var(--kc-text-muted);          /* default legible sobre blanco */
    font-size: var(--fs-sm);              /* 13px */
    font-weight: var(--fw-medium);        /* 500 */
    text-decoration: none;
    margin-bottom: var(--sp-3);
    line-height: 1.3;
}
.kc-page-header__breadcrumb:hover {
    color: var(--kc-primary);
}
/* Blanco translúcido SOLO dentro del page-header (fondo verde/oscuro) */
.kc-page-header .kc-page-header__breadcrumb {
    color: rgba(255, 255, 255, 0.75);
}
.kc-page-header .kc-page-header__breadcrumb:hover {
    color: var(--kc-accent);
}

.kc-page-header__title {
    font-family: var(--ff-serif);
    font-size: clamp(1.5rem, 2vw + 0.5rem, var(--fs-3xl));   /* 24→30px */
    font-weight: var(--fw-extrabold);     /* 800 — título de página */
    color: var(--kc-white);
    margin: 0;
    letter-spacing: var(--tracking-tight);
    line-height: var(--lh-tight);
}

.kc-page-header__subtitle {
    color: rgba(255, 255, 255, 0.85);
    font-size: var(--fs-base);            /* 15px */
    font-weight: var(--fw-regular);       /* 400 */
    margin: var(--sp-3) 0 0;
    max-width: 720px;
    line-height: var(--lh-relaxed);
}

.kc-page-header__rule {
    display: inline-block;
    width: 80px;
    height: 4px;
    background: var(--kc-accent);
    border-radius: 2px;
    margin-top: var(--sp-4);
}

/* Variantes */
.kc-page-header--ink {
    background: linear-gradient(135deg, var(--kc-ink-900) 0%, var(--kc-ink-800) 100%);
}
.kc-page-header--ink::after {
    background: linear-gradient(90deg,
        transparent 0%,
        var(--kc-primary) 30%,
        var(--kc-accent) 50%,
        var(--kc-primary) 70%,
        transparent 100%);
}

.kc-page-header--simple {
    background: var(--kc-white);
    color: var(--kc-text);
    padding: var(--sp-6) 0 var(--sp-2);
    margin-bottom: 0;
}
/* El contenedor de tarjetas que sigue al encabezado: casi sin padding arriba
   (así el título queda pegado a las tarjetas, sin el hueco que sobraba). */
.kc-page-header--simple + .kc-container.kc-py-4 {
    padding-top: var(--sp-2) !important;
}
.kc-page-header--simple::after { content: none; }
.kc-page-header--simple .kc-page-header__title { color: var(--kc-text); }
.kc-page-header--simple .kc-page-header__breadcrumb {
    color: var(--kc-text-muted);
}
.kc-page-header--simple .kc-page-header__breadcrumb:hover { color: var(--kc-primary); }
.kc-page-header--simple .kc-page-header__subtitle { color: var(--kc-text-muted); }
.kc-page-header--simple .kc-page-header__rule { background: var(--kc-primary); }

/* ============================================================
   PAGINATION
   ============================================================ */
.kc-pagination {
    margin-block: var(--sp-10);
}
.kc-pager {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: var(--sp-4);
    width: 100%;
    max-width: 900px;
    margin-inline: auto;
    font-family: var(--ff-sans);
    font-size: var(--fs-sm);
    font-weight: var(--fw-semibold);
}
.kc-pager__pages {
    display: flex;
    align-items: center;
    gap: var(--sp-2);
    margin: 0;
    padding: 0;
    list-style: none;
}
.kc-pager__pages > li {
    margin: 0;
    padding: 0;
    list-style: none;
}
.kc-pager__number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    min-height: 44px;
    border-radius: var(--radius-full);
    color: var(--kc-primary);
    text-decoration: none;
    line-height: 1;
    transition: background-color 150ms ease, color 150ms ease;
}
.kc-pager__number {
    padding: var(--sp-2);
    font-variant-numeric: tabular-nums;
}
.kc-pager__number.is-current {
    background: var(--kc-accent);
    color: var(--kc-accent-text);
    font-weight: var(--fw-bold);
}
.kc-pager__direction--prev { justify-self: start; }
.kc-pager__direction--next { justify-self: end; }
.kc-pager a:hover {
    background: var(--kc-bg-soft);
    color: var(--kc-primary);
}
.kc-pager a:focus-visible {
    outline: 2px solid var(--kc-primary);
    outline-offset: 3px;
}
.kc-pager__gap {
    color: var(--kc-text-muted);
    text-align: center;
    min-width: 20px;
}
.kc-pager__summary {
    display: none;
    color: var(--kc-text-muted);
    text-align: center;
    font-variant-numeric: tabular-nums;
}
.kc-pager__summary strong { color: var(--kc-primary); }
@media (max-width: 760px) {
    .kc-pager { gap: var(--sp-2); }
    .kc-pager__pages { display: none; }
    .kc-pager__summary { display: block; }
}
@media (max-width: 420px) {
    .kc-pager__label { display: none; }
    .kc-pager__direction { padding: var(--sp-3); }
}

/* ============================================================
   BANNERS PUBLICITARIOS
   ============================================================ */
.kc-ad {
    text-align: center;
    margin: var(--sp-6) 0;
}
.kc-ad img,
.kc-ad picture {
    width: 100%;
    max-width: 100%;
    height: auto;
    border-radius: 0;           /* sin esquinas redondeadas */
    display: block;
}
/* Cada variante define su espacio vertical aquí y solo aquí: la vista ya no
   añade utilidades kc-mb-* encima. */
.kc-ad--leaderboard {
    margin: var(--sp-5) 0 var(--sp-8);
}
/* Primer banner del home — a la MISMA distancia del menú que las side ads (12px). */
.kc-ad--top {
    margin-top: var(--sp-1);
    margin-bottom: var(--sp-6);
}
/* Leaderboard hereda el width:100% + height:auto del .kc-ad img */

/* ============================================================
   SIDE ADS — anuncios laterales (sticky a izq/der del container)
   ============================================================ */

/* Sticky con altura real: su límite es .kc-page-body, nunca el footer. */
.kc-side-ads {
    --kc-side-ad-gap: 12px;
    --kc-side-ad-width: 120px;
    --kc-side-ad-sticky-top: 48px;        /* altura de .kc-sections */
    --kc-side-ad-visual-top: calc(var(--kc-side-ad-sticky-top) + var(--kc-side-ad-gap));
    position: sticky;
    top: var(--kc-side-ad-visual-top);
    width: 100%;
    margin-top: var(--kc-side-ad-gap);
    align-self: start;
    grid-template-columns: minmax(0, 1fr) var(--container-page) minmax(0, 1fr);
    column-gap: var(--kc-side-ad-gap);
    pointer-events: none;                /* el wrapper no bloquea clicks */
    z-index: var(--z-sticky);            /* debajo del header (1000) */
    display: none;                       /* solo en desktop ancho */
}

/* Aparecen cuando hay espacio real al lado del container + formato 120px */
@media (min-width: 1520px) {
    /* Se superponen las áreas, no los contenidos: los anuncios quedan
       en los márgenes y conservan su altura para detener el sticky. */
    .kc-page-body {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
    }
    .kc-page-body > .main-content,
    .kc-page-body > .kc-side-ads {
        grid-area: 1 / 1;
        min-width: 0;
    }
    .kc-side-ads { display: grid; }
}

.kc-side-ads__slot {
    grid-row: 1;
    align-self: start;
    width: var(--kc-side-ad-width);
    pointer-events: auto;                /* slot sí recibe clicks */
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
}

/* Posición: pegados al borde del container central con un gap */
.kc-side-ads__slot--left  { grid-column: 1; justify-self: end; }
.kc-side-ads__slot--right { grid-column: 3; justify-self: start; }

.kc-side-ads__img {
    width: 100%;
    height: auto;
    max-height: min(600px, calc(100vh - var(--kc-side-ad-visual-top) - 44px));
    max-height: min(600px, calc(100dvh - var(--kc-side-ad-visual-top) - 44px));
    object-fit: contain;
    display: block;
    border-radius: 0;
}

.kc-side-ads__slot a {
    display: block;
    width: 100%;
    line-height: 0;
}

.kc-side-ads__slot a:hover .kc-side-ads__img { opacity: 0.95; }

/* ============================================================
   ACCESOS EN VIVO — flotantes solo cuando hay margen lateral
   ============================================================ */
.kc-fab-group {
    position: fixed;
    left: var(--sp-4);
    bottom: var(--sp-4);
    display: flex;
    flex-direction: column;
    gap: var(--sp-2);
    z-index: var(--z-sticky);
}

.kc-fab {
    display: inline-flex;
    flex-shrink: 0;
    align-items: center;
    gap: var(--sp-2);
    padding: 10px var(--sp-4);
    background: var(--kc-primary);
    color: var(--kc-white);
    border-radius: var(--radius-full);
    text-decoration: none;
    font-family: var(--ff-sans);
    font-size: var(--fs-xs);              /* 11px */
    font-weight: var(--fw-bold);          /* 700 */
    text-transform: uppercase;
    letter-spacing: var(--tracking-wide);
    border: 0;
    line-height: 1;
}
.kc-fab:hover {
    background: var(--kc-primary-hover);
    color: var(--kc-white);
}
.kc-fab--ink {
    background: var(--kc-ink-900);
}
.kc-fab--ink:hover { background: var(--kc-ink-800); color: var(--kc-white); }
.kc-fab--live {
    background: var(--kc-live);
}
.kc-fab--live:hover { background: var(--kc-live-hover); color: var(--kc-white); }
.kc-fab i { font-size: 14px; }

/* Sin margen lateral, los accesos se integran al inicio del contenido.
   No basta con dar padding al footer: un botón fijo seguiría tapando
   noticias durante todo el scroll. */
@media (max-width: 1519px) {
    .kc-fab-group {
        position: static;
        flex-direction: row;
        flex-wrap: wrap;
        margin-bottom: var(--sp-4);
    }
    .kc-fab {
        min-height: 44px;
        padding: var(--sp-2) var(--sp-4);
        justify-content: center;
    }
}

/* ============================================================
   GALERIA
   ============================================================ */
.kc-gallery-library__grid {
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr));
    gap: var(--sp-8) var(--sp-6);
}
.kc-card--gallery .kc-card__media { border-radius: var(--radius-md); }
.kc-card--gallery .kc-card__body { gap: var(--sp-3); }
.kc-card--gallery .kc-card__title { line-height: 1.35; }
.kc-card--gallery .kc-card__date { color: var(--kc-text-muted); }
.kc-gallery-count {
    position: absolute;
    right: var(--sp-3);
    bottom: var(--sp-3);
    display: inline-flex;
    align-items: center;
    gap: var(--sp-2);
    min-height: 36px;
    padding: var(--sp-2) var(--sp-3);
    border-radius: var(--radius-full);
    background: var(--kc-accent);
    color: var(--kc-accent-text);
    font-size: var(--fs-sm);
    font-weight: var(--fw-bold);
}
.kc-card--gallery:hover .kc-gallery-count { background: var(--kc-accent-hover); }
.kc-card--gallery:focus-visible,
.kc-gallery-tile:focus-visible {
    outline: 2px solid var(--kc-primary);
    outline-offset: 4px;
}
.kc-gallery-detail__header { margin-bottom: var(--sp-6); }
.kc-gallery-detail__header .kc-article-title {
    max-width: 1000px;
    font-size: clamp(1.75rem, 3.4vw, 2.75rem);
    line-height: 1.2;
}
.kc-gallery-detail__back {
    display: inline-flex;
    align-items: center;
    gap: var(--sp-2);
    min-height: 44px;
    margin-bottom: var(--sp-2);
    color: var(--kc-primary);
    font-weight: var(--fw-semibold);
    text-decoration: none;
}
.kc-gallery-detail__back:hover { color: var(--kc-primary-hover); }
.kc-gallery-detail__description {
    max-width: 80ch;
    margin: var(--sp-4) 0 0;
    color: var(--kc-text-muted);
    font-size: var(--fs-md);
    line-height: var(--lh-relaxed);
    overflow-wrap: anywhere;
}
.kc-gallery-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--sp-6);
}
.kc-gallery-photo { margin: 0; min-width: 0; }
.kc-gallery-tile {
    position: relative;
    display: block;
    width: 100%;
    padding: 0;
    border: 0;
    aspect-ratio: 4 / 3;
    border-radius: var(--radius-md);
    overflow: hidden;
    cursor: zoom-in;
    background: var(--kc-bg-soft);
    box-shadow: none;
}
.kc-gallery-tile img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.kc-gallery-tile__icon {
    position: absolute;
    right: var(--sp-3);
    bottom: var(--sp-3);
    width: 40px;
    height: 40px;
    background: var(--kc-accent);
    color: var(--kc-accent-text);
    border-radius: var(--radius-full);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: var(--fs-md);
    pointer-events: none;
}
.kc-gallery-tile:is(:hover, :focus-visible) .kc-gallery-tile__icon {
    background: var(--kc-accent-hover);
}
.kc-gallery-photo__caption {
    padding-top: var(--sp-3);
    color: var(--kc-text-muted);
    font-size: var(--fs-sm);
    line-height: var(--lh-relaxed);
    overflow-wrap: anywhere;
}
@media (max-width: 900px) {
    .kc-gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-4); }
}
@media (max-width: 560px) {
    .kc-gallery-grid { grid-template-columns: minmax(0, 1fr); }
}

.kc-lightbox {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.92);
    z-index: var(--z-modal);
    display: none;
    align-items: center;
    justify-content: center;
    backdrop-filter: blur(8px);
}
.kc-lightbox.is-active { display: flex; }
.kc-lightbox__image {
    max-width: 92vw;
    max-height: 88vh;
    object-fit: contain;
    border-radius: var(--radius-sm);
}
.kc-lightbox__close {
    position: absolute;
    top: var(--sp-4);
    right: var(--sp-4);
    width: 48px;
    height: 48px;
    background: rgba(255, 255, 255, 0.12);
    color: var(--kc-white);
    border: 0;
    border-radius: var(--radius-full);
    cursor: pointer;
    font-size: var(--fs-lg);
    backdrop-filter: blur(4px);
}
.kc-lightbox__close:hover { background: var(--kc-live); }
.kc-lightbox__nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 56px;
    height: 56px;
    background: rgba(255, 255, 255, 0.12);
    color: var(--kc-white);
    border: 0;
    border-radius: var(--radius-full);
    cursor: pointer;
    font-size: var(--fs-lg);
    backdrop-filter: blur(4px);
}
.kc-lightbox__nav:hover { background: var(--kc-primary); }
.kc-lightbox__nav--prev { left: var(--sp-5); }
.kc-lightbox__nav--next { right: var(--sp-5); }
.kc-lightbox__counter {
    position: absolute;
    bottom: var(--sp-5);
    left: 50%;
    transform: translateX(-50%);
    color: var(--kc-white);
    font-family: var(--ff-sans);
    font-size: var(--fs-sm);
    background: rgba(0, 0, 0, 0.5);
    padding: 6px var(--sp-4);
    border-radius: var(--radius-full);
}
body.kc-lock-scroll { overflow: hidden; }

/* Shared full-container error pages. */
.kc-error-page {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    justify-items: center;
    align-content: center;
    gap: var(--sp-6);
    min-height: clamp(440px, 60svh, 580px);
    padding-block: clamp(48px, 6vw, 80px);
    text-align: center;
    background: var(--kc-bg);
}
.kc-error-page__number {
    color: var(--kc-primary);
    font-family: var(--ff-sans);
    font-size: clamp(7rem, 14vw, 11rem);
    font-weight: 800;
    line-height: 0.9;
    letter-spacing: -0.075em;
    text-align: center;
    font-variant-numeric: lining-nums;
}
.kc-error-page__content {
    min-width: 0;
}
.kc-error-page__title {
    max-width: 28ch;
    margin: 0 0 var(--sp-6);
    color: var(--kc-text);
    font-family: var(--ff-sans);
    font-size: clamp(1.5rem, 2.5vw, 2rem);
    font-weight: var(--fw-bold);
    line-height: 1.15;
    letter-spacing: var(--tracking-tight);
    text-wrap: balance;
}
.kc-error-page__action,
.kc-error-page__action:hover,
.kc-error-page__action:active {
    min-height: 48px;
    box-shadow: none;
}

/* ============================================================
   Sprint D — Páginas de tema y de autor
   ============================================================ */

/* ---- Cabecera de tema ---- */
.kc-cathead--tema { padding-bottom: var(--sp-2); }
.kc-cathead__eyebrow {
    display: block;
    font-family: var(--ff-sans);
    font-size: var(--fs-xs);
    font-weight: var(--fw-extrabold);
    letter-spacing: var(--tracking-wider);
    text-transform: uppercase;
    color: var(--kc-primary);
    margin-bottom: var(--sp-1);
}
.kc-cathead__desc {
    max-width: 58ch;
    margin: var(--sp-3) 0 0;
    color: var(--kc-text-muted);
    font-size: var(--fs-md);
    line-height: var(--lh-relaxed);
}
.kc-cathead__count {
    margin: var(--sp-2) 0 0;
    font-family: var(--ff-sans);
    font-size: var(--fs-sm);
    font-weight: var(--fw-bold);
    color: var(--kc-text-faint);
}

/* ---- Índice de temas ----
   El tamaño del enlace refleja cuántas notas tiene: se ve de un vistazo qué
   está cubriendo el medio con más peso. Los cuatro niveles los calcula la
   vista a partir del tema con más notas. */
.kc-temas {
    display: flex;
    flex-wrap: wrap;
    gap: var(--sp-3);
    list-style: none;
    margin: 0;
    padding: 0;
}
.kc-tema-link {
    display: inline-flex;
    align-items: center;
    gap: var(--sp-2);
    padding: var(--sp-2) var(--sp-4);
    min-height: 44px;                       /* objetivo táctil pleno */
    background: var(--kc-bg-alt);
    border: 1px solid var(--kc-border);
    border-radius: var(--radius-full);
    color: var(--kc-text);
    text-decoration: none;
    font-family: var(--ff-sans);
    font-weight: var(--fw-bold);
    line-height: 1.2;
}
.kc-tema-link:hover {
    background: var(--kc-primary);
    border-color: var(--kc-primary);
    color: var(--kc-white);
}
.kc-tema-link:hover .kc-tema-link__n {
    background: rgba(255, 255, 255, .22);
    color: var(--kc-white);
}
.kc-tema-link:focus-visible {
    outline: 2px solid var(--kc-primary);
    outline-offset: 2px;
}
.kc-tema-link__n {
    font-size: var(--fs-xs);
    font-weight: var(--fw-bold);
    background: var(--kc-bg-soft);
    color: var(--kc-text-muted);
    padding: 1px var(--sp-2);
    border-radius: var(--radius-full);
    font-variant-numeric: tabular-nums;
}
.kc-tema-link--1 { font-size: var(--fs-sm); }
.kc-tema-link--2 { font-size: var(--fs-base); }
.kc-tema-link--3 { font-size: var(--fs-lg); }
.kc-tema-link--4 { font-size: var(--fs-xl); }

/* ---- Etiquetas al pie del artículo ---- */
.kc-article-tags {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--sp-2);
    margin: var(--sp-6) 0 0;
    padding-top: var(--sp-5);
    border-top: 1px solid var(--kc-border);
}
.kc-article-tags__label {
    font-family: var(--ff-sans);
    font-size: var(--fs-xs);
    font-weight: var(--fw-extrabold);
    letter-spacing: var(--tracking-wider);
    text-transform: uppercase;
    color: var(--kc-text-faint);
    margin-right: var(--sp-1);
}
.kc-article-tags a {
    display: inline-flex;
    align-items: center;
    min-height: 32px;
    padding: var(--sp-1) var(--sp-3);
    background: var(--kc-bg-alt);
    border: 1px solid var(--kc-border);
    border-radius: var(--radius-full);
    color: var(--kc-text-soft);
    font-size: var(--fs-sm);
    font-weight: var(--fw-bold);
    text-decoration: none;
}
.kc-article-tags a:hover {
    background: var(--kc-primary);
    border-color: var(--kc-primary);
    color: var(--kc-white);
}
.kc-article-tags a:focus-visible {
    outline: 2px solid var(--kc-primary);
    outline-offset: 2px;
}

/* ---- Ficha de autor ---- */
.kc-autor {
    background: var(--kc-bg-alt);
    border-bottom: 1px solid var(--kc-border);
    padding: var(--sp-5) 0 var(--sp-6);
}
.kc-autor__ficha {
    display: flex;
    align-items: flex-start;
    gap: var(--sp-5);
    margin-top: var(--sp-3);
}
.kc-autor__foto {
    flex: none;
    width: 104px;
    height: 104px;
    border-radius: var(--radius-full);
    object-fit: cover;
    border: 3px solid var(--kc-white);
    box-shadow: var(--shadow);
}
.kc-autor__foto--inicial {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--kc-primary);
    color: var(--kc-white);
    font-family: var(--ff-sans);
    font-size: 42px;
    font-weight: var(--fw-extrabold);
    line-height: 1;
}
.kc-autor__datos { min-width: 0; }
.kc-autor__eyebrow {
    display: block;
    font-family: var(--ff-sans);
    font-size: var(--fs-xs);
    font-weight: var(--fw-extrabold);
    letter-spacing: var(--tracking-wider);
    text-transform: uppercase;
    color: var(--kc-primary);
}
.kc-autor__nombre {
    font-family: var(--ff-sans);
    font-size: var(--fs-3xl);
    font-weight: var(--fw-extrabold);
    line-height: var(--lh-tight);
    margin: var(--sp-1) 0 0;
    color: var(--kc-text);
}
.kc-autor__bio {
    max-width: 58ch;
    margin: var(--sp-3) 0 0;
    color: var(--kc-text-muted);
    font-size: var(--fs-md);
    line-height: var(--lh-relaxed);
}
.kc-autor__count {
    margin: var(--sp-3) 0 0;
    font-family: var(--ff-sans);
    font-size: var(--fs-sm);
    font-weight: var(--fw-bold);
    color: var(--kc-text-faint);
}

@media (max-width: 640px) {
    .kc-autor__ficha { flex-direction: column; align-items: center; text-align: center; gap: var(--sp-4); }
    .kc-autor__bio   { text-align: left; }
    .kc-autor__foto  { width: 88px; height: 88px; }
    .kc-autor__foto--inicial { font-size: 34px; }
    .kc-autor__nombre { font-size: var(--fs-2xl); }
}


/* ===== 17-banner-slider.css ===== */
/* ============================================================
   kc/17-banner-slider.css — Slider de banners promocionales

   ANIMACIÓN: slide horizontal suave (translateX con cubic-bezier)
              clásico estilo carrusel — natural, fluido, profesional
   INDICADORES: puntos circulares discretos, blancos translúcidos
                el activo más opaco y un poco más grande
   ============================================================ */

.kc-banner-slider {
    position: relative;
    overflow: hidden;
    background: var(--kc-bg-alt);
    aspect-ratio: 12 / 5;
    margin-bottom: var(--sp-8);
}

/* Track con todos los slides en fila — translateX para deslizar */
.kc-banner-slider__track {
    display: flex;
    width: 100%;
    height: 100%;
    /* cubic-bezier suave (similar a ease-out con un toque más natural) */
    transition: transform 0.65s cubic-bezier(0.4, 0.0, 0.2, 1);
    will-change: transform;
}

.kc-banner-slider__slide {
    flex: 0 0 100%;
    min-width: 0;
    height: 100%;
    position: relative;
}

.kc-banner-slider__slide a {
    display: block;
    width: 100%;
    height: 100%;
    line-height: 0;
}

.kc-banner-slider__slide picture,
.kc-banner-slider__slide img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

/* ── Nav arrows — visibles on hover ─────────────────────────── */
.kc-banner-slider__nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 44px;
    height: 44px;
    background: rgba(15, 23, 42, 0.5);
    color: var(--kc-white);
    border: 0;
    border-radius: var(--radius-full);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    font-size: 15px;
    z-index: 3;
    transition: background 0.2s ease, opacity 0.2s ease;
    opacity: 0;
    backdrop-filter: blur(4px);
}
.kc-banner-slider:hover .kc-banner-slider__nav { opacity: 1; }
.kc-banner-slider__nav:hover { background: rgba(15, 23, 42, 0.8); }
.kc-banner-slider__nav--prev { left: var(--sp-4); }
.kc-banner-slider__nav--next { right: var(--sp-4); }

/* ── Dots: puntos circulares clásicos discretos ─────────────── */
.kc-banner-slider__dots {
    position: absolute;
    bottom: var(--sp-4);
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 0;                         /* puntos pegados: 16px entre centros */
    z-index: 3;
    padding: 4px 8px;
    background: rgba(15, 23, 42, 0.35);
    border-radius: 999px;
    backdrop-filter: blur(6px);
}
/* Puntos clásicos y juntos, como en .kc-hero__dot: el botón es más alto que
   ancho para conservar área táctil sin abrir huecos; el punto visible de 8px
   se dibuja con ::before. */
.kc-banner-slider__dot {
    width: 16px;
    height: 24px;
    border-radius: var(--radius-full);
    background: transparent;
    border: 0;
    cursor: pointer;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.kc-banner-slider__dot::before {
    content: "";
    width: 8px;
    height: 8px;
    border-radius: var(--radius-full);
    background: rgba(255, 255, 255, 0.45);
    transition: background 0.25s ease, transform 0.25s ease;
}
.kc-banner-slider__dot:hover::before {
    background: rgba(255, 255, 255, 0.75);
}
.kc-banner-slider__dot.active::before {
    background: var(--kc-white);
    transform: scale(1.3);
}

/* Mobile */
@media (max-width: 640px) {
    .kc-banner-slider { aspect-ratio: 5 / 3; }
    .kc-banner-slider__nav { display: none; }
    .kc-banner-slider__dots {
        bottom: var(--sp-3);
        gap: 0;
        padding: 3px 6px;
    }
    /* Más alto para el pulgar; el ancho se queda en 16px para que no se separen */
    .kc-banner-slider__dot { width: 16px; height: 28px; }
    .kc-banner-slider__dot::before { width: 7px; height: 7px; }
}


/* ===== 18-rrss-evo.css ===== */
/* Bloque independiente de colaboración: sin afectar portada ni publicidad lateral. */
.kc-rrss-section { background: var(--kc-white); color: var(--kc-text); }
.kc-rrss-panel {
    border: 1px solid var(--kc-border);
    border-radius: var(--radius-lg);
    background: var(--kc-white);
}
.kc-rrss-section__header {
    position: relative;
    display: flex;
    align-items: center;
    gap: var(--sp-4);
    padding: calc(var(--sp-6) + 18px) var(--sp-6) var(--sp-6);
    border-bottom: 1px solid var(--kc-border);
    border-radius: var(--radius-lg) var(--radius-lg) 0 0;
    overflow: hidden;
}
.kc-rrss-section__header::before {
    content: '';
    position: absolute;
    inset: 0 0 auto;
    height: 18px;
    /* Bandera de arriba abajo: azul, verde, blanco; tres bandas completas. */
    background: linear-gradient(to bottom, var(--kc-evo-blue) 0 33.333%, var(--kc-evo-green) 33.333% 66.667%, var(--kc-white) 66.667% 100%);
    pointer-events: none;
}
.kc-rrss-section__heading { min-width: 0; }
.kc-rrss-section__logo { display: block; width: 72px; height: 72px; flex: 0 0 72px; object-fit: contain; }
.kc-rrss-section__title {
    font: var(--fw-extrabold) clamp(1.25rem, 2.2vw, 1.75rem)/1.25 var(--ff-sans);
    color: var(--kc-text);
    margin: 0 0 var(--sp-2);
    text-wrap: balance;
}
.kc-rrss-section__subtitle { font-size: var(--fs-sm); color: var(--kc-text-muted); line-height: 1.5; margin: 0; }
.kc-rrss-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--sp-5); padding: var(--sp-6); }

/* Publicaciones integradas con acceso directo siempre disponible. */
.kc-rrss-embed { min-width: 0; border: 1px solid var(--kc-border); border-radius: var(--radius-md); overflow: hidden; }
.kc-rrss-embed__head {
    display: flex;
    align-items: center;
    gap: var(--sp-2);
    min-height: 60px;
    padding: var(--sp-2) var(--sp-4);
    border-bottom: 1px solid var(--kc-border);
    font-weight: var(--fw-bold);
}
.kc-rrss-embed__head > i { font-size: 24px; color: var(--kc-social-facebook); }
.kc-rrss-embed--tt .kc-rrss-embed__head > i { color: var(--kc-text); }
.kc-rrss-embed__link {
    display: inline-flex;
    align-items: center;
    gap: var(--sp-2);
    min-height: 44px;
    margin-left: auto;
    color: var(--kc-evo-blue);
    font-size: var(--fs-sm);
    text-decoration: none;
    white-space: nowrap;
}
.kc-rrss-embed__link:hover { color: var(--kc-evo-blue); text-decoration: underline; text-underline-offset: 4px; }
.kc-rrss-embed__body { display: flex; justify-content: center; height: 500px; background: var(--kc-white); overflow: hidden; }
.kc-rrss-embed__body iframe { display: block; width: 100%; max-width: 500px; height: 500px; border: 0; }
/* Facebook repite la cabecera y su variante con historias se superpone al muro.
   Con hide_cover=true y small_header=false reserva 130px: mostramos los 500px
   del timeline bajo nuestra cabecera, sin modificar el documento externo. */
.kc-rrss-embed--fb .kc-rrss-embed__body iframe { height: 630px; margin-top: -130px; flex-shrink: 0; }
.kc-rrss-embed__body--tiktok { overflow: auto; }
.kc-rrss-embed .tiktok-embed { width: 100%; max-width: 100%; min-width: 0; margin: 0; padding: 0; border: 0; background: transparent; font-style: normal; }
.kc-rrss-embed .tiktok-embed > section { display: grid; min-height: 160px; place-items: center; }
.kc-rrss-embed .tiktok-embed iframe { max-width: 100%; }

/* Tres accesos alineados debajo de las publicaciones. */
.kc-rrss-extra { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--sp-4); }
.kc-rrss-extra__card {
    position: relative;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: var(--sp-4);
    min-width: 0;
    min-height: 104px;
    padding: var(--sp-5);
    border: 1px solid var(--kc-border);
    border-radius: var(--radius-md);
    background: var(--kc-bg-alt);
    color: var(--kc-text);
    text-decoration: none;
    box-shadow: none;
    transition: background-color 150ms ease, border-color 150ms ease;
}
.kc-rrss-extra__card:hover { background: var(--kc-white); border-color: var(--kc-evo-blue); color: var(--kc-text); }
.kc-rrss-extra__card:focus-visible,
.kc-rrss-embed__link:focus-visible { outline: 2px solid var(--kc-evo-blue); outline-offset: 3px; }
.kc-rrss-extra__icon { display: grid; place-items: center; flex: 0 0 48px; width: 48px; height: 48px; border-radius: var(--radius-md); color: var(--kc-white); font-size: 26px; }
.kc-rrss-extra__card--yt .kc-rrss-extra__icon { background: var(--kc-social-youtube); }
.kc-rrss-extra__card--ig .kc-rrss-extra__icon { background: linear-gradient(135deg, var(--kc-social-instagram-purple), var(--kc-social-instagram-pink) 60%, var(--kc-social-instagram-orange)); }
.kc-rrss-extra__card--tw .kc-rrss-extra__icon { background: var(--kc-social-twitter); }
.kc-rrss-extra__info { display: flex; flex-direction: column; min-width: 0; max-width: 100%; gap: var(--sp-1); }
.kc-rrss-extra__name { font-size: 1.125rem; font-weight: var(--fw-bold); line-height: 1.3; }
.kc-rrss-extra__handle { font-size: var(--fs-sm); color: var(--kc-text-muted); line-height: 1.4; overflow-wrap: anywhere; }
.kc-rrss-extra__arrow { margin-left: auto; flex-shrink: 0; color: var(--kc-text-muted); font-size: var(--fs-sm); }
@media (max-width: 899px) {
    .kc-rrss-layout { grid-template-columns: minmax(0, 1fr); }
    .kc-rrss-extra { grid-template-columns: minmax(0, 1fr); }
}
@media (min-width: 900px) and (max-width: 1099px) {
    .kc-rrss-extra__card { padding: var(--sp-3); gap: var(--sp-2); }
    .kc-rrss-extra__icon { flex-basis: 40px; width: 40px; height: 40px; }
    .kc-rrss-extra__handle { font-size: var(--fs-xs); }
}
@media (max-width: 640px) {
    .kc-rrss-section__header { padding: calc(var(--sp-5) + 18px) var(--sp-4) var(--sp-5); gap: var(--sp-3); }
    .kc-rrss-section__logo { width: 56px; height: 56px; flex-basis: 56px; }
    .kc-rrss-section__title { font-size: 1.125rem; }
    .kc-rrss-section__subtitle { font-size: var(--fs-xs); }
    .kc-rrss-layout { padding: var(--sp-4); gap: var(--sp-4); }
    .kc-rrss-extra { gap: var(--sp-3); }
    .kc-rrss-extra__card { padding: var(--sp-4); min-height: 96px; gap: var(--sp-3); }
    .kc-rrss-extra__icon { flex-basis: 44px; width: 44px; height: 44px; font-size: 24px; }
    .kc-rrss-extra__name { font-size: var(--fs-base); }
    .kc-rrss-extra__handle { font-size: var(--fs-xs); }
    .kc-rrss-embed__head { padding-inline: var(--sp-3); }
}


/* ===== 19-vjs-theme.css ===== */
/* ============================================================
   kc/19-vjs-theme.css — Tema video.js EN VIVO (RKC, limpio)
   Player live sin barra de progreso, acento verde corporativo.
   Sobre video.js 7 + vjs-default-skin.
   ============================================================ */

/* ── Anti-flash: el <video> crudo no muestra controles nativos
   antes de que video.js inicialice (evita el "carga feo" inicial).
   Mostramos un fondo oscuro limpio mientras tanto. ───────────── */
video.video-js {
    background-color: var(--kc-black);
}
video.video-js:not(.vjs-fluid) { width: 100%; aspect-ratio: 16 / 9; }
/* Ocultar cualquier control nativo del navegador antes del init */
video.video-js::-webkit-media-controls { display: none !important; }

/* Contenedor video.js: fondo oscuro + esquinas suaves */
.video-js {
    background-color: var(--kc-black);
    color: var(--kc-white);
    border-radius: var(--radius-sm);
    overflow: hidden;
    font-family: var(--ff-sans);
}

/* ── Barra de control: transparente con gradient (Material) ──── */
.video-js .vjs-control-bar {
    background-color: transparent;
    background-image: linear-gradient(transparent 0%, 55%, color-mix(in srgb, var(--kc-black) 82%, transparent));
    color: var(--kc-white);
    height: 3.4em;
    font-size: 15px;
    display: flex;
    align-items: center;
    padding: 0 6px;
}
.video-js .vjs-control { width: 3.2em; }

/* Para un canal EN VIVO: ocultar barra de progreso y tiempos.
   Deja la barra limpia: Play · Volumen · LIVE · [espacio] · PiP · Fullscreen */
.video-js .vjs-progress-control,
.video-js .vjs-current-time,
.video-js .vjs-duration,
.video-js .vjs-time-divider,
.video-js .vjs-remaining-time,
.video-js .vjs-playback-rate {
    display: none !important;
}

/* El indicador LIVE empuja el resto a la derecha (espaciador real) */
.video-js .vjs-live-control {
    display: flex;
    margin-right: auto;
}

/* ── Indicador LIVE con punto rojo pulsante ────────────────── */
.video-js .vjs-live-control {
    display: flex;
    align-items: center;
    font-size: 13px;
    font-weight: var(--fw-bold);
    margin-left: 4px;
}
.video-js .vjs-live-display::before {
    content: '';
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--kc-live);
    margin-right: 7px;
    vertical-align: middle;
    animation: kc-vjs-live-pulse 1.6s ease-in-out infinite;
}
@keyframes kc-vjs-live-pulse {
    0%, 100% { opacity: 1; transform: scale(1); }
    50%      { opacity: 0.4; transform: scale(0.8); }
}

/* Lima sobre la superficie oscura; Radio usa verde sobre su superficie clara. */
.video-js .vjs-slider { background-color: color-mix(in srgb, var(--kc-white) 25%, transparent); }
.video-js .vjs-volume-level { background-color: var(--kc-accent); color: var(--kc-accent); }
.video-js .vjs-slider-vertical .vjs-volume-level { width: 0.35em; }
.video-js .vjs-volume-vertical { background-color: color-mix(in srgb, var(--kc-black) 65%, transparent); }

/* ── Spinner de carga — verde ──────────────────────────────── */
.video-js .vjs-loading-spinner {
    border-color: color-mix(in srgb, var(--kc-white) 25%, transparent);
    border-top-color: var(--kc-accent);
}
.video-js .vjs-loading-spinner::before,
.video-js .vjs-loading-spinner::after { border-top-color: var(--kc-accent); }

/* ── Botones: hover verde sutil ────────────────────────────── */
.video-js .vjs-control:hover,
.video-js .vjs-control:focus-visible { color: var(--kc-accent); text-shadow: none; }

/* Quitar foco azul feo de los sliders */
.video-js .vjs-slider:focus { box-shadow: none; text-shadow: none; }

/* ── Botón "Activar sonido" (autoplay muteado → 1 click para audio) ──
   En una esquina (arriba-derecha), discreto, sin animación. */
.kc-unmute {
    position: absolute;
    top: 12px;
    right: 12px;
    z-index: 6;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    background: color-mix(in srgb, var(--kc-black) 70%, transparent);
    color: var(--kc-white);
    border: 0;
    border-radius: var(--radius-full);
    padding: 8px 14px;
    font-family: var(--ff-sans);
    font-size: 13px;
    font-weight: var(--fw-bold);
    cursor: pointer;
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    white-space: nowrap;
    transition: background 0.18s ease;
}
.kc-unmute[hidden] { display: none; }
.kc-unmute:hover { background: var(--kc-primary); }
.kc-unmute i { font-size: 14px; }
@media (max-width: 640px) {
    .kc-unmute { top: 10px; right: 10px; padding: 7px 12px; font-size: 12px; }
}


/* ===== 20-icons.css ===== */
/* ============================================================
   20-icons.css — Iconos locales (generado, no editar a mano)
   ============================================================
   Sustituye a FontAwesome desde CDN en el SITIO PUBLICO y en el PANEL.
   Cubre los iconos que ambos usan de verdad; el paquete completo trae 2.020.

   COMO FUNCIONA
   El marcado NO cambia: <i class="fas fa-play"> sigue igual en las plantillas.
   Cada icono se dibuja como una mascara SVG rellenada con currentColor, asi que
   hereda color y tamano exactamente como lo hacia la fuente.

   Si anades un icono nuevo en una plantilla, hay que regenerar este archivo.
   Ver panel/bin/regenerar_iconos.md

   Iconos: FontAwesome Free 6.4.0 — CC BY 4.0 (fontawesome.com/license/free)
   ============================================================ */

/* Base compartida por todos los prefijos */
.fa, .fas, .far, .fal, .fab, .fa-solid, .fa-regular, .fa-brands {
    display: inline-block;
    width: 1em;
    height: 1em;
    vertical-align: -0.125em;
    line-height: 1;
    font-style: normal;
}
.fa::before, .fas::before, .far::before, .fal::before, .fab::before,
.fa-solid::before, .fa-regular::before, .fa-brands::before {
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    background-color: currentColor;
    -webkit-mask-image: var(--kc-i);
            mask-image: var(--kc-i);
    -webkit-mask-repeat: no-repeat;
            mask-repeat: no-repeat;
    -webkit-mask-position: center;
            mask-position: center;
    -webkit-mask-size: contain;
            mask-size: contain;
}

/* Utilidades de FontAwesome que se usan */
.fa-spin { animation: kc-fa-spin 2s linear infinite; }
@keyframes kc-fa-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .fa-spin { animation: none; } }
.fa-fw { width: 1.25em; }

/* ---- Iconos ---- */
.fa-facebook::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M504 256C504 119 393 8 256 8S8 119 8 256c0 123.78 90.69 226.38 209.25 245V327.69h-63V256h63v-54.64c0-62.15 37-96.48 93.67-96.48 27.14 0 55.52 4.84 55.52 4.84v61h-31.28c-30.8 0-40.41 19.12-40.41 38.73V256h68.78l-11 71.69h-57.78V501C413.31 482.38 504 379.78 504 256z'/%3E%3C/svg%3E")}
.fa-facebook-f::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 512'%3E%3Cpath d='M279.14 288l14.22-92.66h-88.91v-60.13c0-25.35 12.42-50.06 52.24-50.06h40.42V6.26S260.43 0 225.36 0c-73.22 0-121.08 44.38-121.08 124.72v70.62H22.89V288h81.39v224h100.17V288z'/%3E%3C/svg%3E")}
.fa-instagram::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z'/%3E%3C/svg%3E")}
.fa-telegram::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 496 512'%3E%3Cpath d='M248,8C111.033,8,0,119.033,0,256S111.033,504,248,504,496,392.967,496,256,384.967,8,248,8ZM362.952,176.66c-3.732,39.215-19.881,134.378-28.1,178.3-3.476,18.584-10.322,24.816-16.948,25.425-14.4,1.326-25.338-9.517-39.287-18.661-21.827-14.308-34.158-23.215-55.346-37.177-24.485-16.135-8.612-25,5.342-39.5,3.652-3.793,67.107-61.51,68.335-66.746.153-.655.3-3.1-1.154-4.384s-3.59-.849-5.135-.5q-3.283.746-104.608,69.142-14.845,10.194-26.894,9.934c-8.855-.191-25.888-5.006-38.551-9.123-15.531-5.048-27.875-7.717-26.8-16.291q.84-6.7,18.45-13.7,108.446-47.248,144.628-62.3c68.872-28.647,83.183-33.623,92.511-33.789,2.052-.034,6.639.474,9.61,2.885a10.452,10.452,0,0,1,3.53,6.716A43.765,43.765,0,0,1,362.952,176.66Z'/%3E%3C/svg%3E")}
.fa-tiktok::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M448,209.91a210.06,210.06,0,0,1-122.77-39.25V349.38A162.55,162.55,0,1,1,185,188.31V278.2a74.62,74.62,0,1,0,52.23,71.18V0l88,0a121.18,121.18,0,0,0,1.86,22.17h0A122.18,122.18,0,0,0,381,102.39a121.43,121.43,0,0,0,67,20.14Z'/%3E%3C/svg%3E")}
.fa-twitter::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z'/%3E%3C/svg%3E")}
.fa-whatsapp::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M380.9 97.1C339 55.1 283.2 32 223.9 32c-122.4 0-222 99.6-222 222 0 39.1 10.2 77.3 29.6 111L0 480l117.7-30.9c32.4 17.7 68.9 27 106.1 27h.1c122.3 0 224.1-99.6 224.1-222 0-59.3-25.2-115-67.1-157zm-157 341.6c-33.2 0-65.7-8.9-94-25.7l-6.7-4-69.8 18.3L72 359.2l-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2 0-101.7 82.8-184.5 184.6-184.5 49.3 0 95.6 19.2 130.4 54.1 34.8 34.9 56.2 81.2 56.1 130.5 0 101.8-84.9 184.6-186.6 184.6zm101.2-138.2c-5.5-2.8-32.8-16.2-37.9-18-5.1-1.9-8.8-2.8-12.5 2.8-3.7 5.6-14.3 18-17.6 21.8-3.2 3.7-6.5 4.2-12 1.4-32.6-16.3-54-29.1-75.5-66-5.7-9.8 5.7-9.1 16.3-30.3 1.8-3.7.9-6.9-.5-9.7-1.4-2.8-12.5-30.1-17.1-41.2-4.5-10.8-9.1-9.3-12.5-9.5-3.2-.2-6.9-.2-10.6-.2-3.7 0-9.7 1.4-14.8 6.9-5.1 5.6-19.4 19-19.4 46.3 0 27.3 19.9 53.7 22.6 57.4 2.8 3.7 39.1 59.7 94.8 83.8 35.2 15.2 49 16.5 66.6 13.9 10.7-1.6 32.8-13.4 37.4-26.4 4.6-13 4.6-24.1 3.2-26.4-1.3-2.5-5-3.9-10.5-6.6z'/%3E%3C/svg%3E")}
.fa-youtube::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'%3E%3Cpath d='M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z'/%3E%3C/svg%3E")}
.far.fa-calendar::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M152 24c0-13.3-10.7-24-24-24s-24 10.7-24 24V64H64C28.7 64 0 92.7 0 128v16 48V448c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V192 144 128c0-35.3-28.7-64-64-64H344V24c0-13.3-10.7-24-24-24s-24 10.7-24 24V64H152V24zM48 192H400V448c0 8.8-7.2 16-16 16H64c-8.8 0-16-7.2-16-16V192z'/%3E%3C/svg%3E")}
.fas.fa-calendar::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M96 32V64H48C21.5 64 0 85.5 0 112v48H448V112c0-26.5-21.5-48-48-48H352V32c0-17.7-14.3-32-32-32s-32 14.3-32 32V64H160V32c0-17.7-14.3-32-32-32S96 14.3 96 32zM448 192H0V464c0 26.5 21.5 48 48 48H400c26.5 0 48-21.5 48-48V192z'/%3E%3C/svg%3E")}
.far.fa-calendar-alt::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M152 24c0-13.3-10.7-24-24-24s-24 10.7-24 24V64H64C28.7 64 0 92.7 0 128v16 48V448c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V192 144 128c0-35.3-28.7-64-64-64H344V24c0-13.3-10.7-24-24-24s-24 10.7-24 24V64H152V24zM48 192h80v56H48V192zm0 104h80v64H48V296zm128 0h96v64H176V296zm144 0h80v64H320V296zm80-48H320V192h80v56zm0 160v40c0 8.8-7.2 16-16 16H320V408h80zm-128 0v56H176V408h96zm-144 0v56H64c-8.8 0-16-7.2-16-16V408h80zM272 248H176V192h96v56z'/%3E%3C/svg%3E")}
.fas.fa-calendar-alt::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M128 0c17.7 0 32 14.3 32 32V64H288V32c0-17.7 14.3-32 32-32s32 14.3 32 32V64h48c26.5 0 48 21.5 48 48v48H0V112C0 85.5 21.5 64 48 64H96V32c0-17.7 14.3-32 32-32zM0 192H448V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V192zm64 80v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16zm128 0v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H208c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H336zM64 400v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V400c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V400c0-8.8-7.2-16-16-16H208zm112 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V400c0-8.8-7.2-16-16-16H336c-8.8 0-16 7.2-16 16z'/%3E%3C/svg%3E")}
.far.fa-calendar-plus::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M184 24c0-13.3-10.7-24-24-24s-24 10.7-24 24V64H96c-35.3 0-64 28.7-64 64v16 48V448c0 35.3 28.7 64 64 64H416c35.3 0 64-28.7 64-64V192 144 128c0-35.3-28.7-64-64-64H376V24c0-13.3-10.7-24-24-24s-24 10.7-24 24V64H184V24zM80 192H432V448c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V192zm176 40c-13.3 0-24 10.7-24 24v48H184c-13.3 0-24 10.7-24 24s10.7 24 24 24h48v48c0 13.3 10.7 24 24 24s24-10.7 24-24V352h48c13.3 0 24-10.7 24-24s-10.7-24-24-24H280V256c0-13.3-10.7-24-24-24z'/%3E%3C/svg%3E")}
.fas.fa-calendar-plus::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M128 32V64H80c-26.5 0-48 21.5-48 48v48H480V112c0-26.5-21.5-48-48-48H384V32c0-17.7-14.3-32-32-32s-32 14.3-32 32V64H192V32c0-17.7-14.3-32-32-32s-32 14.3-32 32zM480 192H32V464c0 26.5 21.5 48 48 48H432c26.5 0 48-21.5 48-48V192zM256 248c13.3 0 24 10.7 24 24v56h56c13.3 0 24 10.7 24 24s-10.7 24-24 24H280v56c0 13.3-10.7 24-24 24s-24-10.7-24-24V376H176c-13.3 0-24-10.7-24-24s10.7-24 24-24h56V272c0-13.3 10.7-24 24-24z'/%3E%3C/svg%3E")}
.far.fa-clock::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM232 120V256c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2V120c0-13.3-10.7-24-24-24s-24 10.7-24 24z'/%3E%3C/svg%3E")}
.fas.fa-clock::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M256 0a256 256 0 1 1 0 512A256 256 0 1 1 256 0zM232 120V256c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2V120c0-13.3-10.7-24-24-24s-24 10.7-24 24z'/%3E%3C/svg%3E")}
.far.fa-eye::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'%3E%3Cpath d='M288 80c-65.2 0-118.8 29.6-159.9 67.7C89.6 183.5 63 226 49.4 256c13.6 30 40.2 72.5 78.6 108.3C169.2 402.4 222.8 432 288 432s118.8-29.6 159.9-67.7C486.4 328.5 513 286 526.6 256c-13.6-30-40.2-72.5-78.6-108.3C406.8 109.6 353.2 80 288 80zM95.4 112.6C142.5 68.8 207.2 32 288 32s145.5 36.8 192.6 80.6c46.8 43.5 78.1 95.4 93 131.1c3.3 7.9 3.3 16.7 0 24.6c-14.9 35.7-46.2 87.7-93 131.1C433.5 443.2 368.8 480 288 480s-145.5-36.8-192.6-80.6C48.6 356 17.3 304 2.5 268.3c-3.3-7.9-3.3-16.7 0-24.6C17.3 208 48.6 156 95.4 112.6zM288 336c44.2 0 80-35.8 80-80s-35.8-80-80-80c-.7 0-1.3 0-2 0c1.3 5.1 2 10.5 2 16c0 35.3-28.7 64-64 64c-5.5 0-10.9-.7-16-2c0 .7 0 1.3 0 2c0 44.2 35.8 80 80 80zm0-208a128 128 0 1 1 0 256 128 128 0 1 1 0-256z'/%3E%3C/svg%3E")}
.fas.fa-eye::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'%3E%3Cpath d='M288 32c-80.8 0-145.5 36.8-192.6 80.6C48.6 156 17.3 208 2.5 243.7c-3.3 7.9-3.3 16.7 0 24.6C17.3 304 48.6 356 95.4 399.4C142.5 443.2 207.2 480 288 480s145.5-36.8 192.6-80.6c46.8-43.5 78.1-95.4 93-131.1c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C433.5 68.8 368.8 32 288 32zM144 256a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm144-64c0 35.3-28.7 64-64 64c-7.1 0-13.9-1.2-20.3-3.3c-5.5-1.8-11.9 1.6-11.7 7.4c.3 6.9 1.3 13.8 3.2 20.7c13.7 51.2 66.4 81.6 117.6 67.9s81.6-66.4 67.9-117.6c-11.1-41.5-47.8-69.4-88.6-71.1c-5.8-.2-9.2 6.1-7.4 11.7c2.1 6.4 3.3 13.2 3.3 20.3z'/%3E%3C/svg%3E")}
.far.fa-star::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'%3E%3Cpath d='M287.9 0c9.2 0 17.6 5.2 21.6 13.5l68.6 141.3 153.2 22.6c9 1.3 16.5 7.6 19.3 16.3s.5 18.1-5.9 24.5L433.6 328.4l26.2 155.6c1.5 9-2.2 18.1-9.6 23.5s-17.3 6-25.3 1.7l-137-73.2L151 509.1c-8.1 4.3-17.9 3.7-25.3-1.7s-11.2-14.5-9.7-23.5l26.2-155.6L31.1 218.2c-6.5-6.4-8.7-15.9-5.9-24.5s10.3-14.9 19.3-16.3l153.2-22.6L266.3 13.5C270.4 5.2 278.7 0 287.9 0zm0 79L235.4 187.2c-3.5 7.1-10.2 12.1-18.1 13.3L99 217.9 184.9 303c5.5 5.5 8.1 13.3 6.8 21L171.4 443.7l105.2-56.2c7.1-3.8 15.6-3.8 22.6 0l105.2 56.2L384.2 324.1c-1.3-7.7 1.2-15.5 6.8-21l85.9-85.1L358.6 200.5c-7.8-1.2-14.6-6.1-18.1-13.3L287.9 79z'/%3E%3C/svg%3E")}
.fas.fa-star::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'%3E%3Cpath d='M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z'/%3E%3C/svg%3E")}
.fa-ad::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'%3E%3Cpath d='M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM229.5 173.3l72 144c5.9 11.9 1.1 26.3-10.7 32.2s-26.3 1.1-32.2-10.7L253.2 328H162.8l-5.4 10.7c-5.9 11.9-20.3 16.7-32.2 10.7s-16.7-20.3-10.7-32.2l72-144c4.1-8.1 12.4-13.3 21.5-13.3s17.4 5.1 21.5 13.3zM208 237.7L186.8 280h42.3L208 237.7zM392 256a24 24 0 1 0 0 48 24 24 0 1 0 0-48zm24-43.9V184c0-13.3 10.7-24 24-24s24 10.7 24 24v96 48c0 13.3-10.7 24-24 24c-6.6 0-12.6-2.7-17-7c-9.4 4.5-19.9 7-31 7c-39.8 0-72-32.2-72-72s32.2-72 72-72c8.4 0 16.5 1.4 24 4.1z'/%3E%3C/svg%3E")}
.fa-address-book::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M96 0C60.7 0 32 28.7 32 64V448c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H96zM208 288h64c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16H144c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80zm-32-96a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM512 80c0-8.8-7.2-16-16-16s-16 7.2-16 16v64c0 8.8 7.2 16 16 16s16-7.2 16-16V80zM496 192c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16s16-7.2 16-16V208c0-8.8-7.2-16-16-16zm16 144c0-8.8-7.2-16-16-16s-16 7.2-16 16v64c0 8.8 7.2 16 16 16s16-7.2 16-16V336z'/%3E%3C/svg%3E")}
.fa-align-left::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M288 64c0 17.7-14.3 32-32 32H32C14.3 96 0 81.7 0 64S14.3 32 32 32H256c17.7 0 32 14.3 32 32zm0 256c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H256c17.7 0 32 14.3 32 32zM0 192c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM448 448c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32z'/%3E%3C/svg%3E")}
.fa-archive::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M32 32H480c17.7 0 32 14.3 32 32V96c0 17.7-14.3 32-32 32H32C14.3 128 0 113.7 0 96V64C0 46.3 14.3 32 32 32zm0 128H480V416c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V160zm128 80c0 8.8 7.2 16 16 16H336c8.8 0 16-7.2 16-16s-7.2-16-16-16H176c-8.8 0-16 7.2-16 16z'/%3E%3C/svg%3E")}
.fa-arrow-down::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'%3E%3Cpath d='M169.4 470.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 370.8 224 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 306.7L54.6 265.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z'/%3E%3C/svg%3E")}
.fa-arrow-left::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.2 288 416 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-306.7 0L214.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160z'/%3E%3C/svg%3E")}
.fa-arrow-right::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M438.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L338.8 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l306.7 0L233.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160z'/%3E%3C/svg%3E")}
.fa-arrow-up::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'%3E%3Cpath d='M214.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 141.2V448c0 17.7 14.3 32 32 32s32-14.3 32-32V141.2L329.4 246.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160z'/%3E%3C/svg%3E")}
.fa-ban::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M367.2 412.5L99.5 144.8C77.1 176.1 64 214.5 64 256c0 106 86 192 192 192c41.5 0 79.9-13.1 111.2-35.5zm45.3-45.3C434.9 335.9 448 297.5 448 256c0-106-86-192-192-192c-41.5 0-79.9 13.1-111.2 35.5L412.5 367.2zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256z'/%3E%3C/svg%3E")}
.fa-bars::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M0 96C0 78.3 14.3 64 32 64H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 128 0 113.7 0 96zM0 256c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM448 416c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32z'/%3E%3C/svg%3E")}
.fa-bolt::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M349.4 44.6c5.9-13.7 1.5-29.7-10.6-38.5s-28.6-8-39.9 1.8l-256 224c-10 8.8-13.6 22.9-8.9 35.3S50.7 288 64 288H175.5L98.6 467.4c-5.9 13.7-1.5 29.7 10.6 38.5s28.6 8 39.9-1.8l256-224c10-8.8 13.6-22.9 8.9-35.3s-16.6-20.7-30-20.7H272.5L349.4 44.6z'/%3E%3C/svg%3E")}
.fa-boxes-stacked::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'%3E%3Cpath d='M248 0H208c-26.5 0-48 21.5-48 48V160c0 35.3 28.7 64 64 64H352c35.3 0 64-28.7 64-64V48c0-26.5-21.5-48-48-48H328V80c0 8.8-7.2 16-16 16H264c-8.8 0-16-7.2-16-16V0zM64 256c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H224c35.3 0 64-28.7 64-64V320c0-35.3-28.7-64-64-64H184v80c0 8.8-7.2 16-16 16H120c-8.8 0-16-7.2-16-16V256H64zM352 512H512c35.3 0 64-28.7 64-64V320c0-35.3-28.7-64-64-64H472v80c0 8.8-7.2 16-16 16H408c-8.8 0-16-7.2-16-16V256H352c-15 0-28.8 5.1-39.7 13.8c4.9 10.4 7.7 22 7.7 34.2V464c0 12.2-2.8 23.8-7.7 34.2C323.2 506.9 337 512 352 512z'/%3E%3C/svg%3E")}
.fa-broadcast-tower::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'%3E%3Cpath d='M80.3 44C69.8 69.9 64 98.2 64 128s5.8 58.1 16.3 84c6.6 16.4-1.3 35-17.7 41.7s-35-1.3-41.7-17.7C7.4 202.6 0 166.1 0 128S7.4 53.4 20.9 20C27.6 3.6 46.2-4.3 62.6 2.3S86.9 27.6 80.3 44zM555.1 20C568.6 53.4 576 89.9 576 128s-7.4 74.6-20.9 108c-6.6 16.4-25.3 24.3-41.7 17.7S489.1 228.4 495.7 212c10.5-25.9 16.3-54.2 16.3-84s-5.8-58.1-16.3-84C489.1 27.6 497 9 513.4 2.3s35 1.3 41.7 17.7zM352 128c0 23.7-12.9 44.4-32 55.4V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V183.4c-19.1-11.1-32-31.7-32-55.4c0-35.3 28.7-64 64-64s64 28.7 64 64zM170.6 76.8C163.8 92.4 160 109.7 160 128s3.8 35.6 10.6 51.2c7.1 16.2-.3 35.1-16.5 42.1s-35.1-.3-42.1-16.5c-10.3-23.6-16-49.6-16-76.8s5.7-53.2 16-76.8c7.1-16.2 25.9-23.6 42.1-16.5s23.6 25.9 16.5 42.1zM464 51.2c10.3 23.6 16 49.6 16 76.8s-5.7 53.2-16 76.8c-7.1 16.2-25.9 23.6-42.1 16.5s-23.6-25.9-16.5-42.1c6.8-15.6 10.6-32.9 10.6-51.2s-3.8-35.6-10.6-51.2c-7.1-16.2 .3-35.1 16.5-42.1s35.1 .3 42.1 16.5z'/%3E%3C/svg%3E")}
.fa-calendar-day::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M128 0c17.7 0 32 14.3 32 32V64H288V32c0-17.7 14.3-32 32-32s32 14.3 32 32V64h48c26.5 0 48 21.5 48 48v48H0V112C0 85.5 21.5 64 48 64H96V32c0-17.7 14.3-32 32-32zM0 192H448V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V192zm80 64c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H80z'/%3E%3C/svg%3E")}
.fa-calendar-times::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M160 0c17.7 0 32 14.3 32 32V64H320V32c0-17.7 14.3-32 32-32s32 14.3 32 32V64h48c26.5 0 48 21.5 48 48v48H32V112c0-26.5 21.5-48 48-48h48V32c0-17.7 14.3-32 32-32zM32 192H480V464c0 26.5-21.5 48-48 48H80c-26.5 0-48-21.5-48-48V192zM337 305c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-47 47-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l47 47-47 47c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l47-47 47 47c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-47-47 47-47z'/%3E%3C/svg%3E")}
.fa-chart-column::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M32 32c17.7 0 32 14.3 32 32V400c0 8.8 7.2 16 16 16H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H80c-44.2 0-80-35.8-80-80V64C0 46.3 14.3 32 32 32zM160 224c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V256c0-17.7 14.3-32 32-32zm128-64V320c0 17.7-14.3 32-32 32s-32-14.3-32-32V160c0-17.7 14.3-32 32-32s32 14.3 32 32zm64 32c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V224c0-17.7 14.3-32 32-32zM480 96V320c0 17.7-14.3 32-32 32s-32-14.3-32-32V96c0-17.7 14.3-32 32-32s32 14.3 32 32z'/%3E%3C/svg%3E")}
.fa-chart-line::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64V400c0 44.2 35.8 80 80 80H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H80c-8.8 0-16-7.2-16-16V64zm406.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L320 210.7l-57.4-57.4c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L240 221.3l57.4 57.4c12.5 12.5 32.8 12.5 45.3 0l128-128z'/%3E%3C/svg%3E")}
.fa-chart-pie::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'%3E%3Cpath d='M304 240V16.6c0-9 7-16.6 16-16.6C443.7 0 544 100.3 544 224c0 9-7.6 16-16.6 16H304zM32 272C32 150.7 122.1 50.3 239 34.3c9.2-1.3 17 6.1 17 15.4V288L412.5 444.5c6.7 6.7 6.2 17.7-1.5 23.1C371.8 495.6 323.8 512 272 512C139.5 512 32 404.6 32 272zm526.4 16c9.3 0 16.6 7.8 15.4 17c-7.7 55.9-34.6 105.6-73.9 142.3c-6 5.6-15.4 5.2-21.2-.7L320 288H558.4z'/%3E%3C/svg%3E")}
.fa-check::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M438.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 338.7 393.4 105.4c12.5-12.5 32.8-12.5 45.3 0z'/%3E%3C/svg%3E")}
.fa-check-circle::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM369 209L241 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L335 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z'/%3E%3C/svg%3E")}
.fa-chevron-down::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M233.4 406.6c12.5 12.5 32.8 12.5 45.3 0l192-192c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L256 338.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l192 192z'/%3E%3C/svg%3E")}
.fa-chevron-left::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 512'%3E%3Cpath d='M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l192 192c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256 246.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-192 192z'/%3E%3C/svg%3E")}
.fa-chevron-right::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 512'%3E%3Cpath d='M310.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 256 73.4 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192z'/%3E%3C/svg%3E")}
.fa-circle::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512z'/%3E%3C/svg%3E")}
.fa-circle-info::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM216 336h24V272H216c-13.3 0-24-10.7-24-24s10.7-24 24-24h48c13.3 0 24 10.7 24 24v88h8c13.3 0 24 10.7 24 24s-10.7 24-24 24H216c-13.3 0-24-10.7-24-24s10.7-24 24-24zm40-208a32 32 0 1 1 0 64 32 32 0 1 1 0-64z'/%3E%3C/svg%3E")}
.fa-circle-question::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM169.8 165.3c7.9-22.3 29.1-37.3 52.8-37.3h58.3c34.9 0 63.1 28.3 63.1 63.1c0 22.6-12.1 43.5-31.7 54.8L280 264.4c-.2 13-10.9 23.6-24 23.6c-13.3 0-24-10.7-24-24V250.5c0-8.6 4.6-16.5 12.1-20.8l44.3-25.4c4.7-2.7 7.6-7.7 7.6-13.1c0-8.4-6.8-15.1-15.1-15.1H222.6c-3.4 0-6.4 2.1-7.5 5.3l-.4 1.2c-4.4 12.5-18.2 19-30.6 14.6s-19-18.2-14.6-30.6l.4-1.2zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z'/%3E%3C/svg%3E")}
.fa-clock-rotate-left::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M75 75L41 41C25.9 25.9 0 36.6 0 57.9V168c0 13.3 10.7 24 24 24H134.1c21.4 0 32.1-25.9 17-41l-30.8-30.8C155 85.5 203 64 256 64c106 0 192 86 192 192s-86 192-192 192c-40.8 0-78.6-12.7-109.7-34.4c-14.5-10.1-34.4-6.6-44.6 7.9s-6.6 34.4 7.9 44.6C151.2 495 201.7 512 256 512c141.4 0 256-114.6 256-256S397.4 0 256 0C185.3 0 121.3 28.7 75 75zm181 53c-13.3 0-24 10.7-24 24V256c0 6.4 2.5 12.5 7 17l72 72c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-65-65V152c0-13.3-10.7-24-24-24z'/%3E%3C/svg%3E")}
.fa-cloud-upload-alt::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 512'%3E%3Cpath d='M144 480C64.5 480 0 415.5 0 336c0-62.8 40.2-116.2 96.2-135.9c-.1-2.7-.2-5.4-.2-8.1c0-88.4 71.6-160 160-160c59.3 0 111 32.2 138.7 80.2C409.9 102 428.3 96 448 96c53 0 96 43 96 96c0 12.2-2.3 23.8-6.4 34.6C596 238.4 640 290.1 640 352c0 70.7-57.3 128-128 128H144zm79-217c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l39-39V392c0 13.3 10.7 24 24 24s24-10.7 24-24V257.9l39 39c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-80-80c-9.4-9.4-24.6-9.4-33.9 0l-80 80z'/%3E%3C/svg%3E")}
.fa-cog::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M495.9 166.6c3.2 8.7 .5 18.4-6.4 24.6l-43.3 39.4c1.1 8.3 1.7 16.8 1.7 25.4s-.6 17.1-1.7 25.4l43.3 39.4c6.9 6.2 9.6 15.9 6.4 24.6c-4.4 11.9-9.7 23.3-15.8 34.3l-4.7 8.1c-6.6 11-14 21.4-22.1 31.2c-5.9 7.2-15.7 9.6-24.5 6.8l-55.7-17.7c-13.4 10.3-28.2 18.9-44 25.4l-12.5 57.1c-2 9.1-9 16.3-18.2 17.8c-13.8 2.3-28 3.5-42.5 3.5s-28.7-1.2-42.5-3.5c-9.2-1.5-16.2-8.7-18.2-17.8l-12.5-57.1c-15.8-6.5-30.6-15.1-44-25.4L83.1 425.9c-8.8 2.8-18.6 .3-24.5-6.8c-8.1-9.8-15.5-20.2-22.1-31.2l-4.7-8.1c-6.1-11-11.4-22.4-15.8-34.3c-3.2-8.7-.5-18.4 6.4-24.6l43.3-39.4C64.6 273.1 64 264.6 64 256s.6-17.1 1.7-25.4L22.4 191.2c-6.9-6.2-9.6-15.9-6.4-24.6c4.4-11.9 9.7-23.3 15.8-34.3l4.7-8.1c6.6-11 14-21.4 22.1-31.2c5.9-7.2 15.7-9.6 24.5-6.8l55.7 17.7c13.4-10.3 28.2-18.9 44-25.4l12.5-57.1c2-9.1 9-16.3 18.2-17.8C227.3 1.2 241.5 0 256 0s28.7 1.2 42.5 3.5c9.2 1.5 16.2 8.7 18.2 17.8l12.5 57.1c15.8 6.5 30.6 15.1 44 25.4l55.7-17.7c8.8-2.8 18.6-.3 24.5 6.8c8.1 9.8 15.5 20.2 22.1 31.2l4.7 8.1c6.1 11 11.4 22.4 15.8 34.3zM256 336a80 80 0 1 0 0-160 80 80 0 1 0 0 160z'/%3E%3C/svg%3E")}
.fa-cogs::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 512'%3E%3Cpath d='M308.5 135.3c7.1-6.3 9.9-16.2 6.2-25c-2.3-5.3-4.8-10.5-7.6-15.5L304 89.4c-3-5-6.3-9.9-9.8-14.6c-5.7-7.6-15.7-10.1-24.7-7.1l-28.2 9.3c-10.7-8.8-23-16-36.2-20.9L199 27.1c-1.9-9.3-9.1-16.7-18.5-17.8C173.9 8.4 167.2 8 160.4 8h-.7c-6.8 0-13.5 .4-20.1 1.2c-9.4 1.1-16.6 8.6-18.5 17.8L115 56.1c-13.3 5-25.5 12.1-36.2 20.9L50.5 67.8c-9-3-19-.5-24.7 7.1c-3.5 4.7-6.8 9.6-9.9 14.6l-3 5.3c-2.8 5-5.3 10.2-7.6 15.6c-3.7 8.7-.9 18.6 6.2 25l22.2 19.8C32.6 161.9 32 168.9 32 176s.6 14.1 1.7 20.9L11.5 216.7c-7.1 6.3-9.9 16.2-6.2 25c2.3 5.3 4.8 10.5 7.6 15.6l3 5.2c3 5.1 6.3 9.9 9.9 14.6c5.7 7.6 15.7 10.1 24.7 7.1l28.2-9.3c10.7 8.8 23 16 36.2 20.9l6.1 29.1c1.9 9.3 9.1 16.7 18.5 17.8c6.7 .8 13.5 1.2 20.4 1.2s13.7-.4 20.4-1.2c9.4-1.1 16.6-8.6 18.5-17.8l6.1-29.1c13.3-5 25.5-12.1 36.2-20.9l28.2 9.3c9 3 19 .5 24.7-7.1c3.5-4.7 6.8-9.5 9.8-14.6l3.1-5.4c2.8-5 5.3-10.2 7.6-15.5c3.7-8.7 .9-18.6-6.2-25l-22.2-19.8c1.1-6.8 1.7-13.8 1.7-20.9s-.6-14.1-1.7-20.9l22.2-19.8zM112 176a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM504.7 500.5c6.3 7.1 16.2 9.9 25 6.2c5.3-2.3 10.5-4.8 15.5-7.6l5.4-3.1c5-3 9.9-6.3 14.6-9.8c7.6-5.7 10.1-15.7 7.1-24.7l-9.3-28.2c8.8-10.7 16-23 20.9-36.2l29.1-6.1c9.3-1.9 16.7-9.1 17.8-18.5c.8-6.7 1.2-13.5 1.2-20.4s-.4-13.7-1.2-20.4c-1.1-9.4-8.6-16.6-17.8-18.5L583.9 307c-5-13.3-12.1-25.5-20.9-36.2l9.3-28.2c3-9 .5-19-7.1-24.7c-4.7-3.5-9.6-6.8-14.6-9.9l-5.3-3c-5-2.8-10.2-5.3-15.6-7.6c-8.7-3.7-18.6-.9-25 6.2l-19.8 22.2c-6.8-1.1-13.8-1.7-20.9-1.7s-14.1 .6-20.9 1.7l-19.8-22.2c-6.3-7.1-16.2-9.9-25-6.2c-5.3 2.3-10.5 4.8-15.6 7.6l-5.2 3c-5.1 3-9.9 6.3-14.6 9.9c-7.6 5.7-10.1 15.7-7.1 24.7l9.3 28.2c-8.8 10.7-16 23-20.9 36.2L315.1 313c-9.3 1.9-16.7 9.1-17.8 18.5c-.8 6.7-1.2 13.5-1.2 20.4s.4 13.7 1.2 20.4c1.1 9.4 8.6 16.6 17.8 18.5l29.1 6.1c5 13.3 12.1 25.5 20.9 36.2l-9.3 28.2c-3 9-.5 19 7.1 24.7c4.7 3.5 9.5 6.8 14.6 9.8l5.4 3.1c5 2.8 10.2 5.3 15.5 7.6c8.7 3.7 18.6 .9 25-6.2l19.8-22.2c6.8 1.1 13.8 1.7 20.9 1.7s14.1-.6 20.9-1.7l19.8 22.2zM464 304a48 48 0 1 1 0 96 48 48 0 1 1 0-96z'/%3E%3C/svg%3E")}
.fa-columns::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M0 96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zm64 64V416H224V160H64zm384 0H288V416H448V160z'/%3E%3C/svg%3E")}
.fa-compass::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm50.7-186.9L162.4 380.6c-19.4 7.5-38.5-11.6-31-31l55.5-144.3c3.3-8.5 9.9-15.1 18.4-18.4l144.3-55.5c19.4-7.5 38.5 11.6 31 31L325.1 306.7c-3.2 8.5-9.9 15.1-18.4 18.4zM288 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z'/%3E%3C/svg%3E")}
.fa-copy::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M272 0H396.1c12.7 0 24.9 5.1 33.9 14.1l67.9 67.9c9 9 14.1 21.2 14.1 33.9V336c0 26.5-21.5 48-48 48H272c-26.5 0-48-21.5-48-48V48c0-26.5 21.5-48 48-48zM48 128H192v64H64V448H256V416h64v48c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48z'/%3E%3C/svg%3E")}
.fa-database::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M448 80v48c0 44.2-100.3 80-224 80S0 172.2 0 128V80C0 35.8 100.3 0 224 0S448 35.8 448 80zM393.2 214.7c20.8-7.4 39.9-16.9 54.8-28.6V288c0 44.2-100.3 80-224 80S0 332.2 0 288V186.1c14.9 11.8 34 21.2 54.8 28.6C99.7 230.7 159.5 240 224 240s124.3-9.3 169.2-25.3zM0 346.1c14.9 11.8 34 21.2 54.8 28.6C99.7 390.7 159.5 400 224 400s124.3-9.3 169.2-25.3c20.8-7.4 39.9-16.9 54.8-28.6V432c0 44.2-100.3 80-224 80S0 476.2 0 432V346.1z'/%3E%3C/svg%3E")}
.fa-edit::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M471.6 21.7c-21.9-21.9-57.3-21.9-79.2 0L362.3 51.7l97.9 97.9 30.1-30.1c21.9-21.9 21.9-57.3 0-79.2L471.6 21.7zm-299.2 220c-6.1 6.1-10.8 13.6-13.5 21.9l-29.6 88.8c-2.9 8.6-.6 18.1 5.8 24.6s15.9 8.7 24.6 5.8l88.8-29.6c8.2-2.7 15.7-7.4 21.9-13.5L437.7 172.3 339.7 74.3 172.4 241.7zM96 64C43 64 0 107 0 160V416c0 53 43 96 96 96H352c53 0 96-43 96-96V320c0-17.7-14.3-32-32-32s-32 14.3-32 32v96c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H96z'/%3E%3C/svg%3E")}
.fa-envelope::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M48 64C21.5 64 0 85.5 0 112c0 15.1 7.1 29.3 19.2 38.4L236.8 313.6c11.4 8.5 27 8.5 38.4 0L492.8 150.4c12.1-9.1 19.2-23.3 19.2-38.4c0-26.5-21.5-48-48-48H48zM0 176V384c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V176L294.4 339.2c-22.8 17.1-54 17.1-76.8 0L0 176z'/%3E%3C/svg%3E")}
.fa-exclamation-circle::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm0-384c13.3 0 24 10.7 24 24V264c0 13.3-10.7 24-24 24s-24-10.7-24-24V152c0-13.3 10.7-24 24-24zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z'/%3E%3C/svg%3E")}
.fa-exclamation-triangle::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M256 32c14.2 0 27.3 7.5 34.5 19.8l216 368c7.3 12.4 7.3 27.7 .2 40.1S486.3 480 472 480H40c-14.3 0-27.6-7.7-34.7-20.1s-7-27.8 .2-40.1l216-368C228.7 39.5 241.8 32 256 32zm0 128c-13.3 0-24 10.7-24 24V296c0 13.3 10.7 24 24 24s24-10.7 24-24V184c0-13.3-10.7-24-24-24zm32 224a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z'/%3E%3C/svg%3E")}
.fa-expand::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M32 32C14.3 32 0 46.3 0 64v96c0 17.7 14.3 32 32 32s32-14.3 32-32V96h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H32zM64 352c0-17.7-14.3-32-32-32s-32 14.3-32 32v96c0 17.7 14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H64V352zM320 32c-17.7 0-32 14.3-32 32s14.3 32 32 32h64v64c0 17.7 14.3 32 32 32s32-14.3 32-32V64c0-17.7-14.3-32-32-32H320zM448 352c0-17.7-14.3-32-32-32s-32 14.3-32 32v64H320c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32V352z'/%3E%3C/svg%3E")}
.fa-expand-arrows-alt::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M200 32H56C42.7 32 32 42.7 32 56V200c0 9.7 5.8 18.5 14.8 22.2s19.3 1.7 26.2-5.2l40-40 79 79-79 79L73 295c-6.9-6.9-17.2-8.9-26.2-5.2S32 302.3 32 312V456c0 13.3 10.7 24 24 24H200c9.7 0 18.5-5.8 22.2-14.8s1.7-19.3-5.2-26.2l-40-40 79-79 79 79-40 40c-6.9 6.9-8.9 17.2-5.2 26.2s12.5 14.8 22.2 14.8H456c13.3 0 24-10.7 24-24V312c0-9.7-5.8-18.5-14.8-22.2s-19.3-1.7-26.2 5.2l-40 40-79-79 79-79 40 40c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2V56c0-13.3-10.7-24-24-24H312c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l40 40-79 79-79-79 40-40c6.9-6.9 8.9-17.2 5.2-26.2S209.7 32 200 32z'/%3E%3C/svg%3E")}
.fa-external-link-alt::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M352 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9L370.7 96 201.4 265.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L416 141.3l41.4 41.4c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6V32c0-17.7-14.3-32-32-32H352zM80 32C35.8 32 0 67.8 0 112V432c0 44.2 35.8 80 80 80H400c44.2 0 80-35.8 80-80V320c0-17.7-14.3-32-32-32s-32 14.3-32 32V432c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16H192c17.7 0 32-14.3 32-32s-14.3-32-32-32H80z'/%3E%3C/svg%3E")}
.fa-eye-slash::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 512'%3E%3Cpath d='M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L525.6 386.7c39.6-40.6 66.4-86.1 79.9-118.4c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C465.5 68.8 400.8 32 320 32c-68.2 0-125 26.3-169.3 60.8L38.8 5.1zM223.1 149.5C248.6 126.2 282.7 112 320 112c79.5 0 144 64.5 144 144c0 24.9-6.3 48.3-17.4 68.7L408 294.5c8.4-19.3 10.6-41.4 4.8-63.3c-11.1-41.5-47.8-69.4-88.6-71.1c-5.8-.2-9.2 6.1-7.4 11.7c2.1 6.4 3.3 13.2 3.3 20.3c0 10.2-2.4 19.8-6.6 28.3l-90.3-70.8zM373 389.9c-16.4 6.5-34.3 10.1-53 10.1c-79.5 0-144-64.5-144-144c0-6.9 .5-13.6 1.4-20.2L83.1 161.5C60.3 191.2 44 220.8 34.5 243.7c-3.3 7.9-3.3 16.7 0 24.6c14.9 35.7 46.2 87.7 93 131.1C174.5 443.2 239.2 480 320 480c47.8 0 89.9-12.9 126.2-32.5L373 389.9z'/%3E%3C/svg%3E")}
.fa-filter::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M3.9 54.9C10.5 40.9 24.5 32 40 32H472c15.5 0 29.5 8.9 36.1 22.9s4.6 30.5-5.2 42.5L320 320.9V448c0 12.1-6.8 23.2-17.7 28.6s-23.8 4.3-33.5-3l-64-48c-8.1-6-12.8-15.5-12.8-25.6V320.9L9 97.3C-.7 85.4-2.8 68.8 3.9 54.9z'/%3E%3C/svg%3E")}
.fa-fire::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M159.3 5.4c7.8-7.3 19.9-7.2 27.7 .1c27.6 25.9 53.5 53.8 77.7 84c11-14.4 23.5-30.1 37-42.9c7.9-7.4 20.1-7.4 28 .1c34.6 33 63.9 76.6 84.5 118c20.3 40.8 33.8 82.5 33.8 111.9C448 404.2 348.2 512 224 512C98.4 512 0 404.1 0 276.5c0-38.4 17.8-85.3 45.4-131.7C73.3 97.7 112.7 48.6 159.3 5.4zM225.7 416c25.3 0 47.7-7 68.8-21c42.1-29.4 53.4-88.2 28.1-134.4c-4.5-9-16-9.6-22.5-2l-25.2 29.3c-6.6 7.6-18.5 7.4-24.7-.5c-16.5-21-46-58.5-62.8-79.8c-6.3-8-18.3-8.1-24.7-.1c-33.8 42.5-50.8 69.3-50.8 99.4C112 375.4 162.6 416 225.7 416z'/%3E%3C/svg%3E")}
.fa-folder-open::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'%3E%3Cpath d='M88.7 223.8L0 375.8V96C0 60.7 28.7 32 64 32H181.5c17 0 33.3 6.7 45.3 18.7l26.5 26.5c12 12 28.3 18.7 45.3 18.7H416c35.3 0 64 28.7 64 64v32H144c-22.8 0-43.8 12.1-55.3 31.8zm27.6 16.1C122.1 230 132.6 224 144 224H544c11.5 0 22 6.1 27.7 16.1s5.7 22.2-.1 32.1l-112 192C453.9 474 443.4 480 432 480H32c-11.5 0-22-6.1-27.7-16.1s-5.7-22.2 .1-32.1l112-192z'/%3E%3C/svg%3E")}
.fa-font::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M254 52.8C249.3 40.3 237.3 32 224 32s-25.3 8.3-30 20.8L57.8 416H32c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32h-1.8l18-48H303.8l18 48H320c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H390.2L254 52.8zM279.8 304H168.2L224 155.1 279.8 304z'/%3E%3C/svg%3E")}
.fa-gauge-high::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM288 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM256 416c35.3 0 64-28.7 64-64c0-17.4-6.9-33.1-18.1-44.6L366 161.7c5.3-12.1-.2-26.3-12.3-31.6s-26.3 .2-31.6 12.3L257.9 288c-.6 0-1.3 0-1.9 0c-35.3 0-64 28.7-64 64s28.7 64 64 64zM176 144a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM96 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm352-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z'/%3E%3C/svg%3E")}
.fa-heading::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M0 64C0 46.3 14.3 32 32 32H80h48c17.7 0 32 14.3 32 32s-14.3 32-32 32H112V208H336V96H320c-17.7 0-32-14.3-32-32s14.3-32 32-32h48 48c17.7 0 32 14.3 32 32s-14.3 32-32 32H400V240 416h16c17.7 0 32 14.3 32 32s-14.3 32-32 32H368 320c-17.7 0-32-14.3-32-32s14.3-32 32-32h16V272H112V416h16c17.7 0 32 14.3 32 32s-14.3 32-32 32H80 32c-17.7 0-32-14.3-32-32s14.3-32 32-32H48V240 96H32C14.3 96 0 81.7 0 64z'/%3E%3C/svg%3E")}
.fa-home::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'%3E%3Cpath d='M575.8 255.5c0 18-15 32.1-32 32.1h-32l.7 160.2c0 2.7-.2 5.4-.5 8.1V472c0 22.1-17.9 40-40 40H456c-1.1 0-2.2 0-3.3-.1c-1.4 .1-2.8 .1-4.2 .1H416 392c-22.1 0-40-17.9-40-40V448 384c0-17.7-14.3-32-32-32H256c-17.7 0-32 14.3-32 32v64 24c0 22.1-17.9 40-40 40H160 128.1c-1.5 0-3-.1-4.5-.2c-1.2 .1-2.4 .2-3.6 .2H104c-22.1 0-40-17.9-40-40V360c0-.9 0-1.9 .1-2.8V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L564.8 231.5c8 7 12 15 11 24z'/%3E%3C/svg%3E")}
.fa-id-card::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'%3E%3Cpath d='M0 96l576 0c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96zm0 32V416c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V128H0zM64 405.3c0-29.5 23.9-53.3 53.3-53.3H234.7c29.5 0 53.3 23.9 53.3 53.3c0 5.9-4.8 10.7-10.7 10.7H74.7c-5.9 0-10.7-4.8-10.7-10.7zM176 192a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm176 16c0-8.8 7.2-16 16-16H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H368c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H368c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H368c-8.8 0-16-7.2-16-16z'/%3E%3C/svg%3E")}
.fa-image::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M0 96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zM323.8 202.5c-4.5-6.6-11.9-10.5-19.8-10.5s-15.4 3.9-19.8 10.5l-87 127.6L170.7 297c-4.6-5.7-11.5-9-18.7-9s-14.2 3.3-18.7 9l-64 80c-5.8 7.2-6.9 17.1-2.9 25.4s12.4 13.6 21.6 13.6h96 32H424c8.9 0 17.1-4.9 21.2-12.8s3.6-17.4-1.4-24.7l-120-176zM112 192a48 48 0 1 0 0-96 48 48 0 1 0 0 96z'/%3E%3C/svg%3E")}
.fa-images::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'%3E%3Cpath d='M160 32c-35.3 0-64 28.7-64 64V320c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H160zM396 138.7l96 144c4.9 7.4 5.4 16.8 1.2 24.6S480.9 320 472 320H328 280 200c-9.2 0-17.6-5.3-21.6-13.6s-2.9-18.2 2.9-25.4l64-80c4.6-5.7 11.4-9 18.7-9s14.2 3.3 18.7 9l17.3 21.6 56-84C360.5 132 368 128 376 128s15.5 4 20 10.7zM192 128a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM48 120c0-13.3-10.7-24-24-24S0 106.7 0 120V344c0 75.1 60.9 136 136 136H456c13.3 0 24-10.7 24-24s-10.7-24-24-24H136c-48.6 0-88-39.4-88-88V120z'/%3E%3C/svg%3E")}
.fa-inbox::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M121 32C91.6 32 66 52 58.9 80.5L1.9 308.4C.6 313.5 0 318.7 0 323.9V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V323.9c0-5.2-.6-10.4-1.9-15.5l-57-227.9C446 52 420.4 32 391 32H121zm0 64H391l48 192H387.8c-12.1 0-23.2 6.8-28.6 17.7l-14.3 28.6c-5.4 10.8-16.5 17.7-28.6 17.7H195.8c-12.1 0-23.2-6.8-28.6-17.7l-14.3-28.6c-5.4-10.8-16.5-17.7-28.6-17.7H73L121 96z'/%3E%3C/svg%3E")}
.fa-info-circle::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM216 336h24V272H216c-13.3 0-24-10.7-24-24s10.7-24 24-24h48c13.3 0 24 10.7 24 24v88h8c13.3 0 24 10.7 24 24s-10.7 24-24 24H216c-13.3 0-24-10.7-24-24s10.7-24 24-24zm40-208a32 32 0 1 1 0 64 32 32 0 1 1 0-64z'/%3E%3C/svg%3E")}
.fa-key::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M336 352c97.2 0 176-78.8 176-176S433.2 0 336 0S160 78.8 160 176c0 18.7 2.9 36.8 8.3 53.7L7 391c-4.5 4.5-7 10.6-7 17v80c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V448h40c13.3 0 24-10.7 24-24V384h40c6.4 0 12.5-2.5 17-7l33.3-33.3c16.9 5.4 35 8.3 53.7 8.3zM376 96a40 40 0 1 1 0 80 40 40 0 1 1 0-80z'/%3E%3C/svg%3E")}
.fa-keyboard::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'%3E%3Cpath d='M64 64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H64zm16 64h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm16 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16zm80-176c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V144zm16 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zM160 336c0-8.8 7.2-16 16-16H400c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V336zM272 128h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16zM256 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM368 128h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16zM352 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V240zM464 128h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H464c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16zM448 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H464c-8.8 0-16-7.2-16-16V240zm16 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H464c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16z'/%3E%3C/svg%3E")}
.fa-life-ring::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M367.2 412.5C335.9 434.9 297.5 448 256 448s-79.9-13.1-111.2-35.5l58-58c15.8 8.6 34 13.5 53.3 13.5s37.4-4.9 53.3-13.5l58 58zm90.7 .8c33.8-43.4 54-98 54-157.3s-20.2-113.9-54-157.3c9-12.5 7.9-30.1-3.4-41.3S425.8 45 413.3 54C369.9 20.2 315.3 0 256 0S142.1 20.2 98.7 54c-12.5-9-30.1-7.9-41.3 3.4S45 86.2 54 98.7C20.2 142.1 0 196.7 0 256s20.2 113.9 54 157.3c-9 12.5-7.9 30.1 3.4 41.3S86.2 467 98.7 458c43.4 33.8 98 54 157.3 54s113.9-20.2 157.3-54c12.5 9 30.1 7.9 41.3-3.4s12.4-28.8 3.4-41.3zm-45.5-46.1l-58-58c8.6-15.8 13.5-34 13.5-53.3s-4.9-37.4-13.5-53.3l58-58C434.9 176.1 448 214.5 448 256s-13.1 79.9-35.5 111.2zM367.2 99.5l-58 58c-15.8-8.6-34-13.5-53.3-13.5s-37.4 4.9-53.3 13.5l-58-58C176.1 77.1 214.5 64 256 64s79.9 13.1 111.2 35.5zM157.5 309.3l-58 58C77.1 335.9 64 297.5 64 256s13.1-79.9 35.5-111.2l58 58c-8.6 15.8-13.5 34-13.5 53.3s4.9 37.4 13.5 53.3zM208 256a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z'/%3E%3C/svg%3E")}
.fa-lightbulb::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'%3E%3Cpath d='M272 384c9.6-31.9 29.5-59.1 49.2-86.2l0 0c5.2-7.1 10.4-14.2 15.4-21.4c19.8-28.5 31.4-63 31.4-100.3C368 78.8 289.2 0 192 0S16 78.8 16 176c0 37.3 11.6 71.9 31.4 100.3c5 7.2 10.2 14.3 15.4 21.4l0 0c19.8 27.1 39.7 54.4 49.2 86.2H272zM192 512c44.2 0 80-35.8 80-80V416H112v16c0 44.2 35.8 80 80 80zM112 176c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-61.9 50.1-112 112-112c8.8 0 16 7.2 16 16s-7.2 16-16 16c-44.2 0-80 35.8-80 80z'/%3E%3C/svg%3E")}
.fa-link::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 512'%3E%3Cpath d='M579.8 267.7c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114L422.3 334.8c-31.5 31.5-82.5 31.5-114 0c-27.9-27.9-31.5-71.8-8.6-103.8l1.1-1.6c10.3-14.4 6.9-34.4-7.4-44.6s-34.4-6.9-44.6 7.4l-1.1 1.6C206.5 251.2 213 330 263 380c56.5 56.5 148 56.5 204.5 0L579.8 267.7zM60.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C74 372 74 321 105.5 289.5L217.7 177.2c31.5-31.5 82.5-31.5 114 0c27.9 27.9 31.5 71.8 8.6 103.9l-1.1 1.6c-10.3 14.4-6.9 34.4 7.4 44.6s34.4 6.9 44.6-7.4l1.1-1.6C433.5 260.8 427 182 377 132c-56.5-56.5-148-56.5-204.5 0L60.2 244.3z'/%3E%3C/svg%3E")}
.fa-list::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M40 48C26.7 48 16 58.7 16 72v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V72c0-13.3-10.7-24-24-24H40zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zM16 232v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V232c0-13.3-10.7-24-24-24H40c-13.3 0-24 10.7-24 24zM40 368c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V392c0-13.3-10.7-24-24-24H40z'/%3E%3C/svg%3E")}
.fa-location-dot::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'%3E%3Cpath d='M215.7 499.2C267 435 384 279.4 384 192C384 86 298 0 192 0S0 86 0 192c0 87.4 117 243 168.3 307.2c12.3 15.3 35.1 15.3 47.4 0zM192 128a64 64 0 1 1 0 128 64 64 0 1 1 0-128z'/%3E%3C/svg%3E")}
.fa-lock::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M144 144v48H304V144c0-44.2-35.8-80-80-80s-80 35.8-80 80zM80 192V144C80 64.5 144.5 0 224 0s144 64.5 144 144v48h16c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V256c0-35.3 28.7-64 64-64H80z'/%3E%3C/svg%3E")}
.fa-magnifying-glass::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM208 352a144 144 0 1 0 0-288 144 144 0 1 0 0 288z'/%3E%3C/svg%3E")}
.fa-map-marker-alt::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'%3E%3Cpath d='M215.7 499.2C267 435 384 279.4 384 192C384 86 298 0 192 0S0 86 0 192c0 87.4 117 243 168.3 307.2c12.3 15.3 35.1 15.3 47.4 0zM192 128a64 64 0 1 1 0 128 64 64 0 1 1 0-128z'/%3E%3C/svg%3E")}
.fa-microphone::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'%3E%3Cpath d='M192 0C139 0 96 43 96 96V256c0 53 43 96 96 96s96-43 96-96V96c0-53-43-96-96-96zM64 216c0-13.3-10.7-24-24-24s-24 10.7-24 24v40c0 89.1 66.2 162.7 152 174.4V464H120c-13.3 0-24 10.7-24 24s10.7 24 24 24h72 72c13.3 0 24-10.7 24-24s-10.7-24-24-24H216V430.4c85.8-11.7 152-85.3 152-174.4V216c0-13.3-10.7-24-24-24s-24 10.7-24 24v40c0 70.7-57.3 128-128 128s-128-57.3-128-128V216z'/%3E%3C/svg%3E")}
.fa-newspaper::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M96 96c0-35.3 28.7-64 64-64H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H80c-44.2 0-80-35.8-80-80V128c0-17.7 14.3-32 32-32s32 14.3 32 32V400c0 8.8 7.2 16 16 16s16-7.2 16-16V96zm64 24v80c0 13.3 10.7 24 24 24H296c13.3 0 24-10.7 24-24V120c0-13.3-10.7-24-24-24H184c-13.3 0-24 10.7-24 24zm208-8c0 8.8 7.2 16 16 16h48c8.8 0 16-7.2 16-16s-7.2-16-16-16H384c-8.8 0-16 7.2-16 16zm0 96c0 8.8 7.2 16 16 16h48c8.8 0 16-7.2 16-16s-7.2-16-16-16H384c-8.8 0-16 7.2-16 16zM160 304c0 8.8 7.2 16 16 16H432c8.8 0 16-7.2 16-16s-7.2-16-16-16H176c-8.8 0-16 7.2-16 16zm0 96c0 8.8 7.2 16 16 16H432c8.8 0 16-7.2 16-16s-7.2-16-16-16H176c-8.8 0-16 7.2-16 16z'/%3E%3C/svg%3E")}
.fa-paper-plane::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M498.1 5.6c10.1 7 15.4 19.1 13.5 31.2l-64 416c-1.5 9.7-7.4 18.2-16 23s-18.9 5.4-28 1.6L284 427.7l-68.5 74.1c-8.9 9.7-22.9 12.9-35.2 8.1S160 493.2 160 480V396.4c0-4 1.5-7.8 4.2-10.7L331.8 202.8c5.8-6.3 5.6-16-.4-22s-15.7-6.4-22-.7L106 360.8 17.7 316.6C7.1 311.3 .3 300.7 0 288.9s5.9-22.8 16.1-28.7l448-256c10.7-6.1 23.9-5.5 34 1.4z'/%3E%3C/svg%3E")}
.fa-pause::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 512'%3E%3Cpath d='M48 64C21.5 64 0 85.5 0 112V400c0 26.5 21.5 48 48 48H80c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48H48zm192 0c-26.5 0-48 21.5-48 48V400c0 26.5 21.5 48 48 48h32c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48H240z'/%3E%3C/svg%3E")}
.fa-pen-nib::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M368.4 18.3L312.7 74.1 437.9 199.3l55.7-55.7c21.9-21.9 21.9-57.3 0-79.2L447.6 18.3c-21.9-21.9-57.3-21.9-79.2 0zM288 94.6l-9.2 2.8L134.7 140.6c-19.9 6-35.7 21.2-42.3 41L3.8 445.8c-3.8 11.3-1 23.9 7.3 32.4L164.7 324.7c-3-6.3-4.7-13.3-4.7-20.7c0-26.5 21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48c-7.4 0-14.4-1.7-20.7-4.7L33.7 500.9c8.6 8.3 21.1 11.2 32.4 7.3l264.3-88.6c19.7-6.6 35-22.4 41-42.3l43.2-144.1 2.8-9.2L288 94.6z'/%3E%3C/svg%3E")}
.fa-pencil-alt::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M410.3 231l11.3-11.3-33.9-33.9-62.1-62.1L291.7 89.8l-11.3 11.3-22.6 22.6L58.6 322.9c-10.4 10.4-18 23.3-22.2 37.4L1 480.7c-2.5 8.4-.2 17.5 6.1 23.7s15.3 8.5 23.7 6.1l120.3-35.4c14.1-4.2 27-11.8 37.4-22.2L387.7 253.7 410.3 231zM160 399.4l-9.1 22.7c-4 3.1-8.5 5.4-13.3 6.9L59.4 452l23-78.1c1.4-4.9 3.8-9.4 6.9-13.3l22.7-9.1v32c0 8.8 7.2 16 16 16h32zM362.7 18.7L348.3 33.2 325.7 55.8 314.3 67.1l33.9 33.9 62.1 62.1 33.9 33.9 11.3-11.3 22.6-22.6 14.5-14.5c25-25 25-65.5 0-90.5L453.3 18.7c-25-25-65.5-25-90.5 0zm-47.4 168l-144 144c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l144-144c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z'/%3E%3C/svg%3E")}
.fa-phone::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M164.9 24.6c-7.7-18.6-28-28.5-47.4-23.2l-88 24C12.1 30.2 0 46 0 64C0 311.4 200.6 512 448 512c18 0 33.8-12.1 38.6-29.5l24-88c5.3-19.4-4.6-39.7-23.2-47.4l-96-40c-16.3-6.8-35.2-2.1-46.3 11.6L304.7 368C234.3 334.7 177.3 277.7 144 207.3L193.3 167c13.7-11.2 18.4-30 11.6-46.3l-40-96z'/%3E%3C/svg%3E")}
.fa-play::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'%3E%3Cpath d='M73 39c-14.8-9.1-33.4-9.4-48.5-.9S0 62.6 0 80V432c0 17.4 9.4 33.4 24.5 41.9s33.7 8.1 48.5-.9L361 297c14.3-8.7 23-24.2 23-41s-8.7-32.2-23-41L73 39z'/%3E%3C/svg%3E")}
.fa-play-circle::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM188.3 147.1c-7.6 4.2-12.3 12.3-12.3 20.9V344c0 8.7 4.7 16.7 12.3 20.9s16.8 4.1 24.3-.5l144-88c7.1-4.4 11.5-12.1 11.5-20.5s-4.4-16.1-11.5-20.5l-144-88c-7.4-4.5-16.7-4.7-24.3-.5z'/%3E%3C/svg%3E")}
.fa-plus::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M256 80c0-17.7-14.3-32-32-32s-32 14.3-32 32V224H48c-17.7 0-32 14.3-32 32s14.3 32 32 32H192V432c0 17.7 14.3 32 32 32s32-14.3 32-32V288H400c17.7 0 32-14.3 32-32s-14.3-32-32-32H256V80z'/%3E%3C/svg%3E")}
.fa-plus-circle::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM232 344V280H168c-13.3 0-24-10.7-24-24s10.7-24 24-24h64V168c0-13.3 10.7-24 24-24s24 10.7 24 24v64h64c13.3 0 24 10.7 24 24s-10.7 24-24 24H280v64c0 13.3-10.7 24-24 24s-24-10.7-24-24z'/%3E%3C/svg%3E")}
.fa-question-circle::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM169.8 165.3c7.9-22.3 29.1-37.3 52.8-37.3h58.3c34.9 0 63.1 28.3 63.1 63.1c0 22.6-12.1 43.5-31.7 54.8L280 264.4c-.2 13-10.9 23.6-24 23.6c-13.3 0-24-10.7-24-24V250.5c0-8.6 4.6-16.5 12.1-20.8l44.3-25.4c4.7-2.7 7.6-7.7 7.6-13.1c0-8.4-6.8-15.1-15.1-15.1H222.6c-3.4 0-6.4 2.1-7.5 5.3l-.4 1.2c-4.4 12.5-18.2 19-30.6 14.6s-19-18.2-14.6-30.6l.4-1.2zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z'/%3E%3C/svg%3E")}
.fa-ranking-star::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 512'%3E%3Cpath d='M353.8 54.1L330.2 6.3c-3.9-8.3-16.1-8.6-20.4 0L286.2 54.1l-52.3 7.5c-9.3 1.4-13.3 12.9-6.4 19.8l38 37-9 52.1c-1.4 9.3 8.2 16.5 16.8 12.2l46.9-24.8 46.6 24.4c8.6 4.3 18.3-2.9 16.8-12.2l-9-52.1 38-36.6c6.8-6.8 2.9-18.3-6.4-19.8l-52.3-7.5zM256 256c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H384c17.7 0 32-14.3 32-32V288c0-17.7-14.3-32-32-32H256zM32 320c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H160c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32H32zm416 96v64c0 17.7 14.3 32 32 32H608c17.7 0 32-14.3 32-32V416c0-17.7-14.3-32-32-32H480c-17.7 0-32 14.3-32 32z'/%3E%3C/svg%3E")}
.fa-rectangle-ad::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'%3E%3Cpath d='M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM229.5 173.3l72 144c5.9 11.9 1.1 26.3-10.7 32.2s-26.3 1.1-32.2-10.7L253.2 328H162.8l-5.4 10.7c-5.9 11.9-20.3 16.7-32.2 10.7s-16.7-20.3-10.7-32.2l72-144c4.1-8.1 12.4-13.3 21.5-13.3s17.4 5.1 21.5 13.3zM208 237.7L186.8 280h42.3L208 237.7zM392 256a24 24 0 1 0 0 48 24 24 0 1 0 0-48zm24-43.9V184c0-13.3 10.7-24 24-24s24 10.7 24 24v96 48c0 13.3-10.7 24-24 24c-6.6 0-12.6-2.7-17-7c-9.4 4.5-19.9 7-31 7c-39.8 0-72-32.2-72-72s32.2-72 72-72c8.4 0 16.5 1.4 24 4.1z'/%3E%3C/svg%3E")}
.fa-robot::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 512'%3E%3Cpath d='M320 0c17.7 0 32 14.3 32 32V96H472c39.8 0 72 32.2 72 72V440c0 39.8-32.2 72-72 72H168c-39.8 0-72-32.2-72-72V168c0-39.8 32.2-72 72-72H288V32c0-17.7 14.3-32 32-32zM208 384c-8.8 0-16 7.2-16 16s7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H208zm96 0c-8.8 0-16 7.2-16 16s7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H304zm96 0c-8.8 0-16 7.2-16 16s7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H400zM264 256a40 40 0 1 0 -80 0 40 40 0 1 0 80 0zm152 40a40 40 0 1 0 0-80 40 40 0 1 0 0 80zM48 224H64V416H48c-26.5 0-48-21.5-48-48V272c0-26.5 21.5-48 48-48zm544 0c26.5 0 48 21.5 48 48v96c0 26.5-21.5 48-48 48H576V224h16z'/%3E%3C/svg%3E")}
.fa-rotate::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M142.9 142.9c62.2-62.2 162.7-62.5 225.3-1L327 183c-6.9 6.9-8.9 17.2-5.2 26.2s12.5 14.8 22.2 14.8H463.5c0 0 0 0 0 0H472c13.3 0 24-10.7 24-24V72c0-9.7-5.8-18.5-14.8-22.2s-19.3-1.7-26.2 5.2L413.4 96.6c-87.6-86.5-228.7-86.2-315.8 1C73.2 122 55.6 150.7 44.8 181.4c-5.9 16.7 2.9 34.9 19.5 40.8s34.9-2.9 40.8-19.5c7.7-21.8 20.2-42.3 37.8-59.8zM16 312v7.6 .7V440c0 9.7 5.8 18.5 14.8 22.2s19.3 1.7 26.2-5.2l41.6-41.6c87.6 86.5 228.7 86.2 315.8-1c24.4-24.4 42.1-53.1 52.9-83.7c5.9-16.7-2.9-34.9-19.5-40.8s-34.9 2.9-40.8 19.5c-7.7 21.8-20.2 42.3-37.8 59.8c-62.2 62.2-162.7 62.5-225.3 1L185 329c6.9-6.9 8.9-17.2 5.2-26.2s-12.5-14.8-22.2-14.8H48.4h-.7H40c-13.3 0-24 10.7-24 24z'/%3E%3C/svg%3E")}
.fa-ruler-combined::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M.2 468.9C2.7 493.1 23.1 512 48 512l96 0 320 0c26.5 0 48-21.5 48-48l0-96c0-26.5-21.5-48-48-48l-48 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0 0-64-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0 0-64-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0 0-48c0-26.5-21.5-48-48-48L48 0C21.5 0 0 21.5 0 48L0 368l0 96c0 1.7 .1 3.3 .2 4.9z'/%3E%3C/svg%3E")}
.fa-save::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V173.3c0-17-6.7-33.3-18.7-45.3L352 50.7C340 38.7 323.7 32 306.7 32H64zm0 96c0-17.7 14.3-32 32-32H288c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V128zM224 288a64 64 0 1 1 0 128 64 64 0 1 1 0-128z'/%3E%3C/svg%3E")}
.fa-search::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM208 352a144 144 0 1 0 0-288 144 144 0 1 0 0 288z'/%3E%3C/svg%3E")}
.fa-search-plus::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM184 296c0 13.3 10.7 24 24 24s24-10.7 24-24V232h64c13.3 0 24-10.7 24-24s-10.7-24-24-24H232V120c0-13.3-10.7-24-24-24s-24 10.7-24 24v64H120c-13.3 0-24 10.7-24 24s10.7 24 24 24h64v64z'/%3E%3C/svg%3E")}
.fa-shapes::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M315.4 15.5C309.7 5.9 299.2 0 288 0s-21.7 5.9-27.4 15.5l-96 160c-5.9 9.9-6.1 22.2-.4 32.2s16.3 16.2 27.8 16.2H384c11.5 0 22.2-6.2 27.8-16.2s5.5-22.3-.4-32.2l-96-160zM288 312V456c0 22.1 17.9 40 40 40H472c22.1 0 40-17.9 40-40V312c0-22.1-17.9-40-40-40H328c-22.1 0-40 17.9-40 40zM128 512a128 128 0 1 0 0-256 128 128 0 1 0 0 256z'/%3E%3C/svg%3E")}
.fa-share-alt::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M352 224c53 0 96-43 96-96s-43-96-96-96s-96 43-96 96c0 4 .2 8 .7 11.9l-94.1 47C145.4 170.2 121.9 160 96 160c-53 0-96 43-96 96s43 96 96 96c25.9 0 49.4-10.2 66.6-26.9l94.1 47c-.5 3.9-.7 7.8-.7 11.9c0 53 43 96 96 96s96-43 96-96s-43-96-96-96c-25.9 0-49.4 10.2-66.6 26.9l-94.1-47c.5-3.9 .7-7.8 .7-11.9s-.2-8-.7-11.9l94.1-47C302.6 213.8 326.1 224 352 224z'/%3E%3C/svg%3E")}
.fa-shield-alt::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M256 0c4.6 0 9.2 1 13.4 2.9L457.7 82.8c22 9.3 38.4 31 38.3 57.2c-.5 99.2-41.3 280.7-213.6 363.2c-16.7 8-36.1 8-52.8 0C57.3 420.7 16.5 239.2 16 140c-.1-26.2 16.3-47.9 38.3-57.2L242.7 2.9C246.8 1 251.4 0 256 0zm0 66.8V444.8C394 378 431.1 230.1 432 141.4L256 66.8l0 0z'/%3E%3C/svg%3E")}
.fa-shield-halved::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M256 0c4.6 0 9.2 1 13.4 2.9L457.7 82.8c22 9.3 38.4 31 38.3 57.2c-.5 99.2-41.3 280.7-213.6 363.2c-16.7 8-36.1 8-52.8 0C57.3 420.7 16.5 239.2 16 140c-.1-26.2 16.3-47.9 38.3-57.2L242.7 2.9C246.8 1 251.4 0 256 0zm0 66.8V444.8C394 378 431.1 230.1 432 141.4L256 66.8l0 0z'/%3E%3C/svg%3E")}
.fa-sign-out-alt::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M377.9 105.9L500.7 228.7c7.2 7.2 11.3 17.1 11.3 27.3s-4.1 20.1-11.3 27.3L377.9 406.1c-6.4 6.4-15 9.9-24 9.9c-18.7 0-33.9-15.2-33.9-33.9l0-62.1-128 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l128 0 0-62.1c0-18.7 15.2-33.9 33.9-33.9c9 0 17.6 3.6 24 9.9zM160 96L96 96c-17.7 0-32 14.3-32 32l0 256c0 17.7 14.3 32 32 32l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-53 0-96-43-96-96L0 128C0 75 43 32 96 32l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32z'/%3E%3C/svg%3E")}
.fa-sliders-h::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M0 416c0 17.7 14.3 32 32 32l54.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48L480 448c17.7 0 32-14.3 32-32s-14.3-32-32-32l-246.7 0c-12.3-28.3-40.5-48-73.3-48s-61 19.7-73.3 48L32 384c-17.7 0-32 14.3-32 32zm128 0a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM320 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32-80c-32.8 0-61 19.7-73.3 48L32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l246.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48l54.7 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-54.7 0c-12.3-28.3-40.5-48-73.3-48zM192 128a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm73.3-64C253 35.7 224.8 16 192 16s-61 19.7-73.3 48L32 64C14.3 64 0 78.3 0 96s14.3 32 32 32l86.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48L480 128c17.7 0 32-14.3 32-32s-14.3-32-32-32L265.3 64z'/%3E%3C/svg%3E")}
.fa-sort::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 512'%3E%3Cpath d='M137.4 41.4c12.5-12.5 32.8-12.5 45.3 0l128 128c9.2 9.2 11.9 22.9 6.9 34.9s-16.6 19.8-29.6 19.8H32c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9l128-128zm0 429.3l-128-128c-9.2-9.2-11.9-22.9-6.9-34.9s16.6-19.8 29.6-19.8H288c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9l-128 128c-12.5 12.5-32.8 12.5-45.3 0z'/%3E%3C/svg%3E")}
.fa-sort-numeric-down::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'%3E%3Cpath d='M450.7 38c-8.3-6-19.1-7.7-28.8-4.4l-48 16c-16.8 5.6-25.8 23.7-20.2 40.5s23.7 25.8 40.5 20.2l5.9-2V160H384c-17.7 0-32 14.3-32 32s14.3 32 32 32h48 48c17.7 0 32-14.3 32-32s-14.3-32-32-32H464V64c0-10.3-4.9-19.9-13.3-26zM160 480c9 0 17.5-3.8 23.6-10.4l88-96c11.9-13 11.1-33.3-2-45.2s-33.3-11.1-45.2 2L192 365.7V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V365.7L95.6 330.4c-11.9-13-32.2-13.9-45.2-2s-13.9 32.2-2 45.2l88 96C142.5 476.2 151 480 160 480zM418.3 307a32 32 0 1 1 27.4 57.9A32 32 0 1 1 418.3 307zM405.1 419.8l-6.8 9.2c-10.5 14.2-7.5 34.2 6.7 44.8s34.2 7.5 44.8-6.7l48.8-65.8c14-18.9 21.5-41.7 21.5-65.2c0-48.6-39.4-88-88-88s-88 39.4-88 88c0 39.2 25.6 72.4 61.1 83.8z'/%3E%3C/svg%3E")}
.fa-spinner::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M304 48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm0 416a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM48 304a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm464-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM142.9 437A48 48 0 1 0 75 369.1 48 48 0 1 0 142.9 437zm0-294.2A48 48 0 1 0 75 75a48 48 0 1 0 67.9 67.9zM369.1 437A48 48 0 1 0 437 369.1 48 48 0 1 0 369.1 437z'/%3E%3C/svg%3E")}
.fa-stop::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'%3E%3Cpath d='M0 128C0 92.7 28.7 64 64 64H320c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128z'/%3E%3C/svg%3E")}
.fa-sync-alt::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M142.9 142.9c62.2-62.2 162.7-62.5 225.3-1L327 183c-6.9 6.9-8.9 17.2-5.2 26.2s12.5 14.8 22.2 14.8H463.5c0 0 0 0 0 0H472c13.3 0 24-10.7 24-24V72c0-9.7-5.8-18.5-14.8-22.2s-19.3-1.7-26.2 5.2L413.4 96.6c-87.6-86.5-228.7-86.2-315.8 1C73.2 122 55.6 150.7 44.8 181.4c-5.9 16.7 2.9 34.9 19.5 40.8s34.9-2.9 40.8-19.5c7.7-21.8 20.2-42.3 37.8-59.8zM16 312v7.6 .7V440c0 9.7 5.8 18.5 14.8 22.2s19.3 1.7 26.2-5.2l41.6-41.6c87.6 86.5 228.7 86.2 315.8-1c24.4-24.4 42.1-53.1 52.9-83.7c5.9-16.7-2.9-34.9-19.5-40.8s-34.9 2.9-40.8 19.5c-7.7 21.8-20.2 42.3-37.8 59.8c-62.2 62.2-162.7 62.5-225.3 1L185 329c6.9-6.9 8.9-17.2 5.2-26.2s-12.5-14.8-22.2-14.8H48.4h-.7H40c-13.3 0-24 10.7-24 24z'/%3E%3C/svg%3E")}
.fa-tachometer-alt::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM288 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM256 416c35.3 0 64-28.7 64-64c0-17.4-6.9-33.1-18.1-44.6L366 161.7c5.3-12.1-.2-26.3-12.3-31.6s-26.3 .2-31.6 12.3L257.9 288c-.6 0-1.3 0-1.9 0c-35.3 0-64 28.7-64 64s28.7 64 64 64zM176 144a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM96 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm352-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z'/%3E%3C/svg%3E")}
.fa-tag::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M0 80V229.5c0 17 6.7 33.3 18.7 45.3l176 176c25 25 65.5 25 90.5 0L418.7 317.3c25-25 25-65.5 0-90.5l-176-176c-12-12-28.3-18.7-45.3-18.7H48C21.5 32 0 53.5 0 80zm112 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z'/%3E%3C/svg%3E")}
.fa-tags::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M345 39.1L472.8 168.4c52.4 53 52.4 138.2 0 191.2L360.8 472.9c-9.3 9.4-24.5 9.5-33.9 .2s-9.5-24.5-.2-33.9L438.6 325.9c33.9-34.3 33.9-89.4 0-123.7L310.9 72.9c-9.3-9.4-9.2-24.6 .2-33.9s24.6-9.2 33.9 .2zM0 229.5V80C0 53.5 21.5 32 48 32H197.5c17 0 33.3 6.7 45.3 18.7l168 168c25 25 25 65.5 0 90.5L277.3 442.7c-25 25-65.5 25-90.5 0l-168-168C6.7 262.7 0 246.5 0 229.5zM144 144a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z'/%3E%3C/svg%3E")}
.fa-times::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'%3E%3Cpath d='M342.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 210.7 86.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L146.7 256 41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 301.3 297.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.3 256 342.6 150.6z'/%3E%3C/svg%3E")}
.fa-times-circle::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM175 175c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z'/%3E%3C/svg%3E")}
.fa-toggle-off::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'%3E%3Cpath d='M384 128c70.7 0 128 57.3 128 128s-57.3 128-128 128H192c-70.7 0-128-57.3-128-128s57.3-128 128-128H384zM576 256c0-106-86-192-192-192H192C86 64 0 150 0 256S86 448 192 448H384c106 0 192-86 192-192zM192 352a96 96 0 1 0 0-192 96 96 0 1 0 0 192z'/%3E%3C/svg%3E")}
.fa-toggle-on::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'%3E%3Cpath d='M192 64C86 64 0 150 0 256S86 448 192 448H384c106 0 192-86 192-192s-86-192-192-192H192zm192 96a96 96 0 1 1 0 192 96 96 0 1 1 0-192z'/%3E%3C/svg%3E")}
.fa-trash::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M135.2 17.7L128 32H32C14.3 32 0 46.3 0 64S14.3 96 32 96H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H320l-7.2-14.3C307.4 6.8 296.3 0 284.2 0H163.8c-12.1 0-23.2 6.8-28.6 17.7zM416 128H32L53.2 467c1.6 25.3 22.6 45 47.9 45H346.9c25.3 0 46.3-19.7 47.9-45L416 128z'/%3E%3C/svg%3E")}
.fa-tv::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 512'%3E%3Cpath d='M64 64V352H576V64H64zM0 64C0 28.7 28.7 0 64 0H576c35.3 0 64 28.7 64 64V352c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zM128 448H512c17.7 0 32 14.3 32 32s-14.3 32-32 32H128c-17.7 0-32-14.3-32-32s14.3-32 32-32z'/%3E%3C/svg%3E")}
.fa-upload::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M288 109.3V352c0 17.7-14.3 32-32 32s-32-14.3-32-32V109.3l-73.4 73.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l128-128c12.5-12.5 32.8-12.5 45.3 0l128 128c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L288 109.3zM64 352H192c0 35.3 28.7 64 64 64s64-28.7 64-64H448c35.3 0 64 28.7 64 64v32c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V416c0-35.3 28.7-64 64-64zM432 456a24 24 0 1 0 0-48 24 24 0 1 0 0 48z'/%3E%3C/svg%3E")}
.fa-user::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512H418.3c16.4 0 29.7-13.3 29.7-29.7C448 383.8 368.2 304 269.7 304H178.3z'/%3E%3C/svg%3E")}
.fa-user-check::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 512'%3E%3Cpath d='M96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM0 482.3C0 383.8 79.8 304 178.3 304h91.4C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7H29.7C13.3 512 0 498.7 0 482.3zM625 177L497 305c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L591 143c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z'/%3E%3C/svg%3E")}
.fa-user-edit::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 512'%3E%3Cpath d='M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512H322.8c-3.1-8.8-3.7-18.4-1.4-27.8l15-60.1c2.8-11.3 8.6-21.5 16.8-29.7l40.3-40.3c-32.1-31-75.7-50.1-123.9-50.1H178.3zm435.5-68.3c-15.6-15.6-40.9-15.6-56.6 0l-29.4 29.4 71 71 29.4-29.4c15.6-15.6 15.6-40.9 0-56.6l-14.4-14.4zM375.9 417c-4.1 4.1-7 9.2-8.4 14.9l-15 60.1c-1.4 5.5 .2 11.2 4.2 15.2s9.7 5.6 15.2 4.2l60.1-15c5.6-1.4 10.8-4.3 14.9-8.4L576.1 358.7l-71-71L375.9 417z'/%3E%3C/svg%3E")}
.fa-user-group::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 512'%3E%3Cpath d='M96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM0 482.3C0 383.8 79.8 304 178.3 304h91.4C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7H29.7C13.3 512 0 498.7 0 482.3zM609.3 512H471.4c5.4-9.4 8.6-20.3 8.6-32v-8c0-60.7-27.1-115.2-69.8-151.8c2.4-.1 4.7-.2 7.1-.2h61.4C567.8 320 640 392.2 640 481.3c0 17-13.8 30.7-30.7 30.7zM432 256c-31 0-59-12.6-79.3-32.9C372.4 196.5 384 163.6 384 128c0-26.8-6.6-52.1-18.3-74.3C384.3 40.1 407.2 32 432 32c61.9 0 112 50.1 112 112s-50.1 112-112 112z'/%3E%3C/svg%3E")}
.fa-user-shield::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 512'%3E%3Cpath d='M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512H418.3c1.8 0 3.5-.2 5.3-.5c-76.3-55.1-99.8-141-103.1-200.2c-16.1-4.8-33.1-7.3-50.7-7.3H178.3zm308.8-78.3l-120 48C358 277.4 352 286.2 352 296c0 63.3 25.9 168.8 134.8 214.2c5.9 2.5 12.6 2.5 18.5 0C614.1 464.8 640 359.3 640 296c0-9.8-6-18.6-15.1-22.3l-120-48c-5.7-2.3-12.1-2.3-17.8 0zM591.4 312c-3.9 50.7-27.2 116.7-95.4 149.7V273.8L591.4 312z'/%3E%3C/svg%3E")}
.fa-user-tie::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M224 256A128 128 0 1 1 224 0a128 128 0 1 1 0 256zM209.1 359.2l-18.6-31c-6.4-10.7 1.3-24.2 13.7-24.2H224h19.7c12.4 0 20.1 13.6 13.7 24.2l-18.6 31 33.4 123.9 36-146.9c2-8.1 9.8-13.4 17.9-11.3c70.1 17.6 121.9 81 121.9 156.4c0 17-13.8 30.7-30.7 30.7H285.5c-2.1 0-4-.4-5.8-1.1l.3 1.1H168l.3-1.1c-1.8 .7-3.8 1.1-5.8 1.1H30.7C13.8 512 0 498.2 0 481.3c0-75.5 51.9-138.9 121.9-156.4c8.1-2 15.9 3.3 17.9 11.3l36 146.9 33.4-123.9z'/%3E%3C/svg%3E")}
.fa-users::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 512'%3E%3Cpath d='M144 0a80 80 0 1 1 0 160A80 80 0 1 1 144 0zM512 0a80 80 0 1 1 0 160A80 80 0 1 1 512 0zM0 298.7C0 239.8 47.8 192 106.7 192h42.7c15.9 0 31 3.5 44.6 9.7c-1.3 7.2-1.9 14.7-1.9 22.3c0 38.2 16.8 72.5 43.3 96c-.2 0-.4 0-.7 0H21.3C9.6 320 0 310.4 0 298.7zM405.3 320c-.2 0-.4 0-.7 0c26.6-23.5 43.3-57.8 43.3-96c0-7.6-.7-15-1.9-22.3c13.6-6.3 28.7-9.7 44.6-9.7h42.7C592.2 192 640 239.8 640 298.7c0 11.8-9.6 21.3-21.3 21.3H405.3zM224 224a96 96 0 1 1 192 0 96 96 0 1 1 -192 0zM128 485.3C128 411.7 187.7 352 261.3 352H378.7C452.3 352 512 411.7 512 485.3c0 14.7-11.9 26.7-26.7 26.7H154.7c-14.7 0-26.7-11.9-26.7-26.7z'/%3E%3C/svg%3E")}
.fa-users-cog::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 512'%3E%3Cpath d='M144 160A80 80 0 1 0 144 0a80 80 0 1 0 0 160zm368 0A80 80 0 1 0 512 0a80 80 0 1 0 0 160zM0 298.7C0 310.4 9.6 320 21.3 320H234.7c.2 0 .4 0 .7 0c-26.6-23.5-43.3-57.8-43.3-96c0-7.6 .7-15 1.9-22.3c-13.6-6.3-28.7-9.7-44.6-9.7H106.7C47.8 192 0 239.8 0 298.7zM320 320c24 0 45.9-8.8 62.7-23.3c2.5-3.7 5.2-7.3 8-10.7c2.7-3.3 5.7-6.1 9-8.3C410 262.3 416 243.9 416 224c0-53-43-96-96-96s-96 43-96 96s43 96 96 96zm65.4 60.2c-10.3-5.9-18.1-16.2-20.8-28.2H261.3C187.7 352 128 411.7 128 485.3c0 14.7 11.9 26.7 26.7 26.7H455.2c-2.1-5.2-3.2-10.9-3.2-16.4v-3c-1.3-.7-2.7-1.5-4-2.3l-2.6 1.5c-16.8 9.7-40.5 8-54.7-9.7c-4.5-5.6-8.6-11.5-12.4-17.6l-.1-.2-.1-.2-2.4-4.1-.1-.2-.1-.2c-3.4-6.2-6.4-12.6-9-19.3c-8.2-21.2 2.2-42.6 19-52.3l2.7-1.5c0-.8 0-1.5 0-2.3s0-1.5 0-2.3l-2.7-1.5zM533.3 192H490.7c-15.9 0-31 3.5-44.6 9.7c1.3 7.2 1.9 14.7 1.9 22.3c0 17.4-3.5 33.9-9.7 49c2.5 .9 4.9 2 7.1 3.3l2.6 1.5c1.3-.8 2.6-1.6 4-2.3v-3c0-19.4 13.3-39.1 35.8-42.6c7.9-1.2 16-1.9 24.2-1.9s16.3 .6 24.2 1.9c22.5 3.5 35.8 23.2 35.8 42.6v3c1.3 .7 2.7 1.5 4 2.3l2.6-1.5c16.8-9.7 40.5-8 54.7 9.7c2.3 2.8 4.5 5.8 6.6 8.7c-2.1-57.1-49-102.7-106.6-102.7zm91.3 163.9c6.3-3.6 9.5-11.1 6.8-18c-2.1-5.5-4.6-10.8-7.4-15.9l-2.3-4c-3.1-5.1-6.5-9.9-10.2-14.5c-4.6-5.7-12.7-6.7-19-3L574.4 311c-8.9-7.6-19.1-13.6-30.4-17.6v-21c0-7.3-4.9-13.8-12.1-14.9c-6.5-1-13.1-1.5-19.9-1.5s-13.4 .5-19.9 1.5c-7.2 1.1-12.1 7.6-12.1 14.9v21c-11.2 4-21.5 10-30.4 17.6l-18.2-10.5c-6.3-3.6-14.4-2.6-19 3c-3.7 4.6-7.1 9.5-10.2 14.6l-2.3 3.9c-2.8 5.1-5.3 10.4-7.4 15.9c-2.6 6.8 .5 14.3 6.8 17.9l18.2 10.5c-1 5.7-1.6 11.6-1.6 17.6s.6 11.9 1.6 17.5l-18.2 10.5c-6.3 3.6-9.5 11.1-6.8 17.9c2.1 5.5 4.6 10.7 7.4 15.8l2.4 4.1c3 5.1 6.4 9.9 10.1 14.5c4.6 5.7 12.7 6.7 19 3L449.6 457c8.9 7.6 19.2 13.6 30.4 17.6v21c0 7.3 4.9 13.8 12.1 14.9c6.5 1 13.1 1.5 19.9 1.5s13.4-.5 19.9-1.5c7.2-1.1 12.1-7.6 12.1-14.9v-21c11.2-4 21.5-10 30.4-17.6l18.2 10.5c6.3 3.6 14.4 2.6 19-3c3.7-4.6 7.1-9.4 10.1-14.5l2.4-4.2c2.8-5.1 5.3-10.3 7.4-15.8c2.6-6.8-.5-14.3-6.8-17.9l-18.2-10.5c1-5.7 1.6-11.6 1.6-17.5s-.6-11.9-1.6-17.6l18.2-10.5zM472 384a40 40 0 1 1 80 0 40 40 0 1 1 -80 0z'/%3E%3C/svg%3E")}
.fa-video::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'%3E%3Cpath d='M0 128C0 92.7 28.7 64 64 64H320c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128zM559.1 99.8c10.4 5.6 16.9 16.4 16.9 28.2V384c0 11.8-6.5 22.6-16.9 28.2s-23 5-32.9-1.6l-96-64L416 337.1V320 192 174.9l14.2-9.5 96-64c9.8-6.5 22.4-7.2 32.9-1.6z'/%3E%3C/svg%3E")}
.fa-video-slash::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 512'%3E%3Cpath d='M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-86.4-67.7 13.8 9.2c9.8 6.5 22.4 7.2 32.9 1.6s16.9-16.4 16.9-28.2V128c0-11.8-6.5-22.6-16.9-28.2s-23-5-32.9 1.6l-96 64L448 174.9V192 320v5.8l-32-25.1V128c0-35.3-28.7-64-64-64H113.9L38.8 5.1zM407 416.7L32.3 121.5c-.2 2.1-.3 4.3-.3 6.5V384c0 35.3 28.7 64 64 64H352c23.4 0 43.9-12.6 55-31.3z'/%3E%3C/svg%3E")}
.fa-volume-down::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M301.1 34.8C312.6 40 320 51.4 320 64V448c0 12.6-7.4 24-18.9 29.2s-25 3.1-34.4-5.3L131.8 352H64c-35.3 0-64-28.7-64-64V224c0-35.3 28.7-64 64-64h67.8L266.7 40.1c9.4-8.4 22.9-10.4 34.4-5.3zM412.6 181.5C434.1 199.1 448 225.9 448 256s-13.9 56.9-35.4 74.5c-10.3 8.4-25.4 6.8-33.8-3.5s-6.8-25.4 3.5-33.8C393.1 284.4 400 271 400 256s-6.9-28.4-17.7-37.3c-10.3-8.4-11.8-23.5-3.5-33.8s23.5-11.8 33.8-3.5z'/%3E%3C/svg%3E")}
.fa-volume-high::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 512'%3E%3Cpath d='M533.6 32.5C598.5 85.3 640 165.8 640 256s-41.5 170.8-106.4 223.5c-10.3 8.4-25.4 6.8-33.8-3.5s-6.8-25.4 3.5-33.8C557.5 398.2 592 331.2 592 256s-34.5-142.2-88.7-186.3c-10.3-8.4-11.8-23.5-3.5-33.8s23.5-11.8 33.8-3.5zM473.1 107c43.2 35.2 70.9 88.9 70.9 149s-27.7 113.8-70.9 149c-10.3 8.4-25.4 6.8-33.8-3.5s-6.8-25.4 3.5-33.8C475.3 341.3 496 301.1 496 256s-20.7-85.3-53.2-111.8c-10.3-8.4-11.8-23.5-3.5-33.8s23.5-11.8 33.8-3.5zm-60.5 74.5C434.1 199.1 448 225.9 448 256s-13.9 56.9-35.4 74.5c-10.3 8.4-25.4 6.8-33.8-3.5s-6.8-25.4 3.5-33.8C393.1 284.4 400 271 400 256s-6.9-28.4-17.7-37.3c-10.3-8.4-11.8-23.5-3.5-33.8s23.5-11.8 33.8-3.5zM301.1 34.8C312.6 40 320 51.4 320 64V448c0 12.6-7.4 24-18.9 29.2s-25 3.1-34.4-5.3L131.8 352H64c-35.3 0-64-28.7-64-64V224c0-35.3 28.7-64 64-64h67.8L266.7 40.1c9.4-8.4 22.9-10.4 34.4-5.3z'/%3E%3C/svg%3E")}
.fa-volume-mute::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'%3E%3Cpath d='M301.1 34.8C312.6 40 320 51.4 320 64V448c0 12.6-7.4 24-18.9 29.2s-25 3.1-34.4-5.3L131.8 352H64c-35.3 0-64-28.7-64-64V224c0-35.3 28.7-64 64-64h67.8L266.7 40.1c9.4-8.4 22.9-10.4 34.4-5.3zM425 167l55 55 55-55c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-55 55 55 55c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-55-55-55 55c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l55-55-55-55c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0z'/%3E%3C/svg%3E")}
.fa-volume-up::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 512'%3E%3Cpath d='M533.6 32.5C598.5 85.3 640 165.8 640 256s-41.5 170.8-106.4 223.5c-10.3 8.4-25.4 6.8-33.8-3.5s-6.8-25.4 3.5-33.8C557.5 398.2 592 331.2 592 256s-34.5-142.2-88.7-186.3c-10.3-8.4-11.8-23.5-3.5-33.8s23.5-11.8 33.8-3.5zM473.1 107c43.2 35.2 70.9 88.9 70.9 149s-27.7 113.8-70.9 149c-10.3 8.4-25.4 6.8-33.8-3.5s-6.8-25.4 3.5-33.8C475.3 341.3 496 301.1 496 256s-20.7-85.3-53.2-111.8c-10.3-8.4-11.8-23.5-3.5-33.8s23.5-11.8 33.8-3.5zm-60.5 74.5C434.1 199.1 448 225.9 448 256s-13.9 56.9-35.4 74.5c-10.3 8.4-25.4 6.8-33.8-3.5s-6.8-25.4 3.5-33.8C393.1 284.4 400 271 400 256s-6.9-28.4-17.7-37.3c-10.3-8.4-11.8-23.5-3.5-33.8s23.5-11.8 33.8-3.5zM301.1 34.8C312.6 40 320 51.4 320 64V448c0 12.6-7.4 24-18.9 29.2s-25 3.1-34.4-5.3L131.8 352H64c-35.3 0-64-28.7-64-64V224c0-35.3 28.7-64 64-64h67.8L266.7 40.1c9.4-8.4 22.9-10.4 34.4-5.3z'/%3E%3C/svg%3E")}
.fa-x::before{--kc-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'%3E%3Cpath d='M376.6 84.5c11.3-13.6 9.5-33.8-4.1-45.1s-33.8-9.5-45.1 4.1L192 206 56.6 43.5C45.3 29.9 25.1 28.1 11.5 39.4S-3.9 70.9 7.4 84.5L150.3 256 7.4 427.5c-11.3 13.6-9.5 33.8 4.1 45.1s33.8 9.5 45.1-4.1L192 306 327.4 468.5c11.3 13.6 31.5 15.4 45.1 4.1s15.4-31.5 4.1-45.1L233.7 256 376.6 84.5z'/%3E%3C/svg%3E")}


/* ===== 21-embeds.css ===== */
.kc-rrss-frame {
    border: 0;
    overflow: hidden;
}

.kc-tiktok-creator {
    max-width: 100%;
    min-width: 288px;
}


/* ===== 22-reels.css ===== */
/* ============================================================
   kc/22-reels.css — Reels de la portada
   Fila horizontal de tarjetas verticales (9:16) con miniatura, título y
   botón de reproducción, más el reproductor modal de YouTube.
   El encabezado sigue el mismo patrón que los bloques de categorías
   (.kc-news-block): línea editorial de 6px + título extrabold.
   ============================================================ */
.kc-reels {
    margin-bottom: var(--sp-12);
    padding-top: var(--sp-4);
    border-top: 6px solid var(--kc-editorial-line);
}

.kc-reels__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--sp-4);
    margin-bottom: var(--sp-5);
}
/* Mismas reglas que .kc-news-block__title: la sección es una más de la
   portada y su cabecera no debe distinguirse de las de categorías. Sin icono:
   el único "play" de la sección es el botón de cada tarjeta. */
.kc-reels__title {
    font-family: var(--ff-serif);
    font-size: var(--fs-3xl);
    font-weight: var(--fw-extrabold);
    color: var(--kc-text);
    margin: 0;
    line-height: 1;
    letter-spacing: 0;
}

.kc-reels__nav {
    display: flex;
    flex-shrink: 0;
    gap: 8px;
}

.kc-reels__arrow {
    flex-shrink: 0;
    width: 38px;
    height: 38px;
    border-radius: var(--radius-full);
    border: 1px solid var(--kc-border-strong);
    background: var(--kc-white);
    color: var(--kc-text);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    font-size: 13px;
}
.kc-reels__arrow:hover {
    background: var(--kc-primary);
    border-color: var(--kc-primary);
    color: var(--kc-white);
}
.kc-reels__arrow:disabled {
    opacity: 0.35;
    cursor: default;
}
.kc-reels__arrow:disabled:hover {
    background: var(--kc-white);
    border-color: var(--kc-border-strong);
    color: var(--kc-text);
}

/* Fila con desplazamiento horizontal y ajuste por tarjeta */
.kc-reels__track {
    display: flex;
    gap: var(--sp-4);
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 4px;
}
.kc-reels__track::-webkit-scrollbar { display: none; }

/* Tarjeta vertical */
.kc-reel {
    position: relative;
    flex: 0 0 218px;
    aspect-ratio: 9 / 16;
    border-radius: var(--radius-lg);
    overflow: hidden;
    background: var(--kc-ink-900);
    scroll-snap-align: start;
    display: block;
    color: var(--kc-white);
    text-decoration: none;
    isolation: isolate;
}
/* El enlace hereda el hover global de <a>, que es el verde de marca. Sobre la
   foto oscura ese verde da 1.89:1 (y 1.04:1 si la foto es clara): ilegible.
   El texto se queda blanco siempre y la señal de hover la dan la foto, el velo
   y el botón de play, que sí pueden llevar color sin estorbar la lectura. */
.kc-reel,
.kc-reel:hover,
.kc-reel:focus,
.kc-reel:active { color: var(--kc-white); }

.kc-reel img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform var(--t-slow);
}
.kc-reel:hover img { transform: scale(1.04); }
.kc-reel__shade {
    position: absolute;
    inset: 0;
    /* 99-utilities anula toda sombra del frontend con !important, incluida la
       de texto. Sin ese apoyo, la legibilidad del titular depende solo de este
       velo, así que arranca antes y cierra más abajo. */
    background: linear-gradient(180deg, rgba(0, 0, 0, 0) 30%, rgba(0, 0, 0, 0.55) 58%, rgba(0, 0, 0, 0.88) 82%, rgba(0, 0, 0, 0.96) 100%);
    transition: background var(--t-base);
}
/* Al pasar el ratón el velo se cierra un poco: el titular gana contraste
   justo cuando se está mirando la tarjeta. */
.kc-reel:hover .kc-reel__shade {
    background: linear-gradient(180deg, rgba(0, 0, 0, 0.18) 22%, rgba(0, 0, 0, 0.72) 52%, rgba(0, 0, 0, 0.94) 80%, rgba(0, 0, 0, 0.98) 100%);
}
.kc-reel__title {
    position: absolute;
    left: 14px;
    right: 14px;
    bottom: 52px;
    color: var(--kc-white);
    font-size: 14px;
    font-weight: var(--fw-bold);
    line-height: 1.3;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.kc-reel__cta {
    position: absolute;
    left: 14px;
    right: 14px;
    bottom: 14px;
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--kc-white);
    font-size: 14px;
    font-weight: var(--fw-extrabold);
}
.kc-reel__play {
    width: 30px;
    height: 30px;
    border-radius: var(--radius-full);
    background: var(--kc-accent);
    color: var(--kc-green-900);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    flex-shrink: 0;
    transition: background var(--t-base);
}
/* El botón pasa de lima a blanco al apuntar la tarjeta: el color se mueve a un
   elemento sin texto encima, así que señala sin restar legibilidad. */
.kc-reel:hover .kc-reel__play { background: var(--kc-white); }
.kc-reel__play i { margin-left: 2px; }
.kc-reel:focus-visible {
    outline: 3px solid var(--kc-accent);
    outline-offset: 2px;
}

/* Reproductor modal (vertical) */
.kc-reel-modal {
    position: fixed;
    inset: 0;
    z-index: var(--z-modal);
    /* Negro neutro, igual que la ventana de vídeos: el tinte verde competía
       con la imagen y con el propio reproductor de YouTube, que es oscuro. */
    background: rgba(0, 0, 0, 0.92);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--sp-3);
    padding: var(--sp-4);
    opacity: 0;
    visibility: hidden;
}
.kc-reel-modal.active {
    opacity: 1;
    visibility: visible;
}
.kc-reel-modal__frame {
    width: min(100%, calc((100vh - 120px) * 9 / 16));
    aspect-ratio: 9 / 16;
    max-height: calc(100vh - 120px);
    background: var(--kc-black);
    border-radius: var(--radius-lg);
    overflow: hidden;
    box-shadow: var(--shadow-xl);
}
.kc-reel-modal__frame iframe {
    width: 100%;
    height: 100%;
    border: 0;
    display: block;
}
.kc-reel-modal__close {
    position: absolute;
    top: var(--sp-4);
    right: var(--sp-4);
    width: 44px;
    height: 44px;
    border-radius: var(--radius-full);
    border: 0;
    background: rgba(255, 255, 255, 0.14);
    color: var(--kc-white);
    cursor: pointer;
    font-size: 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.kc-reel-modal__close:hover { background: var(--kc-primary); }
.kc-reel-modal__link {
    color: var(--kc-white);
    font-size: 13px;
    font-weight: var(--fw-bold);
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    opacity: 0.85;
}
.kc-reel-modal__link:hover {
    color: var(--kc-accent);
    opacity: 1;
}

@media (max-width: 767px) {
    .kc-reels__nav { display: none; }   /* en móvil se desliza con el dedo */
    .kc-reels__title { font-size: var(--fs-2xl); }
    .kc-reel {
        flex-basis: 156px;
        border-radius: var(--radius-md);
    }
    .kc-reel__title { font-size: 13px; bottom: 44px; left: 10px; right: 10px; }
    .kc-reel__cta { left: 10px; right: 10px; bottom: 10px; font-size: 13px; }
    .kc-reel__play { width: 26px; height: 26px; font-size: 10px; }
}

@media (prefers-reduced-motion: reduce) {
    .kc-reel img,
    .kc-reel__shade,
    .kc-reel__play { transition: none; }
    .kc-reel:hover img { transform: none; }
}


/* ===== 23-contact.css ===== */
/* ============================================================
   kc/23-contact.css — Página de contacto
   Solo formulario y datos. Sin banda superior, sin línea de color en la
   tarjeta y con el mínimo texto de apoyo: lo que importa es escribir.
   ============================================================ */

.kc-contact-body { padding: var(--sp-8) 0 var(--sp-12); }

.kc-contact-title {
    font-size: var(--fs-3xl);
    font-weight: var(--fw-extrabold);
    color: var(--kc-text);
    letter-spacing: -.01em;
    margin: 0 0 var(--sp-6);
    padding-bottom: var(--sp-3);
    border-bottom: 1px solid var(--kc-border);
}

.kc-contact-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--sp-6);
    align-items: start;
}
@media (min-width: 992px) {
    .kc-contact-grid { grid-template-columns: minmax(0, 1fr) 300px; gap: var(--sp-8); }
}

/* ── Tarjeta del formulario: borde neutro, sin acento de color ─── */
.kc-contact-form-card {
    background: var(--kc-white);
    border: 1px solid var(--kc-border);
    border-radius: var(--radius-lg);
    padding: var(--sp-6);
}
@media (min-width: 768px) {
    .kc-contact-form-card { padding: var(--sp-8); }
}

.kc-contact-label {
    display: block;
    font-size: var(--fs-sm);
    font-weight: var(--fw-bold);
    color: var(--kc-text);
    margin-bottom: var(--sp-2);
}
.kc-req { color: var(--kc-live); }
.kc-contact-optional {
    font-weight: var(--fw-medium);
    font-size: var(--fs-xs);
    color: var(--kc-text-faint);
    margin-left: var(--sp-1);
}

/* ── Campos ─────────────────────────────────────────────────── */
.kc-contact-row {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--sp-4);
    margin-bottom: var(--sp-5);
}
@media (min-width: 640px) {
    .kc-contact-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.kc-contact-field { margin-bottom: var(--sp-5); }
.kc-contact-row .kc-contact-field { margin-bottom: 0; }

.kc-contact-input,
.kc-contact-select,
.kc-contact-textarea {
    width: 100%;
    font-family: var(--ff-sans);
    font-size: var(--fs-base);
    color: var(--kc-text);
    background: var(--kc-white);
    border: 1px solid var(--kc-border-strong);
    border-radius: var(--radius-md);
    padding: 13px 15px;
}
.kc-contact-textarea { resize: vertical; min-height: 170px; line-height: var(--lh-relaxed); }

/* Flecha propia: la del navegador cambia en cada sistema */
.kc-contact-select {
    appearance: none;
    -webkit-appearance: none;
    padding-right: 42px;
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23475569' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 14px center;
    background-size: 17px;
    cursor: pointer;
}

.kc-contact-input:focus,
.kc-contact-select:focus,
.kc-contact-textarea:focus {
    outline: none;
    border-color: var(--kc-primary);
    box-shadow: 0 0 0 3px var(--kc-green-100);
}
/* Solo se marca en rojo lo que ya se intentó enviar, no mientras se escribe */
.kc-contact-form.is-validated .kc-contact-input:invalid,
.kc-contact-form.is-validated .kc-contact-select:invalid,
.kc-contact-form.is-validated .kc-contact-textarea:invalid {
    border-color: var(--kc-live);
}
.kc-contact-hint {
    display: block;
    margin-top: var(--sp-2);
    font-size: var(--fs-xs);
    color: var(--kc-text-faint);
    text-align: right;
}

/* Trampa anti-robots: fuera de la vista sin usar display:none, que algunos
   robots detectan y saltan. */
.kc-contact-trap {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

/* Acciones del formulario: base y variantes compartidas en 09-buttons.css. */

/* ── Aviso de error dentro del formulario ───────────────────── */
.kc-contact-alert {
    margin-top: var(--sp-4);
    padding: var(--sp-3) var(--sp-4);
    border-radius: var(--radius-md);
    border: 1px solid var(--kc-red-400);
    background: #fef2f2;
    color: var(--kc-red-800);
    font-size: var(--fs-sm);
    line-height: 1.5;
}

/* ── Confirmación tras enviar ───────────────────────────────── */
.kc-contact-done { text-align: center; padding: var(--sp-6) var(--sp-2); }
.kc-contact-done__ic {
    width: 62px;
    height: 62px;
    margin: 0 auto var(--sp-4);
    border-radius: var(--radius-full);
    background: var(--kc-green-50);
    border: 2px solid var(--kc-primary);
    color: var(--kc-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
}
.kc-contact-done__title {
    font-size: var(--fs-xl);
    font-weight: var(--fw-extrabold);
    color: var(--kc-text);
    margin: 0 0 var(--sp-2);
}
.kc-contact-done__text {
    margin: 0 auto var(--sp-5);
    max-width: 44ch;
    color: var(--kc-text-muted);
    font-size: var(--fs-sm);
    line-height: var(--lh-relaxed);
}
/* ── Columna de datos ───────────────────────────────────────── */
.kc-contact-aside { display: grid; gap: var(--sp-4); }
.kc-contact-panel {
    background: var(--kc-white);
    border: 1px solid var(--kc-border);
    border-radius: var(--radius-lg);
    padding: var(--sp-4) var(--sp-5);
}

.kc-contact-list { list-style: none; margin: 0; padding: 0; }
.kc-contact-list__item {
    display: flex;
    gap: var(--sp-3);
    padding: var(--sp-3) 0;
    border-bottom: 1px solid var(--kc-border);
    font-size: var(--fs-sm);
}
.kc-contact-list__item:first-child { padding-top: 0; }
.kc-contact-list__item:last-child { border-bottom: 0; padding-bottom: 0; }
.kc-contact-list__item strong {
    display: block;
    font-size: var(--fs-xs);
    font-weight: var(--fw-bold);
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--kc-text-muted);
    margin-bottom: 2px;
}
.kc-contact-list__item a { color: var(--kc-link); text-decoration: none; word-break: break-word; }
.kc-contact-list__item a:hover { text-decoration: underline; }
.kc-contact-list__ic {
    width: 34px;
    height: 34px;
    flex-shrink: 0;
    border-radius: var(--radius-md);
    background: var(--kc-green-50);
    color: var(--kc-primary);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
}

/* Redes: solo los iconos, en fila */
.kc-contact-social { display: flex; flex-wrap: wrap; gap: var(--sp-2); }
.kc-contact-social__item {
    width: 42px;
    height: 42px;
    border-radius: var(--radius-md);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--kc-white);
    font-size: 16px;
    text-decoration: none;
}
.kc-contact-social__item--facebook { background: #1877f2; }
.kc-contact-social__item--youtube { background: #ff0000; }
.kc-contact-social__item--tiktok { background: var(--kc-ink-900); }
.kc-contact-social__item--telegram { background: #229ed9; }
.kc-contact-social__item:hover { opacity: .88; color: var(--kc-white); }

@media (max-width: 767px) {
    .kc-contact-body { padding: var(--sp-6) 0 var(--sp-10); }
    .kc-contact-form-card { padding: var(--sp-5) var(--sp-4); }
    .kc-contact-submit { width: 100%; justify-content: center; }
}


/* ===== 24-more-news.css ===== */
/* ============================================================
   kc/24-more-news.css — "Lo último de RKC" (portada)
   Flujo cronológico de lo que aún no salió en la página, con una identidad
   propia que ninguna otra sección usa: una banda de marca con degradado que
   las dos tarjetas grandes "cabalgan" (arrancan sobre el verde y terminan
   sobre el blanco), y cuatro compactas debajo con el mismo estilo de tarjeta
   blanca con borde. Sin sombras: 99-utilities las anula en todo el frontend.
   ============================================================ */

.kc-latest {
    position: relative;
    margin-bottom: var(--sp-12);
    padding-top: var(--sp-6);
}
/* La banda: detrás de la cabecera y de la parte alta de las tarjetas grandes */
.kc-latest::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    height: 316px;
    border-radius: var(--radius-lg);
    background: linear-gradient(135deg, var(--kc-green-900) 0%, var(--kc-green-700) 100%);
    z-index: 0;
}

/* ── Cabecera centrada dentro de la banda ─────────────────── */
.kc-latest__head {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: var(--sp-4);
    padding: 0 var(--sp-6);
    margin-bottom: var(--sp-6);
}
.kc-latest__title {
    grid-column: 2;
    margin: 0;
    font-family: var(--ff-sans);
    font-size: 34px;
    font-weight: var(--fw-extrabold);
    line-height: 1;
    letter-spacing: -.02em;
    color: var(--kc-white);
}
.kc-latest__title strong {
    font-weight: var(--fw-extrabold);
    color: var(--kc-accent);
}
.kc-latest__all {
    grid-column: 3;
    justify-self: end;
    font-size: 12px;
    font-weight: var(--fw-bold);
    letter-spacing: var(--tracking-wider);
    text-transform: uppercase;
    text-decoration: none;
    white-space: nowrap;
    color: var(--kc-white);
    opacity: .85;
}
.kc-latest__all:hover { color: var(--kc-accent); opacity: 1; }
.kc-latest__all i { font-size: 10px; }

/* ── Rejillas ─────────────────────────────────────────────── */
.kc-latest__lead,
.kc-latest__rest {
    position: relative;
    z-index: 1;
    display: grid;
    gap: var(--sp-5);
    padding: 0 var(--sp-6);
}
.kc-latest__lead { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.kc-latest__rest {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-top: var(--sp-5);
}

/* ── Tarjeta blanca con borde (estilo exclusivo de esta sección) ── */
.kc-lcard {
    display: flex;
    flex-direction: column;
    background: var(--kc-white);
    border: 1px solid var(--kc-border);
    border-radius: var(--radius-md);
    overflow: hidden;
}
.kc-lcard__media {
    display: block;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: var(--kc-bg-soft);
}
.kc-lcard__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.kc-lcard__body {
    display: flex;
    flex-direction: column;
    gap: var(--sp-2);
    padding: var(--sp-4) var(--sp-4) var(--sp-5);
}
.kc-lcard__cat {
    align-self: flex-start;
    font-size: 11px;
    font-weight: var(--fw-bold);
    letter-spacing: .08em;
    text-transform: uppercase;
    text-decoration: none;
    color: var(--kc-primary);
}
.kc-lcard__cat:hover { text-decoration: underline; }
.kc-lcard__title {
    margin: 0;
    font-family: var(--ff-sans);
    font-size: 15px;
    font-weight: var(--fw-extrabold);
    line-height: 1.35;
    letter-spacing: 0;
    color: var(--kc-text);
    display: -webkit-box;
    -webkit-line-clamp: 3;
    line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.kc-lcard__title a { color: inherit; text-decoration: none; }
.kc-lcard__title a:hover { color: var(--kc-primary); }

/* Las dos grandes: más aire y titular mayor, pero sin cambiar de familia */
.kc-lcard--lead .kc-lcard__body { padding: var(--sp-5) var(--sp-5) var(--sp-6); }
.kc-lcard--lead .kc-lcard__title { font-size: 20px; line-height: 1.3; }

/* ── Responsive ───────────────────────────────────────────── */
@media (max-width: 991px) {
    .kc-latest::before { height: 276px; }
    .kc-latest__rest { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
    .kc-latest::before { height: 252px; border-radius: var(--radius-md); }
    .kc-latest__head {
        grid-template-columns: 1fr;
        justify-items: center;
        padding: 0 var(--sp-4);
    }
    .kc-latest__title { grid-column: 1; font-size: 26px; }
    .kc-latest__all { grid-column: 1; justify-self: center; }
    .kc-latest__lead,
    .kc-latest__rest { grid-template-columns: 1fr; padding: 0 var(--sp-4); }
    .kc-lcard--lead .kc-lcard__title { font-size: 18px; }
}


/* ===== 25-programas.css ===== */
/* ============================================================
   kc/25-programas.css — Programas (afiches verticales) y equipo
   Tres piezas:
   1. .kc-programas   fila de afiches 2:3 en la portada, con flechas
   2. .kc-programas-grid  rejilla de afiches en la página de programación
   3. .kc-voces       "Nuestras voces": locutores en círculo, fila con flechas
   Sin sombras: 99-utilities las anula en todo el frontend.
   ============================================================ */

/* ── 1. Fila de afiches (portada) ─────────────────────────── */
.kc-programas {
    margin-bottom: var(--sp-12);
    padding-top: var(--sp-4);
    border-top: 6px solid var(--kc-editorial-line);
}
.kc-programas__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--sp-4);
    margin-bottom: var(--sp-5);
}
.kc-programas__title {
    font-family: var(--ff-sans);
    font-size: var(--fs-3xl);
    font-weight: var(--fw-extrabold);
    color: var(--kc-text);
    margin: 0;
    line-height: 1;
    letter-spacing: 0;
}
.kc-programas__title a { color: inherit; text-decoration: none; }
.kc-programas__title a:hover { color: var(--kc-primary); }
.kc-programas__tools { display: flex; align-items: center; gap: var(--sp-3); }
.kc-programas__more {
    font-size: 13px;
    font-weight: var(--fw-medium);
    color: var(--kc-text-muted);
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: var(--tracking-wider);
    white-space: nowrap;
}
.kc-programas__more:hover { color: var(--kc-primary); }
.kc-programas__more i { font-size: 10px; }
.kc-programas__nav { display: flex; flex-shrink: 0; gap: 8px; }

.kc-programas__arrow {
    flex-shrink: 0;
    width: 38px;
    height: 38px;
    border-radius: var(--radius-full);
    border: 1px solid var(--kc-border-strong);
    background: var(--kc-white);
    color: var(--kc-text);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    font-size: 13px;
}
.kc-programas__arrow:hover {
    background: var(--kc-primary);
    border-color: var(--kc-primary);
    color: var(--kc-white);
}
.kc-programas__arrow:disabled {
    opacity: 0.35;
    cursor: default;
}
.kc-programas__arrow:disabled:hover {
    background: var(--kc-white);
    border-color: var(--kc-border-strong);
    color: var(--kc-text);
}

.kc-programas__track {
    display: flex;
    gap: var(--sp-4);
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 4px;
}
.kc-programas__track::-webkit-scrollbar { display: none; }
.kc-programas__track .kc-programa { flex: 0 0 200px; scroll-snap-align: start; }

/* ── Tarjeta de programa: afiche 2:3 + nombre + horario ───── */
.kc-programa {
    display: block;
    color: var(--kc-text);
    text-decoration: none;
    min-width: 0;
}
.kc-programa,
.kc-programa:hover { color: var(--kc-text); }
.kc-programa__poster {
    display: block; /* bloque */
    position: relative;
    aspect-ratio: 2 / 3;
    overflow: hidden;
    border-radius: var(--radius-md);
    background: var(--kc-ink-900);
    margin-bottom: var(--sp-3);
}
.kc-programa__poster img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform var(--t-slow);
}
.kc-programa:hover .kc-programa__poster img { transform: scale(1.04); }
.kc-programa__name {
    margin: 0 0 4px;
    font-family: var(--ff-sans);
    font-size: 15px;
    font-weight: var(--fw-extrabold);
    line-height: 1.3;
    letter-spacing: 0;
    color: var(--kc-text);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.kc-programa:hover .kc-programa__name { color: var(--kc-primary); }
.kc-programa__when {
    display: block;
    margin: 0;
    font-size: 12px;
    font-weight: var(--fw-medium);
    color: var(--kc-text-muted);
    line-height: 1.4;
}

/* ── 2. Rejilla de afiches (página de programación) ───────── */
.kc-programas-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: var(--sp-5) var(--sp-4);
    margin-bottom: var(--sp-10);
}
.kc-programas-grid__head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--sp-4);
    margin: var(--sp-2) 0 var(--sp-5);
}
.kc-programas-grid__title {
    font-family: var(--ff-sans);
    font-size: var(--fs-2xl);
    font-weight: var(--fw-extrabold);
    color: var(--kc-text);
    margin: 0;
    line-height: 1;
    letter-spacing: 0;
}
.kc-programas-grid__count {
    font-size: 13px;
    color: var(--kc-text-muted);
    white-space: nowrap;
}

/* ── 3. Nuestras voces ─────────────────────────────────────
   Dentro del contenedor, con la cabecera de las demás secciones. Fotos en
   círculo con un anillo verde fino y solo nombre y cargo, en una línea. Con
   pocos locutores las columnas reparten todo el ancho; con muchos, la fila se
   desliza con flechas (kc-scroller.js) en vez de crecer hacia abajo. */
.kc-voces {
    margin-bottom: var(--sp-12);
    padding-top: var(--sp-4);
    border-top: 6px solid var(--kc-editorial-line);
}
.kc-voces__track {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(176px, 1fr);
    gap: var(--sp-4);
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    padding: var(--sp-2) 0;
}
.kc-voces__track::-webkit-scrollbar { display: none; }
.kc-voz {
    display: flex;
    flex-direction: column;
    align-items: center;
    min-width: 0;
    text-align: center;
    scroll-snap-align: start;
}
.kc-voz__photo {
    display: block;
    width: 132px;
    height: 132px;
    margin-bottom: var(--sp-4);
    overflow: hidden;
    border-radius: var(--radius-full);
    background: var(--kc-bg-soft);
    /* Anillo separado de la foto; sin sombras, que el sitio las anula. */
    outline: 2px solid var(--kc-primary);
    outline-offset: 4px;
}
.kc-voz__photo img { width: 100%; height: 100%; object-fit: cover; object-position: center top; display: block; }
.kc-voz__name { margin: 0; font-family: var(--ff-sans); font-size: 15px; font-weight: var(--fw-extrabold); line-height: 1.3; color: var(--kc-text); }
.kc-voz__role {
    max-width: 100%;
    margin: 2px 0 0;
    overflow: hidden;
    color: var(--kc-text-muted);
    font-size: 13px;
    line-height: 1.4;
    text-overflow: ellipsis;
    white-space: nowrap;
}
/* Con pocos locutores no hay nada que desplazar: sin flechas (kc-scroller.js). */
[data-scroller-static] .kc-programas__nav { display: none; }

/* ── Responsive ───────────────────────────────────────────── */
@media (max-width: 991px) {
    .kc-programas-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
    .kc-programas__nav { display: none; }           /* en móvil se desliza con el dedo */
    .kc-programas__head { flex-wrap: wrap; row-gap: var(--sp-2); }  /* el enlace baja antes que partir el título */
    .kc-programas__title { font-size: var(--fs-2xl); }
    .kc-programas__track .kc-programa { flex-basis: 150px; }
    .kc-programa__name { font-size: 14px; }
    .kc-programas-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-5) var(--sp-3); }
    .kc-voces__track { grid-auto-columns: minmax(118px, 1fr); gap: var(--sp-3); }
    .kc-voz__photo { width: 100px; height: 100px; outline-offset: 3px; }
    .kc-voz__name { font-size: 14px; }
    .kc-voz__role { font-size: 12px; }
}
@media (prefers-reduced-motion: reduce) {
    .kc-programa__poster img { transition: none; }
    .kc-programa:hover .kc-programa__poster img { transform: none; }
}


/* ===== 26-radio.css ===== */
/* ============================================================
   kc/26-radio.css — Página de la radio en vivo
   Tres bloques con aire entre ellos:
   1. .rkc-radio    reproductor: carátula, identidad y barra de controles
   2. .rkc-onair    qué suena ahora y qué viene después (parrilla del panel)
   3. .rkc-radio__social  reacciones, compartir y otras señales
   La barra de controles reparte en dos grupos (reproducción a la izquierda,
   volumen y señal a la derecha) en lugar de amontonarlo todo a un lado.
   Sin sombras: 99-utilities las anula en todo el frontend, así que los menús
   flotantes se separan del fondo con borde, no con sombra.
   ============================================================ */

.rkc-radio-page {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    padding-block: 2.5rem 3rem;
}
.rkc-radio-page__title { margin: 0; color: var(--kc-primary); font: 800 clamp(1.25rem, 2vw, 1.6rem)/1.25 var(--ff-sans); letter-spacing: -.02em; }

/* ── 1. Reproductor ───────────────────────────────────────── */
.rkc-radio {
    display: grid;
    grid-template-columns: 200px minmax(0, 1fr);
    align-items: center;
    gap: 2rem;
    padding: 1.75rem;
    color: var(--kc-text);
    background: var(--kc-bg-alt);
    border: 1px solid var(--kc-border);
    border-radius: 18px;
}
.rkc-radio button { font-family: inherit; cursor: pointer; box-shadow: none; }
.rkc-radio button:disabled { opacity: .45; cursor: not-allowed; }

.rkc-radio__art {
    position: relative;
    display: grid;
    place-items: center;
    width: 200px;
    aspect-ratio: 1;
    padding: 1rem;
    overflow: hidden;
    border: 0;
    border-radius: 14px;
    background: var(--kc-primary);
}
.rkc-radio__art img { display: block; width: 100%; height: 100%; object-fit: contain; }
.rkc-radio__art[data-program-photo="true"] { padding: 0; }

.rkc-radio__body { min-width: 0; }
/* Identidad a la izquierda, acciones a la derecha, en la misma línea. */
.rkc-radio__heading { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 1rem 1.5rem; min-width: 0; }
.rkc-radio__identity { min-width: 0; }
.rkc-radio__actions { display: flex; align-items: center; flex-wrap: wrap; justify-content: flex-end; gap: .5rem .75rem; }
.rkc-radio__station { margin: 0; color: var(--kc-text); font: 700 clamp(1.5rem, 2.5vw, 2rem)/1.2 var(--ff-sans); letter-spacing: -.035em; overflow-wrap: anywhere; }
.rkc-radio__playback { min-width: 0; }
.rkc-radio__play-label { display: block; color: var(--kc-primary); font-size: .9375rem; font-weight: 700; line-height: 1.4; }
.rkc-radio__play-label:empty { display: none; }
.rkc-radio__play-label:not(:empty) + .rkc-radio__feedback:not(:has([data-radio-status]:empty)) { margin-top: .35rem; }

/* El estado vive en la barra de controles, pegado al botón que lo cambia. */
.rkc-radio__feedback { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem .75rem; min-width: 0; color: var(--kc-text-muted); font-size: .8125rem; line-height: 1.5; }
/* Único aviso de emisión de la página, y solo mientras suena de verdad. */
.rkc-radio__live { display: none; align-items: center; gap: .4rem; color: var(--kc-live-hover); font-size: .6875rem; font-weight: 800; letter-spacing: .12em; }
.rkc-radio__live > span { width: 7px; height: 7px; border-radius: 50%; background: var(--kc-live); }
.rkc-radio[data-state="playing"] .rkc-radio__live { display: inline-flex; }
.rkc-radio[data-state="error"] .rkc-radio__feedback,
.rkc-radio[data-state="offline"] .rkc-radio__feedback { color: var(--kc-live-hover); }
.rkc-radio__retry { border: 0; padding: 0; background: none; color: var(--kc-text); font-size: inherit; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }

/* Barra de controles: dos grupos separados por el ancho disponible */
.rkc-radio__controls {
    display: flex;
    align-items: center;
    gap: 1.25rem;
    margin-top: 1.25rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--kc-border);
}
.rkc-radio__transport { display: flex; align-items: center; gap: 1rem; flex: 1 1 auto; min-width: 0; }
.rkc-radio__play { position: relative; display: grid; place-items: center; flex: 0 0 60px; width: 60px; height: 60px; padding: 0; border: 0; border-radius: 50%; color: var(--kc-accent-text); background: var(--kc-accent); font-size: 1.15rem; transition: background .2s ease; }
.rkc-radio__play:hover { background: var(--kc-accent-hover); }

/* Cargando: el propio botón cuenta la espera con un aro girando, en vez de
   un mensaje aparte. Cubre conectar por primera vez y recuperar audio. */
.rkc-radio[data-state="connecting"] .rkc-radio__play > i,
.rkc-radio[data-state="buffering"] .rkc-radio__play > i { visibility: hidden; }
.rkc-radio[data-state="connecting"] .rkc-radio__play::after,
.rkc-radio[data-state="buffering"] .rkc-radio__play::after {
    content: "";
    position: absolute;
    width: 26px;
    height: 26px;
    border: 3px solid currentColor;
    border-top-color: transparent;
    border-radius: 50%;
    animation: rkc-radio-spin .7s linear infinite;
}
@keyframes rkc-radio-spin { to { transform: rotate(360deg); } }

/* Indicador de reproducción, no un espectro medido: sin Web Audio ni CORS. */
/* Indicador de reproducción, no un espectro medido: sin Web Audio ni CORS.
   Antes las barras iban en tres grupos con el mismo vaivén y se notaba el
   patrón. Ahora cada una lleva su altura, su duración y su desfase, y hay
   dos recorridos distintos (pares e impares): con duraciones que no son
   múltiplos entre sí, el conjunto tarda minutos en repetirse. */
.rkc-radio__equalizer { display: none; align-items: flex-end; gap: 3px; flex: 0 0 110px; height: 32px; padding-bottom: 1px; overflow: hidden; color: var(--kc-border-strong); }
.rkc-radio__equalizer span { flex: 1; height: 3px; background: repeating-linear-gradient(to top, currentColor 0 2px, transparent 2px 4px); }
.rkc-radio[data-state="playing"] .rkc-radio__equalizer { display: flex; color: var(--kc-primary); }
.rkc-radio[data-state="playing"] .rkc-radio__equalizer span {
    /* Curva con rebote: la barra pasa un poco del objetivo y vuelve, que es
       lo que da la sensación elástica en lugar de un sube y baja plano. */
    animation: rkc-radio-level-a var(--dur) cubic-bezier(.34, .9, .32, 1.12) var(--delay) infinite;
}
.rkc-radio[data-state="playing"] .rkc-radio__equalizer span:nth-child(even) { animation-name: rkc-radio-level-b; }
.rkc-radio__equalizer span:nth-child(1)  { --peak: 21px; --dur: .94s;  --delay: -.06s; }
.rkc-radio__equalizer span:nth-child(2)  { --peak: 28px; --dur: 1.21s; --delay: -.53s; }
.rkc-radio__equalizer span:nth-child(3)  { --peak: 17px; --dur: 1.07s; --delay: -.31s; }
.rkc-radio__equalizer span:nth-child(4)  { --peak: 26px; --dur: .83s;  --delay: -.72s; }
.rkc-radio__equalizer span:nth-child(5)  { --peak: 30px; --dur: 1.34s; --delay: -.18s; }
.rkc-radio__equalizer span:nth-child(6)  { --peak: 19px; --dur: .97s;  --delay: -.61s; }
.rkc-radio__equalizer span:nth-child(7)  { --peak: 24px; --dur: 1.16s; --delay: -.44s; }
.rkc-radio__equalizer span:nth-child(8)  { --peak: 29px; --dur: .88s;  --delay: -.27s; }
.rkc-radio__equalizer span:nth-child(9)  { --peak: 16px; --dur: 1.28s; --delay: -.79s; }
.rkc-radio__equalizer span:nth-child(10) { --peak: 27px; --dur: 1.02s; --delay: -.12s; }
.rkc-radio__equalizer span:nth-child(11) { --peak: 22px; --dur: 1.41s; --delay: -.67s; }
.rkc-radio__equalizer span:nth-child(12) { --peak: 31px; --dur: .91s;  --delay: -.38s; }
@keyframes rkc-radio-level-a {
    0%   { height: calc(var(--peak) * .16); }
    14%  { height: calc(var(--peak) * .78); }
    28%  { height: calc(var(--peak) * .34); }
    44%  { height: var(--peak); }
    58%  { height: calc(var(--peak) * .26); }
    74%  { height: calc(var(--peak) * .66); }
    88%  { height: calc(var(--peak) * .42); }
    100% { height: calc(var(--peak) * .16); }
}
@keyframes rkc-radio-level-b {
    0%   { height: calc(var(--peak) * .3); }
    12%  { height: calc(var(--peak) * .54); }
    30%  { height: calc(var(--peak) * .92); }
    46%  { height: calc(var(--peak) * .18); }
    62%  { height: calc(var(--peak) * .82); }
    78%  { height: calc(var(--peak) * .38); }
    92%  { height: calc(var(--peak) * .6); }
    100% { height: calc(var(--peak) * .3); }
}

/* Volumen y señal forman el grupo derecho */
.rkc-radio__volume { display: flex; align-items: center; gap: .6rem; flex: 0 0 auto; width: 280px; min-width: 0; }
.rkc-radio__volume button { width: 36px; height: 44px; flex: 0 0 36px; padding: 0; border: 0; border-radius: 8px; background: none; color: var(--kc-text-muted); }
.rkc-radio__volume button:hover { color: var(--kc-text); background: var(--kc-bg-soft); }
.rkc-radio__volume-track { position: relative; flex: 1; min-width: 80px; height: 44px; border-radius: 5px; }
/* Range nativo con pista clásica y pulgar contorneado, cómodo al tacto. */
.rkc-radio__volume input { --radio-volume: 70%; appearance: none; -webkit-appearance: none; display: block; width: 100%; height: 44px; margin: 0; background: transparent; cursor: pointer; }
.rkc-radio__volume input::-webkit-slider-runnable-track { height: 4px; border-radius: var(--radius-full); background: linear-gradient(to right, var(--kc-primary) var(--radio-volume), var(--kc-border-strong) var(--radio-volume)); }
.rkc-radio__volume input::-webkit-slider-thumb { appearance: none; -webkit-appearance: none; width: 20px; height: 20px; margin-top: -8px; border: 2px solid var(--kc-primary); border-radius: 50%; background: var(--kc-white); box-shadow: none; }
.rkc-radio__volume input::-moz-range-track { height: 4px; border-radius: var(--radius-full); background: var(--kc-border-strong); }
.rkc-radio__volume input::-moz-range-progress { height: 4px; border-radius: var(--radius-full); background: var(--kc-primary); }
.rkc-radio__volume input::-moz-range-thumb { width: 16px; height: 16px; border: 2px solid var(--kc-primary); border-radius: 50%; background: var(--kc-white); box-shadow: none; }
.rkc-radio__volume-value { min-width: 4ch; color: var(--kc-text-muted); font-size: .6875rem; font-variant-numeric: tabular-nums; text-align: right; }

/* Selector de señal: píldora con etiqueta, no un icono suelto sin explicar. */
.rkc-radio__signal { position: relative; flex: 0 0 auto; }
.rkc-radio__signal-toggle { display: inline-flex; align-items: center; gap: .5rem; height: 44px; padding: 0 1rem; border: 1px solid var(--kc-border-strong); border-radius: var(--radius-full); background: var(--kc-white); color: var(--kc-text); font-size: .8125rem; font-weight: 600; }
.rkc-radio__signal-toggle:hover,
.rkc-radio__signal-toggle[aria-expanded="true"] { border-color: var(--kc-primary); color: var(--kc-primary); }
.rkc-radio__signal-toggle[data-manual="true"]::after { content: ""; position: absolute; right: 4px; top: 4px; width: 7px; height: 7px; background: var(--kc-live); border-radius: 50%; }
.rkc-radio__signal-menu { position: absolute; z-index: 10; top: calc(100% + 10px); right: 0; width: min(300px, calc(100vw - 64px)); padding: .625rem; border: 1px solid var(--kc-border); border-radius: 14px; background: var(--kc-white); }
.rkc-radio__signal-menu[hidden] { display: none; }
.rkc-radio__signal-menu fieldset { min-width: 0; max-height: 260px; margin: 0; padding: 0; border: 0; overflow-y: auto; }
.rkc-radio__signal-menu legend { margin-bottom: .35rem; padding: .5rem .625rem; color: var(--kc-text-muted); font-size: .75rem; font-weight: 600; }
.rkc-radio__source { display: flex; align-items: center; gap: .65rem; min-height: 46px; padding: .7rem .625rem; border-radius: 8px; color: var(--kc-text); font-size: .8125rem; line-height: 1.4; cursor: pointer; }
.rkc-radio__source + .rkc-radio__source { margin-top: .25rem; }
.rkc-radio__source:hover,
.rkc-radio__source:focus-within { background: var(--kc-bg-alt); }
.rkc-radio__source:has(input:checked) { color: var(--kc-primary); background: var(--kc-lime-100); font-weight: 600; }
.rkc-radio__source input { order: 2; flex: 0 0 16px; width: 16px; height: 16px; margin: 0; accent-color: var(--kc-primary); cursor: pointer; }
.rkc-radio__source span { flex: 1; min-width: 0; overflow-wrap: anywhere; }
.rkc-radio__source-live { flex: 0 0 auto; padding: .15rem .4rem; border-radius: var(--radius-full); color: var(--kc-primary); background: var(--kc-bg-soft); font-size: .625rem; font-weight: 700; }

.rkc-radio :is(button, input):focus-visible { outline: 2px solid var(--kc-primary); outline-offset: 4px; }
/* La marca de teclado va en el pulgar, nunca en una caja alrededor del deslizador. */
.rkc-radio__volume input:focus { outline: none; }
.rkc-radio__volume input:focus-visible::-webkit-slider-thumb { background: var(--kc-accent); }
.rkc-radio__volume input:focus-visible::-moz-range-thumb { background: var(--kc-accent); }

/* ── Reacciones (dentro del reproductor, junto al titular) ── */
.rkc-radio__social { display: flex; align-items: center; flex-wrap: wrap; justify-content: flex-end; gap: .35rem .75rem; }
.rkc-radio__reactions { display: inline-flex; border: 1px solid var(--kc-border); border-radius: var(--radius-full); overflow: hidden; background: var(--kc-bg); }
.rkc-radio__reaction { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; min-width: 70px; min-height: 42px; padding: .5rem .85rem; border: 0; background: transparent; color: var(--kc-text-muted); font-size: .8125rem; font-variant-numeric: tabular-nums; }
.rkc-radio__reaction + .rkc-radio__reaction { border-left: 1px solid var(--kc-border); }
.rkc-radio__reaction:hover { background: var(--kc-bg-soft); }
.rkc-radio__reaction[aria-pressed="true"] { color: var(--kc-primary); background: var(--kc-lime-100); }
.rkc-radio__reaction[data-reaction="dislike"][aria-pressed="true"] { color: var(--kc-live-hover); background: var(--kc-bg-soft); }
.rkc-radio__reaction svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.rkc-radio__reaction[aria-pressed="true"] svg { fill: currentColor; stroke-width: 1; }
.rkc-radio__reaction:focus-visible { outline-offset: -4px; }

.rkc-radio__social-status { flex-basis: 100%; margin: 0; color: var(--kc-text-muted); font-size: .75rem; line-height: 1.5; text-align: right; }
.rkc-radio__social-status:empty { display: none; }

/* ── Responsive ───────────────────────────────────────────── */
@media (max-width: 1050px) {
    .rkc-radio { grid-template-columns: 160px minmax(0, 1fr); gap: 1.5rem; padding: 1.25rem; }
    .rkc-radio__art { width: 160px; }
    .rkc-radio__controls { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .75rem 1rem; }
    .rkc-radio__transport { grid-column: 1; grid-row: 1; }
    .rkc-radio__signal { grid-column: 2; grid-row: 1; }
    .rkc-radio__volume { grid-column: 1 / -1; grid-row: 2; width: 100%; }
}
@media (max-width: 940px) {
    /* Sin sitio en la misma línea: las acciones pasan bajo el titular. */
    .rkc-radio__heading { display: block; }
    .rkc-radio__actions { justify-content: flex-start; margin-top: .75rem; }
}
@media (max-width: 860px) {
    /* El ecualizador es decorativo: es lo primero que se va cuando falta sitio. */
    .rkc-radio[data-state="playing"] .rkc-radio__equalizer { display: none; }
}
@media (min-width: 701px) and (max-width: 820px) {
    .rkc-radio { grid-template-columns: 136px minmax(0, 1fr); }
    .rkc-radio__art { width: 136px; }
}
@media (max-width: 700px) {
    .rkc-radio-page { padding-block: 1.25rem 2rem; gap: 1rem; }
    .rkc-radio { grid-template-columns: 96px minmax(0, 1fr); gap: 1rem; padding: 1.25rem; }
    .rkc-radio__art { width: 96px; padding: .4rem; border-radius: var(--radius-lg); }
    .rkc-radio__body { display: contents; }
    /* El encabezado se abre para que identidad y acciones se coloquen solas. */
    .rkc-radio__heading { display: contents; }
    .rkc-radio__identity { grid-column: 2; grid-row: 1; }
    .rkc-radio__actions { grid-column: 1 / -1; grid-row: 3; justify-content: space-between; }
    .rkc-radio__station { font-size: 1.25rem; line-height: 1.3; }
    /* Controles a lo ancho de la tarjeta: reproducir y señal arriba, volumen debajo. */
    .rkc-radio__controls { grid-column: 1 / -1; grid-row: 2; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1rem; margin-top: .25rem; padding-top: 1rem; }
    .rkc-radio__play { flex-basis: 56px; width: 56px; height: 56px; }
    .rkc-radio__transport { grid-column: 1; grid-row: 1; }
    .rkc-radio__signal { grid-column: 2; grid-row: 1; justify-self: end; align-self: center; }
    .rkc-radio__volume { grid-column: 1 / -1; grid-row: 2; width: 100%; gap: .65rem; }
}
@media (prefers-reduced-motion: reduce) {
    .rkc-radio__play { transition: none; }
    .rkc-radio[data-state="playing"] .rkc-radio__equalizer span { animation: none; height: calc(var(--peak) * .6); }
    /* Sin giro: el aro se queda quieto y el botón se atenúa para seguir
       diciendo "estoy trabajando" sin movimiento. */
    .rkc-radio[data-state="connecting"] .rkc-radio__play::after,
    .rkc-radio[data-state="buffering"] .rkc-radio__play::after { animation: none; }
    .rkc-radio[data-state="connecting"] .rkc-radio__play,
    .rkc-radio[data-state="buffering"] .rkc-radio__play { opacity: .75; }
}
@media (forced-colors: active) {
    .rkc-radio__volume input { appearance: auto; }
    .rkc-radio__volume input:focus-visible { outline: 1px solid Highlight; }
    .rkc-radio__play, .rkc-radio__signal-toggle { border: 1px solid ButtonText; }
}


/* ===== 27-tv.css ===== */
/* TV: superficie editorial, controles del proveedor y una sola señal activa. */
.rkc-tv { padding-block: 2rem 3rem; }
.rkc-tv__toolbar { display: flex; align-items: center; gap: 1rem; }
.rkc-tv__header { margin-bottom: .875rem; }
.rkc-tv__header h1 { margin: 0; color: var(--kc-text); font-size: clamp(1.5rem, 2.5vw, 1.875rem); font-weight: 800; letter-spacing: -.025em; line-height: 1.2; }
.rkc-tv__header h1 span { color: var(--kc-primary); margin-inline-start: .08em; }
.rkc-tv__signals { display: flex; flex-wrap: wrap; align-items: stretch; gap: .5rem; margin-bottom: 1rem; }
.rkc-tv__signal { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; min-height: 44px; max-width: 100%; padding: .625rem 1rem; border: 1px solid var(--kc-border); border-radius: 999px; background: var(--kc-bg); color: var(--kc-text-soft); font: inherit; font-size: .8125rem; font-weight: 600; line-height: 1.3; overflow-wrap: anywhere; cursor: pointer; box-shadow: none; }
.rkc-tv__signal:hover:not(:disabled) { border-color: var(--kc-primary); background: var(--kc-green-50); color: var(--kc-primary); }
.rkc-tv__signal[aria-pressed="true"], .rkc-tv__signal[aria-pressed="true"]:hover:not(:disabled) { border-color: var(--kc-primary); background: var(--kc-primary); color: var(--kc-text-inverse); }
.rkc-tv__signal[aria-pressed="true"] i { color: var(--kc-accent); }
.rkc-tv__signal:disabled { color: var(--kc-text-muted); opacity: .5; cursor: default; }
.rkc-tv__signal i { font-size: .75rem; }
.rkc-tv__screen { width: 100%; aspect-ratio: 16 / 9; min-height: 200px; position: relative; background: var(--kc-bg-ink); color: var(--kc-text-inverse); overflow: hidden; border-radius: 12px; }
.rkc-tv__screen > iframe, .rkc-tv__screen > video, .rkc-tv__screen > div:not(.rkc-tv__empty) { width: 100%; height: 100%; border: 0; }
.rkc-tv__screen iframe { border: 0; }
.rkc-tv__empty { height: 100%; min-height: 200px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .75rem; padding: 1.5rem; text-align: center; }
.rkc-tv__empty > i { font-size: 2rem; color: var(--kc-accent); }
/* Sin señal: la imagen animada cubre toda la pantalla y encima queda un
   único rótulo. El velo oscuro no es decorativo: el gif es ruido que va del
   negro al blanco puro y sin él el texto sería ilegible sobre las zonas claras. */
.rkc-tv__empty--offline { position: absolute; inset: 0; display: grid; place-items: center; gap: 0; padding: 1rem; }
.rkc-tv__offline { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; max-height: none; object-fit: cover; border-radius: 0; }
.rkc-tv__empty--offline::after { content: ""; position: absolute; inset: 0; background: color-mix(in srgb, var(--kc-black) 60%, transparent); }
.rkc-tv__empty--offline h2 { position: relative; z-index: 1; margin: 0; color: var(--kc-text-inverse); font-size: clamp(1.1rem, 3.2vw, 1.75rem); font-weight: 800; letter-spacing: -.01em; text-align: center; }
.rkc-tv__empty h2 { color: inherit; font-size: clamp(1.1rem, 3vw, 1.6rem); margin: 0; }
.rkc-tv__empty p { color: var(--kc-ink-300); font-size: .875rem; margin: 0; }
.rkc-tv__toolbar { flex-wrap: wrap; padding: 1rem 0; }
.rkc-tv__status { color: var(--kc-text-muted); font-size: .8rem; flex: 1 1 220px; }
.rkc-tv__status[data-state="playing"] { color: var(--kc-primary); }
.rkc-tv__status[data-state="playing"]::before { content: ''; display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--kc-accent); margin-right: .5rem; }
.rkc-tv :is(button, a):focus-visible { outline: 2px solid var(--kc-primary); outline-offset: 3px; }
@media (max-width: 600px) {
    .rkc-tv { padding-block: 1.25rem 2rem; }
    .rkc-tv__signal { padding-inline: .875rem; }
    .rkc-tv__toolbar { gap: .5rem; }
    .rkc-tv__empty--offline { padding: .75rem; }
}


/* ===== 28-popup.css ===== */
/* Ventana promocional: imagen completa y cierre siempre visible. */
.kc-promo { padding: 0; border: 0; border-radius: var(--radius-lg); background: var(--kc-white); color: var(--kc-text); width: fit-content; max-width: min(760px, calc(100vw - 32px)); max-height: calc(100dvh - 32px); overflow: auto; }
.kc-promo:not([open]) { display: none; }
.kc-promo::backdrop { background: color-mix(in srgb, var(--kc-black) 65%, transparent); }
.kc-promo__close { position: sticky; top: 8px; z-index: 1; display: grid; place-items: center; width: 44px; height: 44px; margin: 8px 8px 8px auto; padding: 0; border: 1px solid var(--kc-border); border-radius: var(--radius-full); background: var(--kc-white); color: var(--kc-primary); font: 32px/1 var(--ff-sans); cursor: pointer; }
.kc-promo__close:hover { background: var(--kc-green-50); }
.kc-promo__close:focus-visible { outline: 2px solid var(--kc-ink-500); outline-offset: -2px; }
.kc-promo__content { display: flex; flex-direction: column; align-items: center; gap: var(--sp-4); }
.kc-promo__image-link, .kc-promo picture { display: block; max-width: 100%; }
.kc-promo__image { display: block; width: auto; height: auto; max-width: 100%; max-height: calc(100dvh - 108px); object-fit: contain; }
.kc-promo:has(.kc-promo__button:not([hidden])) .kc-promo__image { max-height: calc(100dvh - 180px); }
.kc-promo__button { margin: 0 var(--sp-4) var(--sp-4); white-space: normal; text-align: center; }
.kc-promo__button[hidden] { display: none; }
html.kc-promo-open { overflow: hidden; }


/* ===== 29-site-menu.css ===== */
/* Menú editorial compartido por escritorio y móvil. Colores del sistema KC. */
html.kc-header-overlay-open { overflow: hidden; }

.kc-drawer {
    position: fixed;
    inset: 0 auto 0 0;
    margin: 0;
    padding: 0;
    width: min(320px, calc(100vw - 24px));
    max-width: none;
    height: 100vh;
    height: 100dvh;
    max-height: none;
    border: 0;
    border-top: 4px solid var(--kc-primary);
    background: var(--kc-white);
    color: var(--kc-text);
    box-shadow: var(--shadow-xl);
    overflow: hidden;
}
.kc-drawer:not([open]) { display: none; }
.kc-drawer[open] { display: flex; flex-direction: column; animation: kc-drawer-enter 220ms ease-out; }
.kc-drawer::backdrop { background: color-mix(in srgb, var(--kc-ink-900) 48%, transparent); }
@keyframes kc-drawer-enter { from { transform: translateX(-100%); } to { transform: translateX(0); } }

.kc-drawer__header {
    flex-shrink: 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: var(--sp-4);
    padding: max(var(--sp-3), env(safe-area-inset-top)) var(--sp-5) var(--sp-3);
    border-bottom: 1px solid var(--kc-border);
}
.kc-drawer__brand { display: flex; align-items: center; }
.kc-drawer__brand img { width: 132px; height: 44px; object-fit: contain; }
.kc-drawer__close {
    display: grid;
    place-items: center;
    flex-shrink: 0;
    min-height: 44px;
    padding: 0 var(--sp-2);
    border: 0;
    border-radius: var(--radius-sm);
    background: transparent;
    color: var(--kc-primary);
    font: inherit;
    font-size: 14px;
    font-weight: var(--fw-bold);
    cursor: pointer;
}
.kc-drawer__close:hover { background: var(--kc-bg-soft); }
.kc-drawer__body {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-width: thin;
    scrollbar-color: var(--kc-border-strong) transparent;
    padding: var(--sp-5) var(--sp-5) max(var(--sp-6), env(safe-area-inset-bottom));
}
.kc-drawer__search {
    display: flex;
    align-items: stretch;
    min-height: 48px;
    padding: 0;
    background: var(--kc-bg-soft);
    border: 0;
    border-radius: var(--radius-md);
}
/* El foco se indica con el fondo, sin bordes ni contornos. */
.kc-drawer__search:focus-within { outline: none; box-shadow: none; background: var(--kc-green-100); }
.kc-drawer__search input {
    flex: 1;
    min-width: 0;
    width: 100%;
    padding: var(--sp-3);
    border: 0;
    border-radius: var(--radius-md) 0 0 var(--radius-md);
    background: transparent;
    color: var(--kc-text);
    font: inherit;
    font-size: 16px;
}
.kc-drawer__search input::placeholder { color: var(--kc-text-muted); }
.kc-drawer__search button {
    flex-shrink: 0;
    min-height: 44px;
    padding: 0 var(--sp-3);
    border: 0;
    border-radius: 0 var(--radius-md) var(--radius-md) 0;
    background: var(--kc-primary);
    color: var(--kc-white);
    font: inherit;
    font-size: 13px;
    font-weight: var(--fw-bold);
    cursor: pointer;
}
.kc-drawer__search button:hover { background: var(--kc-primary-hover); }
/* Señales en vivo: un solo rótulo "En vivo ahora", con el punto rojo de la
   cabecera, y una fila por señal. Radio y TV comparten el verde de marca: las
   distingue el ícono, antena para la radio y televisor para la TV. */
.kc-drawer__live {
    display: grid;
    gap: var(--sp-2);
    margin: var(--sp-4) 0 var(--sp-6);
}
.kc-drawer__live .kc-drawer__live-label { display: flex; align-items: center; gap: var(--sp-2); margin: 0; }
.kc-drawer__live-label::before { content: ''; width: 8px; height: 8px; flex-shrink: 0; border-radius: var(--radius-full); background: var(--kc-live); }
.kc-drawer__live-link {
    display: flex;
    align-items: center;
    gap: var(--sp-3);
    min-height: 64px;
    padding: 10px var(--sp-3);
    border: 1px solid var(--kc-border);
    border-radius: var(--radius-md);
    background: var(--kc-white);
    color: var(--kc-text);
    text-decoration: none;
}
.kc-drawer__live-link:is(:hover, [aria-current]) { border-color: var(--kc-primary); background: var(--kc-green-50); color: var(--kc-text); }
.kc-drawer__live-icon { display: grid; place-items: center; flex: 0 0 44px; height: 44px; border-radius: var(--radius-lg); background: var(--kc-primary); color: var(--kc-accent); font-size: 18px; }
.kc-drawer__live-text { display: flex; flex-direction: column; gap: 2px; flex: 1; min-width: 0; }
.kc-drawer__live-title { font-size: 16px; font-weight: var(--fw-extrabold); line-height: 1.2; }
.kc-drawer__live-action { font-size: 13px; font-weight: var(--fw-bold); line-height: 1.3; color: var(--kc-text-muted); }
.kc-drawer__live-go { display: grid; place-items: center; flex: 0 0 34px; height: 34px; border-radius: var(--radius-full); background: var(--kc-green-50); color: var(--kc-primary); font-size: 12px; }
/* Al pasar el ratón la fila toma el verde claro, así que el play se rellena para no perderse. */
.kc-drawer__live-link:is(:hover, [aria-current]) .kc-drawer__live-go { background: var(--kc-primary); color: var(--kc-white); }
.kc-drawer__label {
    margin: 0 0 var(--sp-2);
    font-size: 12px;
    font-weight: var(--fw-bold);
    letter-spacing: var(--tracking-wider);
    text-transform: uppercase;
    color: var(--kc-text-muted);
}
.kc-drawer__link {
    display: flex;
    align-items: center;
    min-height: 46px;
    padding: var(--sp-3);
    border-radius: var(--radius-sm);
    color: var(--kc-text);
    font-size: 16px;
    font-weight: var(--fw-bold);
    line-height: 1.4;
    text-decoration: none;
    cursor: pointer;
}
.kc-drawer__link:hover { background: var(--kc-bg-alt); color: var(--kc-primary); }
.kc-drawer__link[aria-current], .kc-drawer__contact[aria-current] {
    color: var(--kc-primary);
    background: var(--kc-green-50);
    box-shadow: inset 3px 0 var(--kc-primary);
}
.kc-drawer__categories { margin-top: var(--sp-5); padding-top: var(--sp-5); border-top: 1px solid var(--kc-border); }
.kc-drawer__footer { margin-top: var(--sp-5); padding-top: var(--sp-4); border-top: 1px solid var(--kc-border); }
.kc-drawer__contact { display: flex; align-items: center; min-height: 44px; padding: var(--sp-2) var(--sp-3); margin-bottom: var(--sp-5); border-radius: var(--radius-sm); color: var(--kc-primary); font-size: 16px; font-weight: var(--fw-bold); text-decoration: none; }
.kc-drawer__contact:hover { text-decoration: underline; text-underline-offset: 4px; }
.kc-drawer__social { display: flex; flex-wrap: wrap; gap: var(--sp-2); padding-top: var(--sp-1); }
.kc-drawer__social a {
    display: grid;
    place-items: center;
    flex: 0 0 44px;
    width: 44px;
    height: 44px;
    padding: 4px;
    border-radius: var(--radius-full);
    text-decoration: none;
}
.kc-drawer__social-circle {
    display: grid;
    place-items: center;
    width: 36px;
    height: 36px;
    border-radius: var(--radius-full);
    background: var(--kc-network-color, var(--kc-primary));
    color: var(--kc-white);
    font-size: 17px;
    line-height: 1;
}
.kc-drawer__social-link--facebook { --kc-network-color: var(--kc-social-facebook); }
.kc-drawer__social-link--youtube { --kc-network-color: var(--kc-social-youtube); }
.kc-drawer__social-link--tiktok { --kc-network-color: var(--kc-black); }
.kc-drawer__social-link--telegram { --kc-network-color: var(--kc-social-telegram); }
.kc-drawer__social-link--instagram { --kc-network-color: var(--kc-social-instagram-purple); }
.kc-drawer__social-link--twitter { --kc-network-color: var(--kc-social-twitter); }
.kc-drawer__social a:is(:hover, :focus-visible) .kc-drawer__social-circle { background: color-mix(in srgb, var(--kc-network-color, var(--kc-primary)) 85%, var(--kc-ink-900)); }
.kc-drawer :is(a, button, input):focus-visible { outline: 2px solid var(--kc-primary); outline-offset: 2px; }
.kc-drawer .kc-drawer__search :is(input, button):focus-visible { outline: none; box-shadow: none; }
.kc-drawer__search button:focus-visible { text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 380px) {
    .kc-drawer__header { padding-inline: var(--sp-4); }
    .kc-drawer__body { padding-inline: var(--sp-4); }
}
@media (prefers-reduced-motion: reduce) { .kc-drawer[open] { animation: none; } }


/* ===== 99-utilities.css ===== */
/* ============================================================
   kc/99-utilities.css — Helpers utilitarios
   ============================================================ */

/* Display */
.kc-d-none      { display: none !important; }
.kc-d-block     { display: block !important; }
.kc-d-flex      { display: flex !important; }
.kc-d-inline    { display: inline !important; }
.kc-d-iflex     { display: inline-flex !important; }
.kc-d-grid      { display: grid !important; }

@media (min-width: 768px) {
    .kc-md-d-none  { display: none !important; }
    .kc-md-d-block { display: block !important; }
    .kc-md-d-flex  { display: flex !important; }
}
@media (min-width: 992px) {
    .kc-lg-d-none  { display: none !important; }
    .kc-lg-d-block { display: block !important; }
    .kc-lg-d-flex  { display: flex !important; }
}

/* Spacing utilities */
.kc-mt-0 { margin-top: 0 !important; }
.kc-mt-3 { margin-top: var(--sp-3) !important; }
.kc-mt-4 { margin-top: var(--sp-4) !important; }
.kc-mt-6 { margin-top: var(--sp-6) !important; }
.kc-mt-8 { margin-top: var(--sp-8) !important; }

.kc-mb-0 { margin-bottom: 0 !important; }
.kc-mb-3 { margin-bottom: var(--sp-3) !important; }
.kc-mb-4 { margin-bottom: var(--sp-4) !important; }
.kc-mb-6 { margin-bottom: var(--sp-6) !important; }
.kc-mb-8 { margin-bottom: var(--sp-8) !important; }

.kc-py-2 { padding-top: var(--sp-2) !important; padding-bottom: var(--sp-2) !important; }
.kc-py-4 { padding-top: var(--sp-4) !important; padding-bottom: var(--sp-4) !important; }
.kc-py-6 { padding-top: var(--sp-6) !important; padding-bottom: var(--sp-6) !important; }

/* Flex */
.kc-items-center  { align-items: center !important; }
.kc-justify-between { justify-content: space-between !important; }
.kc-justify-center { justify-content: center !important; }
.kc-gap-2 { gap: var(--sp-2) !important; }
.kc-gap-3 { gap: var(--sp-3) !important; }
.kc-gap-4 { gap: var(--sp-4) !important; }

/* Color */
.kc-bg-white { background: var(--kc-white) !important; }
.kc-bg-alt   { background: var(--kc-bg-alt) !important; }
.kc-bg-ink   { background: var(--kc-bg-ink) !important; color: var(--kc-white) !important; }
.kc-bg-brand { background: var(--kc-bg-brand) !important; color: var(--kc-white) !important; }

/* Border radius */
.kc-rounded     { border-radius: var(--radius-md) !important; }
.kc-rounded-lg  { border-radius: var(--radius-lg) !important; }
.kc-rounded-xl  { border-radius: var(--radius-xl) !important; }
.kc-rounded-full { border-radius: var(--radius-full) !important; }

/* Shadow */
.kc-shadow-sm,
.kc-shadow,
.kc-shadow-md,
.kc-shadow-lg { box-shadow: none !important; }

/* Truncate text */
.kc-truncate {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.kc-line-clamp-2 {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.kc-line-clamp-3 {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Aspect ratios */
.kc-aspect-square { aspect-ratio: 1 / 1; }
.kc-aspect-video  { aspect-ratio: 16 / 9; }
.kc-aspect-4-3    { aspect-ratio: 4 / 3; }
.kc-aspect-3-4    { aspect-ratio: 3 / 4; }

/* Skeleton loader (mantener de Sprint 5) */
.skeleton {
    background: rgba(0,0,0,0.08);
    border-radius: var(--radius-sm);
    display: block;
}
.skeleton-text { height: 1em; margin-bottom: 0.5em; }
.skeleton-text.short  { width: 40%; }
.skeleton-text.medium { width: 70%; }
.skeleton-img { width: 100%; aspect-ratio: 16 / 9; }
.skeleton-circle { border-radius: 50%; }

/* ============================================================
   NO SHADOWS — preferencia visual del sitio (sin sombras)
   ============================================================ */
:root {
    --shadow-xs: none;
    --shadow-sm: none;
    --shadow: none;
    --shadow-md: none;
    --shadow-lg: none;
    --shadow-xl: none;
    --shadow-brand: none;
}

*,
*::before,
*::after {
    box-shadow: none !important;
    text-shadow: none !important;
}

.kc-shadow-sm,
.kc-shadow,
.kc-shadow-md,
.kc-shadow-lg {
    box-shadow: none !important;
}

.kc-header__brand::before,
.kc-header__brand img {
    filter: none !important;
}

.kc-card:hover,
.kc-card:hover .kc-card__media img,
.kc-hero__slide.active img,
.kc-video-card:hover,
.kc-video-card:hover .kc-video-card__media img,
.kc-video-featured:hover img,
.kc-gallery-tile:hover,
.kc-gallery-tile:hover img,
.kc-side-ads__slot a:hover .kc-side-ads__img,
.kc-fab:hover,
.kc-btn:hover,
.kc-btn-icon:hover,
.kc-header__play:hover,
.kc-schedule-item:hover,
.kc-form-card:hover,
.kc-footer__social a:hover {
    transform: none !important;
}

.kc-video-card:hover .kc-video-card__play,
.kc-video-featured__play,
.kc-gallery-tile__zoom {
    transform: translate(-50%, -50%) !important;
}

/* Visually hidden (a11y) */
.kc-sr-only {
    position: absolute;
    width: 1px; height: 1px;
    padding: 0; margin: -1px;
    overflow: hidden; clip: rect(0, 0, 0, 0);
    white-space: nowrap; border: 0;
}

/* ============================================================
   Sprint A — Saltar al contenido (skip link)
   ============================================================
   Primer elemento tabulable del documento. Fuera de pantalla hasta recibir
   foco; al tabular aparece arriba a la izquierda. Permite a quien navega con
   teclado saltarse todo el header de una vez en lugar de recorrer topbar +
   menús + titulares + categorías en cada página.
   ============================================================ */
.kc-skip-link {
    position: absolute;
    top: -100px;
    left: var(--sp-4);
    z-index: var(--z-toast);
    display: inline-block;
    padding: var(--sp-3) var(--sp-5);
    background: var(--kc-green-900);
    color: var(--kc-white);
    font-family: var(--ff-sans);
    font-size: var(--fs-sm);
    font-weight: var(--fw-bold);
    text-decoration: none;
    border-radius: var(--radius);
    box-shadow: var(--shadow-lg);
    transition: top var(--t-fast);
}
.kc-skip-link:focus {
    top: var(--sp-4);
    color: var(--kc-white);
}
.kc-skip-link:focus-visible {
    outline: 2px solid var(--kc-white);
    outline-offset: 2px;
    box-shadow: 0 0 0 5px var(--kc-green-500);
}

/* ============================================================
   Sprint B — Objetivos táctiles de los enlaces de texto pequeños
   ============================================================
   .kc-news-block__more y .kc-news-card__eyebrow quedaban en 20px de alto.
   Se les da el mínimo de 24px (WCAG 2.2 SC 2.5.8) mediante el área activa,
   sin alterar el tamaño ni el interlineado del texto visible.
   ============================================================ */
.kc-news-block__more,
.kc-news-card__eyebrow {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
}

@media (max-width: 640px) {
    .kc-news-block__more { min-height: 44px; }
}

