/*
Theme Name: SND Customify Gov
Theme URI: https://www.snd.gob.mx/
Description: Tema de WordPress compatible con Customify y WordPress 6.0.4, con encabezado y navegación basados en la composición oficial de gob.mx/cultura.
Author: Manus AI
Template: customify
Version: 1.10.5
Requires at least: 5.8
Tested up to: 6.9
Text Domain: snd-customify-gov
*/

/* =========================================================
   BASE: eliminar offsets heredados de Customify
   ========================================================= */
html,
body,
#page.snd-site {
    margin: 0 !important;
    padding: 0 !important;
}

#page.snd-site {
    width: 100% !important;
    max-width: none !important;
    min-height: 0 !important;
    transform: none !important;
}

#page.snd-site a {
    text-decoration: none;
}

#page.snd-site .screen-reader-text {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

#page.snd-site button,
#page.snd-site input,
#page.snd-site select {
    font-family: 'Open Sans', Arial, sans-serif;
}

/* El contenido comienza inmediatamente después del banner. */
#page.snd-site > #content.site-content {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

#page.snd-site > #content.site-content > .site-main {
    margin: 0 !important;
    padding: 30px 0 0 !important;
}

/* =========================================================
   BARRA SUPERIOR INSTITUCIONAL — 72px
   ========================================================= */
#page.snd-site .snd-topbar {
    position: relative !important;
    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;
    z-index: 10020 !important;
    width: 100% !important;
    height: 72px !important;
    min-height: 72px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: #611232 !important;
    color: #ffffff !important;
}

#page.snd-site .snd-topbar__container {
    height: 72px !important;
    margin: 0 auto !important;
}

#page.snd-site .snd-topbar__brand-wrap {
    float: left !important;
    width: 190px !important;
    height: 72px !important;
    margin: 0 !important;
    padding: 0 !important;
}

#page.snd-site .snd-topbar__brand {
    display: block !important;
    width: 180px !important;
    height: 72px !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
}

/* El SVG oficial se usa como fondo para evitar el colapso 0x0 de Customify. */
#page.snd-site .snd-logo-main {
    display: block !important;
    width: 165px !important;
    height: 56px !important;
    margin: 8px 0 !important;
    background-image: url('assets/logo_gobierno_footer.svg') !important;
    background-repeat: no-repeat !important;
    background-position: left center !important;
    background-size: contain !important;
}

#page.snd-site .snd-topbar__menu.collapse {
    display: block !important;
    height: 72px !important;
    overflow: visible !important;
    padding: 0 !important;
    border: 0 !important;
}

#page.snd-site .snd-topbar__links {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    float: right !important;
    height: 72px !important;
    margin: 0 !important;
    padding: 0 !important;
}

#page.snd-site .snd-topbar__links > li {
    display: block !important;
    float: none !important;
    height: 72px !important;
    margin: 0 !important;
    padding: 0 !important;
}

#page.snd-site .snd-topbar__links > li > a {
    display: flex !important;
    align-items: center !important;
    height: 72px !important;
    margin: 0 !important;
    padding: 0 18px !important;
    color: #ffffff !important;
    background: transparent !important;
    font-family: 'Open Sans', Arial, sans-serif !important;
    font-size: 16px !important;
    font-weight: 600 !important;
    line-height: 1 !important;
    white-space: nowrap !important;
}

#page.snd-site .snd-topbar__links > li > a:hover,
#page.snd-site .snd-topbar__links > li > a:focus {
    background: #781838 !important;
    color: #ffffff !important;
}

#page.snd-site .snd-search-link .glyphicon {
    font-size: 18px !important;
}

#page.snd-site .snd-topbar__toggle {
    display: none;
}

/* =========================================================
   BARRA SECUNDARIA DEL SITIO — sin separación
   ========================================================= */
#page.snd-site .snd-subbar {
    position: relative !important;
    z-index: 10010 !important;
    width: 100% !important;
    min-height: 80px !important;
    height: 80px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: #3a0b1e !important;
    color: #ffffff !important;
}

#page.snd-site .snd-subbar__container {
    display: flex !important;
    align-items: center !important;
    min-height: 80px !important;
    height: 80px !important;
    margin: 0 auto !important;
}

