/**
 * E-DESARROLLO - Estilos Principales
 * ===================================
 * Theme child para Bricks Builder + WindPress (Tailwind v4)
 *
 * Este archivo complementa WindPress con estilos específicos
 * que no se pueden lograr solo con clases de utilidad.
 */

/* ============================================
   1. IMPORTS Y FUENTES
   ============================================ */

/* Google Fonts - Nunito & Nunito Sans */
@import url('https://fonts.googleapis.com/css2?family=Nunito:wght@400;500;600;700;800;900&family=Nunito+Sans:wght@400;500;600;700&display=swap');

/* ============================================
   2. CUSTOM PROPERTIES (Variables CSS)
   ============================================ */

:root {
    /* Colores Principales */
    --ed-primary: #213a68;
    --ed-primary-light: #2f6fb6;
    --ed-primary-dark: #1a2e52;

    --ed-secondary: #fdc618;
    --ed-secondary-light: #ffe066;
    --ed-secondary-dark: #d4a614;

    /* Colores de Acento (6 Áreas de Servicio) */
    --ed-accent-red: #d11b19;
    --ed-accent-orange: #e8482a;
    --ed-accent-green: #4cb16a;
    --ed-accent-lime: #79a82e;
    --ed-accent-purple: #9d7ab5;
    --ed-accent-teal: #57757e;

    /* Estados */
    --ed-success: #4cb16a;
    --ed-warning: #e8482a;
    --ed-error: #d11b19;
    --ed-info: #2f6fb6;

    /* Neutros */
    --ed-light: #F5F7FA;
    --ed-dark: #1a1a2e;

    /* Tipografía */
    --font-display: 'Nunito', system-ui, sans-serif;
    --font-body: 'Nunito Sans', system-ui, sans-serif;

    /* Transiciones */
    --transition-fast: 150ms ease;
    --transition-base: 200ms ease;
    --transition-slow: 300ms ease;

    /* Z-index scale */
    --z-dropdown: 100;
    --z-sticky: 200;
    --z-fixed: 300;
    --z-modal-backdrop: 400;
    --z-modal: 500;
    --z-popover: 600;
    --z-tooltip: 700;

    /* ========================================
       LAYOUT - Sistema de contenedores fluido
       ========================================

       Sistema híbrido que se adapta según el viewport:
       - Móvil/Tablet: 94% (más contenido visible)
       - Desktop medio (1024-1439px): 90%
       - Desktop grande (1440-1919px): 85%
       - Desktop XL (1920px+): 80%
    */

    /* Ancho base del contenedor (se sobreescribe con media queries) */
    --ed-container-width: 94%;

    /* Márgenes laterales automáticos */
    --ed-container-margin: auto;

    /* Paddings internos responsivos */
    --ed-container-padding: 1.5rem;
    --ed-container-padding-sm: 2rem;
    --ed-container-padding-md: 2.5rem;
    --ed-container-padding-lg: 3rem;

    /* Alturas del header (para cálculos de fullscreen) */
    --ed-govco-height: 35px;
    --ed-header-height: 80px;
    --ed-breadcrumb-height: 48px; /* padding 0.875rem + contenido ~20px + bandera 4px (móvil) */
}

/* Sistema de ancho responsivo */
@media (min-width: 1024px) {
    :root {
        --ed-container-width: 90%;
        --ed-header-height: 106px;
        --ed-breadcrumb-height: 52px; /* padding 1rem + contenido ~24px + bandera 4px */
    }
}

@media (min-width: 1440px) {
    :root {
        --ed-container-width: 85%;
    }
}

@media (min-width: 1920px) {
    :root {
        --ed-container-width: 80%;
    }
}

/* ============================================
   3. BASE STYLES
   ============================================ */

html {
    scroll-behavior: smooth;
    font-size: 14px; /* Base similar a GOV.CO */
}

body {
    font-family: var(--font-body);
    color: var(--ed-dark);
    background-color: #ffffff;
    font-size: 1rem; /* 14px */
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* Headings */
h1, h2, h3, h4, h5, h6,
.font-display {
    font-family: var(--font-display);
    font-weight: 700;
    line-height: 1.2;
    color: var(--ed-primary);
}

/* Links */
a {
    color: var(--ed-primary);
    text-decoration: none;
    transition: color var(--transition-fast);
}

a:hover {
    color: var(--ed-primary-light);
}

/* Focus visible para accesibilidad */
:focus-visible {
    outline: 2px solid var(--ed-secondary);
    outline-offset: 2px;
}

/* ============================================
   4. COMPONENTES BASE
   ============================================ */

/* Container fluido - Usar esta clase en cualquier componente que necesite el ancho estándar */
.ed-container {
    width: var(--ed-container-width);
    margin-left: var(--ed-container-margin);
    margin-right: var(--ed-container-margin);
}

/* Container con padding interno (para secciones con fondo de color) */
.ed-container-padded {
    width: 100%;
    padding-left: calc((100% - var(--ed-container-width)) / 2);
    padding-right: calc((100% - var(--ed-container-width)) / 2);
}

/* Sección base */
.ed-section {
    padding-top: 4rem;
    padding-bottom: 4rem;
}

@media (min-width: 768px) {
    .ed-section {
        padding-top: 5rem;
        padding-bottom: 5rem;
    }
}

@media (min-width: 1024px) {
    .ed-section {
        padding-top: 6rem;
        padding-bottom: 6rem;
    }
}

/* ============================================
   5. BOTONES
   ============================================ */

.ed-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.75rem 1.5rem;
    font-family: var(--font-body);
    font-weight: 600;
    font-size: 0.875rem;
    line-height: 1.25rem;
    border-radius: 0.5rem;
    cursor: pointer;
    transition: all var(--transition-base);
    border: 2px solid transparent;
}

.ed-btn:focus-visible {
    outline: 2px solid var(--ed-secondary);
    outline-offset: 2px;
}

/* Botón Primario */
.ed-btn-primary {
    background-color: var(--ed-primary);
    color: #ffffff;
    border-color: var(--ed-primary);
}

.ed-btn-primary:hover {
    background-color: var(--ed-primary-light);
    border-color: var(--ed-primary-light);
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(33, 58, 104, 0.3);
}

/* Botón Secundario */
.ed-btn-secondary {
    background-color: var(--ed-secondary);
    color: var(--ed-primary);
    border-color: var(--ed-secondary);
}

.ed-btn-secondary:hover {
    background-color: var(--ed-secondary-light);
    border-color: var(--ed-secondary-light);
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(253, 198, 24, 0.4);
}

/* Botón Outline */
.ed-btn-outline {
    background-color: transparent;
    color: var(--ed-primary);
    border-color: var(--ed-primary);
}

.ed-btn-outline:hover {
    background-color: var(--ed-primary);
    color: #ffffff;
}

/* Botón Ghost (texto) */
.ed-btn-ghost {
    background-color: transparent;
    color: var(--ed-primary);
    border-color: transparent;
}

.ed-btn-ghost:hover {
    background-color: var(--ed-light);
}

/* Tamaños de botón */
.ed-btn-sm {
    padding: 0.5rem 1rem;
    font-size: 0.75rem;
}

.ed-btn-lg {
    padding: 1rem 2rem;
    font-size: 1rem;
}

/* ============================================
   6. CARDS
   ============================================ */

.ed-card {
    background-color: #ffffff;
    border-radius: 0.75rem;
    box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
    overflow: hidden;
    transition: all var(--transition-slow);
}

.ed-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
}

.ed-card-body {
    padding: 1.5rem;
}

.ed-card-image {
    width: 100%;
    aspect-ratio: 16 / 10;
    object-fit: cover;
}

/* ============================================
   7. BADGES
   ============================================ */

.ed-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    padding: 0.25rem 0.75rem;
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    border-radius: 9999px;
}

.ed-badge-primary {
    background-color: rgba(33, 58, 104, 0.1);
    color: var(--ed-primary);
}

.ed-badge-secondary {
    background-color: rgba(253, 198, 24, 0.2);
    color: var(--ed-secondary-dark);
}

.ed-badge-success {
    background-color: rgba(76, 177, 106, 0.15);
    color: #166534;
}

.ed-badge-warning {
    background-color: rgba(232, 72, 42, 0.15);
    color: #9a3412;
}

.ed-badge-error {
    background-color: rgba(209, 27, 25, 0.15);
    color: #991b1b;
}

.ed-badge-info {
    background-color: rgba(47, 111, 182, 0.15);
    color: #1e40af;
}

/* ============================================
   8. BARRA GOV.CO
   ============================================ */

:root {
    --govcolor-cobalt: #0943B5;
    --govcolor-white: #FFFFFF;
    --govcolor-havelock-blue: #4672C8;
}

.barra-superior-govco {
    background-color: var(--govcolor-cobalt);
    width: 100%;
    height: 2.5rem; /* 40px - Altura estándar GOV.CO */
    position: relative;
    display: flex;
    align-items: center;
}

.barra-superior-govco-container {
    width: var(--ed-container-width);
    margin-left: var(--ed-container-margin);
    margin-right: var(--ed-container-margin);
    display: flex;
    align-items: center;
    position: relative;
    height: 100%;
}

/* Logo GOV.CO - usando SVG inline para evitar FOUC */
.barra-superior-govco-logo {
    display: flex;
    align-items: center;
    height: 1.5rem; /* 24px */
}

.barra-superior-govco-logo svg {
    height: 100%;
    width: auto;
}

@media (min-width: 640px) {
    .barra-superior-govco-logo {
        height: 1.75rem; /* 28px en desktop */
    }
}

/* Fallback para link sin SVG inline */
.barra-superior-govco a:not(.barra-superior-govco-logo) {
    content: url('https://cdn.www.gov.co/layout-govco-v5/assets/images/logo.svg');
    height: 1.5rem;
}

.barra-superior-govco a:focus-visible {
    outline: 0.125rem solid var(--govcolor-white);
    border-radius: 0.313rem;
}

.barra-superior-govco .idioma-btn-barra-superior-govco {
    height: 1.5rem;
    width: 1.5rem;
    border-radius: 0.313rem;
    background-color: var(--govcolor-white);
    cursor: pointer;
    padding: 0;
    border: 0.063rem solid var(--govcolor-white);
    font-size: 0.625rem;
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    font-family: var(--font-body);
}

.barra-superior-govco .idioma-btn-barra-superior-govco:hover,
.barra-superior-govco .idioma-btn-barra-superior-govco:focus-visible {
    background-color: var(--govcolor-havelock-blue);
}

.barra-superior-govco .idioma-btn-barra-superior-govco:focus-visible {
    outline: 0.063rem solid var(--govcolor-white);
    outline-offset: 0.188rem;
}

.barra-superior-govco .idioma-btn-barra-superior-govco::before {
    font-family: var(--font-body);
    content: 'EN';
    color: var(--govcolor-cobalt);
    font-size: 12px;
    font-weight: 600;
}

.barra-superior-govco .idioma-btn-barra-superior-govco:hover::before,
.barra-superior-govco .idioma-btn-barra-superior-govco:focus-visible::before {
    color: var(--govcolor-white);
}

@media (max-width: 600px) {
    .barra-superior-govco-container {
        justify-content: center;
        padding-left: 1.5rem;
        padding-right: 1.5rem;
    }

    .barra-superior-govco .idioma-btn-barra-superior-govco {
        right: 0;
    }
}

/* ============================================
   9. HEADER
   ============================================ */

/* ========== BRICKS HEADER STRUCTURE ========== */
/* Cuando se usa la estructura de Bricks con secciones separadas */
#brx-header {
    position: fixed !important;
    top: 0;
    left: 0;
    right: 0;
    z-index: 9999;
}

.admin-bar #brx-header {
    top: 32px;
}

@media screen and (max-width: 782px) {
    .admin-bar #brx-header {
        top: 46px;
    }
}

/* Sección de GOV.CO dentro de Bricks header */
#brx-header > .brxe-section:first-child {
    position: relative;
    z-index: 10001;
    background-color: var(--govcolor-cobalt, #3366cc);
}

