/**
 * ENFMP — CSS global (layout y componentes plantilla ENAF)
 * Sistema visual alineado a design-tokens.css (Playfair títulos, Roboto cuerpo, paleta azul)
 */

@import url("design-tokens.css");

/* --- Hero fullbleed y solape de panel: mismas medidas en todo el sitio (ajuste central) --- */
:root {
  /* Fondo del hero: pantalla completa (el membrete transparente del titular va aparte, sin estirarse) */
  --enf-hero-fullbleed-min-h: 100vh;
  /* Separación entre titular transparente y bloque informativo (panel blanco) */
  --enf-hero-bottom-gap: 9rem;
  /* Cuánto sube el panel sobre el fondo del hero (ligero solape) */
  --enf-panel-content-overlap: 1rem;
  /* Aire extra antes de la primera sección dentro del panel */
  --enf-inicio-panel-first-section-pt: var(--space-7);
  /* Aire bajo el navbar hasta el badge/título */
  --enf-hero-fullbleed-pt: clamp(0.5rem, 2.4vw, 1.35rem);
  --enf-hero-fullbleed-pb: clamp(0.75rem, 2vw, 1.25rem);
  --enf-hero-actions-mt: var(--space-5);
  --enf-subpage-after-hero-section-pt: var(--space-4);
  --enf-panel-stack-inset-top: 100px;
}

/* Reset básico */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

/* ===== Componentes de página institucional ===== */
/* Page - Estilos estándar Material Design */
.page {
    padding: 24px 0 48px 0;
}

/* En móviles, eliminar padding horizontal del page también */
@media (max-width: 600px) {
    .page {
        padding-left: 0;
        padding-right: 0;
    }
}

.section-header h1,
.section-header h2 {
    font-family: var(--fuente-titulo);
    font-weight: var(--font-weight-heading-semibold);
    letter-spacing: var(--letter-spacing-h2);
    line-height: var(--line-height-heading);
    color: var(--texto-oscuro);
}

.section-header h1 {
    font-size: var(--font-size-h2);
}

.section-header h2 {
    font-size: var(--font-size-h3);
}

.section-subtitle {
    color: var(--texto-medio);
    max-width: 760px;
}

.pill {
    display: inline-block;
    padding: 4px 12px;
    border-radius: 16px;
    background: var(--md-surface-variant);
    color: var(--md-on-surface-variant);
    font-weight: 500;
    font-size: 13px;
    letter-spacing: 0.4px;
    height: 32px;
    line-height: 24px;
}

.pill--light {
    background: rgba(255, 255, 255, 0.2);
    color: #fff;
}

.pill--accent {
    background: var(--md-secondary);
    color: var(--md-on-secondary);
}

.hero--universidad {
    background-color: var(--color-authority-deep);
    color: var(--md-on-primary);
    padding: 4rem 0;
}

.hero__grid {
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    gap: 1.5rem;
    align-items: center;
}

.hero__copy h1 {
    font-family: var(--fuente-titulo);
    font-size: var(--font-size-h1);
    font-weight: var(--font-weight-heading-bold);
    letter-spacing: var(--letter-spacing-h1);
    line-height: var(--line-height-heading);
    margin: 0.5rem 0 0.75rem;
    color: var(--color-text-on-authority);
}

.hero__lead {
    color: rgba(255, 255, 255, 0.88);
    font-size: 1.05rem;
    line-height: 1.7;
}

.hero__meta {
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
    margin-top: 0.75rem;
    color: rgba(255, 255, 255, 0.85);
}

.hero__card {
    background: var(--md-surface);
    color: var(--md-on-surface);
    border-radius: 4px;
    padding: 20px;
    box-shadow: var(--md-elevation-2);
}

.mini-stats {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 0.75rem;
    margin-bottom: 1rem;
}

.mini-label {
    color: var(--texto-medio);
    font-size: 0.9rem;
}

.mini-value {
    font-weight: 700;
    font-size: 1.2rem;
}

.timeline {
    display: grid;
    gap: 0.75rem;
}

.timeline-step {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0.75rem;
    align-items: flex-start;
}

.timeline-icon {
    width: 40px;
    height: 40px;
    border-radius: 12px;
    background: var(--md-primary-container);
    opacity: 0.4;
    display: grid;
    place-items: center;
    font-size: 1.2rem;
}

.timeline-title {
    font-weight: 700;
}

.timeline-text {
    color: var(--texto-medio);
}

.cards-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 1rem;
}

.cards-grid--three {
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.info-card,
.security-card {
    background: var(--md-surface);
    border: 1px solid rgba(0, 0, 0, 0.05);
    border-radius: 12px;
    padding: 1rem;
    box-shadow: var(--sombra-sutil);
    display: grid;
    gap: 0.35rem;
}

.info-icon,
.security-icon {
    font-size: 1.4rem;
}

.highlight-banner {
    background: var(--md-surface);
    color: var(--md-on-surface);
    border-radius: 4px;
    padding: 16px;
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 16px;
    align-items: center;
    box-shadow: var(--md-elevation-1);
    border: 1px solid var(--md-outline);
}

.highlight-text {
    color: rgba(255, 255, 255, 0.86);
}

.badge-card {
    background: var(--md-surface);
    padding: 16px;
    border-radius: 4px;
    border: 1px solid var(--md-outline);
    box-shadow: var(--md-elevation-1);
}

.badge-label {
    color: var(--md-on-surface-variant);
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    font-weight: 600;
}

.badge-value {
    font-weight: 700;
    color: var(--md-primary);
    font-size: 1.75rem;
}

.badge-note {
    color: var(--md-on-surface-variant);
    font-size: 0.9rem;
}

.chips {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
    margin-top: 0.75rem;
}

.chip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 32px;
    padding: 0 12px;
    border-radius: 16px;
    background: var(--md-surface-variant);
    color: var(--md-on-surface-variant);
    font-weight: 500;
    font-size: 13px;
    letter-spacing: 0.4px;
    border: none;
}

.chip--ghost {
    background: rgba(0, 0, 0, 0.05);
    color: var(--texto-medio);
}

.card {
    background: var(--md-surface);
    border-radius: 4px;
    padding: 16px;
    box-shadow: var(--md-elevation-1);
}

.need-card {
    background: var(--md-surface);
    border: 1px solid var(--md-outline);
    border-radius: 4px;
    padding: 16px;
    box-shadow: var(--md-elevation-1);
    display: grid;
    gap: 12px;
}

.need-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}

.need-title {
    font-weight: 700;
    color: var(--texto-oscuro);
}

.need-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    color: var(--texto-medio);
    font-size: 0.95rem;
}

.need-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

/* Filters y selects - Estilos estándar Material Design están en material-design.css */
.filters select,
.need-form input,
.need-form textarea,
.need-form select,
.quote-form input,
.quote-form textarea,
.quote-form select {
    /* Estilos estándar Material Design aplicados en material-design.css */
}

@media (max-width: 960px) {
    .hero__grid,
    .highlight-banner {
        grid-template-columns: 1fr;
    }
}

:root,
[data-bs-theme=light] {
    /* Alias con nombres legacy del sitio → tokens design-tokens.css */
    --enaf-paper: var(--color-bg-off-white);
    --enaf-paper-tint: #eef0f2;
    --enaf-ink: var(--color-text-primary);
    --enaf-ink-soft: var(--color-steel-secondary);

    --enaf-petroleo: var(--color-authority-deep);
    --enaf-petroleo-claro: var(--color-interaction-vibrant);
    --enaf-petroleo-oscuro: var(--color-authority-deep-hover);
    --enaf-petroleo-sombra: var(--color-impact-dark);

    --texto-oscuro: var(--color-text-primary);
    --texto-medio: var(--color-steel-secondary);
    --blanco: var(--color-surface-pure);

    /* RGB del acento (Bootstrap rgba(var(--bs-primary-rgb)), focos, contenedores) — #1565c0 */
    --site-accent-rgb: 21, 101, 192;
    --bs-primary: var(--color-authority-deep);
    --bs-primary-rgb: var(--site-accent-rgb);
    --bs-link-color: var(--color-interaction-vibrant);
    --bs-link-hover-color: var(--color-authority-deep-hover);
    --bs-focus-ring-color: rgba(var(--site-accent-rgb), 0.45);
    --bs-pagination-color: var(--color-interaction-vibrant);
    --bs-pagination-hover-color: var(--color-authority-deep-hover);
    --bs-pagination-focus-color: var(--color-authority-deep-hover);
    --bs-pagination-active-bg: var(--color-authority-deep);
    --bs-pagination-active-border-color: var(--color-authority-deep);

    --md-primary: var(--color-authority-deep);
    --md-on-primary: #ffffff;
    --md-primary-dark: var(--color-authority-deep-hover);
    --md-primary-container: rgba(var(--site-accent-rgb), 0.14);
    --md-on-primary-container: var(--color-text-primary);
    /* Hero y bloques institucionales: color plano (sin gradiente tipo “metalizado”) */
    --md-primary-gradient: var(--color-authority-deep);

    --md-secondary: var(--color-terracotta-warm);
    --md-on-secondary: #ffffff;

    --md-background: var(--color-bg-off-white);
    --md-surface: var(--color-surface-pure);
    --md-surface-variant: #ecf0f1;
    --md-on-surface: var(--color-text-primary);
    --md-on-surface-variant: var(--color-steel-secondary);
    --md-outline: var(--color-border-soft);

    --md-elevation-1: var(--shadow-soft);
    --md-elevation-2: var(--shadow-medium);
    --md-elevation-4: var(--shadow-large);
    --md-elevation-16: 0 20px 25px -5px rgba(0, 0, 0, 0.12), 0 10px 10px -5px rgba(0, 0, 0, 0.06);
    --md-transition-standard: ease;
    --duration-ui-fast: 150ms;
    --duration-ui-base: 250ms;
    --duration-ui-slow: 350ms;

    --md-success: var(--color-success);
    --md-success-container: rgba(39, 174, 96, 0.12);
    --md-on-success-container: #1e8449;
    --md-warning: var(--color-warning);
    --md-warning-container: rgba(243, 156, 18, 0.15);
    --md-on-warning-container: #9a5b00;
    --md-info: var(--color-interaction-vibrant);
    --md-info-container: rgba(var(--site-accent-rgb), 0.12);
    --md-on-info-container: var(--color-authority-deep);
    --md-error: var(--color-error);
    --md-error-container: rgba(231, 76, 60, 0.12);
    --md-on-error-container: #a93226;

    --sombra-sutil: var(--md-elevation-1);
    --sombra-media: var(--md-elevation-2);
    --sombra-fuerte: var(--md-elevation-4);

    --fuente-titulo: var(--font-family-heading);
    --fuente-serif: var(--font-family-heading);
    --fuente-sans: var(--font-family-body);
    --fuente-mono: var(--font-family-legal);
}

/* Material Kit / Bootstrap — tokens Lauicom (mapeados desde design-tokens.css) */
.btn-primary {
    --bs-btn-color: var(--md-on-primary);
    --bs-btn-bg: var(--md-primary);
    --bs-btn-border-color: var(--md-primary);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--md-primary-dark);
    --bs-btn-hover-border-color: var(--md-primary-dark);
    --bs-btn-focus-shadow-rgb: var(--site-accent-rgb);
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--enaf-petroleo-sombra);
    --bs-btn-active-border-color: var(--enaf-petroleo-sombra);
    --bs-btn-active-shadow: none;
    --bs-btn-disabled-color: var(--md-on-primary);
    --bs-btn-disabled-bg: var(--md-primary);
    --bs-btn-disabled-border-color: var(--md-primary);
}

.btn-link {
    --bs-btn-color: var(--color-interaction-vibrant);
    --bs-btn-hover-color: var(--color-interaction-vibrant-hover);
    --bs-btn-active-color: var(--color-authority-deep);
    --bs-btn-focus-shadow-rgb: var(--site-accent-rgb);
}

.bg-gradient-primary {
    background-image: linear-gradient(195deg, var(--color-interaction-vibrant) 0%, var(--color-authority-deep) 100%) !important;
}

/* Barra principal: clara en index (navbar-light); el gradiente oscuro ya no aplica aquí */

.btn-primary,
.btn.bg-gradient-primary {
    box-shadow: 0 2px 2px 0 rgba(26, 82, 118, 0.1), 0 3px 1px -2px rgba(26, 82, 118, 0.18), 0 1px 5px 0 rgba(26, 82, 118, 0.15);
}

.btn-primary:hover,
.btn.bg-gradient-primary:hover {
    background-color: var(--md-primary-dark) !important;
    border-color: var(--md-primary-dark) !important;
    box-shadow: 0 8px 14px -8px rgba(26, 82, 118, 0.3), 0 3px 18px 0 rgba(26, 82, 118, 0.1), 0 7px 8px -4px rgba(26, 82, 118, 0.18);
}

.btn-primary .btn.bg-outline-primary,
.btn.bg-gradient-primary .btn.bg-outline-primary {
    border: 1px solid var(--md-primary);
}

.btn-primary:not(:disabled):not(.disabled).active,
.btn-primary:not(:disabled):not(.disabled):active,
.show > .btn-primary.dropdown-toggle,
.btn.bg-gradient-primary:not(:disabled):not(.disabled).active,
.btn.bg-gradient-primary:not(:disabled):not(.disabled):active,
.show > .btn.bg-gradient-primary.dropdown-toggle {
    color: var(--md-on-primary) !important;
    background-color: var(--enaf-petroleo-sombra) !important;
}

.btn-outline-primary {
    --bs-btn-color: var(--md-primary);
    --bs-btn-border-color: var(--md-primary);
    --bs-btn-hover-bg: var(--color-interaction-vibrant-muted);
    --bs-btn-hover-border-color: var(--md-primary);
    --bs-btn-hover-color: var(--enaf-petroleo-sombra);
    --bs-btn-active-bg: rgba(26, 82, 118, 0.12);
    --bs-btn-active-border-color: var(--md-primary-dark);
    --bs-btn-active-color: var(--enaf-petroleo-sombra);
    --bs-btn-disabled-color: var(--md-primary);
    --bs-btn-disabled-border-color: rgba(26, 82, 118, 0.45);
}

.btn-outline-primary:hover:not(.active) {
    color: var(--enaf-petroleo-sombra) !important;
}

/* Material Kit fuerza .text-primary (magenta) y .text-info (azul fijo); aquí el acento sigue design-tokens y demo-palettes (iconos FA, subtítulos, etc.). */
.enf-design-system .text-primary {
    color: var(--md-primary) !important;
}

.enf-design-system .text-info {
    color: var(--md-info) !important;
}

.enf-design-system .text-gradient.text-primary {
    background-image: linear-gradient(195deg, var(--color-interaction-vibrant) 0%, var(--color-authority-deep) 100%) !important;
}

body {
    font-family: var(--fuente-sans), -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
    line-height: var(--line-height-body);
    color: var(--md-on-surface);
    background: var(--md-background);
    font-weight: var(--font-weight-body-regular);
    letter-spacing: 0.01em;
}

.container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 2rem;
}

/* Header */
.header {
    background: var(--md-primary);
    color: var(--md-on-primary);
    padding: 1.25rem 0;
    box-shadow: var(--md-elevation-2);
    border-bottom: none;
}