#page.snd-site .snd-menu-identity {
    display: flex !important;
    flex: 0 0 auto !important;
    align-items: center !important;
    justify-content: flex-start !important;
    width: auto !important;
    max-width: var(--snd-menu-identity-max-width, 220px) !important;
    height: 80px !important;
    margin: 0 18px 0 0 !important;
    padding: 0 !important;
    color: #ffffff !important;
    background: transparent !important;
    font-family: 'Open Sans', Arial, sans-serif !important;
    font-size: 18px !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    white-space: nowrap !important;
}

#page.snd-site .snd-menu-identity:hover,
#page.snd-site .snd-menu-identity:focus {
    color: #ffffff !important;
    background: transparent !important;
    text-decoration: underline !important;
}

#page.snd-site .snd-menu-identity img {
    display: block !important;
    width: auto !important;
    width: 100% !important;
    max-width: var(--snd-menu-identity-max-width, 220px) !important;
    height: auto !important;
    max-height: 52px !important;
    object-fit: contain !important;
}

#page.snd-site #snd-site-menu {
    flex: 1 1 auto !important;
    width: auto !important;
    min-width: 0 !important;
}

#page.snd-site #snd-site-menu.collapse {
    display: block !important;
    height: 80px !important;
    overflow: visible !important;
    padding: 0 !important;
    border: 0 !important;
}

#page.snd-site #snd-site-menu > ul.snd-site-menu-list {
    display: flex !important;
    align-items: stretch !important;
    justify-content: center !important;
    float: none !important;
    width: 100% !important;
    height: 80px !important;
    min-height: 80px !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

#page.snd-site #snd-site-menu > ul.snd-site-menu-list > li {
    position: relative !important;
    display: block !important;
    float: none !important;
    width: auto !important;
    height: 80px !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

#page.snd-site #snd-site-menu > ul.snd-site-menu-list > li > a {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    height: var(--snd-menu-bar-height, 64px) !important;
    min-width: var(--snd-menu-item-min-width, 0px) !important;
    margin: 0 !important;
    padding: 0 var(--snd-menu-item-padding, 12px) !important;
    color: #ffffff !important;
    background: transparent !important;
    font-family: 'Open Sans', Arial, sans-serif !important;
    font-size: var(--snd-menu-font-size, 16px) !important;
    font-weight: 600 !important;
    line-height: 1.25 !important;
    text-align: center !important;
    text-transform: none !important;
    white-space: nowrap !important;
}

#page.snd-site #snd-site-menu > ul.snd-site-menu-list > li:hover > a,
#page.snd-site #snd-site-menu > ul.snd-site-menu-list > li:focus-within > a,
#page.snd-site #snd-site-menu > ul.snd-site-menu-list > li.current-menu-item > a,
#page.snd-site #snd-site-menu > ul.snd-site-menu-list > li.current-menu-ancestor > a {
    background: #611232 !important;
    color: #ffffff !important;
}

/* Dropdown: aislado de las reglas .sub-menu de Customify. */
#page.snd-site #snd-site-menu > ul.snd-site-menu-list > li > ul.sub-menu {
    position: absolute !important;
    top: var(--snd-menu-bar-height, 64px) !important;
    right: auto !important;
    bottom: auto !important;
    left: 0 !important;
    display: none !important;
    flex-direction: column !important;
    width: 300px !important;
    min-width: 300px !important;
    height: auto !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 6px 0 !important;
    overflow: visible !important;
    list-style: none !important;
    background: #ffffff !important;
    border-top: 4px solid #611232 !important;
    box-shadow: 0 8px 18px rgba(0, 0, 0, .25) !important;
}

#page.snd-site #snd-site-menu > ul.snd-site-menu-list > li:hover > ul.sub-menu,
#page.snd-site #snd-site-menu > ul.snd-site-menu-list > li:focus-within > ul.sub-menu,
#page.snd-site #snd-site-menu > ul.snd-site-menu-list > li > ul.sub-menu:focus-within {
    display: flex !important;
}

#page.snd-site #snd-site-menu ul.sub-menu > li {
    position: relative !important;
    display: block !important;
    float: none !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

#page.snd-site #snd-site-menu ul.sub-menu > li > a {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    min-height: 42px !important;
    margin: 0 !important;
    padding: 11px 18px !important;
    color: #161a1d !important;
    background: #ffffff !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    line-height: 1.35 !important;
    text-align: left !important;
    text-transform: none !important;
    white-space: normal !important;
}

#page.snd-site #snd-site-menu ul.sub-menu > li > a:hover,
#page.snd-site #snd-site-menu ul.sub-menu > li > a:focus {
    color: #611232 !important;
    background: #f3e4e9 !important;
}