/* Sección de Header Nav dentro de Bricks header */
#brx-header > .brxe-section:nth-child(2) {
    position: relative;
    z-index: 10000;
    background-color: #ffffff;
    transition: background-color 0.3s ease, box-shadow 0.3s ease;
}

/* En Home: Header Nav transparente sobre el slider */
body.home #brx-header > .brxe-section:nth-child(2),
body.front-page #brx-header > .brxe-section:nth-child(2) {
    background-color: transparent;
}

/* Cuando tiene .ed-header-nav-transparent */
#brx-header .ed-header-nav-transparent {
    background-color: transparent !important;
}

/* Cuando hace scroll en home - el header se vuelve sólido */
body.home #brx-header.is-scrolled > .brxe-section:nth-child(2),
body.front-page #brx-header.is-scrolled > .brxe-section:nth-child(2) {
    background-color: rgba(255, 255, 255, 0.98);
    backdrop-filter: blur(12px);
    box-shadow: 0 4px 20px -2px rgb(0 0 0 / 0.15);
}

/* Compensar espacio del header fixed + breadcrumb - Solo páginas internas */
body:not(.home):not(.front-page) {
    padding-top: calc(var(--ed-govco-height, 35px) + var(--ed-header-height, 80px) + var(--ed-breadcrumb-height, 52px)) !important;
}

@media (min-width: 1024px) {
    body:not(.home):not(.front-page) {
        padding-top: calc(var(--ed-govco-height, 35px) + var(--ed-header-height, 106px) + var(--ed-breadcrumb-height, 52px)) !important;
    }
}

.admin-bar:not(.home):not(.front-page) {
    padding-top: calc(32px + var(--ed-govco-height, 35px) + var(--ed-header-height, 80px) + var(--ed-breadcrumb-height, 52px)) !important;
}

@media (min-width: 1024px) {
    .admin-bar:not(.home):not(.front-page) {
        padding-top: calc(32px + var(--ed-govco-height, 35px) + var(--ed-header-height, 106px) + var(--ed-breadcrumb-height, 52px)) !important;
    }
}

@media screen and (max-width: 782px) {
    .admin-bar:not(.home):not(.front-page) {
        padding-top: calc(46px + var(--ed-govco-height, 35px) + var(--ed-header-height, 80px) + var(--ed-breadcrumb-height, 52px)) !important;
    }
}

/* HOME: Sin padding, el slider empieza desde arriba */
body.home,
body.front-page {
    padding-top: 0 !important;
}

/* HOME: El contenido NO tiene padding, el slider ocupa todo */
body.home #brx-content,
body.front-page #brx-content {
    padding-top: 0 !important;
}

.admin-bar.home #brx-content,
.admin-bar.front-page #brx-content {
    padding-top: 0 !important;
}

/* Primera sección (slider) en home: fullscreen - ocupa todo el viewport visible */
body.home #brx-content > .brxe-section:first-child,
body.front-page #brx-content > .brxe-section:first-child {
    min-height: 100vh;
    min-height: 100dvh; /* Dynamic viewport para móviles */
    margin-top: 0 !important;
    padding-top: 0 !important;
}

.admin-bar.home #brx-content > .brxe-section:first-child,
.admin-bar.front-page #brx-content > .brxe-section:first-child {
    min-height: calc(100vh - 32px);
    min-height: calc(100dvh - 32px);
}

@media screen and (max-width: 782px) {
    .admin-bar.home #brx-content > .brxe-section:first-child,
    .admin-bar.front-page #brx-content > .brxe-section:first-child {
        min-height: calc(100vh - 46px);
        min-height: calc(100dvh - 46px);
    }
}

/* RevSlider específico en home - altura completa del viewport */
body.home #brx-content > .brxe-section:first-child sr7-module,
body.home #brx-content > .brxe-section:first-child sr7-module sr7-adjuster,
body.home #brx-content > .brxe-section:first-child sr7-module sr7-content,
body.home #brx-content > .brxe-section:first-child sr7-module sr7-module-bg {
    min-height: 100vh !important;
    min-height: 100dvh !important;
    height: 100vh !important;
    height: 100dvh !important;
}

.admin-bar.home #brx-content > .brxe-section:first-child sr7-module,
.admin-bar.home #brx-content > .brxe-section:first-child sr7-module sr7-adjuster,
.admin-bar.home #brx-content > .brxe-section:first-child sr7-module sr7-content,
.admin-bar.home #brx-content > .brxe-section:first-child sr7-module sr7-module-bg {
    min-height: calc(100vh - 32px) !important;
    min-height: calc(100dvh - 32px) !important;
    height: calc(100vh - 32px) !important;
    height: calc(100dvh - 32px) !important;
}

@media screen and (max-width: 782px) {
    .admin-bar.home #brx-content > .brxe-section:first-child sr7-module,
    .admin-bar.home #brx-content > .brxe-section:first-child sr7-module sr7-adjuster,
    .admin-bar.home #brx-content > .brxe-section:first-child sr7-module sr7-content,
    .admin-bar.home #brx-content > .brxe-section:first-child sr7-module sr7-module-bg {
        min-height: calc(100vh - 46px) !important;
        min-height: calc(100dvh - 46px) !important;
        height: calc(100vh - 46px) !important;
        height: calc(100dvh - 46px) !important;
    }
}

/* ========== BARRA GOV.CO - WRAPPER SEPARADO ========== */
.ed-govco-wrapper {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 10000; /* Por encima del header principal */
    background-color: var(--govcolor-cobalt, #3366cc);
}

.admin-bar .ed-govco-wrapper {
    top: 32px;
}

@media screen and (max-width: 782px) {
    .admin-bar .ed-govco-wrapper {
        top: 46px;
    }
}

/* ========== HEADER PRINCIPAL - SEPARADO DE GOV.CO ========== */
.ed-header-wrapper {
    position: fixed;
    top: var(--ed-govco-height, 35px); /* Comienza después de GOV.CO */
    left: 0;
    right: 0;
    z-index: 9999;
    background-color: #ffffff;
    transition: transform 0.3s ease, box-shadow 0.3s ease, background-color 0.3s ease;
}

/* ========== HEADER NAV WRAPPER - Para uso en secciones de Bricks ========== */
.ed-header-nav-wrapper {
    position: relative;
    z-index: 9998;
    background-color: #ffffff;
    transition: transform 0.3s ease, box-shadow 0.3s ease, background-color 0.3s ease;
}

.ed-header-nav-wrapper.is-scrolled {
    box-shadow: 0 4px 20px -2px rgb(0 0 0 / 0.15);
}

/* Header transparente para uso en secciones de Bricks */
.ed-header-nav-transparent,
.ed-header-nav-transparent .ed-header,
.ed-header-nav-transparent .ed-header-container,
.ed-header-nav-transparent .ed-header-inner {
    background: transparent !important;
    background-color: transparent !important;
    box-shadow: none !important;
    border: none !important;
}

.ed-header-nav-transparent .ed-nav-menu > li > a {
    color: #ffffff;
    border-bottom-color: transparent;
}

.ed-header-nav-transparent .ed-nav-menu > li > a:hover {
    color: var(--ed-secondary);
    border-bottom-color: var(--ed-secondary);
}

.ed-header-nav-transparent .ed-nav-menu > li.current-menu-item > a,
.ed-header-nav-transparent .ed-nav-menu > li.current-menu-parent > a {
    color: #ffffff;
    border-bottom-color: var(--ed-secondary);
}

.ed-header-nav-transparent .ed-header-cta {
    background-color: var(--ed-secondary);
    color: var(--ed-primary);
}

.ed-header-nav-transparent .ed-mobile-menu-btn span {
    background-color: #ffffff;
}

.ed-header-nav-transparent .ed-logo-color {
    display: none !important;
}

.ed-header-nav-transparent .ed-logo-blanco {
    display: block !important;
}

/* Cuando hace scroll: volver a estado sólido */
.ed-header-nav-transparent.is-scrolled {
    background-color: rgba(255, 255, 255, 0.98);
    backdrop-filter: blur(12px);
}

.ed-header-nav-transparent.is-scrolled .ed-header {
    background-color: transparent;
}

.ed-header-nav-transparent.is-scrolled .ed-nav-menu > li > a {
    color: var(--ed-primary);
    border-bottom-color: transparent;
}

.ed-header-nav-transparent.is-scrolled .ed-nav-menu > li > a:hover {
    color: var(--ed-primary-light);
    border-bottom-color: var(--ed-primary-light);
}

.ed-header-nav-transparent.is-scrolled .ed-nav-menu > li.current-menu-item > a,
.ed-header-nav-transparent.is-scrolled .ed-nav-menu > li.current-menu-parent > a {
    color: var(--ed-primary);
    border-bottom-color: var(--ed-secondary);
}

.ed-header-nav-transparent.is-scrolled .ed-mobile-menu-btn span {
    background-color: var(--ed-primary);
}

.ed-header-nav-transparent.is-scrolled .ed-logo-color {
    display: block !important;
}

.ed-header-nav-transparent.is-scrolled .ed-logo-blanco {
    display: none !important;
}

/* Compensar barra de admin de WordPress */
.admin-bar .ed-header-wrapper {
    top: calc(32px + var(--ed-govco-height, 35px));
}

@media screen and (max-width: 782px) {
    .admin-bar .ed-header-wrapper {
        top: calc(46px + var(--ed-govco-height, 35px));
    }
}

.ed-header-wrapper.is-scrolled {
    box-shadow: 0 4px 20px -2px rgb(0 0 0 / 0.15);
}

/* Header principal */
.ed-header {
    background-color: #ffffff;
    box-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1);
    transition: background-color 0.3s ease, backdrop-filter 0.3s ease;
}

.ed-header-wrapper.is-scrolled .ed-header {
    backdrop-filter: blur(12px);
    background-color: rgba(255, 255, 255, 0.97);
}

/* NOTA: Las reglas de padding-top del body están en la sección BRICKS HEADER STRUCTURE arriba */

/* ========================================
   HEADER TRANSPARENTE (Home/Front Page)
   ======================================== */
.ed-header-transparent,
.ed-header-transparent .ed-header,
.ed-header-transparent .ed-header-container,
.ed-header-transparent .ed-header-inner {
    background: transparent !important;
    background-color: transparent !important;
    box-shadow: none !important;
    border: none !important;
}

.ed-header-transparent .barra-superior-govco {
    background-color: rgba(0, 56, 147, 0.85) !important;
    border: none !important;
    box-shadow: none !important;
}

/* En Bricks Builder: forzar transparencia cuando está la clase ed-header-transparent */
html.bricks-is-builder .ed-header-transparent,
html.bricks-is-builder .ed-header-transparent .ed-header,
html.bricks-is-builder .ed-header-transparent .ed-header-container,
html.bricks-is-builder .ed-header-transparent .ed-header-inner {
    background: transparent !important;
    background-color: transparent !important;
    box-shadow: none !important;
}

/* Textos blancos en header transparente */
.ed-header-transparent .ed-nav-menu > li > a {
    color: #ffffff;
}

.ed-header-transparent .ed-nav-menu > li > a:hover {
    color: var(--ed-secondary);
}

.ed-header-transparent .ed-header-cta {
    background-color: var(--ed-secondary);
    color: var(--ed-primary);
}

/* Hamburguesa blanca */
.ed-header-transparent .ed-mobile-menu-btn span {
    background-color: #ffffff;
}

/* Header transparente cuando hace scroll - vuelve a ser sólido */
.ed-header-transparent.is-scrolled {
    background-color: rgba(255, 255, 255, 0.98);
    backdrop-filter: blur(12px);
}

.ed-header-transparent.is-scrolled .barra-superior-govco {
    background-color: #003893;
}

.ed-header-transparent.is-scrolled .ed-header {
    background-color: transparent;
}

.ed-header-transparent.is-scrolled .ed-nav-menu > li > a {
    color: var(--ed-primary);
}

.ed-header-transparent.is-scrolled .ed-nav-menu > li > a:hover {
    color: var(--ed-primary-light);
}

.ed-header-transparent.is-scrolled .ed-mobile-menu-btn span {
    background-color: var(--ed-primary);
}

