/* ==========================================================================
   Estilos Comunes para Módulos UDI
   ========================================================================== */

:root {
    --color-guinda: #6d1130;
    --color-oro: #c8a951;
    --color-gris-oscuro: #555555;
}

/* ─── Tipografía e Identidad ─── */
.text-guinda {
    color: var(--color-guinda) !important;
}

.bg-guinda {
    background-color: var(--color-guinda) !important;
}

.border-guinda {
    border-color: var(--color-guinda) !important;
}

/* Línea decorativa institucional debajo de títulos */
.titulo-linea-decorativa {
    width: 80px;
    height: 3px;
    background: var(--color-guinda);
    border-radius: 2px;
    margin: 0.6rem auto 1.5rem auto;
}

/* ─── Tarjetas de Redes Inalámbricas (Contorno Guinda Permanente y Fondo Blanco) ─── */
.network-card {
    border: 2px solid var(--color-guinda) !important;
    border-top: 5px solid var(--color-guinda) !important;
    border-radius: 20px !important;
    background: #ffffff !important;
    transition: all 0.35s cubic-bezier(0.25, 0.8, 0.25, 1);
    box-shadow: 0 6px 20px rgba(109, 17, 48, 0.08) !important;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    position: relative;
}

.network-card:hover {
    transform: translateY(-7px);
    border-color: #520c22 !important;
    box-shadow: 0 16px 36px rgba(109, 17, 48, 0.22) !important;
}

.network-card-ipn {
    border: 2.5px solid var(--color-guinda) !important;
    border-top: 6px solid var(--color-guinda) !important;
    box-shadow: 0 8px 26px rgba(109, 17, 48, 0.14) !important;
}

.network-card-header {
    height: 115px;
    background: #ffffff !important;
    border-bottom: 1.5px solid rgba(109, 17, 48, 0.12);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px 20px;
    position: relative;
}

.network-logo-wrapper {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #ffffff !important;
}

.network-logo-img {
    max-height: 60px;
    max-width: 185px;
    width: auto;
    height: auto;
    object-fit: contain;
    object-position: center;
    transition: transform 0.3s ease;
    filter: none !important;
}

.network-card:hover .network-logo-img {
    transform: scale(1.08);
}

.network-card-badge {
    position: absolute;
    top: 10px;
    right: 12px;
    background: linear-gradient(135deg, var(--color-guinda) 0%, #8D243F 100%) !important;
    color: #ffffff !important;
    font-size: 0.72rem;
    font-weight: 700;
    padding: 4px 10px;
    border-radius: 20px;
    box-shadow: 0 3px 8px rgba(109, 17, 48, 0.3);
    z-index: 2;
    letter-spacing: 0.3px;
}

.rend-card {
    transition: transform 0.25s ease, box-shadow 0.25s ease;
    border: 1px solid rgba(0, 0, 0, 0.08) !important;
    background: #ffffff !important;
}

.rend-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.06) !important;
}

.tbl-rendimiento-card {
    border-radius: 16px;
    overflow: hidden;
    background: #ffffff;
    border: 1px solid rgba(0, 0, 0, 0.08);
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.03);
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.tbl-rendimiento-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.06);
}

.tbl-rendimiento-header {
    background-color: var(--color-guinda) !important;
    color: #ffffff !important;
}

.tbl-rendimiento-header th {
    color: #ffffff !important;
    font-weight: 700;
    font-size: 0.95rem;
    padding: 14px 18px !important;
    background-color: var(--color-guinda) !important;
    border-bottom: 0 !important;
}

.tbl-rendimiento-num {
    width: 48px;
    text-align: center;
    font-weight: 700;
    color: var(--color-guinda);
    background-color: rgba(109, 17, 48, 0.03) !important;
    font-size: 0.9rem;
}

.rend-num-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    min-width: 28px;
    border-radius: 50%;
    background: #f1f3f6;
    color: var(--color-guinda);
    font-weight: 700;
    font-size: 0.85rem;
    border: 1px solid rgba(109, 17, 48, 0.15);
}

.icon-circle-sm {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* ─── Botones ─── */
.btn-guinda {
    background-color: var(--color-guinda) !important;
    color: #ffffff !important;
    border: none;
    transition: all 0.3s ease;
}

.btn-guinda:hover {
    background-color: #520c22 !important;
    color: #ffffff !important;
    transform: translateY(-2px);
    box-shadow: 0 4px 10px rgba(109, 17, 48, 0.25);
}

.btn-outline-guinda {
    color: var(--color-guinda);
    border-color: var(--color-guinda);
    transition: all 0.3s ease;
}

.btn-outline-guinda:hover {
    background-color: var(--color-guinda);
    color: #fff;
    transform: translateY(-2px);
}

/* ─── Tarjetas Internas (Componentes) ─── */
.card-custom {
    border-radius: 12px;
    border: none;
    transition: all 0.3s ease;
    overflow: hidden;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);
}

.card-custom:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1) !important;
}

/* ─── Navegación por pestañas (Tabs) ─── */
.nav-pills .nav-link {
    border-radius: 8px;
    color: var(--color-gris-oscuro);
    font-weight: 500;
    transition: all 0.3s ease;
}

.nav-pills .nav-link:hover {
    background-color: rgba(106, 27, 49, 0.05);
    color: var(--color-guinda);
}

.nav-pills .nav-link.active,
.nav-pills .show > .nav-link {
    background-color: var(--color-guinda) !important;
    color: #fff !important;
}

/* ─── Ajustes de accesibilidad ─── */
.leading-relaxed {
    line-height: 1.75;
}


/* ========================================== */
/* Estilos extraÃ­dos de: modulo_banner.html */
/* ========================================== */

:root {
            --color-guinda: #6c1d45;
        }

        /* --- CSS DEL BANNER (Líneas 620-690 de index.html) --- */
        .carrusel_principal {
            background-color: transparent !important;
            background: none !important;
            border-radius: 20px !important;
            overflow: hidden !important;
            box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1) !important;
        }

        .carrusel_principal .carousel-inner {
            background-color: transparent !important;
            border-radius: 20px !important;
            overflow: hidden !important;
        }

        .carrusel_principal .carousel-item {
            background-color: transparent !important;
            /* Se elimina la transición de transform para permitir el efecto fade (opacity) */
            transition: opacity 0.8s ease-in-out !important;
        }

        /* Indicadores circulares (puntos) */
        .carrusel_principal .carousel-indicators {
            margin-bottom: 1rem;
        }

        .carrusel_principal .carousel-indicators button {
            width: 10px !important;
            height: 10px !important;
            border-radius: 50% !important;
            background-color: var(--color-guinda) !important;
            opacity: 0.6;
            margin: 0 5px !important;
            border: 2px solid rgba(255, 255, 255, 0.5) !important;
            transition: all 0.3s ease !important;
            box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
        }

        .carrusel_principal .carousel-indicators button.active {
            opacity: 1;
            background-color: var(--color-guinda) !important;
            border-color: #fff !important;
            transform: scale(1.3);
        }

        /* Fijar tamaño de las imágenes del carrusel para evitar que el cuerpo se mueva */
        .carrusel_principal .carousel-item img {
            width: 100%;
            height: 100%;
            aspect-ratio: 21 / 7;
            /* Tamaño fijo responsivo */
            object-fit: cover;
        }

        @media (max-width: 991px) {
            .carrusel_principal .carousel-item img {
                aspect-ratio: 16 / 7;
            }
        }

        @media (max-width: 575px) {
            .carrusel_principal .carousel-item img {
                aspect-ratio: 16 / 9;
            }
        }


/* ========================================== */
/* Estilos extraÃ­dos de: modulo_contacto.html */
/* ========================================== */

