.elementor-8031 .elementor-element.elementor-element-eb0adeb{--display:flex;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-8031 .elementor-element.elementor-element-eb0adeb.e-con{--flex-grow:0;--flex-shrink:0;}.elementor-8031 .elementor-element.elementor-element-72ad8a6{--display:flex;--margin-top:075px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-8031 .elementor-element.elementor-element-72ad8a6.e-con{--flex-grow:0;--flex-shrink:0;}.elementor-8031 .elementor-element.elementor-element-a2c65c8{--e-filter-direction:row;--e-filter-white-space:nowrap;--e-filter-justify-content:flex-end;--e-filter-item-width:initial;--e-filter-item-flex-grow:0;--e-filter-wrap:wrap;--e-filter-overflow-x:initial;z-index:5;--e-filter-normal-text-color:#464646;--e-filter-hover-text-color:#000000;--e-filter-active-text-color:#000000;--e-filter-item-border-radius:23px 23px 23px 23px;}.elementor-8031 .elementor-element.elementor-element-a2c65c8 > .elementor-widget-container{margin:0px 0px 0px 0px;padding:5px 0px 0px 0px;}.elementor-8031 .elementor-element.elementor-element-a2c65c8.elementor-element{--align-self:flex-end;}.elementor-8031 .elementor-element.elementor-element-a2c65c8 .e-filter-item{font-family:var( --e-global-typography-7b6f948-font-family ), Sans-serif;font-size:var( --e-global-typography-7b6f948-font-size );font-weight:var( --e-global-typography-7b6f948-font-weight );text-transform:var( --e-global-typography-7b6f948-text-transform );padding:10px 20px 10px 20px;}.elementor-widget-nested-tabs.elementor-widget-n-tabs > .elementor-widget-container > .e-n-tabs[data-touch-mode='false'] > .e-n-tabs-heading > .e-n-tab-title[aria-selected="false"]:hover{background:var( --e-global-color-accent );}.elementor-widget-nested-tabs.elementor-widget-n-tabs > .elementor-widget-container > .e-n-tabs > .e-n-tabs-heading > .e-n-tab-title[aria-selected="true"], .elementor-widget-nested-tabs.elementor-widget-n-tabs > .elementor-widget-container > .e-n-tabs[data-touch-mode='true'] > .e-n-tabs-heading > .e-n-tab-title[aria-selected="false"]:hover{background:var( --e-global-color-accent );}.elementor-widget-nested-tabs.elementor-widget-n-tabs > .elementor-widget-container > .e-n-tabs > .e-n-tabs-heading > :is( .e-n-tab-title > .e-n-tab-title-text, .e-n-tab-title ){font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );line-height:var( --e-global-typography-accent-line-height );}.elementor-widget-nested-tabs{--n-tabs-title-font-size:var( --e-global-typography-accent-font-size );}.elementor-8031 .elementor-element.elementor-element-6b2527a{--display:flex;--margin-top:0px;--margin-bottom:100px;--margin-left:10px;--margin-right:10px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-8031 .elementor-element.elementor-element-8cbf58e{--e-filter-direction:row;--e-filter-white-space:nowrap;--e-filter-justify-content:flex-end;--e-filter-item-width:initial;--e-filter-item-flex-grow:0;--e-filter-wrap:wrap;--e-filter-overflow-x:initial;width:initial;max-width:initial;top:-3.6%;--e-filter-normal-text-color:#464646;--e-filter-hover-text-color:#000000;--e-filter-active-text-color:#000000;--e-filter-item-border-radius:23px 23px 23px 23px;}.elementor-8031 .elementor-element.elementor-element-8cbf58e > .elementor-widget-container{margin:0px 0px 0px 0px;padding:10px 10px 10px 0px;}.elementor-8031 .elementor-element.elementor-element-8cbf58e.elementor-element{--align-self:flex-end;}.elementor-8031 .elementor-element.elementor-element-8cbf58e .e-filter-item{font-family:var( --e-global-typography-7b6f948-font-family ), Sans-serif;font-size:var( --e-global-typography-7b6f948-font-size );font-weight:var( --e-global-typography-7b6f948-font-weight );text-transform:var( --e-global-typography-7b6f948-text-transform );padding:10px 20px 0px 20px;}.elementor-widget-loop-grid .elementor-button{background-color:var( --e-global-color-accent );font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-size:var( --e-global-typography-accent-font-size );font-weight:var( --e-global-typography-accent-font-weight );line-height:var( --e-global-typography-accent-line-height );}.elementor-widget-loop-grid .elementor-pagination{font-family:var( --e-global-typography-secondary-font-family ), Sans-serif;font-size:var( --e-global-typography-secondary-font-size );font-weight:var( --e-global-typography-secondary-font-weight );line-height:var( --e-global-typography-secondary-line-height );}.elementor-widget-loop-grid .e-load-more-message{font-family:var( --e-global-typography-secondary-font-family ), Sans-serif;font-size:var( --e-global-typography-secondary-font-size );font-weight:var( --e-global-typography-secondary-font-weight );line-height:var( --e-global-typography-secondary-line-height );}.elementor-8031 .elementor-element.elementor-element-27fe170{--grid-columns:4;}.elementor-8031 .elementor-element.elementor-element-27fe170 > .elementor-widget-container{margin:0px 0px 0px 0px;}.elementor-8031 .elementor-element.elementor-element-b291434{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:space-between;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-8031 .elementor-element.elementor-element-bbf2603{--grid-columns:1;--grid-row-gap:20px;width:var( --container-widget-width, 60% );max-width:60%;--container-widget-width:60%;--container-widget-flex-grow:0;}.elementor-8031 .elementor-element.elementor-element-bbf2603 > .elementor-widget-container{margin:0px 0px 0px 0px;padding:0px 0px 0px 0px;}.elementor-8031 .elementor-element.elementor-element-bbf2603.elementor-element{--align-self:flex-start;}.elementor-8031 .elementor-element.elementor-element-bce2d1e{--display:flex;--min-height:0px;}.elementor-8031 .elementor-element.elementor-element-ce4c1a2{--n-tabs-heading-justify-content:flex-start;--n-tabs-title-width:initial;--n-tabs-title-height:initial;--n-tabs-title-align-items:center;--n-tabs-title-flex-grow:0;--n-tabs-heading-wrap:wrap;--n-tabs-heading-overflow-x:initial;--n-tabs-title-white-space:initial;--n-tabs-title-gap:0px;--n-tabs-gap:25px;--n-tabs-title-padding-top:10px;--n-tabs-title-padding-right:0px;--n-tabs-title-padding-bottom:10px;--n-tabs-title-padding-left:20px;--n-tabs-title-font-size:var( --e-global-typography-7b6f948-font-size );--n-tabs-title-color:#464646;--n-tabs-title-color-active:#000000;}.elementor-8031 .elementor-element.elementor-element-ce4c1a2 > .elementor-widget-container > .e-n-tabs > .e-n-tabs-heading > .e-n-tab-title[aria-selected='false']:not( :hover ){background:#02010100;}.elementor-8031 .elementor-element.elementor-element-ce4c1a2.elementor-widget-n-tabs > .elementor-widget-container > .e-n-tabs[data-touch-mode='false'] > .e-n-tabs-heading > .e-n-tab-title[aria-selected="false"]:hover{background:#00000000;}.elementor-8031 .elementor-element.elementor-element-ce4c1a2.elementor-widget-n-tabs > .elementor-widget-container > .e-n-tabs > .e-n-tabs-heading > .e-n-tab-title[aria-selected="true"], .elementor-8031 .elementor-element.elementor-element-ce4c1a2.elementor-widget-n-tabs > .elementor-widget-container > .e-n-tabs[data-touch-mode='true'] > .e-n-tabs-heading > .e-n-tab-title[aria-selected="false"]:hover{background:#00000000;}.elementor-8031 .elementor-element.elementor-element-ce4c1a2 > .elementor-widget-container{margin:0px 0px 0px 0px;padding:0px 0px 0px 0px;}.elementor-8031 .elementor-element.elementor-element-ce4c1a2.elementor-widget-n-tabs > .elementor-widget-container > .e-n-tabs > .e-n-tabs-heading > :is( .e-n-tab-title > .e-n-tab-title-text, .e-n-tab-title ){font-family:var( --e-global-typography-7b6f948-font-family ), Sans-serif;font-weight:var( --e-global-typography-7b6f948-font-weight );text-transform:var( --e-global-typography-7b6f948-text-transform );}.elementor-8031 .elementor-element.elementor-element-ce4c1a2 [data-touch-mode="false"] .e-n-tab-title[aria-selected="false"]:hover{--n-tabs-title-color-hover:#000000;}.elementor-8031 .elementor-element.elementor-element-43f528c{--grid-columns:4;}.elementor-8031 .elementor-element.elementor-element-43f528c > .elementor-widget-container{margin:0px 0px 0px 0px;}.elementor-8031 .elementor-element.elementor-element-f123654{--e-filter-direction:row;--e-filter-white-space:nowrap;--e-filter-justify-content:flex-end;--e-filter-item-width:initial;--e-filter-item-flex-grow:0;--e-filter-wrap:wrap;--e-filter-overflow-x:initial;width:initial;max-width:initial;top:-3.6%;--e-filter-normal-text-color:#464646;--e-filter-hover-text-color:#000000;--e-filter-active-text-color:#000000;--e-filter-item-border-radius:23px 23px 23px 23px;}.elementor-8031 .elementor-element.elementor-element-f123654 > .elementor-widget-container{margin:0px 0px 0px 0px;padding:10px 10px 10px 0px;}.elementor-8031 .elementor-element.elementor-element-f123654.elementor-element{--align-self:flex-end;}.elementor-8031 .elementor-element.elementor-element-f123654 .e-filter-item{font-family:var( --e-global-typography-7b6f948-font-family ), Sans-serif;font-size:var( --e-global-typography-7b6f948-font-size );font-weight:var( --e-global-typography-7b6f948-font-weight );text-transform:var( --e-global-typography-7b6f948-text-transform );padding:10px 20px 0px 20px;}.elementor-8031 .elementor-element.elementor-element-6399ad7{--display:flex;}:root{--page-title-display:none;}@media(min-width:768px){.elementor-8031 .elementor-element.elementor-element-eb0adeb{--width:100%;}.elementor-8031 .elementor-element.elementor-element-72ad8a6{--width:100%;}.elementor-8031 .elementor-element.elementor-element-bce2d1e{--width:40%;}}@media(max-width:1366px){.elementor-8031 .elementor-element.elementor-element-eb0adeb{--margin-top:50px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;}.elementor-8031 .elementor-element.elementor-element-72ad8a6{--margin-top:50px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;}.elementor-8031 .elementor-element.elementor-element-a2c65c8 > .elementor-widget-container{padding:8px 0px 0px 0px;}.elementor-8031 .elementor-element.elementor-element-a2c65c8 .e-filter-item{font-size:var( --e-global-typography-7b6f948-font-size );}.elementor-widget-nested-tabs{--n-tabs-title-font-size:var( --e-global-typography-accent-font-size );}.elementor-widget-nested-tabs.elementor-widget-n-tabs > .elementor-widget-container > .e-n-tabs > .e-n-tabs-heading > :is( .e-n-tab-title > .e-n-tab-title-text, .e-n-tab-title ){line-height:var( --e-global-typography-accent-line-height );}.elementor-8031 .elementor-element.elementor-element-8cbf58e{--e-filter-justify-content:flex-end;--e-filter-item-width:initial;--e-filter-item-flex-grow:0;--container-widget-width:0px;--container-widget-flex-grow:0;width:var( --container-widget-width, 0px );max-width:0px;top:0%;}.elementor-8031 .elementor-element.elementor-element-8cbf58e > .elementor-widget-container{padding:0px 0px 0px 0px;}.elementor-8031 .elementor-element.elementor-element-8cbf58e .e-filter-item{font-size:var( --e-global-typography-7b6f948-font-size );}.elementor-widget-loop-grid .elementor-pagination{font-size:var( --e-global-typography-secondary-font-size );line-height:var( --e-global-typography-secondary-line-height );}.elementor-widget-loop-grid .elementor-button{font-size:var( --e-global-typography-accent-font-size );line-height:var( --e-global-typography-accent-line-height );}.elementor-widget-loop-grid .e-load-more-message{font-size:var( --e-global-typography-secondary-font-size );line-height:var( --e-global-typography-secondary-line-height );}.elementor-8031 .elementor-element.elementor-element-ce4c1a2{--n-tabs-title-font-size:var( --e-global-typography-7b6f948-font-size );}.elementor-8031 .elementor-element.elementor-element-f123654{--e-filter-justify-content:flex-end;--e-filter-item-width:initial;--e-filter-item-flex-grow:0;--container-widget-width:0px;--container-widget-flex-grow:0;width:var( --container-widget-width, 0px );max-width:0px;top:0%;}.elementor-8031 .elementor-element.elementor-element-f123654 > .elementor-widget-container{padding:0px 0px 0px 0px;}.elementor-8031 .elementor-element.elementor-element-f123654 .e-filter-item{font-size:var( --e-global-typography-7b6f948-font-size );}}@media(max-width:1200px){.elementor-8031 .elementor-element.elementor-element-eb0adeb{--margin-top:40px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;}.elementor-8031 .elementor-element.elementor-element-72ad8a6{--margin-top:40px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;}.elementor-8031 .elementor-element.elementor-element-27fe170{--grid-columns:3;}.elementor-8031 .elementor-element.elementor-element-43f528c{--grid-columns:3;}}@media(max-width:1024px){.elementor-8031 .elementor-element.elementor-element-a2c65c8 .e-filter-item{font-size:var( --e-global-typography-7b6f948-font-size );}.elementor-widget-nested-tabs{--n-tabs-title-font-size:var( --e-global-typography-accent-font-size );}.elementor-widget-nested-tabs.elementor-widget-n-tabs > .elementor-widget-container > .e-n-tabs > .e-n-tabs-heading > :is( .e-n-tab-title > .e-n-tab-title-text, .e-n-tab-title ){line-height:var( --e-global-typography-accent-line-height );}.elementor-8031 .elementor-element.elementor-element-8cbf58e .e-filter-item{font-size:var( --e-global-typography-7b6f948-font-size );}.elementor-widget-loop-grid .elementor-pagination{font-size:var( --e-global-typography-secondary-font-size );line-height:var( --e-global-typography-secondary-line-height );}.elementor-widget-loop-grid .elementor-button{font-size:var( --e-global-typography-accent-font-size );line-height:var( --e-global-typography-accent-line-height );}.elementor-widget-loop-grid .e-load-more-message{font-size:var( --e-global-typography-secondary-font-size );line-height:var( --e-global-typography-secondary-line-height );}.elementor-8031 .elementor-element.elementor-element-27fe170{--grid-columns:2;}.elementor-8031 .elementor-element.elementor-element-bbf2603{--grid-columns:1;}.elementor-8031 .elementor-element.elementor-element-ce4c1a2{--n-tabs-title-font-size:var( --e-global-typography-7b6f948-font-size );}.elementor-8031 .elementor-element.elementor-element-43f528c{--grid-columns:2;}.elementor-8031 .elementor-element.elementor-element-43f528c > .elementor-widget-container{margin:40px 0px 70px 0px;}.elementor-8031 .elementor-element.elementor-element-f123654 .e-filter-item{font-size:var( --e-global-typography-7b6f948-font-size );}}@media(max-width:767px){.elementor-8031 .elementor-element.elementor-element-a2c65c8 .e-filter-item{font-size:var( --e-global-typography-7b6f948-font-size );}.elementor-widget-nested-tabs{--n-tabs-title-font-size:var( --e-global-typography-accent-font-size );}.elementor-widget-nested-tabs.elementor-widget-n-tabs > .elementor-widget-container > .e-n-tabs > .e-n-tabs-heading > :is( .e-n-tab-title > .e-n-tab-title-text, .e-n-tab-title ){line-height:var( --e-global-typography-accent-line-height );}.elementor-8031 .elementor-element.elementor-element-8cbf58e .e-filter-item{font-size:var( --e-global-typography-7b6f948-font-size );}.elementor-widget-loop-grid .elementor-pagination{font-size:var( --e-global-typography-secondary-font-size );line-height:var( --e-global-typography-secondary-line-height );}.elementor-widget-loop-grid .elementor-button{font-size:var( --e-global-typography-accent-font-size );line-height:var( --e-global-typography-accent-line-height );}.elementor-widget-loop-grid .e-load-more-message{font-size:var( --e-global-typography-secondary-font-size );line-height:var( --e-global-typography-secondary-line-height );}.elementor-8031 .elementor-element.elementor-element-27fe170{--grid-columns:1;}.elementor-8031 .elementor-element.elementor-element-bbf2603{--grid-columns:1;}.elementor-8031 .elementor-element.elementor-element-ce4c1a2{--n-tabs-title-font-size:var( --e-global-typography-7b6f948-font-size );}.elementor-8031 .elementor-element.elementor-element-43f528c{--grid-columns:1;}.elementor-8031 .elementor-element.elementor-element-43f528c > .elementor-widget-container{margin:0px 0px 0100px 0px;}.elementor-8031 .elementor-element.elementor-element-f123654 .e-filter-item{font-size:var( --e-global-typography-7b6f948-font-size );}}/* Start custom CSS for container, class: .elementor-element-eb0adeb *//* 1) contenedor que agrupa Tabs + filtro visible */
#tabs-block{ position: relative; }

/* 2) fila de títulos del widget Tabs (GRID | LIST) */
#tabs-block .e-n-tabs-heading{
  display: flex;
  align-items: center;
  min-height: 48px;
  padding-right: clamp(220px, 28vw, 560px); /* hueco reservado para el filtro */
}

/* 3) filtro visible anclado a la derecha de la misma fila */
#tax-filter-list{
  position: absolute;
  right: 0;
  top: 0;
  height: 48px;
  display: flex; align-items: center; gap: 18px;
  margin: 0; background: transparent;
}

/* 4) filtro gemelo oculto (deja su HTML en el DOM) */
#tax-filter-grid{
  position: absolute; width:1px; height:1px;
  overflow: hidden; clip-path: inset(50%);
  white-space: nowrap;
}

