/* ==========================================================
   INTECCA - CUSTOM.CSS
   ========================================================== */
   @import url('https://fonts.googleapis.com/css2?family=Titillium+Web:ital,wght@0,400;0,600;0,700;1,400;1,600;1,700&display=swap');


/*! normalize.css v3.0.1 | MIT License | git.io/normalize */
.titillium-web-regular {
  font-family: "Titillium Web", sans-serif;
  font-weight: 400;
  font-style: normal;
}
.titillium-web-semibold {
  font-family: "Titillium Web", sans-serif;
  font-weight: 600;
  font-style: normal;
}
.titillium-web-bold {
  font-family: "Titillium Web", sans-serif;
  font-weight: 700;
  font-style: normal;
}
.titillium-web-regular-italic {
  font-family: "Titillium Web", sans-serif;
  font-weight: 400;
  font-style: italic;
}
.titillium-web-semibold-italic {
  font-family: "Titillium Web", sans-serif;
  font-weight: 600;
  font-style: italic;
}
.titillium-web-bold-italic {
  font-family: "Titillium Web", sans-serif;
  font-weight: 700;
  font-style: italic;
}

/* ==========================================================
   VARIABLES
   ========================================================== */
:root{
    --verde:#5c9f38;
    --verde-claro:#7aa800;
    --azul:#005A9C;
    --gris:#666;
    --gris-claro:#f5f5f5;
    --gris-borde:#e5e5e5;
    --transicion:.3s ease;
}

body {
  font-size: 1em;
  line-height: 100%;
  font-family: 'Titillium Web', sans-serif;
  color: #333333;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: 'Titillium Web', sans-serif;
  font-weight: 300;
  line-height: 100%;
}

a {
  color: #5c9f38;
}

.page-title {
  font-size: 5em;
  color: #ffffff;
  font-weight: 100;
  margin-bottom: 30px;
}

.page-info-simple .page-title {
  font-weight: 300;
  color: #ffffff;
  font-size: 4.5em;
}

.blog-grid-date {
    display: inline-block;
    margin-bottom: 12px;
}

.blog-grid-date a {
    display: inline-block;
    background-color: #5c9f38;
    color: #fff;
    padding: 6px 6px;
    border-radius: 0px;
    font-size: 0.95em;
    font-weight: 300;
    text-decoration: none;
    letter-spacing: 0.5px;
}
.blog-grid-title {
    line-height: 1.2;
    margin-bottom: 10px; /* opcional */
}

.blog-grid-title a {
    color: #025542;
    font-weight: 500;
    text-decoration: none;
}

.blog-grid-date {
  font-size: 1em;
}

.page-description {
  color: #fff;
  text-transform: uppercase;
  font-size: 1.25em;
  letter-spacing: 2px;
  line-height: 1.5;
  font-weight: 300;
  margin-bottom: 40px;
}

.blog-grid-date {
    display: block;
    margin-bottom: 6px;
}

.blog-grid-links {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap; /* Si no cabe en móviles, pasa a la siguiente línea */
}

.blog-grid-author, .blog-grid-tags {
    display: inline-flex;
    align-items: center;
}

.blog-grid-date-badge {
    position: absolute;
    top: 10px;
    right: 10px;
    z-index: 10;

    background-color: rgba(255,255,255,.75);
    color: #5c9f38;

    padding: 15px 10px;

    font-size: 1.2em;
    font-weight: 500;

}

.footer {
  padding: 40px 0;
  background-color: #025542;
  position: relative;
}

.footer-menu li a {
  color: #fff;
}

.copyright {
  margin: 0;
  color: #fff;
  font-size: 0.75em;
}

footer .container,
footer .row,
footer .col-md-3,
footer .logo,
footer .logo-image {
    opacity: 1 !important;
    filter: none !important;
}

.header-back-default {
  background-image: url(../img/backgrounds/intecca-background-v1.jpg);
  background-position: bottom;
}
.header-back-simple {
  background-image: url(../img/backgrounds/intecca-background-v2.jpg);
}

.blog-grid-image-over {
  background-color: rgba(122, 168, 0, 0.6);
}