/* ─── Card contenedora ─── */
        .contact-card {
            font-family: 'Outfit', sans-serif;
            background: #fff;
            border: 1px solid rgba(0,0,0,0.08);
            border-radius: 16px;
            box-shadow: 0 4px 24px rgba(0,0,0,0.07);
            padding: 2rem;
            margin: 0;
            transition: all 0.3s ease;
        }

        .contact-card:hover {
            transform: translateY(-5px);
            box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1) !important;
        }

        .text-guinda { color: var(--color-guinda) !important; }
        .fw-bold     { font-weight: 700 !important; }

        /* Título */
        .contact-title {
            color: var(--color-guinda);
            font-weight: 800;
            font-size: clamp(1.3rem, 3vw, 1.7rem);
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 10px;
            margin-bottom: 1.5rem;
        }

        /* Logo + nombre */
        .logo-row {
            display: flex;
            align-items: center;
            gap: 14px;
            margin-bottom: 1rem;
        }
        .logo-row img  { max-width: 200px; }
        .logo-row h5   { font-size: 2rem !important; font-weight: 700; color: #222; margin: 0; }

        /* Lista de datos */
        .contact-list {
            list-style: none;
            padding: 0;
            margin: 0;
        }
        .contact-list li {
            display: flex;
            align-items: flex-start;
            gap: 10px;
            font-size: 0.88rem;
            color: #555;
            margin-bottom: 0.85rem;
            line-height: 1.5;
        }
        .contact-list li i {
            color: var(--color-guinda);
            margin-top: 2px;
            flex-shrink: 0;
            width: 18px;
            text-align: center;
        }
        .contact-list li strong { color: #333; }

        /* Mapa */
        .map-wrap {
            border-radius: 12px;
            overflow: hidden;
            box-shadow: 0 4px 16px rgba(0,0,0,0.10);
            border: 1px solid rgba(0,0,0,0.08);
            aspect-ratio: 16 / 9;
        }
        .map-wrap iframe {
            width: 100%;
            height: 100%;
            border: none;
            display: block;
        }

        hr { border-color: rgba(0,0,0,0.12); margin: 0.8rem 0 1rem; }


/* ========================================== */
/* Estilos extraÃ­dos de: modulo_correo_institucional.html */
/* ========================================== */

.correo-content {
        font-family: 'Outfit', sans-serif;
    }

    /* Opinions Infinite Marquee Styles (Images) */
    .correo-content .opinions-marquee-container {
        overflow: hidden;
        width: 100%;
        padding: 25px 0 10px 0;
        background: linear-gradient(135deg, rgba(106, 27, 49, 0.02) 0%, rgba(212, 175, 55, 0.02) 100%);
        border-top: 1px dashed rgba(106, 27, 49, 0.15);
        margin-top: 35px;
    }

    .correo-content .opinions-marquee-title {
        text-align: center;
        font-size: 1.05rem;
        font-weight: 700;
        color: var(--color-guinda);
        margin-bottom: 20px;
        letter-spacing: 0.5px;
    }

    .correo-content .opinions-marquee-wrapper {
        display: flex;
        overflow: hidden;
        user-select: none;
        padding: 10px 0;
    }

    .correo-content .opinions-marquee-track {
        display: flex;
        gap: 20px;
        width: max-content;
        animation: scrollMarquee 25s linear infinite;
    }

    .correo-content .opinions-marquee-track:hover {
        animation-play-state: paused !important;
    }

    .correo-content .opinion-img {
        flex-shrink: 0;
        height: 250px;
        border-radius: 12px;
        box-shadow: 0 4px 10px rgba(0, 0, 0, 0.04);
        border: 1px solid rgba(0, 0, 0, 0.06);
        transition: all 0.3s ease;
        cursor: pointer;
    }

    .correo-content .opinion-img:hover {
        transform: translateY(-5px);
        box-shadow: 0 8px 20px rgba(106, 27, 49, 0.15);
        border-color: rgba(106, 27, 49, 0.3);
    }

    @keyframes scrollMarquee {
        0% {
            transform: translateX(0);
        }

        100% {
            transform: translateX(calc(-50% - 10px));
        }
    }

    /* ========================================== */
    /* BENTO GRID - SACI Transferencia            */
    /* ========================================== */
    .bento-card {
        background: #ffffff;
        border-radius: 24px;
        box-shadow: 0 4px 20px rgba(0, 0, 0, 0.04);
        border: 1px solid rgba(0, 0, 0, 0.03);
        transition: all 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
        overflow: hidden;
    }

    .bento-card:hover {
        box-shadow: 0 15px 35px rgba(108, 29, 69, 0.08);
        transform: translateY(-4px);
    }

    .bento-card-main {
        background: linear-gradient(145deg, #ffffff 0%, #f9f9fb 100%);
    }

    .bento-card-accent {
        background: linear-gradient(135deg, #6C1D45 0%, #4a132f 100%);
        border: none;
    }

    .bento-icon-wrapper {
        width: 48px;
        height: 48px;
        border-radius: 14px;
        background: rgba(108, 29, 69, 0.08);
        color: #6C1D45;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 1.25rem;
        transition: all 0.3s ease;
    }

    .bento-card:hover .bento-icon-wrapper {
        background: #6C1D45;
        color: #ffffff;
        transform: scale(1.1) rotate(5deg);
    }

    .bento-icon-large {
        font-size: 2.5rem;
        transition: transform 0.4s ease;
    }

    .hover-lift:hover .bento-icon-large {
        transform: translateY(-10px);
    }

    .bento-img-zoom {
        transition: transform 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    }

    .bento-card-image:hover .bento-img-zoom {
        transform: scale(1.08);
    }

    .bento-img-overlay {
        position: absolute;
        top: 0; left: 0; right: 0; bottom: 0;
        background: linear-gradient(to top, rgba(0,0,0,0.6) 0%, transparent 40%);
        pointer-events: none;
    }

    .bento-btn-hover {
        transition: all 0.3s ease;
    }

    .bento-btn-hover:hover {
        transform: scale(1.05);
        box-shadow: 0 10px 25px rgba(255, 255, 255, 0.2);
    }

    /* --- ANIMACIONES --- */
    @keyframes fadeSlideUp {
        from {
            opacity: 0;
            transform: translateY(50px);
        }

        to {
            opacity: 1;
            transform: translateY(0);
        }
    }

    @keyframes floatImage {
        0% { transform: translateY(0px); }
        50% { transform: translateY(-15px); }
        100% { transform: translateY(0px); }
    }

    .correo-content .btn-guinda {
        background-color: #6C1D45;
        color: #ffffff;
        border: 2px solid #6C1D45;
        font-weight: bold;
        padding: 0.6rem 1.2rem;
        border-radius: 8px;
        text-decoration: none;
        transition: all 0.3s ease;
        display: inline-block;
        text-align: center;
        margin-top: 1rem;
    }

    .correo-content .btn-guinda:hover {
        background-color: #8D243F;
        border-color: #8D243F;
        color: #ffffff;
        transform: translateY(-2px);
        box-shadow: 0 5px 15px rgba(108, 29, 69, 0.3);
    }

    /* Ajustes Responsive */
    @media (max-width: 991px) {
        .correo-content .modulo-wrapper {
            flex-direction: column;
            padding: 2rem 1rem;
        }

        .correo-content .modulo-tarjeta {
            width: 100%;
            margin: 0;
            padding: 0;
        }

        .correo-content .modulo-imagen {
            width: 100%;
            max-width: 100%;
            margin-top: 2rem;
            animation: none; /* Disable floating on mobile to save battery */
        }
    }

    /* Card custom and shadow-sm classes for AJAX container */
    .correo-content .card-custom {
        border-radius: 16px !important;
        border: none;
        transition: all 0.3s ease;
        overflow: hidden;
        box-shadow: 0 8px 30px rgba(109, 17, 48, 0.12) !important;
    }

    .correo-content .card-custom:hover {
        transform: translateY(-5px);
        box-shadow: 0 12px 35px rgba(109, 17, 48, 0.2) !important;
    }


/* ========================================== */
/* Estilos extraÃ­dos de: modulo_estructura.html */
/* ========================================== */

/* Identidad tipogrÃ¡fica institucional UDI/IPN */
    .small,
    small {
        font-family: 'Open Sans', Arial, Helvetica, sans-serif !important;
        line-height: 1.7 !important;
    }

    p,
    li,
    a,
    td,
    th,
    button,
    input,
    label,
    select,
    textarea,
    .small,
    small,
    .text-secondary,
    .leading-relaxed {
        font-size: 16px !important;
    }

    h1,
    h2,
    h3,
    h4,
    h5,
    h6,
    h1 span,
    h2 span,
    h3 span,
    h4 span,
    h5 span,
    h6 span,
    h1 a,
    h2 a,
    h3 a,
    h4 a,
    h5 a,
    h6 a,
    h1 i,
    h2 i,
    h3 i,
    h4 i,
    h5 i,
    h6 i {
        font-family: 'Open Sans', Arial, Helvetica, sans-serif !important;
    }

    h1,
    .h1 {
        font-size: 2.5rem !important;
        font-weight: 800 !important;
    }

    h2,
    .h2 {
        font-size: 2rem !important;
        font-weight: 700 !important;
    }

    h3,
    .h3 {
        font-size: 1.75rem !important;
        font-weight: 700 !important;
    }

    h4,
    .h4 {
        font-size: 1.5rem !important;
        font-weight: 700 !important;
    }

    h5,
    .h5 {
        font-size: 1.25rem !important;
        font-weight: 700 !important;
    }

    h6,
    .h6 {
        font-size: 1.1rem !important;
        font-weight: 700 !important;
    }

    /* Color de tipografÃ­a mÃ¡s oscuro para mejor contraste y legibilidad */
    p,
    .text-secondary,
    .text-muted,
    .accordion-body,
    .card-body {
        color: #2F3E46 !important;
    }

    /* Todo el texto justificado (excluyendo tÃ­tulos y menÃºs) */
    p,
    .card-body li,
    .accordion-body li,
    .leading-relaxed,
    td {
        text-align: justify !important;
        -webkit-hyphens: auto;
        hyphens: auto;
    }

    /* Centrar tÃ­tulos */
    h1,
    h2,
    h3,
    h4,
    h5,
    h6,
    .h1,
    .h2,
    .h3,
    .h4,
    .h5,
    .h6 {
        text-align: center !important;
        margin-bottom: 10px;
        text-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
    }

    .map-interactive-overlay span {
        color: #fff;
        font-weight: 700;
        font-size: 1rem;
        letter-spacing: 0.5px;
        text-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
        background: rgba(0, 0, 0, 0.25);
        padding: 6px 18px;
        border-radius: 20px;
    }

    body {
        background: transparent;
        overflow-x: hidden;
        margin: 0;
        padding: 0;
    }


/* ========================================== */
/* Estilos extraÃ­dos de: modulo_laboratorios_computo.html */
/* ========================================== */

.laboratorios-content .nav-pills .nav-link {
        border-radius: 8px;
        color: var(--color-gris-oscuro);
        font-weight: 500;
        transition: all 0.3s ease;
        outline: none !important;
        box-shadow: none !important;
        border: 1px solid transparent;
    }

    .laboratorios-content .nav-pills .nav-link:hover {
        background-color: rgba(106, 27, 49, 0.05);
        color: var(--color-guinda);
    }

    .laboratorios-content .nav-pills .nav-link:focus,
    .laboratorios-content .nav-pills .nav-link:focus-visible,
    .laboratorios-content .nav-pills .nav-link:active {
        outline: none !important;
        box-shadow: none !important;
        border-color: transparent !important;
    }

    .laboratorios-content .nav-pills .nav-link.active,
    .laboratorios-content .nav-pills .show>.nav-link {
        background-color: var(--color-guinda) !important;
        color: #fff !important;
        outline: none !important;
        box-shadow: 0 3px 8px rgba(106, 27, 49, 0.25) !important;
    }

    .laboratorios-content .tbl-ipn-header {
        background-color: var(--color-guinda) !important;
        color: #fff !important;
    }

#modalCroquisEdificio.fade .modal-dialog {
            transition: transform 0.15s ease-out !important;
        }
        #modalCroquisEdificio.fade {
            transition: opacity 0.15s linear !important;
        }


/* ========================================== */
/* Estilos extraÃ­dos de: modulo_legado_upiicsa.html */
/* ========================================== */

        /* ========================================== */
        /* BRUTALIST LEGADO (Eszter Bial Inspired)    */
        /* ========================================== */

        .eb-legado-wrapper {
            border-radius: 12px; /* Alineado con card-custom */
        }

        /* Título Principal */
        .eb-main-title {
            letter-spacing: -2px;
            text-transform: uppercase;
        }

        /* Contenedor Video */
        .eb-video-hero {
            max-width: 960px;
            background-color: #000;
            border: 2px solid var(--color-guinda) !important;
        }

        .eb-video-element {
            width: 100%;
            aspect-ratio: 16 / 9;
            display: block;
            opacity: 1;
            object-fit: cover;
            border-radius: inherit;
        }

        .eb-badge {
            position: absolute;
            top: 18px;
            left: 18px;
            background: rgba(255, 255, 255, 0.92);
            backdrop-filter: blur(8px);
            color: var(--color-guinda);
            font-size: 0.8rem;
            font-weight: 700;
            padding: 6px 14px;
            border-radius: 50px;
            z-index: 10;
            pointer-events: none;
            box-shadow: 0 4px 12px rgba(0,0,0,0.25);
            transition: opacity 0.3s ease;
        }

        /* Ruido y Placeholder del Video */
        .eb-video-placeholder {
            position: absolute;
            inset: 0;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            pointer-events: none;
        }

        .eb-noise-overlay {
            position: absolute;
            inset: 0;
            background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)' opacity='0.15'/%3E%3C/svg%3E");
            mix-blend-mode: overlay;
            z-index: 1;
        }

        .eb-play-button {
            width: 100px;
            height: 100px;
            background: #fff;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            position: absolute; /* Centrado absoluto */
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%); /* Centrado absoluto */
            z-index: 5;
            transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
        }

        .eb-video-hero:hover .eb-play-button {
            transform: translate(-50%, -50%) scale(1.15); /* Mantiene centrado al hacer hover */
        }

        .eb-play-icon {
            font-size: 2rem;
            color: var(--color-guinda);
            margin-left: 6px;
        }

        .eb-video-text-container {
            position: absolute;
            bottom: 30px;
            left: 0;
            width: 100%;
            text-align: center;
            z-index: 5;
        }

        .eb-video-title {
            color: #fff;
            font-weight: 800;
            font-size: 2rem;
            margin-bottom: 0;
        }

        .eb-video-subtitle {
            color: rgba(255,255,255,0.7);
            font-size: 1.1rem;
            margin-bottom: 0;
        }

        /* Tarjetas de Información */
        .eb-info-card {
            background: #fff;
            border-radius: 16px;
            padding: 3rem 2rem;
            position: relative;
            overflow: hidden;
            border: 2px solid var(--color-guinda);
            transition: all 0.4s ease;
        }

        .eb-watermark {
            position: absolute;
            top: -20px;
            right: -10px;
            font-size: 8rem;
            font-weight: 900;
            color: rgba(0,0,0,0.03);
            line-height: 1;
            transition: all 0.5s ease;
        }

        .eb-card-content {
            position: relative;
            z-index: 2;
        }

        .eb-card-title {
            font-size: 2.2rem;
            font-weight: 900;
            color: var(--color-guinda);
            margin-bottom: 1.5rem;
            line-height: 1.1;
            transition: color 0.4s ease;
        }

        .eb-card-text {
            color: #555;
            font-size: 1rem;
            line-height: 1.6;
            transition: color 0.4s ease;
        }

        /* Hover manual de las tarjetas */
        .eb-info-card:hover {
            transform: translateY(-10px);
            box-shadow: 0 20px 40px rgba(0,0,0,0.1);
            background: var(--color-guinda);
        }

        .eb-info-card:hover .eb-card-title,
        .eb-info-card:hover .eb-card-text {
            color: #ffffff !important;
        }

        .eb-info-card:hover .eb-watermark {
            color: rgba(255,255,255,0.15) !important;
            transform: scale(1.1);
        }

        /* Cita Inferior Mejorada */
        .eb-quote-section {
            margin-top: 3rem;
            padding: 1.5rem 3rem;
            background: linear-gradient(135deg, rgba(109,17,48,0.03) 0%, rgba(200,169,81,0.05) 100%);
            border-radius: 20px;
            border: 1px solid rgba(109,17,48,0.1);
            transition: all 0.4s ease;
            cursor: default;
        }

        .eb-quote-section:hover {
            transform: translateY(-5px);
            box-shadow: 0 15px 30px rgba(109,17,48,0.08);
            background: linear-gradient(135deg, rgba(109,17,48,0.05) 0%, rgba(200,169,81,0.1) 100%);
            border: 1px solid rgba(109,17,48,0.15);
        }

        .eb-quote-line {
            height: 2px;
            width: 80px;
            background: linear-gradient(90deg, transparent, var(--color-guinda), transparent);
            opacity: 0.5;
            transition: opacity 0.4s ease, width 0.4s ease;
        }

        .eb-quote-section:hover .eb-quote-line {
            opacity: 1;
            width: 120px;
        }

        .eb-quote-icon {
            transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
        }

        .eb-quote-section:hover .eb-quote-icon {
            transform: scale(1.2) rotate(10deg);
        }

        .eb-quote-text {
            background: linear-gradient(90deg, var(--color-guinda), #a01a42);
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            transition: filter 0.4s ease;
        }

        .eb-quote-section:hover .eb-quote-text {
            filter: drop-shadow(0 4px 6px rgba(109,17,48,0.15));
        }


/* ========================================== */
/* Estilos extraÃ­dos de: modulo_NOC.html */
/* ========================================== */

/* NOC Specific Styles */
    .card-noc {
        border-radius: 12px;
        border: 1px solid rgba(0, 0, 0, 0.06);
        transition: all 0.3s ease;
    }

    .card-noc:hover {
        transform: translateY(-3px);
        box-shadow: 0 6px 12px rgba(0, 0, 0, 0.08);
        border-color: rgba(109, 17, 48, 0.15);
    }

    .icon-shape {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 48px;
        height: 48px;
        flex-shrink: 0;
    }

    .typewriter-cursor {
        animation: blink 0.75s step-end infinite;
        font-weight: bold;
        color: var(--color-oro);
    }

    @keyframes blink {

        from,
        to {
            color: transparent
        }

        50% {
            color: var(--color-oro);
        }
    }


/* ========================================== */
/* Estilos extraÃ­dos de: modulo_normatividad.html */
/* ========================================== */

.normatividad-content {
        font-family: 'Outfit', sans-serif;
    }

    .normatividad-content .leading-relaxed {
        line-height: 1.75;
    }

    .normatividad-content .accordion-button:not(.collapsed) {
        background-color: #f8f1f3;
        color: var(--color-guinda);
    }

    .normatividad-content .accordion-button:focus {
        box-shadow: none;
    }

    .normatividad-content .btn-oro:focus,
    .normatividad-content .btn-oro:active {
        background-color: var(--color-oro) !important;
        border-color: var(--color-oro) !important;
        opacity: 1 !important;
    }

    .normatividad-content .card-hover {
        transition: all 0.3s ease;
    }
    .normatividad-content .card-hover:hover {
        transform: translateY(-5px);
        box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1) !important;
    }