#page.snd-site .snd-subbar__toggle {
    display: none;
}

/* =========================================================
   BANNER INSTITUCIONAL DE CULTURA — 350px en escritorio
   ========================================================= */
#page.snd-site .snd-cultura-banner {
    position: relative !important;
    display: block !important;
    width: 100% !important;
    height: 350px !important;
    min-height: 350px !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    background-color: #ffffff !important;
    background-image: url('assets/banner_cultura.png') !important;
    background-repeat: no-repeat !important;
    background-position: center top !important;
    background-size: cover !important;
}

#page.snd-site .snd-cultura-banner__content {
    height: 350px !important;
    margin: 0 auto !important;
    padding: 0 !important;
}

#page.snd-site .snd-under-banner {
    width: 100% !important;
    margin: 0 !important;
    padding: 22px 0 !important;
    background: #ffffff !important;
    border-bottom: 6px solid #611232 !important;
}

#page.snd-site .snd-under-banner .widget {
    margin: 0 !important;
}

#page.snd-site .snd-under-banner .widget-title {
    margin: 0 0 12px !important;
    color: #611232 !important;
}

#page.snd-site .snd-social-widget {
    margin: 0 0 18px !important;
}

#page.snd-site .snd-social-widget .widget-title {
    color: #ffffff !important;
    margin-top: 0 !important;
}

#page.snd-site .snd-social-widget ul,
#page.snd-site .snd-social-widget .menu {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

#page.snd-site .snd-social-widget li {
    display: inline-block !important;
    margin: 0 10px 8px 0 !important;
}

#page.snd-site .snd-social-widget a,
#page.snd-site .snd-social-fallback a {
    color: #ffffff !important;
    font-size: 24px !important;
}

#page.snd-site .snd-social-widget a:hover,
#page.snd-site .snd-social-widget a:focus {
    color: #d4c19c !important;
}

/* =========================================================
   LAYOUT POR PÁGINA DE CUSTOMIFY
   ========================================================= */
#page.snd-site .snd-content-wrapper {
    width: 100% !important;
    margin: 0 !important;
    padding: 36px 0 !important;
}

#page.snd-site .snd-content-inner {
    width: 100% !important;
    margin-right: auto !important;
    margin-left: auto !important;
}

#page.snd-site .snd-content-inner--stretched {
    width: 100% !important;
    max-width: none !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
}

#page.snd-site .snd-content-inner--stretched .row {
    margin-right: 0 !important;
    margin-left: 0 !important;
}

#page.snd-site .snd-layout-full-width .snd-main-column,
#page.snd-site .snd-layout-narrow .snd-main-column,
#page.snd-site .snd-layout-stretched .snd-main-column {
    width: 100% !important;
}

#page.snd-site .snd-main-column,
#page.snd-site .snd-primary-sidebar {
    min-height: 1px !important;
}

#page.snd-site .snd-primary-sidebar {
    padding-top: 0 !important;
}

#page.snd-site .snd-primary-sidebar .widget {
    margin-bottom: 24px !important;
}

/* =========================================================
   BANNER ADMINISTRABLE / SMART SLIDER
   ========================================================= */
#page.snd-site .snd-cultura-banner--slider,
#page.snd-site .snd-cultura-banner--slider .snd-cultura-banner__content,
#page.snd-site .snd-banner-widget-area,
#page.snd-site .snd-banner-widget-area .widget {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

#page.snd-site .snd-cultura-banner--slider {
    height: auto !important;
    min-height: 0 !important;
    background: none !important;
}

#page.snd-site .snd-cultura-banner--slider .container {
    width: 100% !important;
    max-width: none !important;
}

#page.snd-site .snd-cultura-banner--slider img,
#page.snd-site .snd-cultura-banner--slider iframe {
    display: block !important;
    max-width: 100% !important;
}

/* =========================================================
   FOOTER
   ========================================================= */
#page.snd-site .main-footer {
    margin: 0 !important;
    padding: 50px 0 !important;
    background: #611232 !important;
    border-top: 8px solid #a57f2c !important;
    color: #ffffff !important;
}

#page.snd-site .main-footer a {
    color: #ffffff !important;
}

#page.snd-site .main-footer ul,
#page.snd-site .main-footer li {
    list-style: none !important;
}

/* =========================================================
   RESPONSIVO: SND activa versión móvil bajo 767px
   ========================================================= */