/* 5) si Elementor hace scroll al grid, que no lo tape nada */
#results-wrap{ scroll-margin-top: 64px; }

/* 6) responsive: en móvil el filtro cae debajo del .elementor-8031 .elementor-element.elementor-element-eb0adeb de tabs */
@media (max-width: 768px){
  #tabs-block .e-n-tabs-heading{ padding-right: 0; min-height: 44px; }
  #tax-filter-list{ position: static; margin-top: 8px; flex-wrap: wrap; gap: 12px; }
}/* End custom CSS */
/* Start custom CSS for taxonomy-filter, class: .elementor-element-a2c65c8 */.elementor-8031 .elementor-element.elementor-element-a2c65c8 > .elementor-widget-container {
        margin: 0px !important;
  
}/* End custom CSS */
/* Start custom CSS for taxonomy-filter, class: .elementor-element-8cbf58e */#tax-filter-grid { 
  position: absolute; 
  width: 1px; height: 1px; 
  overflow: hidden; 
  clip-path: inset(50%); 
  white-space: nowrap;
    margin: 0px !important;
   
}/* End custom CSS */
/* Start custom CSS for loop-grid, class: .elementor-element-27fe170 */.projects-loop2{
    width: 100% !important; 
}
.col-lg-3 {
    width: 100%;
}
#projects-loop2 .e-loop-item,
#projects-loop2 .elementor-grid .elementor-grid-item{
  width: 100% !important;
}/* End custom CSS */
/* Start custom CSS for loop-grid, class: .elementor-element-bbf2603 *//* --- LOOP de la Tab 1 --- */
#projects-loop .e-loop-item.col-lg-3,
#projects-loop .e-loop-item.col-md-4,
#projects-loop .e-loop-item.col-sm-6 {
  width: 100% !important;
  max-width: 100% !important;
  float: none !important;
  overflow: visible;

}