.blog-grid-image {
  aspect-ratio: 408/156; 
}
.blog-grid-image img {
  /* max-width: 100%; */
    /*height: 100%; */
    /*object-fit: fill;   */    /* NO mantiene proporción, rellena la caja */
 /*    display: block; */
}
/* ==========================================================
   BLOG
   ========================================================== */
.blog .row{
    display:flex;
    flex-wrap:wrap;
}
.blog .row>[data-categoria]{
    float:none;
    transition:
        opacity .35s ease,
        transform .35s ease;
}
.blog .row>[data-categoria].filtrando{
    opacity:0;
    transform:translateY(15px);
}
.blog .row>[data-categoria].oculto{
    display:none;
    opacity:0;
    transform:translateY(15px);
}
/* Separación entre tarjetas */
.blog .row>[data-categoria]{
    margin-bottom:15px;
}
.blog-grid{
    margin-bottom:0;
}
.hidden{
    display: none;
}
/* ==========================================================
   RESÚMENES
   ========================================================== */
.event-summary{
    width:100%;
    margin:5px 0;
    border-bottom: 1px solid #99a3b1;
}
.summary-question{
    display:flex;
    justify-content:space-between;
    align-items:center;
    width:100%;
    margin:0;
    padding:5px 0;
    background:none;
    border:0;
    color:var(--verde);
    font-size:16px;
    font-weight:400;
    cursor:pointer;
}
.summary-question:hover{
    color:#4f8b30;
}
.summary-question i{
    transition:transform .25s ease;
}
.summary-question.abierto i{
    transform:rotate(180deg);
}
.summary-answer{
    display:none;
    margin-top:8px;
    padding:0;
    font-size:14px;
    line-height:1.6;
    color:#99a3b1;
}
/* ==========================================================
   CONTADOR
   ========================================================== */
.contador-eventos{
    margin:0 0 20px;
    color:var(--verde);
    font-size:14px;
}
/* ==========================================================
   MENSAJE SIN RESULTADOS
   ========================================================== */
.sin-resultados{
    display:none;
    text-align:center;
    padding:60px 30px;
    margin-bottom:30px;
    background:#fafafa;
    border:1px solid #eee;
    border-radius:8px;
}
.sin-resultados i{
    font-size:48px;
    color:#ccc;
    margin-bottom:15px;
}
.sin-resultados h4{
    margin-bottom:10px;
    color:#555;
}
.sin-resultados p{
    margin:0;
    color:#888;
}
/* ==========================================================
   ANIMACIONES
   ========================================================== */
.fade-out{
    opacity:0;
    transform:translateY(15px);
}
.fade-in{
    opacity:1;
    transform:translateY(0);
}
/* ==========================================================
   BUSCADOR
   ========================================================== */
.search{
    position:relative;
    width:100%;
    margin-top:15px;
}
#buscador{
    width:100%;
    padding-right:40px;
}
.search-icon,
.search-clear{
    position:absolute;
    top:50%;
    right:15px;
    transform:translateY(-50%);
    z-index:5;
    cursor:pointer;
}
.search-clear{
    display:none;
    color:#999;
}
.search-clear:hover{
    color:#333;
}
/* ==========================================================
   FILTROS
   ========================================================== */
#filtro-categorias,#filtro-categorias-centro,#filtro-categorias-campus{
    list-style:none;
    margin:15px 0px;
    padding:0;
}
#filtro-categorias a, #filtro-categorias-centro a, #filtro-categorias-campus a{
    display:block;
    padding:8px 12px;
    border-radius:4px;
    color:inherit;
    text-decoration:none;
    transition:background .25s,color .25s;
}
#filtro-categorias a:hover, #filtro-categorias-centro a:hover, #filtro-categorias-campus a:hover{
    background:#f3f3f3;
}
#filtro-categorias a.activo, #filtro-categorias-centro a.activo, #filtro-categorias-campus a.activo{
    background:var(--verde);
    color:#fff;
    font-weight:600;
}

/* ==========================================================
   PAGINACIÓN
   ========================================================== */