@media (min-width: 768px) {
    #page.snd-site .snd-subbar,
    #page.snd-site .snd-subbar__container,
    #page.snd-site #snd-site-menu.collapse,
    #page.snd-site #snd-site-menu > ul.snd-site-menu-list,
    #page.snd-site #snd-site-menu > ul.snd-site-menu-list > li {
        height: var(--snd-menu-bar-height, 64px) !important;
        min-height: var(--snd-menu-bar-height, 64px) !important;
    }
}

@media (max-width: 767px) {
    #page.snd-site .snd-topbar,
    #page.snd-site .snd-topbar__container,
    #page.snd-site .snd-topbar__menu.collapse {
        height: 64px !important;
        min-height: 64px !important;
    }

    #page.snd-site .snd-topbar__brand-wrap {
        width: 180px !important;
        height: 64px !important;
    }

    #page.snd-site .snd-topbar__brand {
        height: 64px !important;
    }

    #page.snd-site .snd-logo-main {
        width: 150px !important;
        height: 48px !important;
        margin: 8px 0 !important;
    }

    #page.snd-site .snd-topbar__toggle,
    #page.snd-site .snd-subbar__toggle {
        display: block !important;
        position: absolute !important;
        top: 12px !important;
        right: 15px !important;
        float: none !important;
        width: 48px !important;
        height: 40px !important;
        margin: 0 !important;
        padding: 8px 10px !important;
        background: #611232 !important;
        border: 1px solid #ffffff !important;
        border-radius: 0 !important;
    }

    #page.snd-site .snd-topbar__toggle .icon-bar,
    #page.snd-site .snd-subbar__toggle .icon-bar {
        display: block !important;
        width: 26px !important;
        height: 2px !important;
        margin: 0 auto 5px !important;
        background: #ffffff !important;
    }

    #page.snd-site .snd-topbar__toggle .icon-bar:last-child,
    #page.snd-site .snd-subbar__toggle .icon-bar:last-child {
        margin-bottom: 0 !important;
    }

    #page.snd-site .snd-topbar__menu.collapse {
        display: none !important;
        position: absolute !important;
        top: 64px !important;
        right: 0 !important;
        left: 0 !important;
        height: auto !important;
        background: #611232 !important;
    }

    #page.snd-site .snd-topbar__menu.collapse.in,
    #page.snd-site .snd-topbar__menu.collapsing {
        display: block !important;
        height: auto !important;
    }

    #page.snd-site .snd-topbar__links {
        display: block !important;
        float: none !important;
        height: auto !important;
        background: #611232 !important;
    }

    #page.snd-site .snd-topbar__links > li,
    #page.snd-site .snd-topbar__links > li > a {
        height: 48px !important;
    }

    #page.snd-site .snd-topbar__links > li > a {
        justify-content: flex-start !important;
        padding: 0 20px !important;
    }

    #page.snd-site .snd-subbar,
    #page.snd-site .snd-subbar__container {
        height: 58px !important;
        min-height: 58px !important;
    }

    #page.snd-site .snd-subbar__container {
        display: block !important;
        position: relative !important;
        padding: 0 15px !important;
    }

    #page.snd-site .snd-menu-identity {
        position: absolute !important;
        top: 0 !important;
        right: 78px !important;
        left: 78px !important;
        display: flex !important;
        justify-content: center !important;
        width: auto !important;
        max-width: none !important;
        height: 58px !important;
        margin: 0 !important;
        overflow: hidden !important;
        font-size: 15px !important;
        text-overflow: ellipsis !important;
    }

    #page.snd-site .snd-menu-identity img {
        max-width: 150px !important;
        max-height: 40px !important;
    }

    #page.snd-site .snd-subbar__toggle {
        top: 9px !important;
        right: auto !important;
        left: 15px !important;
        margin: 0 !important;
    }

    #page.snd-site #snd-site-menu {
        display: block !important;
        width: 100% !important;
    }

    #page.snd-site #snd-site-menu.collapse {
        display: none !important;
        position: absolute !important;
        top: 58px !important;
        right: 0 !important;
        left: 0 !important;
        z-index: 10030 !important;
        width: 100% !important;
        height: auto !important;
        background: #3a0b1e !important;
    }

    #page.snd-site #snd-site-menu.collapse.in,
    #page.snd-site #snd-site-menu.collapsing {
        display: block !important;
        height: auto !important;
    }

    #page.snd-site #snd-site-menu > ul.snd-site-menu-list {
        display: block !important;
        height: auto !important;
        min-height: 0 !important;
        background: #3a0b1e !important;
    }

    #page.snd-site #snd-site-menu > ul.snd-site-menu-list > li,
    #page.snd-site #snd-site-menu > ul.snd-site-menu-list > li > a {
        width: 100% !important;
        height: auto !important;
        min-height: 48px !important;
    }

    #page.snd-site #snd-site-menu > ul.snd-site-menu-list > li > a {
        justify-content: flex-start !important;
        padding: 13px 20px !important;
    }

    #page.snd-site #snd-site-menu > ul.snd-site-menu-list > li > ul.sub-menu {
        position: static !important;
        width: 100% !important;
        min-width: 0 !important;
        box-shadow: none !important;
        border-top: 0 !important;
    }

    #page.snd-site .snd-cultura-banner,
    #page.snd-site .snd-cultura-banner__content {
        height: 300px !important;
        min-height: 300px !important;
        background-position: center top !important;
        background-size: cover !important;
    }

    #page.snd-site .snd-cultura-banner:not(.snd-cultura-banner--slider) {
        background-image: url('assets/banner_cultura_mobile.jpg') !important;
        background-color: #ffffff !important;
    }

    #page.snd-site .snd-cultura-banner--slider {
        height: auto !important;
        min-height: 0 !important;
        background-image: none !important;
        overflow: visible !important;
    }

    #page.snd-site .snd-cultura-banner--slider .snd-cultura-banner__content,
    #page.snd-site .snd-cultura-banner--slider .snd-banner-widget-area,
    #page.snd-site .snd-cultura-banner--slider .snd-banner-widget {
        height: auto !important;
        min-height: 0 !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    #page.snd-site .snd-banner-widget-area .n2-ss-slider,
    #page.snd-site .snd-banner-widget-area .n2-ss-slider-3,
    #page.snd-site .snd-banner-widget-area .smart-slider-3 {
        width: 100% !important;
        max-width: 100% !important;
    }

    #page.snd-site .snd-under-banner {
        padding: 16px 0 !important;
    }

    #page.snd-site .snd-content-wrapper {
        padding: 24px 0 !important;
    }

    #page.snd-site .snd-content-inner,
    #page.snd-site .snd-content-inner--stretched {
        width: 100% !important;
        padding-right: 15px !important;
        padding-left: 15px !important;
    }

    #page.snd-site .snd-content-inner--stretched {
        padding-right: 0 !important;
        padding-left: 0 !important;
    }

    #page.snd-site .snd-main-column,
    #page.snd-site .snd-primary-sidebar {
        width: 100% !important;
        padding-right: 15px !important;
        padding-left: 15px !important;
    }
}