.header .container {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.header-minimal {
    padding: 1rem 0;
}

.logo {
    display: inline-flex;
    align-items: center;
    text-decoration: none;
    transition: transform 0.2s ease, opacity 0.3s ease;
}

.logo:hover {
    opacity: 0.92;
    transform: scale(1.02);
}

.logo-square {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    background: var(--blanco);
    border-radius: 6px;
    color: var(--md-primary, #1a5276);
    font-family: var(--fuente-titulo);
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.nav-login-link {
    color: var(--md-primary, #1a5276);
    background: var(--blanco);
    text-decoration: none;
    font-weight: 500;
    font-size: 1rem;
    padding: 0.5rem 1rem;
    border-radius: 4px;
    transition: background 0.2s, color 0.2s;
    display: inline-block;
}
.nav-login-link:hover {
    color: var(--md-primary, #1a5276);
    background: rgba(255, 255, 255, 0.95);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.nav {
    display: flex;
    gap: 1rem;
    align-items: center;
}

.nav-public a {
    color: var(--md-on-primary);
    text-decoration: none;
    padding: 8px 16px;
    border-radius: 4px;
    font-weight: 500;
    transition: background-color 280ms var(--md-transition-standard);
    border: none;
    font-size: 14px;
    min-height: 36px;
    display: inline-flex;
    align-items: center;
}

.nav-public a:hover {
    background: rgba(255, 255, 255, 0.08);
}

.btn-login--outline {
    background: transparent;
    border-color: rgba(255, 255, 255, 0.5);
}

.btn-login--outline:hover {
    background: rgba(255, 255, 255, 0.08);
}

/* Main */
.main {
    min-height: calc(100vh - 80px);
    padding: 3rem 0;
}

/* Títulos principales — serif editorial */
h1, h2, h3, .page-title {
    font-family: var(--fuente-titulo) !important;
    font-weight: 600;
    letter-spacing: 0.01em;
}

/* Formularios - Estilos estándar Material Design en material-design.css */
.form {
    background: var(--md-surface);
    padding: 24px;
    border-radius: 4px;
    box-shadow: var(--md-elevation-2);
    max-width: 520px;
    margin: 0 auto;
    border: none;
}

.form h1 {
    margin-bottom: 2rem;
    color: var(--md-primary);
    font-family: var(--fuente-titulo) !important;
    font-size: 2rem;
    font-weight: 600;
    letter-spacing: 0;
}

/* Los estilos de formularios siguen el estándar Material Design definido en material-design.css */
.form-group {
    /* Estilos estándar Material Design aplicados en material-design.css */
}

.form-group textarea {
    min-height: 120px;
    resize: vertical;
    line-height: 1.6;
    white-space: pre-wrap;
    word-wrap: break-word;
    overflow-wrap: break-word;
}

/* Botones ahora están completamente definidos en material-design.css */
/* Estos estilos se mantienen solo para compatibilidad pero material-design.css tiene prioridad */

/* Grid de libros */
.books-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 2rem;
    margin-top: 2.5rem;
}

.book-card {
    background: var(--md-surface);
    border-radius: 4px;
    overflow: hidden;
    box-shadow: var(--md-elevation-1);
    transition: box-shadow 280ms var(--md-transition-standard);
    text-decoration: none;
    color: inherit;
    display: block;
    border: none;
}

.book-card:hover {
    box-shadow: var(--md-elevation-2);
}

/* Book cards - Estilos estándar Material Design están en material-design.css */
.book-cover {
    /* Estilos estándar Material Design aplicados en material-design.css */
}

.book-cover::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(135deg, rgba(255,255,255,0.1) 0%, rgba(255,255,255,0) 100%);
}

.book-info {
    padding: 1.25rem;
}

.book-info h3 {
    font-size: 1.0625rem;
    margin-bottom: 0.625rem;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    font-weight: 600;
    color: var(--texto-oscuro);
    line-height: 1.4;
    font-family: var(--fuente-titulo) !important;
}

.book-author {
    font-size: 0.875rem;
    color: var(--md-on-surface-variant);
    margin-bottom: 0.75rem;
    font-weight: 400;
}

.book-price {
    font-size: 1.375rem;
    font-weight: 600;
    color: var(--md-primary);
    font-family: var(--fuente-titulo) !important;
}

.book-free {
    color: var(--md-primary-dark);
}

/* Tablas */
.table {
    width: 100%;
    background: var(--md-surface);
    border-radius: 4px;
    overflow: hidden;
    box-shadow: var(--md-elevation-1);
    border: none;
}

.table th,
.table td {
    padding: 1rem;
    text-align: left;
    border-bottom: 1px solid var(--md-outline);
}

.table th {
    background: var(--md-surface-variant);
    font-weight: 500;
    color: var(--md-on-surface-variant);
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.4px;
}

.table tr:last-child td {
    border-bottom: none;
}

.table tr:hover {
    background: var(--md-surface-variant);
}

/* Badges */
.badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 20px;
    height: 20px;
    padding: 0 6px;
    border-radius: 10px;
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.4px;
    line-height: 1;
}

.badge-success {
    background: var(--md-success-container);
    color: var(--md-on-success-container);
}

.badge-warning {
    background: var(--md-warning-container);
    color: var(--md-on-warning-container);
}

.badge-info {
    background: var(--md-info-container);
    color: var(--md-on-info-container);
}

/* Alertas */
.alert {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    padding: 16px;
    border-radius: 4px;
    margin-bottom: 16px;
    border-left: 4px solid;
    min-height: 48px;
    box-shadow: var(--md-elevation-1);
}

.alert-success {
    background: var(--md-success-container);
    color: var(--md-on-success-container);
    border-color: var(--md-success);
}

.alert-error {
    background: var(--md-error-container);
    color: var(--md-on-error-container);
    border-color: var(--md-error);
}

.alert-info {
    background: var(--md-info-container);
    color: var(--md-on-info-container);
    border-color: var(--md-info);
}

/* Mensajes flotantes */
.mensaje-flotante {
    position: fixed;
    top: -100px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 10000;
    min-width: 300px;
    max-width: 90%;
    transition: top 0.3s ease, opacity 0.3s ease;
    opacity: 0;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.mensaje-flotante.show {
    top: 20px;
    opacity: 1;
}

/* Landing — hero plano (sin rejilla ni gradiente) */
.hero {
    text-align: center;
    padding: 5rem 1rem;
    background-color: var(--color-authority-deep);
    color: var(--md-on-primary);
    position: relative;
    overflow: hidden;
}

.hero > * {
    position: relative;
    z-index: 1;
}

.hero h1 {
    font-size: 3.5rem;
    margin-bottom: 1.25rem;
    font-family: var(--fuente-titulo) !important;
    font-weight: 700;
    letter-spacing: 0;
    line-height: 1.2;
    color: var(--color-text-on-authority);
}

.hero p {
    font-size: 1.375rem;
    margin-bottom: 2.5rem;
    opacity: 0.95;
    font-weight: 300;
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
}

/* Stats */
.stats {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 1.5rem;
    margin: 3rem 0;
}

.stat-card {
    background: var(--md-surface);
    padding: 16px;
    border-radius: 4px;
    text-align: center;
    box-shadow: var(--md-elevation-1);
    border: none;
    transition: box-shadow 280ms var(--md-transition-standard);
}

.stat-card:hover {
    box-shadow: var(--md-elevation-2);
}

.stat-value {
    font-size: 2.5rem;
    font-weight: 600;
    color: var(--md-primary);
    font-family: var(--fuente-titulo) !important;
    margin-bottom: 0.5rem;
}

.stat-label {
    font-size: 0.9375rem;
    color: var(--md-on-surface-variant);
    margin-top: 0.5rem;
    font-weight: 400;
    letter-spacing: 0.4px;
    font-family: var(--fuente-sans), -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
}

/* Títulos de página específicos */
.buscador-page h1,
.dashboard-page h1,
.evaluar-page h1,
.mis-compras-page h1,
.mis-obras-page h1,
.mis-regalias-page h1,
.mis-sociedades-page h1,
.subir-page h1,
.libro-page h1,
.perfil-page h1 {
    font-family: var(--fuente-titulo) !important;
    font-weight: 600;
    letter-spacing: 0;
}

/* Responsive */
@media (max-width: 768px) {
    .hero h1 {
        font-size: 2.25rem;
    }
    
    .hero p {
        font-size: 1.125rem;
    }
    
    .books-grid {
        grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
        gap: 1.5rem;
    }
    
    .container {
        padding: 0 1rem;
    }
    
    .form {
        padding: 2rem 1.5rem;
    }
}

/* Optimización para móviles: eliminar márgenes laterales en tablas */
@media (max-width: 600px) {
    /* Eliminar padding horizontal del container para maximizar espacio */
    .page .container {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
    
    /* Restaurar padding solo para contenido de texto (no tablas) */
    .section-header,
    .section-header-with-action {
        padding-left: 1rem !important;
        padding-right: 1rem !important;
    }
    
    /* Tablas: usar todo el ancho disponible */
    .table,
    .needs-table,
    table.striped {
        width: 100% !important;
        margin: 0 !important;
    }
    
    /* Contenedores de tablas: sin márgenes ni padding */
    .needs-table-container,
    .table-responsive {
        margin-left: 0 !important;
        margin-right: 0 !important;
        border-radius: 0 !important;
        width: 100% !important;
    }
    
    /* Reducir padding de celdas en móviles */
    .table th,
    .table td,
    .needs-table th,
    .needs-table td,
    table.striped th,
    table.striped td {
        padding: 0.5rem 0.5rem !important;
        font-size: 0.85rem !important;
    }
    
    /* Asegurar que las tablas dentro de cards también usen todo el ancho */
    .card-content table,
    .detalle-tab-content table,
    #detalle-cotizaciones-container table {
        width: 100% !important;
        margin: 0 !important;
    }
    
    /* Cards con tablas: sin padding horizontal */
    #detalle-cotizaciones-container .card-content {
        padding-left: 0 !important;
        padding-right: 0 !important;
        padding-top: 1rem !important;
        padding-bottom: 1rem !important;
    }
    
    /* Detalle tab content sin padding horizontal cuando tiene tablas */
    .detalle-tab-content .card-content:has(table) {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
}

/* Utilidades */
.text-center { text-align: center; }
.mt-1 { margin-top: 0.75rem; }
.mt-2 { margin-top: 1.5rem; }
.mt-3 { margin-top: 2.25rem; }
.mb-1 { margin-bottom: 0.75rem; }
.mb-2 { margin-bottom: 1.5rem; }
.mb-3 { margin-bottom: 2.25rem; }

/* ================================================
   OFFCANVAS MENU
   ================================================ */

/* Hamburger - Estilos Materialize estándar */
.hamburger {
    background: transparent;
    border: none;
    cursor: pointer;
    padding: 8px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 4px;
    min-width: 48px;
    min-height: 48px;
}

.hamburger span {
    display: block;
    width: 24px;
    height: 3px;
    background: var(--md-on-primary);
    border-radius: 2px;
    transition: all 0.3s ease;
}

.hamburger:hover span {
    background: rgba(255, 255, 255, 0.9);
}

.offcanvas {
    position: fixed;
    top: 0;
    right: -320px;
    width: 320px;
    height: 100vh;
    background: var(--md-surface);
    box-shadow: var(--md-elevation-16);
    transition: right 280ms var(--md-transition-standard);
    z-index: 1001;
    overflow-y: auto;
    border-left: none;
}

.offcanvas.active {
    right: 0;
}

.offcanvas-header {
    padding: 1rem 1rem 1rem 1.25rem;
    background: var(--md-primary);
    position: relative;
    min-height: 56px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    box-shadow: 0 1px 3px rgba(0,0,0,0.12);
}

.offcanvas-user-photo {
    width: 40px;
    height: 40px;
    min-width: 40px;
    min-height: 40px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
}

.offcanvas-user-initial {
    width: 40px;
    height: 40px;
    min-width: 40px;
    min-height: 40px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.3);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    font-size: 1.125rem;
    flex-shrink: 0;
}

.offcanvas-header-inner {
    flex: 1;
    min-width: 0;
}

.offcanvas-user-name {
    display: block;
    font-size: 1.125rem;
    font-weight: 600;
    color: #fff;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.offcanvas-header .close-btn {
    flex-shrink: 0;
    position: static;
    background: rgba(255,255,255,0.2);
    border: none;
    color: #fff;
    font-size: 1.5rem;
    width: 40px;
    height: 40px;
    min-width: 40px;
    min-height: 40px;
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s;
    line-height: 1;
}

.offcanvas-header .close-btn:hover {
    background: rgba(255,255,255,0.35);
}

.offcanvas-body {
    padding: 1rem 0;
}

.offcanvas-collection {
    border: none;
    margin: 0;
}

.offcanvas-collection .collection-item {
    display: flex;
    align-items: center;
    min-height: 48px;
    padding: 12px 1.5rem;
    color: rgba(0, 0, 0, 0.87);
    font-size: 1rem;
    transition: background-color 0.2s;
}

.offcanvas-collection .collection-item:hover {
    background-color: rgba(26, 82, 118, 0.08);
}

.offcanvas-collection .collection-item .material-icons {
    font-size: 1.5rem;
    margin-right: 1rem;
    color: rgba(0, 0, 0, 0.6);
}

.offcanvas-collection .collection-item:last-child {
    border-bottom: none;
}

.offcanvas-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background: rgba(0, 0, 0, 0.5);
    backdrop-filter: blur(4px);
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s, visibility 0.3s;
    z-index: 1000;
}

.offcanvas-overlay.active {
    opacity: 1;
    visibility: visible;
}

.desktop-nav {
    display: flex;
}

.btn-login {
    color: var(--blanco);
    text-decoration: none;
    padding: 0.625rem 1.25rem;
    border-radius: 6px;
    transition: all 0.3s ease;
    border: 1.5px solid rgba(255,255,255,0.3);
    font-weight: 500;
}

.btn-login:hover {
    background: rgba(255,255,255,0.12);
    border-color: rgba(255,255,255,0.5);
}

/* ================================================
   RESPONSIVE
   ================================================ */

@media (max-width: 768px) {
    .offcanvas {
        width: 280px;
        right: -280px;
    }
    
    .logo {
        font-size: 1.5rem;
    }
    
    .main {
        padding: 2rem 0;
    }
}

/* Franja de badge en cards (oferta académica, líneas investigación) */
.franja-centro { margin: 0.75rem 1rem 1rem; padding: 0.6rem 1.15rem; font-size: 0.65rem; font-weight: 600; line-height: 1.4; color: rgba(255,255,255,0.95); text-transform: uppercase; letter-spacing: 0.03em; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; border-radius: 0.4rem; box-sizing: border-box; }

/* Modal: secciones de subida de archivos más legibles */
.modal-file-group {
    background: var(--enaf-paper-tint);
    border: 1px solid var(--md-outline);
    border-radius: 0.5rem;
    padding: 1rem 1.25rem;
    margin-bottom: 1rem;
}
.modal-file-group .form-label,
.modal-file-group label.form-label {
    color: #262626;
    font-weight: 600;
    font-size: 0.875rem;
    margin-bottom: 0.35rem;
}
.modal-file-group .form-label.text-secondary,
.modal-file-group label.text-secondary {
    font-weight: 500;
    color: #525252 !important;
}
.modal-file-group .file-hint {
    font-size: 0.75rem;
    color: #737373;
    margin-top: 0.25rem;
}
.modal-file-group input[type="file"] {
    background: var(--blanco);
    padding: 0.5rem;
    border: 1px solid #dee2e6;
    border-radius: 0.375rem;
    font-size: 0.875rem;
    color: #262626;
}
.modal-file-group input[type="file"]::file-selector-button {
    padding: 0.35rem 0.75rem;
    margin-right: 0.75rem;
    background: var(--md-primary);
    color: var(--md-on-primary);
    border: none;
    border-radius: 0.35rem;
    font-weight: 500;
    font-size: 0.8rem;
}
.modal-file-group input[type="file"]::file-selector-button:hover {
  background: var(--md-primary-dark);
}

/* Badges por tipo de publicación (noticia, articulo_academico, articulo_libre, articulo_institucional) */
.badge-tipo-noticia { background: linear-gradient(195deg, var(--color-interaction-vibrant), var(--color-authority-deep)) !important; color: var(--md-on-primary) !important; }
.badge-tipo-articulo_academico { background: linear-gradient(195deg, var(--color-authority-deep), var(--color-impact-dark)) !important; color: var(--md-on-primary) !important; }
.badge-tipo-articulo_libre { background: linear-gradient(195deg, #43a047, #2e7d32) !important; color: #fff !important; }
.badge-tipo-articulo_institucional { background: linear-gradient(195deg, #5e35b1, #4527a0) !important; color: #fff !important; }
.badge-tipo-programa_oferta { background: linear-gradient(195deg, #0277bd, #01579b) !important; color: #fff !important; }

/* Modal nueva publicación (blog / biblioteca) */
.modal-publicacion-header {
  background: linear-gradient(135deg, var(--color-interaction-vibrant) 0%, var(--color-authority-deep) 100%);
}
.modal-form-styled .modal-header.modal-publicacion-header {
  background: linear-gradient(135deg, var(--color-interaction-vibrant) 0%, var(--color-authority-deep) 100%) !important;
}
.modal-publicacion-icon {
  width: 48px;
  height: 48px;
  background: rgba(255,255,255,0.2);
  font-size: 1.25rem;
}
.modal-textarea { min-height: 60px; resize: vertical; white-space: pre-wrap; word-wrap: break-word; }
.modal-textarea-lg { min-height: 180px; resize: vertical; white-space: pre-wrap; word-wrap: break-word; }

/* Modal estático propio (sin Bootstrap Modal) - usa modal-form-styled para presentación unificada */
.modal-estatico-wrap {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 12000;
  overflow-x: hidden;
  overflow-y: auto;
  outline: 0;
}
.modal-estatico-wrap.show {
  display: flex !important;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: auto;
}
.modal-estatico-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.5);
  backdrop-filter: blur(2px);
  z-index: 12001;
}
.modal-estatico-dialog {
  position: relative;
  width: 100%;
  max-width: 520px;
  margin: auto;
  z-index: 12002;
}
.modal-estatico-content {
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
}
/* Estilos de header/body/footer delegados a .modal-form-styled en .modal-estatico-dialog */
.modal-estatico-wrap.show .modal-estatico-content {
  animation: modalEstaticoFadeIn 0.25s ease;
}
@keyframes modalEstaticoFadeIn {
  from { opacity: 0; transform: translateY(-20px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Hover lift para cards de autores */
.hover-lift {
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.hover-lift:hover {
  transform: translateY(-4px);
  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.1) !important;
}

/* Inputs visibles con borde definido (modal nueva publicación) */
#modalNuevoPost .modal-input-bordered,
#modalNuevoPost .form-control,
#modalNuevoPost .form-select {
  border: 1px solid #6c757d !important;
  background-color: var(--blanco) !important;
  color: #212529 !important;
  box-shadow: 0 1px 3px rgba(0,0,0,0.05) !important;
}
#modalNuevoPost .modal-input-bordered::placeholder,
#modalNuevoPost .form-control::placeholder {
  color: #6c757d !important;
}
#modalNuevoPost .modal-input-bordered:hover,
#modalNuevoPost .form-control:hover,
#modalNuevoPost .form-select:hover {
  border-color: #495057 !important;
}
#modalNuevoPost .modal-input-bordered:focus,
#modalNuevoPost .form-control:focus,
#modalNuevoPost .form-select:focus {
  border-color: var(--md-primary) !important;
  box-shadow: 0 0 0 0.25rem var(--color-focus-ring) !important;
  outline: none !important;
}

/* Modal ver artículo: contenido legible */
#modalVerArticulo .contenido-articulo { font-size: 0.95rem; line-height: 1.6; }
#modalVerArticulo .contenido-articulo p { margin-bottom: 0.75rem; }
#modalVerArticulo .contenido-articulo ul, #modalVerArticulo .contenido-articulo ol { margin-bottom: 0.75rem; padding-left: 1.5rem; }

/* ================================================
   MODALES FORMULARIOS - Presentación unificada
   ================================================ */

/* Clase base para todos los modales de formulario */
.modal-form-styled .modal-content {
  border: none;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
}
.modal-form-styled .modal-header {
  background: linear-gradient(135deg, var(--color-interaction-vibrant) 0%, var(--color-authority-deep) 100%);
  color: var(--md-on-primary);
  border: none;
  padding: 1rem 1.5rem;
}
.modal-form-styled .modal-header .modal-title {
  font-weight: 600;
  font-size: 1.125rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.modal-form-styled .modal-header .btn-close {
  filter: brightness(0) invert(1);
  opacity: 0.9;
}
.modal-form-styled .modal-header .btn-close:hover {
  opacity: 1;
}
.modal-form-styled .modal-body {
  padding: 1.5rem;
  background: var(--md-surface, #f7f5f2);
  max-height: 70vh;
  overflow-y: auto;
}
#modalInscripcionPrograma.modal-form-styled .modal-body.enf-inscripcion-modal-body {
  max-height: none !important;
  overflow-y: auto !important;
  min-height: 0;
}
#modalInscripcionPrograma.modal-form-styled .modal-content.enf-inscripcion-modal-content {
  display: flex;
  flex-direction: column;
  max-height: 100dvh;
  overflow: hidden;
}
#modalInscripcionPrograma.modal-form-styled .modal-dialog {
  max-height: 100dvh;
}
@media (max-width: 575.98px) {
  #modalInscripcionPrograma .modal-dialog {
    margin: 0;
  }
}
.enf-btn-inscripcion-programa {
  touch-action: manipulation;
}
.modal-form-styled .modal-footer {
  padding: 1rem 1.5rem;
  background: var(--enaf-paper-tint, #efebdf);
  border-top: 1px solid #e0dcd2;
}

/* Inputs en modales de formulario */
.modal-form-styled .form-control,
.modal-form-styled .form-select {
  border: 1px solid var(--md-outline);
  background: var(--blanco);
  border-radius: 0.5rem;
  padding: 0.5rem 0.75rem;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.modal-form-styled .form-control:hover,
.modal-form-styled .form-select:hover {
  border-color: #adb5bd;
}
.modal-form-styled .form-control:focus,
.modal-form-styled .form-select:focus {
  border-color: var(--md-primary);
  box-shadow: 0 0 0 0.2rem var(--color-focus-ring);
  outline: none;
}
.modal-form-styled .form-label {
  font-weight: 600;
  color: #262626;
  font-size: 0.875rem;
  margin-bottom: 0.35rem;
}

/* modal-file-group mejorado */
.modal-form-styled .modal-file-group {
  background: var(--enaf-paper-tint, #efebdf);
  border: 1px solid #d8d3c8;
  border-radius: 0.5rem;
  padding: 1rem 1.25rem;
  margin-bottom: 1rem;
}
.modal-form-styled .modal-file-group input[type="file"] {
  background: var(--blanco);
  border: 1px solid #dee2e6;
  border-radius: 0.375rem;
}

/* ================================================
   FORMULARIOS GLOBALES — Bootstrap / Material Kit
   Bordes y fondos legibles en todo .enf-design-system
   (MK usa fondo transparente, subrayado o borde superior oculto)
   ================================================ */
.enf-design-system .form-label,
.enf-design-system label.form-label {
  font-weight: var(--font-weight-body-semibold);
  font-size: var(--font-size-small);
  color: var(--color-impact-dark);
  margin-bottom: var(--space-2);
}

.enf-design-system .form-control:not(.form-control-plaintext),
.enf-design-system .form-select:not([multiple]) {
  display: block;
  width: 100%;
  padding: 0.625rem 0.85rem;
  font-size: 0.9375rem;
  line-height: 1.5;
  color: var(--color-text-primary);
  background-color: var(--color-surface-pure) !important;
  background-image: none !important;
  border: 1px solid var(--color-border-soft) !important;
  border-radius: var(--radius-md);
  box-shadow: none;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.enf-design-system .form-control-sm,
.enf-design-system .form-select-sm {
  padding: 0.45rem 0.75rem;
  font-size: var(--font-size-small);
}

.enf-design-system textarea.form-control {
  min-height: 6rem;
  resize: vertical;
}

.enf-design-system .form-control:hover:not(:disabled):not([readonly]),
.enf-design-system .form-select:hover:not(:disabled) {
  border-color: rgba(44, 62, 80, 0.28) !important;
}

.enf-design-system .form-control:focus,
.enf-design-system .form-select:focus {
  color: var(--color-text-primary);
  background-color: var(--color-surface-pure) !important;
  border-color: var(--color-interaction-vibrant) !important;
  box-shadow: 0 0 0 3px var(--color-interaction-vibrant-muted);
  outline: none;
}

.enf-design-system .form-control:disabled,
.enf-design-system .form-select:disabled {
  background-color: var(--color-bg-off-white) !important;
  color: var(--color-steel-secondary);
  opacity: 1;
  cursor: not-allowed;
}

.enf-design-system .form-control[type="file"] {
  padding: 0.5rem 0.75rem;
  line-height: 1.4;
}

.enf-design-system .form-check-input {
  border: 1px solid var(--color-border-soft);
  background-color: var(--color-surface-pure);
}

.enf-design-system .form-check-input:focus {
  border-color: var(--color-interaction-vibrant);
  box-shadow: 0 0 0 3px var(--color-interaction-vibrant-muted);
}

/* Material Kit outline/static → etiqueta arriba + caja con borde completo */
.enf-design-system .input-group.input-group-outline .form-label,
.enf-design-system .input-group.input-group-static .form-label {
  position: static !important;
  display: block !important;
  width: auto !important;
  height: auto !important;
  line-height: 1.4 !important;
  top: auto !important;
  margin-bottom: var(--space-2) !important;
  font-size: var(--font-size-small) !important;
  font-weight: var(--font-weight-body-semibold) !important;
  color: var(--color-impact-dark) !important;
  transform: none !important;
}

.enf-design-system .input-group.input-group-outline .form-label::before,
.enf-design-system .input-group.input-group-outline .form-label::after {
  display: none !important;
  content: none !important;
  border: none !important;
  box-shadow: none !important;
}

.enf-design-system .input-group.input-group-outline .form-control,
.enf-design-system .input-group.input-group-static .form-control {
  padding: 0.625rem 0.85rem !important;
  border: 1px solid var(--color-border-soft) !important;
  border-radius: var(--radius-md) !important;
  background-color: var(--color-surface-pure) !important;
  background-image: none !important;
  box-shadow: none !important;
}

.enf-design-system .input-group.input-group-outline.is-focused .form-label + .form-control,
.enf-design-system .input-group.input-group-outline.is-filled .form-label + .form-control,
.enf-design-system .input-group.input-group-static.is-focused .form-control,
.enf-design-system .input-group.input-group-static .form-control:focus {
  border-color: var(--color-interaction-vibrant) !important;
  border-top-color: var(--color-interaction-vibrant) !important;
  box-shadow: 0 0 0 3px var(--color-interaction-vibrant-muted) !important;
  background-image: none !important;
}

.enf-design-system .input-group.input-group-outline.is-focused .form-label,
.enf-design-system .input-group.input-group-outline.is-filled .form-label,
.enf-design-system .input-group.input-group-static.is-focused .form-label,
.enf-design-system .input-group.input-group-static.is-filled .form-label {
  color: var(--color-interaction-vibrant) !important;
}

/* Login — recuadro modo demo (una línea por fila, legible) */
.enf-signin-demo-toggle {
  line-height: 1;
  text-decoration: none;
}
.enf-signin-demo-toggle:hover,
.enf-signin-demo-toggle:focus {
  color: var(--color-interaction-vibrant, #0d6efd) !important;
}
.enf-signin-demo-box {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  width: 100%;
  max-width: 100%;
  padding: 0.75rem 1rem;
  text-align: left;
}
.enf-signin-demo-box__title {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--color-text-primary, #1f2937);
  line-height: 1.4;
}
.enf-signin-demo-box__line {
  font-size: 0.8125rem;
  color: #6c757d;
  line-height: 1.5;
  margin-top: 0.35rem;
  word-break: break-word;
}
.enf-signin-demo-box__btn {
  display: block;
  width: 100%;
  max-width: 100%;
  white-space: normal;
  line-height: 1.35;
  text-align: center;
  padding: 0.45rem 0.75rem;
}
.enf-signin-demo-box__link {
  display: block;
  width: 100%;
  font-size: 0.8125rem;
  color: var(--bs-primary, #0d6efd);
  text-align: center;
  line-height: 1.4;
  word-break: break-word;
}
.enf-signin-demo-box__link:hover {
  text-decoration: underline;
}

.enf-nav-login-btn {
  white-space: nowrap;
}

.enf-modal-peligro .modal-content {
  border-width: 2px;
}

.enf-modal-peligro .modal-header {
  border-bottom-color: rgba(255, 255, 255, 0.25);
}

.enf-modal-peligro #enfModalPeligroTexto {
  font-size: 0.92rem;
  line-height: 1.45;
}

/* Nuestras redes (admin IG): estilo consistente con formularios de la app */
.enf-redes-admin-panel {
  background: var(--enaf-paper-tint, #efebdf);
  border: 1px solid #d8d3c8;
  border-radius: 0.75rem;
  padding: 1rem;
  box-shadow: var(--md-elevation-1, 0 1px 3px rgba(0, 0, 0, 0.08));
}
.enf-redes-admin-panel .form-label {
  color: #262626;
  font-size: 0.9rem;
}
.enf-redes-admin-panel .form-check-label {
  color: #262626;
}
.enf-redes-admin-panel #enf-yt-categorias-activas,
.enf-redes-admin-panel .enf-yt-categorias-panel #enf-yt-categorias-activas {
  padding-top: 0.15rem;
}
.enf-yt-categorias-panel {
  margin-top: 0.75rem;
}

/* Botones de oferta / enlaces externos: ocultos al público; visibles atenuados en modo edición */
.enf-post-enlace--oculto-public,
.enf-oferta-btn--oculto-public {
  display: none !important;
}
html.enf-edit-site-mode-on .enf-post-enlace--oculto-public,
html.enf-edit-site-mode-on .enf-oferta-btn--oculto-public,
html.enf-edit-site-mode-on button.enf-oferta-btn--oculto-public {
  display: inline-flex !important;
  opacity: 0.42;
  outline: 2px dashed rgba(108, 117, 125, 0.85);
  outline-offset: 3px;
  position: relative;
}
html.enf-edit-site-mode-on a.enf-post-enlace--oculto-public::before,
html.enf-edit-site-mode-on a.enf-oferta-btn--oculto-public::before,
html.enf-edit-site-mode-on button.enf-oferta-btn--oculto-public::before {
  content: "Botón oculto";
  position: absolute;
  top: -1.35rem;
  left: 0;
  z-index: 6;
  font-size: 0.65rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: #495057;
  background: rgba(255, 255, 255, 0.92);
  padding: 0.1rem 0.35rem;
  border-radius: 0.2rem;
  white-space: nowrap;
  pointer-events: none;
}

.enf-oferta-tarjeta-botones-edit {
  border-color: rgba(108, 117, 125, 0.45) !important;
  background: rgba(248, 249, 250, 0.95);
}

/* Autoridades La Escuela: ocultas al público; visibles atenuadas en modo edición */
.enf-escuela-autoridad--oculto-public {
  display: none !important;
}
html.enf-edit-site-mode-on .enf-escuela-autoridad--oculto-public {
  display: block !important;
}
html.enf-edit-site-mode-on .enf-escuela-autoridad-card--oculta {
  opacity: 0.45;
  outline: 2px dashed rgba(108, 117, 125, 0.85);
  outline-offset: 3px;
  position: relative;
}
html.enf-edit-site-mode-on .enf-escuela-autoridad-card--oculta::before {
  content: "Oculta al público";
  position: absolute;
  top: 0.35rem;
  right: 0.5rem;
  z-index: 6;
  font-size: 0.65rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: #495057;
  background: rgba(255, 255, 255, 0.92);
  padding: 0.1rem 0.35rem;
  border-radius: 0.2rem;
  white-space: nowrap;
  pointer-events: none;
}

/* Secciones CMS: ocultas al público; visibles atenuadas en modo edición */
.enf-cms-section--hidden-public {
  display: none !important;
}
html.enf-edit-site-mode-on .enf-cms-section--hidden-public {
  display: revert !important;
  opacity: 0.42;
  outline: 2px dashed rgba(108, 117, 125, 0.85);
  outline-offset: 4px;
  position: relative;
}
html.enf-edit-site-mode-on .enf-cms-section--hidden-public::before {
  content: "Sección oculta en el sitio público";
  position: absolute;
  top: 0.35rem;
  left: 0.75rem;
  z-index: 6;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: #495057;
  background: rgba(255, 255, 255, 0.92);
  padding: 0.15rem 0.5rem;
  border-radius: 0.35rem;
  border: 1px solid rgba(108, 117, 125, 0.35);
  pointer-events: none;
}
.enf-seccion-admin-btns .btn-toggle-seccion-visible.enf-seccion-visible-off {
  border-color: #dc3545;
  color: #dc3545;
}
.enf-seccion-admin-btns .btn-toggle-seccion-visible.enf-seccion-visible-off:hover {
  background: rgba(220, 53, 69, 0.08);
}
.enf-redes-input.form-control {
  border: 1px solid var(--md-outline);
  background: var(--blanco);
  border-radius: 0.5rem;
}
.enf-redes-input.form-control:focus {
  border-color: var(--md-primary);
  box-shadow: 0 0 0 0.2rem var(--color-focus-ring);
}
.enf-redes-btn-outline.btn-outline-primary {
  border-color: var(--md-primary);
  color: var(--md-primary);
  font-weight: 600;
}
.enf-redes-btn-outline.btn-outline-primary:hover {
  background: rgba(30, 136, 229, 0.08);
}
.enf-redes-btn-save {
  min-width: 152px;
}
.enf-redes-round-btn {
  width: 2.2rem;
  height: 2.2rem;
  padding: 0;
}
.enf-redes-list .list-group-item {
  border-color: #ddd6c9;
  background: #fffdfa;
}
.enf-redes-list-item {
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.enf-redes-list-item:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 10px rgba(20, 28, 58, 0.08);
}
.enf-redes-list-item.is-dragging {
  opacity: 0.65;
}
.enf-redes-list-item.is-drag-over {
  outline: 2px dashed rgba(21, 101, 192, 0.45);
  outline-offset: -2px;
}
.enf-redes-list-item-empty {
  background: rgba(255, 255, 255, 0.7);
}
.enf-redes-list-url {
  color: var(--texto-medio);
  flex: 1 1 auto;
}
.enf-redes-drag-handle {
  cursor: grab;
  border: 1px solid #d2d7de;
  color: #334155;
}
.enf-redes-drag-handle:active {
  cursor: grabbing;
}
.enf-redes-remove-btn {
  white-space: nowrap;
}
.enf-redes-action-btn {
  border: 1px solid #d2d7de;
  color: #334155;
}
.enf-redes-action-btn:hover {
  background: #eef3f8;
  border-color: #b8c3cf;
}
.enf-redes-hero-media {
  min-height: 22rem;
}
.enf-redes-hero-youtube-card {
  background: rgba(15, 23, 42, 0.88);
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 0.9rem;
  box-shadow: 0 16px 32px rgba(5, 10, 24, 0.35);
  padding: 0.85rem;
  backdrop-filter: blur(2px);
}
.enf-ig-masonry {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
}
.enf-ig-masonry-item {
  min-width: 0;
  margin-bottom: 0;
}
/* Modo edición: arrastrar por barra visible (el iframe de Instagram no es arrastrable). */
.enf-redes-embed-drag-strip {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.4rem 0.55rem;
  margin-bottom: 0.5rem;
  background: linear-gradient(180deg, #f8fafc 0%, #e2e8f0 100%);
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  cursor: grab;
  font-size: 0.75rem;
  font-weight: 600;
  color: #334155;
  user-select: none;
  position: relative;
  z-index: 3;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06);
}
.enf-redes-embed-drag-strip:active {
  cursor: grabbing;
}
.enf-ig-masonry-item.is-dragging,
.enf-video-card.is-dragging {
  opacity: 0.72;
}
.enf-ig-masonry-item.is-drag-over,
.enf-video-card.is-drag-over,
[data-draggable-index].is-drag-over > .enf-escuela-card--sortable {
  outline: 2px dashed rgba(21, 101, 192, 0.55);
  outline-offset: 4px;
  border-radius: 12px;
}
.enf-escuela-drag-strip {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.4rem 0.55rem;
  margin: 0.75rem 0.75rem 0;
  background: linear-gradient(180deg, #f8fafc 0%, #e2e8f0 100%);
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  cursor: grab;
  font-size: 0.75rem;
  font-weight: 600;
  color: #334155;
  user-select: none;
  position: relative;
  z-index: 3;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06);
}
.enf-escuela-drag-strip:active {
  cursor: grabbing;
}
[data-draggable-index].is-dragging > .enf-escuela-card--sortable {
  opacity: 0.72;
}
.enf-postgrado-vida-drag-strip {
  margin: 0.65rem 0.65rem 0;
  position: relative;
  z-index: 4;
}
@media (min-width: 768px) {
  .enf-ig-masonry {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 1200px) {
  .enf-ig-masonry {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

/* Modo edición del sitio (navbar): por defecto apagado; con html.enf-edit-site-mode-on se muestran lápices y paneles */
html:not(.enf-edit-site-mode-on) .enf-edit-ui,
html:not(.enf-edit-site-mode-on) .btnNosotrosSidebarEditar,
html:not(.enf-edit-site-mode-on) .btn-editar-estatico,
html:not(.enf-edit-site-mode-on) .enf-redes-admin-panel,
html:not(.enf-edit-site-mode-on) .enf-redes-embed-drag-strip,
html:not(.enf-edit-site-mode-on) .btnEnfEditarArticuloCms,
html:not(.enf-edit-site-mode-on) .btnEnfEditarNoticiaCms,
html:not(.enf-edit-site-mode-on) .btnEnfInicioNovedadFijar,
html:not(.enf-edit-site-mode-on) .btnEditarOferta,
html:not(.enf-edit-site-mode-on) .btnEditarLinea,
html:not(.enf-edit-site-mode-on) .btnEliminarLinea,
html:not(.enf-edit-site-mode-on) [data-enf-dc-tarjeta-open],
html:not(.enf-edit-site-mode-on) [data-enf-valores-tarjeta-open],
html:not(.enf-edit-site-mode-on) [data-enf-valores-tarjeta-delete],
html:not(.enf-edit-site-mode-on) .btnNosotrosEditarAtributo,
html:not(.enf-edit-site-mode-on) .btnNosotrosEliminarAtributo,
html:not(.enf-edit-site-mode-on) #btnNosotrosAtributoAbrirNuevo,
html:not(.enf-edit-site-mode-on) .btnNosotrosCalEditar,
html:not(.enf-edit-site-mode-on) .btnNosotrosCalEliminar,
html:not(.enf-edit-site-mode-on) #btnNosotrosCalAgregarEvento,
html:not(.enf-edit-site-mode-on) #btnNosotrosCalAgregarDesdeDia,
html:not(.enf-edit-site-mode-on) .btnNosotrosGlosarioEditar,
html:not(.enf-edit-site-mode-on) .btnNosotrosGlosarioEliminar,
html:not(.enf-edit-site-mode-on) #btnNosotrosGlosarioAgregar,
html:not(.enf-edit-site-mode-on) .btnNosotrosEditarTarjeta,
html:not(.enf-edit-site-mode-on) .btnNosotrosEliminarTarjeta,
html:not(.enf-edit-site-mode-on) #btnNosotrosEditarSeccion,
html:not(.enf-edit-site-mode-on) .btn-toggle-seccion-visible,
html:not(.enf-edit-site-mode-on) [data-bs-target="#modalNosotrosNuevaTarjeta"],
html:not(.enf-edit-site-mode-on) [data-bs-target="#modalNuevaOferta"],
html:not(.enf-edit-site-mode-on) [data-bs-target="#modalNuevaLinea"],
html:not(.enf-edit-site-mode-on) a[href*="edit_post_id"][href*="oferta-academica"],
html:not(.enf-edit-site-mode-on) .enf-edit-site-panel-link,
html:not(.enf-edit-site-mode-on) #modalNuevaOferta,
html:not(.enf-edit-site-mode-on) #modalEditarOferta,
html:not(.enf-edit-site-mode-on) #modalNuevaLinea,
html:not(.enf-edit-site-mode-on) #modalEditarLinea,
html:not(.enf-edit-site-mode-on) #modalNosotrosExtraItem,
html:not(.enf-edit-site-mode-on) #modalNosotrosAtributo,
html:not(.enf-edit-site-mode-on) #modalNosotrosEquipoSeccion,
html:not(.enf-edit-site-mode-on) #modalNosotrosNuevaTarjeta,
html:not(.enf-edit-site-mode-on) #modalNosotrosEditarTarjeta,
html:not(.enf-edit-site-mode-on) #modalInicioInstitucionalSeccion,
html:not(.enf-edit-site-mode-on) [data-enf-inst-seccion-edit],
html:not(.enf-edit-site-mode-on) [data-enf-inst-seccion-add],
html:not(.enf-edit-site-mode-on) [data-enf-inst-seccion-move],
html:not(.enf-edit-site-mode-on) [data-enf-inst-seccion-delete] {
  display: none !important;
}

/* Instagram / Videos: tarjeta interior bajo el panel principal (sombra la aporta .enf-inicio-panel-superpuesto) */
.enf-instagram-feed-card,
.enf-videos-feed-card {
  position: relative;
  z-index: 1;
}

/* Hero a pantalla completa con carrusel: lápiz CMS encima del slideshow */
.enf-subpage--instagram .enf-landing-hero--visual-slideshow .enf-hero-fullbleed-slideshow,
.enf-subpage--videos .enf-landing-hero--visual-slideshow .enf-hero-fullbleed-slideshow {
  pointer-events: none;
}
.enf-subpage--instagram .enf-landing-hero--visual-slideshow .enf-hero-fullbleed-slideshow__edit,
.enf-subpage--videos .enf-landing-hero--visual-slideshow .enf-hero-fullbleed-slideshow__edit {
  z-index: 12;
  pointer-events: auto;
}
.enf-subpage--instagram .enf-landing-hero--fullbleed .enf-landing-hero__media,
.enf-subpage--videos .enf-landing-hero--fullbleed .enf-landing-hero__media {
  z-index: 12;
  pointer-events: none;
}
.enf-subpage--instagram .enf-landing-hero--fullbleed .enf-landing-hero__edit-wrap,
.enf-subpage--videos .enf-landing-hero--fullbleed .enf-landing-hero__edit-wrap {
  pointer-events: auto;
}

.enf-video-masonry {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
}
.enf-video-card {
  min-width: 0;
  margin-bottom: 0;
}
.enf-video-card__btn {
  position: relative;
  width: 100%;
  border: 0;
  background: #000;
  border-radius: 0.75rem;
  overflow: hidden;
  padding: 0;
  box-shadow: 0 8px 20px rgba(15, 23, 42, 0.2);
}
.enf-video-card__btn img {
  width: 100%;
  display: block;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}
.enf-video-card__play {
  position: absolute;
  inset: auto auto 0.75rem 0.75rem;
  width: 2.2rem;
  height: 2.2rem;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(220, 38, 38, 0.95);
  color: #fff;
  font-size: 1.15rem;
  box-shadow: 0 6px 18px rgba(220, 38, 38, 0.4);
}
@media (min-width: 768px) {
  .enf-video-masonry {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 1200px) {
  .enf-video-masonry {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.enf-modal-x-control {
  position: absolute;
  top: 0.55rem;
  right: 0.6rem;
  z-index: 30;
  width: 2rem;
  height: 2rem;
  border: 1px solid #cbd5e1;
  border-radius: 999px;
  background: #ffffff;
  color: #0f172a;
  font-size: 1.15rem;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 8px 20px rgba(15, 23, 42, 0.2);
}
.enf-modal-x-control:hover {
  background: #f8fafc;
}

/* Modal IG: variante clara para no verse oscuro */
.enf-ig-modal .modal-content {
  border: 1px solid #d8d3c8;
  border-radius: 0.75rem;
  box-shadow: 0 20px 40px rgba(15, 23, 42, 0.25);
}
.enf-ig-modal .modal-header {
  background: #f8fafc;
  color: #0f172a;
  border-bottom: 1px solid #e2e8f0;
}
.enf-ig-modal .modal-body {
  background: #ffffff;
}
.enf-ig-modal .modal-footer {
  background: #f8fafc;
  border-top: 1px solid #e2e8f0;
}

/* Modal ver artículo (admin) - header temático */
#modalVerArticulo .modal-content {
  border: none;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
}
#modalVerArticulo .modal-header {
  background: linear-gradient(135deg, var(--color-authority-deep) 0%, var(--color-impact-dark) 100%);
  color: var(--md-on-primary);
  border: none;
  padding: 1rem 1.5rem;
}
#modalVerArticulo .modal-header .modal-title {
  font-weight: 600;
  font-size: 1.125rem;
}
#modalVerArticulo .modal-header .btn-close {
  filter: brightness(0) invert(1);
  opacity: 0.9;
}
#modalVerArticulo .modal-body {
  padding: 1.5rem;
  line-height: 1.6;
}
#modalVerArticulo .modal-footer {
  background: var(--enaf-paper-tint, #efebdf);
  border-top: 1px solid #e0dcd2;
  padding: 1rem 1.5rem;
}

/* Barra superior y menús: acento institucional sin frialdad */
.navbar .dropdown-item:hover,
.navbar .dropdown-item:focus {
  background-color: rgba(26, 82, 118, 0.08) !important;
  color: var(--enaf-ink) !important;
}

.navbar-brand {
  font-family: var(--fuente-titulo);
  font-weight: 600;
  letter-spacing: 0.03em;
}

/* Stacking: barra y desplegables (Mi ENFMP, Redes sociales) por encima del contenido de la página.
   Material Kit fija .navbar-nav .dropdown-menu en z-index: auto; sin esto, cards y héroes tapan el menú.
   Modales Bootstrap: backdrop 10054 y .modal 10060 (encima de la barra 10050). .modal-estatico-wrap sigue en 12000. */
nav.enf-site-navbar {
  z-index: 10050 !important;
}
.enf-site-navbar .navbar-nav .dropdown-menu,
.enf-site-navbar .navbar-collapse .dropdown-menu {
  z-index: 10051 !important;
}

.modal-backdrop {
  z-index: 10054 !important;
}
.modal {
  z-index: 10060 !important;
}

/* Formulario de edición estática (z-index 12000) abierto desde un modal Bootstrap */
body.enf-editing-over-bootstrap .modal.show,
body.enf-editing-over-bootstrap .modal-backdrop,
body.enf-editing-over-bootstrap .modal-backdrop.show {
  pointer-events: none !important;
}

.modal-estatico-dialog,
.modal-estatico-dialog .modal-content,
.modal-estatico-dialog input,
.modal-estatico-dialog textarea,
.modal-estatico-dialog select,
.modal-estatico-dialog button {
  pointer-events: auto;
}

/* Marca Lauicom: primary rosa mapeado desde tokens (sobrescribe defaults del kit donde aplica) */
.enf-site-navbar .enf-navbar-brand {
  color: var(--color-authority-deep);
}

.enf-site-navbar .enf-navbar-brand:hover,
.enf-site-navbar .enf-navbar-brand:focus {
  color: var(--color-interaction-vibrant);
}

.enf-site-navbar .enf-navbar-brand:hover .text-body-secondary,
.enf-site-navbar .enf-navbar-brand:focus .text-body-secondary {
  color: var(--color-steel-secondary);
}

/* Perfil operativo (navbar clara) */
.navbar-rol-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.25rem 0.55rem 0.25rem 0.45rem;
  font-size: 0.75rem;
  line-height: 1.2;
  color: var(--color-authority-deep);
  background: rgba(26, 82, 118, 0.07);
  border: 1px solid rgba(26, 82, 118, 0.2);
  border-radius: 2rem;
  white-space: nowrap;
}
.navbar-rol-pill__k {
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-weight: 600;
  opacity: 0.75;
  font-size: 0.65rem;
}
.navbar-rol-pill__v {
  font-weight: 600;
}
.navbar-rol-pill--admin {
  background: rgba(26, 82, 118, 0.12);
  border-color: rgba(26, 82, 118, 0.35);
}
.navbar-rol-pill--developer {
  background: rgba(55, 71, 79, 0.1);
  border-color: rgba(55, 71, 79, 0.38);
  color: #37474f;
}
.navbar-rol-pill--colaborador,
.navbar-rol-pill--estudiante {
  border-color: rgba(41, 128, 185, 0.45);
}
.navbar-rol-pill--usuario {
  opacity: 1;
}
.navbar-rol-pill--profesor {
  border-color: rgba(94, 53, 177, 0.35);
}
.navbar-rol-pill--invitado {
  color: var(--color-steel-secondary);
  opacity: 1;
}
.navbar-rol-pill--colab_pendiente,
.navbar-rol-pill--estudiante_pendiente {
  border-color: rgba(230, 126, 34, 0.45);
  background: rgba(243, 156, 18, 0.12);
}

.enf-site-navbar.navbar-light {
  box-shadow: 0 1px 0 rgba(44, 62, 80, 0.06);
}

/* Navbar clara: enlaces con contraste legible (el kit deja grises muy claros) */
.enf-site-navbar.navbar-light .navbar-nav > .nav-item > .nav-link {
  color: var(--color-text-primary);
  font-weight: 500;
}
.enf-site-navbar.navbar-light .navbar-nav > .nav-item > .nav-link:hover,
.enf-site-navbar.navbar-light .navbar-nav > .nav-item > .nav-link:focus {
  color: var(--color-interaction-vibrant);
}

/* Sección activa en navbar: solo color de acento (sin subrayado ni fondo) */
.enf-site-navbar .navbar-nav > .nav-item > .nav-link.active,
.enf-site-navbar .enf-nav-primary > .nav-item > .nav-link.active {
  color: var(--color-interaction-vibrant) !important;
  font-weight: 600;
  text-decoration: none !important;
  background: transparent !important;
  box-shadow: none !important;
}

.enf-site-navbar .navbar-nav > .nav-item > .nav-link.active::after,
.enf-site-navbar .enf-nav-primary > .nav-item > .nav-link.active::after {
  display: none !important;
  content: none !important;
}

.enf-site-navbar .dropdown-item.active {
  background-color: transparent !important;
  color: var(--color-interaction-vibrant) !important;
  font-weight: 600;
  text-decoration: none !important;
}

.enf-site-navbar .dropdown-item.active:hover,
.enf-site-navbar .dropdown-item.active:focus {
  background-color: var(--color-interaction-vibrant-muted) !important;
  color: var(--color-interaction-vibrant) !important;
}

/* Navbar — layout colapsable (escritorio: fila; móvil: panel) */
.enf-nav-collapse-layout {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.35rem;
  width: 100%;
}

.enf-nav-primary {
  flex-wrap: nowrap;
}

.enf-nav-actions {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  flex-shrink: 0;
}

.enf-nav-link-label {
  flex: 1 1 auto;
  min-width: 0;
}

.enf-nav-chevron {
  font-size: 0.75rem;
  opacity: 0.65;
  transition: transform 0.2s ease, opacity 0.2s ease;
}

.enf-site-navbar .nav-link[aria-expanded="true"] .enf-nav-chevron {
  transform: rotate(180deg);
  opacity: 1;
}

@media (max-width: 991.98px) {
  .enf-site-navbar > .container {
    position: relative;
  }

  .enf-site-navbar .enf-nav-collapse {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 10051;
    background: var(--color-surface-pure);
    border-bottom: 1px solid rgba(44, 62, 80, 0.1);
    box-shadow: 0 12px 28px rgba(26, 82, 118, 0.12);
    max-height: min(78dvh, 34rem);
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }

  .enf-site-navbar .enf-nav-collapse-layout {
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    gap: 0;
    padding: 0.35rem 0 0.65rem;
  }

  .enf-site-navbar .enf-nav-session {
    order: -1;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    width: 100%;
    padding: 0.65rem 1rem 0.75rem;
    border-bottom: 1px solid rgba(44, 62, 80, 0.12);
    background: linear-gradient(180deg, rgba(248, 249, 250, 0.95) 0%, rgba(248, 249, 250, 0.55) 100%);
    position: sticky;
    top: 0;
    z-index: 3;
  }

  .enf-site-navbar .enf-nav-session .enf-nav-session-btn,
  .enf-site-navbar .enf-nav-session .enf-nav-login-btn,
  .enf-site-navbar .enf-nav-session .enf-nav-register-btn,
  .enf-site-navbar .enf-nav-session .enf-nav-logout-btn {
    width: 100%;
    justify-content: center;
    padding-top: 0.55rem;
    padding-bottom: 0.55rem;
    touch-action: manipulation;
  }

  .enf-site-navbar .enf-nav-primary {
    width: 100%;
    flex-direction: column;
    align-items: stretch !important;
    gap: 0 !important;
    margin: 0 !important;
  }

  .enf-site-navbar .enf-nav-primary > .nav-item {
    width: 100%;
    border-bottom: 1px solid rgba(44, 62, 80, 0.08);
  }

  .enf-site-navbar .enf-nav-primary > .nav-item:last-child {
    border-bottom: none;
  }

  .enf-site-navbar .enf-nav-primary > .nav-item > .nav-link {
    width: 100%;
    padding: 0.85rem 1rem !important;
    font-size: 0.975rem;
    border-radius: 0;
  }

  /* Submenús: acordeón inline (sin flotante Material Kit) */
  .enf-site-navbar .enf-nav-primary .dropdown-menu {
    position: static !important;
    float: none !important;
    inset: auto !important;
    transform: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    display: none;
    margin: 0 !important;
    padding: 0.15rem 0 0.55rem !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    background: var(--color-bg-off-white) !important;
    max-height: none;
    overflow: visible;
  }

  .enf-site-navbar .enf-nav-primary .dropdown-menu.show {
    display: block !important;
  }

  .enf-site-navbar .enf-nav-primary .dropdown-menu::before,
  .enf-site-navbar .enf-nav-primary .dropdown-menu::after {
    display: none !important;
    content: none !important;
  }

  .enf-site-navbar .enf-nav-primary .dropdown-item {
    padding: 0.62rem 1rem 0.62rem 1.65rem !important;
    font-size: 0.925rem;
    border-radius: 0 !important;
    white-space: normal;
  }

  .enf-site-navbar .enf-nav-primary .dropdown-header {
    padding: 0.55rem 1rem 0.2rem 1.65rem;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: var(--color-steel-secondary);
  }

  .enf-site-navbar .enf-nav-primary .dropdown-divider {
    margin: 0.35rem 1rem 0.35rem 1.65rem;
    opacity: 0.55;
  }

  .enf-site-navbar .enf-nav-actions {
    order: 10;
    width: 100%;
    margin-top: 0.15rem;
    padding: 0.75rem 1rem 0.35rem;
    border-top: 1px solid rgba(44, 62, 80, 0.1);
    background: linear-gradient(180deg, rgba(248, 249, 250, 0.65) 0%, rgba(248, 249, 250, 0.2) 100%);
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: 0.55rem;
    position: sticky;
    bottom: 0;
    z-index: 2;
  }

  .enf-site-navbar .enf-nav-actions .enf-nav-login-btn,
  .enf-site-navbar .enf-nav-actions .enf-nav-logout-btn {
    flex: 1 1 100%;
    justify-content: center;
    padding-top: 0.55rem;
    padding-bottom: 0.55rem;
  }

  .enf-site-navbar .enf-nav-actions .enf-edit-mode-toggle-btn {
    flex: 1 1 auto;
    min-height: 2.35rem;
  }

  .enf-site-navbar .enf-nav-actions .enf-theme-toggle {
    margin-left: auto;
  }
}

@media (min-width: 992px) {
  .enf-site-navbar .enf-nav-actions {
    margin-left: 0.35rem;
    padding-left: 0.65rem;
    border-left: 1px solid rgba(44, 62, 80, 0.12);
  }
}

/* Registro / login / recuperar contraseña: campos del formulario (MK anula borde de .form-control globalmente) */
.enf-registro-page,
.enf-recuperar-page {
  background: linear-gradient(
    180deg,
    var(--color-bg-off-white) 0%,
    rgba(248, 249, 250, 0.65) 40%,
    var(--color-bg-off-white) 100%
  );
}
.enf-registro-card .card-header.bg-gradient-dark h5.text-white,
.enf-registro-card .card-header.bg-gradient-dark h5,
.enf-recuperar-card .card-header.bg-gradient-dark h5.text-white,
.enf-recuperar-card .card-header.bg-gradient-dark h5 {
  color: #fff !important;
}
.enf-registro-card .card-header.bg-gradient-dark .enf-registro-card__subtitle,
.enf-recuperar-card .card-header.bg-gradient-dark .enf-recuperar-card__subtitle {
  color: rgba(255, 255, 255, 0.92) !important;
  font-weight: 400;
}
.enf-registro-card .form-label,
.enf-subpage-panel--sign-in .form-label,
.enf-recuperar-card .form-label {
  font-weight: 600;
  font-size: 0.875rem;
  color: var(--color-impact-dark);
  margin-bottom: 0.35rem;
}
.enf-registro-card .form-control,
.enf-subpage-panel--sign-in .form-control,
.enf-recuperar-card .form-control {
  display: block;
  width: 100%;
  padding: 0.625rem 0.85rem;
  font-size: 0.9375rem;
  line-height: 1.5;
  color: var(--color-text-primary);
  background-color: var(--color-surface-pure);
  border: 1px solid var(--color-border-soft) !important;
  border-radius: var(--radius-md);
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.enf-registro-card .form-control:hover,
.enf-subpage-panel--sign-in .form-control:hover,
.enf-recuperar-card .form-control:hover {
  border-color: rgba(44, 62, 80, 0.28) !important;
}
.enf-registro-card .form-control:focus,
.enf-subpage-panel--sign-in .form-control:focus,
.enf-recuperar-card .form-control:focus {
  color: var(--color-text-primary);
  background-color: var(--color-surface-pure);
  border-color: var(--color-interaction-vibrant) !important;
  box-shadow: 0 0 0 3px var(--color-interaction-vibrant-muted);
  outline: none;
}
.enf-registro-card select.form-select.enf-rs-select {
  cursor: pointer;
  padding: 0.625rem 2.25rem 0.625rem 0.85rem;
  font-size: 0.9375rem;
  border: 1px solid var(--color-border-soft) !important;
  border-radius: var(--radius-md);
  background-color: var(--color-surface-pure);
  color: var(--color-text-primary);
}
.enf-registro-card select.form-select.enf-rs-select:focus {
  border-color: var(--color-interaction-vibrant) !important;
  box-shadow: 0 0 0 3px var(--color-interaction-vibrant-muted);
}
.enf-registro-card .card-body .text-secondary a,
.enf-subpage-panel--sign-in .text-secondary a,
.enf-recuperar-card .card-body .text-secondary a {
  font-weight: 600;
}

/* Navbar: evitar segunda fila en escritorio (w-100 + flex-wrap forzaban salto) */
@media (min-width: 992px) {
  .enf-site-navbar > .container {
    flex-wrap: nowrap;
  }

  .enf-site-navbar .navbar-collapse {
    width: auto !important;
    flex-basis: auto !important;
  }

  .enf-site-navbar .navbar-nav {
    flex-wrap: nowrap;
  }

  .enf-site-navbar .navbar-nav .nav-link {
    padding-left: 0.45rem;
    padding-right: 0.45rem;
    white-space: nowrap;
  }
}

@media (min-width: 992px) and (max-width: 1199.98px) {
  .enf-site-navbar .navbar-brand {
    font-size: 0.9rem;
  }
}

@media (min-width: 1200px) {
  .enf-site-navbar .navbar-brand {
    max-width: min(22rem, 34vw);
  }
}

/* Oferta académica — layout (plantilla institucional) */
.enf-oferta .lead-enf {
  font-size: 1.05rem;
  line-height: 1.65;
  max-width: 42rem;
}
.enf-oferta .enf-intro {
  max-width: 40rem;
}
.enf-links-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 0.75rem;
}
.enf-link-pill {
  display: inline-block;
  padding: 0.35rem 0.85rem;
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--md-primary);
  background: var(--md-surface);
  border: 1px solid var(--md-outline);
  border-radius: 2rem;
  text-decoration: none;
  transition: background 0.15s ease, border-color 0.15s ease;
}
.enf-link-pill:hover {
  background: var(--md-primary-container);
  border-color: rgba(26, 82, 118, 0.25);
  color: var(--md-primary-dark);
}
.enf-link-pill--ghost {
  background: transparent;
}
.enf-block {
  max-width: 48rem;
}
.enf-subblock {
  max-width: 52rem;
}
.enf-program-list {
  border-top: 1px solid var(--md-outline);
}
.enf-program-item {
  padding: 0.85rem 0;
  border-bottom: 1px solid var(--md-outline);
}
.enf-program-name {
  font-weight: 600;
  font-size: 0.95rem;
}
.enf-card {
  background: var(--md-surface);
  border: 1px solid var(--md-outline);
  border-radius: 0.35rem;
  padding: 1rem 1.15rem;
}
.enf-card-label {
  font-size: 0.7rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--md-on-surface-variant);
  margin-bottom: 0.65rem;
}
.enf-mini-list {
  margin: 0;
  padding-left: 1.1rem;
  font-size: 0.875rem;
  color: var(--md-on-surface-variant);
  line-height: 1.55;
}
.enf-mini-list li {
  margin-bottom: 0.25rem;
}

/* Pie global institucional */
.enf-site-footer {
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  background: linear-gradient(180deg, #38414a 0%, #2b323a 100%);
  color: rgba(255, 255, 255, 0.9);
  padding: clamp(1.6rem, 4vw, 2.4rem) 0;
}
.enf-site-footer__panel {
  max-width: 70rem;
  margin: 0 auto;
}
.enf-site-footer__title {
  color: #ffffff;
  font-weight: 700;
  font-size: 1.05rem;
  line-height: 1.35;
}
.enf-site-footer__title--center {
  text-align: center;
  font-size: 1.2rem;
  letter-spacing: 0.01em;
  margin-bottom: 1rem;
}
.enf-site-footer__section-title {
  color: #f8fafc;
  font-weight: 700;
  font-size: 0.95rem;
  letter-spacing: 0.02em;
}
.enf-site-footer__line {
  color: rgba(255, 255, 255, 0.9);
  font-size: 0.94rem;
  line-height: 1.55;
}
.enf-site-footer__line--with-icon {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
}
.enf-site-footer__ico {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.35rem;
  margin-top: 0.12rem;
  color: #ffffff;
  opacity: 0.98;
}
.enf-site-footer__ico i {
  font-size: 1.08rem;
  line-height: 1;
}
.enf-site-footer__line--with-icon > a,
.enf-site-footer__line--with-icon > span:not(.enf-site-footer__ico):not(.visually-hidden) {
  flex: 1;
  min-width: 0;
}
.enf-site-footer__k {
  display: inline-block;
  min-width: 5.5rem;
  font-weight: 700;
  color: #e5edf7;
}
.enf-site-footer__line a {
  color: #dbeafe;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.enf-site-footer__contacts-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.85rem 1.5rem;
  padding-top: 0.15rem;
}
.enf-site-footer__contact-col {
  min-width: 0;
}
.enf-site-footer__line--center {
  justify-content: center;
  align-items: center;
  text-align: center;
}
.enf-site-footer__line--center > span:not(.enf-site-footer__ico):not(.visually-hidden) {
  flex: 0 1 auto;
}
.enf-site-footer__address {
  width: 100%;
  margin-top: 1.15rem;
  padding-top: 0.15rem;
  text-align: center;
  justify-content: center;
}
.enf-site-footer__address > span:not(.enf-site-footer__ico):not(.visually-hidden) {
  flex: 0 1 auto;
  max-width: 100%;
}
@media (min-width: 992px) {
  .enf-site-footer__panel {
    max-width: 72rem;
  }
  .enf-site-footer__address {
    white-space: nowrap;
  }
}
@media (max-width: 767.98px) {
  .enf-site-footer__contacts-row {
    grid-template-columns: 1fr;
    gap: 0.65rem;
  }
}

/* Pie inicio: enlaces sin título + copyright, compacto */
.enf-landing-footer-panel {
  margin-top: var(--space-7);
  background: linear-gradient(180deg, #38414a 0%, #2b323a 100%);
  color: rgba(255, 255, 255, 0.88);
  padding: clamp(1.6rem, 4vw, 2.4rem) 0;
  border-top: 1px solid rgba(255, 255, 255, 0.07);
}

.enf-landing-footer-panel__inner {
  display: block;
  text-align: left;
}

.enf-site-footer__panel--landing {
  max-width: 70rem;
}

.enf-footer-escudo-wrap {
  width: 100%;
}

.enf-footer-escudo {
  display: block;
  max-height: 180px;
  width: auto;
  height: auto;
  object-fit: contain;
}

.enf-site-footer .enf-footer-escudo {
  max-height: 162px;
}

.enf-landing-footer-panel .enf-footer-escudo {
  max-height: 198px;
  filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.25));
}

/* ----- Portada inicio (tokens + componentes enf-ds-*) ----- */
.site-main--full-bleed {
  padding-left: 0;
  padding-right: 0;
}

.site-main--full-bleed > .enf-landing,
.site-main--full-bleed > .enf-subpage {
  width: 100%;
}

/* Inicio: mismo fondo lateral suave de subpaginas tipo Instagram/Videos. */
.enf-landing#contenido-inicio {
  background: var(--enf-canvas-bg-light);
}

.enf-landing#contenido-inicio > .enf-landing-hero--fullbleed {
  margin-bottom: 0;
}

/* Page headers con background-image inline (login, perfil, etc.): misma altura que el hero fullbleed */
.enf-page-header-viewport-bg {
  position: relative;
  overflow: hidden;
  min-height: var(--enf-hero-fullbleed-min-h);
  min-height: 100dvh;
  background-size: cover !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
}

/* Contenedor principal (membrete + panel): superpuesto al hero a pantalla completa */
.enf-inicio-overlap-wrap {
  position: relative;
  z-index: 4;
  margin-top: calc(var(--enf-panel-stack-inset-top) - var(--enf-hero-fullbleed-min-h));
  margin-top: calc(var(--enf-panel-stack-inset-top) - 100dvh);
}

/* Stack: primera franja transparente (titular) + tarjeta blanca; un solo ritmo vertical. */
.enf-inicio-panel-stack {
  position: relative;
  z-index: 1;
}

/* Primera «sección» del contenedor principal: titular sobre el hero (fondo transparente, sin marco). */
.enf-landing-panel-membrete {
  background: transparent !important;
  border: none;
  border-radius: 0;
  box-shadow: none !important;
  margin: 0;
}

.enf-landing-panel-membrete .enf-landing-hero__copy {
  position: relative;
  z-index: 8;
}

/* Botones outline del membrete (misma apariencia que en el hero fullbleed) */
.enf-landing-panel-membrete .enf-ds-btn--outline-light {
  background: transparent;
  color: var(--color-surface-pure);
  border: 2px solid rgba(255, 255, 255, 0.88);
  box-shadow: none;
}

.enf-landing-panel-membrete .enf-ds-btn--outline-light:hover:not(:disabled) {
  background: rgba(255, 255, 255, 0.12);
  border-color: var(--color-surface-pure);
  box-shadow: none;
}

.enf-landing-panel-membrete .enf-landing-hero__actions .enf-ds-btn--primary {
  border-color: rgba(255, 255, 255, 0.45);
}

/* Primera sección informativa del panel (banner o novedades) */
.enf-inicio-panel-superpuesto > .enf-inicio-primera-seccion:first-child,
.enf-inicio-panel-superpuesto > .enf-inicio-novedades:first-child {
  padding-top: var(--enf-inicio-panel-first-section-pt);
}
.enf-inicio-panel-superpuesto {
  position: relative;
  z-index: 5;
  margin-top: calc(-1 * var(--enf-panel-content-overlap));
  box-shadow: 0 24px 48px rgba(15, 23, 42, 0.2);
  overflow: hidden;
  background-color: var(--enf-surface-main-light);
  color: var(--enf-on-surface-body-light);
}

html[data-enf-color-scheme="dark"] .enf-inicio-panel-superpuesto.card,
html[data-enf-color-scheme="dark"] .enf-inicio-panel-superpuesto {
  background-color: var(--enf-surface-main-dark) !important;
  color: var(--enf-on-surface-body-dark);
  border-color: rgba(255, 255, 255, 0.1) !important;
}

/* Portada — contenedor principal: títulos siempre color de acento; no invierten con el tema */
.enf-inicio-panel-superpuesto h1.enf-landing-title-impact,
.enf-inicio-panel-superpuesto h2.enf-landing-title-impact,
.enf-inicio-panel-superpuesto h3.enf-landing-title-impact {
  color: var(--color-authority-deep) !important;
}

/* Subtítulos y texto corrido: contrastan con blanco (diurno) o negro (nocturno) */
html[data-enf-color-scheme="light"] .enf-inicio-panel-superpuesto .enf-landing-formacion-desc,
.enf-inicio-panel-superpuesto .enf-landing-formacion-desc {
  color: var(--enf-on-surface-muted-light);
}

html[data-enf-color-scheme="dark"] .enf-inicio-panel-superpuesto .enf-landing-formacion-desc {
  color: var(--enf-on-surface-muted-dark) !important;
}

html[data-enf-color-scheme="light"] .enf-inicio-panel-superpuesto .enf-landing-institucional-teaser__descripcion,
.enf-inicio-panel-superpuesto .enf-landing-institucional-teaser__descripcion {
  color: var(--enf-on-surface-muted-light);
}

html[data-enf-color-scheme="dark"] .enf-inicio-panel-superpuesto .enf-landing-institucional-teaser__descripcion {
  color: var(--enf-on-surface-muted-dark) !important;
}

/* Teaser institucional con fondo fotográfico: legible sobre el overlay (no invierte con el panel) */
.enf-inicio-panel-superpuesto .enf-inicio-institucional__hero .enf-landing-institucional-teaser__descripcion {
  color: rgba(255, 255, 255, 0.92) !important;
}

html[data-enf-color-scheme="dark"] .enf-inicio-panel-superpuesto .enf-inicio-mapa-head .enf-ds-text-small,
html[data-enf-color-scheme="dark"] .enf-inicio-panel-superpuesto .enf-inicio-mapa-head p {
  color: var(--enf-on-surface-muted-dark) !important;
}

html[data-enf-color-scheme="dark"] .enf-inicio-panel-superpuesto .enf-inicio-ig-block .text-muted {
  color: var(--enf-on-surface-muted-dark) !important;
}

html[data-enf-color-scheme="dark"] .enf-inicio-panel-superpuesto .enf-landing-card__body .enf-ds-text-small {
  color: var(--enf-on-surface-muted-dark) !important;
}

html[data-enf-color-scheme="dark"] .enf-inicio-panel-superpuesto .enf-landing-card__body h3.enf-ds-h3 {
  color: var(--color-authority-deep) !important;
}

html[data-enf-color-scheme="dark"] .enf-inicio-panel-superpuesto .rounded-3.border.border-dashed.bg-light {
  background-color: #141414 !important;
  border-color: rgba(255, 255, 255, 0.2) !important;
  color: var(--enf-on-surface-muted-dark) !important;
}

html[data-enf-color-scheme="dark"] .enf-inicio-panel-superpuesto .enf-inicio-section-heading {
  border-top-color: rgba(255, 255, 255, 0.12);
}

html[data-enf-color-scheme="light"] .enf-inicio-panel-superpuesto .enf-inicio-mapa-head p,
.enf-inicio-panel-superpuesto .enf-inicio-mapa-head p {
  color: var(--enf-on-surface-muted-light);
}

html[data-enf-color-scheme="light"] .enf-inicio-panel-superpuesto .enf-inicio-ig-block .text-muted,
.enf-inicio-panel-superpuesto .enf-inicio-ig-block .text-muted {
  color: var(--enf-on-surface-muted-light) !important;
}

/* Datos clave: cabecera sobre el mismo fondo que el panel (blanco/negro según tema) */
.enf-inicio-contraste-band .enf-inicio-datos-clave-head .enf-ds-text-small,
.enf-inicio-contraste-band .enf-inicio-datos-clave-head p.enf-ds-text-small {
  color: var(--enf-on-surface-muted-light);
}
html[data-enf-color-scheme="dark"] .enf-inicio-panel-superpuesto .enf-inicio-contraste-band .enf-inicio-datos-clave-head .enf-ds-text-small,
html[data-enf-color-scheme="dark"] .enf-inicio-panel-superpuesto .enf-inicio-contraste-band .enf-inicio-datos-clave-head p {
  color: var(--enf-on-surface-muted-dark) !important;
}

html[data-enf-color-scheme="dark"] .enf-inicio-panel-superpuesto .enf-inicio-mapa-embed {
  border-top-color: rgba(255, 255, 255, 0.12);
}

html[data-enf-color-scheme="dark"] .enf-inicio-panel-superpuesto .enf-ds-card.enf-landing-card {
  background-color: #141414 !important;
  border-color: rgba(255, 255, 255, 0.12) !important;
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.5);
}

html[data-enf-color-scheme="dark"] .enf-inicio-panel-superpuesto .enf-landing-programas-nav {
  background: #1f1f1f;
  border-color: rgba(255, 255, 255, 0.18);
  color: var(--color-interaction-vibrant);
  box-shadow: none;
}

html[data-enf-color-scheme="dark"] .enf-inicio-panel-superpuesto .enf-landing-programas-nav:hover:not(:disabled) {
  background: rgba(144, 202, 249, 0.12);
  color: #90caf9;
}

/* Tarjetas Datos clave: fondo oscuro también en modo oscuro del panel */
html[data-enf-color-scheme="dark"] .enf-inicio-panel-superpuesto .enf-inicio-contraste-band .enf-inicio-stat-box {
  background: linear-gradient(165deg, #252a32 0%, #191e26 55%, #12161c 100%) !important;
  border-color: rgba(255, 255, 255, 0.12) !important;
  color: rgba(255, 255, 255, 0.95);
}
html[data-enf-color-scheme="dark"] .enf-inicio-panel-superpuesto .enf-inicio-contraste-band .enf-inicio-stat-box .enf-inicio-stat-box__value {
  color: #ffffff !important;
}
html[data-enf-color-scheme="dark"] .enf-inicio-panel-superpuesto .enf-inicio-contraste-band .enf-inicio-stat-box .enf-inicio-stat-box__label {
  color: rgba(248, 250, 252, 0.92) !important;
}
html[data-enf-color-scheme="dark"] .enf-inicio-panel-superpuesto .enf-inicio-contraste-band .enf-inicio-stat-box .enf-inicio-stat-box__hint {
  color: rgba(203, 213, 225, 0.88) !important;
}

/* Mapa integrado al panel principal de inicio (sin tarjeta interna).
   Dos clases: debe ganar a .enf-landing-section { padding } definido más abajo. */
.enf-landing-section.enf-inicio-mapa-seccion {
  padding-top: 0;
  padding-bottom: 0;
}
.enf-inicio-mapa-head {
  background: transparent;
}
.enf-inicio-section-heading {
  border-top: 1px solid var(--color-border-soft);
  padding-top: var(--space-4);
}
/* Mapa: sin línea decorativa sobre el título (el badge ya marca la sección) */
.enf-inicio-mapa-seccion .enf-inicio-section-heading {
  border-top: none;
  padding-top: 0;
}
.enf-inicio-panel-superpuesto .enf-landing-section.enf-inicio-biblioteca-externa:has(+ .enf-inicio-mapa-seccion) {
  padding-bottom: var(--space-3);
}
.enf-inicio-mapa-embed {
  width: 100%;
  border-top: 1px solid var(--color-border-soft);
  margin-bottom: var(--space-3);
}
.enf-inicio-mapa-embed iframe {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}

/* Inicio — Datos clave: franja al mismo color que el panel; las cajas llevan el contraste oscuro. */
.enf-inicio-contraste-band {
  background: transparent;
  border-radius: 0;
  margin: var(--space-4) calc(-1 * var(--bs-card-spacer-x, 1rem));
  padding-top: var(--space-5);
  padding-bottom: var(--space-5);
}
.enf-inicio-contraste-band__head {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-4);
  justify-content: space-between;
  align-items: flex-start;
}
.enf-inicio-contraste-band__layout {
  display: grid;
  grid-template-columns: minmax(18rem, 0.95fr) minmax(22rem, 1.05fr);
  gap: var(--space-5);
  align-items: start;
}
.enf-inicio-contraste-band__left {
  position: sticky;
  top: 1rem;
}
.enf-inicio-contraste-band__copy {
  flex: 1 1 auto;
  max-width: 30rem;
}
.enf-inicio-contraste-band__copy .enf-landing-title-impact {
  color: var(--color-authority-deep);
}
.enf-inicio-contraste-band__copy .enf-ds-text-small {
  color: var(--enf-on-surface-muted-light);
}
html[data-enf-color-scheme="dark"] .enf-inicio-panel-superpuesto .enf-inicio-contraste-band__copy .enf-ds-text-small {
  color: var(--enf-on-surface-muted-dark) !important;
}
.enf-inicio-contraste-band__copy .enf-ds-badge--neutral {
  background: rgba(15, 23, 42, 0.06);
  color: var(--color-steel-secondary, #475569);
  border-color: rgba(18, 52, 74, 0.14);
}
html[data-enf-color-scheme="dark"] .enf-inicio-panel-superpuesto .enf-inicio-contraste-band__copy .enf-ds-badge--neutral {
  background: rgba(255, 255, 255, 0.1);
  color: #eef2f7;
  border-color: rgba(255, 255, 255, 0.2);
}
.enf-inicio-contraste-band__cta {
  flex: 0 0 auto;
}
.enf-inicio-contraste-band__cta-btn.enf-ds-btn--secondary {
  background: linear-gradient(135deg, #7b4cc9 0%, #5d36b8 100%);
  border-color: rgba(255, 255, 255, 0.2);
  color: #ffffff;
}
.enf-inicio-contraste-band__cta-btn.enf-ds-btn--secondary:hover:not(:disabled) {
  transform: translateY(-1px);
  filter: brightness(1.05);
}

/* Portada — «Datos clave»: cabecera + tira horizontal de cifras */
.enf-inicio-datos-clave-head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--space-4);
  margin-bottom: var(--space-3);
}
.enf-inicio-datos-clave-head__text {
  flex: 1 1 18rem;
  max-width: 42rem;
}
.enf-inicio-datos-clave-head__cta {
  flex: 0 0 auto;
}
@media (max-width: 767.98px) {
  .enf-inicio-datos-clave-head__cta {
    width: 100%;
  }
  .enf-inicio-datos-clave-head__cta .enf-ds-btn {
    width: 100%;
    justify-content: center;
  }
}
.enf-inicio-stat-strip {
  display: flex;
  flex-wrap: nowrap;
  gap: var(--space-3);
  overflow-x: auto;
  padding-bottom: 4px;
  margin: 0 calc(-1 * var(--bs-gutter-x, 0.75rem)) 0 0;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
}
.enf-inicio-stat-box {
  flex: 0 0 min(100%, 11.5rem);
  min-width: 10.25rem;
  max-width: 16rem;
  border-radius: var(--border-radius-card, 0.75rem);
  border: 1px solid rgba(18, 52, 74, 0.1);
  box-shadow: 0 4px 14px rgba(15, 23, 42, 0.08);
  scroll-snap-align: start;
}
.enf-inicio-stat-box .card-body {
  padding: 1.1rem 0.85rem 1rem;
}
.enf-inicio-stat-box__value {
  font-size: clamp(1.35rem, 2.4vw, 2.15rem);
  font-weight: 800;
  line-height: 1.12;
  color: #1a3a4a;
  letter-spacing: -0.02em;
  word-break: break-word;
}
.enf-inicio-stat-box__label {
  font-size: 0.92rem;
  font-weight: 600;
  color: #334155;
  line-height: 1.25;
}
.enf-inicio-stat-box__hint {
  font-size: 0.78rem;
  color: var(--color-steel-secondary, #64748b);
  line-height: 1.35;
  margin-top: 0.4rem;
  opacity: 0.95;
}

/* Datos clave (portada): cajas con fondo oscuro sobre franja clara u oscura del panel */
.enf-inicio-contraste-band .enf-inicio-stat-box {
  background: linear-gradient(165deg, #2b3038 0%, #1e232b 55%, #161b22 100%) !important;
  border: 1px solid rgba(255, 255, 255, 0.12) !important;
  box-shadow: 0 8px 22px rgba(15, 23, 42, 0.32);
  color: rgba(255, 255, 255, 0.95);
}
.enf-inicio-contraste-band .enf-inicio-stat-box .enf-inicio-stat-box__value {
  color: #f8fafc !important;
}
.enf-inicio-contraste-band .enf-inicio-stat-box .enf-inicio-stat-box__label {
  color: rgba(241, 245, 249, 0.95) !important;
}
.enf-inicio-contraste-band .enf-inicio-stat-box .enf-inicio-stat-box__hint {
  color: rgba(203, 213, 225, 0.9) !important;
  opacity: 1;
}

@media (min-width: 992px) {
  .enf-inicio-stat-strip {
    flex-wrap: wrap;
    overflow-x: visible;
    margin-right: 0;
    padding-bottom: 0;
  }
  .enf-inicio-stat-box {
    flex: 1 1 9.5rem;
    min-width: 9rem;
    max-width: none;
  }
}

.enf-inicio-ubicacion-modal .modal-dialog {
  max-width: min(36rem, 96vw);
}
.enf-inicio-ubicacion-modal .enf-inicio-ubicacion-datos__list li {
  line-height: 1.45;
}

/* Portada — Instagram: título y franja en el panel general (sin tarjeta anidada) */
.enf-inicio-ig-block {
  position: relative;
  z-index: 1;
  min-width: 0;
}
.enf-inicio-ig-strip.enf-landing-programas-carousel {
  margin-bottom: 0;
}
/* Los embeds de Instagram fuerzan min-width en el iframe; sin recorte las celdas se desbordan y se superponen */
.enf-inicio-ig-strip .enf-landing-programas-viewport {
  min-width: 0;
  isolation: isolate;
}
.enf-inicio-ig-strip .enf-landing-programas-track {
  align-items: flex-start;
  min-width: 0;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  gap: var(--space-5);
}
.enf-inicio-ig-strip .enf-landing-programas-cell {
  align-self: flex-start;
  min-width: 0;
  overflow: hidden;
  box-sizing: border-box;
  flex: 0 0 calc((100% - 2 * var(--space-5)) / 3);
  max-width: calc((100% - 2 * var(--space-5)) / 3);
  position: relative;
  isolation: isolate;
}
.enf-inicio-ig-embed-wrap {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow: hidden;
  box-sizing: border-box;
}
.enf-inicio-ig-blockquote.instagram-media {
  max-width: 100% !important;
  min-width: 0 !important;
  margin-left: auto !important;
  margin-right: auto !important;
  box-sizing: border-box !important;
}
/* Contenido incrustado por embed.js (iframe) */
.enf-inicio-ig-strip .instagram-media iframe,
.enf-inicio-ig-strip iframe[src*="instagram.com"] {
  max-width: 100% !important;
  min-width: 0 !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

/* Portada — biblioteca institucional: imagen a todo el ancho como fondo; texto y CTA superpuestos */
.enf-inicio-biblioteca-externa__bleed {
  margin-left: calc(-1 * var(--bs-card-spacer-x, 1rem));
  margin-right: calc(-1 * var(--bs-card-spacer-x, 1rem));
}
.enf-inicio-biblioteca-externa__hero {
  position: relative;
  overflow: hidden;
  min-height: 17rem;
  background-color: #1e293b;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  border-color: rgba(15, 23, 42, 0.12) !important;
}
.enf-inicio-biblioteca-externa__overlay {
  position: absolute;
  inset: 0;
  display: block;
  background: linear-gradient(
    105deg,
    rgba(15, 23, 42, 0.9) 0%,
    rgba(15, 23, 42, 0.58) 52%,
    rgba(15, 23, 42, 0.28) 100%
  );
  pointer-events: none;
}
.enf-inicio-biblioteca-externa__copy-wrap {
  z-index: 2;
}
.enf-inicio-biblioteca-externa__copy {
  max-width: 38rem;
}
.enf-inicio-biblioteca-externa__lead {
  color: rgba(255, 255, 255, 0.92);
  line-height: 1.55;
}
@media (min-width: 992px) {
  .enf-inicio-biblioteca-externa__hero {
    min-height: 19rem;
  }
}

/* Portada — bloque Historia / institucional: misma lógica que biblioteca (foto + overlay) */
.enf-inicio-institucional__bleed {
  margin-left: calc(-1 * var(--bs-card-spacer-x, 1rem));
  margin-right: calc(-1 * var(--bs-card-spacer-x, 1rem));
}
.enf-inicio-institucional__hero {
  position: relative;
  overflow: hidden;
  min-height: 14rem;
  background-color: #1e293b;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  border-color: rgba(15, 23, 42, 0.12) !important;
}
.enf-inicio-institucional__overlay {
  position: absolute;
  inset: 0;
  display: block;
  background: linear-gradient(
    105deg,
    rgba(15, 23, 42, 0.88) 0%,
    rgba(15, 23, 42, 0.52) 55%,
    rgba(15, 23, 42, 0.22) 100%
  );
  pointer-events: none;
}
.enf-inicio-institucional__copy-wrap {
  z-index: 2;
}
.enf-inicio-institucional__copy {
  max-width: 42rem;
}
.enf-inicio-institucional__hero .enf-landing-institucional-teaser__descripcion {
  color: rgba(255, 255, 255, 0.92);
  line-height: 1.55;
}
.enf-inicio-institucional__hero .enf-ds-badge--neutral {
  background: rgba(255, 255, 255, 0.16);
  color: #eef2f7;
  border-color: rgba(255, 255, 255, 0.25);
}
@media (min-width: 992px) {
  .enf-inicio-institucional__hero {
    min-height: 16rem;
  }
}

.enf-inicio-contraste-band .enf-landing-stats .enf-landing-stat {
  background: linear-gradient(165deg, #2b3038 0%, #1e232b 100%);
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: rgba(255, 255, 255, 0.92);
}
.enf-inicio-stats-cards {
  align-items: stretch;
  row-gap: var(--space-4);
  grid-template-columns: 1fr !important;
}
.enf-inicio-stat-card {
  border-radius: var(--border-radius-card, 0.75rem);
  margin-top: 0.85rem;
}
.enf-inicio-stat-card .card-body h5 {
  font-size: 1.22rem;
}
.enf-inicio-stat-card .card-body h6 {
  font-size: 1rem;
  margin-bottom: 0.35rem;
}
.enf-inicio-stat-card .card-body p {
  color: var(--color-steel-secondary);
  font-size: 0.93rem;
  line-height: 1.45;
}
/* Tarjetas Material Kit .card-profile (foto lateral o destacada): imagen recortada a cuadrado en todo el sitio */
.card.card-profile img.border-radius-md.shadow-lg {
  aspect-ratio: 1 / 1;
  object-fit: cover;
  object-position: center;
}
.enf-inicio-stat-card .p-3.pe-md-0 {
  padding-right: 1rem !important;
}
@media (max-width: 767.98px) {
  .enf-inicio-contraste-band__layout {
    grid-template-columns: 1fr;
  }
  .enf-inicio-contraste-band__left {
    position: static;
  }
  .enf-inicio-stats-cards.enf-ds-grid--2 {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 991.98px) {
  .enf-inicio-contraste-band__layout {
    grid-template-columns: 1fr;
  }
  .enf-inicio-contraste-band__left {
    position: static;
  }
}
@media (max-width: 767.98px) {
  .enf-inicio-contraste-band__cta {
    width: 100%;
  }
  .enf-inicio-contraste-band__cta-btn.enf-ds-btn--secondary {
    width: 100%;
    justify-content: center;
  }
}
/* ----- Páginas institucionales (investigación, biblioteca): mismo lenguaje visual que la landing ----- */
.enf-subpage {
  background: var(--enf-canvas-bg-light);
}

.enf-subpage > .enf-landing-hero {
  /* El solape del contenido siguiente cierra el hueco; evita sumar margen extra */
  margin-bottom: 0;
}

.enf-subpage .enf-subpage-first-section {
  padding-top: var(--space-8);
}
/* Solo el primer bloque de contenido pegado al hero (blog, novedades, IG, videos…); el panel de La Escuela / inicio no es hijo directo del hero */
.enf-subpage > .enf-landing-hero + .enf-landing-section.enf-subpage-first-section {
  padding-top: var(--enf-subpage-after-hero-section-pt);
}

/* Hero de subpáginas: mismo bloque que la portada (.enf-landing-hero) */

.enf-subpage .enf-landing-hero__actions .enf-subpage-hero-admin {
  margin-left: 0;
}

@media (min-width: 992px) {
  .enf-subpage .enf-landing-hero__actions .enf-subpage-hero-admin {
    margin-left: auto;
  }
}

.enf-subpage .enf-landing-hero .btn-editar-estatico {
  border-color: rgba(255, 255, 255, 0.85);
  color: rgba(255, 255, 255, 0.95);
  background: transparent;
}

.enf-subpage .enf-landing-hero .btn-editar-estatico:hover {
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
}

/* Oferta académica: folleto en hero — plano, sombra suave; hover con leve escala (sin brillo / sin skeuomorfismo) */
.enf-subpage--oferta-academica .enf-oferta-hero-folleto-cta {
  background-color: var(--color-institutional-yellow);
  color: #14232f;
  border-color: rgba(26, 82, 118, 0.22);
  font-weight: 700;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06), 0 4px 12px rgba(15, 23, 42, 0.08);
  transition: box-shadow 0.22s ease, transform 0.22s ease, border-color 0.22s ease, color 0.22s ease;
}

.enf-subpage--oferta-academica .enf-oferta-hero-folleto-cta:hover:not(:disabled) {
  color: #0a1218;
  border-color: rgba(26, 82, 118, 0.38);
  box-shadow: 0 2px 4px rgba(15, 23, 42, 0.07), 0 8px 20px rgba(15, 23, 42, 0.1);
  transform: translateY(-1px) scale(1.02);
}

.enf-subpage--oferta-academica .enf-oferta-hero-folleto-cta:focus-visible {
  outline: var(--outline-focus-width) solid var(--color-authority-deep);
  outline-offset: var(--outline-focus-offset);
}

@media (prefers-reduced-motion: reduce) {
  .enf-subpage--oferta-academica .enf-oferta-hero-folleto-cta {
    transition: box-shadow 0.15s ease, border-color 0.15s ease, color 0.15s ease;
  }

  .enf-subpage--oferta-academica .enf-oferta-hero-folleto-cta:hover:not(:disabled) {
    transform: none;
  }
}

.enf-subpage-linea-card .enf-landing-card__media {
  position: relative;
  overflow: hidden;
}

/* Investigación (listado filtrable): misma miniatura cuadrada que el resto de búsquedas */
.enf-subpage-linea-card .enf-landing-card__media img {
  aspect-ratio: 1 / 1;
  object-fit: cover;
  object-position: center;
  width: 100%;
  height: auto;
}

.enf-subpage-linea-card .btn-light {
  border: 1px solid var(--color-border-soft);
  box-shadow: var(--shadow-soft);
}

.enf-subpage__extra {
  padding-top: var(--space-6);
  padding-bottom: var(--space-7);
}

/* Biblioteca digital — acceso al sistema externo (tesis, investigación, login) */
.enf-subpage--biblioteca .enf-bibl-virtual-hero-btn.enf-ds-btn--primary {
  box-shadow:
    0 0 0 2px rgba(255, 255, 255, 0.42),
    0 8px 22px rgba(0, 0, 0, 0.28);
}
.enf-subpage--biblioteca .enf-bibl-virtual-banner {
  border-left: 4px solid var(--color-authority-deep);
  background: linear-gradient(135deg, rgba(26, 82, 118, 0.08) 0%, #ffffff 58%);
}
.enf-subpage--biblioteca .enf-bibl-virtual-banner__icon {
  width: 3rem;
  height: 3rem;
  border-radius: var(--radius-md);
  background: rgba(26, 82, 118, 0.12);
  color: var(--color-authority-deep);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.55rem;
}
html[data-enf-color-scheme="dark"] .enf-subpage--biblioteca .enf-bibl-virtual-banner {
  background: linear-gradient(135deg, rgba(26, 82, 118, 0.3) 0%, #1e2430 55%);
  border-left-color: rgba(129, 179, 214, 0.9);
}
html[data-enf-color-scheme="dark"] .enf-subpage--biblioteca .enf-bibl-virtual-banner__icon {
  background: rgba(129, 179, 214, 0.16);
  color: #e8eaed;
}

.enf-subpage-biblio-layout {
  display: grid;
  grid-template-columns: minmax(0, 17.5rem) minmax(0, 1fr);
  gap: var(--space-5);
  align-items: start;
}

@media (max-width: 991.98px) {
  .enf-subpage-biblio-layout {
    grid-template-columns: 1fr;
  }
}

.enf-subpage-biblio-filters .enf-ds-card {
  position: sticky;
  top: calc(var(--space-4) + 3.5rem);
  background: #1f2937;
  color: #f9fafb;
  border: 1px solid rgba(255, 255, 255, 0.14);
}

.enf-subpage-biblio-filters .enf-ds-card .enf-ds-h4,
.enf-subpage-biblio-filters .enf-ds-card .enf-ds-label,
.enf-subpage-biblio-filters .enf-ds-card .form-check-label,
.enf-subpage-biblio-filters .enf-ds-card .enf-ds-text-small,
.enf-subpage-biblio-filters .enf-ds-card .text-muted {
  color: #f9fafb !important;
}

.enf-subpage-biblio-filters .enf-ds-card .enf-ds-input,
.enf-subpage-biblio-filters .enf-ds-card .enf-ds-select,
.enf-subpage-biblio-filters .enf-ds-card .form-check-input {
  background: rgba(255, 255, 255, 0.96);
  color: #111827;
  border-color: rgba(17, 24, 39, 0.3);
}

html[data-enf-color-scheme="dark"] .enf-subpage-biblio-filters .enf-ds-card {
  background: #ffffff;
  color: #111827;
  border-color: rgba(17, 24, 39, 0.16);
}

html[data-enf-color-scheme="dark"] .enf-subpage-biblio-filters .enf-ds-card .enf-ds-h4,
html[data-enf-color-scheme="dark"] .enf-subpage-biblio-filters .enf-ds-card .enf-ds-label,
html[data-enf-color-scheme="dark"] .enf-subpage-biblio-filters .enf-ds-card .form-check-label,
html[data-enf-color-scheme="dark"] .enf-subpage-biblio-filters .enf-ds-card .enf-ds-text-small,
html[data-enf-color-scheme="dark"] .enf-subpage-biblio-filters .enf-ds-card .text-muted {
  color: #111827 !important;
}

html[data-enf-color-scheme="dark"] .enf-subpage-biblio-filters .enf-ds-card .enf-ds-input,
html[data-enf-color-scheme="dark"] .enf-subpage-biblio-filters .enf-ds-card .enf-ds-select,
html[data-enf-color-scheme="dark"] .enf-subpage-biblio-filters .enf-ds-card .form-check-input {
  background: #ffffff;
  color: #111827;
  border-color: rgba(17, 24, 39, 0.26);
}

.enf-subpage-biblio-article {
  overflow: hidden;
}

.enf-subpage-biblio-article__layout {
  display: grid;
  grid-template-columns: minmax(0, 220px) minmax(0, 1fr);
  gap: var(--space-4);
  align-items: stretch;
}

@media (max-width: 767.98px) {
  .enf-subpage-biblio-article__layout {
    grid-template-columns: 1fr;
  }
}

/* Listados con filtros (biblioteca, noticias, oferta): miniatura cuadrada 1:1, esquina superior izquierda */
.enf-subpage-biblio-article__media {
  display: block;
  align-self: start;
  width: 100%;
  max-width: 220px;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  border-radius: var(--radius-md);
  background: var(--color-surface-muted, rgba(15, 23, 42, 0.06));
}

.enf-subpage-biblio-article__media > a.d-block {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 0;
}

.enf-subpage-biblio-article__media img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 0;
  max-height: none;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  object-position: center;
}

.enf-subpage-biblio-article__body {
  padding: var(--space-5);
}

.enf-subpage-biblio-article__meta {
  font-size: var(--font-size-xs);
  color: var(--color-steel-secondary);
}

/* Oferta académica: tarjetas horizontales (reuso layout biblioteca); botón editar sobre la imagen */
.enf-subpage-oferta-layout .enf-subpage-biblio-article__media {
  position: relative;
}

.enf-subpage-oferta-layout .enf-subpage-biblio-article__media .btn-light {
  border: 1px solid var(--color-border-soft);
  box-shadow: var(--shadow-soft);
}

/* Oferta académica: tarjetas blancas legibles en panel oscuro (modo nocturno del sitio) */
html[data-enf-color-scheme="dark"] .enf-subpage--oferta-academica .enf-inicio-panel-superpuesto .enf-subpage-biblio-list .enf-ds-card.enf-subpage-biblio-article {
  background: #ffffff !important;
  color: var(--enf-on-surface-body-light, #424242) !important;
  border-color: rgba(17, 24, 39, 0.14) !important;
}

html[data-enf-color-scheme="dark"] .enf-subpage--oferta-academica .enf-inicio-panel-superpuesto .enf-subpage-biblio-list .enf-subpage-biblio-article__body,
html[data-enf-color-scheme="dark"] .enf-subpage--oferta-academica .enf-inicio-panel-superpuesto .enf-subpage-biblio-list .enf-subpage-biblio-article__body .enf-ds-h3,
html[data-enf-color-scheme="dark"] .enf-subpage--oferta-academica .enf-inicio-panel-superpuesto .enf-subpage-biblio-list .enf-subpage-biblio-article__body .enf-ds-h3 a,
html[data-enf-color-scheme="dark"] .enf-subpage--oferta-academica .enf-inicio-panel-superpuesto .enf-subpage-biblio-list .enf-subpage-biblio-article__body .text-muted,
html[data-enf-color-scheme="dark"] .enf-subpage--oferta-academica .enf-inicio-panel-superpuesto .enf-subpage-biblio-list .enf-subpage-biblio-article__meta {
  color: var(--enf-on-surface-body-light, #424242) !important;
}

html[data-enf-color-scheme="dark"] .enf-subpage--oferta-academica .enf-inicio-panel-superpuesto .enf-subpage-biblio-list .enf-subpage-biblio-article__body .text-muted {
  color: var(--enf-on-surface-muted-light, #757575) !important;
}

html[data-enf-color-scheme="dark"] .enf-subpage--oferta-academica .enf-inicio-panel-superpuesto #enfOfertaFiltroContador {
  color: var(--enf-on-surface-muted-dark, rgba(255, 255, 255, 0.72)) !important;
}

.enf-subpage-oferta-layout .enf-subpage-biblio-list {
  min-width: 0;
}

@media (max-width: 991.98px) {
  .enf-subpage-oferta-layout .enf-subpage-biblio-list {
    margin-top: var(--space-4, 1rem);
  }
}

.enf-design-system .enf-ds-alert--info {
  background: rgba(41, 128, 185, 0.1);
  border-color: rgba(41, 128, 185, 0.35);
  color: var(--color-authority-deep);
}

.enf-landing-hero {
  background-color: var(--color-authority-deep);
  color: var(--color-text-on-authority);
  padding: clamp(var(--space-6), 7vw, var(--space-8)) 0 var(--space-7);
}

.enf-landing-hero--fullbleed {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  min-height: var(--enf-hero-fullbleed-min-h);
  min-height: 100dvh;
  padding-top: var(--enf-hero-fullbleed-pt);
  padding-bottom: var(--enf-hero-fullbleed-pb);
}

.enf-landing-hero--fullbleed::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: var(--enf-hero-bg-image);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  z-index: -2;
}

/* Fondo del hero: capa <img> (portada) además del ::before por compatibilidad */
.enf-hero-bg-layer {
  position: absolute;
  inset: 0;
  z-index: -2;
  pointer-events: none;
  overflow: hidden;
}
.enf-hero-bg-layer__img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.enf-landing-hero--has-bg-layer::before {
  opacity: 0;
  visibility: hidden;
}
.enf-landing-hero--visual-slideshow .enf-hero-bg-layer {
  display: none;
}

.enf-landing-hero--fullbleed::after {
  content: "";
  position: absolute;
  inset: 0;
  /* Cortina plateada suave: deja ver el fondo y mantiene legible el texto */
  background: linear-gradient(
    115deg,
    rgba(24, 28, 34, 0.42) 0%,
    rgba(58, 66, 78, 0.35) 45%,
    rgba(98, 108, 122, 0.28) 100%
  );
  z-index: -1;
}

html[data-enf-hero-cortina="off"] .enf-landing-hero--fullbleed::after,
html[data-enf-hero-cortina="off"] .enf-landing-hero--visual-slideshow.enf-landing-hero--fullbleed::after {
  background: none;
  opacity: 0;
  visibility: hidden;
}

.enf-landing-hero--fullbleed > .enf-ds-container {
  position: relative;
  z-index: 1;
}

/* Carrusel del hero = fondo a todo el ancho (misma altura que el bloque hero) */
.enf-landing-hero--visual-slideshow.enf-landing-hero--fullbleed::before {
  opacity: 0;
  visibility: hidden;
}
.enf-landing-hero--visual-slideshow.enf-landing-hero--fullbleed::after {
  z-index: 1;
  pointer-events: none;
}
.enf-landing-hero--visual-slideshow.enf-landing-hero--fullbleed > .enf-ds-container {
  z-index: 2;
}
.enf-hero-fullbleed-slideshow {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.enf-hero-fullbleed-slideshow__carousel {
  height: 100%;
  min-height: 100%;
}
.enf-hero-fullbleed-slideshow__carousel .carousel-inner {
  height: 100%;
}
.enf-hero-fullbleed-slideshow__carousel .carousel-item {
  height: 100%;
}
.enf-hero-fullbleed-slideshow__img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.enf-hero-fullbleed-slideshow__arrow {
  width: 3rem;
  height: 3rem;
  border-radius: 50%;
  top: 50%;
  transform: translateY(-50%);
  opacity: 0.95;
  pointer-events: auto;
  z-index: 4;
  background: rgba(0, 0, 0, 0.35);
}
.enf-hero-fullbleed-slideshow__arrow:hover {
  background: rgba(0, 0, 0, 0.5);
}
.enf-hero-fullbleed-slideshow__arrow .carousel-control-prev-icon,
.enf-hero-fullbleed-slideshow__arrow .carousel-control-next-icon {
  width: 1.5rem;
  height: 1.5rem;
}
.enf-hero-fullbleed-slideshow__arrow.carousel-control-prev {
  left: 0.75rem;
}
.enf-hero-fullbleed-slideshow__arrow.carousel-control-next {
  right: 0.75rem;
}
.enf-hero-fullbleed-slideshow__edit {
  position: absolute;
  top: 0.75rem;
  right: 0.75rem;
  z-index: 6;
  pointer-events: auto;
}

/* .enf-landing-hero--slideshow-no-side-media: el layout fullbleed ya es una sola columna de copy */

.enf-landing-hero__eyebrow {
  margin: 0 0 var(--space-3);
}

.enf-landing-hero__title {
  font-family: var(--font-family-heading);
  font-size: var(--font-size-h1);
  font-weight: var(--font-weight-heading-bold);
  letter-spacing: var(--letter-spacing-h1);
  line-height: var(--line-height-heading);
  color: var(--color-text-on-authority);
  margin: 0 0 var(--space-4);
  max-width: 22ch;
}

/* Sobre fondo oscuro: el h1 global de .enf-design-system (design-tokens) no debe forzar texto oscuro */
.enf-design-system .enf-landing-hero h1.enf-landing-hero__title,
.enf-design-system .enf-landing-panel-membrete h1.enf-landing-hero__title,
.enf-design-system .hero h1,
.enf-design-system .hero--universidad .hero__copy h1 {
  color: var(--color-text-on-authority);
}

.enf-design-system header.bg-gradient-dark .page-header h1,
.enf-design-system header .page-header h1.text-white {
  color: var(--color-text-on-authority);
}

@media (max-width: 600px) {
  .enf-landing-hero__title {
    font-size: 2rem;
  }
}

.enf-landing-hero__lead {
  font-family: var(--font-family-body);
  font-size: var(--font-size-lead);
  line-height: var(--line-height-body);
  color: rgba(255, 255, 255, 0.9);
  max-width: 40rem;
  margin: 0;
}

.enf-landing-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
  margin-top: var(--enf-hero-actions-mt);
}

/* Copy del hero por encima del panel solapado (CTAs siempre clicables) */
.enf-landing-hero--fullbleed .enf-landing-hero__copy {
  position: relative;
  z-index: 8;
}

/* Adjuntos PDF en vista pública del post */
.post-content .enf-cms-adjuntos-pdf {
  margin-top: var(--space-5, 1.5rem);
}
.post-content .enf-cms-adjuntos-pdf .enf-ds-btn--pdf {
  margin: 0;
}

/* Botón PDF en cuerpos de artículo y fichas */
.post-content .enf-ds-btn--pdf,
.contenido-articulo .enf-ds-btn--pdf,
.text-secondary .enf-ds-btn--pdf {
  margin-top: var(--space-2);
  margin-bottom: var(--space-2);
}

a.enf-ds-btn {
  text-decoration: none;
}

.enf-design-system .enf-ds-btn--outline-primary {
  background: transparent;
  color: var(--color-authority-deep);
  border-color: var(--color-authority-deep);
  box-shadow: none;
}

.enf-design-system .enf-ds-btn--outline-primary:hover:not(:disabled) {
  background: var(--color-interaction-vibrant-muted);
  border-color: var(--color-interaction-vibrant-hover);
  color: var(--color-interaction-vibrant-hover);
}

.enf-design-system .enf-ds-btn--compact {
  padding: var(--space-2) var(--space-4);
  font-size: var(--font-size-xs);
}

.enf-landing-hero__actions .enf-ds-btn--primary {
  border-color: rgba(255, 255, 255, 0.45);
}

.enf-landing-hero .enf-ds-btn--outline-light {
  background: transparent;
  color: var(--color-surface-pure);
  border: 2px solid rgba(255, 255, 255, 0.88);
  box-shadow: none;
}

.enf-landing-hero .enf-ds-btn--outline-light:hover:not(:disabled) {
  background: rgba(255, 255, 255, 0.12);
  border-color: var(--color-surface-pure);
  box-shadow: none;
}

/* Bloque impacto: enlaces <a> heredan color azul claro; los botones outline deben verse como en el hero */
.enf-ds-surface-impact a.enf-ds-btn--outline-light {
  color: rgba(255, 255, 255, 0.95);
}

.enf-ds-surface-impact a.enf-ds-btn--outline-light:hover:not(:disabled) {
  color: var(--color-surface-pure);
}

.enf-landing-hero--split .enf-landing-hero__layout {
  display: grid;
  gap: var(--space-6);
  align-items: start;
}

.enf-landing-hero--fullbleed .enf-landing-hero__layout {
  display: block;
}

@media (min-width: 992px) {
  .enf-landing-hero--split .enf-landing-hero__layout {
    grid-template-columns: 1fr minmax(260px, 38%);
  }
}

.enf-landing-hero__media {
  margin: 0;
  position: relative;
}

.enf-landing-hero--fullbleed .enf-landing-hero__media {
  position: absolute;
  top: 0.75rem;
  right: 0.75rem;
  z-index: 3;
}

/* Lápiz CMS sobre la foto del hero: por encima de la imagen y clicable */
.enf-landing-hero__media--has-admin .enf-landing-hero__edit-wrap {
  position: absolute;
  top: 0.5rem;
  right: 0.5rem;
  z-index: 50;
  pointer-events: auto;
}

.enf-landing-hero__media--has-admin .enf-landing-hero__photo {
  position: relative;
  z-index: 0;
}

.enf-landing-hero .btn-editar-estatico {
  background: rgba(255, 255, 255, 0.95) !important;
  color: #1a1a2e !important;
  border-color: rgba(255, 255, 255, 0.6) !important;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.25);
}

.enf-landing-hero__photo {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: var(--radius-lg);
  border: 1px solid var(--color-border-soft);
  box-shadow: var(--shadow-medium);
}

.enf-landing-hero--fullbleed .enf-landing-hero__photo {
  display: none;
}

.enf-landing-section-figure {
  margin: 0;
  border-radius: var(--radius-xl);
  overflow: hidden;
  border: 1px solid var(--color-border-soft);
  box-shadow: var(--shadow-soft);
}

.enf-landing-section-figure__img {
  display: block;
  width: 100%;
  max-height: 22rem;
  object-fit: cover;
}

.enf-landing-card--has-media.enf-ds-card {
  padding: 0;
  overflow: hidden;
}

.enf-landing-card--has-media .enf-landing-card__body {
  padding: var(--space-5);
}

.enf-landing-card__media img {
  display: block;
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  object-position: center center;
}

.enf-landing-split-block__figure {
  margin: 0 0 var(--space-4);
  border-radius: var(--radius-lg);
  overflow: hidden;
  border: 1px solid var(--color-border-soft);
  box-shadow: var(--shadow-soft);
}

.enf-landing-split-block__figure img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}

.enf-landing-section {
  padding: var(--space-7) 0;
}

/* Cabecera de sección (mismo patrón que inicio: pastilla + título serif + enlace opcional a la derecha) */
.enf-landing-section-head__eyebrow {
  display: inline-block;
  margin-bottom: var(--space-2);
}
.enf-landing-section-head__row {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--space-2);
}
.enf-landing-section-head__action {
  flex-shrink: 0;
}
.enf-landing-section-head__trailing {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: flex-end;
  gap: var(--space-3);
  flex-shrink: 0;
}
.enf-landing-section-head__intro {
  margin-top: var(--space-2);
}
.enf-landing-section-head__intro + .enf-landing-section-head__lead {
  margin-top: var(--space-2);
}
.enf-landing-section-head__lead {
  margin-top: var(--space-3);
  margin-bottom: var(--space-4);
}

/* Membrete transparente: solo altura del titular + margen inferior (no pantalla completa) */
.enf-inicio-panel-stack > .enf-landing-panel-membrete:first-child {
  min-height: 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  padding-bottom: var(--enf-hero-bottom-gap);
}

.enf-landing-section.enf-landing-panel-membrete {
  padding: var(--space-5) 0 var(--space-3);
}

@media (min-width: 768px) {
  .enf-landing-section.enf-landing-panel-membrete {
    padding: var(--space-6) 0 var(--space-3);
  }
}

/* Portada — banner informativo: mismo esqueleto que Novedades / Formación (sin card flotante) */
.enf-inicio-banner-informativo__img,
.enf-banner-prioritario__img {
  display: block;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  background: var(--color-authority-deep, #1a365d);
}

/* Banner prioritario (aviso global) */
.enf-banner-prioritario__card {
  border: 1px solid rgba(21, 101, 192, 0.18);
  border-radius: 0.85rem;
  overflow: hidden;
  background: linear-gradient(135deg, rgba(21, 101, 192, 0.06) 0%, #fff 42%);
  box-shadow: 0 0.35rem 1.25rem rgba(21, 101, 192, 0.08);
}
.enf-banner-prioritario__media {
  height: 100%;
  min-height: 12rem;
  background: var(--color-authority-deep, #1565c0);
}
.enf-banner-prioritario__img {
  width: 100%;
  height: 100%;
  min-height: 12rem;
  aspect-ratio: auto;
  border-radius: 0;
}
.enf-banner-prioritario__body {
  padding: 1.25rem 1.35rem 1.35rem;
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}
@media (min-width: 768px) {
  .enf-banner-prioritario__body {
    padding: 1.5rem 1.65rem 1.65rem;
  }
}
.enf-banner-prioritario__title {
  font-size: clamp(1.25rem, 2.2vw, 1.65rem);
  line-height: 1.25;
  color: var(--color-authority-deep, #1565c0);
  margin: 0;
}
.enf-banner-prioritario__lead {
  margin: 0;
  font-size: 0.9375rem;
  line-height: 1.55;
  color: var(--color-steel-secondary, #616161);
  max-width: 52rem;
}
.enf-banner-prioritario__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 0.15rem;
}
.enf-banner-prioritario__adjuntos {
  margin-top: 0.5rem;
}
.enf-banner-adjuntos__heading {
  margin: 0;
  font-size: 0.875rem;
  color: var(--color-authority-deep, #1565c0);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.15rem;
}
.enf-banner-adjuntos--banner .enf-banner-adjuntos__list {
  padding-top: 0.15rem;
}

/* Desplegable de adjuntos del banner */
.enf-banner-adjuntos__accordion .accordion-item {
  background: transparent;
}
.enf-banner-adjuntos__toggle {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--color-authority-deep, #1565c0);
  background: rgba(21, 101, 192, 0.07);
  border-radius: 0.55rem !important;
  box-shadow: none;
  padding: 0.65rem 0.85rem;
}
.enf-banner-adjuntos__toggle:not(.collapsed) {
  background: rgba(21, 101, 192, 0.12);
  color: var(--color-authority-deep, #1565c0);
}
.enf-banner-adjuntos__toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(21, 101, 192, 0.2);
}
.enf-banner-adjuntos__count {
  font-size: 0.7rem;
  font-weight: 600;
}
.enf-banner-adjuntos__list {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  padding: 0.35rem 0 0.15rem;
}
.enf-banner-adjuntos__item {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.65rem 0.75rem;
  padding: 0.65rem 0.75rem;
  border: 1px solid var(--color-border-soft, #e0e0e0);
  border-radius: 0.55rem;
  background: #fff;
}
.enf-banner-adjuntos__item-icon {
  flex: 0 0 auto;
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 0.45rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(21, 101, 192, 0.1);
  color: var(--color-interaction-vibrant, #1976d2);
  font-size: 1.15rem;
}
.enf-banner-adjuntos__item-copy {
  flex: 1 1 10rem;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
}
.enf-banner-adjuntos__item-title {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--color-text-primary, #212121);
  line-height: 1.3;
}
.enf-banner-adjuntos__item-meta {
  font-size: 0.75rem;
  color: var(--color-steel-secondary, #757575);
  word-break: break-all;
}
.enf-banner-adjuntos__item-btn {
  flex: 0 0 auto;
  margin-left: auto;
}
.enf-banner-adjuntos--modal .enf-banner-adjuntos__toggle {
  background: #f8f9fa;
}
html[data-enf-color-scheme="dark"] .enf-banner-prioritario__card {
  background: linear-gradient(135deg, rgba(100, 181, 246, 0.1) 0%, #252b36 50%);
  border-color: rgba(255, 255, 255, 0.12);
  box-shadow: 0 0.35rem 1.25rem rgba(0, 0, 0, 0.25);
}
html[data-enf-color-scheme="dark"] .enf-banner-prioritario__title {
  color: #e8eaed;
}
html[data-enf-color-scheme="dark"] .enf-banner-prioritario__lead {
  color: #b0b8c4;
}
html[data-enf-color-scheme="dark"] .enf-banner-adjuntos__item {
  background: #2a3140;
  border-color: rgba(255, 255, 255, 0.12);
}
html[data-enf-color-scheme="dark"] .enf-banner-adjuntos__item-title {
  color: #e8eaed;
}
html[data-enf-color-scheme="dark"] .enf-banner-adjuntos__toggle {
  background: rgba(100, 181, 246, 0.12);
  color: #bbdefb;
}

/* Modal emergente al cargar la portada */
.enf-popup-inicio.modal.show {
  z-index: 1060;
  display: block;
}
.enf-popup-inicio__dialog {
  width: 75vw;
  min-width: 75vw;
  max-width: 94vw;
  margin: 1rem auto;
}
.enf-popup-inicio .modal-content {
  position: relative;
  border-radius: 12px;
}
.enf-popup-inicio__close {
  position: absolute;
  top: 0.75rem;
  right: 0.75rem;
  z-index: 4;
  filter: none;
  opacity: 1;
  background: rgba(255, 255, 255, 0.94);
  border-radius: 50%;
  padding: 0.55rem;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.18);
}
.enf-popup-inicio__close:hover {
  background: #fff;
}
.enf-popup-inicio__media {
  position: relative;
  width: 100%;
  overflow: hidden;
  background: var(--color-surface-pure, #fff);
  line-height: 0;
}
.enf-popup-inicio__media--vacio {
  min-height: 12rem;
  background: var(--color-bg-off-white, #f8f9fa);
}
.enf-popup-inicio__img {
  display: block;
  width: 100%;
  height: auto;
}
.enf-popup-inicio__picture {
  display: block;
  width: 100%;
  line-height: 0;
}

@media (max-width: 575.98px) {
  .enf-popup-inicio__dialog {
    width: min(92vw, calc(100vw - 1.5rem));
    min-width: 0;
    max-width: min(92vw, calc(100vw - 1.5rem));
  }
  .enf-popup-inicio__media--responsive .enf-popup-inicio__img,
  .enf-popup-inicio__media--desktop-en-movil .enf-popup-inicio__img {
    max-height: min(72vh, 40rem);
    object-fit: contain;
    object-position: top center;
    background: var(--color-bg-off-white, #f8f9fa);
  }
  .enf-popup-inicio--desktop-en-movil .enf-popup-inicio__dialog {
    width: min(92vw, calc(100vw - 1.5rem));
    min-width: 0;
    max-width: min(92vw, calc(100vw - 1.5rem));
  }
}

@media (min-width: 576px) {
  .enf-popup-inicio__dialog {
    width: 75vw;
    min-width: 75vw;
    max-width: 94vw;
  }
}
.enf-popup-inicio__lead--placeholder {
  font-style: italic;
  opacity: 0.92;
}
.enf-popup-inicio__copy {
  width: 100%;
  padding: clamp(1.1rem, 2.5vw, 1.65rem) clamp(1.25rem, 3vw, 2rem);
  background: var(--enaf-paper-tint, #efebdf);
  border-bottom: 1px solid #e0dcd2;
}
.enf-popup-inicio__title {
  margin: 0 0 0.5rem;
  font-size: clamp(1.35rem, 2.8vw, 2rem);
  line-height: 1.2;
  color: var(--color-authority-deep, #1565c0);
  font-weight: 700;
}
.enf-popup-inicio__lead {
  margin: 0;
  font-size: clamp(0.9rem, 1.6vw, 1.05rem);
  line-height: 1.55;
  color: var(--color-text-primary, #343a40);
  max-width: 44rem;
}
html[data-enf-color-scheme="dark"] .enf-popup-inicio__copy {
  background: #2a3140;
  border-color: rgba(255, 255, 255, 0.12);
}
html[data-enf-color-scheme="dark"] .enf-popup-inicio__title {
  color: #e3f2fd;
}
html[data-enf-color-scheme="dark"] .enf-popup-inicio__lead {
  color: rgba(255, 255, 255, 0.9);
}
html[data-enf-color-scheme="dark"] .enf-popup-inicio__close {
  background: rgba(42, 49, 64, 0.94);
  filter: brightness(0) invert(1);
}
.enf-popup-inicio__links {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 0.65rem 1.1rem;
  padding: 0.85rem 1.35rem;
  background: var(--enaf-paper-tint, #efebdf);
  border-top: 1px solid #e0dcd2;
}
.enf-popup-inicio__links--n2,
.enf-popup-inicio__links--n3 {
  justify-content: space-evenly;
}
.enf-popup-inicio__link-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto;
  max-width: 15rem;
  flex: 0 0 auto;
  white-space: nowrap;
  border-radius: 2rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  box-shadow: none;
  transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease, transform 0.15s ease;
}
.enf-popup-inicio__link-btn:hover {
  transform: translateY(-1px);
}
.enf-popup-inicio__link-btn .bi {
  font-size: 0.85em;
  opacity: 0.85;
}
@media (max-width: 575.98px) {
  .enf-popup-inicio__links--n2,
  .enf-popup-inicio__links--n3 {
    justify-content: center;
    gap: 0.5rem;
  }
  .enf-popup-inicio__link-btn {
    max-width: 100%;
  }
}
html[data-enf-color-scheme="dark"] .enf-popup-inicio__links {
  background: #2a3140;
  border-color: rgba(255, 255, 255, 0.12);
}
html[data-enf-color-scheme="dark"] .enf-popup-inicio__link-btn.enf-ds-btn--outline-primary {
  color: #bbdefb;
  border-color: rgba(144, 202, 249, 0.55);
  background: rgba(21, 101, 192, 0.12);
}
html[data-enf-color-scheme="dark"] .enf-popup-inicio__link-btn.enf-ds-btn--outline-primary:hover {
  background: rgba(21, 101, 192, 0.22);
  border-color: #90caf9;
  color: #e3f2fd;
}
.enf-popup-inicio__admin {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin: 0;
}
.enf-popup-inicio__admin.modal-footer {
  border-top: 1px solid #e0dcd2;
}
html[data-enf-color-scheme="dark"] .enf-popup-inicio__admin.modal-footer {
  border-color: rgba(255, 255, 255, 0.12);
}

/* Siempre visibles y legibles (no dependen del modo Edición global del sitio) */
.enf-popup-inicio__admin .btn-editar-estatico,
.enf-popup-inicio__admin .btn-toggle-seccion-visible {
  display: inline-flex !important;
  visibility: visible !important;
  opacity: 1 !important;
}

.enf-popup-inicio__admin-label {
  font-size: 0.8125rem;
  font-weight: 600;
  color: #343a40;
  letter-spacing: 0.01em;
}
html[data-enf-color-scheme="dark"] .enf-popup-inicio__admin-label {
  color: #e9ecef;
}

.enf-popup-inicio__admin-btns {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 0.5rem;
  margin-left: auto;
}

.enf-popup-inicio__admin-btn {
  border-radius: 0.375rem !important;
  width: auto !important;
  height: auto !important;
  min-height: 2.25rem;
  padding: 0.4rem 0.85rem !important;
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.2;
  white-space: nowrap;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.08);
}

.enf-popup-inicio__admin-btn--edit {
  background: #0d6efd;
  border-color: #0d6efd;
  color: #fff;
}
.enf-popup-inicio__admin-btn--edit:hover,
.enf-popup-inicio__admin-btn--edit:focus {
  background: #0b5ed7;
  border-color: #0a58ca;
  color: #fff;
}

.enf-popup-inicio__admin-btn--on {
  background: #198754;
  border-color: #198754;
  color: #fff;
}
.enf-popup-inicio__admin-btn--on:hover,
.enf-popup-inicio__admin-btn--on:focus {
  background: #157347;
  border-color: #146c43;
  color: #fff;
}

.enf-popup-inicio__admin-btn--off {
  background: #fff;
  border-color: #dc3545;
  color: #b02a37;
}
.enf-popup-inicio__admin-btn--off:hover,
.enf-popup-inicio__admin-btn--off:focus {
  background: #fff5f5;
  border-color: #bb2d3b;
  color: #a52834;
}
html[data-enf-color-scheme="dark"] .enf-popup-inicio__admin-btn--off {
  background: rgba(220, 53, 69, 0.12);
  color: #f8d7da;
}
html[data-enf-color-scheme="dark"] .enf-popup-inicio__admin-btn--off:hover {
  background: rgba(220, 53, 69, 0.22);
  color: #fff;
}

/* Instagram / Videos: primera sección de contenido tras el membrete (sin padding-top exagerado) */
.enf-inicio-panel-stack > .enf-landing-section.enf-subpage-first-section {
  padding-top: var(--space-4);
}

/* La Escuela / mismo panel: primera sección dentro de la tarjeta */
.enf-inicio-panel-superpuesto > .enf-subpage-first-section:first-child {
  padding-top: var(--space-5);
}

/* Oferta justo bajo el hero: menos aire superior para ver cursos antes */
.enf-landing-section--formacion-primero {
  padding-top: var(--space-4);
}

.enf-design-system h1.enf-landing-title-impact,
.enf-design-system h2.enf-landing-title-impact,
.enf-design-system h3.enf-landing-title-impact,
.enf-design-system .enf-landing-section-head__title.enf-landing-title-impact {
  font-size: clamp(1.85rem, 4.2vw, 2.85rem);
  font-weight: var(--font-weight-heading-bold);
  letter-spacing: var(--letter-spacing-h1);
  line-height: 1.12;
  color: var(--color-authority-deep);
  margin-bottom: var(--space-3);
}

/* Cabecera de sección: sin margen inferior extra en el H (el bloque ya espacia con intro) */
.enf-design-system .enf-landing-section-head .enf-landing-section-head__title.enf-landing-title-impact {
  margin-bottom: 0;
}

/*
 * Títulos principales sobre foto / overlay: siempre blancos (no acento).
 * Debe superar .enf-inicio-panel-superpuesto h2.enf-landing-title-impact (especificidad con tipo h2/h3).
 */
.enf-landing-hero--fullbleed h1.enf-landing-hero__title,
.enf-landing-hero--visual-slideshow h1.enf-landing-hero__title,
.enf-landing-panel-membrete h1.enf-landing-hero__title,
.enf-landing-hero--fullbleed h1.enf-landing-title-impact,
.enf-landing-hero--fullbleed h2.enf-landing-title-impact,
.enf-landing-hero--fullbleed h3.enf-landing-title-impact,
.enf-landing-hero--visual-slideshow h1.enf-landing-title-impact,
.enf-landing-hero--visual-slideshow h2.enf-landing-title-impact,
.enf-landing-hero--visual-slideshow h3.enf-landing-title-impact,
.enf-inicio-biblioteca-externa__hero h1.enf-landing-title-impact,
.enf-inicio-biblioteca-externa__hero h2.enf-landing-title-impact,
.enf-inicio-biblioteca-externa__hero h3.enf-landing-title-impact,
.enf-inicio-institucional__hero h1.enf-landing-title-impact,
.enf-inicio-institucional__hero h2.enf-landing-title-impact,
.enf-inicio-institucional__hero h3.enf-landing-title-impact {
  color: #ffffff !important;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.55), 0 2px 14px rgba(0, 0, 0, 0.35);
}

/* Datos clave: títulos con acento (igual que el resto del panel) */
.enf-design-system .enf-inicio-contraste-band h1.enf-landing-title-impact,
.enf-design-system .enf-inicio-contraste-band h2.enf-landing-title-impact,
.enf-design-system .enf-inicio-contraste-band h3.enf-landing-title-impact,
.enf-inicio-contraste-band__copy h2.enf-landing-title-impact.enf-ds-h2 {
  color: var(--color-authority-deep);
}

.enf-design-system .enf-ds-surface-impact h1,
.enf-design-system .enf-ds-surface-impact h2,
.enf-design-system .enf-ds-surface-impact h3,
.enf-design-system .enf-ds-surface-impact h4,
.enf-design-system .enf-ds-surface-impact .enf-landing-title-impact {
  color: #ffffff;
}

.enf-design-system section.bg-gradient-dark .enf-ds-h2,
.enf-design-system section.bg-gradient-dark .enf-ds-h3,
.enf-design-system section.bg-gradient-dark h1.enf-landing-title-impact,
.enf-design-system section.bg-gradient-dark h2.enf-landing-title-impact,
.enf-design-system section.bg-gradient-dark h3.enf-landing-title-impact {
  color: #ffffff;
}

.enf-landing-footer-panel h1.enf-landing-title-impact,
.enf-landing-footer-panel h2.enf-landing-title-impact,
.enf-landing-footer-panel h3.enf-landing-title-impact,
.enf-landing-footer-panel .enf-ds-h2.enf-landing-title-impact,
.enf-landing-footer-panel .enf-landing-section-head__title.enf-landing-title-impact {
  color: var(--color-authority-deep);
}

/* Pie portada / MKM: título institucional en blanco para contraste sobre gradiente oscuro */
.enf-landing-footer-panel .enf-site-footer__title {
  color: #ffffff;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.35);
}

.enf-landing-footer-panel .enf-site-footer__title--center {
  color: #ffffff;
}

.enf-landing-footer-panel .enf-site-footer__section-title {
  color: rgba(255, 255, 255, 0.96);
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.25);
}

.enf-site-footer h1.enf-landing-title-impact,
.enf-site-footer h2.enf-landing-title-impact,
.enf-site-footer h3.enf-landing-title-impact,
.enf-site-footer .enf-ds-h2,
.enf-site-footer .enf-landing-section-head__title.enf-landing-title-impact {
  color: var(--color-authority-deep);
}

.enf-landing-formacion-desc {
  max-width: 44rem;
}

/* Institucional portada: teaser + modal */
.enf-landing-section--institucional-compact {
  padding-top: var(--space-5);
  padding-bottom: var(--space-5);
}

/* Pegar Historia a la franja «Datos clave» (sin franja blanca del panel entre ambas) */
.enf-inicio-panel-superpuesto .enf-landing-section--institucional-compact:has(+ .enf-inicio-contraste-band) {
  padding-bottom: 0;
}
.enf-inicio-panel-superpuesto .enf-landing-section--institucional-compact + .enf-inicio-contraste-band {
  margin-top: 0;
}
.enf-inicio-panel-superpuesto .enf-landing-section--institucional-compact:has(+ .enf-inicio-contraste-band) .enf-inicio-institucional__hero.rounded-3 {
  border-bottom-left-radius: 0 !important;
  border-bottom-right-radius: 0 !important;
}

/* Sin línea bajo el badge: el salto de la franja oscura al panel blanco ya delimita la sección */
.enf-landing-section--institucional-compact .enf-inicio-section-heading {
  border-top: none;
  padding-top: 0;
}

.enf-landing-institucional-teaser {
  max-width: 52rem;
}

.enf-landing-institucional-teaser__lead {
  color: var(--color-steel-secondary);
  line-height: 1.55;
}

.enf-landing-institucional-teaser__descripcion {
  color: var(--color-steel-secondary);
  line-height: 1.65;
}

.enf-landing-modal-institucional__block {
  margin-bottom: var(--space-6);
}

.enf-landing-modal-institucional__block:last-of-type {
  margin-bottom: var(--space-4);
}

.enf-landing-modal-institucional__h {
  font-size: 1.05rem;
  font-weight: var(--font-weight-heading-bold);
  margin-bottom: var(--space-2);
  color: var(--color-authority-deep);
}

.enf-landing-modal-institucional__p {
  margin-bottom: var(--space-2);
  color: var(--color-steel-secondary);
  font-size: 0.9375rem;
  line-height: 1.55;
}

.enf-landing-modal-institucional__p:last-child {
  margin-bottom: 0;
}

.enf-modal-institucional-bootstrap .enf-landing-modal-institucional .enf-texto-inst-modal {
  color: var(--color-steel-secondary, #757575);
}

.enf-modal-institucional-bootstrap .enf-landing-modal-institucional .enf-texto-inst-modal .enf-texto-enriquecido .enf-faq-p,
.enf-modal-institucional-bootstrap .enf-landing-modal-institucional .enf-texto-inst-modal .enf-texto-enriquecido .enf-faq-li__text,
.enf-modal-institucional-bootstrap .enf-landing-modal-institucional .enf-landing-modal-institucional__p {
  margin-bottom: var(--space-2);
  color: var(--color-steel-secondary, #757575);
  font-size: 0.9375rem;
  line-height: 1.55;
}

.enf-modal-institucional-bootstrap .enf-landing-modal-institucional .enf-texto-inst-modal .enf-texto-enriquecido .enf-faq-label {
  font-weight: var(--font-weight-heading-semibold, 600);
  color: var(--color-authority-deep);
}

.enf-landing-modal-institucional .enf-texto-inst-modal .enf-texto-enriquecido .enf-faq-ul,
.enf-landing-modal-institucional .enf-texto-inst-modal .enf-texto-enriquecido .enf-faq-ol {
  margin-bottom: var(--space-2);
}

.enf-inst-icon-picker .enf-bi-icon-picker {
  max-height: min(11rem, 28vh);
}

.enf-inst-icon-picker .enf-bi-icon-picker-wrap > .form-text:last-child {
  display: none;
}

html[data-enf-color-scheme="dark"] .enf-modal-institucional-bootstrap .enf-landing-modal-institucional .enf-texto-inst-modal {
  color: rgba(232, 237, 244, 0.92);
}

html[data-enf-color-scheme="dark"] .enf-modal-institucional-bootstrap .enf-landing-modal-institucional .enf-texto-inst-modal .enf-texto-enriquecido .enf-faq-p,
html[data-enf-color-scheme="dark"] .enf-modal-institucional-bootstrap .enf-landing-modal-institucional .enf-texto-inst-modal .enf-texto-enriquecido .enf-faq-li__text,
html[data-enf-color-scheme="dark"] .enf-modal-institucional-bootstrap .enf-landing-modal-institucional .enf-landing-modal-institucional__p {
  color: rgba(232, 237, 244, 0.92);
}

html[data-enf-color-scheme="dark"] .enf-modal-institucional-bootstrap .enf-landing-modal-institucional .enf-texto-inst-modal .enf-texto-enriquecido .enf-faq-label {
  color: #f1f5fb;
}

html[data-enf-color-scheme="dark"] .enf-modal-institucional-bootstrap .enf-landing-modal-institucional .enf-texto-inst-modal .enf-texto-enriquecido .enf-faq-li::before,
html[data-enf-color-scheme="dark"] .enf-modal-institucional-bootstrap .enf-landing-modal-institucional .enf-texto-inst-modal .enf-texto-enriquecido .enf-faq-li__icon {
  color: #90caf9;
}

/* Valores en modal: mismas tarjetas horizontales que «Datos clave» (imagen + texto en blanco) */
#enfModalInstitucionalInicio .enf-modal-valores-stack {
  row-gap: var(--space-3);
}

#enfModalInstitucionalInicio .enf-inicio-stat-card--modal-valores .mt-n5 {
  margin-top: 0 !important;
}

/* Modal Bootstrap: fuera del panel con overflow; z-index global .modal (10060) > navbar (10050) */
.enf-modal-institucional-bootstrap .modal-dialog {
  position: relative;
  z-index: 1;
}
.enf-modal-institucional-bootstrap .modal-content {
  background-color: #fff;
  color: #212529;
  border: 1px solid rgba(0, 0, 0, 0.08);
  box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.28);
}
.enf-modal-institucional-bootstrap .modal-header {
  border-bottom-color: rgba(0, 0, 0, 0.08);
}
.enf-modal-institucional-bootstrap .modal-title {
  color: inherit;
}
/* Modo oscuro: fondo slate — los títulos NO pueden usar --color-authority-deep (quedarían mudos sobre oscuro) */
html[data-enf-color-scheme="dark"] .enf-modal-institucional-bootstrap .modal-content {
  background-color: #2c3340;
  color: #e8eaed;
  border-color: rgba(255, 255, 255, 0.12);
}
html[data-enf-color-scheme="dark"] .enf-modal-institucional-bootstrap .modal-header {
  border-bottom-color: rgba(255, 255, 255, 0.1);
}
html[data-enf-color-scheme="dark"] .enf-modal-institucional-bootstrap .enf-landing-modal-institucional__h {
  color: #f1f5fb;
}
html[data-enf-color-scheme="dark"] .enf-modal-institucional-bootstrap .enf-landing-modal-institucional__p {
  color: rgba(232, 237, 244, 0.92);
}
html[data-enf-color-scheme="dark"] .enf-modal-institucional-bootstrap .enf-landing-modal-institucional .text-muted {
  color: rgba(200, 208, 218, 0.85) !important;
}
html[data-enf-color-scheme="dark"] .enf-modal-institucional-bootstrap .enf-landing-modal-institucional__footer {
  border-top-color: rgba(255, 255, 255, 0.1);
}

/* Botón «Añadir tarjeta» (Valores): legible en modal claro y oscuro */
.enf-modal-institucional-bootstrap .enf-valores-tarjeta-add-btn.btn-outline-primary {
  font-weight: 600;
}
html[data-enf-color-scheme="dark"] .enf-modal-institucional-bootstrap .enf-valores-tarjeta-add-btn.btn-outline-primary {
  color: #e8eefc;
  border-color: rgba(147, 197, 253, 0.65);
}
html[data-enf-color-scheme="dark"] .enf-modal-institucional-bootstrap .enf-valores-tarjeta-add-btn.btn-outline-primary:hover {
  color: #0f172a;
  background-color: #93c5fd;
  border-color: #93c5fd;
}

.enf-landing-modal-institucional__footer {
  padding-top: var(--space-3);
  border-top: 1px solid var(--color-border-soft);
}

/* Franja programas (landing): 3 tarjetas visibles + flechas */
.enf-landing-programas-carousel {
  display: grid;
  grid-template-columns: minmax(2.25rem, auto) minmax(0, 1fr) minmax(2.25rem, auto);
  align-items: stretch;
  gap: var(--space-3);
  margin-bottom: var(--space-5);
}

.enf-landing-programas-carousel--locked .enf-landing-programas-nav {
  visibility: hidden;
  pointer-events: none;
}

.enf-landing-programas-viewport {
  min-width: 0;
  overflow: hidden;
  padding: 0;
  background: transparent;
  border: none;
  box-shadow: none;
}

.enf-landing-programas-track {
  display: flex;
  gap: var(--space-4);
  transition: transform 0.38s cubic-bezier(0.33, 1, 0.68, 1);
  will-change: transform;
  width: 100%;
}

/* En modo edición: carrusel reordenable sin transform (el DnD nativo falla con overflow+translate) */
html.enf-edit-site-mode-on .enf-landing-programas-carousel--reorderable .enf-landing-programas-viewport {
  overflow-x: auto;
  overflow-y: visible;
  -webkit-overflow-scrolling: touch;
}
html.enf-edit-site-mode-on .enf-landing-programas-carousel--reorderable .enf-landing-programas-track {
  transform: none !important;
  transition: none !important;
}
html.enf-edit-site-mode-on .enf-landing-programas-carousel--reorderable .enf-landing-programas-nav {
  visibility: hidden;
  pointer-events: none;
}

/* 100cqi rompe el ancho en navegadores sin soporte estable de container units → celdas 0px e imágenes invisibles */
.enf-landing-programas-cell {
  flex: 0 0 calc((100% - 2 * var(--space-4)) / 3);
  min-width: 0;
  max-width: 100%;
}

.enf-landing-programas-nav {
  align-self: center;
  justify-self: center;
  width: 2.75rem;
  height: 2.75rem;
  padding: 0;
  border-radius: 50%;
  border: 1px solid var(--color-border-soft);
  background: var(--color-surface-pure);
  box-shadow: var(--shadow-soft);
  color: var(--color-authority-deep);
  font-size: 1.35rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  cursor: pointer;
  transition: background 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
}

.enf-landing-programas-nav:hover:not(:disabled) {
  background: var(--color-interaction-vibrant-muted);
  color: var(--color-interaction-vibrant-hover);
}

.enf-landing-programas-nav:disabled {
  opacity: 0.35;
  cursor: default;
}

.enf-laescuela-faq-wrap {
  display: grid;
  gap: var(--space-6);
}

.enf-laescuela-faq-grupo-titulo {
  font-family: var(--font-family-heading);
  font-weight: var(--font-weight-heading-semibold);
  color: var(--color-authority-deep);
}

.enf-laescuela-faq-drag-strip {
  margin: 0.5rem 0.75rem 0;
}

.enf-laescuela-faq-item--sortable.is-dragging {
  opacity: 0.72;
}

.enf-laescuela-faq-item--sortable.is-drag-over {
  outline: 2px dashed rgba(21, 101, 192, 0.55);
  outline-offset: 2px;
}

/* La Escuela — FAQ acorde al design system */
.enf-laescuela-faq-accordion {
  display: grid;
  gap: var(--space-3);
}

.enf-laescuela-faq-accordion .enf-laescuela-faq-item {
  border: 1px solid var(--color-border-soft);
  border-radius: var(--radius-xl);
  overflow: hidden;
  box-shadow: var(--shadow-soft);
  background: var(--color-surface-pure);
}

.enf-laescuela-faq-btn.accordion-button {
  font-family: var(--font-family-heading);
  font-size: var(--font-size-h4);
  font-weight: var(--font-weight-heading-semibold);
  color: var(--color-authority-deep);
  background: #ffffff;
  box-shadow: none;
  padding: 1rem 1.1rem;
}

.enf-laescuela-faq-btn.accordion-button:not(.collapsed) {
  color: var(--color-authority-deep);
  background: var(--color-interaction-vibrant-muted);
  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.06);
}

.enf-laescuela-faq-btn.accordion-button:hover {
  background: var(--color-interaction-vibrant-muted);
}

.enf-laescuela-faq-btn.accordion-button:focus {
  border-color: transparent;
  box-shadow: 0 0 0 0.2rem rgba(21, 101, 192, 0.18);
}

.enf-laescuela-faq-body {
  font-size: var(--font-size-small);
  color: var(--color-text-primary);
  line-height: 1.65;
  padding: 1rem 1.1rem 1.05rem;
}

html[data-enf-color-scheme="dark"] .enf-laescuela-faq-accordion .enf-laescuela-faq-item {
  background: #202733;
  border-color: rgba(255, 255, 255, 0.14);
}

html[data-enf-color-scheme="dark"] .enf-laescuela-faq-btn.accordion-button {
  color: #f1f5fb;
  background: #263041;
}

html[data-enf-color-scheme="dark"] .enf-laescuela-faq-btn.accordion-button:not(.collapsed) {
  background: #2f3c50;
}

html[data-enf-color-scheme="dark"] .enf-laescuela-faq-btn.accordion-button:hover {
  background: #2f3c50;
}

html[data-enf-color-scheme="dark"] .enf-laescuela-faq-body {
  color: rgba(232, 237, 244, 0.92);
}

.enf-texto-faq .enf-faq-p,
.enf-texto-faq .enf-faq-label,
.enf-texto-enriquecido .enf-faq-p,
.enf-texto-enriquecido .enf-faq-label {
  margin: 0 0 0.65rem;
}

.enf-texto-faq .enf-faq-label,
.enf-texto-enriquecido .enf-faq-label {
  font-weight: var(--font-weight-heading-semibold, 600);
  color: var(--color-authority-deep);
}

.enf-texto-faq .enf-faq-ul,
.enf-texto-faq .enf-faq-ol,
.enf-texto-enriquecido .enf-faq-ul,
.enf-texto-enriquecido .enf-faq-ol {
  list-style: none;
  margin: 0 0 0.75rem;
  padding: 0;
}

.enf-texto-faq .enf-faq-li,
.enf-texto-enriquecido .enf-faq-li {
  position: relative;
  padding-left: 1.35em;
  margin-bottom: 0.35rem;
}

.enf-texto-faq .enf-faq-li::before,
.enf-texto-enriquecido .enf-faq-li::before {
  content: attr(data-marker);
  position: absolute;
  left: 0;
  top: 0;
  font-weight: 600;
  color: var(--color-interaction-vibrant-hover, #1565c0);
}

.enf-texto-faq .enf-faq-li--icon,
.enf-texto-enriquecido .enf-faq-li--icon {
  display: flex;
  align-items: flex-start;
  gap: 0.45rem;
  padding-left: 0;
}

.enf-texto-faq .enf-faq-li--icon::before,
.enf-texto-enriquecido .enf-faq-li--icon::before {
  content: none;
}

.enf-texto-faq .enf-faq-li__icon,
.enf-texto-enriquecido .enf-faq-li__icon {
  flex: 0 0 auto;
  line-height: 1.35;
  color: var(--color-interaction-vibrant-hover, #1565c0);
}

.enf-texto-faq .enf-faq-li__icon .bi,
.enf-texto-enriquecido .enf-faq-li__icon .bi {
  font-size: 1.05em;
  vertical-align: -0.1em;
}

.enf-texto-faq .enf-faq-li__text,
.enf-texto-enriquecido .enf-faq-li__text {
  flex: 1 1 auto;
  min-width: 0;
}

.enf-texto-faq em,
.enf-texto-enriquecido em {
  font-style: italic;
}

.enf-texto-faq strong,
.enf-texto-enriquecido strong {
  font-weight: var(--font-weight-heading-semibold, 600);
}

.enf-rich-textarea-toolbar {
  flex-wrap: wrap;
  gap: 0.25rem;
}

.enf-rich-text-icon-panel {
  position: fixed;
  z-index: 12100;
  right: 1rem;
  bottom: 1rem;
  width: min(22rem, calc(100vw - 2rem));
  max-height: min(70vh, 28rem);
  overflow-y: auto;
  box-shadow: 0 1rem 2.5rem rgba(0, 0, 0, 0.2);
}

.enf-rich-text-icon-panel .enf-bi-icon-picker {
  max-height: min(11rem, 28vh);
}

.enf-rich-text-icon-panel .enf-bi-icon-picker-wrap > .form-text:last-child {
  display: none;
}

.enf-faq-icon-picker .enf-bi-icon-picker {
  max-height: min(11rem, 28vh);
}

.enf-faq-icon-picker .enf-bi-icon-picker-wrap > .form-text:last-child {
  display: none;
}

.enf-texto-faq em {
  font-style: italic;
}

html[data-enf-color-scheme="dark"] .enf-texto-faq .enf-faq-label,
html[data-enf-color-scheme="dark"] .enf-texto-enriquecido .enf-faq-label {
  color: #e8edf4;
}

html[data-enf-color-scheme="dark"] .enf-texto-faq .enf-faq-li::before,
html[data-enf-color-scheme="dark"] .enf-texto-enriquecido .enf-faq-li::before {
  color: #90caf9;
}

html[data-enf-color-scheme="dark"] .enf-texto-faq .enf-faq-li__icon,
html[data-enf-color-scheme="dark"] .enf-texto-enriquecido .enf-faq-li__icon {
  color: #90caf9;
}

/* Carruseles responsive: 3 → 2 → 1 tarjeta visible (data-enf-responsive="1" o sin data-enf-responsive="0") */
.enf-landing-programas-carousel[data-enf-responsive="1"] .enf-landing-programas-cell,
.enf-landing-programas-carousel:not([data-enf-responsive="0"]) .enf-landing-programas-cell {
  flex: 0 0 calc((100% - 2 * var(--space-4)) / 3);
}

@media (max-width: 991.98px) {
  .enf-landing-programas-carousel[data-enf-responsive="1"] .enf-landing-programas-cell,
  .enf-landing-programas-carousel:not([data-enf-responsive="0"]) .enf-landing-programas-cell {
    flex: 0 0 calc((100% - var(--space-4)) / 2);
  }
}

@media (max-width: 575.98px) {
  .enf-landing-programas-carousel[data-enf-responsive="1"] .enf-landing-programas-cell,
  .enf-landing-programas-carousel:not([data-enf-responsive="0"]) .enf-landing-programas-cell {
    flex: 0 0 100%;
  }
}

/* Novedades inicio: mantiene orden al inicio del panel */
.enf-inicio-novedades {
  padding-top: var(--space-5);
}

.enf-inicio-novedades-cell--fijada .enf-ds-card {
  box-shadow: 0 0 0 2px rgba(212, 177, 6, 0.45), var(--enf-card-elevated-shadow, 0 12px 28px rgba(15, 23, 42, 0.12));
}

/* Novedades ocultas (publicado=0): solo admin/developer las recibe en HTML; visibles en modo edición */
.enf-inicio-novedad--oculto-public {
  display: none !important;
}
html.enf-edit-site-mode-on .enf-inicio-novedad--oculto-public {
  display: block !important;
}
html.enf-edit-site-mode-on .enf-inicio-novedad-card--oculta {
  opacity: 0.45;
  outline: 2px dashed rgba(108, 117, 125, 0.85);
  outline-offset: 3px;
  position: relative;
}
html.enf-edit-site-mode-on .enf-inicio-novedad-card--oculta::before {
  content: "Oculta al público";
  position: absolute;
  top: 0.35rem;
  left: 50%;
  transform: translateX(-50%);
  z-index: 6;
  font-size: 0.65rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: #495057;
  background: rgba(255, 255, 255, 0.92);
  padding: 0.1rem 0.35rem;
  border-radius: 0.2rem;
  white-space: nowrap;
  pointer-events: none;
}
.enf-inicio-novedad-badge-oculta {
  display: none;
  background: #6c757d;
  color: #fff;
}
html.enf-edit-site-mode-on .enf-inicio-novedad-badge-oculta {
  display: inline-block;
}

/* Alias histórico — hereda reglas responsive globales de arriba */
.enf-inicio-novedades-strip .enf-landing-programas-cell {
  flex: 0 0 calc((100% - 2 * var(--space-4)) / 3);
}

@media (max-width: 991.98px) {
  .enf-inicio-novedades-strip .enf-landing-programas-cell {
    flex: 0 0 calc((100% - var(--space-4)) / 2);
  }
}

@media (max-width: 575.98px) {
  .enf-inicio-novedades-strip .enf-landing-programas-cell {
    flex: 0 0 100%;
  }
}

html[data-enf-viewport="mobile"] .enf-subpage .enf-ds-container {
  padding-left: max(var(--space-3), env(safe-area-inset-left, 0px));
  padding-right: max(var(--space-3), env(safe-area-inset-right, 0px));
}

/* Carruseles en móvil: viewport a ancho completo; flechas superpuestas (no columnas laterales) */
@media (max-width: 575.98px) {
  .enf-ds-container:has(.enf-landing-programas-carousel) {
    padding-left: max(var(--space-2), env(safe-area-inset-left, 0px));
    padding-right: max(var(--space-2), env(safe-area-inset-right, 0px));
  }

  .card.enf-inicio-panel-superpuesto.card-body {
    padding-left: max(var(--space-3), env(safe-area-inset-left, 0px));
    padding-right: max(var(--space-3), env(safe-area-inset-right, 0px));
  }

  .enf-landing-programas-carousel {
    display: block;
    position: relative;
    gap: 0;
    margin-bottom: var(--space-4);
    --enf-carousel-nav-size: 1.85rem;
  }

  .enf-landing-programas-viewport {
    width: 100%;
  }

  .enf-landing-programas-track {
    gap: var(--space-3);
  }

  .enf-landing-programas-carousel[data-enf-responsive="1"] .enf-landing-programas-cell,
  .enf-landing-programas-carousel:not([data-enf-responsive="0"]) .enf-landing-programas-cell,
  .enf-inicio-novedades-strip .enf-landing-programas-cell {
    flex: 0 0 100%;
    max-width: 100%;
  }

  .enf-landing-programas-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 4;
    width: var(--enf-carousel-nav-size);
    height: var(--enf-carousel-nav-size);
    font-size: 1rem;
    background: rgba(255, 255, 255, 0.94);
    box-shadow: 0 2px 10px rgba(15, 23, 42, 0.14);
  }

  .enf-landing-programas-nav--prev {
    left: 0.2rem;
  }

  .enf-landing-programas-nav--next {
    right: 0.2rem;
  }

  html[data-enf-color-scheme="dark"] .enf-landing-programas-nav {
    background: rgba(32, 39, 51, 0.94);
    border-color: rgba(255, 255, 255, 0.18);
  }

  .enf-grid-carousel-built {
    margin-left: calc(-1 * var(--space-2));
    margin-right: calc(-1 * var(--space-2));
    width: calc(100% + 2 * var(--space-2));
    max-width: none;
  }
}

html[data-enf-viewport="mobile"] .enf-landing-programas-carousel {
  margin-bottom: var(--space-4);
}

.enf-grid-carousel-built {
  width: 100%;
}

.enf-landing-section--muted {
  background: var(--md-surface-variant);
}

.enf-landing-stats .enf-landing-stat {
  text-align: center;
  padding: var(--space-4);
}

.enf-landing-stat__value {
  font-family: var(--font-family-heading);
  font-size: var(--font-size-h4);
  font-weight: var(--font-weight-heading-semibold);
  color: var(--color-authority-deep);
  margin: var(--space-2) 0 0;
}

.enf-landing-kicker-row {
  display: flex;
  align-items: flex-start;
  gap: var(--space-3);
  margin-bottom: var(--space-3);
}

.enf-landing-icon-feature {
  width: 48px;
  height: 48px;
  min-width: 48px;
  border-radius: var(--radius-lg);
  background: var(--color-interaction-vibrant-muted);
  display: grid;
  place-items: center;
  color: var(--color-authority-deep);
}

.enf-landing-icon-feature .material-symbols-rounded {
  font-size: 26px;
  line-height: 1;
}

.enf-landing-impact__title {
  font-family: var(--font-family-heading);
  font-size: var(--font-size-h2);
  font-weight: var(--font-weight-heading-semibold);
  color: rgba(255, 255, 255, 0.96);
  margin: 0 0 var(--space-4);
}

.enf-landing-impact-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: var(--space-3);
  font-size: var(--font-size-small);
  justify-items: start;
}

/* -----------------------------------------------------------------------------
   Modo nocturno / diurno (toggle navbar → html[data-enf-color-scheme="dark"])
   ----------------------------------------------------------------------------- */
html[data-enf-color-scheme="dark"] {
  color-scheme: dark;
}

html[data-enf-color-scheme="light"] {
  color-scheme: light;
}

html[data-enf-color-scheme="light"] body.enf-design-system {
  background-color: var(--enf-canvas-bg-light) !important;
  color: var(--color-text-primary);
}

html[data-enf-color-scheme="light"] body.bg-gray-100 {
  background-color: var(--enf-canvas-bg-light) !important;
  color: var(--color-text-primary);
}

html[data-enf-color-scheme="dark"] body.enf-design-system {
  background-color: var(--enf-canvas-bg-dark) !important;
  color: #e8eaed;
}

html[data-enf-color-scheme="dark"] body.bg-gray-100 {
  background-color: var(--enf-canvas-bg-dark) !important;
  color: #e8eaed;
}

html[data-enf-color-scheme="dark"] .enf-landing#contenido-inicio,
html[data-enf-color-scheme="dark"] .enf-subpage {
  background: var(--enf-canvas-bg-dark);
}

/* Fondo fotografía (hero a pantalla / biblioteca con imagen): colores fijados por el diseño; no invierten con el tema.
   Fondo plano (lienzo + tarjetas): sí siguen diurno/nocturno. Los badges y acentos del hero se conservan. */
html[data-enf-color-scheme="dark"] .enf-landing-hero--fullbleed,
html[data-enf-color-scheme="dark"] .enf-landing-hero--visual-slideshow,
html[data-enf-color-scheme="dark"] .enf-inicio-biblioteca-externa__hero,
html[data-enf-color-scheme="dark"] .enf-inicio-institucional__hero {
  color: var(--color-text-on-authority);
}

html[data-enf-color-scheme="dark"] .enf-landing-hero:not(.enf-landing-hero--fullbleed) {
  color: var(--color-text-on-authority);
}

html[data-enf-color-scheme="dark"] .enf-landing-hero--fullbleed .enf-landing-hero__title,
html[data-enf-color-scheme="dark"] .enf-landing-hero--visual-slideshow .enf-landing-hero__title {
  color: var(--color-text-on-authority) !important;
}

html[data-enf-color-scheme="dark"] .enf-landing-hero--fullbleed .enf-landing-hero__lead,
html[data-enf-color-scheme="dark"] .enf-landing-hero--visual-slideshow .enf-landing-hero__lead {
  color: rgba(255, 255, 255, 0.9) !important;
}

html[data-enf-color-scheme="dark"] .enf-landing-hero--fullbleed .text-dark,
html[data-enf-color-scheme="dark"] .enf-landing-hero--fullbleed .text-muted,
html[data-enf-color-scheme="dark"] .enf-landing-hero--fullbleed .text-secondary,
html[data-enf-color-scheme="dark"] .enf-landing-hero--visual-slideshow .text-dark,
html[data-enf-color-scheme="dark"] .enf-landing-hero--visual-slideshow .text-muted,
html[data-enf-color-scheme="dark"] .enf-landing-hero--visual-slideshow .text-secondary {
  color: rgba(255, 255, 255, 0.88) !important;
}

html[data-enf-color-scheme="dark"] .enf-inicio-biblioteca-externa__lead,
html[data-enf-color-scheme="dark"] .enf-inicio-biblioteca-externa__hero .enf-ds-text-small,
html[data-enf-color-scheme="dark"] .enf-inicio-institucional__hero .enf-landing-institucional-teaser__descripcion,
html[data-enf-color-scheme="dark"] .enf-inicio-institucional__hero .enf-ds-text-small {
  color: rgba(255, 255, 255, 0.92) !important;
}

html[data-enf-color-scheme="dark"] .enf-inicio-biblioteca-externa__hero .text-muted,
html[data-enf-color-scheme="dark"] .enf-inicio-biblioteca-externa__hero .text-dark,
html[data-enf-color-scheme="dark"] .enf-inicio-institucional__hero .text-muted,
html[data-enf-color-scheme="dark"] .enf-inicio-institucional__hero .text-dark {
  color: rgba(255, 255, 255, 0.9) !important;
}

html[data-enf-color-scheme="dark"] .enf-landing-hero--fullbleed .enf-ds-badge--yellow,
html[data-enf-color-scheme="dark"] .enf-landing-hero--visual-slideshow .enf-ds-badge--yellow {
  background-color: rgba(255, 236, 179, 0.98) !important;
  color: #0d47a1 !important;
}

html[data-enf-color-scheme="dark"] .site-main {
  background-color: transparent;
  color: inherit;
}

html[data-enf-color-scheme="dark"] .text-muted {
  color: #9aa0a8 !important;
}

html[data-enf-color-scheme="dark"] .text-dark {
  color: #e8eaed !important;
}

html[data-enf-color-scheme="dark"] .text-secondary {
  color: #b0b8c4 !important;
}

/* Navbar */
html[data-enf-color-scheme="dark"] .enf-site-navbar.navbar-light {
  background-color: #1e2430 !important;
  border-bottom-color: rgba(255, 255, 255, 0.09) !important;
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.45);
}

html[data-enf-color-scheme="dark"] .navbar-toggler .navbar-toggler-icon .navbar-toggler-bar {
  background-color: rgba(255, 255, 255, 0.85);
}

html[data-enf-color-scheme="dark"] .enf-site-navbar.navbar-light .navbar-nav > .nav-item > .nav-link {
  color: rgba(255, 255, 255, 0.88) !important;
}

html[data-enf-color-scheme="dark"] .enf-site-navbar .navbar-nav > .nav-item > .nav-link.active,
html[data-enf-color-scheme="dark"] .enf-site-navbar .enf-nav-primary > .nav-item > .nav-link.active {
  color: #90caf9 !important;
}

html[data-enf-color-scheme="dark"] .enf-site-navbar .dropdown-item.active {
  background-color: transparent !important;
  color: #90caf9 !important;
}

html[data-enf-color-scheme="dark"] .enf-site-navbar .dropdown-item.active:hover,
html[data-enf-color-scheme="dark"] .enf-site-navbar .dropdown-item.active:focus {
  background-color: rgba(144, 202, 249, 0.12) !important;
  color: #90caf9 !important;
}

html[data-enf-color-scheme="dark"] .enf-site-navbar.navbar-light .navbar-nav > .nav-item > .nav-link:hover,
html[data-enf-color-scheme="dark"] .enf-site-navbar.navbar-light .navbar-nav > .nav-item > .nav-link:focus {
  color: #90caf9 !important;
}

html[data-enf-color-scheme="dark"] .enf-site-navbar .enf-navbar-brand {
  color: #90caf9 !important;
}

html[data-enf-color-scheme="dark"] .navbar-rol-pill {
  background: rgba(144, 202, 249, 0.12);
  border-color: rgba(144, 202, 249, 0.35);
  color: #e3f2fd;
}

html[data-enf-color-scheme="dark"] .navbar-rol-pill--developer {
  color: #cfd8dc;
}

html[data-enf-color-scheme="dark"] .navbar .dropdown-menu {
  background-color: #252b36;
  border-color: rgba(255, 255, 255, 0.12);
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.45);
}

html[data-enf-color-scheme="dark"] .navbar .dropdown-item {
  color: rgba(255, 255, 255, 0.92);
}

html[data-enf-color-scheme="dark"] .navbar .dropdown-item:hover,
html[data-enf-color-scheme="dark"] .navbar .dropdown-item:focus {
  background-color: rgba(144, 202, 249, 0.14) !important;
  color: #fff !important;
}

html[data-enf-color-scheme="dark"] .navbar .dropdown-header {
  color: #b0bec5 !important;
}

html[data-enf-color-scheme="dark"] .navbar .dropdown-divider {
  border-color: rgba(255, 255, 255, 0.12);
}

html[data-enf-color-scheme="dark"] .enf-site-navbar .enf-nav-collapse {
  background: #1a2332;
  border-bottom-color: rgba(255, 255, 255, 0.09);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.35);
}

html[data-enf-color-scheme="dark"] .enf-site-navbar .enf-nav-primary > .nav-item {
  border-bottom-color: rgba(255, 255, 255, 0.08);
}

html[data-enf-color-scheme="dark"] .enf-site-navbar .enf-nav-primary .dropdown-menu {
  background: rgba(0, 0, 0, 0.18) !important;
}

html[data-enf-color-scheme="dark"] .enf-site-navbar .enf-nav-primary .dropdown-header {
  color: rgba(255, 255, 255, 0.55);
}

html[data-enf-color-scheme="dark"] .enf-site-navbar .enf-nav-session {
  border-bottom-color: rgba(255, 255, 255, 0.1);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.06) 0%, rgba(255, 255, 255, 0.02) 100%);
}

html[data-enf-color-scheme="dark"] .enf-site-navbar .enf-nav-actions {
  border-top-color: rgba(255, 255, 255, 0.1);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.04) 0%, rgba(255, 255, 255, 0.01) 100%);
}

@media (min-width: 992px) {
  html[data-enf-color-scheme="dark"] .enf-site-navbar .enf-nav-actions {
    border-left-color: rgba(255, 255, 255, 0.12);
  }
}

/* Toggle tema: botón en barra de acciones */
.enf-site-navbar .enf-nav-actions .enf-theme-toggle {
  width: 2.35rem;
  height: 2.35rem;
  padding: 0 !important;
  line-height: 1;
  flex-shrink: 0;
  margin-top: 0;
  margin-bottom: 0;
}

/* Legacy: ítem tema dentro de ul (ya no se usa) */
.enf-site-navbar .navbar-nav .nav-item.enf-theme-nav-item {
  align-self: stretch;
  display: flex !important;
  align-items: center;
  justify-content: center;
}
@media (min-width: 992px) {
  .enf-site-navbar .navbar-nav .nav-item.enf-theme-nav-item {
    margin-left: 0.35rem;
    padding-left: 0.65rem;
    border-left: 1px solid rgba(44, 62, 80, 0.12);
  }
  html[data-enf-color-scheme="dark"] .enf-site-navbar .navbar-nav .nav-item.enf-theme-nav-item {
    border-left-color: rgba(255, 255, 255, 0.12);
  }
}

/* Botón sol/luna (base) */
.enf-theme-toggle {
  width: 2.35rem;
  height: 2.35rem;
  padding: 0 !important;
  line-height: 1;
  flex-shrink: 0;
  margin-top: 0;
  margin-bottom: 0;
}

html[data-enf-color-scheme="light"] .enf-theme-toggle .enf-theme-icon--sun {
  display: none !important;
}

html[data-enf-color-scheme="light"] .enf-theme-toggle .enf-theme-icon--moon {
  display: inline-block !important;
}

html[data-enf-color-scheme="dark"] .enf-theme-toggle .enf-theme-icon--moon {
  display: none !important;
}

html[data-enf-color-scheme="dark"] .enf-theme-toggle .enf-theme-icon--sun {
  display: inline-block !important;
}

html[data-enf-color-scheme="dark"] .enf-theme-toggle {
  color: #ffecb3 !important;
  background: rgba(255, 255, 255, 0.08) !important;
  border: 1px solid rgba(255, 255, 255, 0.12) !important;
}

html[data-enf-color-scheme="light"] .enf-theme-toggle {
  color: var(--color-authority-deep);
  background: rgba(26, 82, 118, 0.06) !important;
}

html[data-enf-color-scheme="light"] .enf-theme-toggle:hover {
  background: rgba(26, 82, 118, 0.12) !important;
}

/* Comunidad Académica: mismo lienzo que inicio / subpáginas (body.enf-subpage) + panel con tokens */
.enf-about-comunidad {
  background: transparent;
}

html[data-enf-color-scheme="dark"] body.about-us.enf-subpage {
  color: #e8eaed;
}

/* Comunidad académica: título del bloque «Información» en una sola línea en escritorio */
@media (min-width: 992px) {
  .enf-about-atributos-bloque .enf-landing-section-head__row .enf-landing-section-head__title.enf-landing-title-impact {
    flex-shrink: 0;
    white-space: nowrap;
  }
}

.enf-about-main-panel h4,
.enf-about-main-panel .info h5 {
  color: var(--color-authority-deep);
}

html[data-enf-color-scheme="dark"] .enf-about-main-panel .info p,
html[data-enf-color-scheme="dark"] .enf-about-main-panel .text-secondary {
  color: var(--enf-on-surface-muted-dark) !important;
}

html[data-enf-color-scheme="light"] .enf-about-main-panel .info p.mb-2 {
  color: var(--enf-on-surface-body-light);
}

/* Tarjetas laterales y de equipo: coherencia con modo oscuro del sitio */
html[data-enf-color-scheme="dark"] .enf-about-comunidad .enf-nosotros-equipo .card.card-profile {
  background-color: #1e2430 !important;
  border-color: rgba(255, 255, 255, 0.12) !important;
  color: #e8eaed;
}

html[data-enf-color-scheme="dark"] .enf-about-comunidad .enf-nosotros-equipo .card.card-profile .card-body p {
  color: rgba(232, 234, 237, 0.92);
}

/* Comunidad Académica: sin min-height del kit que compita con .enf-landing-hero--fullbleed */
body.about-us .enf-about-header.page-header {
  margin: 0;
}
body.about-us .enf-landing-panel-membrete .enf-landing-hero__title {
  max-width: 32ch;
}
.enf-nosotros-attr-detalle-cuerpo {
  white-space: pre-wrap;
  word-break: break-word;
  line-height: 1.55;
}
.enf-nosotros-attr-detalle-cuerpo.enf-texto-enriquecido {
  white-space: normal;
}

/* Comunidad Académica — modal «Ver más» atributos (compacto) */
.enf-modal-nosotros-attr-detalle__dialog {
  max-width: min(26rem, calc(100vw - 2rem));
}

html[data-enf-color-scheme="dark"] .enf-theme-toggle:hover {
  background: rgba(255, 255, 255, 0.14) !important;
}

/* Tarjetas y superficies */
html[data-enf-color-scheme="dark"] .card {
  background-color: #1e2430;
  border-color: rgba(255, 255, 255, 0.1);
  color: #e8eaed;
}

html[data-enf-color-scheme="dark"] .card-header {
  background-color: rgba(0, 0, 0, 0.25);
  border-bottom-color: rgba(255, 255, 255, 0.1);
  color: inherit;
}

html[data-enf-color-scheme="dark"] .table {
  color: inherit;
  border-color: rgba(255, 255, 255, 0.1);
}

html[data-enf-color-scheme="dark"] .table-striped > tbody > tr:nth-of-type(odd) > * {
  --bs-table-accent-bg: rgba(255, 255, 255, 0.04);
}

html[data-enf-color-scheme="dark"] .nav-tabs .nav-link {
  color: rgba(255, 255, 255, 0.75);
}

html[data-enf-color-scheme="dark"] .nav-tabs .nav-link.active {
  background-color: #1e2430;
  border-color: rgba(255, 255, 255, 0.12);
  color: #fff;
}

html[data-enf-color-scheme="dark"] .form-control,
html[data-enf-color-scheme="dark"] .form-select {
  background-color: #252b36;
  border-color: rgba(255, 255, 255, 0.15);
  color: #e8eaed;
}

html[data-enf-color-scheme="dark"] .enf-design-system .form-control:not(.form-control-plaintext),
html[data-enf-color-scheme="dark"] .enf-design-system .form-select:not([multiple]),
html[data-enf-color-scheme="dark"] .enf-design-system .input-group.input-group-outline .form-control,
html[data-enf-color-scheme="dark"] .enf-design-system .input-group.input-group-static .form-control {
  background-color: #252b36 !important;
  border-color: rgba(255, 255, 255, 0.18) !important;
  color: #e8eaed;
  background-image: none !important;
}

html[data-enf-color-scheme="dark"] .enf-design-system .form-label,
html[data-enf-color-scheme="dark"] .enf-design-system label.form-label,
html[data-enf-color-scheme="dark"] .enf-design-system .input-group.input-group-outline .form-label,
html[data-enf-color-scheme="dark"] .enf-design-system .input-group.input-group-static .form-label {
  color: #e8eaed !important;
}

html[data-enf-color-scheme="dark"] .enf-design-system .form-control:focus,
html[data-enf-color-scheme="dark"] .enf-design-system .form-select:focus,
html[data-enf-color-scheme="dark"] .enf-design-system .input-group.input-group-outline.is-focused .form-label + .form-control,
html[data-enf-color-scheme="dark"] .enf-design-system .input-group.input-group-static .form-control:focus {
  border-color: rgba(100, 181, 246, 0.85) !important;
  border-top-color: rgba(100, 181, 246, 0.85) !important;
  box-shadow: 0 0 0 3px rgba(100, 181, 246, 0.22) !important;
}

html[data-enf-color-scheme="dark"] .enf-design-system .form-check-input {
  background-color: #252b36;
  border-color: rgba(255, 255, 255, 0.22);
}

html[data-enf-color-scheme="dark"] .modal-content {
  background-color: #252b36;
  border-color: rgba(255, 255, 255, 0.12);
  color: #e8eaed;
}

html[data-enf-color-scheme="dark"] .modal-header .btn-close {
  filter: invert(1) grayscale(1);
}

html[data-enf-color-scheme="dark"] .badge.bg-secondary {
  background-color: #546e7a !important;
}

html[data-enf-color-scheme="dark"] .alert {
  border-width: 1px;
}

html[data-enf-color-scheme="dark"] #modalVerArticulo .modal-footer {
  background: #1e2430;
  border-top-color: rgba(255, 255, 255, 0.1);
}

html[data-enf-color-scheme="dark"] #modalVerArticulo .modal-body {
  background: #252b36;
}

html[data-enf-color-scheme="dark"] .border,
html[data-enf-color-scheme="dark"] .border-bottom {
  border-color: rgba(255, 255, 255, 0.1) !important;
}

html[data-enf-color-scheme="dark"] .bg-light {
  background-color: #252b36 !important;
}

html[data-enf-color-scheme="dark"] .shadow-sm {
  box-shadow: 0 0.125rem 0.5rem rgba(0, 0, 0, 0.45) !important;
}

/* Panel administración — franja de filtros sobre DataTables (todas las pestañas / perfiles) */
.enf-admin-filters-bar {
  background: #ffffff;
  border: 1px solid #dee2e6;
  border-radius: 0.375rem;
  border-top: 3px solid #495057;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.07);
  padding: 0.875rem 1rem;
  margin-bottom: 0.75rem;
}

.enf-admin-filters-bar .form-label,
.enf-admin-filters-bar label.form-label {
  font-size: 0.6875rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #343a40;
  margin-bottom: 0.25rem;
}

.enf-admin-filters-bar .form-control-sm,
.enf-admin-filters-bar .form-select-sm {
  font-size: 0.8125rem;
  border-color: #ced4da;
  background-color: #fff;
}

.enf-admin-filters-bar .form-control-sm:focus,
.enf-admin-filters-bar .form-select-sm:focus {
  border-color: #86b7fe;
  box-shadow: 0 0 0 0.2rem rgba(13, 110, 253, 0.18);
}

.enf-admin-filters-bar .btn-sm.btn-outline-secondary {
  border-color: #adb5bd;
  color: #495057;
  font-weight: 500;
}

.enf-admin-filters-bar .btn-sm.btn-outline-secondary:hover {
  background: #f8f9fa;
  border-color: #6c757d;
  color: #212529;
}

html[data-enf-color-scheme="dark"] .enf-admin-filters-bar {
  background: #1e2430;
  border-color: rgba(255, 255, 255, 0.12);
  border-top-color: #8b949e;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.4);
}

html[data-enf-color-scheme="dark"] .enf-admin-filters-bar .form-label,
html[data-enf-color-scheme="dark"] .enf-admin-filters-bar label.form-label {
  color: #e8eaed;
}

html[data-enf-color-scheme="dark"] .enf-admin-filters-bar .form-control-sm,
html[data-enf-color-scheme="dark"] .enf-admin-filters-bar .form-select-sm {
  background-color: #252b36;
  border-color: rgba(255, 255, 255, 0.18);
  color: #e8eaed;
}

html[data-enf-color-scheme="dark"] .enf-admin-filters-bar .form-control-sm:focus,
html[data-enf-color-scheme="dark"] .enf-admin-filters-bar .form-select-sm:focus {
  border-color: rgba(13, 110, 253, 0.65);
  box-shadow: 0 0 0 0.2rem rgba(13, 110, 253, 0.22);
}

html[data-enf-color-scheme="dark"] .enf-admin-filters-bar .btn-sm.btn-outline-secondary {
  border-color: rgba(255, 255, 255, 0.28);
  color: #e8eaed;
}

html[data-enf-color-scheme="dark"] .enf-admin-filters-bar .btn-sm.btn-outline-secondary:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.42);
  color: #ffffff;
}

/* Panel admin DataTables: distinguir chips informativos (badge) de acciones (botones) */
.enf-page-admin-dashboard table.dataTable tbody td span.badge {
  cursor: default;
  user-select: text;
  vertical-align: middle;
  box-shadow: inset 0 0 0 1px rgba(15, 23, 42, 0.1);
  font-weight: 600;
}

.enf-page-admin-dashboard table.dataTable tbody td span.badge.bg-light {
  box-shadow: inset 0 0 0 1px rgba(15, 23, 42, 0.14);
}

.enf-page-admin-dashboard table.dataTable tbody td span.badge[class*='badge-tipo'] {
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.28);
}

.enf-page-admin-dashboard table.dataTable tbody td .btn,
.enf-page-admin-dashboard table.dataTable tbody td a.btn,
.enf-page-admin-dashboard table.dataTable tbody td button:not(.dt-button) {
  cursor: pointer;
  transition: box-shadow 0.15s ease, transform 0.12s ease, background-color 0.15s ease, border-color 0.15s ease,
    color 0.15s ease;
}

.enf-page-admin-dashboard table.dataTable tbody td .btn-group > .btn {
  cursor: pointer;
}

.enf-page-admin-dashboard table.dataTable tbody td .btn:hover:not(:disabled),
.enf-page-admin-dashboard table.dataTable tbody td a.btn:hover:not(:disabled) {
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.12);
}

.enf-page-admin-dashboard table.dataTable tbody td .btn:focus-visible,
.enf-page-admin-dashboard table.dataTable tbody td button:not(.dt-button):focus-visible {
  outline: 2px solid var(--bs-primary, #0d6efd);
  outline-offset: 2px;
}

.enf-page-admin-dashboard table.dataTable tbody td .enf-dt-action-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2rem;
  min-height: 1.65rem;
}

.enf-page-admin-dashboard table.dataTable tbody .form-check-input {
  cursor: pointer;
}

.enf-page-admin-dashboard table.dataTable tbody .enf-admin-user-placeholder {
  cursor: default;
}

html[data-enf-color-scheme="dark"] .enf-page-admin-dashboard table.dataTable tbody td span.badge {
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.18);
}

html[data-enf-color-scheme="dark"] .enf-page-admin-dashboard table.dataTable tbody td .btn:hover:not(:disabled) {
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.45);
}

/* Panel admin: tablas DataTables responsive dentro del ancho de pantalla */
.enf-page-admin-dashboard .dataTables_wrapper {
  max-width: 100%;
  overflow-x: auto;
}
.enf-page-admin-dashboard .dataTables_wrapper .row {
  margin-left: 0;
  margin-right: 0;
  max-width: 100%;
}
.enf-page-admin-dashboard .dataTables_wrapper .dataTables_length,
.enf-page-admin-dashboard .dataTables_wrapper .dataTables_filter,
.enf-page-admin-dashboard .dataTables_wrapper .dataTables_info,
.enf-page-admin-dashboard .dataTables_wrapper .dataTables_paginate {
  flex-wrap: wrap;
}
html[data-enf-color-scheme="dark"] .enf-page-admin-dashboard table.dataTable > tbody > tr.child {
  background-color: rgba(255, 255, 255, 0.04);
}
html[data-enf-color-scheme="dark"] .enf-page-admin-dashboard table.dataTable > tbody > tr.child ul.dtr-details > li {
  border-bottom-color: rgba(255, 255, 255, 0.1);
}

/* Placeholder cuando falta archivo en uploads/ tras migración o restauración parcial */
img.enf-img-placeholder {
  object-fit: cover;
  background: linear-gradient(135deg, #d5dce3 0%, #eef2f6 100%);
  min-height: 120px;
}
/* No aplicar a fullbleed: esos heroes deben seguir en 100vh/100dvh (ver .enf-landing-hero--fullbleed). */
.enf-landing-hero[style*="--enf-hero-bg-image"]:not(.enf-landing-hero--fullbleed):not(.enf-page-header-viewport-bg) {
  min-height: 220px;
}

.enf-landing-hero--fullbleed[style*="--enf-hero-bg-image"] {
  min-height: var(--enf-hero-fullbleed-min-h);
  min-height: 100dvh;
}

/* DataTables (panel admin) en modo oscuro */
html[data-enf-color-scheme="dark"] .dataTables_wrapper,
html[data-enf-color-scheme="dark"] table.dataTable {
  color: #e8eaed;
}
html[data-enf-color-scheme="dark"] table.dataTable thead th {
  border-bottom-color: rgba(255, 255, 255, 0.12);
}
html[data-enf-color-scheme="dark"] table.dataTable tbody td {
  border-top-color: rgba(255, 255, 255, 0.08);
}
html[data-enf-color-scheme="dark"] .dataTables_wrapper .dataTables_length select,
html[data-enf-color-scheme="dark"] .dataTables_wrapper .dataTables_filter input {
  background-color: #252b36;
  border-color: rgba(255, 255, 255, 0.15);
  color: #e8eaed;
}

/* Detalle blog-post: franja apaisada 3:1 (alto = 1/3 del ancho); object-position vía punto focal inline */
.enf-blog-post-hero-crop {
  width: 100%;
  aspect-ratio: 3 / 1;
}
.enf-blog-post-hero-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  display: block;
}

/* Editor de punto focal (subida / edición de posts) */
.enf-imagen-focal__frame {
  position: relative;
  width: 100%;
  min-height: 120px;
  overflow: hidden;
  border-radius: 0.5rem;
  border: 1px solid rgba(108, 117, 125, 0.35);
  background-color: #e9ecef;
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
  cursor: crosshair;
  touch-action: none;
  user-select: none;
}
.enf-imagen-focal__frame--square {
  aspect-ratio: 1 / 1;
  max-width: 280px;
}
.enf-imagen-focal__frame--wide {
  aspect-ratio: 16 / 9;
}
.enf-imagen-focal__img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  pointer-events: none;
  z-index: 1;
}
.enf-imagen-focal__frame--has-img .enf-imagen-focal__img {
  /* El fondo ya muestra la imagen; el <img> refuerza object-position al arrastrar */
  opacity: 1;
}
.enf-imagen-focal__pin {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 1.1rem;
  height: 1.1rem;
  margin: -0.55rem 0 0 -0.55rem;
  border-radius: 50%;
  background: rgba(212, 177, 6, 0.95);
  border: 2px solid #fff;
  box-shadow: 0 0 0 2px rgba(15, 23, 42, 0.35), 0 2px 8px rgba(15, 23, 42, 0.25);
  pointer-events: none;
  z-index: 3;
}
.enf-imagen-focal__pin::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 0.28rem;
  height: 0.28rem;
  margin: -0.14rem 0 0 -0.14rem;
  border-radius: 50%;
  background: #1e293b;
}

