:root {
        --indem-orange: #f39323;
        --indem-orange-dark: #d97706;
        --indem-navy: #0e1525;
        --indem-panel: rgba(14, 21, 37, 0.88);
        --indem-border: rgba(255, 255, 255, 0.10);
        --indem-text: #f8fafc;
        --indem-muted: #cbd5e1;
    }

    html,
    body {
        margin: 0;
        min-height: 100%;
    }

    body.page-inicio {
        min-height: 100vh;
        overflow-x: hidden;
        color: var(--indem-text);
        font-family: 'Poppins', sans-serif;
        background:
            linear-gradient(180deg, rgba(5, 10, 20, 0.70), rgba(5, 10, 20, 0.96)),
            url('../../imagenes/INDEM.PNGFONDO.png') center / cover fixed;
    }

    .home-shell,
    .home-shell * {
        box-sizing: border-box;
    }

    .home-shell {
        width: 100%;
        padding: clamp(18px, 3vw, 42px) 0 54px;
    }

    .home-container {
        width: min(1500px, calc(100% - 40px));
        margin-inline: auto;
    }

    .home-glass {
        background: linear-gradient(145deg, rgba(17, 24, 39, 0.92), rgba(8, 13, 25, 0.88));
        border: 1px solid var(--indem-border);
        border-radius: 26px;
        box-shadow: 0 24px 60px rgba(0, 0, 0, 0.36);
        backdrop-filter: blur(18px);
        -webkit-backdrop-filter: blur(18px);
    }

    /* Banner REMUDE */
    .remude-banner {
        position: relative;
        isolation: isolate;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 28px;
        padding: clamp(22px, 3vw, 38px);
        margin-bottom: 28px;
        overflow: hidden;
    }

    .remude-banner::before {
        content: '';
        position: absolute;
        inset: 0;
        z-index: -1;
        background:
            radial-gradient(circle at 85% 0%, rgba(243, 147, 35, 0.28), transparent 36%),
            linear-gradient(120deg, rgba(255, 255, 255, 0.03), transparent 45%);
    }

    .remude-banner__content {
        display: flex;
        align-items: center;
        min-width: 0;
        gap: 18px;
    }

    .remude-banner__logo {
        width: 88px;
        height: 88px;
        flex: 0 0 88px;
        display: grid;
        place-items: center;
        overflow: hidden;
        border: 1px solid rgba(243, 147, 35, 0.35);
        border-radius: 22px;
        background: rgba(255, 255, 255, 0.06);
    }

    .remude-banner__logo img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    .remude-badge {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        padding: 7px 13px;
        margin-bottom: 10px;
        border: 1px solid rgba(243, 147, 35, 0.35);
        border-radius: 999px;
        background: rgba(243, 147, 35, 0.12);
        color: #ffad4d;
        font-size: 0.74rem;
        font-weight: 800;
        letter-spacing: 0.08em;
    }

    .remude-banner h1 {
        margin: 0;
        color: #fff;
        font-size: clamp(1.28rem, 2vw, 1.9rem);
        line-height: 1.2;
    }

    .remude-banner p {
        max-width: 780px;
        margin: 9px 0 0;
        color: var(--indem-muted);
        font-size: 0.96rem;
        line-height: 1.65;
    }

    .home-button {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 9px;
        min-height: 48px;
        padding: 12px 22px;
        border: 1px solid transparent;
        border-radius: 999px;
        color: #111827;
        background: var(--indem-orange);
        box-shadow: 0 10px 24px rgba(243, 147, 35, 0.20);
        font-size: 0.85rem;
        font-weight: 800;
        letter-spacing: 0.035em;
        line-height: 1;
        text-align: center;
        text-decoration: none;
        cursor: pointer;
        transition: transform 180ms ease, background 180ms ease, color 180ms ease, box-shadow 180ms ease;
    }

    .home-button:hover,
    .home-button:focus-visible {
        color: #fff;
        background: var(--indem-orange-dark);
        box-shadow: 0 14px 30px rgba(243, 147, 35, 0.28);
        transform: translateY(-2px);
    }

    .home-button--ghost {
        color: #fff;
        border-color: rgba(255, 255, 255, 0.15);
        background: rgba(255, 255, 255, 0.08);
        box-shadow: none;
    }

    .home-button--ghost:hover,
    .home-button--ghost:focus-visible {
        color: #fff;
        border-color: rgba(243, 147, 35, 0.50);
        background: rgba(243, 147, 35, 0.15);
    }

    /* Paneles */
    .media-grid {
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
        gap: 28px;
    }

    .media-panel {
        min-width: 0;
        padding: clamp(18px, 2.2vw, 30px);
    }

    .media-panel__header {
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        gap: 18px;
        margin-bottom: 20px;
    }

    .media-panel__eyebrow {
        display: block;
        margin-bottom: 5px;
        color: #94a3b8;
        font-size: 0.73rem;
        font-weight: 700;
        letter-spacing: 0.15em;
        text-transform: uppercase;
    }

    .media-panel__title {
        margin: 0;
        color: var(--indem-orange);
        font-size: clamp(1.3rem, 2vw, 1.85rem);
        font-weight: 900;
        letter-spacing: 0.02em;
        line-height: 1.2;
        text-transform: uppercase;
    }

    .media-panel__counter {
        flex: 0 0 auto;
        min-width: 60px;
        padding: 8px 11px;
        border: 1px solid rgba(255, 255, 255, 0.10);
        border-radius: 999px;
        color: #cbd5e1;
        background: rgba(255, 255, 255, 0.05);
        font-size: 0.78rem;
        font-weight: 700;
        text-align: center;
    }

    .media-stage {
        position: relative;
        min-height: 440px;
        overflow: hidden;
        border: 1px solid rgba(255, 255, 255, 0.08);
        border-radius: 22px;
        background: #080b12;
    }

    .media-stage:focus-visible {
        outline: 3px solid rgba(243, 147, 35, 0.45);
        outline-offset: 3px;
    }

    .media-loading,
    .media-empty,
    .media-error {
        position: absolute;
        inset: 0;
        display: grid;
        place-content: center;
        gap: 12px;
        padding: 34px;
        color: #cbd5e1;
        text-align: center;
    }

    .media-state__icon {
        width: 54px;
        height: 54px;
        margin-inline: auto;
        display: grid;
        place-items: center;
        border: 1px solid rgba(243, 147, 35, 0.32);
        border-radius: 50%;
        color: var(--indem-orange);
        background: rgba(243, 147, 35, 0.10);
        font-size: 1.3rem;
    }

    .media-loading .media-state__icon {
        animation: homePulse 1.25s ease-in-out infinite;
    }

    @keyframes homePulse {
        50% { transform: scale(1.08); opacity: 0.72; }
    }

    /* Noticias */
    .news-card {
        position: absolute;
        inset: 0;
        display: block;
        overflow: hidden;
        color: #fff;
        text-decoration: none;
        background: #0a0e18;
    }

    .news-card:hover,
    .news-card:focus-visible {
        color: #fff;
    }

    .news-card__image {
        width: 100%;
        height: 100%;
        display: block;
        object-fit: cover;
        object-position: center;
        transition: transform 600ms ease, filter 600ms ease;
    }

    .news-card:hover .news-card__image,
    .news-card:focus-visible .news-card__image {
        transform: scale(1.035);
        filter: saturate(1.05);
    }

    .news-card__image.is-fallback {
        object-fit: cover;
        filter: brightness(0.55) saturate(0.75);
    }

    .news-card__shade {
        position: absolute;
        inset: 0;
        background:
            linear-gradient(180deg, rgba(0, 0, 0, 0.05) 30%, rgba(3, 7, 18, 0.50) 58%, rgba(3, 7, 18, 0.96) 100%),
            linear-gradient(90deg, rgba(3, 7, 18, 0.20), transparent 55%);
    }

    .news-card__content {
        position: absolute;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 2;
        padding: clamp(22px, 4vw, 34px);
    }

    .news-card__meta {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 9px;
        margin-bottom: 10px;
        color: #e2e8f0;
        font-size: 0.78rem;
        font-weight: 700;
    }

    .news-card__source {
        display: inline-flex;
        align-items: center;
        gap: 6px;
        padding: 6px 10px;
        border: 1px solid rgba(255, 255, 255, 0.15);
        border-radius: 999px;
        background: rgba(15, 23, 42, 0.66);
        backdrop-filter: blur(8px);
    }

    .news-card__title {
        max-width: 95%;
        margin: 0;
        display: -webkit-box;
        overflow: hidden;
        color: #fff;
        font-size: clamp(1.1rem, 2vw, 1.55rem);
        font-weight: 800;
        line-height: 1.38;
        text-wrap: balance;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 3;
    }

    .news-card__cta {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        margin-top: 14px;
        color: #ffc47f;
        font-size: 0.82rem;
        font-weight: 800;
    }

    /* Video */
    .media-panel--video {
        background: linear-gradient(
            145deg,
            rgba(17, 24, 39, 0.98),
            rgba(8, 13, 25, 0.98)
        );

        /*
         * Chrome puede mostrar una superficie negra cuando un video está
         * dentro de un elemento con backdrop-filter. En pantalla completa
         * el video sale de esa capa y por eso sí se veía.
         */
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
    }

    #video-stage {
        height: clamp(440px, 34vw, 540px);
        min-height: 440px;
        overflow: hidden;
        isolation: isolate;
        background: #000;
        transform: translateZ(0);
        -webkit-transform: translateZ(0);
    }

    .video-card {
        position: absolute;
        inset: 0;
        z-index: 1;
        display: flex;
        min-width: 0;
        min-height: 0;
        flex-direction: column;
        overflow: hidden;
        background: #05070c;
        isolation: isolate;
    }

    .video-card__player {
        position: relative;
        width: 100%;
        min-width: 0;
        min-height: 0;
        flex: 1 1 0;
        overflow: hidden;
        background: #000;

        /*
         * Crea una capa de composición independiente para evitar que
         * el navegador pinte únicamente el audio y los controles.
         */
        isolation: isolate;
        transform: translateZ(0);
        -webkit-transform: translateZ(0);
        backface-visibility: hidden;
        -webkit-backface-visibility: hidden;
    }

    .video-card__poster {
        position: absolute;
        inset: 0;
        z-index: 1;
        width: 100%;
        height: 100%;
        display: block;
        object-fit: contain;
        object-position: center;
        background: #000;
        opacity: 1;
        visibility: visible;
        pointer-events: none;
        transition:
            opacity 220ms ease,
            visibility 220ms ease;
    }

    .video-card__player.is-playing .video-card__poster {
        opacity: 0;
        visibility: hidden;
    }

    .video-card video {
        position: absolute;
        inset: 0;
        z-index: 2;
        width: 100%;
        height: 100%;
        min-width: 100%;
        min-height: 100%;
        display: block;
        border: 0;
        outline: 0;
        object-fit: contain;
        object-position: center;
        background: transparent;
        opacity: 0;
        visibility: visible;

        transform: translateZ(0);
        -webkit-transform: translateZ(0);
        backface-visibility: hidden;
        -webkit-backface-visibility: hidden;
        will-change: transform, opacity;

        transition: opacity 180ms ease;
    }

    .video-card__player.is-ready video {
        opacity: 1;
    }

    .video-card__footer {
        position: relative;
        z-index: 4;
        display: flex;
        align-items: center;
        justify-content: space-between;
        flex: 0 0 auto;
        gap: 16px;
        min-height: 62px;
        padding: 14px 17px;
        border-top: 1px solid rgba(255, 255, 255, 0.08);
        background: linear-gradient(
            90deg,
            rgba(17, 24, 39, 0.99),
            rgba(10, 14, 24, 0.99)
        );
    }

    .video-card__caption {
        min-width: 0;
        margin: 0;
        display: -webkit-box;
        overflow: hidden;
        color: #e5e7eb;
        font-size: 0.86rem;
        font-weight: 600;
        line-height: 1.4;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
    }

    .video-card__link {
        flex: 0 0 auto;
        display: inline-flex;
        align-items: center;
        gap: 7px;
        padding: 8px 11px;
        border: 1px solid rgba(243, 147, 35, 0.30);
        border-radius: 999px;
        color: #ffb45e;
        background: rgba(243, 147, 35, 0.08);
        font-size: 0.76rem;
        font-weight: 800;
        text-decoration: none;
        white-space: nowrap;
        transition:
            color 180ms ease,
            border-color 180ms ease,
            background 180ms ease;
    }

    .video-card__link:hover,
    .video-card__link:focus-visible {
        color: #fff;
        border-color: rgba(243, 147, 35, 0.68);
        background: rgba(243, 147, 35, 0.22);
    }

    /* SOCIAL_FEED_V2_START */
    .facebook-card,
    .instagram-card {
        position: absolute;
        inset: 0;
        z-index: 1;
        display: flex;
        min-width: 0;
        min-height: 0;
        flex-direction: column;
        overflow: hidden;
        color: #fff;
        background:
            radial-gradient(circle at 80% 10%, rgba(243, 147, 35, 0.16), transparent 38%),
            linear-gradient(145deg, #111827, #080b12);
        text-decoration: none;
    }

    .facebook-card:hover,
    .facebook-card:focus-visible,
    .instagram-card:hover,
    .instagram-card:focus-visible {
        color: #fff;
    }

    .facebook-card__media,
    .instagram-card__media {
        position: relative;
        flex: 1 1 auto;
        min-height: 0;
        overflow: hidden;
        background: #05070c;
    }

    .facebook-card__image,
    .instagram-card__image {
        width: 100%;
        height: 100%;
        display: block;
        object-fit: cover;
        object-position: center;
        transition: transform 500ms ease, filter 500ms ease;
    }

    .facebook-card:hover .facebook-card__image,
    .facebook-card:focus-visible .facebook-card__image,
    .instagram-card:hover .instagram-card__image,
    .instagram-card:focus-visible .instagram-card__image {
        transform: scale(1.025);
        filter: saturate(1.05);
    }

    .facebook-card__shade,
    .instagram-card__shade {
        position: absolute;
        inset: 0;
        background:
            linear-gradient(180deg, rgba(0, 0, 0, 0.02) 36%, rgba(3, 7, 18, 0.35) 66%, rgba(3, 7, 18, 0.90) 100%);
        pointer-events: none;
    }

    .facebook-card__empty {
        width: 100%;
        height: 100%;
        display: grid;
        place-content: center;
        gap: 14px;
        padding: 42px;
        color: #dbeafe;
        text-align: center;
        background:
            radial-gradient(circle at 50% 30%, rgba(24, 119, 242, 0.25), transparent 36%),
            linear-gradient(145deg, #111827, #070b14);
    }

    .facebook-card__empty i {
        color: #60a5fa;
        font-size: 4.2rem;
    }

    .facebook-card__body,
    .instagram-card__footer {
        position: relative;
        z-index: 4;
        flex: 0 0 auto;
        padding: 17px 18px 18px;
        border-top: 1px solid rgba(255, 255, 255, 0.08);
        background: linear-gradient(90deg, rgba(17, 24, 39, 0.99), rgba(8, 12, 22, 0.99));
    }

    .facebook-card__meta,
    .instagram-card__meta {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 8px;
        margin-bottom: 9px;
        color: #cbd5e1;
        font-size: 0.74rem;
        font-weight: 700;
    }

    .social-badge {
        display: inline-flex;
        align-items: center;
        gap: 6px;
        padding: 6px 9px;
        border: 1px solid rgba(255, 255, 255, 0.13);
        border-radius: 999px;
        color: #f8fafc;
        background: rgba(255, 255, 255, 0.07);
        font-size: 0.69rem;
        font-weight: 800;
        letter-spacing: 0.04em;
        text-transform: uppercase;
    }

    .social-badge--facebook {
        border-color: rgba(96, 165, 250, 0.30);
        color: #bfdbfe;
        background: rgba(24, 119, 242, 0.16);
    }

    .social-badge--instagram {
        border-color: rgba(244, 114, 182, 0.30);
        color: #fbcfe8;
        background: rgba(219, 39, 119, 0.14);
    }

    .social-badge--orange {
        border-color: rgba(243, 147, 35, 0.34);
        color: #ffd29e;
        background: rgba(243, 147, 35, 0.14);
    }

    .facebook-card__title,
    .instagram-card__caption {
        margin: 0;
        display: -webkit-box;
        overflow: hidden;
        color: #fff;
        font-weight: 800;
        line-height: 1.38;
        -webkit-box-orient: vertical;
    }

    .facebook-card__title {
        font-size: clamp(1rem, 1.5vw, 1.3rem);
        -webkit-line-clamp: 2;
    }

    .facebook-card__description {
        margin: 8px 0 0;
        display: -webkit-box;
        overflow: hidden;
        color: #cbd5e1;
        font-size: 0.84rem;
        line-height: 1.5;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
    }

    .facebook-card__cta,
    .instagram-card__cta {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        margin-top: 12px;
        color: #ffbd70;
        font-size: 0.76rem;
        font-weight: 900;
        letter-spacing: 0.04em;
    }

    .instagram-card__caption {
        font-size: 0.86rem;
        -webkit-line-clamp: 2;
    }

    .instagram-card__play-overlay {
        position: absolute;
        inset: 0;
        z-index: 3;
        display: grid;
        place-items: center;
        pointer-events: none;
    }

    .instagram-card__play-overlay span {
        width: 68px;
        height: 68px;
        display: grid;
        place-items: center;
        border: 1px solid rgba(255, 255, 255, 0.30);
        border-radius: 50%;
        color: #fff;
        background: rgba(0, 0, 0, 0.58);
        box-shadow: 0 12px 28px rgba(0, 0, 0, 0.32);
        backdrop-filter: blur(8px);
        font-size: 1.35rem;
    }

    @media (max-width: 760px) {
        .facebook-card__body,
        .instagram-card__footer {
            padding: 14px;
        }

        .facebook-card__description {
            -webkit-line-clamp: 3;
        }
    }
    /* SOCIAL_FEED_V2_END */

    /* Navegación */
    .media-arrow {
        position: absolute;
        top: 50%;
        z-index: 8;
        width: 46px;
        height: 46px;
        display: grid;
        place-items: center;
        padding: 0;
        border: 1px solid rgba(255, 255, 255, 0.16);
        border-radius: 50%;
        color: #fff;
        background: rgba(10, 15, 28, 0.66);
        box-shadow: 0 10px 22px rgba(0, 0, 0, 0.25);
        backdrop-filter: blur(8px);
        cursor: pointer;
        transform: translateY(-50%);
        transition: background 180ms ease, border-color 180ms ease, transform 180ms ease, opacity 180ms ease;
    }

    .media-arrow:hover,
    .media-arrow:focus-visible {
        border-color: rgba(243, 147, 35, 0.65);
        background: rgba(243, 147, 35, 0.88);
        transform: translateY(-50%) scale(1.05);
    }

    .media-arrow:disabled {
        opacity: 0;
        pointer-events: none;
    }

    .media-arrow--prev { left: 14px; }
    .media-arrow--next { right: 14px; }

    .media-dots {
        min-height: 24px;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 8px;
        margin-top: 16px;
    }

    .media-dot {
        width: 8px;
        height: 8px;
        padding: 0;
        border: 0;
        border-radius: 999px;
        background: rgba(255, 255, 255, 0.28);
        cursor: pointer;
        transition: width 180ms ease, background 180ms ease;
    }

    .media-dot.is-active {
        width: 28px;
        background: var(--indem-orange);
    }

    .media-panel__footer {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 12px;
        flex-wrap: wrap;
        margin-top: 18px;
    }

    @media (max-width: 1120px) {
        .media-grid {
            grid-template-columns: 1fr;
        }

        .media-stage {
            min-height: 500px;
        }

        #video-stage {
            height: clamp(470px, 64vw, 570px);
            min-height: 470px;
        }
    }

    @media (max-width: 760px) {
        .home-container {
            width: min(100% - 24px, 1500px);
        }

        #video-stage {
            height: clamp(410px, 112vw, 560px);
            min-height: 410px;
        }

        .home-shell {
            padding-top: 14px;
        }

        .remude-banner {
            align-items: stretch;
            flex-direction: column;
        }

        .remude-banner__content {
            align-items: flex-start;
        }

        .remude-banner .home-button {
            width: 100%;
        }

        .media-panel__header {
            align-items: center;
        }

        .media-stage {
            min-height: 390px;
        }

        .news-card__title {
            max-width: 100%;
            font-size: 1.05rem;
            -webkit-line-clamp: 4;
        }

        .video-card__footer {
            align-items: flex-start;
            flex-direction: column;
            gap: 8px;
        }

        .video-card__caption {
            max-width: 100%;
            white-space: normal;
        }
    }

    @media (max-width: 520px) {
        .remude-banner__content {
            flex-direction: column;
        }

        .remude-banner__logo {
            width: 72px;
            height: 72px;
            flex-basis: 72px;
        }

        .media-panel {
            padding: 16px;
            border-radius: 20px;
        }

        .media-stage {
            min-height: 350px;
            border-radius: 18px;
        }

        .media-arrow {
            width: 42px;
            height: 42px;
        }

        #video-stage {
            height: 430px;
            min-height: 430px;
        }

        .video-card__footer {
            gap: 9px;
            padding: 12px;
        }

        .video-card__caption {
            font-size: 0.78rem;
            -webkit-line-clamp: 2;
        }

        .video-card__link {
            padding: 7px 9px;
            font-size: 0.68rem;
        }

        .media-arrow--prev { left: 9px; }
        .media-arrow--next { right: 9px; }
    }

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