/* ========================================== */
/* Estilos extraÃ­dos de: modulo_plataformas.html */
/* ========================================== */

@keyframes pulse-logo-plat {
        0% {
            transform: scale(1);
            filter: drop-shadow(0 0 0px rgba(108, 28, 62, 0.4));
        }

        50% {
            transform: scale(1.15);
            filter: drop-shadow(0 0 15px rgba(108, 28, 62, 0.8));
        }

        100% {
            transform: scale(1);
            filter: drop-shadow(0 0 0px rgba(108, 28, 62, 0.4));
        }
    }

    .plataformas-content .animated-logo-plat {
        animation: pulse-logo-plat 3s infinite ease-in-out;
        transition: transform 0.3s ease;
    }

    .plataformas-content .nav-pills .nav-link {
        border-radius: 8px;
        color: var(--color-gris-oscuro);
        font-weight: 500;
        transition: all 0.3s ease;
    }

    .plataformas-content .nav-pills .nav-link:hover {
        background-color: rgba(106, 27, 49, 0.05);
        color: var(--color-guinda);
    }

    .plataformas-content .nav-pills .nav-link.active,
    .plataformas-content .nav-pills .show>.nav-link {
        background-color: var(--color-guinda) !important;
        color: #fff !important;
    }


/* ========================================== */
/* Estilos extraÃ­dos de: modulo_proyectos_modernizacion.html */
/* ========================================== */