/* Navegación anterior / siguiente en ficha de publicación u oferta */
.enf-blog-post-nav {
  --bs-gutter-x: 1rem;
}
.enf-blog-post-nav__btn {
  min-width: 0;
  max-width: 100%;
  white-space: normal;
  line-height: 1.35;
}
.enf-blog-post-nav__btn .text-truncate {
  max-width: 100%;
}

/* Comunidad Académica — tarjeta lateral: botón principal (oferta / control de estudios) */
/* Comunidad Académica — tarjeta lateral: lápiz por encima de imagen y del bloque izquierdo */
html.enf-edit-site-mode-on .enf-nosotros-sidebar-col--admin {
  z-index: 8;
  isolation: isolate;
}
.enf-nosotros-sidebar-card .enf-nosotros-sidebar-admin {
  z-index: 50;
  pointer-events: auto;
}
.enf-nosotros-sidebar-card .enf-nosotros-sidebar-admin .btnNosotrosSidebarEditar,
.enf-nosotros-sidebar-card .enf-nosotros-sidebar-admin .btn-editar-estatico {
  background: rgba(255, 255, 255, 0.96) !important;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.18);
}
.enf-nosotros-sidebar-card .card-header {
  z-index: 0;
}
.enf-nosotros-sidebar-card .enf-nosotros-sidebar-cta-row .enf-nosotros-sidebar-cta,
.enf-nosotros-sidebar-card .enf-nosotros-sidebar-actions > .enf-nosotros-sidebar-cta {
  min-height: 3.35rem;
  text-align: center;
  text-wrap: balance;
  hyphens: auto;
}
.enf-nosotros-sidebar-aranceles {
  display: flex;
  justify-content: center;
}
.enf-nosotros-sidebar-aranceles .enf-ds-btn--pdf {
  width: auto;
  max-width: 100%;
}