#paginacion{
    width:100%;
    text-align:center;
    margin:40px 0 30px;
}
.titulo-paginacion{
    margin-bottom:15px;
    color:#777;
    font-size:14px;
}
#paginacion .pagina{
    display:inline-flex;
    justify-content:center;
    align-items:center;
    min-width:38px;
    height:38px;
    margin:0 5px;
    padding:0 12px;
    border-radius:4px;
    background:#f2f2f2;
    color:#555;
    text-decoration:none;
    font-size:14px;
    transition:all .25s ease;
}
#paginacion .pagina:hover{
    background:#ddd;
}
#paginacion .pagina.activo{
    background:var(--verde);
    color:#fff;
}
#paginacion .pagina.anterior,
#paginacion .pagina.siguiente{
    padding:0 18px;
}
#paginacion .pagina i{
    margin:0 6px;
}
#paginacion .disabled{
    opacity:.4;
    pointer-events:none;
}
.ellipsis{
    display:inline-block;
    padding:8px 10px;
    color:#666;
    font-weight:600;
}
/* ==========================================================
   TRANSICIONES
   ========================================================== */
.blog .row>[data-categoria]{
    transition:
        opacity .35s ease,
        transform .35s ease;
}
.blog .row.filtrando{
    pointer-events:none;
}
/* ==========================================================
   HEADER
   ========================================================== */
.header.header-over.large .logo-image img{
    max-width:180px;
    height:auto;
}
/* ==========================================================
   FOOTER
   ========================================================== */
.footer-logo-wrapper{
    text-align:center;
    padding-bottom:0px;
}
footer .logo-image img{
    max-width:120px;
    height:auto;
}
.footer-wrapper{
    position:relative;
    padding-right:100px;
}
.scroll-top{
    position:absolute;
    top:2px;
    right:0;
    display:flex;
    justify-content:center;
    align-items:center;
    width:40px;
    height:40px;
    border:1px solid #cbd3dd;
    border-radius:4px;
    color:#fff;
    cursor:pointer;
    transition:.25s ease;
}
.scroll-top:hover{
    transform:translateY(-2px);
}
/* ==========================================================
   TABLET
   ========================================================== */
@media (max-width:991px){
    /* ---------- Layout ---------- */
    .layout .row{
        display:flex;
        flex-direction:column;
        margin:0;
    }
    .layout .col-md-3{
        order:1;
    }
    .layout .col-md-9{
        order:2;
    }
    /* ---------- Sidebar ---------- */
    .sidebar.js-sidebar-fixed{
        position:relative !important;
        top:auto !important;
        left:auto !important;
        width:auto !important;
    }
    /* ---------- Márgenes ---------- */
    .layout.with-right-sidebar .col-md-3,
    .layout.with-right-sidebar .col-md-9{
        padding-left:15px;
        padding-right:15px;
    }
    .filtros-movil{
        padding-left:15px;
        padding-right:15px;
        margin-bottom:25px;
    }
    .filtros-movil + .col-md-9{
        padding-left:15px;
        padding-right:15px;
    }
    /* ---------- Buscador ---------- */
    .search{
        width:100%;
        margin-bottom:25px;
    }
    /* ---------- Filtros ---------- */
    #filtro-categorias{
        display:flex;
        flex-wrap:nowrap;
        overflow:hidden;
        width:100%;
        margin:0;
        padding:0;
        border:1px solid var(--verde-claro);
        border-radius:4px;
    }
    #filtro-categorias li{
        flex:1;
        margin:0;
        padding:0;
    }
    #filtro-categorias li + li{
        border-left:1px solid var(--verde-claro);
    }
    #filtro-categorias a{
        display:flex;
        justify-content:center;
        align-items:center;
        padding:8px 5px;
        border-radius:0;
        color:var(--verde-claro);
        white-space:nowrap;
    }
    #filtro-categorias a.activo{
        background:var(--verde-claro);
        color:#fff;
    }
    /* ---------- Tarjetas ---------- */
    .blog .row{
        display:flex;
        flex-wrap:wrap;
    }
    .blog .row>[data-categoria]{
        margin-bottom:15px;
    }
    /* ---------- Logo ---------- */
    .header.header-over.large .logo-image img{
        max-width:160px;
    }
}
/* ==========================================================
   MÓVIL (≤767px)
   ========================================================== */