/* Pie normativo inferior: visible junto con el footer principal. */
#page.snd-site .snd-footer-bottom {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 16px 0 !important;
    color: #ffffff !important;
    background: #3a0b1e !important;
    font-family: 'Open Sans', Arial, sans-serif !important;
    font-size: 13px !important;
}

#page.snd-site .snd-footer-bottom p {
    margin: 0 !important;
}

#page.snd-site .snd-footer-bottom a {
    margin-left: 18px !important;
    color: #ffffff !important;
}

#page.snd-site .snd-footer-bottom a:hover,
#page.snd-site .snd-footer-bottom a:focus {
    color: #d4c19c !important;
}

#page.snd-site .snd-social-widget,
#page.snd-site .snd-under-banner-widget {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
}

#page.snd-site .snd-social-widget i,
#page.snd-site .snd-under-banner-widget i,
#page.snd-site .snd-social-widget svg,
#page.snd-site .snd-under-banner-widget svg {
    display: inline-block !important;
    visibility: visible !important;
    opacity: 1 !important;
    color: inherit !important;
}

@media (max-width: 767px) {
    #page.snd-site .snd-footer-bottom__links a {
        display: inline-block !important;
        margin: 8px 14px 0 0 !important;
    }
}

/* Zona administrable antes de la barra inferior normativa. */
#page.snd-site .snd-before-footer {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 24px 0 !important;
    color: #ffffff !important;
    background: #611232 !important;
}

#page.snd-site .snd-before-footer .widget {
    margin: 0 !important;
}

#page.snd-site .snd-before-footer .widget-title {
    margin-top: 0 !important;
    color: #ffffff !important;
}

#page.snd-site .snd-before-footer a,
#page.snd-site .snd-before-footer .fa,
#page.snd-site .snd-before-footer [class*="icon"] {
    color: #ffffff !important;
    visibility: visible !important;
    opacity: 1 !important;
}