.proyectos-content .nav-pills .nav-link {
        border-radius: 8px;
        color: var(--color-gris-oscuro);
        font-weight: 500;
        transition: all 0.3s ease;
        outline: none !important;
        box-shadow: none !important;
        border: 1px solid transparent;
    }

    .proyectos-content .nav-pills .nav-link:hover {
        background-color: rgba(106, 27, 49, 0.05);
        color: var(--color-guinda);
    }

    .proyectos-content .nav-pills .nav-link:focus,
    .proyectos-content .nav-pills .nav-link:focus-visible,
    .proyectos-content .nav-pills .nav-link:active {
        outline: none !important;
        box-shadow: none !important;
        border-color: transparent !important;
    }

    .proyectos-content .nav-pills .nav-link.active,
    .proyectos-content .nav-pills .show>.nav-link {
        background-color: var(--color-guinda) !important;
        color: #fff !important;
        outline: none !important;
        box-shadow: 0 3px 8px rgba(106, 27, 49, 0.25) !important;
    }

    @media (max-width: 768px) {
        .proyectos-content .nav-pills.justify-content-center {
            flex-direction: column;
            align-items: stretch;
        }

        .proyectos-content .nav-pills.justify-content-center .nav-item {
            margin-bottom: 4px;
        }

        .proyectos-content .nav-pills.justify-content-center .nav-link {
            text-align: center;
            width: 100%;
        }

        .proyectos-content .col-md-4.border-end {
            border-right: none !important;
            border-bottom: 1px solid #dee2e6;
            padding-bottom: 15px;
            margin-bottom: 15px;
        }
    }


/* ========================================== */
/* Estilos extraÃ­dos de: modulo_sistema_siti.html */
/* ========================================== */

.siti-content .opinions-marquee-container {
        overflow: hidden;
        width: 100%;
        padding: 25px 0 10px 0;
        background: linear-gradient(135deg, rgba(106, 27, 49, 0.02) 0%, rgba(212, 175, 55, 0.02) 100%);
        border-top: 1px dashed rgba(106, 27, 49, 0.15);
        margin-top: 35px;
    }

    .siti-content .opinions-marquee-title {
        text-align: center;
        font-size: 1.05rem;
        font-weight: 700;
        color: var(--color-guinda);
        margin-bottom: 20px;
        letter-spacing: 0.5px;
    }

    .siti-content .opinions-marquee-wrapper {
        display: flex;
        overflow: hidden;
        user-select: none;
        padding: 10px 0;
    }

    .siti-content .opinions-marquee-track {
        display: flex;
        gap: 20px;
        width: max-content;
        animation: scrollMarquee 25s linear infinite;
    }

    .siti-content .opinions-marquee-track:hover {
        animation-play-state: paused !important;
    }

    .siti-content .opinion-img {
        flex-shrink: 0;
        height: 250px;
        width: auto;
        object-fit: contain;
        border-radius: 12px;
        box-shadow: 0 4px 10px rgba(0, 0, 0, 0.04);
        border: 1px solid rgba(0, 0, 0, 0.06);
        transition: all 0.3s ease;
        cursor: pointer;
    }

    .siti-content .opinion-img:hover {
        transform: translateY(-5px);
        box-shadow: 0 8px 20px rgba(106, 27, 49, 0.15);
        border-color: rgba(106, 27, 49, 0.3);
    }

    @keyframes scrollMarquee {
        0% { transform: translateX(0); }
        100% { transform: translateX(calc(-50% - 10px)); }
    }


/* ========================================== */
/* Utilidades CSS (Reemplazo de Inline Styles) */
/* ========================================== */

.overflow-y-hidden-p2 { overflow-y: hidden; padding: 2px; }
.img-mapa-280 { height: 280px; object-fit: cover; }
.h-50px { height: 50px; }
.max-h-45px { max-height: 45px; }
.max-w-200px { max-width: 200px; width: 100%; }
.img-contain-310 { max-height: 310px; object-fit: contain; }
.hover-zoom-img { transition: transform 0.2s; }
.logo-grid-item { max-height: 80px; background: white; padding: 5px; }
.w-40px { width: 40px; }
.min-h-240px { min-height: 240px; }
.img-siti-logo { max-height: 180px; object-fit: contain; filter: drop-shadow(0px 4px 8px rgba(0,0,0,0.06)); }
.lh-16 { line-height: 1.6; }
.text-center-imp { text-align: center !important; }
.min-h-350px { min-height: 350px; }
.max-h-200px { max-height: 200px; }
.max-h-180px { max-height: 180px; }
.max-h-250px { max-height: 250px; }
.max-w-600px-center { max-width: 600px; margin: 0 auto; }
.img-cover-340 { height: 340px; object-fit: cover; object-position: center; width: 100%; }
.size-40px { width: 40px; height: 40px; }
.img-contain-80vh { max-height: 80vh; object-fit: contain; }
.h-160px { height: 160px; }
.img-contain-120 { max-height: 120px; max-width: 90%; object-fit: contain; }
.w-80px-h-1px { width: 80px; height: 1px; background: rgba(255,255,255,0.2); }

/* ========================================== */
/* Normalización Tipográfica Global (Módulos) */
/* ========================================== */
.card-custom, 
[id^="module-wrapper"] {
    font-family: 'Open Sans', Arial, Helvetica, sans-serif !important;
}

[id^="module-wrapper"] p,
[id^="module-wrapper"] li,
.card-custom p,
.card-custom li {
    font-size: 16px !important;
    text-align: justify !important;
    line-height: 1.7 !important;
}

/* ========================================== */
/* Ajuste de Desfase de Anclas y Scroll Suave */
/* ========================================== */
html {
    scroll-behavior: smooth;
    /* 56px (IPN Navbar) + 40px (Menu Navbar) + 20px (Margen) = ~116px */
    scroll-padding-top: 120px;
}

/* Ocultar barra de scroll en Webkit para el menu swipeable */
.hide-scrollbar::-webkit-scrollbar {
    display: none;
}

/* ==========================================================================
   Estilos específicos y micro-animaciones para el rediseño de UDI
   ========================================================================== */

/* Tarjeta Introductoria de UDI */
.udi-intro-card {
    background: linear-gradient(to right, rgba(109, 17, 48, 0.02), rgba(199, 169, 81, 0.02));
    border-left: 5px solid var(--color-guinda);
    border-radius: 8px;
    padding: 1.5rem 1.75rem;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.02);
    transition: all 0.3s ease;
}

.udi-intro-card:hover {
    box-shadow: 0 6px 20px rgba(109, 17, 48, 0.05);
    background: linear-gradient(to right, rgba(109, 17, 48, 0.03), rgba(199, 169, 81, 0.03));
}

/* Tarjetas de Funciones */
.udi-func-card {
    background: #ffffff;
    border: 1px solid rgba(109, 17, 48, 0.08);
    border-radius: 12px;
    padding: 1.5rem;
    height: 100%;
    transition: all 0.35s cubic-bezier(0.25, 0.8, 0.25, 1);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.03);
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.udi-func-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 12px 24px rgba(109, 17, 48, 0.08);
    border-color: rgba(109, 17, 48, 0.2);
}

.udi-func-icon-wrapper {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    background: rgba(109, 17, 48, 0.05);
    color: var(--color-guinda);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    margin-bottom: 1.25rem;
    transition: all 0.35s ease;
}

