/* ============================================================
   MML.CSS v2 - Facelift del buscador MyMapLocations (PVEM)
   Verde de marca: #32b936 (tomado del estilo del componente)
   ============================================================ */

/* ---------- Contenedor principal ---------- */
#locationlocator {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    flex-wrap: wrap;
    min-height: 420px;
    padding: 40px;
    border-radius: 16px;
    overflow: hidden;
    background-size: cover !important;
    background-position: center !important;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.12);
    position: relative;
}

#locationlocator::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(120deg, rgba(20, 40, 10, 0.28) 0%, rgba(20, 40, 10, 0.05) 55%);
    pointer-events: none;
}

#locationlocator > .row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    flex-wrap: wrap;
    width: 100%;
    margin: 0;
    position: relative;
    z-index: 1;
}

/* ---------- Boton "Cerca de mi" ---------- */
#locationlocator .btn-group {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    float: none;
    flex: 1 1 260px;
    max-width: 420px;
}

#locationlocator .btn-group h2 {
    color: #ffffff;
    font-size: 22px;
    font-weight: 600;
    text-align: center;
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.45);
    margin: 0;
}

#locationlocator .btn-group br { display: none; }

#locationlocator button.resultbtn,
#locationlocator .btn-group .btn {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: auto !important;
    height: auto !important;
    min-height: 0 !important;
    padding: 14px 32px !important;
    border: 0 !important;
    border-radius: 999px !important;
    background: #32b936 !important;
    color: #ffffff !important;
    font-size: 17px !important;
    font-weight: 600;
    line-height: 1.2 !important;
    cursor: pointer;
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.25) !important;
    transition: background 0.2s ease, transform 0.15s ease;
    white-space: nowrap;
}

#locationlocator button.resultbtn:hover,
#locationlocator .btn-group .btn:hover {
    background: #28a02f !important;
    transform: translateY(-1px);
}

#locationlocator button.resultbtn i { font-size: 18px; }

/* ---------- Separador "O" ---------- */
#locationlocator .separatorLoc {
    display: flex;
    align-items: center;
    justify-content: center;
}

#locationlocator .separatorLoc h5 {
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    margin: 0 !important;
    padding: 0 !important;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.95) !important;
    color: #2f2f2f !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    text-transform: uppercase;
    text-indent: 0 !important;
    text-shadow: none !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}

/* ---------- Tarjeta de busqueda ---------- */
/* Neutralizar fondos/marcos heredados: solo .controls es la tarjeta */
#locationsearch_div,
#locationsearch_div form {
    background: transparent !important;
    box-shadow: none !important;
    border: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    float: none !important;
}

#locationsearch_div {
    flex: 1 1 320px;
    max-width: 460px;
}

#locationsearch_div .controls.container {
    width: 100%;
    max-width: none;
    padding: 26px 26px 22px;
    background: #ffffff;
    border-radius: 14px;
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.18);
}

/* Compactar: sin colchones fantasma de .row/.col */
#locationsearch_div .controls .row {
    display: block;
    margin: 0 !important;
    padding: 0 !important;
    min-height: 0 !important;
}

#locationsearch_div .controls .col,
#locationsearch_div .controls .input-append {
    display: block;
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
    float: none !important;
}

#locationsearch_div h2 {
    margin: 0 0 18px !important;
    padding: 0 !important;
    color: #2e2e2e;
    font-size: 24px;
    font-weight: 700;
    text-align: center;
}

/* Campos */
#locationsearch_div select,
#locationsearch_div .custom-select,
#locationsearch_div input[type="text"],
#locationsearch_div .search-query {
    display: block;
    width: 100% !important;
    height: 48px;
    margin: 0 0 14px !important;
    padding: 10px 14px !important;
    border: 1px solid #d9d9d9 !important;
    border-radius: 10px !important;
    background: #fafafa none !important;
    background-image: none !important;
    color: #333333;
    font-size: 15px;
    box-shadow: none !important;
    float: none !important;
    position: relative;
    z-index: 2;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

#locationsearch_div input[type="text"]:focus,
#locationsearch_div select:focus {
    outline: none;
    border-color: #32b936 !important;
    box-shadow: 0 0 0 3px rgba(50, 185, 54, 0.18) !important;
    background-color: #ffffff !important;
}

/* Matar decoraciones viejas tras el input (fantasmas) */
#locationsearch_div .adv-search {
    position: relative;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    border: 0 !important;
}

#locationsearch_div .adv-search::before,
#locationsearch_div .adv-search::after,
#locationsearch_div .input-append::before,
#locationsearch_div .input-append::after,
#locationsearch_div .form-group::before,
#locationsearch_div .form-group::after {
    display: none !important;
    content: none !important;
}

#locationsearch_div .add-on,
#locationsearch_div .geocode,
#locationsearch_div .rangeslider,
#locationsearch_div input[type="range"] {
    display: none !important;
}

#locationsearch_div .typeahead.dropdown-menu {
    border-radius: 10px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
}

#locationsearch_div .typeahead.dropdown-menu:empty {
    display: none !important;
}

/* Boton Buscar */
#locationsearch_div button[type="submit"],
#locationsearch_div .btn-primary {
    display: block;
    width: 100% !important;
    height: 50px;
    margin: 4px 0 0 !important;
    border: 0 !important;
    border-radius: 10px !important;
    background: #32b936 !important;
    color: #ffffff !important;
    font-size: 17px;
    font-weight: 700;
    letter-spacing: 0.3px;
    cursor: pointer;
    box-shadow: 0 6px 16px rgba(50, 185, 54, 0.35) !important;
    transition: background 0.2s ease, transform 0.15s ease;
}

#locationsearch_div button[type="submit"]:hover,
#locationsearch_div .btn-primary:hover {
    background: #28a02f !important;
    transform: translateY(-1px);
}

/* ---------- "Sin resultados" y conteo ---------- */
.noresult,
#noresult {
    margin: 28px auto;
    padding: 22px 28px;
    max-width: 520px;
    border-radius: 12px;
    background: #f4f6f2;
    border: 1px dashed #c9d6bc;
    color: #5a6b4d;
    font-size: 17px;
    font-weight: 600;
    text-align: center;
}

.result-count p {
    font-size: 16px;
    color: #444444;
}

/* ---------- Responsive ---------- */
@media (max-width: 991px) {
    #locationlocator {
        padding: 28px 18px;
        min-height: 0;
    }

    #locationlocator > .row { flex-direction: column; }

    #locationlocator .btn-group,
    #locationsearch_div {
        max-width: 100%;
        width: 100%;
    }

    #locationlocator .separatorLoc { margin: 2px 0; }
}

/* ============================================================
   v3 - Texto fantasma y panel de resultados
   ============================================================ */

/* Fantasma: sombra de texto heredada sobre los campos */
#locationsearch_div input,
#locationsearch_div select,
#locationsearch_div input::placeholder {
    text-shadow: none !important;
    -webkit-text-stroke: 0 !important;
}

#locationsearch_div input::placeholder {
    color: #9a9a9a;
    opacity: 1;
}

/* Panel de resultados: mas altura vertical (el componente lo
   limita a 400px; misma media pero con mayor especificidad) */
div.mCustomScrollBox {
    max-height: 78vh !important;
}

.mmllisting-wrapper {
    padding: 10px 0;
}

/* Conteo de resultados con aire */
.result-count {
    margin: 18px 0 6px;
}

.result-count .badge {
    background: #32b936;
    color: #fff;
    border-radius: 8px;
    padding: 3px 10px;
}

/* ============================================================
   v4 - Infobox del mapa de resultados (recuadro del pin "Tu")
   Escopado a #maps: no toca nada fuera de los mapas
   ============================================================ */
#maps .Infobox,
#maps [class*="Infobox"],
#maps [class*="infobox"],
#maps [id*="infobox"] {
    max-width: 280px !important;
    font-size: 14px !important;
    line-height: 1.45 !important;
    padding: 10px 14px !important;
    border-radius: 10px !important;
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.2) !important;
}

#maps h1, #maps h2, #maps h3, #maps h4 {
    font-size: 15px !important;
    margin: 0 0 4px !important;
    line-height: 1.3 !important;
}

#maps input,
#maps textarea {
    font-size: 14px !important;
    height: auto !important;
    min-height: 0 !important;
    padding: 6px 10px !important;
    text-shadow: none !important;
}

/* ============================================================
   v5 - Lista de resultados sin scroll interno + mapa pegajoso
   ============================================================ */

/* Liberar la lista: sin altura maxima ni barra lateral propia */
div.mCustomScrollBox,
.mCustomScrollbar,
.mCSB_container {
    max-height: none !important;
    height: auto !important;
    overflow: visible !important;
}

.mCSB_container {
    position: relative !important;
    top: 0 !important;
    left: 0 !important;
    margin-right: 0 !important;
    transform: none !important;
}

.mCSB_scrollTools {
    display: none !important;
}

/* Mapa de resultados acompaña al hacer scroll por la lista */
#maps {
    position: sticky;
    top: 20px;
    align-self: flex-start;
}

@media (max-width: 991px) {
    #maps { position: static; }
}

/* ============================================================
   v6 - #resultpanel trae height:400px inline: liberar
   ============================================================ */
#resultpanel {
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
}

#resultpanel .mCustomScrollBox,
#resultpanel .mCSB_container {
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    position: relative !important;
    top: 0 !important;
    transform: none !important;
}

/* ============================================================
   GUIA "COMO DENUNCIAR" - tarjetas, pasos y acordeon (prefijo gd-)
   ============================================================ */