/* Fila como tabla de 4 columnas */
#projects-loop .e-loop-item{
  display: grid !important;
  grid-template-columns: 1fr 1fr 1fr 1fr;  /* Título | Tipo | Ciudad | Año */
    column-gap: 90px !important;  
    align-items: center;
    width: 100% !important;
    padding-left: 18px;
    padding-top: 15px;
    padding-bottom: 15px;
}

#projects-loop  .elementor-grid{
     grid-row-gap: 5px !important;
}
/* Aplanar wrappers para que los widgets sean celdas del grid */
#projects-loop .e-loop-item > .elementor-element{ display: contents; }

/* Quitar márgenes automáticos */
#projects-loop .e-loop-item .elementor-widget-container{ margin:0 !important; }

/* >>> Todo a la izquierda <<< */
#projects-loop .e-loop-item .elementor-widget,
#projects-loop .e-loop-item .elementor-widget *{
  text-align: left !important;
  justify-self: start !important;   /* asegura anclaje a la izquierda en Grid */
}

#projects-loop .e-loop-item.active{
  background: #000 !important;
  transition: background-color .15s ease-in-out;
}
#projects-loop .e-loop-item.active *{
  color: #fff !important;
}

@media (max-width: 1366px) {
  #projects-loop .e-loop-item{
    padding-top: 12px;
    padding-bottom: 12px;
    grid-template-columns: 2fr 1fr 1fr 1fr; 
  }
  #projects-loop  .elementor-grid{
     grid-row-gap: 3px !important;
  }
}