.udi-func-card:hover .udi-func-icon-wrapper {
    background: var(--color-guinda);
    color: #ffffff;
    transform: scale(1.1) rotate(5deg);
}

.udi-func-card h6 {
    font-weight: 700;
    color: var(--color-guinda);
    margin-bottom: 0.75rem;
}

.udi-func-card p {
    font-size: 0.95rem !important;
    color: var(--color-gris-oscuro);
    line-height: 1.6 !important;
    text-align: center !important;
    margin-bottom: 0;
}

/* Tarjetas de Sedes */
.udi-sede-card {
    background: #ffffff;
    border: 1px solid rgba(109, 17, 48, 0.08);
    border-radius: 12px;
    height: 100%;
    transition: all 0.35s cubic-bezier(0.25, 0.8, 0.25, 1);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.03);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.udi-sede-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 12px 24px rgba(0, 0, 0, 0.08);
    border-color: rgba(109, 17, 48, 0.15);
}

.udi-sede-header {
    padding: 1.25rem;
    background: linear-gradient(135deg, rgba(109, 17, 48, 0.02) 0%, rgba(109, 17, 48, 0.05) 100%);
    border-bottom: 1px solid rgba(109, 17, 48, 0.08);
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.udi-sede-header i {
    font-size: 1.35rem;
    color: var(--color-guinda);
}

.udi-sede-header h5 {
    margin: 0;
    font-weight: 700;
    color: var(--color-guinda);
}

.udi-sede-body {
    padding: 1.25rem;
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.udi-sede-body p {
    color: var(--color-gris-oscuro);
    margin-bottom: 1.25rem;
}

.udi-sede-card .map-interactive-container {
    margin-top: auto;
    border-radius: 8px;
    overflow: hidden;
}

.udi-sede-card img {
    height: 220px !important;
    object-fit: cover !important;
    width: 100%;
}

/* ==========================================================================
   Estilos específicos y animaciones para la sección Estructura
   ========================================================================== */

.est-item-card {
    background: #ffffff;
    border: 1px solid rgba(109, 17, 48, 0.06);
    border-left: 4px solid var(--color-guinda);
    border-radius: 8px;
    padding: 1.1rem 1.25rem;
    height: 100%;
    transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
    box-shadow: 0 3px 10px rgba(0, 0, 0, 0.02);
    display: flex;
    flex-direction: column;
}

.est-item-card:hover {
    transform: translateX(5px);
    box-shadow: 0 6px 15px rgba(109, 17, 48, 0.06);
    border-color: rgba(109, 17, 48, 0.15);
    background-color: rgba(109, 17, 48, 0.005);
    border-left: 4px solid var(--color-oro);
}

.est-item-card h6 {
    color: var(--color-guinda);
    font-weight: 700;
    margin-bottom: 0.6rem;
    font-size: 0.95rem;
    display: flex;
    align-items: center;
    gap: 0.6rem;
}

.est-item-card h6 i {
    font-size: 0.9rem;
    color: var(--color-guinda);
    opacity: 0.85;
    transition: transform 0.3s ease;
}

.est-item-card:hover h6 i {
    transform: scale(1.15);
}

.est-item-card ul,
.est-item-card p {
    color: var(--color-gris-oscuro);
    font-size: 0.875rem !important;
    line-height: 1.6 !important;
    text-align: justify !important;
    margin-bottom: 0;
}

.est-item-card ul {
    padding-left: 1.2rem;
}

.est-item-card li {
    margin-bottom: 0.35rem;
    font-size: 0.875rem !important;
    line-height: 1.6 !important;
    text-align: justify !important;
}

.est-item-card li:last-child {
    margin-bottom: 0;
}

/* Animación Staggered de entrada para las tarjetas al cambiar de pestaña */
.tab-pane.active .est-item-card {
    animation: slideUpFade 0.45s cubic-bezier(0.16, 1, 0.3, 1) both;
}

/* Tiempos de retraso para el efecto escalonado (staggered) */
.tab-pane.active .row > div:nth-child(1) .est-item-card { animation-delay: 0.04s; }
.tab-pane.active .row > div:nth-child(2) .est-item-card { animation-delay: 0.08s; }
.tab-pane.active .row > div:nth-child(3) .est-item-card { animation-delay: 0.12s; }
.tab-pane.active .row > div:nth-child(4) .est-item-card { animation-delay: 0.16s; }
.tab-pane.active .row > div:nth-child(5) .est-item-card { animation-delay: 0.20s; }
.tab-pane.active .row > div:nth-child(6) .est-item-card { animation-delay: 0.24s; }
.tab-pane.active .row > div:nth-child(7) .est-item-card { animation-delay: 0.28s; }
.tab-pane.active .row > div:nth-child(8) .est-item-card { animation-delay: 0.32s; }
.tab-pane.active .row > div:nth-child(9) .est-item-card { animation-delay: 0.36s; }
.tab-pane.active .row > div:nth-child(10) .est-item-card { animation-delay: 0.40s; }
.tab-pane.active .row > div:nth-child(11) .est-item-card { animation-delay: 0.44s; }
.tab-pane.active .row > div:nth-child(12) .est-item-card { animation-delay: 0.48s; }

@keyframes slideUpFade {
    0% {
        opacity: 0;
        transform: translateY(15px);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ==========================================================================
   Estilos específicos y animaciones para el toggle de Correo Institucional
   ========================================================================== */

.correo-toggle-container {
    background: #ffffff;
    border: 1px solid rgba(109, 17, 48, 0.08);
    border-radius: 16px;
    padding: 1.75rem;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.03);
    max-width: 850px;
    margin: 0 auto 2.5rem;
    overflow: hidden;
    transition: all 0.3s ease;
}

.correo-toggle-container:hover {
    box-shadow: 0 12px 35px rgba(109, 17, 48, 0.06);
    border-color: rgba(109, 17, 48, 0.15);
}

.correo-toggle-header {
    display: flex;
    background: rgba(109, 17, 48, 0.03);
    border: 1px solid rgba(109, 17, 48, 0.06);
    border-radius: 30px;
    padding: 5px;
    position: relative;
    margin-bottom: 1.75rem;
    z-index: 1;
}

.correo-toggle-btn {
    flex: 1;
    border: none;
    background: transparent;
    padding: 12px 24px;
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--color-guinda);
    border-radius: 25px;
    cursor: pointer;
    transition: color 0.35s ease;
    text-align: center;
    position: relative;
    z-index: 3;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.6rem;
    overflow: hidden;
}

.correo-toggle-btn.active {
    color: #ffffff;
}

/* Barra de progreso de tiempo para la pestaña activa de Correo/SACI */
.correo-toggle-btn.active::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    height: 3.5px;
    width: 100%;
    background-color: var(--color-oro);
    animation: tabProgress 10s linear forwards;
    transform-origin: left;
    z-index: 4;
}

/* Pausar barra de progreso al pasar el cursor */
.correo-toggle-container.autoplay-paused .correo-toggle-btn.active::after,
.correo-toggle-container:hover .correo-toggle-btn.active::after {
    animation-play-state: paused;
}

.correo-toggle-slider {
    position: absolute;
    top: 5px;
    bottom: 5px;
    left: 5px;
    width: calc(50% - 5px);
    background: linear-gradient(135deg, var(--color-guinda) 0%, #8D243F 100%);
    border-radius: 25px;
    transition: transform 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
    z-index: 2;
    box-shadow: 0 4px 12px rgba(109, 17, 48, 0.25);
}

.correo-toggle-container.show-boleta .correo-toggle-slider {
    transform: translateX(100%);
}

.correo-toggle-body {
    overflow: hidden;
    position: relative;
}

.correo-toggle-track {
    display: flex;
    width: 200%;
    transition: transform 0.45s cubic-bezier(0.25, 0.8, 0.25, 1);
}

.correo-toggle-container.show-boleta .correo-toggle-track {
    transform: translateX(-50%);
}

.correo-toggle-slide {
    width: 50%;
    padding: 0 0.75rem;
    box-sizing: border-box;
    transition: opacity 0.35s ease;
    opacity: 1;
}

/* Reducir opacidad del slide inactivo */
.correo-toggle-container:not(.show-boleta) .correo-toggle-slide:nth-child(2) {
    opacity: 0;
}
.correo-toggle-container.show-boleta .correo-toggle-slide:nth-child(1) {
    opacity: 0;
}

.correo-toggle-slide h6 {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--color-guinda);
    display: flex;
    align-items: center;
    gap: 0.6rem;
}

.correo-toggle-slide h6 i {
    color: var(--color-oro);
}

.correo-toggle-slide p {
    font-size: 0.95rem !important;
    line-height: 1.7 !important;
    text-align: justify !important;
    color: var(--color-gris-oscuro);
}

/* ==========================================================================
   Estilos específicos y animaciones para la sección de Software e APP IPN
   ========================================================================== */

/* Tarjetas de Software */
.soft-card {
    background: #ffffff;
    border: 1px solid rgba(109, 17, 48, 0.06);
    border-radius: 12px;
    padding: 1.5rem 1.25rem;
    height: 100%;
    transition: all 0.35s cubic-bezier(0.25, 0.8, 0.25, 1);
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.02);
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.soft-card .img-container {
    height: 60px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 1.25rem;
}

.soft-card img {
    max-height: 45px;
    width: auto;
    transition: transform 0.35s ease;
}

.soft-card h6 {
    font-weight: 700;
    color: var(--color-gris-oscuro);
    margin-bottom: 1.25rem;
    font-size: 1rem;
    transition: color 0.3s ease;
}

.soft-card .btn-guinda {
    margin-top: auto;
    width: 100%;
    transition: all 0.3s ease;
}

.soft-card .btn-guinda i {
    transition: transform 0.3s ease;
}

.soft-card:hover .btn-guinda i {
    transform: translateX(3px);
}

/* Hover Específico por Marca */
/* MATLAB */
.soft-card-matlab:hover {
    transform: translateY(-6px);
    border-color: rgba(224, 85, 36, 0.3);
    box-shadow: 0 10px 25px rgba(224, 85, 36, 0.12);
}
.soft-card-matlab:hover h6 {
    color: #e05524;
}
.soft-card-matlab:hover img {
    transform: scale(1.08);
}

/* Autodesk */
.soft-card-autodesk:hover {
    transform: translateY(-6px);
    border-color: rgba(6, 150, 215, 0.3);
    box-shadow: 0 10px 25px rgba(6, 150, 215, 0.12);
}
.soft-card-autodesk:hover h6 {
    color: #0696d7;
}
.soft-card-autodesk:hover img {
    transform: scale(1.08);
}

/* Wolfram */
.soft-card-wolfram:hover {
    transform: translateY(-6px);
    border-color: rgba(219, 17, 36, 0.3);
    box-shadow: 0 10px 25px rgba(219, 17, 36, 0.12);
}
.soft-card-wolfram:hover h6 {
    color: #db1124;
}
.soft-card-wolfram:hover img {
    transform: scale(1.08);
}

/* Office 365 */
.soft-card-office:hover {
    transform: translateY(-6px);
    border-color: rgba(235, 60, 0, 0.3);
    box-shadow: 0 10px 25px rgba(235, 60, 0, 0.12);
}
.soft-card-office:hover h6 {
    color: #eb3c00;
}
.soft-card-office:hover img {
    transform: scale(1.08);
}

/* APP IPN Teléfono Flotante */
.floating-phone {
    animation: floatPhone 4.5s ease-in-out infinite;
    max-height: 290px;
    object-fit: contain;
}

@keyframes floatPhone {
    0%, 100% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(-10px);
    }
}

