/* Modern Media Gallery 1.4.10 */
.nxmg-gallery {
    --nxmg-gap: 12px;
    --nxmg-radius: 10px;
    --nxmg-cols: 4;
    --nxmg-cols-tablet: 3;
    --nxmg-cols-mobile: 2;
    --nxmg-gallery-max: 1316px;
    --nxmg-bento-row: 1px;
    position: relative !important;
    left: auto !important;
    right: auto !important;
    width: 100% !important;
    max-width: min(100%, var(--nxmg-gallery-max)) !important;
    min-width: 0 !important;
    margin: 0 auto !important;
    padding: 0 !important;
    transform: none !important;
    overflow: visible !important;
    box-sizing: border-box !important;
}

.nxmg-gallery *,
.nxmg-gallery *::before,
.nxmg-gallery *::after,
.nxmg-lightbox *,
.nxmg-lightbox *::before,
.nxmg-lightbox *::after {
    box-sizing: border-box !important;
}

/* La tarjeta ya no es un <button>. Aun así se resetea de forma agresiva para
   que ningún tema de WordPress pueda imponer altura, padding o aspect-ratio. */
.nxmg-card {
    all: unset;
    box-sizing: border-box !important;
    position: relative !important;
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    aspect-ratio: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: var(--nxmg-radius) !important;
    overflow: hidden !important;
    background: transparent !important;
    cursor: pointer !important;
    text-align: left !important;
    color: inherit !important;
    isolation: isolate;
    line-height: 0 !important;
    vertical-align: top !important;
    font: inherit !important;
    box-shadow: 0 5px 18px rgba(16, 24, 40, .08) !important;
    -webkit-tap-highlight-color: transparent;
}

.nxmg-card:focus-visible {
    outline: 3px solid currentColor !important;
    outline-offset: 3px !important;
}

.nxmg-visual {
    position: relative !important;
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    aspect-ratio: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    border: 0 !important;
    border-radius: inherit !important;
    line-height: 0 !important;
    background: transparent !important;
}

.nxmg-thumb-image,
.nxmg-thumb-video {
    position: static !important;
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    vertical-align: top !important;
    object-position: center !important;
    background: transparent !important;
}

.nxmg-thumb-image {
    aspect-ratio: auto !important;
    object-fit: contain !important;
}

.nxmg-thumb-video {
    aspect-ratio: var(--nxmg-item-aspect, 16 / 9) !important;
    object-fit: cover !important;
    background: #0d0f12 !important;
}

/* GRID UNIFORME: deliberadamente cuadrado. */
.nxmg-layout-grid {
    display: grid !important;
    grid-template-columns: repeat(var(--nxmg-cols), minmax(0, 1fr)) !important;
    gap: var(--nxmg-gap) !important;
    align-items: start !important;
}

.nxmg-layout-grid .nxmg-card {
    aspect-ratio: 1 / 1 !important;
    height: auto !important;
}

.nxmg-layout-grid .nxmg-visual {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
}

.nxmg-layout-grid .nxmg-thumb-image,
.nxmg-layout-grid .nxmg-thumb-video {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    max-height: 100% !important;
    aspect-ratio: auto !important;
    object-fit: cover !important;
}

/* MASONRY + BENTO 1.4.0
   ---------------------------------------------------------------
   Estos dos modos YA NO dependen de CSS Columns ni de Grid rows.
   frontend.js calcula coordenadas y dimensiones reales de cada pieza.
   Así el tema no puede crear filas/columnas invisibles con alturas enormes. */
.nxmg-layout-masonry,
.nxmg-layout-bento {
    position: relative !important;
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    height: auto;
    margin: 0 auto !important;
    padding: 0 !important;
    overflow: visible !important;
    column-count: auto !important;
    column-width: auto !important;
    column-gap: 0 !important;
    grid-template-columns: none !important;
    grid-template-rows: none !important;
    grid-auto-columns: auto !important;
    grid-auto-rows: auto !important;
    grid-auto-flow: row !important;
    gap: 0 !important;
    align-items: initial !important;
    align-content: initial !important;
}

/* Antes de que JS termine el primer cálculo, mostramos un fallback compacto.
   No hay alturas prefijadas ni aspect-ratio forzado. */
.nxmg-layout-masonry:not(.nxmg-layout-ready),
.nxmg-layout-bento:not(.nxmg-layout-ready) {
    display: grid !important;
    grid-template-columns: repeat(var(--nxmg-cols), minmax(0, 1fr)) !important;
    gap: var(--nxmg-gap) !important;
}

.nxmg-layout-masonry:not(.nxmg-layout-ready) .nxmg-card,
.nxmg-layout-bento:not(.nxmg-layout-ready) .nxmg-card {
    position: relative !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    transform: none !important;
}

.nxmg-layout-masonry:not(.nxmg-layout-ready) .nxmg-visual,
.nxmg-layout-bento:not(.nxmg-layout-ready) .nxmg-visual,
.nxmg-layout-masonry:not(.nxmg-layout-ready) .nxmg-thumb-image,
.nxmg-layout-bento:not(.nxmg-layout-ready) .nxmg-thumb-image {
    position: relative !important;
    inset: auto !important;
    display: block !important;
    width: 100% !important;
    height: auto !important;
}

/* Una vez calculado, cada tarjeta ocupa EXACTAMENTE su rectángulo; no existe
   ningún contenedor más alto detrás de la imagen. */
.nxmg-layout-masonry.nxmg-layout-ready .nxmg-card,
.nxmg-layout-bento.nxmg-layout-ready .nxmg-card {
    position: absolute !important;
    display: block !important;
    min-width: 0 !important;
    min-height: 0 !important;
    max-width: none !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    aspect-ratio: auto !important;
    break-inside: auto !important;
    page-break-inside: auto !important;
}