/* ===== Tablet Extra (≤ 1024px) ===== */
@media (max-width: 1200px) {
    #projects-loop .e-loop-item{
     grid-template-columns: 2fr 1fr 1fr 1fr; 
    padding-top: 10px;
    padding-bottom: 10px;
    column-gap: 60px !important;  
  }
  #projects-loop  .elementor-grid{
     grid-row-gap: 1px !important;
  }
  
}

/* ===== Tablet (≤ 768px) ===== */
@media (max-width: 768px) {
  #projects-loop .e-loop-item{
  
  }
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-bce2d1e */#preview-box {
  height: 70vh;
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  transition: background-image 0.4s ease-in-out;
}/* End custom CSS */
/* Start custom CSS for taxonomy-filter, class: .elementor-element-8cbf58e */#tax-filter-grid { 
  position: absolute; 
  width: 1px; height: 1px; 
  overflow: hidden; 
  clip-path: inset(50%); 
  white-space: nowrap;
    margin: 0px !important;
   
}/* End custom CSS */
/* Start custom CSS for loop-grid, class: .elementor-element-27fe170 */.projects-loop2{
    width: 100% !important; 
}
.col-lg-3 {
    width: 100%;
}
#projects-loop2 .e-loop-item,
#projects-loop2 .elementor-grid .elementor-grid-item{
  width: 100% !important;
}/* End custom CSS */
/* Start custom CSS for loop-grid, class: .elementor-element-bbf2603 *//* --- LOOP de la Tab 1 --- */
#projects-loop .e-loop-item.col-lg-3,
#projects-loop .e-loop-item.col-md-4,
#projects-loop .e-loop-item.col-sm-6 {
  width: 100% !important;
  max-width: 100% !important;
  float: none !important;
  overflow: visible;

}