/* Badges / Chips para Funciones de la App */
.app-feature-chips-container {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.5rem;
}

.app-feature-chip {
    background-color: #ffffff;
    border: 1px solid rgba(109, 17, 48, 0.08);
    color: var(--color-gris-oscuro);
    padding: 0.4rem 0.8rem;
    font-size: 0.82rem !important;
    border-radius: 20px;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 0.4rem;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.01);
    transition: all 0.25s ease;
    text-align: left !important;
    line-height: 1 !important;
}

.app-feature-chip:hover {
    border-color: var(--color-guinda);
    color: var(--color-guinda);
    transform: translateY(-1px);
    box-shadow: 0 4px 8px rgba(109, 17, 48, 0.05);
}

.app-feature-chip i {
    font-size: 0.8rem;
    color: var(--color-oro);
}

/* Ajustes de listado para el acceso personalizado */
.app-personal-list {
    list-style: none;
    padding-left: 0 !important;
    margin-bottom: 0;
}

.app-personal-list li {
    font-size: 0.88rem !important;
    color: var(--color-gris-oscuro);
    margin-bottom: 0.5rem;
    display: flex;
    align-items: center;
    gap: 0.6rem;
    text-align: left !important;
}

.app-personal-list li:last-child {
    margin-bottom: 0;
}

.app-personal-list li i {
    color: var(--color-guinda);
    font-size: 0.85rem;
    width: 14px;
    text-align: center;
}

/* ==========================================================================
   Estilos específicos y animaciones para la sección de Plataformas
   ========================================================================== */

/* Tarjetas Principales de Plataformas */
.plataformas-content .card.card-custom {
    border: 1px solid rgba(109, 17, 48, 0.08) !important;
    border-radius: 16px !important;
    overflow: hidden;
    transition: all 0.35s cubic-bezier(0.25, 0.8, 0.25, 1);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.02) !important;
}

.plataformas-content .card.card-custom:hover {
    transform: translateY(-6px);
    box-shadow: 0 15px 35px rgba(109, 17, 48, 0.08) !important;
    border-color: rgba(109, 17, 48, 0.15) !important;
}

.plataformas-content .card.card-custom .h-160px {
    background-color: rgba(109, 17, 48, 0.01) !important;
    transition: background-color 0.35s ease;
    height: 190px !important;
    padding: 1.5rem !important;
}

.plataformas-content .card.card-custom:hover .h-160px {
    background-color: rgba(109, 17, 48, 0.03) !important;
}

.plataformas-content .card.card-custom img {
    transition: all 0.35s ease;
}

.plataformas-content .img-contain-120 {
    max-height: 145px !important;
    width: auto !important;
    object-fit: contain !important;
}

.plataformas-content .card.card-custom:hover img {
    animation: floatIcon 2s ease-in-out infinite alternate;
}

/* Contenedor de Pestañas en Desarrollo */
.plataformas-dev-container {
    background: #ffffff;
    border: 1px solid rgba(109, 17, 48, 0.06);
    border-radius: 20px;
    padding: 2rem;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.02);
    margin-top: 2rem;
}

/* Rediseño de las pestañas en Desarrollo */
.plataformas-dev-container .nav-pills {
    background: rgba(109, 17, 48, 0.02);
    border: 1px solid rgba(109, 17, 48, 0.05);
    border-radius: 40px;
    padding: 6px;
    display: flex;
    width: fit-content;
    margin: 0 auto 1.5rem auto !important;
}

.plataformas-dev-container .nav-item {
    margin: 0 3px;
}

.plataformas-dev-container .nav-link {
    border-radius: 35px !important;
    font-weight: 700;
    font-size: 0.92rem;
    color: var(--color-guinda) !important;
    padding: 10px 20px !important;
    transition: all 0.3s ease;
    border: 1px solid transparent;
    position: relative;
    overflow: hidden;
}

.plataformas-dev-container .nav-link:hover {
    background: rgba(109, 17, 48, 0.06);
}

.plataformas-dev-container .nav-link.active {
    background: var(--color-guinda) !important;
    color: #ffffff !important;
    box-shadow: 0 4px 12px rgba(109, 17, 48, 0.25) !important;
}

/* Barra de progreso CSS en la pestaña activa */
.plataformas-dev-container .nav-link.active::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    height: 3px;
    width: 100%;
    background-color: var(--color-oro);
    animation: tabProgress 6s linear forwards;
    transform-origin: left;
}

/* Pausar barra de progreso cuando el contenedor de contenido de desarrollo tiene hover (clase añadida por JS) */
.plataformas-dev-container.autoplay-paused .nav-link.active::after {
    animation-play-state: paused;
}

/* Animaciones de Iconos */
/* El engranaje de Desarrollo permanece estático a petición del usuario */
.plataformas-dev-container h5 i.fa-cogs {
    display: inline-block;
}

/* Animación de flotación interactiva para las imágenes principales */
@keyframes floatIcon {
    0% { transform: translateY(0) scale(1.06); }
    100% { transform: translateY(-7px) scale(1.06); }
}

/* Flotación/rotación sutil para el icono de cubos del título principal */
.plataformas-content h2 i.fa-cubes {
    display: inline-block;
    animation: cubeFloat 3s ease-in-out infinite;
    transform-origin: center;
}

@keyframes cubeFloat {
    0%, 100% { transform: translateY(0) rotate(0deg); }
    50% { transform: translateY(-4px) rotate(8deg); }
}

@keyframes tabProgress {
    0% { transform: scaleX(0); }
    100% { transform: scaleX(1); }
}

/* Tarjeta de Contenido del Panel */
.dev-panel-card {
    background: #ffffff !important;
    border: 1px solid rgba(109, 17, 48, 0.05) !important;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.02) !important;
    border-radius: 16px !important;
    padding: 1.75rem !important;
    transition: all 0.3s ease;
}

.dev-panel-card:hover {
    border-color: rgba(109, 17, 48, 0.1) !important;
}