/* Container del header */
.ed-header-container {
    width: var(--ed-container-width);
    margin-left: var(--ed-container-margin);
    margin-right: var(--ed-container-margin);
}

/* Inner del header - flex container */
.ed-header-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem; /* Espacio mínimo entre elementos */
    padding-top: 1rem;
    padding-bottom: 1rem;
}

@media (min-width: 1024px) {
    .ed-header-inner {
        padding-top: 1rem;
        padding-bottom: 1rem;
        gap: 2rem; /* Más espacio en desktop */
    }
}

@media (min-width: 1440px) {
    .ed-header-inner {
        gap: 2.5rem;
    }
}

/* Logo del header */
.ed-header-logo-link {
    display: flex;
    align-items: center;
    flex-shrink: 0;
}

.ed-header-logo {
    height: 2.5rem; /* 35px - móvil */
    width: auto;
    display: block;
}

/* Logo blanco oculto por defecto */
.ed-logo-blanco {
    display: none !important;
}

/* En header transparente: mostrar logo blanco, ocultar color */
.ed-header-transparent .ed-logo-color {
    display: none !important;
}

.ed-header-transparent .ed-logo-blanco {
    display: block !important;
}

/* Cuando hace scroll: volver al logo color */
.ed-header-transparent.is-scrolled .ed-logo-color {
    display: block !important;
}

.ed-header-transparent.is-scrolled .ed-logo-blanco {
    display: none !important;
}

@media (min-width: 640px) {
    .ed-header-logo {
        height: 2.75rem; /* 44px - tablet */
    }
}

@media (min-width: 1024px) {
    .ed-header-logo {
        height: 3rem; /* 48px - desktop */
    }
}

@media (min-width: 1440px) {
    .ed-header-logo {
        height: 3.5rem; /* 56px - desktop grande */
    }
}

/* Navegación desktop */
.ed-header-nav {
    display: none;
    align-items: center;
}

@media (min-width: 1024px) {
    .ed-header-nav {
        display: flex;
    }
}

/* Acciones del header (CTA + hamburguesa) */
.ed-header-actions {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

/* CTA Button del header */
.ed-header-cta {
    display: none;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 1.5rem;
    background-color: var(--ed-secondary);
    color: var(--ed-primary);
    font-weight: 700;
    font-size: 1rem; /* 14px con base 14px */
    border-radius: 0.75rem;
    text-decoration: none;
    box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1);
    transition: all 0.2s ease;
}

.ed-header-cta:hover {
    background-color: var(--ed-secondary-light);
    transform: translateY(-2px);
    box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1);
}

.ed-header-cta svg {
    width: 1.25rem;
    height: 1.25rem;
}

@media (min-width: 1024px) {
    .ed-header-cta {
        display: inline-flex;
    }
}

/* Botón hamburguesa - visible solo en móvil */
.ed-mobile-menu-btn {
    display: inline-flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: 3rem;
    height: 3rem;
    padding: 0.5rem;
    background: transparent;
    border: none;
    border-radius: 0.75rem;
    cursor: pointer;
    transition: background-color 0.2s ease;
}

@media (min-width: 1024px) {
    .ed-mobile-menu-btn {
        display: none;
    }
}

/* Contenedor menú móvil */
.ed-mobile-menu-wrapper {
    display: block;
    padding-left: 1rem;
    padding-right: 1rem;
}

@media (min-width: 640px) {
    .ed-mobile-menu-wrapper {
        padding-left: 1.5rem;
        padding-right: 1.5rem;
    }
}

@media (min-width: 1024px) {
    .ed-mobile-menu-wrapper {
        display: none;
    }
}

/* CTA en menú móvil */
.ed-mobile-cta-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.625rem;
    width: 100%;
    padding: 1rem 1.5rem;
    background-color: var(--ed-secondary);
    color: var(--ed-primary);
    font-weight: 700;
    font-size: 1rem;
    border-radius: 0.75rem;
    text-decoration: none;
    box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1);
    transition: all 0.2s ease;
}

.ed-mobile-cta-btn:hover,
.ed-mobile-cta-btn:active {
    background-color: var(--ed-secondary-light);
    transform: translateY(-1px);
    box-shadow: 0 6px 12px -2px rgb(0 0 0 / 0.15);
}

.ed-mobile-cta-btn svg {
    width: 1.375rem;
    height: 1.375rem;
}

/* Navegación Desktop - Menú WordPress */
.ed-nav-menu {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    list-style: none;
    margin: 0;
    padding: 0;
}

.ed-nav-menu li {
    position: relative;
}

.ed-nav-menu > li > a {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.5rem 0.6rem;
    font-size: 1rem; /* 14px */
    font-weight: 500;
    color: var(--ed-primary);
    border-radius: 0;
    transition: color 0.2s ease, border-color 0.2s ease;
    text-decoration: none;
    position: relative;
    border-bottom: 2px solid transparent;
}

/* Hover sutil - solo underline */
.ed-nav-menu > li > a:hover {
    color: var(--ed-primary-light);
    border-bottom-color: var(--ed-primary-light);
}

/* Item activo - underline con color secundario */
.ed-nav-menu > li.current-menu-item > a,
.ed-nav-menu > li.current-menu-parent > a {
    color: var(--ed-primary);
    font-weight: 600;
    border-bottom-color: var(--ed-secondary);
}

/* Items con submenú - flecha indicadora */
.ed-nav-menu > li.menu-item-has-children > a::after {
    content: '';
    width: 0.5rem;
    height: 0.5rem;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg);
    margin-top: -0.15rem;
    transition: transform 0.2s ease;
}

.ed-nav-menu > li.menu-item-has-children:hover > a::after {
    transform: rotate(-135deg);
}

/* Submenú (dropdown) */
.ed-nav-menu .sub-menu {
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 260px;
    background: white;
    border-radius: 1rem;
    box-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
    padding: 0.5rem 0;
    margin-top: 0.5rem;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-10px);
    transition: all 0.2s ease;
    list-style: none;
    z-index: var(--z-dropdown);
}

.ed-nav-menu > li:hover > .sub-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.ed-nav-menu .sub-menu li a {
    display: block;
    padding: 0.75rem 1.25rem;
    font-size: 1rem;
    color: var(--ed-primary);
    transition: all 0.2s ease;
    text-decoration: none;
    border-left: 3px solid transparent;
}

.ed-nav-menu .sub-menu li a:hover {
    background-color: var(--ed-light);
    color: var(--ed-primary-light);
    border-left-color: var(--ed-secondary);
    padding-left: calc(1.25rem + 3px);
}

.ed-nav-menu .sub-menu li.current-menu-item a {
    background-color: var(--ed-light);
    color: var(--ed-primary);
    font-weight: 600;
    border-left-color: var(--ed-secondary);
}

/* ============================================
   9.1 MENÚ MÓVIL (estilos adicionales)
   ============================================ */

.ed-mobile-menu-btn:hover {
    background-color: var(--ed-light);
}

.ed-mobile-menu-btn span {
    display: block;
    width: 1.5rem;
    height: 2px;
    background-color: var(--ed-primary);
    border-radius: 2px;
    transition: all 0.3s ease;
}

.ed-mobile-menu-btn span:nth-child(1) {
    transform: translateY(-6px);
}

.ed-mobile-menu-btn span:nth-child(3) {
    transform: translateY(6px);
}

/* Estado abierto del botón hamburguesa */
.ed-mobile-menu-btn.is-active span:nth-child(1) {
    transform: translateY(0) rotate(45deg);
}

.ed-mobile-menu-btn.is-active span:nth-child(2) {
    opacity: 0;
    transform: scaleX(0);
}

.ed-mobile-menu-btn.is-active span:nth-child(3) {
    transform: translateY(0) rotate(-45deg);
}

/* Contenedor del menú móvil */
.ed-mobile-menu-container {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    border-top: 1px solid transparent;
}

.ed-mobile-menu-container.is-open {
    max-height: calc(100vh - var(--ed-govco-height) - var(--ed-header-height));
    max-height: calc(100dvh - var(--ed-govco-height) - var(--ed-header-height));
    border-top-color: var(--ed-light);
    overflow-y: auto;
    background-color: #ffffff;
}

/* Lista del menú móvil */
.ed-mobile-menu {
    list-style: none;
    margin: 0;
    padding: 0.75rem 0;
}

.ed-mobile-menu li {
    position: relative;
}

.ed-mobile-menu > li > a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1rem 1.5rem;
    font-size: 1rem;
    font-weight: 600;
    color: var(--ed-primary);
    text-decoration: none;
    transition: all 0.2s ease;
    border-left: 3px solid transparent;
}

.ed-mobile-menu > li > a:hover {
    background-color: var(--ed-light);
    color: var(--ed-primary-light);
    border-left-color: var(--ed-primary-light);
}

.ed-mobile-menu > li.current-menu-item > a {
    background-color: var(--ed-light);
    color: var(--ed-primary);
    border-left-color: var(--ed-secondary);
}

/* Botón toggle para submenús móviles */
.ed-submenu-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.75rem;
    height: 2.75rem;
    background: var(--ed-light);
    border: none;
    border-radius: 0.625rem;
    cursor: pointer;
    transition: all 0.2s ease;
    position: absolute;
    right: 1rem;
    top: 50%;
    transform: translateY(-50%);
}

.ed-submenu-toggle:hover {
    background-color: var(--ed-primary-light);
}

.ed-submenu-toggle:hover svg {
    color: #ffffff;
}

.ed-submenu-toggle svg {
    width: 1.125rem;
    height: 1.125rem;
    color: var(--ed-primary);
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), color 0.2s ease;
}

.ed-submenu-toggle.is-open {
    background-color: var(--ed-primary);
}

.ed-submenu-toggle.is-open svg {
    transform: rotate(180deg);
    color: #ffffff;
}

/* Submenú móvil */
.ed-mobile-menu .sub-menu {
    list-style: none;
    margin: 0;
    padding: 0;
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    background-color: rgba(33, 58, 104, 0.03);
}

.ed-mobile-menu .sub-menu.is-open {
    max-height: 500px;
    padding: 0.5rem 0;
}

.ed-mobile-menu .sub-menu li a {
    display: flex;
    align-items: center;
    padding: 0.875rem 1.5rem 0.875rem 2.25rem;
    font-size: 0.9375rem;
    font-weight: 500;
    color: var(--ed-primary);
    text-decoration: none;
    border-left: 3px solid transparent;
    margin-left: 1rem;
    transition: all 0.2s ease;
}

.ed-mobile-menu .sub-menu li a::before {
    content: '';
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background-color: var(--ed-primary-light);
    margin-right: 0.75rem;
    flex-shrink: 0;
    opacity: 0.5;
    transition: opacity 0.2s ease;
}

.ed-mobile-menu .sub-menu li a:hover::before,
.ed-mobile-menu .sub-menu li.current-menu-item a::before {
    opacity: 1;
}

.ed-mobile-menu .sub-menu li a:hover {
    background-color: rgba(47, 111, 182, 0.08);
    border-left-color: var(--ed-primary-light);
    color: var(--ed-primary-light);
}

.ed-mobile-menu .sub-menu li.current-menu-item a {
    background-color: var(--ed-light);
    border-left-color: var(--ed-secondary);
    color: var(--ed-primary);
}

/* CTA en menú móvil */
.ed-mobile-cta {
    padding: 1.25rem 1.5rem;
    border-top: 1px solid var(--ed-light);
    margin-top: 0.75rem;
    background-color: rgba(245, 247, 250, 0.5);
}

/* Navegación antigua (compatibilidad) */
.ed-nav-link {
    display: inline-flex;
    align-items: center;
    padding: 0.5rem 1rem;
    font-weight: 500;
    color: var(--ed-primary);
    border-radius: 0.375rem;
    transition: all var(--transition-fast);
}

.ed-nav-link:hover,
.ed-nav-link.active {
    background-color: var(--ed-light);
    color: var(--ed-primary-light);
}

/* ============================================
   9.2 BREADCRUMB
   ============================================ */

.ed-breadcrumb {
    position: relative;
    padding: 0.875rem 0;
    background-color: var(--ed-light);
}