/* Fila como tabla de 4 columnas */
#projects-loop .e-loop-item{
  display: grid !important;
  grid-template-columns: 1fr 1fr 1fr 1fr;  /* Título | Tipo | Ciudad | Año */
    column-gap: 90px !important;  
    align-items: center;
    width: 100% !important;
    padding-left: 18px;
    padding-top: 15px;
    padding-bottom: 15px;
}

#projects-loop  .elementor-grid{
     grid-row-gap: 5px !important;
}
/* Aplanar wrappers para que los widgets sean celdas del grid */
#projects-loop .e-loop-item > .elementor-element{ display: contents; }

/* Quitar márgenes automáticos */
#projects-loop .e-loop-item .elementor-widget-container{ margin:0 !important; }

/* >>> Todo a la izquierda <<< */
#projects-loop .e-loop-item .elementor-widget,
#projects-loop .e-loop-item .elementor-widget *{
  text-align: left !important;
  justify-self: start !important;   /* asegura anclaje a la izquierda en Grid */
}

#projects-loop .e-loop-item.active{
  background: #000 !important;
  transition: background-color .15s ease-in-out;
}
#projects-loop .e-loop-item.active *{
  color: #fff !important;
}

@media (max-width: 1366px) {
  #projects-loop .e-loop-item{
    padding-top: 12px;
    padding-bottom: 12px;
    grid-template-columns: 2fr 1fr 1fr 1fr; 
  }
  #projects-loop  .elementor-grid{
     grid-row-gap: 3px !important;
  }
}