@media (max-width:767px){
    /* ---------- Contenedor ---------- */
    .container{
        padding-left:40px !important;
        padding-right:40px !important;
    }
    /* ---------- Header ---------- */
    .header.header-over.large{
        position:absolute;
        top:0;
        left:0;
        width:100%;
        z-index:10;
        padding-top:15px;
    }
    .header.header-over.large .container,
    .header-back.header-back-simple .container{
        padding-left:40px !important;
        padding-right:40px !important;
    }
    .header.header-over.large .logo-image img{
        max-width:150px;
        height:auto;
    }
    .header.header-over.large .col-md-3,
    .header.header-over.large .col-sm-6,
    .header.header-over.large .col-xs-6{
        padding-left:0 !important;
        padding-right:0 !important;
    }
    .header-back{
        background-position:center;
        background-size:cover;
    }
    .header-back.header-back-simple{
        padding-top:100px;
        padding-bottom:5px;
    }

    footer .logo-image img {
    max-width: 150px;
    height: auto;
}
    .page-info-simple{
        width:85%;
        margin:0;
        text-align:left;
    }
    .page-info-simple .page-title{
        margin-top:0;
    }
    .page-info .page-title{
        font-size:32px !important;
        line-height:1.1 !important;
        margin-bottom:5px !important;
    }
    .page-info .page-description{
        margin-top:0 !important;
        font-size:18px !important;
        line-height:1.2 !important;
    }
    /* ---------- Blog ---------- */
    .blog .row{
        margin:0 !important;
    }
    .blog .row>[data-categoria]{
        padding-left:0 !important;
        padding-right:0 !important;
        margin-bottom:15px !important;
    }
    .blog-grid{
        margin-bottom:0 !important;
    }
    /* ---------- Buscador ---------- */
    .filtros-movil{
        margin-bottom:25px !important;
    }
    .search{
        margin-bottom:25px;
    }
    #buscador{
        width:100%;
    }
    /* ---------- Categorías ---------- */
    #filtro-categorias,
    #filtro-categorias li,
    #filtro-categorias li a{
        box-sizing:border-box;
    }
    #filtro-categorias li,
    #filtro-categorias li a{
        border-bottom:none !important;
    }
    #filtro-categorias li a{
        height:100%;
        line-height:1.2 !important;
    }
    /* ---------- Footer ---------- */
    .footer-logo-wrapper{
        text-align:center;
        padding-bottom:20px;
    }
    .footer-wrapper{
        padding-right:0;
        padding-top:15px;
        text-align:center;
    }
    .footer-menu,
    .copyright{
        text-align:center !important;
    }
    .scroll-top{
        position:relative;
        top:auto;
        right:auto;
        margin:0 auto 20px;
    }
}

@media (max-width: 767px) {

    /* Margen lateral común */
    .container {
        padding-left: 40px !important;
        padding-right: 40px !important;
    }

    /* Eliminar márgenes de Bootstrap */
    .blog .row {
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    /* Todos los bloques ocupan el mismo ancho */
    #contador,
    .filtros-movil,
    .filtros-movil .sidebar,
    .filtros-movil .menu-vertical-wrapper,
    .search,
    #filtro-categorias,
    .blog .row > [data-categoria] {
        width: 100%;
        margin-left: 0 !important;
        margin-right: 0 !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        box-sizing: border-box;
    }

    /* Buscador */
    #buscador {
        width: 100%;
    }

    /* Separación entre buscador y posts */
    .filtros-movil {
        margin-bottom: 25px !important;
    }

    /* Contador */
    #contador {
        margin-bottom: 20px;
    }
}

@media (max-width: 767px) {

    .col-md-9,
    .main-content,
    .blog,
    .blog .row,
    .blog .row > [data-categoria] {
        width: 100%;
        padding-left: 0 !important;
        padding-right: 0 !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        box-sizing: border-box;
    }

}

@media (max-width: 767px) {

    .footer-wrapper{
        padding-right:0 !important;
        text-align:center;
    }

    .scroll-top{
        position:static !important;

        display:flex !important;
        justify-content:center;
        align-items:center;

        width:40px;
        height:40px;

        margin:0 auto 20px auto !important;

        float:none !important;
        left:auto !important;
        right:auto !important;
        top:auto !important;
    }

}