.enf-nosotros-calendario-mount .enf-cal-grid-head,
.enf-nosotros-calendario-mount .enf-cal-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:.5rem; }
.enf-nosotros-calendario-mount .enf-cal-dow { font-size:.75rem; text-transform:uppercase; color:#6c757d; text-align:center; font-weight:700; }
.enf-nosotros-calendario-mount .enf-cal-day { border:1px solid #e5e7eb; background:#fff; border-radius:.8rem; min-height:130px; text-align:left; padding:.65rem; display:flex; flex-direction:column; gap:.5rem; }
.enf-nosotros-calendario-mount .enf-cal-day--has { border-color:#d4b106; box-shadow:0 0 0 1px rgba(212,177,6,.18) inset; }
.enf-nosotros-calendario-mount .enf-cal-day--empty { border:1px dashed #e5e7eb; border-radius:.8rem; min-height:130px; }
.enf-nosotros-calendario-mount .enf-cal-num { font-weight:700; color:#212529; }
.enf-nosotros-calendario-mount .enf-cal-events { display:flex; flex-direction:column; gap:.3rem; }
.enf-nosotros-calendario-mount .enf-cal-ev { font-size:.75rem; line-height:1.2; border-radius:999px; padding:.2rem .55rem; background:#f3f4f6; color:#374151; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.enf-nosotros-calendario-mount .enf-cal-ev--more { background:#fff7cc; color:#7a6000; }
.enf-nosotros-calendario-mount .enf-cal-year-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.enf-nosotros-calendario-mount .enf-cal-mini { border:1px solid #e5e7eb; border-radius:.8rem; padding:.75rem; background:#fff; }
.enf-nosotros-calendario-mount .enf-cal-mini h6 { font-size:.85rem; text-transform:capitalize; margin-bottom:.6rem; }
.enf-nosotros-calendario-mount .enf-cal-mini-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:.2rem; }
.enf-nosotros-calendario-mount .enf-cal-mini-grid span { display:inline-flex; align-items:center; justify-content:center; height:24px; border-radius:.35rem; font-size:.68rem; color:#6b7280; }
.enf-nosotros-calendario-mount .enf-cal-mini-grid .enf-cal-mini-day {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height:24px;
  border-radius:.35rem;
  font-size:.68rem;
  color:#6b7280;
  border:none;
  background:transparent;
  padding:0;
  margin:0;
  cursor:pointer;
  width:100%;
  box-sizing:border-box;
  font:inherit;
  line-height:1;
}
.enf-nosotros-calendario-mount .enf-cal-mini-grid .enf-cal-mini-day:hover {
  background:rgba(0, 0, 0, 0.06);
}
.enf-nosotros-calendario-mount .enf-cal-mini-grid .enf-cal-mini-day:focus-visible {
  outline:2px solid var(--color-authority-deep, #1a5276);
  outline-offset:1px;
}
.enf-nosotros-calendario-mount .enf-cal-mini-grid .enf-cal-mini-day--has {
  background:#fff7cc;
  color:#7a6000;
  font-weight:700;
}
.enf-nosotros-calendario-mount .enf-cal-mini-grid .enf-cal-mini-day--has:hover {
  background:#ffecb3;
}
@media (max-width:991.98px) { .enf-nosotros-calendario-mount .enf-cal-year-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:767.98px) {
  .enf-nosotros-calendario-mount .enf-cal-grid-head, .enf-nosotros-calendario-mount .enf-cal-grid { gap:.35rem; }
  .enf-nosotros-calendario-mount .enf-cal-day, .enf-nosotros-calendario-mount .enf-cal-day--empty { min-height:100px; padding:.45rem; }
  .enf-nosotros-calendario-mount .enf-cal-year-grid { grid-template-columns:1fr; }
}

.enf-media-repo-pager {
  position: sticky;
  top: 0;
  z-index: 2;
  background: var(--bs-body-bg, #fff);
  padding-bottom: 0.75rem;
}

.enf-media-repo-pager .enf-media-repo-pager-info {
  min-width: 10rem;
}

.enf-pd-tabs .nav-link {
  font-weight: 600;
}

.enf-pd-cta-band {
  position: relative;
  overflow: hidden;
  border-radius: 1.25rem;
  border: 2px solid rgba(198, 40, 40, 0.35);
  background: linear-gradient(145deg, #fff5f5 0%, #ffe8e8 42%, #ffdede 100%);
  box-shadow:
    0 0 0 1px rgba(255, 255, 255, 0.8) inset,
    0 16px 40px rgba(183, 28, 28, 0.18);
  padding: clamp(1.5rem, 4vw, 2.5rem) clamp(1rem, 3vw, 2rem);
}

.enf-pd-cta-band__glow {
  position: absolute;
  inset: -40% -10% auto;
  height: 70%;
  background: radial-gradient(ellipse at center, rgba(255, 82, 82, 0.22) 0%, transparent 68%);
  pointer-events: none;
}

.enf-pd-cta-band__inner {
  position: relative;
  z-index: 1;
}

.enf-pd-cta-band__badge {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  margin-bottom: 0.75rem;
  padding: 0.35rem 0.85rem;
  border-radius: 999px;
  background: #b71c1c;
  color: #fff;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.enf-pd-cta-band__title {
  margin: 0 0 1.25rem;
  font-size: clamp(1.25rem, 2.8vw, 1.65rem);
  font-weight: 800;
  line-height: 1.25;
  color: #7f0000;
}

.enf-pd-cta-band__desc {
  max-width: 38rem;
  margin: 1rem auto 0;
  font-size: 0.95rem;
  color: #5c2b2b;
}

.enf-subpage--personas-desaparecidas .enf-pd-cta-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.65rem;
  min-width: min(100%, 22rem);
  max-width: 100%;
  padding: 1.1rem 2.25rem;
  border: 2px solid rgba(255, 255, 255, 0.35);
  border-radius: 999px;
  background: linear-gradient(135deg, #e53935 0%, #c62828 45%, #b71c1c 100%);
  color: #fff !important;
  font-size: clamp(1.05rem, 2.2vw, 1.3rem);
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: 0.02em;
  text-decoration: none;
  box-shadow:
    0 10px 28px rgba(183, 28, 28, 0.45),
    0 0 0 0 rgba(229, 57, 53, 0.55);
  animation: enf-pd-cta-pulse 2.4s ease-in-out infinite;
  transition: transform 0.18s ease, box-shadow 0.18s ease, filter 0.18s ease;
  cursor: pointer;
}

.enf-subpage--personas-desaparecidas .enf-pd-cta-btn__icon {
  font-size: 1.45em;
  line-height: 1;
}

.enf-subpage--personas-desaparecidas .enf-pd-cta-btn:hover,
.enf-subpage--personas-desaparecidas .enf-pd-cta-btn:focus-visible {
  color: #fff !important;
  transform: translateY(-2px) scale(1.02);
  filter: brightness(1.06);
  box-shadow:
    0 16px 36px rgba(183, 28, 28, 0.52),
    0 0 0 0 rgba(229, 57, 53, 0);
  animation: none;
}

.enf-subpage--personas-desaparecidas .enf-pd-cta-btn--hero {
  animation: enf-pd-cta-pulse 2.4s ease-in-out infinite;
  box-shadow:
    0 12px 32px rgba(0, 0, 0, 0.35),
    0 0 0 0 rgba(229, 57, 53, 0.55);
}

.enf-subpage--personas-desaparecidas .enf-landing-hero__actions .enf-pd-cta-btn--hero {
  margin-bottom: 0.5rem;
}

@keyframes enf-pd-cta-pulse {
  0%,
  100% {
    box-shadow:
      0 10px 28px rgba(183, 28, 28, 0.45),
      0 0 0 0 rgba(229, 57, 53, 0.45);
  }
  50% {
    box-shadow:
      0 14px 34px rgba(183, 28, 28, 0.55),
      0 0 0 12px rgba(229, 57, 53, 0);
  }
}

@media (prefers-reduced-motion: reduce) {
  .enf-subpage--personas-desaparecidas .enf-pd-cta-btn {
    animation: none;
  }
}

html[data-enf-color-scheme="dark"] .enf-pd-cta-band {
  border-color: rgba(239, 83, 80, 0.45);
  background: linear-gradient(145deg, #3b1515 0%, #2a1010 55%, #1f0c0c 100%);
  box-shadow:
    0 0 0 1px rgba(255, 255, 255, 0.06) inset,
    0 16px 40px rgba(0, 0, 0, 0.45);
}

html[data-enf-color-scheme="dark"] .enf-pd-cta-band__title {
  color: #ffcdd2;
}

html[data-enf-color-scheme="dark"] .enf-pd-cta-band__desc {
  color: #ef9a9a;
}

.enf-subpage-panel--personas-desaparecidas .enf-pd-tabs .nav-link.active {
  background-color: var(--enf-ds-color-primary, #0d6efd);
  color: #fff;
}

.enf-pd-preview-img {
  width: 120px;
  height: 120px;
  object-fit: cover;
}

.enf-pd-list-empty {
  border: 1px dashed rgba(18, 52, 74, 0.18);
  border-radius: 1rem;
  background: rgba(248, 250, 252, 0.75);
}

.enf-pd-card {
  overflow: hidden;
  border: 1px solid rgba(18, 52, 74, 0.1);
  border-radius: 1rem;
  box-shadow: 0 4px 18px rgba(15, 23, 42, 0.06);
  background: #fff;
  transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}

.enf-pd-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 28px rgba(15, 23, 42, 0.1);
}

.enf-pd-card--highlight {
  border-color: rgba(13, 110, 253, 0.45);
  box-shadow: 0 0 0 3px rgba(13, 110, 253, 0.16), 0 10px 28px rgba(15, 23, 42, 0.1);
}

.enf-pd-card__media {
  position: relative;
  aspect-ratio: 1 / 1;
  background: linear-gradient(145deg, #eef2f6 0%, #dde4ea 100%);
  overflow: hidden;
  border-bottom: 1px solid rgba(18, 52, 74, 0.08);
}

.enf-pd-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.enf-pd-card__body {
  padding: 1rem 1.1rem 1.15rem;
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}

.enf-pd-card__toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}

.enf-pd-card__toolbar-actions {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  flex-shrink: 0;
}

.enf-pd-card__ref {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.3rem 0.65rem;
  border-radius: 999px;
  background: rgba(18, 52, 74, 0.07);
  color: var(--color-steel-secondary, #475569);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  white-space: nowrap;
}

.enf-pd-card__ref strong {
  color: var(--color-steel-primary, #12344a);
  font-size: 0.92rem;
  font-weight: 800;
}

.enf-pd-card__estatus {
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  white-space: nowrap;
}

.enf-pd-card__delete {
  width: 1.85rem;
  height: 1.85rem;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
}

.enf-pd-card__nombre {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 800;
  line-height: 1.25;
  color: var(--color-steel-primary, #12344a);
}

.enf-pd-card__meta {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  padding-top: 0.35rem;
  border-top: 1px solid rgba(18, 52, 74, 0.08);
}

.enf-pd-card__meta-row {
  display: grid;
  grid-template-columns: minmax(5.5rem, 38%) 1fr;
  gap: 0.5rem 0.75rem;
  align-items: start;
  font-size: 0.82rem;
  line-height: 1.35;
}

.enf-pd-card__meta-row--fechas {
  color: var(--color-steel-secondary, #64748b);
}

.enf-pd-card__meta-label {
  font-weight: 600;
  color: var(--color-steel-secondary, #64748b);
}

.enf-pd-card__meta-value {
  color: var(--color-steel-primary, #1e293b);
  word-break: break-word;
}

.enf-pd-listado-buscar .enf-ds-input {
  min-height: 2.75rem;
}

.enf-pd-listado-filtros .btn.active {
  font-weight: 700;
}

.enf-pd-listado-filtros .btn[data-pd-filtro="en_busqueda"].active {
  background-color: var(--bs-danger);
  border-color: var(--bs-danger);
  color: #fff;
}

.enf-pd-listado-filtros .btn[data-pd-filtro="encontrado"].active {
  background-color: var(--bs-success);
  border-color: var(--bs-success);
  color: #fff;
}

.enf-pd-card__nombre {
  color: var(--color-steel-primary, #12344a);
  font-weight: 700;
}

html[data-enf-color-scheme="dark"] .enf-pd-card {
  border-color: rgba(255, 255, 255, 0.12);
  background: rgba(15, 23, 42, 0.55);
}

html[data-enf-color-scheme="dark"] .enf-pd-card__media {
  background: linear-gradient(145deg, #1e293b 0%, #0f172a 100%);
  border-bottom-color: rgba(255, 255, 255, 0.08);
}

html[data-enf-color-scheme="dark"] .enf-pd-card__ref {
  background: rgba(255, 255, 255, 0.08);
  color: #cbd5e1;
}

html[data-enf-color-scheme="dark"] .enf-pd-card__ref strong {
  color: #f8fafc;
}

html[data-enf-color-scheme="dark"] .enf-pd-card__nombre {
  color: #eef2f7;
}

html[data-enf-color-scheme="dark"] .enf-pd-card__meta {
  border-top-color: rgba(255, 255, 255, 0.08);
}

html[data-enf-color-scheme="dark"] .enf-pd-card__meta-label {
  color: #94a3b8;
}

html[data-enf-color-scheme="dark"] .enf-pd-card__meta-value {
  color: #e2e8f0;
}

html[data-enf-color-scheme="dark"] .enf-pd-list-empty {
  border-color: rgba(255, 255, 255, 0.14);
  background: rgba(15, 23, 42, 0.35);
}

.enf-pd-result-card {
  background: var(--bs-body-bg, #fff);
}