/* ===== Tablet Extra (≤ 1024px) ===== */
@media (max-width: 1200px) {
    #projects-loop .e-loop-item{
     grid-template-columns: 2fr 1fr 1fr 1fr; 
    padding-top: 10px;
    padding-bottom: 10px;
    column-gap: 60px !important;  
  }
  #projects-loop  .elementor-grid{
     grid-row-gap: 1px !important;
  }
  
}

/* ===== Tablet (≤ 768px) ===== */
@media (max-width: 768px) {
  #projects-loop .e-loop-item{
  
  }
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-bce2d1e */#preview-box {
  height: 70vh;
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  transition: background-image 0.4s ease-in-out;
}/* End custom CSS */
/* Start custom CSS for taxonomy-filter, class: .elementor-element-8cbf58e */#tax-filter-grid { 
  position: absolute; 
  width: 1px; height: 1px; 
  overflow: hidden; 
  clip-path: inset(50%); 
  white-space: nowrap;
    margin: 0px !important;
   
}/* End custom CSS */
/* Start custom CSS for loop-grid, class: .elementor-element-27fe170 */.projects-loop2{
    width: 100% !important; 
}
.col-lg-3 {
    width: 100%;
}
#projects-loop2 .e-loop-item,
#projects-loop2 .elementor-grid .elementor-grid-item{
  width: 100% !important;
}/* End custom CSS */
/* Start custom CSS for loop-grid, class: .elementor-element-bbf2603 *//* --- LOOP de la Tab 1 --- */
#projects-loop .e-loop-item.col-lg-3,
#projects-loop .e-loop-item.col-md-4,
#projects-loop .e-loop-item.col-sm-6 {
  width: 100% !important;
  max-width: 100% !important;
  float: none !important;
  overflow: visible;

}