/* Placeholders Ilustrativos de Video */
.dev-video-placeholder {
    background: linear-gradient(135deg, #18040f 0%, #300c1e 100%) !important;
    border: 1px solid rgba(199, 169, 81, 0.15) !important;
    box-shadow: inset 0 0 40px rgba(0, 0, 0, 0.5);
    height: 100%;
    min-height: 220px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 1.5rem;
}

.text-oro-glow {
    color: var(--color-oro);
    filter: drop-shadow(0 0 8px rgba(199, 169, 81, 0.5));
}

.icon-pulse {
    animation: placeholderPulse 2.5s ease-in-out infinite;
}

@keyframes placeholderPulse {
    0%, 100% {
        transform: scale(1);
        opacity: 0.85;
    }
    50% {
        transform: scale(1.08);
        opacity: 1;
        filter: drop-shadow(0 0 12px rgba(199, 169, 81, 0.8));
    }
}

/* ==========================================================================
   Estilos específicos y animaciones para la sección de Laboratorios de Cómputo
   ========================================================================== */

/* Carrusel de Laboratorios */
.laboratorios-content .carousel {
    border: 3px solid var(--color-guinda);
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.15);
    background-color: #000000;
}

.laboratorios-content .carousel-item img {
    transition: transform 6s ease;
}

.laboratorios-content .carousel:hover .carousel-item.active img {
    transform: scale(1.04);
}

.laboratorios-content .carousel-caption {
    background: linear-gradient(to top, rgba(0, 0, 0, 0.85) 0%, rgba(0, 0, 0, 0.4) 70%, rgba(0, 0, 0, 0) 100%);
    left: 0;
    right: 0;
    bottom: 0;
    padding: 2.5rem 2rem 1.5rem 2rem;
    text-align: left;
}

.laboratorios-content .carousel-caption h5 {
    color: var(--color-oro);
    font-weight: 800;
    font-size: 1.35rem;
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.8);
    margin-bottom: 0.25rem;
}

.laboratorios-content .carousel-caption p {
    color: #f8f9fa;
    font-size: 0.92rem;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.8);
}

/* Rediseño de Tablas de Laboratorios */
.laboratorios-content table {
    border-collapse: separate !important;
    border-spacing: 0 !important;
    border-radius: 12px !important;
    overflow: hidden !important;
    border: 1px solid rgba(109, 17, 48, 0.1) !important;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.02) !important;
}

.laboratorios-content .tbl-ipn-header {
    background-color: var(--color-guinda) !important;
    border-color: var(--color-guinda) !important;
}

.laboratorios-content .tbl-ipn-header th {
    font-weight: 700 !important;
    font-size: 0.95rem !important;
    padding: 14px 16px !important;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: #ffffff !important;
}

.laboratorios-content tbody tr {
    transition: all 0.25s ease;
}

.laboratorios-content tbody tr:hover {
    background-color: rgba(109, 17, 48, 0.02) !important;
    transform: scale(1.002);
}

.laboratorios-content tbody td {
    padding: 12px 16px !important;
    border-bottom: 1px solid rgba(109, 17, 48, 0.05) !important;
}

/* Insignias de ubicación estilizadas */
.location-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.35rem 0.75rem;
    background-color: rgba(109, 17, 48, 0.04);
    border: 1px solid rgba(109, 17, 48, 0.08);
    border-radius: 20px;
    color: var(--color-guinda) !important;
    font-weight: 600 !important;
    font-size: 0.82rem;
    transition: all 0.25s ease;
}

.location-badge i {
    color: var(--color-oro);
    font-size: 0.85rem;
}

.laboratorios-content tbody tr:hover .location-badge {
    background-color: rgba(109, 17, 48, 0.08);
    border-color: rgba(109, 17, 48, 0.15);
    transform: translateY(-1px);
}

/* Cabecera del menú lateral de Edificios */
.labs-sidebar-header {
    background: linear-gradient(135deg, var(--color-guinda) 0%, #4a0d1f 100%);
    color: #ffffff;
    border-radius: 10px;
    padding: 0.85rem 1rem;
    text-align: center;
    font-weight: 800;
    letter-spacing: 1.5px;
    font-size: 0.95rem;
    box-shadow: 0 4px 12px rgba(108, 17, 48, 0.2);
}

/* Sub-pestañas de pisos por edificio */
.floor-nav-pills .nav-link {
    background-color: #f8f9fa;
    color: var(--color-gris-oscuro);
    border: 1px solid #dee2e6;
    font-size: 0.88rem;
    font-weight: 600;
    transition: all 0.25s ease;
}

.floor-nav-pills .nav-link:hover {
    background-color: rgba(108, 17, 48, 0.08);
    color: var(--color-guinda);
    border-color: var(--color-guinda);
}

.floor-nav-pills .nav-link.active {
    background-color: var(--color-guinda) !important;
    color: #ffffff !important;
    border-color: var(--color-guinda) !important;
    box-shadow: 0 4px 10px rgba(108, 17, 48, 0.25);
}

/* Tarjeta y contenedor de croquis de piso */
.floor-map-container {
    position: relative;
    border-radius: 10px;
    overflow: hidden;
    background: #ffffff;
    border: 1px solid rgba(108, 17, 48, 0.15);
    transition: all 0.3s ease;
}

.floor-map-container:hover {
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
    border-color: var(--color-guinda);
}

.floor-map-img {
    width: 100%;
    height: auto;
    max-height: 280px;
    object-fit: contain;
    background: #ffffff;
    transition: transform 0.3s ease;
    cursor: pointer;
}

.floor-map-container:hover .floor-map-img {
    transform: scale(1.02);
}

/* Cajas Destacadas de Información Adicional */
.labs-info-container {
    display: flex;
    gap: 1rem;
    margin-top: 2rem;
}

.labs-info-box {
    flex: 1;
    background: #ffffff;
    border-radius: 12px;
    padding: 1.25rem 1.5rem;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.02);
    display: flex;
    gap: 1.2rem;
    align-items: flex-start;
    transition: all 0.3s ease;
}

.labs-info-box-horarios {
    border: 1px solid rgba(199, 169, 81, 0.15);
    border-left: 5px solid var(--color-oro);
}

.labs-info-box-normas {
    border: 1px solid rgba(109, 17, 48, 0.1);
    border-left: 5px solid var(--color-guinda);
}

.labs-info-box:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.05);
}

.labs-info-box-horarios:hover {
    border-color: rgba(199, 169, 81, 0.3);
}

.labs-info-box-normas:hover {
    border-color: rgba(109, 17, 48, 0.2);
}

.labs-info-icon-wrapper {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.labs-info-box-horarios .labs-info-icon-wrapper {
    background-color: rgba(199, 169, 81, 0.08);
    color: var(--color-oro);
}

.labs-info-box-normas .labs-info-icon-wrapper {
    background-color: rgba(109, 17, 48, 0.05);
    color: var(--color-guinda);
}

.labs-info-icon-wrapper i {
    font-size: 1.2rem;
}

.labs-info-text-wrapper h6 {
    font-weight: 700;
    margin-bottom: 0.35rem;
    font-size: 0.95rem;
}

.labs-info-box-horarios h6 {
    color: #b08d2b;
}

.labs-info-box-normas h6 {
    color: var(--color-guinda);
}

.labs-info-text-wrapper p {
    font-size: 0.85rem !important;
    line-height: 1.6 !important;
    color: var(--color-gris-oscuro);
    margin-bottom: 0 !important;
}

@media (max-width: 768px) {
    .labs-info-container {
        flex-direction: column;
    }
}

/* ==========================================================================
   Estilos específicos y animaciones para la sección de Proyectos de Modernización
   ========================================================================== */

/* Rediseño del menú de pestañas horizontal */
.menu_tab_horz {
    text-align: center;
}

.menu_tab_horz .nav-pills {
    background: rgba(109, 17, 48, 0.03) !important;
    border: 1px solid rgba(109, 17, 48, 0.06) !important;
    border-radius: 40px !important;
    padding: 6px !important;
    display: inline-flex !important;
    gap: 5px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.02);
}

.menu_tab_horz .nav-link {
    border-radius: 35px !important;
    font-weight: 700 !important;
    font-size: 0.92rem !important;
    color: var(--color-guinda) !important;
    padding: 10px 24px !important;
    transition: all 0.3s ease !important;
    border: 1px solid transparent !important;
    background: transparent !important;
    display: flex;
    align-items: center;
}

.menu_tab_horz .nav-link i {
    font-size: 1rem;
    transition: transform 0.3s ease;
}

.menu_tab_horz .nav-link:hover {
    background: rgba(109, 17, 48, 0.06) !important;
    color: var(--color-guinda) !important;
}

.menu_tab_horz .nav-link:hover i {
    transform: scale(1.1);
}

.menu_tab_horz .nav-link.active {
    background: var(--color-guinda) !important;
    color: #ffffff !important;
    box-shadow: 0 6px 16px rgba(109, 17, 48, 0.22) !important;
}

/* Tarjeta de Proyecto Horizontal Delgado */
.proyectos-content .proy-card {
    background: #ffffff !important;
    border: 1px solid rgba(109, 17, 48, 0.06) !important;
    border-radius: 14px !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.01) !important;
    transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1) !important;
    cursor: pointer;
    overflow: hidden;
}