@media (min-width: 1024px) {
    .ed-breadcrumb {
        padding: 1rem 0;
    }
}

/* Separador Bandera de Colombia - parte inferior del Breadcrumb (degradado como el footer) */
.ed-breadcrumb::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(
        to right,
        #FCD116 0%,
        #FCD116 45%,
        #003893 55%,
        #003893 70%,
        #CE1126 80%,
        #CE1126 100%
    );
}

.ed-breadcrumb-container {
    width: var(--ed-container-width);
    margin-left: var(--ed-container-margin);
    margin-right: var(--ed-container-margin);
}

.ed-breadcrumb-list {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.25rem;
    list-style: none;
    margin: 0;
    padding: 0;
}

@media (min-width: 1024px) {
    .ed-breadcrumb-list {
        gap: 0.5rem;
    }
}

.ed-breadcrumb-item {
    display: inline-flex;
    align-items: center;
}

.ed-breadcrumb-link {
    display: inline-flex;
    align-items: center;
    font-size: 0.9286rem; /* 13px móvil */
    font-weight: 500;
    color: #475569;
    text-decoration: none;
    transition: color 0.15s ease;
}

@media (min-width: 1024px) {
    .ed-breadcrumb-link {
        font-size: 1rem; /* 14px */
    }
}

.ed-breadcrumb-link:hover {
    color: var(--ed-primary-light);
}

.ed-breadcrumb-link svg {
    width: 1.5rem;
    height: 1.5rem;
    margin-right: 0.5rem;
    flex-shrink: 0;
}

@media (min-width: 1024px) {
    .ed-breadcrumb-link svg {
        width: 1.75rem;
        height: 1.75rem;
        margin-right: 0.625rem;
    }
}

.ed-breadcrumb-current {
    display: inline-flex;
    align-items: center;
    font-size: 0.9286rem; /* 13px móvil */
    font-weight: 500;
    color: #94a3b8;
}

@media (min-width: 1024px) {
    .ed-breadcrumb-current {
        font-size: 1rem; /* 14px */
    }
}

.ed-breadcrumb-current svg {
    width: 1.25rem;
    height: 1.25rem;
    margin-right: 0.375rem;
    flex-shrink: 0;
}

@media (min-width: 1024px) {
    .ed-breadcrumb-current svg {
        width: 1.5rem;
        height: 1.5rem;
        margin-right: 0.5rem;
    }
}

.ed-breadcrumb-separator {
    display: flex;
    align-items: center;
    margin: 0 0.5rem;
    color: #cbd5e1;
}

.ed-breadcrumb-separator svg {
    width: 1rem;
    height: 1rem;
}

/* ============================================
   9.3 CONTENIDO PRINCIPAL - Espaciado y Centrado
   ============================================ */

/* Contenedor principal después del breadcrumb */
#brx-content,
.brx-content,
main#brx-content {
    padding-top: 1.5rem;
}

@media (min-width: 1024px) {
    #brx-content,
    .brx-content,
    main#brx-content {
        padding-top: 2rem;
    }
}

/* En Home: sin padding-top para que el slider ocupe desde arriba */
body.home #brx-content,
body.home .brx-content,
body.home main#brx-content,
body.front-page #brx-content,
body.front-page .brx-content,
body.front-page main#brx-content {
    padding-top: 0 !important;
}

/* CENTRADO: Contenedores de Bricks dentro del contenido */
#brx-content > .brxe-section > .brxe-container,
#brx-content .brxe-container,
main#brx-content .brxe-container {
    width: var(--ed-container-width);
    max-width: var(--ed-max-width);
    margin-left: auto;
    margin-right: auto;
}

/* CENTRADO: Elementos de post (título, meta, contenido) */
.brxe-post-title,
.brxe-post-meta,
.brxe-post-content {
    width: var(--ed-container-width);
    max-width: var(--ed-max-width);
    margin-left: auto;
    margin-right: auto;
}

/* Títulos de página/post */
.brxe-post-title,
.brxe-heading:first-child,
h1.bricks-heading {
    margin-top: 0;
    margin-bottom: 2rem !important;
}

@media (min-width: 1024px) {
    .brxe-post-title,
    .brxe-heading:first-child,
    h1.bricks-heading {
        margin-bottom: 2.5rem !important;
    }
}

/* Meta del post (fecha, autor, comentarios) - Ocultar en entradas */
.brxe-post-meta {
    display: none;
}

/* Reducir espacio entre secciones de Bricks */
.brxe-section {
    padding-top: 2rem;
    padding-bottom: 2rem;
}

@media (min-width: 1024px) {
    .brxe-section {
        padding-top: 3rem;
        padding-bottom: 3rem;
    }
}

/* Primer elemento después del título - reducir margen superior */
.brxe-post-title + *,
h1 + .brxe-block,
h1 + .brxe-div,
h1 + .brxe-container {
    margin-top: 0;
}

/* ============================================
   10. FOOTER
   ============================================ */

.ed-footer {
    background-color: var(--ed-primary);
    color: #ffffff;
}

.ed-footer a {
    color: rgba(255, 255, 255, 0.8);
}

.ed-footer a:hover {
    color: var(--ed-secondary);
}

.ed-footer-title {
    color: #ffffff;
    font-weight: 700;
    margin-bottom: 1rem;
}

/* ============================================
   11. FORMULARIOS
   ============================================ */

.ed-input {
    width: 100%;
    padding: 0.75rem 1rem;
    font-size: 1rem;
    line-height: 1.5;
    color: var(--ed-dark);
    background-color: #ffffff;
    border: 1px solid var(--ed-gray-300, #cbd5e1);
    border-radius: 0.5rem;
    transition: all var(--transition-fast);
}

.ed-input:focus {
    outline: none;
    border-color: var(--ed-primary);
    box-shadow: 0 0 0 3px rgba(33, 58, 104, 0.15);
}

.ed-input::placeholder {
    color: var(--ed-gray-400, #94a3b8);
}

.ed-label {
    display: block;
    margin-bottom: 0.5rem;
    font-weight: 600;
    color: var(--ed-primary);
}

/* ============================================
   12. UTILIDADES ADICIONALES
   ============================================ */

/* Gradiente de marca */
.ed-gradient-primary {
    background: linear-gradient(135deg, var(--ed-primary) 0%, var(--ed-primary-light) 100%);
}

.ed-gradient-hero {
    background: linear-gradient(135deg, var(--ed-primary-dark) 0%, var(--ed-primary) 50%, var(--ed-primary-light) 100%);
}

/* Overlay oscuro para imágenes */
.ed-overlay {
    position: relative;
}

.ed-overlay::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, rgba(33, 58, 104, 0.7), rgba(33, 58, 104, 0.9));
    z-index: 1;
}

.ed-overlay > * {
    position: relative;
    z-index: 2;
}

/* Texto con gradiente */
.ed-text-gradient {
    background: linear-gradient(135deg, var(--ed-primary) 0%, var(--ed-primary-light) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

/* Animación de entrada */
@keyframes ed-fade-in-up {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.ed-animate-fade-in-up {
    animation: ed-fade-in-up 0.6s ease-out forwards;
}

/* Efecto de brillo en hover */
.ed-shine {
    position: relative;
    overflow: hidden;
}

.ed-shine::after {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(
        90deg,
        transparent,
        rgba(255, 255, 255, 0.2),
        transparent
    );
    transition: left 0.5s ease;
}

.ed-shine:hover::after {
    left: 100%;
}

/* ============================================
   13. ACCESIBILIDAD
   ============================================ */

/* Skip link */
.ed-skip-link {
    position: absolute;
    top: -100%;
    left: 0;
    background-color: var(--ed-primary);
    color: #ffffff;
    padding: 1rem 1.5rem;
    z-index: 9999;
    transition: top var(--transition-fast);
}

.ed-skip-link:focus {
    top: 0;
}

/* Reducir movimiento si el usuario lo prefiere */
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}

/* Alto contraste */
@media (prefers-contrast: high) {
    .ed-btn-primary {
        border: 2px solid #000000;
    }

    .ed-card {
        border: 2px solid var(--ed-primary);
    }
}

/* ============================================
   14. PRINT STYLES
   ============================================ */

@media print {
    .ed-govco-bar,
    .ed-header,
    .ed-footer,
    .ed-btn {
        display: none !important;
    }

    body {
        font-size: 12pt;
        line-height: 1.5;
    }

    a[href]::after {
        content: ' (' attr(href) ')';
        font-size: 0.8em;
        color: #666;
    }
}

/* ============================================
   15. FOOTER PRINCIPAL
   ============================================ */

.ed-footer {
    background-color: var(--ed-primary);
    color: #ffffff;
    position: relative;
    overflow: hidden;
}

/* Separador Bandera de Colombia */
.ed-footer-separator {
    position: relative;
    height: 10px;
    background: linear-gradient(
        to right,
        #FCD116 0%,
        #FCD116 45%,
        #003893 55%,
        #003893 70%,
        #CE1126 80%,
        #CE1126 100%
    );
}

/* Patrón SVG de fondo - Circuitos/Tecnología */
.ed-footer-pattern {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0.03;
    pointer-events: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100'%3E%3Cg fill='%23ffffff' fill-opacity='1'%3E%3Cpath d='M50 50 L50 0 M50 50 L100 50 M50 50 L50 100 M50 50 L0 50' stroke='%23ffffff' stroke-width='0.5' fill='none'/%3E%3Ccircle cx='50' cy='50' r='3'/%3E%3Ccircle cx='50' cy='0' r='2'/%3E%3Ccircle cx='100' cy='50' r='2'/%3E%3Ccircle cx='50' cy='100' r='2'/%3E%3Ccircle cx='0' cy='50' r='2'/%3E%3Ccircle cx='25' cy='25' r='1.5'/%3E%3Ccircle cx='75' cy='25' r='1.5'/%3E%3Ccircle cx='25' cy='75' r='1.5'/%3E%3Ccircle cx='75' cy='75' r='1.5'/%3E%3Cpath d='M25 25 L50 50 M75 25 L50 50 M25 75 L50 50 M75 75 L50 50' stroke='%23ffffff' stroke-width='0.3' fill='none'/%3E%3C/g%3E%3C/svg%3E");
}

/* Decoración de esquina inferior derecha */
.ed-footer-corner-decoration {
    position: absolute;
    bottom: 0;
    right: 0;
    width: 300px;
    height: 300px;
    opacity: 0.02;
    pointer-events: none;
    background: radial-gradient(
        circle at bottom right,
        var(--ed-secondary) 0%,
        transparent 70%
    );
}

/* Contenedor del contenido (sobre el patrón) */
.ed-footer-content {
    position: relative;
    z-index: 1;
}

/* Contenedor principal del footer */
.ed-footer-main {
    width: var(--ed-container-width);
    margin-left: var(--ed-container-margin);
    margin-right: var(--ed-container-margin);
    padding-top: 3rem;
    padding-bottom: 3rem;
}

@media (min-width: 1024px) {
    .ed-footer-main {
        padding-top: 4rem;
        padding-bottom: 4rem;
    }
}

/* Grid del footer */
.ed-footer-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2rem;
}

@media (min-width: 768px) {
    .ed-footer-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 2.5rem;
    }
}

@media (min-width: 1024px) {
    .ed-footer-grid {
        grid-template-columns: 1.2fr 1fr 1fr 1.2fr;
        gap: 3rem;
    }
}

/* Logo del footer */
.ed-footer-logo {
    display: inline-block;
    margin-bottom: 1.5rem;
}

.ed-footer-logo img {
    height: 5rem;
    width: auto;
    filter: brightness(0) invert(1);
}

/* Descripción del footer */
.ed-footer-description {
    color: rgba(255, 255, 255, 0.75);
    font-size: 1rem; /* 14px */
    line-height: 1.7;
    margin-bottom: 1rem;
}

.ed-footer-nit {
    color: rgba(255, 255, 255, 0.65);
    font-size: 0.9286rem; /* 13px */
}

.ed-footer-nit strong {
    color: rgba(255, 255, 255, 0.85);
}