#page.snd-site .snd-before-footer a:hover,
#page.snd-site .snd-before-footer a:focus {
    color: #d4c19c !important;
}

/* Widget social nativo: icono y respaldo textual para evitar enlaces invisibles. */
#page.snd-site .snd-social-links {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 10px !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

#page.snd-site .snd-social-links li {
    display: inline-flex !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

#page.snd-site .snd-social-links a {
    display: inline-flex !important;
    align-items: center !important;
    gap: 7px !important;
    color: #ffffff !important;
    text-decoration: none !important;
}

#page.snd-site .snd-social-links .fa {
    display: inline-block !important;
    width: 28px !important;
    color: #ffffff !important;
    font-size: 24px !important;
    line-height: 1 !important;
    text-align: center !important;
    visibility: visible !important;
    opacity: 1 !important;
}

#page.snd-site .snd-social-links__fallback {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

/* Zonas editables del footer institucional. */
#page.snd-site .snd-footer-widgets > [class*="snd-footer-column"] {
    min-height: 150px !important;
}

#page.snd-site .snd-footer-widget,
#page.snd-site .snd-copyright-widget {
    display: block !important;
    margin: 0 0 14px !important;
}

#page.snd-site .snd-footer-widget ul,
#page.snd-site .snd-copyright-widget ul {
    margin: 0 !important;
    padding-left: 0 !important;
    list-style: none !important;
}

#page.snd-site .snd-footer-widget li,
#page.snd-site .snd-copyright-widget li {
    margin: 0 0 7px !important;
    list-style: none !important;
}

#page.snd-site .snd-copyright-widget {
    margin: 0 !important;
    color: #ffffff !important;
}

#page.snd-site .snd-copyright-widget .widget-title {
    display: none !important;
}

/* Zonas administrables reubicadas antes del bloque visual principal del footer. */
#page.snd-site .snd-pre-footer-copyright {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 14px 0 !important;
    color: #ffffff !important;
    background: #3a0b1e !important;
}

#page.snd-site .snd-pre-footer-copyright .widget {
    margin: 0 !important;
}

#page.snd-site .snd-pre-footer-copyright .widget-title {
    margin: 0 0 8px !important;
    color: #ffffff !important;
}

#page.snd-site .snd-pre-footer-copyright a,
#page.snd-site .snd-pre-footer-copyright p {
    color: #ffffff !important;
}

@media (max-width: 767px) {
    #page.snd-site .snd-pre-footer-copyright {
        padding: 12px 15px !important;
    }
}

/* Migas de navegación institucionales. */
#page.snd-site .snd-breadcrumbs {
    width: 100%;
    margin: 0 auto 18px;
    padding: 10px 15px;
    font-size: 13px;
    line-height: 1.4;
    color: #555;
    background: #f7f7f7;
}

#page.snd-site .snd-breadcrumbs ol {
    display: flex;
    flex-wrap: wrap;
    gap: 0;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0;
    list-style: none;
}

#page.snd-site .snd-breadcrumbs li {
    display: inline-flex;
    align-items: center;
    list-style: none;
}

#page.snd-site .snd-breadcrumbs li + li::before {
    content: '/';
    margin: 0 9px;
    color: #777;
}

#page.snd-site .snd-breadcrumbs a {
    color: #611232;
    text-decoration: underline;
}

/* Fallback del carrusel para Query Loop nativo con clase snd-news-carousel. */
#page.snd-site .snd-query-carousel-ready .snd-query-carousel-track {
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: 18px !important;
    overflow-x: auto !important;
    scroll-snap-type: x mandatory;
    scrollbar-width: thin;
    padding: 16px 8px 24px !important;
    margin: 0 !important;
    list-style: none !important;
}

#page.snd-site .snd-query-carousel-ready .snd-query-carousel-slide {
    flex: 0 0 calc(33.333% - 12px) !important;
    min-width: 0 !important;
    scroll-snap-align: start;
    list-style: none !important;
}

#page.snd-site .snd-query-carousel-controls {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    margin-top: 8px;
}

#page.snd-site .snd-query-carousel-controls button {
    width: 36px;
    height: 36px;
    border: 0;
    border-radius: 2px;
    color: #ffffff;
    background: #611232;
    font-size: 24px;
    line-height: 1;
    cursor: pointer;
}

@media (max-width: 767px) {
    #page.snd-site .snd-query-carousel-ready .snd-query-carousel-slide {
        flex-basis: 82% !important;
    }
    #page.snd-site .snd-breadcrumbs {
        margin-bottom: 12px;
    }
}