.gd { margin: 40px 0 20px; }
.gd h2 { font-size: 26px; font-weight: 700; color: #2e2e2e; margin: 34px 0 16px; text-align: center; }
.gd p.gd-lead { text-align: center; color: #555; font-size: 17px; max-width: 720px; margin: 0 auto 22px; }

/* Tarjetas de accion */
.gd-acciones { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.gd-card { background: #fff; border-radius: 16px; padding: 24px 22px; box-shadow: 0 8px 24px rgba(0,0,0,.09); border-top: 5px solid #32b936; display: flex; flex-direction: column; align-items: center; text-align: center; }
.gd-card.gd-urgente { border-top-color: #e5473a; }
.gd-card .gd-ico { font-size: 40px; line-height: 1; margin-bottom: 10px; }
.gd-card h3 { font-size: 19px; font-weight: 700; margin: 0 0 6px; color: #2e2e2e; }
.gd-card p { color: #666; font-size: 15px; margin: 0 0 16px; }
.gd-btn { display: inline-block; padding: 12px 22px; border-radius: 999px; background: #32b936; color: #fff !important; font-weight: 700; font-size: 16px; text-decoration: none !important; margin-top: auto; transition: background .2s; }
.gd-btn:hover { background: #28a02f; }
.gd-urgente .gd-btn { background: #e5473a; }
.gd-urgente .gd-btn:hover { background: #c93b30; }
.gd-card small { display: block; margin-top: 10px; color: #888; font-size: 13px; }
.gd-card small a { color: #32b936; }

/* Pasos */
.gd-pasos { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.gd-paso { background: #f4f8f1; border-radius: 14px; padding: 20px 16px; text-align: center; }
.gd-paso .gd-num { width: 44px; height: 44px; border-radius: 50%; background: #32b936; color: #fff; font-weight: 800; font-size: 20px; display: flex; align-items: center; justify-content: center; margin: 0 auto 12px; }
.gd-paso strong { display: block; font-size: 16px; margin-bottom: 4px; color: #2e2e2e; }
.gd-paso span { font-size: 14px; color: #666; }

/* Evidencia */
.gd-evid { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }
.gd-evid li { list-style: none; background: #fff; border: 1px solid #dfe7d8; border-radius: 999px; padding: 9px 16px; font-size: 15px; color: #444; }
.gd-aviso { text-align: center; color: #b3362b; font-weight: 600; margin: 14px 0 0; }

/* Acordeon FAQ */
.gd-faq details { background: #fff; border: 1px solid #e3e3e3; border-radius: 12px; margin-bottom: 10px; overflow: hidden; }
.gd-faq summary { cursor: pointer; padding: 16px 20px; font-size: 16px; font-weight: 600; color: #2e2e2e; list-style: none; position: relative; padding-right: 44px; }
.gd-faq summary::-webkit-details-marker { display: none; }
.gd-faq summary::after { content: "+"; position: absolute; right: 18px; top: 50%; transform: translateY(-50%); width: 26px; height: 26px; border-radius: 50%; background: #32b936; color: #fff; font-weight: 800; display: flex; align-items: center; justify-content: center; }
.gd-faq details[open] summary::after { content: "–"; }
.gd-faq details p { margin: 0; padding: 0 20px 18px; color: #555; font-size: 15px; line-height: 1.55; }

/* Marco legal compacto */
.gd-legal { font-size: 14px; color: #777; text-align: center; margin-top: 26px; }

@media (max-width: 991px) {
    .gd-acciones { grid-template-columns: 1fr; }
    .gd-pasos { grid-template-columns: repeat(2, 1fr); }
}

/* ============================================================
   HISTORIA (pagina parallax) - solo visual, sin tocar textos
   Scope: body.historia-partido-verde
   ============================================================ */
body.historia-partido-verde .customparallaxck { min-height: 82vh !important; height: auto !important; }
body.historia-partido-verde #customparallaxck1307 { min-height: 92vh !important; }

/* Panel en flujo normal: el bloque crece con su texto */
body.historia-partido-verde .customparallaxck_content_cont {
    position: relative !important; left: auto !important; top: auto !important;
    max-width: 1500px; width: 92% !important; margin: 8vh auto !important; z-index: 5; text-align: center;
}

/* Titulos: tamano sano, tarjeta blanca */
body.historia-partido-verde [id^="customparallaxck"] .customparallaxck_title {
    font-size: clamp(30px, 3.6vw, 54px) !important; line-height: 1.12 !important; margin: 0 auto 22px !important;
    padding: 18px 36px 14px; display: inline-block; text-align: center !important;
    background: rgba(255,255,255,.82); border-radius: 18px; backdrop-filter: blur(4px);
    box-shadow: 0 6px 20px rgba(0,0,0,.08); color: #2e2e2e;
}
body.historia-partido-verde [id^="customparallaxck"] .customparallaxck_title span { font-size: clamp(22px, 2.7vw, 42px) !important; }

/* Texto: una sola tarjeta por seccion, parrafos normales */
body.historia-partido-verde .customparallaxck_content {
    height: auto !important; min-height: 0 !important;
    background: rgba(255,255,255,.88) !important; color: #333 !important;
    border-radius: 24px; padding: clamp(22px, 3vw, 44px) clamp(24px, 3.5vw, 56px) !important; backdrop-filter: blur(4px);
    box-shadow: 0 10px 30px rgba(0,0,0,.10);
}
body.historia-partido-verde [id^="customparallaxck"] .customparallaxck_content p {
    font-size: clamp(18px, 1.9vw, 30px) !important; line-height: 1.5 !important; color: #333 !important;
    background: none !important; padding: 0 !important; margin: 0 0 18px !important;
    border-radius: 0 !important;
}
body.historia-partido-verde .customparallaxck_content p:last-child { margin-bottom: 0 !important; }

/* Logo flotado en el primer panel */
body.historia-partido-verde .customparallaxck_content img { float: right; margin: 0 0 12px 24px; max-width: clamp(100px, 11vw, 170px); height: auto; }

/* Vinetas (los <i> de font-awesome no cargan): punto verde */
body.historia-partido-verde .customparallaxck_content p > i.fa,
body.historia-partido-verde .customparallaxck_content li i { display: none; }
body.historia-partido-verde .customparallaxck_content p:has(> i.fa),
body.historia-partido-verde .customparallaxck_content li { position: relative; padding-left: 30px !important; margin-bottom: 10px !important; text-align: left !important; }
body.historia-partido-verde .customparallaxck_content p:has(> i.fa)::before,
body.historia-partido-verde .customparallaxck_content li::before {
    content: ""; position: absolute; left: 6px; top: .55em; width: 11px; height: 11px; border-radius: 50%; background: #32b936;
}
body.historia-partido-verde .customparallaxck_content ul { list-style: none; padding: 0; margin: 8px 0 0; }

/* Linea de tiempo fija: fondo solido, por encima del contenido */
body.historia-partido-verde .historia .timeline { background: #fff; z-index: 40 !important; box-shadow: 0 2px 10px rgba(0,0,0,.06); }

/* Movil */
@media (max-width: 767px) {
    body.historia-partido-verde .customparallaxck { min-height: 0 !important; padding: 30px 0 40px; }
    body.historia-partido-verde .customparallaxck > .customparallaxck { background-size: 160% auto !important; }
    body.historia-partido-verde .customparallaxck_content_cont { width: 92% !important; margin: 20px auto !important; }
    body.historia-partido-verde [id^="customparallaxck"] .customparallaxck_title { font-size: 24px !important; padding: 12px 16px 8px; }
    body.historia-partido-verde [id^="customparallaxck"] .customparallaxck_title span { font-size: 18px !important; }
    body.historia-partido-verde .customparallaxck_content { padding: 18px 16px !important; }
    body.historia-partido-verde [id^="customparallaxck"] .customparallaxck_content p { font-size: 16px !important; }
    body.historia-partido-verde .customparallaxck_content img { max-width: 80px; }
}

/* "El gran reto": recuadro de imagenes dentro del panel, no flotando fuera */
body.historia-partido-verde #customparallaxck1312 .customparallaxck_content .images {
    position: static !important; transform: none !important; left: auto !important;
    margin: 18px auto 0 !important; max-width: 420px;
}

/* ============================================================
   BLOG (categoria blog) - tarjetas uniformes
   Scope: todas las categorias tipo blog (.container.blog)
   ============================================================ */
.container.blog > .row > .col-md-8 { flex: 0 0 100%; max-width: 100%; }
.container.blog .row,
.container.blog .items-more { border-bottom: 0 !important; margin-bottom: 0 !important; padding-bottom: 0 !important; }
.container.blog .category-title { font-size: 40px; border-bottom: 0; margin-bottom: 8px; }

/* Rejilla de tarjetas */
.container.blog .items-leading,
.container.blog .items-row {
    display: grid; grid-template-columns: repeat(2, 1fr); gap: 28px; margin: 0 0 28px !important;
}
.container.blog .items-row > [class*="col-"] { padding: 0; max-width: none; flex: none; width: auto; }

/* Tarjeta */
.container.blog [class^="leading-"],
.container.blog .item {
    display: flex; flex-direction: column; height: 100%;
    background: #fff; border-radius: 16px; overflow: hidden;
    box-shadow: 0 8px 26px rgba(0,0,0,.09); transition: transform .2s, box-shadow .2s;
}
.container.blog [class^="leading-"]:hover,
.container.blog .item:hover { transform: translateY(-3px); box-shadow: 0 14px 34px rgba(0,0,0,.13); }

/* Imagen: siempre 16:9, recortada */
.container.blog .pull-none { order: 0; margin: 0; }
.container.blog .pull-none img { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin: 0 !important; }

/* Categoria como etiqueta */
.container.blog dl.article-info { order: 1; margin: 18px 22px 0; display: flex; flex-wrap: wrap; gap: 6px; }
.container.blog dl.article-info dd { margin: 0; padding: 0 !important; border: 0 !important; font-size: 12px !important; }
.container.blog dl.article-info dd a {
    display: inline-block; padding: 4px 10px; border-radius: 999px; background: #eaf6e6; color: #2f8f2f; font-weight: 600; text-transform: uppercase; letter-spacing: .3px;
}
.container.blog dl.article-info dd:first-child { display: none; }

/* Titulo */
.container.blog .page-header { order: 2; margin: 10px 22px 0; padding: 0; border: 0; }
.container.blog .page-header h2 {
    font-size: 20px; line-height: 1.3; font-weight: 700; text-transform: none; text-align: left; margin: 0;
    display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
.container.blog .page-header h2 a { color: #2b2b2b; }
.container.blog .page-header h2 a:hover { color: #32b936; }

/* Texto de intro: fuera de la tarjeta (se lee en el articulo) */
.container.blog [class^="leading-"] > :not(dl):not(.pull-none):not(.page-header):not(.readmore),
.container.blog .item > :not(dl):not(.pull-none):not(.page-header):not(.readmore) { display: none !important; }

/* Boton Leer mas */
.container.blog .readmore { order: 3; margin: auto 22px 20px; padding-top: 16px; }
.container.blog .readmore a.btn {
    display: inline-block; padding: 9px 18px !important; border-radius: 999px; background: #32b936; color: #fff !important;
    font-size: 14px; font-weight: 700; text-decoration: none;
}
.container.blog .readmore a.btn:hover { background: #28a02f; }
.container.blog [class^="leading-"] > .page-header:last-child,
.container.blog .item > .page-header:last-child { margin-bottom: 22px; }

/* Mas contenidos: lista limpia */
.container.blog .items-more { display: block; }
.container.blog .items-more h4 { font-size: 22px; margin: 20px 0 12px !important; }
.container.blog .items-more ol { border: 0; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px 24px; }
.container.blog .items-more ol li { background: #fff !important; border: 1px solid #e6efe2 !important; border-radius: 10px; margin: 0 !important; }
.container.blog .items-more ol li a { display: block; padding: 12px 16px 12px 36px; position: relative; color: #333; font-weight: 600; text-transform: none; }
.container.blog .items-more ol li a::before { content: ""; position: absolute; left: 16px; top: 50%; width: 9px; height: 9px; margin-top: -4px; border-radius: 50%; background: #32b936; }
.container.blog .items-more ol li a:hover { color: #32b936; }

/* Paginacion centrada */
.container.blog .pagination { justify-content: center; margin: 24px 0 8px; }
.container.blog .pagination .page-link { border-radius: 8px; margin: 0 3px; }

/* Aside */
body:has(.container.blog) .aside h4 { margin-top: 24px !important; font-size: 18px; }

@media (max-width: 767px) {
    .container.blog .items-leading,
    .container.blog .items-row,
    .container.blog .items-more ol { grid-template-columns: 1fr; }
}

/* Blog v2: celda fantasma del clearfix, etiqueta redundante, aside armonizado */
.container.blog .items-leading::before,
.container.blog .items-leading::after,
.container.blog .items-row::before,
.container.blog .items-row::after { display: none !important; content: none !important; }

.container.blog dl.article-info dt { display: none; }
.container.blog dl.article-info dd:first-of-type { display: none; }

body:has(.container.blog) .aside .dnpblog4wrap h3 a,
body:has(.container.blog) .aside .dnpblog4wrap h3 { text-transform: none !important; font-size: 15px !important; line-height: 1.35 !important; color: #2b2b2b !important; }
body:has(.container.blog) .aside .dnpblog4wrap { background: #fff !important; border-radius: 0 0 14px 14px; box-shadow: 0 8px 22px rgba(0,0,0,.08); margin: 0 0 22px !important; }
body:has(.container.blog) .aside .dnpblog4 img { border-radius: 14px 14px 0 0; }
body:has(.container.blog) .aside .articlebutton { background: #32b936 !important; border-radius: 999px !important; padding: 9px 18px !important; font-size: 14px !important; display: inline-block !important; }

/* ============================================================
   BUSQUEDA (com_search) - resultados legibles
   ============================================================ */
.two-opt-columns .search { max-width: 980px; margin: 10px auto 50px; font-size: 16px; overflow-wrap: anywhere; }
.two-opt-columns .search .element-invisible { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

/* Caja de busqueda */
.two-opt-columns .search #searchForm .btn-toolbar { display: flex; flex-wrap: wrap; gap: 10px; align-items: stretch; margin: 0 0 8px; }
.two-opt-columns .search #searchForm .btn-group { float: none !important; margin: 0; display: flex; flex: 1 1 320px; }
.two-opt-columns .search #searchForm .btn-group:last-of-type { flex: 0 0 auto; }
.two-opt-columns .search #search-searchword {
    width: 100%; height: 52px; padding: 10px 18px; font-size: 18px; border: 2px solid #d8e6d2; border-radius: 999px; background: #fafcf9;
    box-shadow: none; transition: border-color .2s;
}
.two-opt-columns .search #search-searchword:focus { outline: 0; border-color: #32b936; background: #fff; }
.two-opt-columns .search #searchForm button.btn {
    height: 52px; padding: 0 26px; border: 0; border-radius: 999px; background: #32b936; color: #fff; font-weight: 700; font-size: 16px; cursor: pointer;
}
.two-opt-columns .search #searchForm button.btn:hover { background: #28a02f; }
.two-opt-columns .search #searchForm button.btn .icon-search::before { margin-right: 6px; }

/* Total */
.two-opt-columns .search .searchintro { margin: 14px 0 6px; }
.two-opt-columns .search .searchintro p { margin: 0; color: #666; font-size: 15px; }
.two-opt-columns .search .searchintro .badge { background: #32b936; color: #fff; border-radius: 8px; padding: 3px 9px; font-size: 13px; }

/* Filtros: una barra compacta */
.two-opt-columns .search fieldset.phrases { border: 0; padding: 0; margin: 12px 0 0; }
.two-opt-columns .search fieldset.phrases legend { display: none; }
.two-opt-columns .search .phrases-box, .search .ordering-box, .search .form-limit { display: inline-block; vertical-align: middle; margin: 0 18px 10px 0; }
.two-opt-columns .search .phrases-box .controls { display: inline-flex; flex-wrap: wrap; gap: 6px; }
.two-opt-columns .search .phrases-box label.radio { margin: 0; padding: 6px 12px 6px 30px; position: relative; border: 1px solid #dfe8da; border-radius: 999px; font-size: 14px; color: #444; background: #fff; cursor: pointer; display: inline-block; }
.two-opt-columns .search .phrases-box label.radio input { position: absolute; left: 10px; top: 50%; transform: translateY(-50%); margin: 0; accent-color: #32b936; }
.two-opt-columns .search .ordering-box label, .search .form-limit label { font-size: 14px; color: #666; margin-right: 6px; }
.two-opt-columns .search select.inputbox { height: 36px; border: 1px solid #dfe8da; border-radius: 8px; padding: 0 10px; background: #fff; font-size: 14px; color: #333; width: auto; }

/* Resultados */
.two-opt-columns .search p.counter { margin: 22px 0 6px; color: #888; font-size: 14px; }
.two-opt-columns .search dl.search-results { margin: 0; }
.two-opt-columns .search dl.search-results dt.result-title {
    margin: 0; padding: 26px 0 6px; border-top: 1px solid #ebefe8; font-size: 20px; font-weight: 700; line-height: 1.3; text-transform: none;
}
.two-opt-columns .search dl.search-results dt.result-title:first-child { border-top: 0; padding-top: 6px; }
.two-opt-columns .search dl.search-results dt.result-title a { color: #232323; }
.two-opt-columns .search dl.search-results dt.result-title a:hover { color: #32b936; }
.two-opt-columns .search dl.search-results dd { margin: 0; }
.two-opt-columns .search dl.search-results dd.result-category { margin: 0 0 8px; }
.two-opt-columns .search dl.search-results dd.result-category .small { display: inline-block; padding: 3px 10px; border-radius: 999px; background: #eaf6e6; color: #2f8f2f; font-size: 12px; font-weight: 600; }
.two-opt-columns .search dl.search-results dd.result-text { color: #4a4a4a; font-size: 16px; line-height: 1.6; text-transform: none; }
.two-opt-columns .search dl.search-results dd.result-created { color: #999; font-size: 13px; margin-top: 4px; }
.two-opt-columns .search .highlight { background: #e3f6de; color: #1f6f1f; padding: 0 4px; border-radius: 4px; font-weight: 600; }

/* Paginacion */
.two-opt-columns .search .pagination { justify-content: center; margin: 30px 0 0; }
.two-opt-columns .search .pagination .page-link { border-radius: 8px; margin: 0 3px; }

@media (max-width: 767px) {
    .two-opt-columns .search { font-size: 15px; }
    .two-opt-columns .search #searchForm .btn-group:last-of-type { flex: 1 1 100%; }
    .two-opt-columns .search #searchForm button.btn { width: 100%; }
    .two-opt-columns .search dl.search-results dt.result-title { font-size: 18px; }
}

/* ============================================================
   SLIDER HOME - estructura original (foto + lista lateral, todo a lo ancho)
   con acabado moderno: degradado, filas redondeadas, lista acotada
   ============================================================ */
.sj-slideshowii { margin: 0 !important; padding: 0; max-width: none !important; width: 100%; }
.sj-slideshowii .sl2-wrap {
    height: 580px !important; border-radius: 0 0 24px 24px; overflow: hidden; position: relative; padding: 0;
    box-shadow: 0 12px 34px rgba(0,0,0,.10); background: #f4f8f1;
}
.sj-slideshowii .sl2-wrap > .row.no-gutters { display: flex !important; height: 100%; margin: 0; }
.sj-slideshowii .sl2-wrap .col-sm-12.col-md-8 { flex: 1 1 auto !important; max-width: none !important; width: auto !important; min-width: 0; height: 100% !important; position: relative; }
.sj-slideshowii .sl2-wrap > .row > .col-4 { flex: 0 0 clamp(380px, 32%, 600px) !important; max-width: 600px !important; width: clamp(380px, 32%, 600px) !important; height: 100% !important; position: relative !important; }
.sj-slideshowii .sl2-items, .sj-slideshowii .sl2-item, .sj-slideshowii .sl2-image, .sj-slideshowii .sl2-image a, .sj-slideshowii .sl2-image-div { height: 100% !important; }
.sj-slideshowii .sl2-image-div { transition: transform 7s ease; }
.sj-slideshowii .sl2-item.curr .sl2-image-div { transform: scale(1.04); }

/* Caption sobre la foto */
.sj-slideshowii .sl2-more {
    position: absolute !important; left: 0; right: 0; bottom: 0 !important; max-height: none !important;
    padding: 110px clamp(24px, 3vw, 56px) 30px !important;
    background: linear-gradient(to top, rgba(8,20,8,.9) 0%, rgba(8,20,8,.55) 50%, rgba(8,20,8,0) 100%) !important;
}
.sj-slideshowii .sl2-opacity { display: none !important; }
.sj-slideshowii .sl2-desc { padding: 0 160px 0 0 !important; max-width: 1000px; color: #fff; font-size: clamp(20px, 1.7vw, 30px); font-weight: 800; line-height: 1.2; text-shadow: 0 2px 8px rgba(0,0,0,.5); text-transform: none; }
.sj-slideshowii .sl2-desc hr { display: none; }
.sj-slideshowii .sl2-desc strong { display: block; margin-top: 10px; font-size: clamp(14px, 1.05vw, 17px); font-weight: 400; line-height: 1.45; opacity: .9; }
.sj-slideshowii .sl2-readmore { position: static !important; float: none !important; text-align: left !important; margin: 14px 0 0 !important; padding: 0 !important; }
.sj-slideshowii .sl2-readmore a {
    display: inline-block !important; padding: 9px 20px !important; border-radius: 999px !important; background: #32b936 !important; color: #fff !important;
    font-size: 14px !important; font-weight: 700 !important; text-decoration: none !important; border: 0 !important;
}
.sj-slideshowii .sl2-readmore a:hover { background: #28a02f !important; }
.sj-slideshowii .sl2-control { bottom: 30px !important; right: clamp(24px, 3vw, 56px) !important; display: flex; gap: 6px; background: transparent !important; z-index: 6; }
.sj-slideshowii .sl2-control .sl2-ctr { border-radius: 50%; border: 1px solid rgba(255,255,255,.45); box-shadow: inset 0 0 0 40px rgba(255,255,255,.14); background-position: center !important; transition: box-shadow .2s; }
.sj-slideshowii .sl2-control .sl2-ctr:hover { box-shadow: inset 0 0 0 40px rgba(50,185,54,.75); }

/* Panel derecho: filas redondeadas */
.sj-slideshowii .sl2-wrap .col-4 .sl2-slide { height: 100% !important; position: relative !important; display: block !important; overflow: hidden !important; }
.sj-slideshowii .sl2-wrap .sl2-slide .sl2-slide-inner { background: transparent !important; height: 100% !important; padding: 12px !important; position: relative !important; overflow: hidden !important; box-sizing: border-box; }
.sj-slideshowii .sl2-wrap .sl2-slide .slide-items { position: static !important; height: auto !important; top: 0 !important; transform: none !important; }
.sj-slideshowii .sl2-wrap .sl2-slide .slide-items > .row { position: static !important; top: auto !important; display: flex !important; flex-direction: column; gap: 8px; margin: 0 !important; background: transparent !important; }
.sj-slideshowii .sl2-wrap .sl2-slide .sl2-slide-inner, .sj-slideshowii .sl2-wrap .sl2-slide { background: #f4f8f1 !important; }
.sj-slideshowii .sl2-wrap .sl2-slide .slide-items .slide-item { flex: none !important; max-width: none !important; width: 100% !important; height: 104px !important; padding: 0 !important; background: transparent !important; box-sizing: border-box; }
.sj-slideshowii .slide-items .slide-item .slide-item-inner {
    margin: 0 !important; height: 100%; box-sizing: border-box; display: flex; align-items: center; padding: 12px 18px 12px 16px !important;
    border-radius: 16px !important; background: #fff !important; color: #333 !important; border: 1px solid #e3ecdd; cursor: pointer;
    transition: transform .2s, box-shadow .2s, border-color .2s;
}
.sj-slideshowii .slide-items .slide-item .slide-item-inner:hover { transform: translateX(3px); box-shadow: 0 8px 20px rgba(0,0,0,.08); border-color: #32b936; background: #fff !important; color: #333 !important; }
.sj-slideshowii .slide-items .slide-item.active .slide-item-inner { background: #32b936 !important; border-color: #32b936; color: #fff !important; box-shadow: 0 8px 22px rgba(50,185,54,.35); }
.sj-slideshowii .slide-items .slide-title {
    font-size: clamp(14px, 1vw, 17px) !important; line-height: 1.35 !important; padding: 0 0 0 20px !important; font-weight: 600 !important; text-transform: none; position: relative;
    display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
.sj-slideshowii .slide-items .slide-title::before { content: ""; position: absolute; left: 0; top: .5em; width: 9px; height: 9px; border-radius: 50%; background: #32b936; }
.sj-slideshowii .slide-items .slide-item.active .slide-title::before { background: #fff; }

/* Tablet */
@media (max-width: 991px) {
    .sj-slideshowii .sl2-wrap { height: 440px !important; border-radius: 0 0 18px 18px; }
    .sj-slideshowii .sl2-wrap > .row > .col-4 { flex: 0 0 42% !important; max-width: 42% !important; width: 42% !important; }
    .sj-slideshowii .sl2-wrap .sl2-slide .slide-items .slide-item { height: 76px !important; }
    .sj-slideshowii .slide-items .slide-title { font-size: 13px !important; -webkit-line-clamp: 2; }
    .sj-slideshowii .sl2-desc { font-size: 18px; padding-right: 120px !important; }
    .sj-slideshowii .sl2-desc strong { display: none; }
}
/* Movil: solo la foto (el template oculta la lista) */
@media (max-width: 720px) {
    .sj-slideshowii .sl2-wrap { height: 320px !important; border-radius: 0 0 18px 18px; }
    .sj-slideshowii .sl2-wrap .col-sm-12.col-md-8 { flex: 0 0 100% !important; max-width: 100% !important; width: 100% !important; }
    .sj-slideshowii .sl2-more { padding: 60px 16px 18px !important; }
    .sj-slideshowii .sl2-desc { font-size: 17px; padding: 0 !important; }
    .sj-slideshowii .sl2-control { bottom: 18px !important; right: 16px !important; }
}

/* ============================================================
   REPRESENTANTES (TLP Team) - fichas con nombre visible
   ============================================================ */
.tlp-team-wrap { margin-top: 10px; }

/* Filtro: control segmentado */
.filter-button-group { display: inline-flex; gap: 4px; padding: 5px; border-radius: 999px; background: #eef4ea; margin: 0 auto 18px; }
.tlp-team .button-group.filter-button-group button, .module .filter-button-group button, .filter-button-group button {
    border: 0 !important; background: transparent !important; color: #3a5a30 !important; font-weight: 700 !important; font-size: 15px !important;
    padding: 10px 24px !important; border-radius: 999px !important; cursor: pointer; transition: background .2s, color .2s, box-shadow .2s;
}
.tlp-team .button-group.filter-button-group button:hover, .module .filter-button-group button:hover, .filter-button-group button:hover { background: rgba(50,185,54,.14) !important; }
.tlp-team .button-group.filter-button-group button.selected, .tlp-team .button-group.filter-button-group button.active, .module .filter-button-group button.selected, .filter-button-group button.selected {
    background: #32b936 !important; color: #fff !important; box-shadow: 0 6px 16px rgba(50,185,54,.35);
}

/* Rejilla: fichas de tamaño fijo (como el original, 96px); Isotope acomoda las que quepan */
.tlp-team-wrap .team-item.col-lg-1, .tlp-team-wrap .team-item { width: 8.333% !important; max-width: 8.333% !important; flex: none !important; }
.tlp-team-wrap .team-item { padding: 3px !important; height: auto !important; }
.tlp-team-wrap .team-item.tlp-equal-height { height: auto !important; }

/* Ficha */
.tlp-team-wrap .single-team-area {
    position: relative; border-radius: 12px; overflow: hidden; background: #f2f5ef; aspect-ratio: 1 / 1;
    box-shadow: 0 4px 12px rgba(0,0,0,.07); transition: transform .25s ease, box-shadow .25s ease;
}
.tlp-team-wrap .single-team-area:hover { transform: translateY(-4px); box-shadow: 0 12px 26px rgba(0,0,0,.15); }
.tlp-team-wrap .single-team-area figure { margin: 0; height: 100%; }
.tlp-team-wrap .single-team-area figure a { display: block; height: 100%; }
.tlp-team-wrap .single-team-area img { width: 100%; height: 100%; object-fit: cover; object-position: top; display: block; transition: transform .5s ease; }
.tlp-team-wrap .single-team-area:hover img { transform: scale(1.06); }
.tlp-team-wrap .single-team-area:hover .tlp-overlay { opacity: 1 !important; transform: none !important; }

/* Nombre siempre visible; cargo al pasar el mouse */
.tlp-team-wrap .tlp-overlay {
    position: absolute !important; inset: auto 0 0 0 !important; top: auto !important; height: auto !important; width: 100% !important;
    opacity: 0 !important; visibility: visible !important; transform: translateY(8px) !important; transition: opacity .2s ease, transform .2s ease;
    background: linear-gradient(to top, rgba(12,28,10,.94) 0%, rgba(12,28,10,.7) 60%, rgba(12,28,10,0) 100%) !important;
    padding: 18px 5px 6px !important; text-align: center !important; display: block !important;
}
.tlp-team-wrap .tlp-overlay .item-info { position: static !important; transform: none !important; padding: 0 !important; display: block !important; }
.tlp-team-wrap .tlp-overlay h3 { margin: 0 !important; font-size: 10px !important; line-height: 1.2 !important; font-weight: 700 !important; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.tlp-team-wrap .tlp-overlay h3 a, .tlp-team-wrap .tlp-name { color: #fff !important; text-decoration: none !important; display: block; }
.tlp-team-wrap .tlp-overlay .line { display: none !important; }
.tlp-team-wrap .tlp-overlay .tlp-position {
    display: block !important; margin: 2px 0 0;
}
.tlp-team-wrap .tlp-overlay .tlp-position a, .tlp-team-wrap .tlp-overlay .tlp-position span { color: #9be89f !important; font-size: 10px !important; font-weight: 600; text-decoration: none !important; }
.tlp-team-wrap .tlp-overlay .social-icons { display: none !important; }

/* Responsive */
@media (max-width: 575px) {
        .tlp-team-wrap .team-item.col-lg-1, .tlp-team-wrap .team-item { width: 33.333% !important; max-width: 33.333% !important; }
    .tlp-team-wrap .single-team-area { border-radius: 12px; }
    .tlp-team-wrap .tlp-overlay { opacity: 1 !important; transform: none !important; }
    .filter-button-group button { padding: 9px 18px !important; font-size: 14px !important; }
}

/* Retoques: sin marco doble, filtro compacto, titulo con presencia */
.tlp-team-wrap .team-item, .tlp-team-wrap .team-item .single-team-area::before { background: transparent !important; box-shadow: none !important; border: 0 !important; }
.tlp-team-wrap .team-item .single-team-area { background: #f2f5ef !important; }
.filter-button-group { line-height: 1; align-items: center; }
.tlp-team .button-group.filter-button-group button, .tlp-team .button-group.filter-button-group button { margin: 0 !important; line-height: 1.2 !important; }
.module:has(.tlp-team-wrap) > h4, .module:has(.tlp-team-wrap) h4:first-child {
    font-size: clamp(22px, 1.8vw, 28px); font-weight: 800; color: #2b2b2b; margin: 0 0 22px !important; position: relative; padding-bottom: 14px;
}
.module:has(.tlp-team-wrap) > h4::after, .module:has(.tlp-team-wrap) h4:first-child::after { content: ""; position: absolute; left: 0; bottom: 0; width: 64px; height: 5px; border-radius: 999px; background: #32b936; }

/* Afinaciones: nombre completo con letra menor, filtro centrado y compacto */
.tlp-team .button-group.filter-button-group, .filter-button-group {
    display: flex !important; width: fit-content !important; margin: 0 auto 18px !important; padding: 5px !important;
    justify-content: center; align-items: center; text-align: center !important;
}
.tlp-team .button-group.filter-button-group button { text-align: center !important; display: inline-flex !important; align-items: center; justify-content: center; }
.tlp-team-wrap .tlp-overlay h3 { display: block !important; -webkit-line-clamp: unset !important; overflow: visible !important; }
.tlp-team-wrap .tlp-overlay h3 a, .tlp-team-wrap .tlp-name {
    font-size: 9px !important; line-height: 1.15 !important; font-weight: 700 !important; letter-spacing: -.1px;
    display: -webkit-box !important; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
.tlp-team-wrap .tlp-overlay .tlp-position a, .tlp-team-wrap .tlp-overlay .tlp-position span { font-size: 8.5px !important; }
.tlp-team-wrap .tlp-overlay { padding: 22px 5px 5px !important; }

/* ============================================================
   POPUP DE REPRESENTANTE (TLP Team) - modal centrado tipo tarjeta
   ============================================================ */
.tlp-popup-wrap { background: rgba(6,16,6,.72) !important; backdrop-filter: blur(6px); }
.tlp-popup-wrap .tlp-popup-content {
    background: transparent !important; padding: 84px 20px 40px !important; display: flex; align-items: flex-start; justify-content: center;
    box-sizing: border-box; overflow-y: auto !important;
}
.tlp-popup-wrap .tlp-popup-content > .tlp-team.container {
    width: 100%; max-width: 860px; margin: 0 auto; padding: 0 !important; background: #fff; border-radius: 28px; overflow: hidden;
    box-shadow: 0 30px 80px rgba(0,0,0,.35);
}
.tlp-popup-wrap .tlp-row.tlp-team-detail { display: flex; flex-wrap: wrap; margin: 0 !important; }
/* Columna foto */
.tlp-popup-wrap .tlp-team-detail > .col-md-2 {
    flex: 0 0 40%; max-width: 40%; width: 40%; padding: 34px 26px 0 !important; position: relative; display: flex; flex-direction: column; justify-content: flex-end; align-items: center;
    background: linear-gradient(160deg, #3fc244 0%, #1f7d24 100%); min-height: 380px;
}
.tlp-popup-wrap .tlp-team-detail > .col-md-2::before { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 30% 20%, rgba(255,255,255,.22), transparent 55%); pointer-events: none; }
.tlp-popup-wrap .tlp-team-detail > .col-md-2 br { display: none; }
.tlp-popup-wrap .tlp-team-detail img.tlp-img-responsive { max-width: 100%; max-height: 360px; width: auto; height: auto; display: block; margin: 0 auto; position: relative; border-radius: 18px 18px 0 0; box-shadow: 0 14px 30px rgba(0,0,0,.28); }
.tlp-popup-wrap .tlp-team-detail .social-icons { position: relative; margin: 14px 0 20px; }
.tlp-popup-wrap .tlp-team-detail .social-icons:empty { display: none; }
/* Columna contenido */
.tlp-popup-wrap .tlp-team-detail > .content-area { flex: 0 0 60%; max-width: 60%; width: 60%; padding: 44px 44px 40px !important; }
.tlp-popup-wrap .tlp-team-detail .tlp-content h3 { font-size: clamp(24px, 2.4vw, 34px); font-weight: 800; line-height: 1.15; color: #1f1f1f; margin: 0 0 12px; }
.tlp-popup-wrap .tlp-team-detail .tlp-position { display: inline-block; padding: 7px 16px; border-radius: 999px; background: #eaf6e6; color: #2f8f2f; font-weight: 700; font-size: 14px; letter-spacing: .3px; text-transform: uppercase; }
.tlp-popup-wrap .tlp-team-detail .short-bio { margin-top: 22px; color: #444; font-size: 16px; line-height: 1.65; }
.tlp-popup-wrap .tlp-team-detail .short-bio p:empty, .tlp-popup-wrap .tlp-team-detail .short-bio:not(:has(p:not(:empty))) { display: none; }
.tlp-popup-wrap .tlp-team-detail .contact-info { margin-top: 22px; }
.tlp-popup-wrap .tlp-team-detail .contact-info ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
.tlp-popup-wrap .tlp-team-detail .contact-info ul:not(:has(li)) { display: none; }
.tlp-popup-wrap .tlp-team-detail .contact-info li { padding: 10px 14px; border-radius: 12px; background: #f6f9f4; color: #333; font-size: 15px; }
.tlp-popup-wrap .tlp-team-detail .contact-info a { color: #2f8f2f; }
/* Barra de navegacion: transparente, controles redondos a la derecha */
.tlp-popup-wrap .tlp-popup-navigation-wrap { background: transparent !important; }
.tlp-popup-wrap .tlp-popup-navigation { text-align: right !important; padding: 16px 24px !important; }
.tlp-popup-wrap .tlp-popup-navigation .tlp-popup-prev, .tlp-popup-wrap .tlp-popup-navigation .tlp-popup-close, .tlp-popup-wrap .tlp-popup-navigation .tlp-popup-next {
    border-radius: 50%; border: 1px solid rgba(255,255,255,.4); box-shadow: inset 0 0 0 44px rgba(255,255,255,.12); transition: box-shadow .2s;
}
.tlp-popup-wrap .tlp-popup-navigation .tlp-popup-close { box-shadow: inset 0 0 0 44px rgba(50,185,54,.85); border-color: transparent; }
.tlp-popup-wrap .tlp-popup-navigation > div:hover { box-shadow: inset 0 0 0 44px rgba(50,185,54,.9) !important; }
#tlp-popup-wrap .tlp-popup-singlePage-counter, .tlp-popup-wrap .tlp-popup-singlePage-counter { right: auto !important; left: 28px !important; height: auto !important; top: 26px !important; bottom: auto !important; font-size: 13px; opacity: .8; }
@media (max-width: 767px) {
    .tlp-popup-wrap .tlp-popup-content { padding: 76px 12px 24px !important; }
    .tlp-popup-wrap .tlp-team-detail > .col-md-2, .tlp-popup-wrap .tlp-team-detail > .content-area { flex: 0 0 100%; max-width: 100%; width: 100%; }
    .tlp-popup-wrap .tlp-team-detail > .col-md-2 { min-height: 0; padding: 26px 26px 0 !important; }
    .tlp-popup-wrap .tlp-team-detail img.tlp-img-responsive { max-height: 260px; }
    .tlp-popup-wrap .tlp-team-detail > .content-area { padding: 26px 24px 28px !important; }
    .tlp-popup-wrap .tlp-popup-content > .tlp-team.container { border-radius: 20px; }
}

/* ============================================================
   HOME - ronda 2: representantes en movil, promo TU VOZ,
   feeds de YouTube (Logros/Diputados Verdes), columnas CEN/Senado/...
   ============================================================ */

/* 1) Representantes en movil: 4 por fila y bloque con scroll propio */
@media (max-width: 767px) {
    .tlp-team-wrap .team-item.col-lg-1, .tlp-team-wrap .team-item { width: 25% !important; max-width: 25% !important; }
    .tlp-team-wrap { max-height: 62vh !important; overflow-y: auto !important; -webkit-overflow-scrolling: touch; border-radius: 16px; }
    .module:has(.tlp-team-wrap) { position: relative; }
    .module:has(.tlp-team-wrap)::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 90px; background: linear-gradient(to top, #fff 20%, rgba(255,255,255,0)); pointer-events: none; }
    .tlp-team-wrap .tlp-overlay .tlp-position { display: none !important; }
}

/* 2) Promo TU VOZ: franja bajo el boton para que no choque con el texto de la imagen */
div[style*="padding-bottom: 56.25%"] > div[style*="bottom: 10px"] {
    bottom: 0 !important; padding: 56px 0 18px !important;
    background: linear-gradient(to top, rgba(18,70,22,.9) 0%, rgba(18,70,22,.55) 60%, rgba(18,70,22,0) 100%);
    border-radius: 0 0 15px 15px;
}
a[href*="se-parte-del-cambio"] {
    background: #fff !important; color: #1f7d24 !important; border-radius: 999px !important; padding: 12px 28px !important;
    box-shadow: 0 8px 20px rgba(0,0,0,.25) !important; transform: none !important;
}
a[href*="se-parte-del-cambio"]:hover { background: #eaf6e6 !important; }

/* 3) Feeds de YouTube: lista de reproduccion (miniatura + titulo por fila) */
.ytf-container.ytf-grid .ytf-video-desc { display: none !important; }
.ytf-container.ytf-grid .ytf-sidebar, .ytf-container.ytf-grid .swiper-container { height: auto !important; overflow: visible !important; }
.ytf-container.ytf-grid .swiper-wrapper { display: flex !important; flex-direction: column; gap: 10px; transform: none !important; height: auto !important; margin: 0 !important; padding: 2px !important; }
.ytf-container.ytf-grid .ytfBlock {
    display: flex !important; align-items: center; gap: 14px; width: auto !important; margin: 0 !important; height: auto !important; padding: 8px 14px 8px 8px !important;
    background: #fff; border-radius: 14px; box-shadow: 0 4px 14px rgba(0,0,0,.07); transition: transform .2s, box-shadow .2s; cursor: pointer;
}
.ytf-container.ytf-grid .ytfBlock:hover { transform: translateX(4px); box-shadow: 0 10px 24px rgba(0,0,0,.12); }
.ytf-container.ytf-grid .ytfBlock .ytfThumb { float: none !important; flex: 0 0 150px; width: 150px !important; aspect-ratio: 16 / 9; height: auto !important; min-height: 0 !important; margin: 0 !important; position: relative; overflow: hidden; border-radius: 10px; background: #111; }
.ytf-container.ytf-grid .ytfBlock .ytfThumb img { width: 100% !important; height: 100% !important; object-fit: cover; display: block; transform: scale(1.36); }
.ytf-container.ytf-grid .ytfBlock .ytfThumb ._border { display: none !important; }
.ytf-container.ytf-grid .ytfBlock .ytfThumb::after {
    content: ""; position: absolute; left: 50%; top: 50%; width: 36px; height: 36px; margin: -18px 0 0 -18px; border-radius: 50%;
    background: rgba(50,185,54,.92) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='white' d='M8 5v14l11-7z'/></svg>") center/18px no-repeat;
    box-shadow: 0 4px 12px rgba(0,0,0,.3); pointer-events: none;
}
.ytf-container.ytf-grid .ytfBlock .ytfMeta { display: block !important; flex: 1 1 auto; min-width: 0; padding: 0 !important; }
.ytf-container.ytf-grid .ytfBlock .ytfMeta .ytfTitle {
    font-size: 15px !important; font-weight: 700 !important; line-height: 1.3 !important; color: #2b2b2b !important; text-decoration: none !important;
    display: -webkit-box !important; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.ytf-container.ytf-grid .ytfBlock .ytfMeta .ytfDescription { display: none !important; }
.ytf-container.ytf-grid .ytfBlock ._clear { display: none; }
.ytf-container.ytf-grid .ytf-player.ytf-ready { border-radius: 16px; overflow: hidden; }
@media (max-width: 575px) { .ytf-container.ytf-grid .ytfBlock .ytfThumb { flex-basis: 110px; width: 110px !important; } }

/* 4) Columnas CEN / Senado / Diputados / Estados: tarjetas uniformes */
.bt-cs .bt_handles, .bt-cs a.prev, .bt-cs a.next { display: none !important; }
.bt-cs .bt-inner { background: #fff; border-radius: 16px; overflow: hidden; box-shadow: 0 6px 18px rgba(0,0,0,.08); padding: 0 0 14px !important; display: flex; flex-direction: column; min-height: 100%; }
.bt-cs .slides_container .slides_control .slide .bt-inner .bt-parent { padding: 11px 16px !important; background: #32b936 !important; color: #fff !important; font-size: 13px !important; font-weight: 700 !important; letter-spacing: .6px; border-radius: 0 !important; text-transform: uppercase; }
.bt-cs .bt-parent a { color: #fff !important; }
.bt-cs .bt-center { height: 150px; overflow: hidden; background: #eef4ea; display: flex; align-items: center; justify-content: center; }
.bt-cs .bt-center a { display: block; width: 100%; height: 100%; }
.bt-cs .bt-center img { width: 100% !important; height: 100% !important; object-fit: cover; outline: 0 !important; border: 0 !important; margin: 0 !important; transition: transform .4s; }
.bt-cs .bt-inner:hover .bt-center img { transform: scale(1.05); }
.bt-cs .bt-center img[src*="-logo"] { object-fit: contain; padding: 22px; }
.bt-cs .bt-category { display: inline-block; margin: 12px 14px 4px; padding: 3px 10px; border-radius: 999px; background: #eaf6e6; color: #2f8f2f !important; font-size: 11px !important; font-weight: 700 !important; letter-spacing: .3px; }
.bt-cs .bt-title { display: -webkit-box !important; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; margin: 4px 14px 8px; padding: 0 !important; font-size: 14px !important; font-weight: 600 !important; line-height: 1.35 !important; color: #2b2b2b !important; text-transform: none !important; }
.bt-cs .bt-inner br { display: none; }
.bt-cs .bt-date, .bt-cs .bt-created, .bt-cs [class*="bt-date"] { margin: 0 14px; font-size: 12px !important; color: #888 !important; line-height: 1.4; }
.bt-cs .bt-inner > *:not(.bt-parent):not(.bt-center):not(.bt-category):not(.bt-title):not(br) { margin-left: 14px; margin-right: 14px; font-size: 12px; color: #888; }
.bt-cs .bt-inner > a:not(.bt-parent):not(.bt-category):not(.bt-title) { color: #32b936; font-weight: 700; font-size: 13px; margin-top: 8px; }
.bt-cs .slides_container .slides_control .slide { padding: 6px !important; }
.bt-cs .slides_container .slides_control .slide .bt-row { padding: 0 !important; box-shadow: none !important; }
.bt-cs .bt-readmore, .bt-cs .bt-readmore a, .bt-cs a[class*="readmore"] { margin: 10px 14px 0; font-size: 13px !important; font-weight: 700 !important; color: #32b936 !important; }

/* ============================================================
   FORMULARIOS RSFORM - tarjeta centrada, campos grandes, boton verde
   ============================================================ */
/* Pagina de formulario abierta con Itemid de la home: ocultar modulos de la home */
body:has(form#userForm.formResponsive) main > :not(.two-opt-columns):not(.breadcrumb) { display: none !important; }
body:has(form#userForm.formResponsive) main { padding-top: 30px; }

form#userForm.formResponsive { max-width: 720px; margin: 20px auto 60px; }
form#userForm.formResponsive .formContainer {
    background: #fff; border-radius: 24px; padding: clamp(24px, 4vw, 44px); box-shadow: 0 16px 44px rgba(0,0,0,.10); border-top: 6px solid #32b936;
}
form#userForm.formResponsive .formRow, form#userForm.formResponsive .formSpan12 { margin: 0; width: 100%; float: none; }
form#userForm.formResponsive .rsform-block { display: flex !important; flex-direction: column; gap: 6px; margin: 0 0 20px !important; padding: 0 !important; }
form#userForm.formResponsive .rsform-block::before, form#userForm.formResponsive .rsform-block::after { display: none !important; }
form#userForm.formResponsive .formControlLabel { width: auto !important; float: none !important; text-align: left !important; padding: 0 !important; margin: 0 !important; font-weight: 600; font-size: 15px; color: #333; }
form#userForm.formResponsive .formControlLabel .formRequired { color: #32b936; font-weight: 700; }
form#userForm.formResponsive .formControls { margin: 0 !important; padding: 0 !important; }
form#userForm.formResponsive .formControls input[type="text"],
form#userForm.formResponsive .formControls input[type="email"],
form#userForm.formResponsive .formControls input[type="number"],
form#userForm.formResponsive .formControls input[type="tel"],
form#userForm.formResponsive .formControls select,
form#userForm.formResponsive .formControls textarea {
    width: 100% !important; box-sizing: border-box; height: 50px; padding: 10px 16px; font-size: 16px; color: #222;
    border: 2px solid #dfe8da !important; border-radius: 12px !important; background: #fafcf9; box-shadow: none !important; transition: border-color .2s, background .2s;
}
form#userForm.formResponsive .formControls textarea { height: auto; min-height: 160px; resize: vertical; }
form#userForm.formResponsive .formControls input:focus, form#userForm.formResponsive .formControls textarea:focus, form#userForm.formResponsive .formControls select:focus {
    outline: 0; border-color: #32b936 !important; background: #fff; box-shadow: 0 0 0 4px rgba(50,185,54,.15) !important;
}
/* Casilla de aviso de privacidad */
form#userForm.formResponsive .rsform-type-checkboxgroup .formControls label,
form#userForm.formResponsive .formControls .rsform-checkbox + label,
form#userForm.formResponsive .formControls label { display: inline-flex; align-items: center; gap: 10px; font-size: 15px; color: #444; cursor: pointer; }
form#userForm.formResponsive .formControls input[type="checkbox"] { width: 20px; height: 20px; accent-color: #32b936; margin: 0; }
/* Boton */
form#userForm.formResponsive .rsform-submit-button, form#userForm.formResponsive input[type="submit"], form#userForm.formResponsive button[type="submit"] {
    display: block; width: 100%; height: 54px; border: 0 !important; border-radius: 999px !important; background: #32b936 !important; color: #fff !important;
    font-size: 17px; font-weight: 700; cursor: pointer; box-shadow: 0 8px 22px rgba(50,185,54,.35); transition: background .2s, transform .15s; margin-top: 6px;
}
form#userForm.formResponsive .rsform-submit-button:hover, form#userForm.formResponsive input[type="submit"]:hover { background: #28a02f !important; transform: translateY(-1px); }
/* Mensajes de error */
form#userForm.formResponsive .formRed, form#userForm.formResponsive .formError, form#userForm.formResponsive .formNoError { font-size: 14px; }
form#userForm.formResponsive #rsform_error_3, form#userForm.formResponsive [id^="rsform_error_"] { max-width: 720px; margin: 0 auto 14px; }
form#userForm.formResponsive [id^="rsform_error_"] .formRed { background: #fdecea; color: #b3362b; border-radius: 12px; padding: 12px 16px; margin: 0; }
form#userForm.formResponsive .formError { color: #b3362b; }
form#userForm.formResponsive .rsform-error { border-color: #e5473a !important; }

/* ============================================================
   BLOQUE BLOG en home (jxtc newspro) - v2 (vence al CSS inline del modulo)
   ============================================================ */
div.jxtc_newspro_tmp1 { position: relative; height: 300px !important; max-height: 300px !important; border-radius: 18px; overflow: hidden; box-shadow: 0 8px 24px rgba(0,0,0,.10) !important; background: #eef4ea !important; text-align: left !important; }
div.jxtc_newspro_tmp1 > img { display: block; width: 100% !important; height: 100% !important; object-fit: cover; top: 0 !important; transform: none !important; transition: transform .5s ease !important; }
div.jxtc_newspro_tmp1:hover > img { transform: scale(1.04) !important; }
div.jxtc_newspro_tmp1 > div.mask {
    opacity: 1 !important; position: absolute !important; left: 0 !important; right: 0; bottom: 0; top: auto !important; height: auto !important; width: auto !important; overflow: visible !important;
    padding: 46px 20px 18px !important; text-align: left !important; transform: none !important;
    background-color: transparent !important;
    background-image: linear-gradient(to top, rgba(8,20,8,.92) 0%, rgba(8,20,8,.55) 55%, rgba(8,20,8,0) 100%) !important;
}
div.jxtc_newspro_tmp1 > div.mask h2 {
    opacity: 1 !important; transform: none !important; background: transparent !important; padding: 0 !important; margin: 0 0 10px !important; text-align: left !important;
    color: #fff !important; font-size: 17px !important; font-weight: 700; line-height: 1.25; text-shadow: 0 2px 8px rgba(0,0,0,.5); text-transform: none !important;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
div.jxtc_newspro_tmp1 > div.mask br { display: none; }
div.jxtc_newspro_tmp1 > div.mask center, div.jxtc_newspro_tmp1 > div.mask p { text-align: left !important; opacity: 1 !important; transform: none !important; padding: 0 !important; margin: 0 !important; }
div.jxtc_newspro_tmp1 > div.mask a {
    opacity: 1 !important; transform: none !important; display: inline-block; padding: 8px 18px; border-radius: 999px; background: #32b936 !important; color: #fff !important;
    font-size: 14px; font-weight: 700; text-decoration: none !important; text-transform: none; box-shadow: 0 6px 16px rgba(0,0,0,.25);
}
div.jxtc_newspro_tmp1 > div.mask a:hover { background: #28a02f !important; }
div.jxtc_newspro_tmp1 > div.mask a::after { content: ""; position: absolute; inset: 0; }

/* Sellos "Logros/Diputados verdes": mas discretos */
.two-columns .col-lg-6 > div:first-child > img.img-fluid { max-height: 96px; width: auto; margin: 0 auto 14px; display: block; }

/* Filas de video mas compactas */
.ytf-container.ytf-grid .ytfBlock { padding: 6px 12px 6px 6px !important; gap: 12px; border-radius: 12px; }
.ytf-container.ytf-grid .ytfBlock .ytfThumb { flex-basis: 118px; width: 118px !important; border-radius: 8px; }
.ytf-container.ytf-grid .ytfBlock .ytfThumb::after { width: 30px; height: 30px; margin: -15px 0 0 -15px; background-size: 15px; }
.ytf-container.ytf-grid .ytfBlock .ytfMeta .ytfTitle { font-size: 14px !important; }
.ytf-container.ytf-grid .swiper-wrapper { gap: 8px; }

/* ============================================================
   FEEDS YOUTUBE v3: rejilla 2 tarjetas por fila; la impar final ocupa todo el ancho
   ============================================================ */
.ytf-container.ytf-grid .swiper-wrapper { display: grid !important; grid-template-columns: repeat(2, 1fr); gap: 14px; flex-direction: unset; transform: none !important; height: auto !important; margin: 0 !important; padding: 2px !important; }
.ytf-container.ytf-grid .ytfBlock { display: flex !important; flex-direction: column; align-items: stretch; gap: 0; padding: 0 !important; border-radius: 16px; background: #fff; box-shadow: 0 6px 18px rgba(0,0,0,.08); overflow: hidden; width: auto !important; margin: 0 !important; height: auto !important; }
.ytf-container.ytf-grid .ytfBlock:hover { transform: translateY(-3px); box-shadow: 0 12px 26px rgba(0,0,0,.14); }
.ytf-container.ytf-grid .ytfBlock .ytfThumb { flex: none; width: 100% !important; aspect-ratio: 16 / 9; border-radius: 0; margin: 0 !important; }
.ytf-container.ytf-grid .ytfBlock .ytfThumb::after { width: 42px; height: 42px; margin: -21px 0 0 -21px; background-size: 20px; }
.ytf-container.ytf-grid .ytfBlock .ytfMeta { padding: 12px 14px 14px !important; }
.ytf-container.ytf-grid .ytfBlock .ytfMeta .ytfTitle { font-size: 15px !important; }
/* Ultimo impar: a lo ancho, horizontal */
.ytf-container.ytf-grid .ytfBlock:last-child:nth-child(odd) { grid-column: 1 / -1; flex-direction: row; align-items: center; }
.ytf-container.ytf-grid .ytfBlock:last-child:nth-child(odd) .ytfThumb { flex: 0 0 46%; width: 46% !important; aspect-ratio: 16 / 9; }
.ytf-container.ytf-grid .ytfBlock:last-child:nth-child(odd) .ytfMeta { padding: 12px 18px !important; }
.ytf-container.ytf-grid .ytfBlock:last-child:nth-child(odd) .ytfMeta .ytfTitle { font-size: 16px !important; -webkit-line-clamp: 3; }
@media (max-width: 575px) {
    .ytf-container.ytf-grid .swiper-wrapper { grid-template-columns: 1fr; }
    .ytf-container.ytf-grid .ytfBlock:last-child:nth-child(odd) { flex-direction: column; }
    .ytf-container.ytf-grid .ytfBlock:last-child:nth-child(odd) .ytfThumb { flex: none; width: 100% !important; }
}
/* Sellos: un poco mas presentes que en v2 pero sin dominar */
.two-columns .col-lg-6 > div:first-child > img.img-fluid { max-height: 110px; margin-bottom: 16px; }

/* ============================================================
   REPRESENTANTES ESTATALES (Linky Map / GeoChart) + lista de estados
   ============================================================ */
.representantes-mapa .two-opt-columns .col > section[id^="section_"] { position: relative; margin: 10px auto 30px; padding: 12px; border-radius: 24px; background: linear-gradient(180deg, #f6faf3 0%, #eef5ea 100%); box-shadow: 0 14px 40px rgba(0,0,0,.10); }
.representantes-mapa [id^="linkymap_div_"] { border-radius: 18px; overflow: hidden; background: #fff; }
/* Titulo e instruccion */
.representantes-mapa .item-page > .page-header h1, .representantes-mapa .item-page h1, .representantes-mapa h1 { text-align: center; font-size: clamp(26px, 2.6vw, 38px); font-weight: 800; color: #2b2b2b; margin: 20px 0 8px; }
.representantes-mapa .item-page p:first-of-type { text-align: center; }
.representantes-mapa [id^="linkymap_div_"] + p, .representantes-mapa .item-page > p { text-align: center; color: #555; font-size: 15px; }
/* Controles de zoom/pan como botones flotantes */
.representantes-mapa #linkycontrols { top: 14px !important; left: 14px !important; z-index: 20; }
.representantes-mapa #linkycontrols #compass { width: 54px; height: 54px; border-radius: 50%; background: rgba(255,255,255,.92) !important; box-shadow: 0 6px 18px rgba(0,0,0,.15); border: 1px solid #e1eadb; }
.representantes-mapa #linkycontrols #zoom { border-radius: 999px; background: rgba(255,255,255,.92) !important; box-shadow: 0 6px 18px rgba(0,0,0,.15); border: 1px solid #e1eadb; margin-top: 8px; }
.representantes-mapa #linkycontrols #zoom > div, .representantes-mapa #linkycontrols #compass > div { opacity: .75; transition: opacity .2s; cursor: pointer; }
.representantes-mapa #linkycontrols #zoom > div:hover, .representantes-mapa #linkycontrols #compass > div:hover { opacity: 1; }
/* Tooltip del estado (tarjeta con datos) */
.google-visualization-tooltip { border: 0 !important; border-radius: 18px !important; box-shadow: 0 18px 44px rgba(0,0,0,.22) !important; overflow: hidden; padding: 14px 14px 12px !important; background: #fff !important; font-family: Roboto, sans-serif !important; }
.google-visualization-tooltip > * { font-size: 16px !important; font-weight: 700 !important; color: #2b2b2b !important; }
.google-visualization-tooltip p { margin: 8px 0 0 !important; }
.google-visualization-tooltip img { display: block; max-width: 360px; height: auto; border-radius: 12px; }
/* Lista de estados */
.est-lista { max-width: 1140px; margin: 10px auto 50px; }
.est-lista h2 { text-align: center; font-size: 24px; font-weight: 800; color: #2b2b2b; margin: 0 0 18px; position: relative; }
.est-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.est-chip { display: flex; align-items: center; justify-content: center; text-align: center; padding: 13px 16px; border-radius: 999px; background: #fff; border: 1px solid #dfe8da; color: #2f5a2a !important; font-weight: 700; font-size: 15px; text-decoration: none !important; transition: background .2s, color .2s, transform .15s, box-shadow .2s; }
.est-chip:hover { background: #32b936; border-color: #32b936; color: #fff !important; transform: translateY(-2px); box-shadow: 0 8px 20px rgba(50,185,54,.35); }
@media (max-width: 991px) { .est-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 767px) {
    .representantes-mapa .two-opt-columns .col > section[id^="section_"] { display: none; }
    .est-grid { grid-template-columns: repeat(2, 1fr); }
    .est-chip { padding: 12px 10px; font-size: 14px; }
}

/* Mapa estatal v2: sin marco gris del GeoChart, vecinos casi blancos, tarjeta limpia */
.representantes-mapa .two-opt-columns .col > section[id^="section_"] { background: #fff; padding: 0; border-radius: 22px; box-shadow: 0 16px 44px rgba(0,0,0,.10); overflow: hidden; }
.representantes-mapa [id^="linkymap_div_"] { border-radius: 22px; }
.representantes-mapa [id^="linkymap_div_"] svg > rect:first-child { stroke: none !important; stroke-width: 0 !important; fill: #fff !important; }
.representantes-mapa [id^="linkymap_div_"] svg path[fill="#f5f5f5"] { fill: #f7f9f5 !important; stroke: #e6ece2 !important; }
.representantes-mapa [id^="linkymap_div_"] svg path[fill="#33942C"], .representantes-mapa [id^="linkymap_div_"] svg path[fill="#33942c"] { stroke: #ffffff !important; stroke-width: 1.2 !important; }

/* Mapa estatal v3: sin controles (sprite ilegible; rueda y arrastre siguen activos); marco por atributo */
.representantes-mapa #linkycontrols { display: none !important; }
.representantes-mapa [id^="linkymap_div_"] svg rect[stroke="#cccccc" i],
.representantes-mapa [id^="linkymap_div_"] svg rect[stroke-width="5"],
.representantes-mapa [id^="linkymap_div_"] svg > rect,
.representantes-mapa [id^="linkymap_div_"] svg > g > rect:first-child { stroke: none !important; stroke-width: 0 !important; }
.representantes-mapa [id^="linkymap_div_"] > div { border: 0 !important; }

/* Mapa estatal v4: controles rediseñados (flechas y zoom dibujados con CSS sobre las zonas de clic) */
.representantes-mapa #linkycontrols { display: block !important; background: none !important; top: 16px !important; left: 16px !important; height: 140px !important; width: 58px !important; }
.representantes-mapa #linkycontrols #compass { width: 54px !important; height: 54px !important; left: 2px !important; top: 0 !important; border-radius: 50%; background: #fff !important; box-shadow: 0 6px 18px rgba(0,0,0,.18); border: 1px solid #e1eadb; }
.representantes-mapa #linkycontrols #compass::after { content: ""; position: absolute; left: 50%; top: 50%; width: 8px; height: 8px; margin: -4px 0 0 -4px; border-radius: 50%; background: #32b936; }
.representantes-mapa #linkycontrols #compass > div { width: 18px !important; height: 18px !important; display: flex; align-items: center; justify-content: center; font-size: 11px; line-height: 1; color: #2b2b2b; opacity: 1 !important; cursor: pointer; user-select: none; }
.representantes-mapa #linkycontrols #compass > div:hover { color: #32b936; }
.representantes-mapa #linkycontrols #pan_up::before { content: "▲"; }
.representantes-mapa #linkycontrols #pan_down::before { content: "▼"; }
.representantes-mapa #linkycontrols #pan_lt::before { content: "◀"; }
.representantes-mapa #linkycontrols #pan_rt::before { content: "▶"; }
.representantes-mapa #linkycontrols #zoom { width: 30px !important; height: 66px !important; left: 14px !important; top: 66px !important; border-radius: 999px; background: #fff !important; box-shadow: 0 6px 18px rgba(0,0,0,.18); border: 1px solid #e1eadb; margin: 0 !important; }
.representantes-mapa #linkycontrols #zoom > div { width: 30px !important; height: 33px !important; left: 0 !important; display: flex; align-items: center; justify-content: center; font-size: 18px; font-weight: 700; line-height: 1; color: #2b2b2b; opacity: 1 !important; cursor: pointer; user-select: none; }
.representantes-mapa #linkycontrols #zoom > div:hover { color: #32b936; }
.representantes-mapa #linkycontrols #zoom_in { top: 0 !important; }
.representantes-mapa #linkycontrols #zoom_out { top: 33px !important; border-top: 1px solid #edf2ea; }
.representantes-mapa #linkycontrols #zoom_in::before { content: "+"; }
.representantes-mapa #linkycontrols #zoom_out::before { content: "−"; }

/* ============================================================
   MODAL DEL MAPA (SqueezeBox) + pagina de estado en modo componente
   ============================================================ */
#sbox-overlay { background-color: #0a1a0a !important; }
#sbox-window { border-radius: 22px !important; overflow: hidden !important; padding: 0 !important; box-shadow: 0 30px 80px rgba(0,0,0,.45) !important; background: #fff !important; }
#sbox-content { border-radius: 22px; }
#sbox-btn-close {
    position: absolute !important; top: 12px !important; right: 12px !important; width: 40px !important; height: 40px !important; border-radius: 50% !important;
    background: #32b936 !important; box-shadow: 0 6px 16px rgba(0,0,0,.3); z-index: 5; cursor: pointer;
}
#sbox-btn-close::before, #sbox-btn-close::after { content: ""; position: absolute; left: 50%; top: 50%; width: 18px; height: 2.5px; background: #fff; margin: -1px 0 0 -9px; border-radius: 2px; transform: rotate(45deg); }
#sbox-btn-close::after { transform: rotate(-45deg); }
#sbox-btn-close:hover { background: #28a02f !important; }

/* Contenido del estado (tmpl=component) */
body#print { margin: 0; padding: 22px 26px 30px; background: #fff; font-family: 'Roboto', sans-serif; color: #333; }
body#print .item-page > .page-header, body#print .item-page h2, body#print h1 { display: none; }
body#print img.article-image { display: block; width: 100%; max-width: 100%; height: auto; border-radius: 16px; margin: 0 0 18px; }
body#print .article-info, body#print .icons, body#print dl.article-info { display: none !important; }
body#print #customers, body#print table { width: 100%; border-collapse: separate !important; border-spacing: 0; border-radius: 16px; overflow: hidden; box-shadow: 0 6px 20px rgba(0,0,0,.08); font-family: inherit !important; }
body#print #customers th, body#print table th { background: #32b936 !important; color: #fff !important; padding: 14px 16px !important; border: 0 !important; font-size: 13px !important; font-weight: 700; text-transform: uppercase; letter-spacing: .4px; text-align: left; }
body#print #customers td, body#print table td { padding: 12px 16px !important; border: 0 !important; border-bottom: 1px solid #edf2ea !important; font-size: 15px !important; line-height: 1.45; vertical-align: middle; background: #fff !important; }
body#print #customers tr:nth-child(even) td, body#print table tr:nth-child(even) td { background: #f7faf5 !important; }
body#print #customers tr:hover td, body#print table tr:hover td { background: #eef7ea !important; }
body#print #customers td[bgcolor], body#print #customers td[style*="background"], body#print td strong:only-child { color: #2f5a2a; }
body#print #customers span, body#print table span, body#print #customers p { font-family: inherit !important; font-size: inherit !important; }
body#print #customers p { margin: 0; }
body#print td a { color: #2f8f2f; font-weight: 600; }
@media (max-width: 767px) { body#print { padding: 14px; } body#print #customers td, body#print table td { padding: 10px 12px !important; font-size: 14px !important; } }

/* ============================================================
   PRENSA (CEN / Senado / Diputados / Estados) - destacado horizontal,
   subcategorias como chips, fecha discreta
   ============================================================ */
.container.blog .category-title .subheading-category { font-size: clamp(30px, 3vw, 40px); font-weight: 800; color: #2b2b2b; }
/* Un solo destacado: tarjeta horizontal a todo el ancho */
.container.blog .items-leading:has(> [class^="leading-"]:only-child) { grid-template-columns: 1fr; }
.container.blog .items-leading:has(> [class^="leading-"]:only-child) [class^="leading-"] {
    display: grid; grid-template-columns: minmax(0, 46%) 1fr; grid-template-rows: auto 1fr; column-gap: 26px; align-items: start;
}
.container.blog .items-leading:has(> [class^="leading-"]:only-child) [class^="leading-"] .pull-none { grid-column: 1; grid-row: 1 / span 3; margin: 0; height: 100%; }
.container.blog .items-leading:has(> [class^="leading-"]:only-child) [class^="leading-"] .pull-none img { height: 100%; min-height: 260px; aspect-ratio: auto; }
.container.blog .items-leading:has(> [class^="leading-"]:only-child) [class^="leading-"] dl.article-info { grid-column: 2; grid-row: 1; margin: 22px 22px 0 0; }
.container.blog .items-leading:has(> [class^="leading-"]:only-child) [class^="leading-"] .page-header { grid-column: 2; grid-row: 2; margin: 10px 22px 0 0; }
.container.blog .items-leading:has(> [class^="leading-"]:only-child) [class^="leading-"] .page-header h2 { font-size: clamp(20px, 1.9vw, 26px); -webkit-line-clamp: 4; }
.container.blog .items-leading:has(> [class^="leading-"]:only-child) [class^="leading-"] .readmore { grid-column: 2; grid-row: 3; margin: 16px 22px 22px 0; }
.container.blog .items-leading:has(> [class^="leading-"]:only-child) [class^="leading-"] > :not(dl):not(.pull-none):not(.page-header):not(.readmore) { display: none !important; }
/* Fecha: discreta bajo la categoria, sin flotar */
.container.blog dl.article-info dd.published { float: none !important; display: inline-block; width: auto; margin: 0 !important; padding: 0 !important; font-size: 12px !important; color: #888 !important; font-weight: 400 !important; text-align: left !important; }
.container.blog dl.article-info dd.published::before { content: "·"; margin: 0 6px 0 2px; color: #bbb; }
/* Columna de subcategorias (Boletines, Comunicados... o los 32 estados) como chips */
.container.blog > .row > aside.col-md-4 { flex: 0 0 100% !important; max-width: 100% !important; order: -1; padding: 0 15px !important; }
.container.blog .cat-children { display: flex !important; flex-direction: row !important; flex-wrap: wrap; gap: 8px; margin: 0 0 26px; padding: 0; }
.container.blog .cat-children .list-group-item { border: 1px solid #dfe8da !important; border-radius: 999px !important; padding: 0 !important; margin: 0 !important; background: #fff; transition: background .2s, border-color .2s; }
.container.blog .cat-children .list-group-item:hover { background: #eaf6e6; border-color: #32b936; }
.container.blog .cat-children .list-group-item a { display: inline-flex; align-items: center; gap: 8px; padding: 9px 16px; color: #2f5a2a !important; font-weight: 700; font-size: 14px; text-decoration: none !important; }
.container.blog .cat-children .list-group-item .badge { order: 2; background: #32b936; color: #fff; border-radius: 999px; padding: 3px 8px; font-size: 11px; font-weight: 700; }
.container.blog .cat-children h3, .container.blog .cat-children h4 { width: 100%; font-size: 14px; color: #888; margin: 0 0 4px; }
@media (max-width: 767px) {
    .container.blog .items-leading:has(> [class^="leading-"]:only-child) [class^="leading-"] { display: flex; flex-direction: column; }
    .container.blog .items-leading:has(> [class^="leading-"]:only-child) [class^="leading-"] .pull-none img { min-height: 0; aspect-ratio: 16 / 9; }
    .container.blog .items-leading:has(> [class^="leading-"]:only-child) [class^="leading-"] dl.article-info,
    .container.blog .items-leading:has(> [class^="leading-"]:only-child) [class^="leading-"] .page-header,
    .container.blog .items-leading:has(> [class^="leading-"]:only-child) [class^="leading-"] .readmore { margin-right: 22px; margin-left: 22px; }
}

/* Prensa v2: chips reales (sin width 100%) y orden titulo -> chips -> destacado */
.container.blog .cat-children .list-group-item, .container.blog .cat-children .list-group-item-action { width: auto !important; flex: 0 0 auto; }
.container.blog > .row:first-child { display: flex; flex-wrap: wrap; }
.container.blog > .row:first-child > .col-md-8 { display: contents; }
.container.blog > .row:first-child > .col-md-8 > .category-title { order: 0; flex: 0 0 100%; width: 100%; padding: 0 15px; }
.container.blog > .row:first-child > aside.col-md-4 { order: 1; }
.container.blog > .row:first-child > .col-md-8 > .items-leading { order: 2; flex: 0 0 100%; width: 100%; box-sizing: border-box; padding: 0 15px; }
.container.blog > .row:first-child > .col-md-8 > .category-desc { order: 1; flex: 0 0 100%; padding: 0 15px; }

/* Prensa v3: sin aire bajo el titulo; navegador de subcategorias (modulo Articulos-Categorias en posicion top) como chips */
.container.blog > .row > aside.col-md-4 { margin-top: 0 !important; }
.container.blog .category-title { margin: 6px 0 14px !important; padding: 0; }
.container.blog .items-leading { margin-top: 4px !important; }

.top .categories-module { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; max-width: 1140px; margin: 22px auto 0; padding: 0 15px; }
.top .categories-module li { margin: 0; padding: 0; }
.top .categories-module li ul { display: none; }
.top .categories-module .item-title { margin: 0; font-size: 14px; font-weight: 700; display: inline; }
.top .categories-module li > a, .top .categories-module .item-title a {
    display: inline-flex; align-items: center; gap: 6px; padding: 9px 16px; border-radius: 999px; background: #fff; border: 1px solid #dfe8da;
    color: #2f5a2a !important; font-weight: 700; font-size: 14px; text-decoration: none !important; transition: background .2s, border-color .2s, color .2s;
}
.top .categories-module li > a:hover, .top .categories-module .item-title a:hover { background: #eaf6e6; border-color: #32b936; }
.top .categories-module li.active > a, .top .categories-module li.active .item-title a { background: #32b936 !important; border-color: #32b936; color: #fff !important; }
.top .categories-module li { font-size: 12px; color: #7a8a72; font-weight: 700; }
/* Cuando existe el modulo, no repetir la lista nativa de subcategorias */
body:has(.top .categories-module) .container.blog .cat-children { display: none !important; }

/* Denuncias v8: dentro de #maps, mapa compacto (36%) y lista dominante (62%) sin scroll interno */
#maps .map_canvas { width: 36% !important; border-radius: 14px; overflow: hidden; }
#maps #locationresult { width: 62% !important; height: auto !important; max-height: none !important; overflow: visible !important; float: right; }
#maps #resultpanel { height: auto !important; overflow: visible !important; }
#maps .result-count { clear: both; }
@media (max-width: 991px) { #maps .map_canvas, #maps #locationresult { width: 100% !important; float: none; } #maps .map_canvas { margin-bottom: 14px; } }
/* Tarjetas de resultado */
#maps #resultpanel .row0, #maps #resultpanel .row1 { background: #fff !important; border: 1px solid #e6ece2; border-radius: 14px; padding: 16px 16px 14px !important; margin: 0 0 12px !important; box-shadow: 0 4px 14px rgba(0,0,0,.05); }
#maps #resultpanel .row0:hover, #maps #resultpanel .row1:hover, #maps #resultpanel .locationsactive { border-color: #32b936; box-shadow: 0 8px 22px rgba(50,185,54,.18); }
#maps #resultpanel .resultbtn, #maps #resultpanel .btn { border-radius: 999px !important; padding: 7px 14px !important; font-size: 13px !important; box-shadow: none !important; }
#maps #resultpanel address { margin: 0 0 10px; font-style: normal; color: #444; line-height: 1.5; }
#maps #resultpanel h3, #maps #resultpanel .locationtitle { font-size: 17px; font-weight: 700; margin: 0 0 4px; color: #222; }

/* ============================================================
   ARTICULO (item-page) - formato de lectura
   ============================================================ */
.item-page { max-width: 860px; margin: 0 auto; padding: 10px 0 50px; }
.item-page .page-header { border: 0; margin: 14px 0 12px; padding: 0; }
.item-page .page-header h1 { font-size: clamp(26px, 2.8vw, 38px); font-weight: 800; line-height: 1.18; color: #1f1f1f; letter-spacing: -.2px; }
/* Meta: categoria como etiqueta + fecha */
.item-page dl.article-info { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0 0 22px; }
.item-page dl.article-info dt { display: none; }
.item-page dl.article-info dd { margin: 0; padding: 0 !important; border: 0 !important; float: none !important; font-size: 13px !important; }
.item-page dl.article-info dd.category-name a { display: inline-block; padding: 5px 12px; border-radius: 999px; background: #eaf6e6; color: #2f8f2f !important; font-weight: 700; text-transform: uppercase; letter-spacing: .3px; font-size: 12px; }
.item-page dl.article-info dd.published { color: #888 !important; font-weight: 400 !important; margin-left: 4px; }
/* Imagen principal */
.item-page .pull-none { margin: 0 0 28px; }
.item-page img.article-image { width: 100%; max-height: 520px; object-fit: cover; border-radius: 18px; margin: 0 !important; box-shadow: 0 10px 30px rgba(0,0,0,.10); }
/* Cuerpo: neutralizar cajas grises y estilos pegados en el contenido */
.item-page [itemprop="articleBody"] > div, .item-page [itemprop="articleBody"] > div > div { background: transparent !important; box-shadow: none !important; border: 0 !important; padding: 0 !important; margin: 0 !important; width: auto !important; max-width: none !important; }
/* Titulo repetido dentro del cuerpo (patron de los boletines: titulo + hr) */
.item-page [itemprop="articleBody"] > div > div:first-child:has(+ hr), .item-page [itemprop="articleBody"] > div > div:first-child + hr { display: none; }
.item-page [itemprop="articleBody"] { font-size: 18px; line-height: 1.7; color: #333; }
.item-page [itemprop="articleBody"] p, .item-page [itemprop="articleBody"] > div > div > div { margin: 0 0 18px !important; text-align: left !important; }
.item-page [itemprop="articleBody"] span[style*="font-size"], .item-page [itemprop="articleBody"] span[style*="font-family"] { font-size: inherit !important; font-family: inherit !important; }
/* Resumen (viñetas iniciales) como bloque destacado */
.item-page [itemprop="articleBody"] ul { margin: 0 0 8px; padding: 0 0 0 4px; list-style: none; }
.item-page [itemprop="articleBody"] ul li { position: relative; padding: 12px 16px 12px 36px; margin: 0 0 8px; background: #f4f8f1; border-radius: 12px; font-weight: 600; color: #2b3d27; line-height: 1.5; }
.item-page [itemprop="articleBody"] ul li::before { content: ""; position: absolute; left: 16px; top: 20px; width: 9px; height: 9px; border-radius: 50%; background: #32b936; }
.item-page [itemprop="articleBody"] ul + ul { margin-top: -8px; }
.item-page [itemprop="articleBody"] ul:last-of-type { margin-bottom: 24px; }
/* Cita como pull-quote */
.item-page [itemprop="articleBody"] blockquote { margin: 26px 0 !important; padding: 18px 24px 18px 28px !important; border-left: 5px solid #32b936 !important; background: #f7faf5 !important; border-radius: 0 16px 16px 0; color: #24421f !important; font-size: 19px; font-style: italic; line-height: 1.55; }
.item-page [itemprop="articleBody"] blockquote p { margin: 0 !important; color: inherit !important; }
.item-page [itemprop="articleBody"] blockquote span { color: inherit !important; }
.item-page [itemprop="articleBody"] img { max-width: 100%; height: auto; border-radius: 14px; }
.item-page [itemprop="articleBody"] a { color: #2f8f2f; text-decoration: underline; text-decoration-color: rgba(50,185,54,.4); }
.item-page .icons, .item-page .btn-group.pull-right { display: none !important; }
@media (max-width: 767px) {
    .item-page { padding: 4px 0 30px; }
    .item-page [itemprop="articleBody"] { font-size: 16.5px; }
    .item-page [itemprop="articleBody"] blockquote { font-size: 17px; padding: 14px 16px 14px 18px !important; }
    .item-page img.article-image { max-height: 300px; border-radius: 14px; }
}
.item-page [itemprop="articleBody"] div, .item-page [itemprop="articleBody"] p, .item-page [itemprop="articleBody"] span { text-align: left !important; }
.item-page [itemprop="articleBody"] > div > div > div, .item-page [itemprop="articleBody"] > div > div > div > div { margin: 0 0 16px !important; }

/* Articulo v2: texto justificado con guionado y cuerpo en caja gris suave */
.item-page [itemprop="articleBody"] { background: #f4f6f2; border-radius: 20px; padding: clamp(22px, 3vw, 38px); box-shadow: inset 0 0 0 1px #e6ebe1; }
.item-page [itemprop="articleBody"] div, .item-page [itemprop="articleBody"] p { text-align: justify !important; hyphens: auto; -webkit-hyphens: auto; }
.item-page [itemprop="articleBody"] span { text-align: inherit !important; }
.item-page [itemprop="articleBody"] ul li { background: #fff; box-shadow: 0 2px 8px rgba(0,0,0,.04); text-align: left !important; }
.item-page [itemprop="articleBody"] blockquote { background: #fff !important; box-shadow: 0 4px 14px rgba(0,0,0,.05); text-align: left !important; }
.item-page [itemprop="articleBody"] blockquote p, .item-page [itemprop="articleBody"] blockquote div { text-align: left !important; }
.item-page [itemprop="articleBody"] > div > div > div:last-child, .item-page [itemprop="articleBody"] > div > div > p:last-child { margin-bottom: 0 !important; }
@media (max-width: 767px) { .item-page [itemprop="articleBody"] div, .item-page [itemprop="articleBody"] p { text-align: left !important; } }