/* Títulos de columna */
.ed-footer-title {
    color: #ffffff;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 1rem; /* 16px */
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 1.25rem;
}

/* Lista de enlaces */
.ed-footer-links {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.625rem;
}

.ed-footer-link {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    color: rgba(255, 255, 255, 0.75);
    font-size: 1rem; /* 16px */
    text-decoration: none;
    transition: color 0.15s ease;
}

.ed-footer-link:hover {
    color: var(--ed-secondary);
}

.ed-footer-link svg {
    width: 0.875rem;
    height: 0.875rem;
    color: rgba(253, 198, 24, 0.7);
    flex-shrink: 0;
}

/* Sección de contacto */
.ed-footer-contact-section {
    margin-bottom: 1.25rem;
}

.ed-footer-contact-label {
    color: var(--ed-secondary);
    font-size: 0.8125rem; /* 13px */
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 0.5rem;
}

.ed-footer-address {
    font-style: normal;
    color: rgba(255, 255, 255, 0.75);
    font-size: 1rem; /* 16px */
    line-height: 1.6;
}

/* Enlaces de contacto (tel, email) */
.ed-footer-contact-link {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    color: rgba(255, 255, 255, 0.75);
    font-size: 1rem; /* 16px */
    text-decoration: none;
    transition: color 0.15s ease;
    margin-bottom: 0.625rem;
}

.ed-footer-contact-link:hover {
    color: var(--ed-secondary);
}

.ed-footer-contact-link svg {
    width: 1rem;
    height: 1rem;
    color: var(--ed-secondary);
    flex-shrink: 0;
}

/* Horario */
.ed-footer-schedule {
    color: rgba(255, 255, 255, 0.6);
    font-size: 0.8125rem;
}

.ed-footer-schedule-title {
    color: rgba(255, 255, 255, 0.8);
    font-weight: 600;
    margin-bottom: 0.25rem;
}

/* Redes sociales */
.ed-footer-social {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-top: 1.5rem;
}

.ed-footer-social-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    background-color: rgba(255, 255, 255, 0.1);
    border-radius: 0.5rem;
    color: #ffffff;
    transition: all 0.2s ease;
}

.ed-footer-social-link:hover {
    background-color: var(--ed-secondary);
    color: var(--ed-primary);
    transform: translateY(-2px);
}

.ed-footer-social-link svg {
    width: 1.25rem;
    height: 1.25rem;
}

/* Barra inferior */
.ed-footer-bottom {
    border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.ed-footer-bottom-container {
    width: var(--ed-container-width);
    margin-left: var(--ed-container-margin);
    margin-right: var(--ed-container-margin);
    padding-top: 1.5rem;
    padding-bottom: 1.5rem;
}

.ed-footer-bottom-inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}

@media (min-width: 768px) {
    .ed-footer-bottom-inner {
        flex-direction: row;
        justify-content: space-between;
    }
}

/* Copyright */
.ed-footer-copyright {
    color: rgba(255, 255, 255, 0.6);
    font-size: 0.9286rem; /* 13px */
    text-align: center;
}

@media (min-width: 768px) {
    .ed-footer-copyright {
        text-align: left;
    }
}

/* Enlaces legales */
.ed-footer-legal {
    display: flex;
    align-items: center;
    gap: 1rem;
    font-size: 0.9286rem; /* 13px */
}

.ed-footer-legal-link {
    color: rgba(255, 255, 255, 0.6);
    text-decoration: none;
    transition: color 0.15s ease;
}

.ed-footer-legal-link:hover {
    color: var(--ed-secondary);
}

.ed-footer-legal-separator {
    color: rgba(255, 255, 255, 0.3);
}

/* Menú legal dinámico (wp_nav_menu) */
.ed-footer-legal-menu {
    display: flex;
    align-items: center;
    gap: 1rem;
    list-style: none;
    margin: 0;
    padding: 0;
}

.ed-footer-legal-menu li {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.ed-footer-legal-menu li:not(:last-child)::after {
    content: '|';
    color: rgba(255, 255, 255, 0.3);
}

.ed-footer-legal-menu a {
    color: rgba(255, 255, 255, 0.6);
    text-decoration: none;
    transition: color 0.15s ease;
}

.ed-footer-legal-menu a:hover {
    color: var(--ed-secondary);
}

/* Barra GOV.CO del footer */
.ed-footer-govco {
    background-color: #3366CC;
    padding: 0.75rem 0;
}

.ed-footer-govco-container {
    width: var(--ed-container-width);
    margin-left: var(--ed-container-margin);
    margin-right: var(--ed-container-margin);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
}

@media (min-width: 640px) {
    .ed-footer-govco-container {
        flex-direction: row;
        justify-content: center;
        gap: 1rem;
    }
}

.ed-footer-govco-logo {
    height: 1.5rem;
}

.ed-footer-govco-logo svg,
.ed-footer-govco-logo img {
    height: 100%;
    width: auto;
}

.ed-footer-govco-text {
    color: rgba(255, 255, 255, 0.8);
    font-size: 0.9286rem; /* 13px */
    text-align: center;
}

.ed-footer-govco-link {
    color: #ffffff;
    font-size: 0.9286rem; /* 13px */
    text-decoration: none;
    transition: text-decoration 0.15s ease;
}

.ed-footer-govco-link:hover {
    text-decoration: underline;
}

.ed-footer-govco-separator {
    color: rgba(255, 255, 255, 0.4);
    display: none;
}

@media (min-width: 640px) {
    .ed-footer-govco-separator {
        display: inline;
    }
}

/* ==========================================================================
   WIDGET HORA LEGAL COLOMBIA - Estilo INM Oficial
   ========================================================================== */

.ed-hora-legal-widget {
    margin-top: 1.25rem;
}

.ed-hora-legal-box {
    display: flex;
    align-items: center;
    background: #004884;
    height: 50px;
    width: 100%;
    text-decoration: none;
    color: #ffffff;
    font-family: 'Montserrat', sans-serif;
    padding: 0;
    overflow: hidden;
}

.ed-hora-legal-box:hover {
    opacity: 0.95;
}

/* Hora - ahora a la izquierda */
.ed-hora-legal-time {
    width: 34%;
    font-size: 27px;
    font-weight: 700;
    line-height: 50px;
    color: #ffffff;
    text-align: center;
    letter-spacing: 1px;
    font-family: 'Montserrat', sans-serif;
}

/* Logo del INM - ahora en el centro */
.ed-hora-legal-logo-wrap {
    width: 33%;
    text-align: center;
    padding: 5px;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
}

.ed-hora-legal-logo {
    height: 34px;
    width: auto;
    max-width: 100%;
    object-fit: contain;
}

/* Texto HORA LEGAL */
.ed-hora-legal-text {
    width: 33%;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    padding: 0 6px;
}

.ed-hora-legal-text p {
    color: #ffffff;
    text-align: left;
    font-size: 8px;
    line-height: 1.4;
    margin: 0;
    font-weight: 600;
    text-transform: uppercase;
}

/* Responsive para móviles */
@media (max-width: 480px) {
    .ed-hora-legal-box {
        height: auto;
        flex-wrap: wrap;
        padding: 8px;
    }

    .ed-hora-legal-logo-wrap {
        width: 100%;
        padding: 5px;
    }

    .ed-hora-legal-time {
        width: 50%;
        font-size: 22px;
    }

    .ed-hora-legal-text {
        width: 50%;
    }

    .ed-hora-legal-text p {
        font-size: 9px;
    }
}

/* ==========================================================================
   SECCIONES INFERIORES DEL CONTENIDO (Single Posts)
   ========================================================================== */

/* Separador entre contenido y secciones inferiores */
#brx-content .brxe-post-content {
    margin-bottom: 2rem;
}

/* Ocultar sección de autor y botones de compartir */
.brxe-post-author,
.brxe-post-sharing {
    display: none !important;
}

/* Eliminar divisores del wrapper de post meta */
.bricks-post-meta-wrapper,
#brx-content hr {
    border: none !important;
    margin: 0;
    padding: 0;
}

.brxe-post-sharing a,
.post-sharing a,
.share-buttons a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    color: #ffffff;
    text-decoration: none;
    transition: transform 0.2s ease, opacity 0.2s ease;
}

.brxe-post-sharing a:hover,
.post-sharing a:hover,
.share-buttons a:hover {
    transform: scale(1.1);
    opacity: 0.9;
}

/* Colores específicos para cada red social */
.brxe-post-sharing a[href*="facebook"],
.share-buttons .facebook {
    background-color: #1877f2;
}

.brxe-post-sharing a[href*="twitter"],
.brxe-post-sharing a[href*="x.com"],
.share-buttons .twitter {
    background-color: #000000;
}

.brxe-post-sharing a[href*="linkedin"],
.share-buttons .linkedin {
    background-color: #0a66c2;
}

.brxe-post-sharing a[href*="pinterest"],
.share-buttons .pinterest {
    background-color: #e60023;
}

.brxe-post-sharing a[href*="mailto"],
.share-buttons .email {
    background-color: #64748b;
}

.brxe-post-sharing a[href*="whatsapp"],
.share-buttons .whatsapp {
    background-color: #25d366;
}

/* ==========================================================================
   SECCIÓN DE ENTRADAS RELACIONADAS - Estilo Profesional
   ========================================================================== */

.brxe-related-posts,
.brxe-post-related-posts,
.related-posts {
    margin: 4rem 0 3rem 0;
    padding: 0;
    background: transparent;
}

/* Título de la sección */
.brxe-related-posts > h3:first-child,
.brxe-post-related-posts > h3:first-child,
.brxe-post-related-posts > .heading:first-child {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--ed-primary);
    margin-bottom: 2rem;
    padding-bottom: 1rem;
    position: relative;
    text-align: center;
}

.brxe-related-posts > h3:first-child::after,
.brxe-post-related-posts > h3:first-child::after,
.brxe-post-related-posts > .heading:first-child::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 60px;
    height: 3px;
    background: linear-gradient(90deg, var(--ed-primary), var(--ed-secondary));
    border-radius: 2px;
}

/* Grid de posts relacionados */
.brxe-related-posts ul.related-posts,
.brxe-related-posts .posts-wrapper,
.brxe-post-related-posts .bricks-layout-wrapper,
.related-posts-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
    list-style: none;
    padding: 0;
    margin: 0;
}

@media (max-width: 1024px) {
    .brxe-related-posts ul.related-posts,
    .brxe-related-posts .posts-wrapper,
    .brxe-post-related-posts .bricks-layout-wrapper,
    .related-posts-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 1.5rem;
    }
}

@media (max-width: 640px) {
    .brxe-related-posts ul.related-posts,
    .brxe-related-posts .posts-wrapper,
    .brxe-post-related-posts .bricks-layout-wrapper,
    .related-posts-grid {
        grid-template-columns: 1fr;
        gap: 1.25rem;
    }
}

/* Cards de posts relacionados */
.brxe-related-posts .repeater-item,
.brxe-related-posts article,
.brxe-post-related-posts .bricks-layout-item,
.related-post-card {
    background: #ffffff;
    padding: 1.5rem;
    border-radius: 0.75rem;
    list-style: none;
    border: 1px solid rgba(33, 58, 104, 0.08);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
    transition: all 0.3s ease;
    position: relative;
}

.brxe-related-posts .repeater-item:hover,
.brxe-related-posts article:hover,
.brxe-post-related-posts .bricks-layout-item:hover,
.related-post-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 24px rgba(33, 58, 104, 0.12);
    border-color: var(--ed-primary-light);
}

/* Línea decorativa superior en hover */
.brxe-related-posts .repeater-item::before,
.brxe-related-posts article::before,
.brxe-post-related-posts .bricks-layout-item::before,
.related-post-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--ed-primary), var(--ed-secondary));
    border-radius: 0.75rem 0.75rem 0 0;
    opacity: 0;
    transition: opacity 0.3s ease;
}

.brxe-related-posts .repeater-item:hover::before,
.brxe-related-posts article:hover::before,
.brxe-post-related-posts .bricks-layout-item:hover::before,
.related-post-card:hover::before {
    opacity: 1;
}