/* =========================================================
   COMPATIBILIDAD CON ANY BLOCK CAROUSEL SLIDER / POST TEMPLATE
   El bloque Plantilla de entrada llega como .wp-block-post-template.abcs.
   WordPress puede aplicar .is-flex-container { flex-wrap: wrap },
   lo que elimina el overflow horizontal y deja las flechas deshabilitadas.
   ========================================================= */
#page.snd-site .wp-block-query:has(> .wp-block-post-template.abcs) {
    position: relative !important;
    overflow: visible !important;
    max-width: 100% !important;
}

#page.snd-site .wp-block-post-template.abcs,
#page.snd-site .wp-block-post-template.abcs.is-flex-container,
#page.snd-site .wp-block-post-template.abcs.is-layout-flex {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    overflow-x: auto !important;
    overflow-y: visible !important;
    width: 100% !important;
    max-width: 100% !important;
}

#page.snd-site .wp-block-post-template.abcs > .wp-block-post,
#page.snd-site .wp-block-post-template.abcs.is-flex-container > .wp-block-post,
#page.snd-site .wp-block-post-template.abcs.is-layout-flex > .wp-block-post {
    flex: 0 0 auto !important;
    width: calc(33.333% - var(--wp--style--block-gap, 1rem) * 2 / 3) !important;
    min-width: calc(33.333% - var(--wp--style--block-gap, 1rem) * 2 / 3) !important;
    max-width: 100% !important;
    margin: 0 !important;
}

/* Las variables visuales del plugin pueden ser sustituidas por la identidad SND. */
#page.snd-site .wp-block-post-template.abcs {
    --carousel-button-bg: #611232 !important;
    --carousel-button-color: #ffffff !important;
    --carousel-z-index: 20 !important;
}

#page.snd-site .wp-block-query > .abcs-nav-btn,
#page.snd-site .wp-block-query > .abcs-markers {
    z-index: 20 !important;
}

#page.snd-site .wp-block-query > .abcs-nav-btn {
    background-color: var(--carousel-button-bg, #611232) !important;
    border-color: var(--carousel-button-bg, #611232) !important;
    color: var(--carousel-button-color, #ffffff) !important;
}

#page.snd-site .wp-block-query > .abcs-markers {
    margin-top: 10px !important;
}

@media (max-width: 1024px) {
    #page.snd-site .wp-block-post-template.abcs > .wp-block-post,
    #page.snd-site .wp-block-post-template.abcs.is-flex-container > .wp-block-post,
    #page.snd-site .wp-block-post-template.abcs.is-layout-flex > .wp-block-post {
        width: calc(50% - var(--wp--style--block-gap, 1rem) / 2) !important;
        min-width: calc(50% - var(--wp--style--block-gap, 1rem) / 2) !important;
    }
}

@media (max-width: 600px) {
    #page.snd-site .wp-block-post-template.abcs > .wp-block-post,
    #page.snd-site .wp-block-post-template.abcs.is-flex-container > .wp-block-post,
    #page.snd-site .wp-block-post-template.abcs.is-layout-flex > .wp-block-post {
        width: 100% !important;
        min-width: 100% !important;
    }
}

/* Evitar que el tema o Customify oculte los controles cuando el plugin los crea. */
#page.snd-site .wp-block-query > .abcs-nav-btn:not(:disabled) {
    display: inline-flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
}

#page.snd-site .wp-block-query > .abcs-nav-btn:disabled {
    pointer-events: none !important;
}

/* Versión corregida del soporte Post Template. */


/* =========================================================
   CARRUSEL NEWS 1.10.3 — controles visibles y desplazamiento real
   ========================================================= */
#page.snd-site .wp-block-query:has(> .wp-block-post-template.abcs) {
    position: relative !important;
    overflow: visible !important;
}

#page.snd-site .wp-block-query > .abcs-nav-btn {
    display: inline-flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    position: absolute !important;
    z-index: 100 !important;
    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
    min-height: 44px !important;
    padding: 0 !important;
    border: 2px solid #611232 !important;
    border-radius: 50% !important;
    background: #611232 !important;
    color: #ffffff !important;
    transform: translateY(-50%) !important;
}

#page.snd-site .wp-block-query > .abcs-nav-btn--prev {
    left: 12px !important;
    right: auto !important;
}

#page.snd-site .wp-block-query > .abcs-nav-btn--next {
    right: 12px !important;
    left: auto !important;
}