/* Fila como tabla de 4 columnas */
#projects-loop .e-loop-item{
  display: grid !important;
  grid-template-columns: 1fr 1fr 1fr 1fr;  /* Título | Tipo | Ciudad | Año */
    column-gap: 90px !important;  
    align-items: center;
    width: 100% !important;
    padding-left: 18px;
    padding-top: 15px;
    padding-bottom: 15px;
}

#projects-loop  .elementor-grid{
     grid-row-gap: 5px !important;
}
/* Aplanar wrappers para que los widgets sean celdas del grid */
#projects-loop .e-loop-item > .elementor-element{ display: contents; }

/* Quitar márgenes automáticos */
#projects-loop .e-loop-item .elementor-widget-container{ margin:0 !important; }

/* >>> Todo a la izquierda <<< */
#projects-loop .e-loop-item .elementor-widget,
#projects-loop .e-loop-item .elementor-widget *{
  text-align: left !important;
  justify-self: start !important;   /* asegura anclaje a la izquierda en Grid */
}

#projects-loop .e-loop-item.active{
  background: #000 !important;
  transition: background-color .15s ease-in-out;
}
#projects-loop .e-loop-item.active *{
  color: #fff !important;
}

@media (max-width: 1366px) {
  #projects-loop .e-loop-item{
    padding-top: 12px;
    padding-bottom: 12px;
    grid-template-columns: 2fr 1fr 1fr 1fr; 
  }
  #projects-loop  .elementor-grid{
     grid-row-gap: 3px !important;
  }
}