.brxe-related-posts .repeater-item a,
.brxe-related-posts article a,
.brxe-post-related-posts .bricks-layout-item a {
    text-decoration: none;
    color: inherit;
}

/* Títulos de entradas relacionadas */
.brxe-related-posts .repeater-item h3,
.brxe-related-posts article h3,
.brxe-related-posts .post-title,
.brxe-post-related-posts .post-title,
.related-post-card h4 {
    font-size: 1rem;
    font-weight: 600;
    color: var(--ed-primary);
    line-height: 1.5;
    margin: 0 0 0.75rem 0;
    padding: 0;
    transition: color 0.2s ease;
}

.brxe-related-posts .repeater-item:hover h3,
.brxe-related-posts .repeater-item:hover h3 a,
.brxe-related-posts article:hover h3,
.brxe-related-posts .post-title:hover,
.brxe-post-related-posts .post-title:hover,
.related-post-card:hover h4 {
    color: var(--ed-primary-light);
}

/* Quitar subrayado naranja anterior */
.brxe-related-posts .repeater-item h3::after {
    display: none;
}

/* Fechas de entradas relacionadas */
.brxe-related-posts .repeater-item .post-content > div.dynamic,
.brxe-related-posts .post-date,
.brxe-post-related-posts .post-meta,
.related-post-card .date {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.8125rem;
    font-weight: 500;
    color: #64748b;
    margin-top: 0;
}

.brxe-related-posts .repeater-item .post-content > div.dynamic::before,
.brxe-related-posts .post-date::before,
.related-post-card .date::before {
    content: '';
    display: inline-block;
    width: 4px;
    height: 4px;
    background: var(--ed-secondary);
    border-radius: 50%;
}

/* ==========================================================================
   NAVEGACIÓN DE PUBLICACIONES (Anterior/Siguiente)
   ========================================================================== */

.brxe-post-navigation {
    margin-top: 2rem;
    margin-bottom: 4rem;
    padding: 1.5rem 0;
    border-top: 1px solid #e2e8f0;
}

/* ==========================================================================
   SEPARACIÓN ENTRE CONTENIDO Y FOOTER
   ========================================================================== */

/* Espaciado antes del footer */
#brx-content {
    padding-bottom: 3rem;
}

.ed-footer {
    margin-top: 2rem;
}

/* Separador visual antes del footer */
.ed-footer::before {
    content: '';
    display: block;
    height: 4px;
    background: linear-gradient(90deg,
        var(--ed-primary, #1e3a5f) 0%,
        var(--ed-accent, #f97316) 50%,
        var(--ed-primary, #1e3a5f) 100%
    );
}

/* ==========================================================================
   FORMULARIO DE COMENTARIOS
   ========================================================================== */

/* Ocultar comentarios en todo el sitio (entidad oficial) */
.brxe-post-comments,
#comments,
.comments-area {
    display: none !important;
}

/*
/* Contenedor principal de comentarios (deshabilitado)
.brxe-post-comments,
#comments {
    max-width: 720px;
    margin: 3rem auto;
    padding: 2.5rem;
    background: #f8fafc;
    border-radius: 1rem;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
}

/* Título del formulario */
.brxe-post-comments h2,
#comments .comment-reply-title,
#reply-title {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--ed-primary, #1e3a5f);
    text-align: center;
    margin-bottom: 1.5rem;
    position: relative;
    padding-bottom: 1rem;
}

.brxe-post-comments h2::after,
#comments .comment-reply-title::after,
#reply-title::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 60px;
    height: 3px;
    background: var(--ed-secondary, #fdc618);
    border-radius: 2px;
}

/* Texto de información */
.brxe-post-comments .logged-in-as,
.brxe-post-comments .comment-notes,
#comments .logged-in-as,
#comments .comment-notes {
    text-align: center;
    font-size: 0.875rem;
    color: #64748b;
    margin-bottom: 1.5rem;
}

.brxe-post-comments .logged-in-as a,
#comments .logged-in-as a {
    color: var(--ed-primary, #1e3a5f);
    font-weight: 500;
}

.brxe-post-comments .logged-in-as a:hover,
#comments .logged-in-as a:hover {
    color: var(--ed-secondary, #fdc618);
}

/* Formulario */
.brxe-post-comments form,
#commentform {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

/* Labels */
.brxe-post-comments label,
#commentform label {
    display: block;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--ed-primary, #1e3a5f);
    margin-bottom: 0.5rem;
}

/* Campos de texto */
.brxe-post-comments input[type="text"],
.brxe-post-comments input[type="email"],
.brxe-post-comments input[type="url"],
.brxe-post-comments textarea,
#commentform input[type="text"],
#commentform input[type="email"],
#commentform input[type="url"],
#commentform textarea {
    width: 100%;
    padding: 0.875rem 1rem;
    font-family: var(--font-body, 'Nunito Sans', sans-serif);
    font-size: 1rem;
    color: var(--ed-dark, #1a1a2e);
    background: #ffffff;
    border: 2px solid #e2e8f0;
    border-radius: 0.5rem;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.brxe-post-comments input[type="text"]:focus,
.brxe-post-comments input[type="email"]:focus,
.brxe-post-comments input[type="url"]:focus,
.brxe-post-comments textarea:focus,
#commentform input[type="text"]:focus,
#commentform input[type="email"]:focus,
#commentform input[type="url"]:focus,
#commentform textarea:focus {
    outline: none;
    border-color: var(--ed-primary, #1e3a5f);
    box-shadow: 0 0 0 3px rgba(33, 58, 104, 0.1);
}

/* Textarea específico */
.brxe-post-comments textarea,
#commentform textarea {
    min-height: 150px;
    resize: vertical;
}

/* Checkbox de cookies */
.brxe-post-comments .comment-form-cookies-consent,
#commentform .comment-form-cookies-consent {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    font-size: 0.875rem;
    color: #64748b;
}

.brxe-post-comments .comment-form-cookies-consent input[type="checkbox"],
#commentform .comment-form-cookies-consent input[type="checkbox"] {
    width: 18px;
    height: 18px;
    margin-top: 2px;
    accent-color: var(--ed-primary, #1e3a5f);
}

/* Botón de envío */
.brxe-post-comments input[type="submit"],
.brxe-post-comments .submit,
#commentform input[type="submit"],
#commentform .submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 1rem 2rem;
    font-family: var(--font-body, 'Nunito Sans', sans-serif);
    font-size: 1rem;
    font-weight: 600;
    color: var(--ed-primary, #1e3a5f);
    background: var(--ed-secondary, #fdc618);
    border: none;
    border-radius: 0.5rem;
    cursor: pointer;
    transition: all 0.2s ease;
    align-self: center;
    min-width: 200px;
}

.brxe-post-comments input[type="submit"]:hover,
.brxe-post-comments .submit:hover,
#commentform input[type="submit"]:hover,
#commentform .submit:hover {
    background: var(--ed-secondary-light, #ffe066);
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(253, 198, 24, 0.4);
}

/* Responsive */
@media (max-width: 768px) {
    .brxe-post-comments,
    #comments {
        margin: 2rem 1rem;
        padding: 1.5rem;
    }

    .brxe-post-comments h2,
    #comments .comment-reply-title {
        font-size: 1.25rem;
    }
}

/* ============================================
   18. ED HERO SLIDER
   ============================================ */

.ed-hero-slider {
    position: relative;
    width: 100%;
    height: 100vh;
    min-height: 600px;
    overflow: hidden;
}

/* En home, el slider debe subir para cubrir el área del header transparente */
body.home .ed-hero-slider,
body.front-page .ed-hero-slider {
    margin-top: calc(-1 * (var(--ed-govco-height, 40px) + var(--ed-header-height, 80px)));
    height: 100vh;
}

body.home.admin-bar .ed-hero-slider,
body.front-page.admin-bar .ed-hero-slider {
    margin-top: calc(-1 * (32px + var(--ed-govco-height, 40px) + var(--ed-header-height, 80px)));
    height: 100vh;
}

@media (min-width: 1024px) {
    body.home .ed-hero-slider,
    body.front-page .ed-hero-slider {
        margin-top: calc(-1 * (var(--ed-govco-height, 40px) + 88px));
        height: 100vh;
    }

    body.home.admin-bar .ed-hero-slider,
    body.front-page.admin-bar .ed-hero-slider {
        margin-top: calc(-1 * (32px + var(--ed-govco-height, 40px) + 88px));
        height: 100vh;
    }
}

/* Modo Fullscreen - Ocupa todo el viewport */
.ed-hero-slider--fullscreen {
    height: 100vh;
    min-height: 100vh;
}

/* ============================================
   18.1 INTEGRACIÓN REVSLIDER
   ============================================ */

/* Contenedor del Hero con RevSlider */
.ed-hero-revslider {
    position: relative;
    width: 100%;
}

.ed-hero-revslider--fullscreen {
    height: 100vh;
    min-height: 100vh;
}

/* RevSlider dentro del hero debe ocupar todo el espacio */
.ed-hero-revslider rs-module-wrap,
.ed-hero-revslider .rs-module-wrap,
.ed-hero-revslider sr7-module {
    height: 100% !important;
    min-height: 100vh !important;
}

.ed-hero-revslider rs-module,
.ed-hero-revslider .rs-module {
    height: 100% !important;
}

/* En home, RevSlider debe subir para cubrir el área del header transparente */
body.home .ed-hero-revslider,
body.front-page .ed-hero-revslider {
    margin-top: calc(-1 * (var(--ed-govco-height, 40px) + var(--ed-header-height, 80px)));
}

body.home.admin-bar .ed-hero-revslider,
body.front-page.admin-bar .ed-hero-revslider {
    margin-top: calc(-1 * (32px + var(--ed-govco-height, 40px) + var(--ed-header-height, 80px)));
}

@media (min-width: 1024px) {
    body.home .ed-hero-revslider,
    body.front-page .ed-hero-revslider {
        margin-top: calc(-1 * (var(--ed-govco-height, 40px) + 88px));
    }

    body.home.admin-bar .ed-hero-revslider,
    body.front-page.admin-bar .ed-hero-revslider {
        margin-top: calc(-1 * (32px + var(--ed-govco-height, 40px) + 88px));
    }
}

/* Asegurar que el contenido de RevSlider tenga padding para el header */
.ed-hero-revslider rs-slide,
.ed-hero-revslider sr7-slide {
    padding-top: calc(var(--ed-govco-height, 40px) + var(--ed-header-height, 80px));
}

body.admin-bar .ed-hero-revslider rs-slide,
body.admin-bar .ed-hero-revslider sr7-slide {
    padding-top: calc(32px + var(--ed-govco-height, 40px) + var(--ed-header-height, 80px));
}

@media (min-width: 1024px) {
    .ed-hero-revslider rs-slide,
    .ed-hero-revslider sr7-slide {
        padding-top: calc(var(--ed-govco-height, 40px) + 88px);
    }

    body.admin-bar .ed-hero-revslider rs-slide,
    body.admin-bar .ed-hero-revslider sr7-slide {
        padding-top: calc(32px + var(--ed-govco-height, 40px) + 88px);
    }
}

/* Ocultar preloader de RevSlider si ya cargó */
.ed-hero-revslider rs-loader {
    z-index: 100;
}

/* Ajuste para header transparente en home */
.ed-header-transparent + main .ed-hero-slider--fullscreen,
.ed-header-transparent ~ main .ed-hero-slider--fullscreen,
.ed-header-transparent ~ #brx-content .ed-hero-slider--fullscreen {
    margin-top: calc(-1 * (var(--ed-govco-height, 40px) + var(--ed-header-height, 80px)));
    padding-top: calc(var(--ed-govco-height, 40px) + var(--ed-header-height, 80px));
}

/* ============================================
   OVERRIDE: RevSlider en primera sección
   El slider comienza DESPUÉS de la barra GOV.CO
   El header principal queda transparente SOBRE el slider
   SIN margin negativo - el slider NO sube detrás de nada
   ============================================ */