.proyectos-content .proy-card:hover {
    transform: translateY(-4px);
    border-color: rgba(109, 17, 48, 0.18) !important;
    box-shadow: 0 10px 25px rgba(109, 17, 48, 0.07) !important;
}

/* Badge de Proyecto */
.proy-badge {
    font-size: 0.68rem !important;
    text-transform: uppercase;
    font-weight: 700 !important;
    letter-spacing: 0.5px;
    padding: 0.25rem 0.6rem;
    border-radius: 10px;
    background-color: rgba(109, 17, 48, 0.04);
    color: var(--color-guinda);
    display: inline-block;
}

/* Círculo del Icono */
.proy-icon-circle {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: rgba(109, 17, 48, 0.04);
    color: var(--color-guinda);
    font-size: 1rem;
    transition: all 0.3s ease;
    flex-shrink: 0;
}

.proyectos-content .proy-card:hover .proy-icon-circle {
    background-color: var(--color-guinda);
    color: #ffffff;
    transform: rotate(15deg) scale(1.05);
}

/* Botón Personalizado Guinda */
.btn-outline-guinda {
    border: 1px solid var(--color-guinda) !important;
    color: var(--color-guinda) !important;
    font-weight: 700 !important;
    font-size: 0.85rem !important;
    padding: 8px 16px !important;
    border-radius: 20px !important;
    background-color: transparent;
    transition: all 0.25s ease !important;
}

.btn-outline-guinda:hover {
    background-color: var(--color-guinda) !important;
    color: #ffffff !important;
    box-shadow: 0 4px 10px rgba(109, 17, 48, 0.2) !important;
}

/* Animación Staggered para entrada de tarjetas */
.proyectos-content .tab-pane.active .proy-card {
    animation: slideUpFade 0.5s cubic-bezier(0.25, 0.8, 0.25, 1) forwards;
    opacity: 0;
}

/* Retrasos para las tarjetas en grid */
.proyectos-content .tab-pane.active .col:nth-child(1) .proy-card { animation-delay: 0.04s; }
.proyectos-content .tab-pane.active .col:nth-child(2) .proy-card { animation-delay: 0.08s; }
.proyectos-content .tab-pane.active .col:nth-child(3) .proy-card { animation-delay: 0.12s; }
.proyectos-content .tab-pane.active .col:nth-child(4) .proy-card { animation-delay: 0.16s; }
.proyectos-content .tab-pane.active .col:nth-child(5) .proy-card { animation-delay: 0.2s; }
.proyectos-content .tab-pane.active .col:nth-child(6) .proy-card { animation-delay: 0.24s; }
.proyectos-content .tab-pane.active .col:nth-child(7) .proy-card { animation-delay: 0.28s; }
.proyectos-content .tab-pane.active .col:nth-child(8) .proy-card { animation-delay: 0.32s; }

/* Estilos para el Modal de Proyectos */
#projectDetailModal .modal-content {
    border-radius: 20px !important;
    border: none !important;
    overflow: hidden;
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.3) !important;
}

#projectDetailModal .modal-header {
    background-color: var(--color-guinda) !important;
    border: none !important;
    padding: 18px 24px !important;
}

#projectDetailModal .modal-title {
    font-size: 1.15rem !important;
    font-weight: 700 !important;
    color: #ffffff !important;
}

#projectDetailModal .modal-body {
    padding: 2rem !important;
    background-color: #ffffff;
    max-height: 80vh;
    overflow-y: auto;
}

#projectDetailModal .modal-body p {
    font-size: 0.92rem !important;
    line-height: 1.6 !important;
    color: var(--color-gris-oscuro);
}

#projectDetailModal .modal-body ul {
    font-size: 0.9rem;
    color: var(--color-gris-oscuro);
    padding-left: 1.25rem;
    margin-bottom: 1.25rem;
}

#projectDetailModal .modal-body ul li {
    margin-bottom: 0.4rem;
}

#projectDetailModal .modal-body h6 {
    font-weight: 700;
    margin-top: 1rem;
    margin-bottom: 0.5rem;
    color: var(--color-guinda);
}

#projectDetailModal .modal-body img {
    border: 1px solid rgba(0,0,0,0.05);
    border-radius: 12px;
}

/* ==========================================================================
   Estilos específicos y animaciones para la sección de Normatividad (UDI)
   ========================================================================== */

/* Tarjetas de Normatividad */
.normatividad-content .norm-card {
    background: #ffffff !important;
    border: 1px solid rgba(109, 17, 48, 0.06) !important;
    border-radius: 16px !important;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.02) !important;
    transition: all 0.35s cubic-bezier(0.25, 0.8, 0.25, 1) !important;
    cursor: pointer;
    overflow: hidden;
}

.normatividad-content .norm-card.draft {
    cursor: not-allowed;
    background: #fbfbfc !important;
    border: 1px solid rgba(0, 0, 0, 0.04) !important;
}

.normatividad-content .norm-card:not(.draft):hover {
    transform: translateY(-6px);
    border-color: rgba(109, 17, 48, 0.18) !important;
    box-shadow: 0 12px 30px rgba(109, 17, 48, 0.08) !important;
}

/* Badge de Estado */
.norm-badge {
    font-size: 0.68rem !important;
    text-transform: uppercase;
    font-weight: 700 !important;
    letter-spacing: 0.5px;
    padding: 0.3rem 0.7rem;
    border-radius: 12px;
}

.norm-badge.vigente {
    background-color: rgba(109, 17, 48, 0.06);
    color: var(--color-guinda);
}

.norm-badge.revision {
    background-color: rgba(199, 169, 81, 0.1);
    color: var(--color-oro);
}

/* Iconos de las tarjetas */
.norm-icon-circle {
    width: 46px;
    height: 46px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: rgba(109, 17, 48, 0.04);
    color: var(--color-guinda);
    font-size: 1.15rem;
    transition: all 0.3s ease;
    flex-shrink: 0;
}

.norm-card.draft .norm-icon-circle {
    background-color: rgba(0, 0, 0, 0.03);
    color: #6c757d;
}

.normatividad-content .norm-card:not(.draft):hover .norm-icon-circle {
    background-color: var(--color-guinda);
    color: #ffffff;
    transform: scale(1.05);
}

/* Animación Staggered para Normatividad */
.normatividad-content .norm-card {
    animation: slideUpFade 0.5s cubic-bezier(0.25, 0.8, 0.25, 1) forwards;
    opacity: 0;
}

.normatividad-content .col:nth-child(1) .norm-card { animation-delay: 0.05s; }
.normatividad-content .col:nth-child(2) .norm-card { animation-delay: 0.1s; }
.normatividad-content .col:nth-child(3) .norm-card { animation-delay: 0.15s; }
.normatividad-content .col:nth-child(4) .norm-card { animation-delay: 0.2s; }

/* Estilos de las pestañas en el modal de privacidad */
.norm-modal-tabs .nav-pills {
    background: rgba(109, 17, 48, 0.03) !important;
    border: 1px solid rgba(109, 17, 48, 0.06) !important;
    border-radius: 30px !important;
    padding: 4px !important;
    display: inline-flex !important;
}

.norm-modal-tabs .nav-link {
    border-radius: 25px !important;
    font-weight: 700 !important;
    font-size: 0.85rem !important;
    color: var(--color-guinda) !important;
    padding: 8px 18px !important;
    transition: all 0.25s ease !important;
    background: transparent !important;
    border: none !important;
}

.norm-modal-tabs .nav-link.active {
    background: var(--color-guinda) !important;
    color: #ffffff !important;
    box-shadow: 0 4px 10px rgba(109, 17, 48, 0.2) !important;
}

/* Tarjetas compactas animadas (ej. modal de privacidad) */
.compact-feature-card {
    transition: all 0.3s ease !important;
    border: 1px solid rgba(109, 17, 48, 0.08) !important;
    background-color: #fcfcfc !important;
}

.compact-feature-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 20px rgba(109, 17, 48, 0.1) !important;
    border-color: rgba(109, 17, 48, 0.25) !important;
    background-color: #ffffff !important;
}

.compact-feature-card:hover .text-guinda i {
    transform: scale(1.15);
    transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.compact-feature-card .text-guinda i {
    transition: transform 0.3s ease;
}

/* Efecto hover para tarjetas de redes inalámbricas */
.network-card {
    transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1) !important;
    border: 1px solid rgba(109, 17, 48, 0.05) !important;
}

.network-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 15px 35px rgba(109, 17, 48, 0.12) !important;
    border-color: rgba(109, 17, 48, 0.25) !important;
}

.network-card .bg-light {
    transition: background 0.3s ease !important;
}

.network-card:hover .bg-light {
    background: rgba(109, 17, 48, 0.04) !important;
}

/* Responsive main container */
@media (min-width: 992px) {
    #main-content-container {
        max-width: 72% !important;
    }
}



/* Reveal on Scroll Global Effects */
.scroll-reveal {
    opacity: 0;
    transform: translateY(40px);
    transition: all 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    will-change: opacity, transform;
}
.scroll-reveal.visible {
    opacity: 1;
    transform: translateY(0);
}