.nxmg-layout-masonry.nxmg-layout-ready .nxmg-visual,
.nxmg-layout-bento.nxmg-layout-ready .nxmg-visual {
    position: absolute !important;
    inset: 0 !important;
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    max-height: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

.nxmg-layout-masonry.nxmg-layout-ready .nxmg-thumb-image,
.nxmg-layout-bento.nxmg-layout-ready .nxmg-thumb-image,
.nxmg-layout-masonry.nxmg-layout-ready .nxmg-thumb-video,
.nxmg-layout-bento.nxmg-layout-ready .nxmg-thumb-video,
.nxmg-layout-masonry.nxmg-layout-ready .nxmg-social-placeholder,
.nxmg-layout-bento.nxmg-layout-ready .nxmg-social-placeholder,
.nxmg-layout-masonry.nxmg-layout-ready .nxmg-pdf-placeholder,
.nxmg-layout-bento.nxmg-layout-ready .nxmg-pdf-placeholder {
    position: absolute !important;
    inset: 0 !important;
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    max-width: 100% !important;
    max-height: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    aspect-ratio: auto !important;
    object-fit: cover !important;
    object-position: center !important;
}

.nxmg-layout-masonry.nxmg-layout-ready .nxmg-social-placeholder,
.nxmg-layout-bento.nxmg-layout-ready .nxmg-social-placeholder,
.nxmg-layout-masonry.nxmg-layout-ready .nxmg-pdf-placeholder,
.nxmg-layout-bento.nxmg-layout-ready .nxmg-pdf-placeholder {
    display: flex !important;
    padding: 20px !important;
}

.nxmg-overlay {
    position: absolute !important;
    z-index: 3 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    display: grid !important;
    gap: 3px !important;
    padding: 42px 14px 14px !important;
    color: #fff !important;
    background: linear-gradient(180deg, transparent 0%, rgba(0, 0, 0, .72) 100%) !important;
    pointer-events: none !important;
}
.nxmg-overlay strong { font-size: 15px !important; line-height: 1.2 !important; color: inherit !important; }
.nxmg-overlay small { opacity: .88 !important; font-size: 12px !important; line-height: 1.25 !important; color: inherit !important; }

.nxmg-platform-badge {
    position: absolute !important;
    top: 10px !important;
    left: 10px !important;
    z-index: 4 !important;
    display: inline-block !important;
    padding: 6px 9px !important;
    border-radius: 999px !important;
    background: rgba(15, 17, 21, .72) !important;
    color: #fff !important;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    font-size: 11px !important;
    line-height: 1 !important;
    font-weight: 700 !important;
    pointer-events: none !important;
}

.nxmg-play {
    position: absolute !important;
    z-index: 4 !important;
    top: 50% !important;
    left: 50% !important;
    width: 46px !important;
    height: 46px !important;
    transform: translate(-50%, -50%);
    border-radius: 50% !important;
    display: grid !important;
    place-items: center !important;
    background: rgba(255, 255, 255, .9) !important;
    box-shadow: 0 5px 22px rgba(0, 0, 0, .22) !important;
    pointer-events: none !important;
    transition: transform .2s ease;
}
.nxmg-play span {
    width: 0 !important;
    height: 0 !important;
    margin-left: 3px !important;
    border-top: 7px solid transparent !important;
    border-bottom: 7px solid transparent !important;
    border-left: 11px solid #111 !important;
}

.nxmg-social-placeholder {
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    padding: 20px !important;
    color: #fff !important;
    background: linear-gradient(145deg, #1f2937, #0f172a) !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
}
.nxmg-social-instagram { background: linear-gradient(145deg, #833ab4, #fd1d1d, #fcb045) !important; }
.nxmg-social-tiktok { background: linear-gradient(145deg, #101114, #25272d) !important; }
.nxmg-social-facebook { background: linear-gradient(145deg, #1877f2, #0f4fa8) !important; }
.nxmg-social-mark {
    display: grid !important;
    place-items: center !important;
    width: 52px !important;
    height: 52px !important;
    border: 1px solid rgba(255, 255, 255, .4) !important;
    border-radius: 16px !important;
    background: rgba(255, 255, 255, .14) !important;
    font-size: 18px !important;
    line-height: 1 !important;
}

/* PDF: usa la miniatura de WordPress cuando existe; este fallback se muestra
   cuando el servidor no pudo generar una imagen de la primera página. */
.nxmg-pdf-placeholder {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 12px !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    padding: 20px !important;
    color: #fff !important;
    background: linear-gradient(145deg, #20242b, #111318) !important;
    text-align: center !important;
    line-height: 1.2 !important;
}
.nxmg-pdf-icon {
    display: grid !important;
    place-items: center !important;
    width: 58px !important;
    height: 68px !important;
    border: 1px solid rgba(255,255,255,.28) !important;
    border-radius: 10px !important;
    background: rgba(255,255,255,.10) !important;
    color: #fff !important;
    font-size: 14px !important;
    font-weight: 800 !important;
    line-height: 1 !important;
    letter-spacing: .5px !important;
}
.nxmg-pdf-name {
    display: block !important;
    max-width: 90% !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    color: #fff !important;
    font-size: 12px !important;
    line-height: 1.25 !important;
    font-weight: 600 !important;
}

.nxmg-hover-zoom .nxmg-thumb-image,
.nxmg-hover-zoom .nxmg-thumb-video,
.nxmg-hover-zoom .nxmg-social-placeholder,
.nxmg-hover-zoom .nxmg-pdf-placeholder {
    transition: transform .35s cubic-bezier(.2, .7, .2, 1);
}
.nxmg-hover-zoom .nxmg-card:hover .nxmg-thumb-image,
.nxmg-hover-zoom .nxmg-card:hover .nxmg-thumb-video,
.nxmg-hover-zoom .nxmg-card:hover .nxmg-social-placeholder,
.nxmg-hover-zoom .nxmg-card:hover .nxmg-pdf-placeholder {
    transform: scale(1.045);
}
.nxmg-hover-zoom .nxmg-card:hover .nxmg-play { transform: translate(-50%, -50%) scale(1.06); }
.nxmg-hover-lift .nxmg-card { transition: transform .25s ease, box-shadow .25s ease; }
.nxmg-hover-lift .nxmg-card:hover { transform: translateY(-4px); box-shadow: 0 14px 30px rgba(16, 24, 40, .14) !important; }

/* LIGHTBOX: se inserta en BODY con JS para escapar de cualquier contenedor del tema. */
.nxmg-lightbox {
    position: fixed !important;
    inset: 0 !important;
    top: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    left: 0 !important;
    z-index: 2147483000 !important;
    display: none;
    align-items: center;
    justify-content: center;
    width: 100vw !important;
    width: 100dvw !important;
    max-width: none !important;
    min-width: 100vw !important;
    height: 100vh !important;
    height: 100dvh !important;
    max-height: none !important;
    min-height: 100vh !important;
    margin: 0 !important;
    padding: clamp(58px, 6vh, 78px) clamp(58px, 6vw, 100px) clamp(58px, 6vh, 78px) !important;
    border: 0 !important;
    border-radius: 0 !important;
    transform: none !important;
    overflow: hidden !important;
    background: rgba(5,7,10,.97) !important;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    isolation: isolate;
}
.nxmg-lightbox.is-open { display: flex !important; }
.nxmg-lightbox-stage {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    max-width: 100%;
    max-height: 100%;
    overflow: visible;
    border-radius: 10px;
    background: transparent;
    touch-action: pan-y pinch-zoom;
    will-change: transform, opacity;
    transition: transform .16s ease, opacity .16s ease;
}
.nxmg-lightbox-stage.is-touching { transition: none; }
.nxmg-lightbox-stage img,
.nxmg-lightbox-stage video {
    display: block;
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    border: 0;
    border-radius: 10px;
    box-shadow: 0 18px 60px rgba(0,0,0,.28);
}
.nxmg-lightbox-stage video { background: #000; }
.nxmg-lightbox-stage.is-portrait video,
.nxmg-lightbox-stage.is-portrait iframe {
    width: auto;
    height: 100%;
    max-width: min(92vw, 620px);
    aspect-ratio: 9 / 16;
}
.nxmg-lightbox-stage.is-landscape video,
.nxmg-lightbox-stage.is-landscape iframe {
    width: min(100%, 1500px);
    height: auto;
    max-height: 100%;
    aspect-ratio: 16 / 9;
}
.nxmg-lightbox-stage.is-square video,
.nxmg-lightbox-stage.is-square iframe {
    width: auto;
    height: min(100%, 900px);
    aspect-ratio: 1 / 1;
}
.nxmg-lightbox-stage iframe {
    display: block;
    width: min(100%, 1200px);
    height: 100%;
    max-width: 100%;
    max-height: 100%;
    border: 0;
    border-radius: 10px;
    background: #fff;
}
.nxmg-lightbox-close, .nxmg-lightbox-nav {
    position: fixed !important;
    z-index: 2147483002 !important;
    border: 0;
    display: grid;
    place-items: center;
    color: #fff;
    background: rgba(255,255,255,.12);
    cursor: pointer;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}
.nxmg-lightbox-close { top: max(14px, env(safe-area-inset-top)); right: max(14px, env(safe-area-inset-right)); width: 44px; height: 44px; border-radius: 50%; font-size: 32px; line-height: 1; }
.nxmg-lightbox-nav { top: 50%; width: 46px; height: 60px; transform: translateY(-50%); border-radius: 10px; font-size: 25px; }
.nxmg-lightbox-nav:hover, .nxmg-lightbox-close:hover { background: rgba(255,255,255,.2); }
.nxmg-prev { left: max(14px, env(safe-area-inset-left)); }
.nxmg-next { right: max(14px, env(safe-area-inset-right)); }
.nxmg-lightbox-meta { position: fixed !important; z-index: 2147483002 !important; left: 50%; bottom: max(14px, env(safe-area-inset-bottom)); transform: translateX(-50%); max-width: min(760px, 72vw); color: #fff; text-align: center; }
.nxmg-lightbox-meta strong { display: block; font-size: 15px; }
.nxmg-lightbox-meta span { display: block; margin-top: 3px; opacity: .75; font-size: 12px; }
.nxmg-open-social { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; margin-top: 14px; padding: 0 18px; border-radius: 10px; background: #fff; color: #111; text-decoration: none; font-weight: 700; }
html.nxmg-lock, body.nxmg-lock { overflow: hidden !important; overscroll-behavior: none; }

@media (max-width: 900px) {
    .nxmg-layout-grid { grid-template-columns: repeat(var(--nxmg-cols-tablet), minmax(0, 1fr)) !important; }
    .nxmg-layout-masonry:not(.nxmg-layout-ready),
    .nxmg-layout-bento:not(.nxmg-layout-ready) { grid-template-columns: repeat(var(--nxmg-cols-tablet), minmax(0, 1fr)) !important; }
    .nxmg-gallery { max-width: 100% !important; }
    .nxmg-lightbox { padding: 56px 54px !important; }
}

@media (max-width: 600px) {
    .nxmg-layout-grid { grid-template-columns: repeat(var(--nxmg-cols-mobile), minmax(0, 1fr)) !important; }
    .nxmg-layout-masonry:not(.nxmg-layout-ready),
    .nxmg-layout-bento:not(.nxmg-layout-ready) { grid-template-columns: repeat(var(--nxmg-cols-mobile), minmax(0, 1fr)) !important; }
    .nxmg-lightbox { padding: max(56px, env(safe-area-inset-top)) 10px max(62px, calc(env(safe-area-inset-bottom) + 50px)) !important; }
    .nxmg-lightbox-stage.is-portrait video,
    .nxmg-lightbox-stage.is-portrait iframe { width: min(calc(100vw - 20px), calc(78dvh * .5625)); height: auto; max-height: 78dvh; }
    .nxmg-lightbox-stage.is-landscape video,
    .nxmg-lightbox-stage.is-landscape iframe { width: calc(100vw - 20px); height: auto; max-height: 76dvh; }
    .nxmg-lightbox-stage.is-square video,
    .nxmg-lightbox-stage.is-square iframe { width: min(calc(100vw - 20px), 76dvh); height: auto; }
    .nxmg-lightbox-nav { top: auto; bottom: max(10px, env(safe-area-inset-bottom)); transform: none; width: 44px; height: 44px; border-radius: 50%; }
    .nxmg-lightbox-meta { bottom: max(15px, env(safe-area-inset-bottom)); max-width: 62vw; }
    .nxmg-play { width: 40px !important; height: 40px !important; }
    .nxmg-platform-badge { top: 7px !important; left: 7px !important; }
}

/* ================================================================
   1.4.1 — MOBILE EDGE SPACE + TRUE FULLSCREEN LIGHTBOX
   ================================================================ */

/* Mientras el visor está abierto, también pintamos el documento completo.
   Esto cubre safe areas y cualquier franja que Safari/iOS deje fuera del
   rectángulo visible de un elemento fixed. */
html.nxmg-lock,
body.nxmg-lock {
    background: #05070a !important;
    background-color: #05070a !important;
}

/* Underlay sobredimensionado: queda inmediatamente debajo del lightbox y
   evita que asome el fondo del tema al cambiar el tamaño del viewport móvil. */
html.nxmg-lock::before {
    content: "" !important;
    position: fixed !important;
    z-index: 2147482999 !important;
    top: -120px !important;
    right: -120px !important;
    bottom: -120px !important;
    left: -120px !important;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #05070a !important;
    pointer-events: none !important;
}

.nxmg-lightbox {
    width: var(--nxmg-viewport-width, 100dvw) !important;
    min-width: var(--nxmg-viewport-width, 100dvw) !important;
    height: var(--nxmg-viewport-height, 100dvh) !important;
    min-height: var(--nxmg-viewport-height, 100dvh) !important;
    max-width: none !important;
    max-height: none !important;
    background: #05070a !important;
    background-color: #05070a !important;
}

@supports not (height: 100dvh) {
    .nxmg-lightbox {
        width: var(--nxmg-viewport-width, 100vw) !important;
        min-width: var(--nxmg-viewport-width, 100vw) !important;
        height: var(--nxmg-viewport-height, 100vh) !important;
        min-height: var(--nxmg-viewport-height, 100vh) !important;
    }
}

@media (max-width: 600px) {
    /* Margen exterior real. Se reduce el ancho del propio motor de layout,
       por lo que Masonry/Bento recalculan las piezas dentro de este espacio
       y no se recortan ni quedan pegadas a los laterales. */
    .nxmg-gallery {
        width: calc(100% - 24px) !important;
        max-width: calc(100% - 24px) !important;
        margin-left: 12px !important;
        margin-right: 12px !important;
    }

    /* El fondo sigue ocupando todo el viewport; el padding solo protege el
       contenido y los controles de las áreas seguras del dispositivo. */
    .nxmg-lightbox {
        padding-top: max(52px, env(safe-area-inset-top)) !important;
        padding-right: max(8px, env(safe-area-inset-right)) !important;
        padding-bottom: max(56px, env(safe-area-inset-bottom)) !important;
        padding-left: max(8px, env(safe-area-inset-left)) !important;
    }
}

/* Etiquetas manuales. Absolutas para no alterar Masonry, Bento ni Grid.
   v1.4.8: destellos aleatorios y animación optimizada para ser muy fluida. El efecto evita animar
   background-position, box-shadow o coordenadas; los destellos usan casi
   exclusivamente transform + opacity para aprovechar la composición GPU. */
.nxmg-content-badge {
    --nxmg-edge-a: #ffd65a;
    --nxmg-edge-b: #ffad16;
    --nxmg-edge-c: #fff3b0;
    --nxmg-glow: rgba(255, 190, 45, .34);
    --nxmg-glow-strong: rgba(255, 213, 92, .50);
    --nxmg-text: #fff8d6;
    position: absolute !important;
    top: 10px !important;
    right: 10px !important;
    z-index: 6 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 24px !important;
    padding: 6px 11px !important;
    border: 1px solid transparent !important;
    border-radius: 999px !important;
    pointer-events: none !important;
    overflow: visible !important;
    line-height: 1 !important;
    isolation: isolate !important;
    background:
        linear-gradient(rgba(14, 16, 20, .80), rgba(14, 16, 20, .80)) padding-box,
        linear-gradient(105deg, var(--nxmg-edge-a), var(--nxmg-edge-c), var(--nxmg-edge-b)) border-box !important;
    box-shadow:
        0 2px 8px rgba(0, 0, 0, .18),
        0 0 6px var(--nxmg-glow) !important;
    backdrop-filter: blur(7px) !important;
    -webkit-backdrop-filter: blur(7px) !important;
    transform: translate3d(0,0,0);
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
}

/* Halo exterior: solo opacity + transform, evitando repintados pesados. */
.nxmg-content-badge::before {
    content: "" !important;
    position: absolute !important;
    inset: -2px !important;
    z-index: -1 !important;
    border-radius: inherit !important;
    border: 1px solid var(--nxmg-edge-a) !important;
    opacity: .16;
    box-shadow: 0 0 8px var(--nxmg-glow) !important;
    pointer-events: none !important;
    transform: translate3d(0,0,0) scale(.998);
    transform-origin: center;
    will-change: transform, opacity;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
    animation: nxmg-badge-halo-smooth 3.8s cubic-bezier(.45,0,.55,1) infinite !important;
}

.nxmg-badge-text {
    position: relative !important;
    z-index: 3 !important;
    display: inline-block !important;
    color: var(--nxmg-text) !important;
    font-size: 10px !important;
    line-height: 1 !important;
    font-weight: 800 !important;
    letter-spacing: .22px !important;
    white-space: nowrap !important;
    text-shadow: 0 1px 2px rgba(0, 0, 0, .45) !important;
}

/* Destacado: dorado/ámbar. */
.nxmg-badge-featured {
    --nxmg-edge-a: #ffd24a;
    --nxmg-edge-b: #ff9d0a;
    --nxmg-edge-c: #fff5b7;
    --nxmg-glow: rgba(255, 184, 34, .34);
    --nxmg-glow-strong: rgba(255, 217, 88, .58);
    --nxmg-text: #fff4bc;
}

/* Nuevo: azul/cian neón. */
.nxmg-badge-new {
    --nxmg-edge-a: #00eaff;
    --nxmg-edge-b: #3977ff;
    --nxmg-edge-c: #a9fbff;
    --nxmg-glow: rgba(0, 219, 255, .34);
    --nxmg-glow-strong: rgba(64, 143, 255, .60);
    --nxmg-text: #dcfbff;
}

/* Destellos aleatorios v1.4.8.
   JavaScript elige un punto NUEVO del perímetro en cada aparición. La animación
   se ejecuta con Web Animations usando únicamente transform + opacity, de modo
   que el movimiento sigue siendo suave incluso en Safari/iOS. */
.nxmg-badge-glint {
    position: absolute !important;
    z-index: 4 !important;
    display: block !important;
    left: 0 !important;
    top: 0 !important;
    right: auto !important;
    bottom: auto !important;
    width: 11px !important;
    height: 11px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 50% !important;
    pointer-events: none !important;
    opacity: 0;
    transform: translate3d(-30px,-30px,0) scale(.35) rotate(0deg);
    transform-origin: 50% 50%;
    background: radial-gradient(circle,
        #fff 0 9%,
        var(--nxmg-edge-c) 10% 22%,
        var(--nxmg-edge-a) 23% 34%,
        transparent 62%) !important;
    box-shadow:
        0 0 3px rgba(255,255,255,.72),
        0 0 7px var(--nxmg-glow-strong) !important;
    will-change: transform, opacity;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
}

.nxmg-badge-glint::before,
.nxmg-badge-glint::after {
    content: "" !important;
    position: absolute !important;
    left: 50% !important;
    top: 50% !important;
    border-radius: 999px !important;
    transform: translate(-50%, -50%) !important;
    background: linear-gradient(to bottom,
        transparent 0%,
        var(--nxmg-edge-c) 30%,
        #fff 50%,
        var(--nxmg-edge-a) 70%,
        transparent 100%) !important;
    box-shadow: 0 0 4px var(--nxmg-glow-strong) !important;
}
.nxmg-badge-glint::before { width: 1px !important; height: 14px !important; }
.nxmg-badge-glint::after  { width: 14px !important; height: 1px !important; }

/* Variación visual entre partículas. La posición ya NO vive aquí: se genera
   aleatoriamente en cada ciclo. */
.nxmg-glint-2 { width: 9px !important; height: 9px !important; }
.nxmg-glint-3 { width: 8px !important; height: 8px !important; }
.nxmg-glint-4 { width: 6px !important; height: 6px !important; }
.nxmg-glint-5 { width: 5px !important; height: 5px !important; }

@keyframes nxmg-badge-halo-smooth {
    0%, 100% {
        opacity: .14;
        transform: translate3d(0,0,0) scale(.998);
    }
    50% {
        opacity: .28;
        transform: translate3d(0,0,0) scale(1.014);
    }
}

@media (max-width: 767px) {
    .nxmg-content-badge {
        top: 7px !important;
        right: 7px !important;
        min-height: 22px !important;
        padding: 5px 9px !important;
    }
    .nxmg-badge-text { font-size: 9px !important; }
}

@media (prefers-reduced-motion: reduce) {
    .nxmg-content-badge::before {
        animation-duration: 7s !important;
    }
}


/* ================================================================
   1.4.9 — PDF PREVIEW
   ================================================================ */
.nxmg-lightbox-stage.is-pdf {
    overflow: hidden !important;
    border-radius: 10px !important;
}
.nxmg-lightbox-stage.is-pdf iframe.nxmg-pdf-frame {
    display: block !important;
    width: min(100%, 1100px) !important;
    height: 100% !important;
    max-width: 100% !important;
    max-height: 100% !important;
    aspect-ratio: auto !important;
    border: 0 !important;
    border-radius: 10px !important;
    background: #fff !important;
}
@media (max-width: 600px) {
    .nxmg-lightbox-stage.is-pdf iframe.nxmg-pdf-frame {
        width: 100% !important;
        height: 100% !important;
        max-width: 100% !important;
        max-height: 100% !important;
    }
}

/* El placeholder PDF también rellena por completo una celda del Grid uniforme. */
.nxmg-layout-grid .nxmg-pdf-placeholder {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
}


/* ================================================================
   1.4.10 — PDF INLINE REAL + SOCIAL SOURCE BADGES REMOVED
   ================================================================ */
/* El iframe recibe un endpoint same-origin que fuerza Content-Disposition:inline,
   evitando la pantalla oscura con el botón "Open" de Chrome. */
.nxmg-lightbox-stage.is-pdf {
    width: 100% !important;
    height: 100% !important;
    max-width: 1180px !important;
    max-height: 100% !important;
    overflow: hidden !important;
    background: #2b2d31 !important;
    touch-action: pan-y !important;
}
.nxmg-lightbox-stage.is-pdf iframe.nxmg-pdf-frame {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    max-width: 100% !important;
    max-height: 100% !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 10px !important;
    background: #fff !important;
}
@media (max-width: 600px) {
    .nxmg-lightbox.is-pdf-open {
        padding: max(54px, env(safe-area-inset-top)) 6px max(56px, env(safe-area-inset-bottom)) !important;
    }
    .nxmg-lightbox-stage.is-pdf {
        width: 100% !important;
        height: 100% !important;
        max-width: 100% !important;
        border-radius: 8px !important;
    }
    .nxmg-lightbox-stage.is-pdf iframe.nxmg-pdf-frame {
        border-radius: 8px !important;
    }
}

/* ================================================================
   1.4.11 — PDF.JS RESPONSIVE MULTI-PAGE VIEWER
   ================================================================ */
/* El PDF ya no se delega al visor nativo del navegador. PDF.js dibuja cada
   página en canvas, lo que hace el comportamiento consistente en PC/iOS/Android. */
.nxmg-lightbox-stage.is-pdf {
    display: flex !important;
    align-items: stretch !important;
    justify-content: stretch !important;
    width: 100% !important;
    height: 100% !important;
    max-width: 1180px !important;
    max-height: 100% !important;
    overflow: hidden !important;
    border-radius: 10px !important;
    background: #16181c !important;
    touch-action: auto !important;
}

.nxmg-pdf-viewer {
    position: relative !important;
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    height: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    overflow: hidden !important;
    border-radius: inherit !important;
    background: #17191d !important;
    color: #fff !important;
    isolation: isolate !important;
}

.nxmg-pdf-toolbar {
    position: relative !important;
    z-index: 4 !important;
    flex: 0 0 auto !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 7px !important;
    min-height: 46px !important;
    padding: 6px 10px !important;
    border: 0 !important;
    border-bottom: 1px solid rgba(255,255,255,.08) !important;
    background: rgba(19,21,25,.96) !important;
    box-shadow: 0 8px 20px rgba(0,0,0,.18) !important;
    backdrop-filter: blur(14px) !important;
    -webkit-backdrop-filter: blur(14px) !important;
}

.nxmg-pdf-tool {
    appearance: none !important;
    -webkit-appearance: none !important;
    display: inline-grid !important;
    place-items: center !important;
    min-width: 36px !important;
    height: 34px !important;
    margin: 0 !important;
    padding: 0 10px !important;
    border: 1px solid rgba(255,255,255,.12) !important;
    border-radius: 9px !important;
    background: rgba(255,255,255,.07) !important;
    color: #fff !important;
    font: inherit !important;
    font-size: 18px !important;
    font-weight: 600 !important;
    line-height: 1 !important;
    cursor: pointer !important;
    box-shadow: none !important;
    transition: background .18s ease, border-color .18s ease, transform .18s ease !important;
}
.nxmg-pdf-tool:hover {
    background: rgba(255,255,255,.14) !important;
    border-color: rgba(255,255,255,.22) !important;
}
.nxmg-pdf-tool:active { transform: scale(.96) !important; }
.nxmg-pdf-fit { min-width: 66px !important; font-size: 12px !important; }

.nxmg-pdf-status {
    display: inline-flex !important;
    align-items: center !important;
    min-width: 98px !important;
    margin-left: 4px !important;
    color: rgba(255,255,255,.72) !important;
    font-size: 11px !important;
    line-height: 1.2 !important;
    white-space: nowrap !important;
}

.nxmg-pdf-scroll {
    position: relative !important;
    flex: 1 1 auto !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    overflow: auto !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior: contain !important;
    touch-action: pan-x pan-y !important;
    background: #24262b !important;
    scrollbar-gutter: stable both-edges !important;
}

.nxmg-pdf-pages {
    position: relative !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 14px !important;
    width: max-content !important;
    min-width: 100% !important;
    min-height: 100% !important;
    padding: 14px !important;
    box-sizing: border-box !important;
}

.nxmg-pdf-page {
    position: relative !important;
    flex: 0 0 auto !important;
    overflow: hidden !important;
    max-width: none !important;
    margin: 0 auto !important;
    border-radius: 4px !important;
    background: #fff !important;
    box-shadow: 0 4px 18px rgba(0,0,0,.24) !important;
    transition: width .14s cubic-bezier(.2,.7,.2,1), height .14s cubic-bezier(.2,.7,.2,1) !important;
}

.nxmg-pdf-canvas {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: #fff !important;
}

.nxmg-pdf-page.has-render-error::after {
    content: "No se pudo renderizar esta página" !important;
    position: absolute !important;
    inset: 0 !important;
    display: grid !important;
    place-items: center !important;
    padding: 20px !important;
    color: #555 !important;
    background: #fff !important;
    text-align: center !important;
    font-size: 13px !important;
}

.nxmg-pdf-loading,
.nxmg-pdf-error {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 12px !important;
    width: min(460px, calc(100vw - 52px)) !important;
    min-height: 240px !important;
    margin: auto !important;
    padding: 24px !important;
    color: rgba(255,255,255,.82) !important;
    text-align: center !important;
}

.nxmg-pdf-spinner {
    width: 34px !important;
    height: 34px !important;
    border: 3px solid rgba(255,255,255,.16) !important;
    border-top-color: #fff !important;
    border-radius: 50% !important;
    animation: nxmg-pdf-spin .75s linear infinite !important;
}
@keyframes nxmg-pdf-spin { to { transform: rotate(360deg); } }

.nxmg-pdf-error strong { font-size: 14px !important; }
.nxmg-pdf-error a {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 38px !important;
    padding: 0 15px !important;
    border-radius: 9px !important;
    background: #fff !important;
    color: #111 !important;
    text-decoration: none !important;
    font-size: 12px !important;
    font-weight: 700 !important;
}

/* El título inferior de la galería no debe tapar las páginas del documento. */
.nxmg-lightbox.is-pdf-open .nxmg-lightbox-meta { display: none !important; }

@media (max-width: 600px) {
    .nxmg-lightbox.is-pdf-open {
        padding-top: max(50px, env(safe-area-inset-top)) !important;
        padding-right: 0 !important;
        padding-bottom: max(4px, env(safe-area-inset-bottom)) !important;
        padding-left: 0 !important;
    }
    .nxmg-lightbox-stage.is-pdf {
        width: 100% !important;
        height: 100% !important;
        max-width: none !important;
        border-radius: 0 !important;
    }
    .nxmg-pdf-viewer { border-radius: 0 !important; }
    .nxmg-pdf-toolbar {
        min-height: 44px !important;
        gap: 6px !important;
        padding: 5px 8px !important;
    }
    .nxmg-pdf-tool {
        min-width: 34px !important;
        height: 32px !important;
        padding: 0 8px !important;
    }
    .nxmg-pdf-fit { min-width: 58px !important; }
    .nxmg-pdf-status {
        min-width: 0 !important;
        margin-left: 2px !important;
        font-size: 10px !important;
    }
    .nxmg-pdf-pages {
        gap: 8px !important;
        padding: 6px !important;
    }
    .nxmg-pdf-page {
        border-radius: 2px !important;
        box-shadow: 0 2px 10px rgba(0,0,0,.22) !important;
    }
    /* Flechas fuera del área de lectura. La navegación táctil del PDF queda libre. */
    .nxmg-lightbox.is-pdf-open .nxmg-lightbox-nav { display: none !important; }
}
.nxmg-pdf-viewer.is-pinching .nxmg-pdf-page {
    transition: none !important;
}


/* ================================================================
   1.5.0 — PDF VIEWER: WIDE / CLEAN / DESKTOP-FIRST
   ================================================================ */
/* En PDF se aprovecha más el viewport que en imágenes/videos. El fondo
   general sigue siendo el lightbox existente; aquí solo ampliamos el área
   útil del documento sin alterar los demás tipos de contenido. */
@media (min-width: 901px) {
    .nxmg-lightbox.is-pdf-open {
        padding: clamp(24px, 2.8vh, 38px) clamp(34px, 3.2vw, 56px) !important;
        align-items: stretch !important;
        justify-content: center !important;
    }

    .nxmg-lightbox-stage.is-pdf {
        width: min(100%, 1680px) !important;
        height: 100% !important;
        max-width: 1680px !important;
        max-height: none !important;
        border: 1px solid rgba(255,255,255,.075) !important;
        border-radius: 18px !important;
        background: #101216 !important;
        box-shadow: 0 28px 90px rgba(0,0,0,.34) !important;
        overflow: hidden !important;
    }

    .nxmg-pdf-viewer {
        border-radius: 18px !important;
        background: #101216 !important;
    }

    /* Barra mucho más ligera: un pequeño header visual, sin sensación de
       "panel de controles". Solo Ajustar + estado secundario. */
    .nxmg-pdf-toolbar {
        min-height: 50px !important;
        justify-content: center !important;
        gap: 12px !important;
        padding: 8px 18px !important;
        border-bottom: 1px solid rgba(255,255,255,.055) !important;
        background: rgba(15,17,21,.88) !important;
        box-shadow: none !important;
        backdrop-filter: blur(18px) saturate(120%) !important;
        -webkit-backdrop-filter: blur(18px) saturate(120%) !important;
    }

    .nxmg-pdf-tool {
        min-width: 84px !important;
        height: 34px !important;
        padding: 0 16px !important;
        border: 1px solid rgba(255,255,255,.12) !important;
        border-radius: 999px !important;
        background: rgba(255,255,255,.075) !important;
        font-size: 12px !important;
        font-weight: 700 !important;
        letter-spacing: .1px !important;
        transition: background .2s ease, border-color .2s ease, transform .2s cubic-bezier(.2,.8,.2,1) !important;
    }
    .nxmg-pdf-tool:hover {
        background: rgba(255,255,255,.13) !important;
        border-color: rgba(255,255,255,.22) !important;
    }
    .nxmg-pdf-tool:active { transform: scale(.975) !important; }
    .nxmg-pdf-fit { min-width: 84px !important; font-size: 12px !important; }

    .nxmg-pdf-status {
        min-width: 0 !important;
        margin-left: 0 !important;
        color: rgba(255,255,255,.55) !important;
        font-size: 11px !important;
        font-variant-numeric: tabular-nums !important;
    }

    .nxmg-pdf-scroll {
        background: #17191e !important;
        scrollbar-gutter: stable !important;
    }

    .nxmg-pdf-pages {
        gap: 24px !important;
        padding: 22px 24px 30px !important;
    }

    .nxmg-pdf-page {
        border-radius: 8px !important;
        box-shadow: 0 10px 34px rgba(0,0,0,.24) !important;
    }
}

/* Pantallas especialmente anchas: aún más aire sin dejar que el documento
   parezca una ventana pequeña flotando en el centro. */
@media (min-width: 1500px) {
    .nxmg-lightbox.is-pdf-open {
        padding-left: clamp(44px, 4vw, 76px) !important;
        padding-right: clamp(44px, 4vw, 76px) !important;
    }
    .nxmg-lightbox-stage.is-pdf {
        width: min(100%, 1760px) !important;
        max-width: 1760px !important;
    }
}

/* En tablet/móvil también dejamos el toolbar simplificado: solo Ajustar y
   el estado. No cambia el renderizado multipágina ni el pinch-to-zoom. */
@media (max-width: 900px) {
    .nxmg-pdf-toolbar {
        justify-content: center !important;
        gap: 9px !important;
        box-shadow: none !important;
    }
    .nxmg-pdf-fit {
        min-width: 72px !important;
        border-radius: 999px !important;
    }
}


/* ================================================================
   1.5.1 — MOBILE PDF CENTERING + DESKTOP DOCUMENT INFO
   ================================================================ */
.nxmg-pdf-main {
    position: relative !important;
    display: flex !important;
    flex: 1 1 auto !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    overflow: hidden !important;
}

.nxmg-pdf-info {
    display: none !important;
}

.nxmg-pdf-mobile-close {
    display: none !important;
    appearance: none !important;
    -webkit-appearance: none !important;
    border: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    color: rgba(255,255,255,.88) !important;
    box-shadow: none !important;
    cursor: pointer !important;
    font: inherit !important;
}

@media (min-width: 901px) {
    .nxmg-pdf-viewer.has-document-info .nxmg-pdf-main {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) clamp(230px, 17vw, 300px) !important;
    }

    .nxmg-pdf-viewer.has-document-info .nxmg-pdf-info {
        display: block !important;
        min-width: 0 !important;
        overflow: auto !important;
        border-left: 1px solid rgba(255,255,255,.065) !important;
        background: linear-gradient(180deg, rgba(20,22,27,.98), rgba(15,17,21,.98)) !important;
        color: #fff !important;
    }

    .nxmg-pdf-info-inner {
        position: sticky !important;
        top: 0 !important;
        display: grid !important;
        gap: 12px !important;
        padding: clamp(24px, 3vh, 38px) clamp(20px, 1.8vw, 30px) !important;
    }

    .nxmg-pdf-info-eyebrow {
        display: block !important;
        margin: 0 !important;
        color: rgba(255,255,255,.42) !important;
        font-size: 10px !important;
        font-weight: 700 !important;
        line-height: 1.2 !important;
        letter-spacing: .14em !important;
        text-transform: uppercase !important;
    }

    .nxmg-pdf-info h3 {
        margin: 0 !important;
        padding: 0 !important;
        color: #fff !important;
        font: inherit !important;
        font-size: clamp(18px, 1.35vw, 23px) !important;
        font-weight: 650 !important;
        line-height: 1.18 !important;
        letter-spacing: -.02em !important;
        overflow-wrap: anywhere !important;
    }

    .nxmg-pdf-info p {
        margin: 0 !important;
        padding: 0 !important;
        color: rgba(255,255,255,.62) !important;
        font: inherit !important;
        font-size: 12px !important;
        line-height: 1.65 !important;
        white-space: pre-line !important;
        overflow-wrap: anywhere !important;
    }
}

@media (max-width: 600px) {
    /* El PDF ocupa todo el viewport visible. La barra integra el cierre y
       elimina el espacio negro superior que generaba el padding del lightbox. */
    .nxmg-lightbox.is-pdf-open {
        padding: 0 !important;
        align-items: stretch !important;
        justify-content: stretch !important;
    }

    .nxmg-lightbox.is-pdf-open > .nxmg-lightbox-close {
        display: none !important;
    }

    .nxmg-lightbox-stage.is-pdf {
        position: absolute !important;
        inset: 0 !important;
        width: 100% !important;
        height: 100% !important;
        min-width: 100% !important;
        min-height: 100% !important;
        margin: 0 !important;
        border: 0 !important;
        border-radius: 0 !important;
        box-shadow: none !important;
    }

    .nxmg-pdf-viewer,
    .nxmg-pdf-main {
        width: 100% !important;
        height: 100% !important;
        border-radius: 0 !important;
    }

    .nxmg-pdf-toolbar {
        position: relative !important;
        min-height: calc(48px + env(safe-area-inset-top)) !important;
        padding: max(7px, env(safe-area-inset-top)) 52px 7px 52px !important;
        justify-content: center !important;
        gap: 10px !important;
        background: rgba(15,17,21,.96) !important;
        border-bottom: 1px solid rgba(255,255,255,.06) !important;
    }

    .nxmg-pdf-mobile-close {
        position: absolute !important;
        top: max(7px, env(safe-area-inset-top)) !important;
        right: max(8px, env(safe-area-inset-right)) !important;
        display: grid !important;
        place-items: center !important;
        width: 36px !important;
        height: 36px !important;
        border-radius: 8px !important;
        font-size: 28px !important;
        font-weight: 300 !important;
        line-height: 1 !important;
        transition: background .18s ease, color .18s ease, transform .18s ease !important;
    }
    .nxmg-pdf-mobile-close:active {
        background: rgba(255,255,255,.08) !important;
        transform: scale(.94) !important;
    }

    .nxmg-pdf-scroll {
        width: 100% !important;
        min-width: 0 !important;
        scrollbar-gutter: auto !important;
        background: #202226 !important;
    }

    .nxmg-pdf-pages {
        width: 100% !important;
        min-width: 100% !important;
        align-items: center !important;
        gap: 9px !important;
        padding: 8px 7px calc(12px + env(safe-area-inset-bottom)) !important;
    }

    .nxmg-pdf-page {
        margin-left: auto !important;
        margin-right: auto !important;
    }

    .nxmg-pdf-info { display: none !important; }
}


/* ================================================================
   1.5.2 — PDF DESKTOP: FULLER VIEWPORT + WIDER INFO PANEL
   ================================================================ */
@media (min-width: 601px) {
    /* Border-box makes the PDF lightbox use the real viewport width instead
       of adding its padding on top of 100vw. The remaining lateral room is
       reserved for the gallery navigation controls. */
    .nxmg-lightbox.is-pdf-open {
        box-sizing: border-box !important;
        width: 100dvw !important;
        height: 100dvh !important;
        padding: clamp(12px, 1.7vh, 20px) clamp(48px, 3.4vw, 64px) !important;
        align-items: stretch !important;
        justify-content: center !important;
    }

    .nxmg-lightbox.is-pdf-open .nxmg-lightbox-stage.is-pdf {
        width: 100% !important;
        height: 100% !important;
        max-width: 1920px !important;
        max-height: none !important;
        margin: 0 auto !important;
    }
}

@media (min-width: 901px) {
    /* Give the document information more breathing room without taking over
       the preview. The PDF remains the dominant area. */
    .nxmg-pdf-viewer.has-document-info .nxmg-pdf-main {
        grid-template-columns: minmax(0, 1fr) clamp(300px, 22vw, 390px) !important;
    }

    .nxmg-pdf-info-inner {
        gap: 14px !important;
        padding: clamp(28px, 3.5vh, 44px) clamp(26px, 2.2vw, 36px) !important;
    }

    .nxmg-pdf-info h3 {
        font-size: clamp(20px, 1.45vw, 25px) !important;
        line-height: 1.2 !important;
    }

    .nxmg-pdf-info p {
        font-size: 13px !important;
        line-height: 1.72 !important;
        color: rgba(255,255,255,.66) !important;
    }

    /* Compatibility in case cached markup from a previous asset version
       briefly contains the old eyebrow label. */
    .nxmg-pdf-info-eyebrow {
        display: none !important;
    }
}


/* ================================================================
   1.5.3 — PDF DETAILS: LARGER TITLE + SOFTWARE + AUTO PALETTE
   ================================================================ */
@media (min-width: 901px) {
    .nxmg-pdf-info h3 {
        font-size: clamp(27px, 1.9vw, 34px) !important;
        line-height: 1.08 !important;
        letter-spacing: -.035em !important;
        font-weight: 680 !important;
    }

    .nxmg-pdf-palette-block,
    .nxmg-pdf-software-block {
        display: grid !important;
        gap: 9px !important;
        margin-top: 5px !important;
        padding-top: 15px !important;
        border-top: 1px solid rgba(255,255,255,.07) !important;
    }

    .nxmg-pdf-detail-label {
        display: block !important;
        margin: 0 !important;
        color: rgba(255,255,255,.46) !important;
        font-size: 10px !important;
        font-weight: 700 !important;
        line-height: 1.2 !important;
        letter-spacing: .08em !important;
        text-transform: uppercase !important;
    }

    .nxmg-pdf-palette {
        display: flex !important;
        flex-wrap: wrap !important;
        align-items: center !important;
        gap: 7px !important;
        min-height: 28px !important;
    }

    .nxmg-pdf-color-swatch {
        display: block !important;
        width: 31px !important;
        height: 24px !important;
        flex: 0 0 31px !important;
        border-radius: 8px !important;
        border: 1px solid rgba(255,255,255,.12) !important;
        box-shadow: inset 0 0 0 1px rgba(0,0,0,.07) !important;
    }

    .nxmg-pdf-palette-loading,
    .nxmg-pdf-palette-empty {
        color: rgba(255,255,255,.42) !important;
        font-size: 11px !important;
        line-height: 1.4 !important;
    }

    .nxmg-pdf-palette.is-loading::before {
        content: '' !important;
        display: block !important;
        width: 54px !important;
        height: 24px !important;
        border-radius: 8px !important;
        background: linear-gradient(90deg, rgba(255,255,255,.045), rgba(255,255,255,.1), rgba(255,255,255,.045)) !important;
        background-size: 180% 100% !important;
        animation: nxmgPdfPaletteShimmer 1.4s ease-in-out infinite !important;
    }

    .nxmg-pdf-software-list {
        display: flex !important;
        flex-wrap: wrap !important;
        gap: 6px !important;
    }

    .nxmg-pdf-software-chip {
        display: inline-flex !important;
        align-items: center !important;
        min-height: 26px !important;
        max-width: 100% !important;
        padding: 4px 9px !important;
        border: 1px solid rgba(255,255,255,.09) !important;
        border-radius: 999px !important;
        background: rgba(255,255,255,.055) !important;
        color: rgba(255,255,255,.78) !important;
        font-size: 10.5px !important;
        font-weight: 600 !important;
        line-height: 1.2 !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
    }
}

@keyframes nxmgPdfPaletteShimmer {
    0% { background-position: 120% 0; opacity: .55; }
    50% { opacity: 1; }
    100% { background-position: -120% 0; opacity: .55; }
}

@media (max-width: 900px) {
    .nxmg-pdf-palette-block,
    .nxmg-pdf-software-block { display: none !important; }
}


/* ================================================================
   1.5.4 — MODERN PDF VIEWER + SOFTWARE APP ICONS
   ================================================================ */
@media (min-width: 901px) {
    .nxmg-lightbox.is-pdf-open .nxmg-lightbox-stage.is-pdf {
        border: 1px solid rgba(255,255,255,.085) !important;
        border-radius: 24px !important;
        background: #090b0f !important;
        box-shadow: 0 34px 110px rgba(0,0,0,.48), inset 0 1px 0 rgba(255,255,255,.035) !important;
    }

    .nxmg-pdf-viewer {
        border-radius: 24px !important;
        background:
            radial-gradient(circle at 24% -10%, rgba(79,121,255,.09), transparent 34%),
            linear-gradient(180deg, #0e1117 0%, #090b0f 100%) !important;
    }

    .nxmg-pdf-toolbar {
        display: grid !important;
        grid-template-columns: 1fr auto 1fr !important;
        align-items: center !important;
        min-height: 62px !important;
        gap: 16px !important;
        padding: 10px 18px !important;
        border-bottom: 1px solid rgba(255,255,255,.065) !important;
        background: linear-gradient(180deg, rgba(19,22,29,.94), rgba(12,14,19,.9)) !important;
        box-shadow: 0 10px 34px rgba(0,0,0,.16) !important;
        backdrop-filter: blur(24px) saturate(135%) !important;
        -webkit-backdrop-filter: blur(24px) saturate(135%) !important;
    }

    .nxmg-pdf-toolbar::before {
        content: 'PDF' !important;
        justify-self: start !important;
        display: inline-grid !important;
        place-items: center !important;
        width: 36px !important;
        height: 30px !important;
        border: 1px solid rgba(255,255,255,.09) !important;
        border-radius: 9px !important;
        background: linear-gradient(145deg, rgba(255,255,255,.1), rgba(255,255,255,.035)) !important;
        color: rgba(255,255,255,.68) !important;
        font-size: 9px !important;
        font-weight: 800 !important;
        letter-spacing: .08em !important;
        box-shadow: inset 0 1px 0 rgba(255,255,255,.05) !important;
    }

    .nxmg-pdf-fit {
        grid-column: 2 !important;
        justify-self: center !important;
        min-width: 96px !important;
        height: 38px !important;
        padding: 0 19px !important;
        border: 1px solid rgba(139,174,255,.24) !important;
        border-radius: 12px !important;
        background: linear-gradient(135deg, rgba(98,139,255,.18), rgba(255,255,255,.075)) !important;
        color: rgba(255,255,255,.94) !important;
        box-shadow: inset 0 1px 0 rgba(255,255,255,.07), 0 8px 24px rgba(0,0,0,.14) !important;
        font-size: 12px !important;
        font-weight: 720 !important;
        letter-spacing: .01em !important;
        transition: transform .2s cubic-bezier(.2,.8,.2,1), border-color .2s ease, background .2s ease !important;
    }
    .nxmg-pdf-fit:hover {
        border-color: rgba(139,174,255,.4) !important;
        background: linear-gradient(135deg, rgba(98,139,255,.25), rgba(255,255,255,.1)) !important;
        transform: translateY(-1px) !important;
    }
    .nxmg-pdf-fit:active { transform: translateY(0) scale(.98) !important; }

    .nxmg-pdf-status {
        grid-column: 3 !important;
        justify-self: end !important;
        min-width: 0 !important;
        padding: 7px 10px !important;
        border: 1px solid rgba(255,255,255,.06) !important;
        border-radius: 10px !important;
        background: rgba(255,255,255,.035) !important;
        color: rgba(255,255,255,.5) !important;
        font-size: 10.5px !important;
        font-variant-numeric: tabular-nums !important;
    }

    .nxmg-pdf-main {
        background: #0b0e13 !important;
    }

    .nxmg-pdf-scroll {
        background:
            radial-gradient(circle at 50% 0%, rgba(111,147,255,.055), transparent 28%),
            linear-gradient(180deg, #151922 0%, #101319 100%) !important;
        scrollbar-color: rgba(255,255,255,.16) transparent !important;
    }

    .nxmg-pdf-pages {
        gap: 30px !important;
        padding: 30px 34px 44px !important;
    }

    .nxmg-pdf-page {
        border: 1px solid rgba(255,255,255,.09) !important;
        border-radius: 12px !important;
        box-shadow: 0 18px 54px rgba(0,0,0,.3), 0 1px 0 rgba(255,255,255,.08) !important;
    }

    .nxmg-pdf-viewer.has-document-info .nxmg-pdf-main {
        grid-template-columns: minmax(0, 1fr) clamp(340px, 22vw, 420px) !important;
    }

    .nxmg-pdf-info {
        position: relative !important;
        margin: 14px 14px 14px 0 !important;
        border: 1px solid rgba(255,255,255,.08) !important;
        border-left: 1px solid rgba(255,255,255,.08) !important;
        border-radius: 18px !important;
        background:
            radial-gradient(circle at 80% 0%, rgba(101,140,255,.09), transparent 34%),
            linear-gradient(180deg, rgba(24,28,36,.96), rgba(15,18,24,.98)) !important;
        box-shadow: 0 16px 44px rgba(0,0,0,.22), inset 0 1px 0 rgba(255,255,255,.035) !important;
        overflow: auto !important;
    }

    .nxmg-pdf-info::before {
        content: '' !important;
        position: absolute !important;
        top: 0 !important;
        left: 22px !important;
        right: 22px !important;
        height: 1px !important;
        background: linear-gradient(90deg, transparent, rgba(135,170,255,.45), transparent) !important;
        pointer-events: none !important;
    }

    .nxmg-pdf-info-inner {
        gap: 17px !important;
        padding: 30px 28px 34px !important;
    }

    .nxmg-pdf-info h3 {
        font-size: clamp(30px, 2vw, 38px) !important;
        line-height: 1.04 !important;
        letter-spacing: -.04em !important;
        font-weight: 720 !important;
        text-wrap: balance !important;
    }

    .nxmg-pdf-info p {
        color: rgba(255,255,255,.64) !important;
        font-size: 13px !important;
        line-height: 1.72 !important;
    }

    .nxmg-pdf-palette-block,
    .nxmg-pdf-software-block {
        gap: 10px !important;
        margin-top: 2px !important;
        padding: 14px !important;
        border: 1px solid rgba(255,255,255,.065) !important;
        border-radius: 14px !important;
        background: rgba(255,255,255,.028) !important;
        box-shadow: inset 0 1px 0 rgba(255,255,255,.025) !important;
    }

    .nxmg-pdf-detail-label {
        color: rgba(255,255,255,.48) !important;
        font-size: 9.5px !important;
        letter-spacing: .105em !important;
    }

    .nxmg-pdf-palette {
        gap: 6px !important;
    }

    .nxmg-pdf-color-swatch {
        width: 34px !important;
        height: 28px !important;
        flex: 0 0 34px !important;
        border-radius: 9px !important;
        border: 1px solid rgba(255,255,255,.13) !important;
        box-shadow: inset 0 0 0 1px rgba(0,0,0,.08), 0 5px 12px rgba(0,0,0,.12) !important;
        transition: transform .18s ease !important;
    }
    .nxmg-pdf-color-swatch:hover { transform: translateY(-2px) scale(1.035) !important; }

    .nxmg-pdf-software-list {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 7px !important;
    }

    .nxmg-pdf-software-chip {
        display: flex !important;
        align-items: center !important;
        gap: 7px !important;
        min-width: 0 !important;
        min-height: 38px !important;
        padding: 5px 8px 5px 5px !important;
        border: 1px solid rgba(255,255,255,.07) !important;
        border-radius: 11px !important;
        background: rgba(255,255,255,.035) !important;
        color: rgba(255,255,255,.8) !important;
        overflow: hidden !important;
        transition: background .18s ease, border-color .18s ease, transform .18s ease !important;
    }
    .nxmg-pdf-software-chip:hover {
        border-color: rgba(255,255,255,.13) !important;
        background: rgba(255,255,255,.055) !important;
        transform: translateY(-1px) !important;
    }

    .nxmg-pdf-software-icon {
        display: grid !important;
        place-items: center !important;
        width: 28px !important;
        height: 28px !important;
        flex: 0 0 28px !important;
        border: 1px solid rgba(255,255,255,.13) !important;
        border-radius: 8px !important;
        background: linear-gradient(145deg, #30343c, #181b21) !important;
        color: #fff !important;
        font-size: 10px !important;
        font-weight: 800 !important;
        line-height: 1 !important;
        letter-spacing: -.02em !important;
        box-shadow: inset 0 1px 0 rgba(255,255,255,.12), 0 4px 12px rgba(0,0,0,.16) !important;
    }

    .nxmg-pdf-software-name {
        min-width: 0 !important;
        overflow: hidden !important;
        color: rgba(255,255,255,.77) !important;
        font-size: 10.5px !important;
        font-weight: 650 !important;
        line-height: 1.2 !important;
        white-space: nowrap !important;
        text-overflow: ellipsis !important;
    }

    .nxmg-software-photoshop { background: #001e36 !important; color: #31a8ff !important; border-color: rgba(49,168,255,.35) !important; }
    .nxmg-software-illustrator { background: #330000 !important; color: #ff9a00 !important; border-color: rgba(255,154,0,.38) !important; }
    .nxmg-software-indesign { background: #49021f !important; color: #ff3366 !important; border-color: rgba(255,51,102,.38) !important; }
    .nxmg-software-acrobat { background: #3b0a0d !important; color: #ff4b55 !important; border-color: rgba(255,75,85,.35) !important; }
    .nxmg-software-lightroom { background: #001e36 !important; color: #31d3f7 !important; border-color: rgba(49,211,247,.35) !important; }
    .nxmg-software-premiere { background: #00005b !important; color: #9999ff !important; border-color: rgba(153,153,255,.38) !important; }
    .nxmg-software-after-effects { background: #00005b !important; color: #d6a7ff !important; border-color: rgba(214,167,255,.38) !important; }
    .nxmg-software-figma { background: linear-gradient(145deg, #2c2c2c, #171717) !important; color: #ff7262 !important; border-color: rgba(162,89,255,.4) !important; }
    .nxmg-software-canva { background: linear-gradient(145deg, #00c4cc, #7d2ae8) !important; color: #fff !important; border-color: rgba(255,255,255,.22) !important; }
    .nxmg-software-affinity-photo { background: linear-gradient(145deg, #1b69ff, #163164) !important; color: #fff !important; border-color: rgba(79,142,255,.38) !important; }
    .nxmg-software-affinity-designer { background: linear-gradient(145deg, #14b8a6, #0b4958) !important; color: #fff !important; border-color: rgba(45,212,191,.36) !important; }
    .nxmg-software-affinity-publisher { background: linear-gradient(145deg, #f06a3b, #6f2b1f) !important; color: #fff !important; border-color: rgba(255,133,89,.36) !important; }
    .nxmg-software-davinci { background: conic-gradient(from 20deg, #ec445b, #f2b443, #42b6ff, #ec445b) !important; color: #fff !important; border-color: rgba(255,255,255,.28) !important; text-shadow: 0 1px 3px rgba(0,0,0,.5) !important; }
    .nxmg-software-final-cut { background: linear-gradient(145deg, #7d5cff, #25c2ff 48%, #ff5aa7) !important; color: #fff !important; border-color: rgba(255,255,255,.25) !important; }
    .nxmg-software-blender { background: #252525 !important; color: #f5792a !important; border-color: rgba(245,121,42,.38) !important; }
    .nxmg-software-sketch { background: linear-gradient(145deg, #ffdb57, #f5a623) !important; color: #493400 !important; border-color: rgba(255,219,87,.4) !important; }
    .nxmg-software-corel { background: #102e1d !important; color: #61d17a !important; border-color: rgba(97,209,122,.36) !important; }
    .nxmg-software-procreate { background: linear-gradient(145deg, #191919, #050505) !important; color: #f6f6f6 !important; border-color: rgba(255,255,255,.16) !important; }
}

@media (max-width: 900px) {
    .nxmg-pdf-toolbar {
        background: linear-gradient(180deg, rgba(19,22,28,.98), rgba(12,14,18,.98)) !important;
        border-bottom-color: rgba(255,255,255,.07) !important;
        box-shadow: 0 8px 28px rgba(0,0,0,.18) !important;
    }
    .nxmg-pdf-fit {
        border: 1px solid rgba(255,255,255,.13) !important;
        background: rgba(255,255,255,.075) !important;
        box-shadow: inset 0 1px 0 rgba(255,255,255,.05) !important;
    }
    .nxmg-pdf-mobile-close {
        border: 1px solid rgba(255,255,255,.1) !important;
        background: rgba(255,255,255,.055) !important;
    }
    .nxmg-pdf-scroll {
        background: linear-gradient(180deg, #171a20, #111419) !important;
    }
    .nxmg-pdf-page {
        border: 1px solid rgba(255,255,255,.07) !important;
        border-radius: 6px !important;
        box-shadow: 0 8px 26px rgba(0,0,0,.24) !important;
    }
}

/* 1.5.5 — iconos personalizados de software */
.nxmg-pdf-software-icon.has-custom-icon { padding: 0 !important; overflow: hidden !important; background: rgba(255,255,255,.04) !important; }
.nxmg-pdf-software-icon.has-custom-icon img { width: 100% !important; height: 100% !important; object-fit: contain !important; display: block !important; border-radius: inherit !important; }

/* ================================================================
   1.5.6 — UNIFIED MODERN VIEWER FOR IMAGES / VIDEOS / SOCIAL MEDIA
   ================================================================ */
.nxmg-media-viewer {
    width: 100% !important;
    height: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    overflow: hidden !important;
    background: #0b0e13 !important;
}

.nxmg-media-main {
    background: #0b0e13 !important;
}

.nxmg-media-preview {
    position: relative !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    height: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    overflow: auto !important;
    padding: clamp(18px, 2vw, 34px) !important;
    background:
        radial-gradient(circle at 50% 0%, rgba(111,147,255,.07), transparent 30%),
        linear-gradient(180deg, #151922 0%, #101319 100%) !important;
    scrollbar-color: rgba(255,255,255,.15) transparent !important;
}

.nxmg-media-preview .nxmg-media-primary {
    display: block !important;
    width: auto !important;
    height: auto !important;
    max-width: 100% !important;
    max-height: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    margin: auto !important;
    border: 1px solid rgba(255,255,255,.09) !important;
    border-radius: 16px !important;
    background: #090b0f !important;
    box-shadow: 0 24px 70px rgba(0,0,0,.34), 0 1px 0 rgba(255,255,255,.07) !important;
    object-fit: contain !important;
}

.nxmg-media-preview img.nxmg-media-primary {
    object-fit: contain !important;
}

.nxmg-media-preview video.nxmg-media-primary {
    width: min(100%, 1500px) !important;
    max-height: calc(100% - 4px) !important;
    aspect-ratio: auto !important;
    object-fit: contain !important;
}

.nxmg-media-preview iframe.nxmg-media-primary {
    width: min(100%, 980px) !important;
    height: min(100%, 860px) !important;
    min-height: 520px !important;
    border: 0 !important;
    background: #fff !important;
}

.nxmg-media-preview .nxmg-social-placeholder.nxmg-media-primary {
    width: min(100%, 620px) !important;
    min-height: 260px !important;
    padding: 28px !important;
    border-radius: 16px !important;
}

.nxmg-lightbox.is-modern-viewer-open .nxmg-lightbox-meta {
    display: none !important;
}

@media (min-width: 901px) {
    .nxmg-lightbox.is-modern-viewer-open:not(.is-pdf-open) {
        padding: clamp(24px, 2.8vh, 38px) clamp(42px, 4vw, 70px) !important;
        align-items: stretch !important;
        justify-content: center !important;
    }

    .nxmg-lightbox-stage.is-showcase {
        width: min(100%, 1920px) !important;
        max-width: 1920px !important;
        height: 100% !important;
        max-height: none !important;
        min-width: 0 !important;
        min-height: 0 !important;
        border-radius: 22px !important;
        overflow: hidden !important;
        background: #0b0e13 !important;
        box-shadow: 0 30px 90px rgba(0,0,0,.46), 0 0 0 1px rgba(255,255,255,.055) !important;
    }

    .nxmg-media-viewer.has-document-info .nxmg-media-main {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) clamp(340px, 22vw, 420px) !important;
    }

    .nxmg-media-toolbar {
        display: grid !important;
        grid-template-columns: 1fr auto 1fr !important;
        align-items: center !important;
        min-height: 58px !important;
        padding: 9px 18px !important;
        border-bottom: 1px solid rgba(255,255,255,.065) !important;
        background: linear-gradient(180deg, rgba(20,23,30,.94), rgba(13,15,20,.91)) !important;
        backdrop-filter: blur(22px) saturate(135%) !important;
        -webkit-backdrop-filter: blur(22px) saturate(135%) !important;
    }

    .nxmg-media-toolbar .nxmg-media-fit {
        grid-column: 2 !important;
        justify-self: center !important;
    }

    .nxmg-media-toolbar .nxmg-media-status {
        grid-column: 3 !important;
        justify-self: end !important;
    }
}

@media (max-width: 900px) {
    .nxmg-lightbox.is-modern-viewer-open:not(.is-pdf-open) {
        padding: max(0px, env(safe-area-inset-top)) 0 max(0px, env(safe-area-inset-bottom)) !important;
        align-items: stretch !important;
    }

    .nxmg-lightbox.is-modern-viewer-open:not(.is-pdf-open) > .nxmg-lightbox-close {
        display: none !important;
    }

    .nxmg-lightbox-stage.is-showcase {
        width: 100% !important;
        height: 100% !important;
        max-width: none !important;
        max-height: none !important;
        border-radius: 0 !important;
        overflow: hidden !important;
        background: #0b0e13 !important;
    }

    .nxmg-media-viewer {
        border-radius: 0 !important;
    }

    .nxmg-media-toolbar {
        min-height: 52px !important;
        display: grid !important;
        grid-template-columns: 44px 1fr auto 44px !important;
        gap: 7px !important;
        padding: 6px max(8px, env(safe-area-inset-right)) 6px max(8px, env(safe-area-inset-left)) !important;
    }

    .nxmg-media-toolbar .nxmg-media-fit {
        grid-column: 2 !important;
        justify-self: center !important;
    }

    .nxmg-media-toolbar .nxmg-media-status {
        grid-column: 3 !important;
        justify-self: end !important;
        font-size: 10px !important;
    }

    .nxmg-media-toolbar .nxmg-pdf-mobile-close {
        grid-column: 4 !important;
        display: grid !important;
        place-items: center !important;
        width: 36px !important;
        height: 36px !important;
        border-radius: 10px !important;
    }

    .nxmg-media-preview {
        padding: 10px !important;
    }

    .nxmg-media-preview .nxmg-media-primary {
        max-width: 100% !important;
        max-height: 100% !important;
        border-radius: 10px !important;
        box-shadow: 0 10px 34px rgba(0,0,0,.28) !important;
    }

    .nxmg-media-preview iframe.nxmg-media-primary {
        width: 100% !important;
        height: 100% !important;
        min-height: 0 !important;
        border-radius: 0 !important;
    }

    .nxmg-lightbox.is-modern-viewer-open:not(.is-pdf-open) .nxmg-lightbox-nav {
        display: none !important;
    }
}

/* Fallback visual para nuevos editores de video cuando todavía no tienen
   un icono personalizado subido desde Configuración. */
.nxmg-software-capcut { background: #0d0d0f !important; color: #fff !important; border-color: rgba(255,255,255,.2) !important; }
.nxmg-software-avid { background: linear-gradient(145deg,#4d226f,#1d0f2f) !important; color: #f1c8ff !important; border-color: rgba(195,114,255,.34) !important; }
.nxmg-software-vegas { background: linear-gradient(145deg,#1356ff,#16224a) !important; color: #dbe7ff !important; border-color: rgba(76,132,255,.38) !important; }
.nxmg-software-filmora { background: linear-gradient(145deg,#25c4b7,#5843da) !important; color: #fff !important; border-color: rgba(73,214,202,.35) !important; }
.nxmg-software-imovie { background: linear-gradient(145deg,#7d4cff,#3c1d92) !important; color: #fff !important; border-color: rgba(161,125,255,.38) !important; }
.nxmg-software-premiere-rush { background: #1b0b45 !important; color: #d6a7ff !important; border-color: rgba(214,167,255,.38) !important; }
.nxmg-software-lightworks { background: linear-gradient(145deg,#e34b42,#6b1b19) !important; color: #fff !important; border-color: rgba(255,105,96,.34) !important; }
.nxmg-software-hitfilm { background: linear-gradient(145deg,#17232c,#071017) !important; color: #52d2ff !important; border-color: rgba(82,210,255,.34) !important; }
.nxmg-software-lumafusion { background: linear-gradient(145deg,#ee5b55,#4f42d8) !important; color: #fff !important; border-color: rgba(255,255,255,.18) !important; }
.nxmg-software-kdenlive { background: linear-gradient(145deg,#3579c8,#183654) !important; color: #fff !important; border-color: rgba(86,153,232,.35) !important; }
.nxmg-software-shotcut { background: linear-gradient(145deg,#3986d8,#182d45) !important; color: #fff !important; border-color: rgba(86,157,232,.34) !important; }


/* ================================================================
   1.5.7 — SOCIAL VIDEO PORTRAIT + CLEAN VIEWER TOOLBAR
   ================================================================ */
/* El viewer ya no muestra etiquetas de tipo como “PDF” o “Video”. */
.nxmg-pdf-toolbar::before {
    content: none !important;
    display: none !important;
}
.nxmg-media-status {
    display: none !important;
}

/* TikTok y los Reels/videos de Instagram/Facebook mantienen un canvas
   vertical 9:16 dentro del viewer, independientemente del tamaño que
   reporte el iframe embebido. */
.nxmg-media-viewer.is-social-vertical .nxmg-media-preview {
    overflow: hidden !important;
}
.nxmg-media-viewer.is-social-vertical .nxmg-media-preview iframe.nxmg-media-primary {
    width: auto !important;
    height: min(100%, 900px) !important;
    aspect-ratio: 9 / 16 !important;
    max-width: 100% !important;
    max-height: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    flex: 0 1 auto !important;
    border-radius: 16px !important;
    background: #000 !important;
}

@media (min-width: 901px) {
    .nxmg-media-toolbar {
        grid-template-columns: 1fr auto 1fr !important;
    }
    .nxmg-media-toolbar .nxmg-media-fit {
        grid-column: 2 !important;
    }
}

@media (max-width: 900px) {
    .nxmg-media-toolbar {
        grid-template-columns: 44px 1fr 44px !important;
    }
    .nxmg-media-toolbar .nxmg-media-fit {
        grid-column: 2 !important;
    }
    .nxmg-media-toolbar .nxmg-pdf-mobile-close {
        grid-column: 3 !important;
    }
    .nxmg-media-viewer.is-social-vertical .nxmg-media-preview {
        padding: 8px !important;
    }
    .nxmg-media-viewer.is-social-vertical .nxmg-media-preview iframe.nxmg-media-primary {
        width: auto !important;
        height: min(100%, calc(100dvh - 70px)) !important;
        aspect-ratio: 9 / 16 !important;
        max-width: calc(100vw - 16px) !important;
        max-height: 100% !important;
        border-radius: 12px !important;
    }
}


/* ================================================================
   1.5.9 — DOT NAVIGATION FOR IMAGE POSTS
   ================================================================ */
.nxmg-media-preview .nxmg-image-post-dots {
    position: absolute !important;
    left: 50% !important;
    bottom: clamp(14px, 2.1vh, 24px) !important;
    z-index: 24 !important;
    transform: translateX(-50%) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 7px !important;
    max-width: calc(100% - 28px) !important;
    padding: 7px 10px !important;
    border: 1px solid rgba(255,255,255,.10) !important;
    border-radius: 999px !important;
    background: rgba(8,10,14,.46) !important;
    box-shadow: 0 10px 28px rgba(0,0,0,.20) !important;
    backdrop-filter: blur(14px) saturate(135%) !important;
    -webkit-backdrop-filter: blur(14px) saturate(135%) !important;
    touch-action: manipulation !important;
}
.nxmg-media-preview .nxmg-image-post-dot {
    appearance: none !important;
    width: 7px !important;
    height: 7px !important;
    min-width: 7px !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 999px !important;
    background: rgba(255,255,255,.43) !important;
    box-shadow: none !important;
    opacity: .88 !important;
    cursor: pointer !important;
    transform: translateZ(0) scale(1) !important;
    transition: width .26s cubic-bezier(.2,.8,.2,1), background .26s ease, opacity .26s ease, transform .26s ease !important;
}
.nxmg-media-preview .nxmg-image-post-dot:hover {
    opacity: 1 !important;
    transform: translateZ(0) scale(1.18) !important;
}
.nxmg-media-preview .nxmg-image-post-dot.is-active {
    width: 20px !important;
    background: rgba(255,255,255,.96) !important;
    opacity: 1 !important;
}
.nxmg-media-preview .nxmg-image-post-dot:focus-visible {
    outline: 2px solid #fff !important;
    outline-offset: 3px !important;
}
@media (max-width: 900px) {
    .nxmg-media-preview .nxmg-image-post-dots {
        bottom: max(13px, calc(env(safe-area-inset-bottom) + 7px)) !important;
        gap: 6px !important;
        padding: 6px 9px !important;
    }
    .nxmg-media-preview .nxmg-image-post-dot {
        width: 7px !important;
        height: 7px !important;
        min-width: 7px !important;
    }
    .nxmg-media-preview .nxmg-image-post-dot.is-active { width: 18px !important; }
}