body.home #brx-content > .brxe-section:first-child:has(sr7-module),
body.home #brx-content > .brxe-section:first-child:has(rs-module-wrap),
body.front-page #brx-content > .brxe-section:first-child:has(sr7-module),
body.front-page #brx-content > .brxe-section:first-child:has(rs-module-wrap),
body.home.admin-bar #brx-content > .brxe-section:first-child:has(sr7-module),
body.home.admin-bar #brx-content > .brxe-section:first-child:has(rs-module-wrap),
body.front-page.admin-bar #brx-content > .brxe-section:first-child:has(sr7-module),
body.front-page.admin-bar #brx-content > .brxe-section:first-child:has(rs-module-wrap) {
    margin-top: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

/* El slider RevSlider: altura = 100% viewport (sin admin-bar) */
body.home #brx-content > .brxe-section:first-child sr7-module,
body.home #brx-content > .brxe-section:first-child sr7-module sr7-adjuster,
body.home #brx-content > .brxe-section:first-child sr7-module sr7-content,
body.home #brx-content > .brxe-section:first-child sr7-module sr7-module-bg,
body.home #brx-content > .brxe-section:first-child rs-module-wrap,
body.front-page #brx-content > .brxe-section:first-child sr7-module,
body.front-page #brx-content > .brxe-section:first-child sr7-module sr7-adjuster,
body.front-page #brx-content > .brxe-section:first-child sr7-module sr7-content,
body.front-page #brx-content > .brxe-section:first-child sr7-module sr7-module-bg,
body.front-page #brx-content > .brxe-section:first-child rs-module-wrap {
    min-height: 100vh !important;
    min-height: 100dvh !important;
    height: 100vh !important;
    height: 100dvh !important;
}

/* El slider RevSlider: altura = viewport - admin-bar (con admin-bar) */
body.home.admin-bar #brx-content > .brxe-section:first-child sr7-module,
body.home.admin-bar #brx-content > .brxe-section:first-child sr7-module sr7-adjuster,
body.home.admin-bar #brx-content > .brxe-section:first-child sr7-module sr7-content,
body.home.admin-bar #brx-content > .brxe-section:first-child sr7-module sr7-module-bg,
body.home.admin-bar #brx-content > .brxe-section:first-child rs-module-wrap,
body.front-page.admin-bar #brx-content > .brxe-section:first-child sr7-module,
body.front-page.admin-bar #brx-content > .brxe-section:first-child sr7-module sr7-adjuster,
body.front-page.admin-bar #brx-content > .brxe-section:first-child sr7-module sr7-content,
body.front-page.admin-bar #brx-content > .brxe-section:first-child sr7-module sr7-module-bg,
body.front-page.admin-bar #brx-content > .brxe-section:first-child rs-module-wrap {
    min-height: calc(100vh - 32px) !important;
    min-height: calc(100dvh - 32px) !important;
    height: calc(100vh - 32px) !important;
    height: calc(100dvh - 32px) !important;
}

@media screen and (max-width: 782px) {
    body.home.admin-bar #brx-content > .brxe-section:first-child sr7-module,
    body.home.admin-bar #brx-content > .brxe-section:first-child sr7-module sr7-adjuster,
    body.home.admin-bar #brx-content > .brxe-section:first-child sr7-module sr7-content,
    body.home.admin-bar #brx-content > .brxe-section:first-child sr7-module sr7-module-bg,
    body.home.admin-bar #brx-content > .brxe-section:first-child rs-module-wrap,
    body.front-page.admin-bar #brx-content > .brxe-section:first-child sr7-module,
    body.front-page.admin-bar #brx-content > .brxe-section:first-child sr7-module sr7-adjuster,
    body.front-page.admin-bar #brx-content > .brxe-section:first-child sr7-module sr7-content,
    body.front-page.admin-bar #brx-content > .brxe-section:first-child sr7-module sr7-module-bg,
    body.front-page.admin-bar #brx-content > .brxe-section:first-child rs-module-wrap {
        min-height: calc(100vh - 46px) !important;
        min-height: calc(100dvh - 46px) !important;
        height: calc(100vh - 46px) !important;
        height: calc(100dvh - 46px) !important;
    }
}

/* Clase helper para secciones que van detrás del header transparente
   Usar en Bricks: añadir clase "ed-behind-header" a la primera sección */
.ed-behind-header {
    margin-top: calc(-1 * (var(--ed-govco-height, 40px) + var(--ed-header-height, 72px))) !important;
    padding-top: calc(var(--ed-govco-height, 40px) + var(--ed-header-height, 72px)) !important;
}

@media (min-width: 1024px) {
    .ed-behind-header {
        margin-top: calc(-1 * (var(--ed-govco-height, 40px) + 88px)) !important;
        padding-top: calc(var(--ed-govco-height, 40px) + 88px) !important;
    }
}

/* Contenido del slide en fullscreen debe tener padding extra */
.ed-hero-slider--fullscreen .ed-slide-container {
    padding-top: calc(var(--ed-govco-height, 40px) + var(--ed-header-height, 80px) + 2rem);
}

.ed-hero-slider .swiper-wrapper {
    height: 100%;
}

/* Slide individual */
.ed-slide {
    position: relative;
    width: 100%;
    height: 100%;
    overflow: hidden;
}

/* Background del slide */
.ed-slide-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    transition: transform 6s ease-out;
}

.ed-slide.swiper-slide-active .ed-slide-bg {
    transform: scale(1.05);
}

/* Overlay oscuro */
.ed-slide-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(
        135deg,
        rgba(30, 58, 95, 0.9) 0%,
        rgba(30, 58, 95, 0.7) 50%,
        rgba(30, 58, 95, 0.5) 100%
    );
    z-index: 1;
}

/* Contenedor del contenido */
.ed-slide-container {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    width: var(--ed-container-width, 90%);
    max-width: var(--ed-max-width, 1200px);
    height: 100%;
    margin: 0 auto;
    /* Padding para evitar que el contenido quede debajo del header transparente */
    padding-top: calc(var(--ed-govco-height, 40px) + var(--ed-header-height, 80px));
}

body.admin-bar .ed-slide-container {
    padding-top: calc(32px + var(--ed-govco-height, 40px) + var(--ed-header-height, 80px));
}

@media (min-width: 1024px) {
    .ed-slide-container {
        padding-top: calc(var(--ed-govco-height, 40px) + 88px);
    }

    body.admin-bar .ed-slide-container {
        padding-top: calc(32px + var(--ed-govco-height, 40px) + 88px);
    }
}
    padding: 2rem 1rem;
}

/* Contenido del slide */
.ed-slide-content {
    max-width: 800px;
    color: #ffffff;
}

.ed-slide-content.ed-align-left {
    text-align: left;
    margin-right: auto;
}

.ed-slide-content.ed-align-center {
    text-align: center;
    margin: 0 auto;
}

.ed-slide-content.ed-align-right {
    text-align: right;
    margin-left: auto;
}

/* Subtítulo */
.ed-slide-subtitle {
    display: inline-block;
    font-size: 0.875rem;
    font-weight: 600;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--ed-secondary, #fdc618);
    margin-bottom: 1rem;
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.6s ease, transform 0.6s ease;
    transition-delay: 0.2s;
}

.swiper-slide-active .ed-slide-subtitle {
    opacity: 1;
    transform: translateY(0);
}

/* Título */
.ed-slide-title {
    font-family: var(--font-heading, 'Montserrat', sans-serif);
    font-size: clamp(2rem, 5vw, 3.5rem);
    font-weight: 700;
    line-height: 1.15;
    color: #ffffff;
    margin: 0 0 1.25rem 0;
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.6s ease, transform 0.6s ease;
    transition-delay: 0.4s;
}

.swiper-slide-active .ed-slide-title {
    opacity: 1;
    transform: translateY(0);
}

/* Descripción */
.ed-slide-description {
    font-size: 1.125rem;
    line-height: 1.7;
    color: rgba(255, 255, 255, 0.9);
    margin: 0 0 2rem 0;
    max-width: 600px;
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.6s ease, transform 0.6s ease;
    transition-delay: 0.6s;
}

.ed-align-center .ed-slide-description {
    margin-left: auto;
    margin-right: auto;
}

.swiper-slide-active .ed-slide-description {
    opacity: 1;
    transform: translateY(0);
}

/* Botones */
.ed-slide-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.6s ease, transform 0.6s ease;
    transition-delay: 0.8s;
}

.ed-align-center .ed-slide-buttons {
    justify-content: center;
}

.ed-align-right .ed-slide-buttons {
    justify-content: flex-end;
}

.swiper-slide-active .ed-slide-buttons {
    opacity: 1;
    transform: translateY(0);
}

.ed-slide-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 1rem 2rem;
    font-size: 1rem;
    font-weight: 600;
    text-decoration: none;
    border-radius: 0.5rem;
    transition: all 0.3s ease;
}

.ed-slide-btn svg {
    transition: transform 0.3s ease;
}