/* ===== Tablet Extra (≤ 1024px) ===== */
@media (max-width: 1200px) {
    #projects-loop .e-loop-item{
     grid-template-columns: 2fr 1fr 1fr 1fr; 
    padding-top: 10px;
    padding-bottom: 10px;
    column-gap: 60px !important;  
  }
  #projects-loop  .elementor-grid{
     grid-row-gap: 1px !important;
  }
  
}

/* ===== Tablet (≤ 768px) ===== */
@media (max-width: 768px) {
  #projects-loop .e-loop-item{
  
  }
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-bce2d1e */#preview-box {
  height: 70vh;
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  transition: background-image 0.4s ease-in-out;
}/* End custom CSS */
/* Start custom CSS for loop-grid, class: .elementor-element-43f528c */.projects-loop2{
    width: 100% !important; 
}
.col-lg-3 {
    width: 100%;
}
#projects-loop2 .e-loop-item,
#projects-loop2 .elementor-grid .elementor-grid-item{
  width: 100% !important;
}/* End custom CSS */
/* Start custom CSS for taxonomy-filter, class: .elementor-element-f123654 */#tax-filter-grid2 { 
  display: none;
   
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-72ad8a6 *//* 1) contenedor que agrupa Tabs + filtro visible */
#tabs-block{ position: relative; }

/* 2) fila de títulos del widget Tabs (GRID | LIST) */
#tabs-block .e-n-tabs-heading{
  display: flex;
  align-items: center;
  min-height: 48px;
  padding-right: clamp(220px, 28vw, 560px); /* hueco reservado para el filtro */
}

/* 3) filtro visible anclado a la derecha de la misma fila */
#tax-filter-list{
  position: absolute;
  right: 0;
  top: 0;
  height: 48px;
  display: flex; align-items: center; gap: 18px;
  margin: 0; background: transparent;
}

/* 4) filtro gemelo oculto (deja su HTML en el DOM) */
#tax-filter-grid{
  position: absolute; width:1px; height:1px;
  overflow: hidden; clip-path: inset(50%);
  white-space: nowrap;
}

/* 5) si Elementor hace scroll al grid, que no lo tape nada */
#results-wrap{ scroll-margin-top: 64px; }

/* 6) responsive: en móvil el filtro cae debajo del .elementor-8031 .elementor-element.elementor-element-72ad8a6 de tabs */
@media (max-width: 768px){
  #tabs-block .e-n-tabs-heading{ padding-right: 0; min-height: 44px; }
  #tax-filter-list{ position: static; margin-top: 8px; flex-wrap: wrap; gap: 12px; }
}/* End custom CSS */
/* Start custom CSS *//* Oculta la scrollbar, pero mantiene el scroll funcional */
html, body{ 
  -ms-overflow-style: none;   /* IE/Edge antiguo */
  scrollbar-width: none;      /* Firefox */
}
html::-webkit-scrollbar,
body::-webkit-scrollbar{
  width: 0;
  height: 0;
}

/* (Recomendado igualmente) reserva espacio estable cuando exista */
html{ scrollbar-gutter: stable both-edges; }


/* ============ GRID (Tab 1) ============ */

/* A) Anula lo que reinyecta el filtro (masonry, margin-bottom, position, etc.) */
/* Quitar gutters que aparecen tras filtrar (solo en el GRID) */
#projects-loop2 .row,
#projects-loop2 [class^="col-"],
#projects-loop2 [class*=" col-"]{
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin-left: 0 !important;   /* por si el filtro usa filas con márgenes negativos */
  margin-right: 0 !important;
  box-sizing: border-box;       /* estabilidad */
}

/* Si también quieres cubrir el otro loop (LIST) por si acaso */
#projects-loop .row,
#projects-loop [class^="col-"],
#projects-loop [class*=" col-"]{
  padding-right: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}/* End custom CSS */