#page.snd-site .wp-block-query > .abcs-nav-btn svg {
    width: 22px !important;
    height: 22px !important;
    fill: #ffffff !important;
}

#page.snd-site .wp-block-query > .abcs-markers {
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    position: relative !important;
    inset: auto !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 8px !important;
    width: 100% !important;
    height: auto !important;
    min-height: 28px !important;
    margin: 12px 0 0 !important;
    padding: 4px 0 !important;
    background: transparent !important;
}

#page.snd-site .wp-block-query > .abcs-markers .abcs-marker {
    display: inline-flex !important;
    visibility: visible !important;
    opacity: .55 !important;
    width: 10px !important;
    height: 10px !important;
    min-width: 10px !important;
    min-height: 10px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 50% !important;
    background: #611232 !important;
    cursor: pointer !important;
}

#page.snd-site .wp-block-query > .abcs-markers .abcs-marker.is-active,
#page.snd-site .wp-block-query > .abcs-markers .abcs-marker[aria-selected="true"] {
    opacity: 1 !important;
    background: #611232 !important;
    transform: scale(1.25) !important;
}

@media (max-width: 767px) {
    #page.snd-site .wp-block-query > .abcs-nav-btn {
        width: 38px !important;
        height: 38px !important;
        min-width: 38px !important;
        min-height: 38px !important;
    }
    #page.snd-site .wp-block-query > .abcs-nav-btn--prev { left: 6px !important; }
    #page.snd-site .wp-block-query > .abcs-nav-btn--next { right: 6px !important; }
}


/* Carrusel News 1.10.4: controles alineados con las tarjetas. */
#page.snd-site .wp-block-query > .abcs-markers {
    margin-top: -54px !important;
    transform: translateY(0) !important;
    pointer-events: auto !important;
}

#page.snd-site .wp-block-query.snd-no-carousel-overflow > .abcs-nav-btn,
#page.snd-site .wp-block-query.snd-no-carousel-overflow > .abcs-markers {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

#page.snd-site .wp-block-query:not(.snd-no-carousel-overflow) > .abcs-nav-btn {
    top: 50% !important;
}

@media (max-width: 767px) {
    #page.snd-site .wp-block-query > .abcs-markers {
        margin-top: -42px !important;
    }
}


/* =========================================================
   CARRUSEL NEWS 1.10.5 — controles inferiores
   Las flechas se muestran debajo de las tarjetas, junto a la paginación.
   ========================================================= */
#page.snd-site .wp-block-query:has(> .wp-block-post-template.abcs) {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    justify-content: center !important;
    column-gap: 8px !important;
    row-gap: 0 !important;
}

#page.snd-site .wp-block-query:has(> .wp-block-post-template.abcs) > .wp-block-post-template.abcs {
    order: 1 !important;
    flex: 0 0 100% !important;
    width: 100% !important;
}

#page.snd-site .wp-block-query:has(> .wp-block-post-template.abcs) > .abcs-nav-btn {
    position: static !important;
    order: 2 !important;
    flex: 0 0 38px !important;
    width: 38px !important;
    height: 38px !important;
    min-width: 38px !important;
    min-height: 38px !important;
    margin: 12px 0 0 !important;
    transform: none !important;
}

#page.snd-site .wp-block-query:has(> .wp-block-post-template.abcs) > .abcs-markers {
    position: static !important;
    order: 3 !important;
    flex: 0 1 auto !important;
    width: auto !important;
    min-width: 80px !important;
    height: 38px !important;
    min-height: 38px !important;
    margin: 12px 4px 0 !important;
    padding: 0 4px !important;
}

#page.snd-site .wp-block-query:has(> .wp-block-post-template.abcs) > .abcs-markers .abcs-marker {
    flex: 0 0 10px !important;
}

#page.snd-site .wp-block-query.snd-no-carousel-overflow:has(> .wp-block-post-template.abcs) > .abcs-markers {
    display: none !important;
}

@media (max-width: 767px) {
    #page.snd-site .wp-block-query:has(> .wp-block-post-template.abcs) > .abcs-nav-btn {
        flex-basis: 34px !important;
        width: 34px !important;
        height: 34px !important;
        min-width: 34px !important;
        min-height: 34px !important;
        margin-top: 10px !important;
    }
    #page.snd-site .wp-block-query:has(> .wp-block-post-template.abcs) > .abcs-markers {
        height: 34px !important;
        min-height: 34px !important;
        margin-top: 10px !important;
    }
}