.ed-btn-primary {
    background-color: var(--ed-secondary, #fdc618);
    color: var(--ed-primary, #1e3a5f);
    border: 2px solid var(--ed-secondary, #fdc618);
}

.ed-btn-primary:hover {
    background-color: var(--ed-secondary-light, #ffe066);
    border-color: var(--ed-secondary-light, #ffe066);
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(253, 198, 24, 0.4);
}

.ed-btn-primary:hover svg {
    transform: translateX(4px);
}

.ed-btn-secondary {
    background-color: transparent;
    color: #ffffff;
    border: 2px solid rgba(255, 255, 255, 0.5);
}

.ed-btn-secondary:hover {
    background-color: rgba(255, 255, 255, 0.1);
    border-color: #ffffff;
}

/* Flechas de navegación */
.ed-slider-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 10;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    background-color: rgba(255, 255, 255, 0.15);
    backdrop-filter: blur(8px);
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 50%;
    color: #ffffff;
    cursor: pointer;
    transition: all 0.3s ease;
}

.ed-slider-arrow svg {
    width: 24px;
    height: 24px;
}

.ed-slider-arrow:hover {
    background-color: var(--ed-secondary, #fdc618);
    border-color: var(--ed-secondary, #fdc618);
    color: var(--ed-primary, #1e3a5f);
}

.ed-slider-prev {
    left: 2rem;
}

.ed-slider-next {
    right: 2rem;
}

/* Paginación */
.ed-slider-pagination {
    position: absolute;
    bottom: 2rem;
    left: 50%;
    transform: translateX(-50%);
    z-index: 10;
    display: flex;
    gap: 0.75rem;
}

.ed-slider-pagination .swiper-pagination-bullet {
    width: 12px;
    height: 12px;
    background-color: rgba(255, 255, 255, 0.4);
    border: 2px solid transparent;
    border-radius: 50%;
    opacity: 1;
    transition: all 0.3s ease;
}

.ed-slider-pagination .swiper-pagination-bullet-active {
    background-color: var(--ed-secondary, #fdc618);
    border-color: var(--ed-secondary, #fdc618);
    transform: scale(1.2);
}

/* Paginación tipo fracción */
.ed-slider-pagination.swiper-pagination-fraction {
    font-size: 1.25rem;
    font-weight: 600;
    color: #ffffff;
    gap: 0.25rem;
}

.ed-slider-pagination .swiper-pagination-current {
    color: var(--ed-secondary, #fdc618);
}

/* Paginación tipo barra de progreso */
.ed-slider-pagination.swiper-pagination-progressbar {
    position: absolute;
    bottom: 0;
    left: 0;
    top: auto;
    width: 100%;
    height: 4px;
    background-color: rgba(255, 255, 255, 0.2);
    transform: none;
}

.ed-slider-pagination.swiper-pagination-progressbar .swiper-pagination-progressbar-fill {
    background-color: var(--ed-secondary, #fdc618);
}

/* Responsive */
@media (max-width: 1024px) {
    .ed-slider-arrow {
        width: 48px;
        height: 48px;
    }

    .ed-slider-arrow svg {
        width: 20px;
        height: 20px;
    }

    .ed-slider-prev {
        left: 1rem;
    }

    .ed-slider-next {
        right: 1rem;
    }
}

@media (max-width: 768px) {
    .ed-hero-slider {
        height: 100vh;
        min-height: 600px;
    }

    .ed-slide-container {
        padding: 1.5rem;
        align-items: flex-end;
        padding-bottom: 6rem;
    }

    .ed-slide-content {
        max-width: 100%;
    }

    .ed-slide-subtitle {
        font-size: 0.75rem;
    }

    .ed-slide-title {
        font-size: 1.75rem;
    }

    .ed-slide-description {
        font-size: 1rem;
    }

    .ed-slide-btn {
        padding: 0.875rem 1.5rem;
        font-size: 0.9375rem;
    }

    .ed-slider-arrow {
        display: none;
    }

    .ed-slider-pagination {
        bottom: 1.5rem;
    }
}

/* ============================================
   19. GSAP ANIMATIONS - Clases Utilitarias
   ============================================ */

/**
 * Sistema de animaciones con GSAP + ScrollTrigger
 *
 * Clases base:
 * - ed-animate-fade-up: Aparece desde abajo
 * - ed-animate-fade-down: Aparece desde arriba
 * - ed-animate-fade-left: Aparece desde la izquierda
 * - ed-animate-fade-right: Aparece desde la derecha
 * - ed-animate-scale: Escala desde 0.8
 * - ed-animate-rotate: Rotacion sutil
 * - ed-animate-blur: Desenfoque a enfoque
 * - ed-animate-stagger: Contenedor para animaciones secuenciales
 *
 * Atributos data:
 * - data-animate-delay="0.2": Retraso (segundos)
 * - data-animate-duration="0.8": Duracion (segundos)
 * - data-animate-stagger="0.15": Intervalo entre hijos
 * - data-animate-start="top 80%": Punto de activacion
 */

/* Estado inicial - Ocultar elementos antes de animar */
[class*="ed-animate-"]:not(.ed-animate-stagger) {
    opacity: 0;
    will-change: transform, opacity;
}

/* Contenedor stagger - visible pero hijos ocultos */
.ed-animate-stagger {
    opacity: 1;
}

.ed-animate-stagger > * {
    opacity: 0;
    will-change: transform, opacity;
}

/* Clase para elementos ya animados (fallback sin JS) */
.ed-animated {
    opacity: 1 !important;
    transform: none !important;
}

/* ============================================
   19.1 CONTADORES ANIMADOS
   ============================================ */

/**
 * Uso:
 * <span class="ed-counter" data-count-to="1500" data-count-suffix="+">0</span>
 *
 * Atributos:
 * - data-count-to: Numero objetivo
 * - data-count-prefix: Prefijo (ej: "$")
 * - data-count-suffix: Sufijo (ej: "+", "%")
 * - data-count-duration: Duracion en segundos
 */

.ed-counter {
    font-variant-numeric: tabular-nums;
    font-feature-settings: "tnum";
}

/* ============================================
   19.2 PARALLAX
   ============================================ */

/**
 * Uso:
 * <div class="ed-parallax-container">
 *   <img class="ed-parallax" data-parallax-speed="0.3" src="...">
 * </div>
 *
 * data-parallax-speed: 0 = sin movimiento, 1 = movimiento completo
 */

.ed-parallax-container {
    overflow: hidden;
    position: relative;
}

.ed-parallax {
    will-change: transform;
}

/* ============================================
   19.3 REVELACION DE TEXTO
   ============================================ */

/**
 * Uso:
 * <h2 class="ed-text-reveal">Titulo<br>en dos lineas</h2>
 */

.ed-text-reveal {
    overflow: hidden;
}

.ed-text-line {
    display: block;
    overflow: hidden;
}

.ed-text-line-inner {
    display: block;
    will-change: transform;
}

/* ============================================
   19.4 ANIMACIONES DE HOVER MEJORADAS CON GPU
   ============================================ */

/* Card con hover animado */
.ed-hover-lift {
    transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1),
                box-shadow 0.4s cubic-bezier(0.22, 1, 0.36, 1);
    will-change: transform;
}

.ed-hover-lift:hover {
    transform: translateY(-8px);
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.15);
}

/* Imagen con zoom al hover */
.ed-hover-zoom {
    overflow: hidden;
}

.ed-hover-zoom img,
.ed-hover-zoom .ed-hover-zoom-target {
    transition: transform 0.6s cubic-bezier(0.22, 1, 0.36, 1);
    will-change: transform;
}

.ed-hover-zoom:hover img,
.ed-hover-zoom:hover .ed-hover-zoom-target {
    transform: scale(1.08);
}

/* Boton con efecto shine */
.ed-hover-shine {
    position: relative;
    overflow: hidden;
}

.ed-hover-shine::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(
        90deg,
        transparent,
        rgba(255, 255, 255, 0.3),
        transparent
    );
    transition: left 0.6s ease;
}

.ed-hover-shine:hover::before {
    left: 100%;
}

/* Link con underline animado */
.ed-hover-underline {
    position: relative;
    display: inline-block;
}

.ed-hover-underline::after {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 0;
    width: 0;
    height: 2px;
    background-color: currentColor;
    transition: width 0.3s cubic-bezier(0.22, 1, 0.36, 1);
}

.ed-hover-underline:hover::after {
    width: 100%;
}

/* ============================================
   19.5 DELAYS PREDEFINIDOS (para uso con stagger manual)
   ============================================ */

.ed-delay-100 { --animate-delay: 0.1s; }
.ed-delay-200 { --animate-delay: 0.2s; }
.ed-delay-300 { --animate-delay: 0.3s; }
.ed-delay-400 { --animate-delay: 0.4s; }
.ed-delay-500 { --animate-delay: 0.5s; }
.ed-delay-600 { --animate-delay: 0.6s; }
.ed-delay-700 { --animate-delay: 0.7s; }
.ed-delay-800 { --animate-delay: 0.8s; }

/* ============================================
   19.6 ACCESIBILIDAD - Movimiento Reducido
   ============================================ */

@media (prefers-reduced-motion: reduce) {
    [class*="ed-animate-"],
    .ed-animate-stagger > *,
    .ed-counter,
    .ed-parallax,
    .ed-text-reveal,
    .ed-hover-lift,
    .ed-hover-zoom img,
    .ed-hover-shine::before,
    .ed-hover-underline::after {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
        animation: none !important;
    }

    .ed-hover-shine::before {
        display: none;
    }
}

/* ============================================
   20. SECCIONES DEL HOME
   ============================================ */

/* 20.1 Section Header común */
.ed-section-header h2 {
    position: relative;
    display: inline-block;
}

.ed-section-header h2::after {
    content: '';
    position: absolute;
    bottom: -0.5rem;
    left: 50%;
    transform: translateX(-50%);
    width: 4rem;
    height: 4px;
    background: linear-gradient(90deg, var(--ed-secondary), var(--ed-primary));
    border-radius: 2px;
}

/* 20.2 Áreas de Servicio */
.ed-section-areas {
    position: relative;
}

.ed-area-card .ed-area-icon svg {
    width: 1.75rem;
    height: 1.75rem;
}

/* 20.3 Proyectos Destacados - Slider */
.ed-section-proyectos {
    position: relative;
}

.ed-proyectos-slider {
    position: relative;
    padding: 0 3rem;
}

@media (max-width: 767px) {
    .ed-proyectos-slider {
        padding: 0;
    }
}

/* Botones de navegación del slider */
.ed-slider-btn {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 10;
    width: 3rem;
    height: 3rem;
    border-radius: 50%;
    background-color: #ffffff;
    border: 1px solid var(--ed-light);
    box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--ed-primary);
    cursor: pointer;
    transition: all var(--transition-base);
}

.ed-slider-btn:hover {
    background-color: var(--ed-primary);
    color: #ffffff;
    border-color: var(--ed-primary);
}

.ed-slider-btn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.ed-slider-prev {
    left: 0;
}

.ed-slider-next {
    right: 0;
}

@media (max-width: 767px) {
    .ed-slider-btn {
        display: none;
    }
}

/* Paginación del slider */
.ed-proyectos-pagination {
    display: flex;
    justify-content: center;
    gap: 0.5rem;
}

.ed-proyectos-pagination .swiper-pagination-bullet {
    width: 0.75rem;
    height: 0.75rem;
    background-color: var(--ed-light);
    border: 2px solid var(--ed-primary);
    opacity: 1;
    transition: all var(--transition-base);
}

.ed-proyectos-pagination .swiper-pagination-bullet-active {
    background-color: var(--ed-primary);
    transform: scale(1.2);
}

/* 20.4 Estadísticas */
.ed-section-estadisticas {
    padding-bottom: 8rem;
}

.ed-stat-icon svg {
    width: 2rem;
    height: 2rem;
}

.ed-stat-value {
    font-family: var(--font-display);
}

/* Animación de delay para stagger */
.ed-animate-fade-up {
    opacity: 0;
    transform: translateY(20px);
    animation: ed-fade-up 0.6s ease-out forwards;
    animation-delay: var(--delay, 0ms);
}

@keyframes ed-fade-up {
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* 20.5 Noticias Recientes */
.ed-section-noticias {
    position: relative;
}

/* Primera noticia destacada en desktop */
@media (min-width: 1024px) {
    .ed-noticias-grid .ed-noticia-card:first-child {
        grid-row: span 2;
    }

    .ed-noticias-grid .ed-noticia-card:first-child .ed-noticia-image {
        aspect-ratio: 3/4;
    }
}

/* 20.6 CTA Contacto */
.ed-section-cta {
    position: relative;
}

.ed-cta-contact a:hover {
    color: var(--ed-primary);
}

/* ============================================
   21. LINE CLAMP UTILITIES
   ============================================ */

.line-clamp-2 {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.line-clamp-3 {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.line-clamp-4 {
    display: -webkit-box;
    -webkit-line-clamp: 4;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* ============================================
   22. MEJORAS MÓVILES ESPECÍFICAS
   ============================================ */

/* Touch targets mínimos de 44px para accesibilidad */
@media (max-width: 1023px) {
    /* Asegurar touch targets adecuados en elementos interactivos */
    .ed-mobile-menu > li > a {
        min-height: 48px;
    }

    .ed-mobile-menu .sub-menu li a {
        min-height: 44px;
    }

    .ed-submenu-toggle {
        min-width: 44px;
        min-height: 44px;
    }

    /* Menú móvil: overflow controlado */
    .ed-mobile-menu-container.is-open {
        -webkit-overflow-scrolling: touch;
    }

    /* Header en móvil: mejor espaciado */
    .ed-header-inner {
        gap: 1rem;
    }

    /* GOV.CO bar: más compacta en móvil pequeño */
    @media (max-width: 480px) {
        .barra-superior-govco {
            padding-top: 0.375rem;
            padding-bottom: 0.375rem;
        }

        .barra-superior-govco .logo-govco {
            max-width: 80px;
        }
    }

    /* Breadcrumb más compacto en móvil */
    .ed-breadcrumb-separator {
        margin: 0 0.25rem;
    }

    .ed-breadcrumb-separator svg {
        width: 0.875rem;
        height: 0.875rem;
    }

    /* En móvil: ocultar texto del home, solo mostrar icono */
    .ed-breadcrumb-link svg + span,
    .ed-breadcrumb-link > span:last-child {
        /* Mantenemos el texto visible pero con truncado */
    }
}

/* Pantallas muy pequeñas (menores a 360px) */
@media (max-width: 359px) {
    .ed-header-logo {
        height: 2rem;
    }

    .ed-mobile-menu-btn {
        width: 2.5rem;
        height: 2.5rem;
    }

    .ed-mobile-menu > li > a {
        padding: 0.875rem 1rem;
        font-size: 0.9375rem;
    }

    .ed-mobile-cta-btn {
        padding: 0.875rem 1rem;
        font-size: 0.9375rem;
    }
}

/* Safe area para dispositivos con notch (iPhone X+) */
@supports (padding: max(0px)) {
    .ed-mobile-menu-container {
        padding-bottom: max(0.5rem, env(safe-area-inset-bottom));
    }

    .ed-mobile-cta {
        padding-bottom: max(1.25rem, calc(env(safe-area-inset-bottom) + 0.5rem));
    }
}
