/* 
Theme Name: Hello Elementor Child
Theme URI: https://github.com/elementor/hello-theme/
Description: Hello Elementor Child is a child theme of Hello Elementor, created by Elementor team
Author: Elementor Team
Author URI: https://elementor.com/
Template: hello-elementor
Version: 1.0.1
Text Domain: hello-elementor-child
License: GNU General Public License v3 or later.
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Tags: flexible-header, custom-colors, custom-menu, custom-logo, editor-style, featured-images, rtl-language-support, threaded-comments, translation-ready
*/

/*
    Add your custom styles here
*/
.dialog-lightbox-widget{z-index: 999999999999}
#content{overflow-x: hidden;   overflow-y: clip;}
h1 span,
h2 span{color: #B4BD00; font-weight: 700}

.elementor-location-header .elementor-sticky .elementor-widget-theme-site-logo{transition: 0.3s all}
.elementor-location-header .elementor-sticky.elementor-sticky--active .elementor-widget-theme-site-logo{width: 130px}

.elementor-location-header .elementor-sticky.elementor-sticky--active{background: #121212; min-height: 0}

.elementor-location-header a:hover{font-weight: 700 !Important}
.carrusel-logos img{  
    filter: saturate(0);
  height: 100px !important;
  width: 100%;
  object-fit: contain;
  object-position: center;}
.carrusel-logos img:hover{filter: saturate(1)}
.carrusel-logos .swiper-wrapper {
    transition-timing-function: linear !important;
    -webkit-transition-timing-function: linear !important;
}

.carrusel-logos .swiper-slide {
    flex-shrink: 0;
}

.btn-moloon .elementor-button-text{display: flex;align-items: end;}
.footer-container > div{position: relative}

.carousel-vertical .slick-track{
  transition-timing-function: linear !important;
}
.carousel-reverse .slick-list {
  transform: rotate(180deg);
}

.carousel-reverse .slick-slide {
  transform: rotate(180deg);
}

@media (min-width: 768px) {
  .margin-left {
    padding-left: max(calc((100vw - 1400px) / 2), 0px);
  }
}

.card-hover {
  position: relative;
  overflow: hidden;
  cursor: pointer;
}

.card-hover .card-title {
  position: relative;
  z-index: 2;
}

.card-hover .card-desc {
  opacity: 0;
  visibility: hidden;
  max-height: 0;
  transform: translateY(18px);
  overflow: hidden;
  transition: 
    opacity 0.35s ease,
    visibility 0.35s ease,
    max-height 0.35s ease,
    transform 0.35s ease;
}

.card-hover:hover .card-desc {
  opacity: 1;
  visibility: visible;
  max-height: 200px;
  transform: translateY(0);
}


/*MENU*/

.mega-productos-dropdown {
    width: min(1400px, calc(100vw - 40px));
    background: #fff;
    border-radius: 36px;
    padding: 42px 44px;
    display: grid;
    grid-template-columns: 640px 1fr;
    gap: 44px;
    align-items: stretch;
}

.mega-productos-dropdown__auto {
    min-width: 0;
}

.mega-productos-dropdown__manual {
    min-width: 0;
}
.mc-menu-productos-auto {
    display: grid;
    grid-template-columns: 240px 1fr;
    gap: 44px;
    align-items: start;
}

.mc-menu-productos-auto__title {
    font-size: 40px;
    line-height: 1.1;
    font-weight: 700;
    margin: 0 0 24px;
    color: #121212;
}

.mc-menu-productos-auto__cat {
    display: block;
    font-size: 1em;
    line-height: 1.35;
    color: #121212;
    text-decoration: none;
    font-weight: 400;
    margin-bottom: 12px;
}

.mc-menu-productos-auto__cat:hover,
.mc-menu-productos-auto__cat.is-active,
.mc-menu-productos-auto__cat.is-current-parent {
    font-weight: 700;
    color: #121212;
}

.mc-menu-productos-auto__panel {
    display: none;
}

.mc-menu-productos-auto__panel.is-active {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.mc-menu-productos-auto__view-all,
.mc-menu-productos-auto__subcat {
    display: block;
    font-size: 1em;
    line-height: 1.35;
    color: #121212;
    text-decoration: none;
}

.mc-menu-productos-auto__view-all {
    text-decoration: underline !Important;
 
}

.mc-menu-productos-auto__subcat:hover,
.mc-menu-productos-auto__subcat.is-current {
    font-weight: 700;
    color: #121212;
}

.productos-menu-container{
width: 1400px !important;
  left: 50% !important;
  transform: translateX(-50%);
}
.elementor-location-header .e-n-menu-dropdown-icon{  position: absolute !important;
  left: 50%;
  transform: translateX(-50%) !important;
  top: 30px;}
/* Menú padre en negrita cuando su submenu está desplegado */
.e-n-menu-title  .e-n-menu-title-text:hover,
.e-n-menu-item:has(.e-n-menu-dropdown-icon[aria-expanded="true"]) > .e-n-menu-title .e-n-menu-title-text,
.e-current.e-n-menu-title .e-n-menu-title-text,
.single-producto .e-n-menu-title#productos-menu .e-n-menu-title-text,
.tax-categoria-producto .e-n-menu-title#productos-menu .e-n-menu-title-text,
.page-id-211 .e-n-menu-title#servicios-menu .e-n-menu-title-text,
.page-id-597 .e-n-menu-title#servicios-menu .e-n-menu-title-text,
.page-id-640 .e-n-menu-title#servicios-menu .e-n-menu-title-text,
.page-id-597 .servicios-container .elementor-icon-list-items li:nth-child(2) a,
.page-id-211 .servicios-container .elementor-icon-list-items li:nth-child(1) a,
.page-id-640 .servicios-container .elementor-icon-list-items li:nth-child(3) a{
    font-weight: 700 !Important;
}
.e-n-menu-title{cursor: pointer}
.e-n-menu-title::before {
    font-family: "Font Awesome 5 Free";
  font-weight: 900;
  content: "\f04d";
  position: absolute;
  bottom: -11px;
  left: 50%;
  transform: translateX(-50%);
    opacity: 0;
    font-size: 14px
}
.e-n-menu-item:has(.e-n-menu-dropdown-icon[aria-expanded="true"]) > .e-n-menu-title::before,
.e-n-menu-title:hover::before,
.e-current.e-n-menu-title::before,
.single-producto .e-n-menu-title#productos-menu::before,
.tax-categoria-producto .e-n-menu-title#productos-menu::before,
.page-id-211 .e-n-menu-title#servicios-menu::before,
.page-id-597 .e-n-menu-title#servicios-menu::before,
.page-id-640 .e-n-menu-title#servicios-menu::before{opacity: 1}
.mc-menu-productos-auto__cat-img{width: 18px}
.mc-menu-productos-auto__cat{  display: flex;  gap: 10px;}
.mc-menu-productos-auto__cat-icon{line-height: 18px; display: none}
.is-current-parent .mc-menu-productos-auto__cat-icon,
.mc-menu-productos-auto__cat:hover .mc-menu-productos-auto__cat-icon{display: block}

.single-producto .elementor-location-header .elementor-sticky:not(.elementor-sticky--active) .e-n-menu-title::before,
.single-producto .elementor-location-header .elementor-sticky:not(.elementor-sticky--active) .e-n-menu a,
.single-producto .elementor-location-header .elementor-sticky:not(.elementor-sticky--active)  .e-n-menu span{color: #000 !Important}

@media (max-width: 767px) {

    .productos-menu-container {
        left: 50% !important;
        transform: translateX(-50%) !important;
    }

    .mega-productos-dropdown {
        display: block;
        width: 100%;
        padding: 20px;
        border-radius: 20px;

        max-height: calc(100dvh - 90px);
        overflow-y: auto;
        overflow-x: hidden;
    }

    .mc-menu-productos-auto {
        display: block;
    }

    .mc-menu-productos-auto__cats {
        display: flex;
        flex-direction: column;
        width: 100%;
        gap: 0;
    }

    .mc-menu-productos-auto__cat {
        position: relative;
        display: flex;
        align-items: center;
        width: 100%;
        gap: 10px;
        margin: 0;
        padding: 14px 34px 14px 0;
        
        font-size: 16px;
        line-height: 1.3;
    }

    /* Flecha del desplegable */
    .mc-menu-productos-auto__cat::after {
        content: "";
        position: absolute;
        right: 4px;
        top: 50%;
        width: 8px;
        height: 8px;

        border-right: 2px solid currentColor;
        border-bottom: 2px solid currentColor;

        transform: translateY(-65%) rotate(45deg);
        transition: transform 0.2s ease;
    }

    .mc-menu-productos-auto__cat.is-active::after {
        transform: translateY(-30%) rotate(225deg);
    }

    .mc-menu-productos-auto__cat-icon {
        display: block;
        flex: 0 0 auto;
        line-height: 1;
    }

    .mc-menu-productos-auto__cat-img {
        display: block;
        width: 18px;
        height: 18px;
        object-fit: contain;
    }

    /*
     * Los paneles se moverán mediante JavaScript
     * debajo de su categoría correspondiente.
     */
    .mc-menu-productos-auto__panel {
        display: none;
        width: 100%;
        padding: 14px 16px 18px;
        
        border-bottom: 1px solid #dedede;
    }

    .mc-menu-productos-auto__panel.is-active {
        display: flex;
        flex-direction: column;
        gap: 12px;
    }

    .mc-menu-productos-auto__view-all,
    .mc-menu-productos-auto__subcat {
        display: block;
        width: 100%;
        font-size: 15px;
        line-height: 1.4;
    }

    .mc-menu-productos-auto__view-all {
        font-weight: 700;
        text-decoration: underline !important;
    }

    /*
     * El contenedor original de paneles queda vacío
     * cuando JavaScript los mueve al acordeón.
     */
    .mc-menu-productos-auto__subcats {
        display: none;
    }

    .mega-productos-dropdown__manual {
        margin-top: 24px;
        padding-top: 24px;
        border-top: 1px solid #dedede;
    }
}
/*FIN MENU*/


.card-hover .elementor-icon-box-description {
    opacity: 0;
    visibility: hidden;
    max-height: 0;
    overflow: hidden;
    margin: 0;
    transform: translateY(10px);
    transition:
        opacity 0.3s ease,
        transform 0.3s ease,
        max-height 0.3s ease;
}

.card-hover:hover .elementor-icon-box-description,
.card-hover:focus-within .elementor-icon-box-description {
    opacity: 1;
    visibility: visible;
    max-height: 150px;
    transform: translateY(0);
    margin-top: 10px;
}
.card-hover-color:hover .elementor-icon-box-description{color: #fff}
.e-hotspot__tooltip.e-hotspot--tooltip-position p{  white-space: break-spaces !Important;}

.listado-subcategorias{display: flex; gap:20px}
.listado-subcategorias__item{

  color: #121212;
  border: 2px solid #121212;
  border-radius: 50px;
  padding: 7px 14px;
  font-weight: 500;
}
.listado-subcategorias__item.is-current,
.listado-subcategorias__item:hover{color: #fff; border: 2px solid #B4BD00; background: #B4BD00}


.carousel-proyectos .swiper-slide .elementor-cta__bg-overlay::after {
   content: '';
    border-radius: 20px;
  background: linear-gradient(180deg, #00000000 20%, #1212126 79%) !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
    z-index: 1
}

.carousel-proyectos h3 strong{font-weight: 700}

.mc-campana-card {
    display: flex;
    flex-direction: column;
    height: 100%;
}

/* Texto inicialmente oculto */
/* Estado cerrado: mostrar solo la primera línea */
.mc-campana-card__extra .elementor-widget-container,
.mc-campana-card__extra .elementor-text-editor,
.mc-campana-card__extra p {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 1;
    line-clamp: 1;
    overflow: hidden;
}

/* Estado abierto: mostrar todo el texto */
.mc-campana-card.is-open .mc-campana-card__extra .elementor-widget-container,
.mc-campana-card.is-open .mc-campana-card__extra .elementor-text-editor,
.mc-campana-card.is-open .mc-campana-card__extra p {
    display: block;
    -webkit-line-clamp: unset;
    line-clamp: unset;
    overflow: visible;
}

.mc-campana-card__extra p {
    margin-bottom: 0;
}
/* Mantiene el botón abajo */
.mc-campana-card__toggle {
    margin-top: auto;
}

/* Flecha */
.mc-campana-card__toggle .elementor-button-icon {
    transition: transform 0.25s ease;
}

.mc-campana-card.is-open
.mc-campana-card__toggle .elementor-button-icon {
    transform: rotate(180deg);
}


/* Contenido oculto por defecto */
.cta-hover .elementor-cta__description,
.cta-hover .elementor-cta__button-wrapper {
    opacity: 0;
    max-height: 0;
    overflow: hidden;
    transform: translateY(15px);
    transition:
        opacity 0.3s ease,
        transform 0.3s ease,
        max-height 0.4s ease;
}

/* Mostrar contenido al hacer hover */
.cta-hover:hover .elementor-cta__description,
.cta-hover:hover .elementor-cta__button-wrapper {
    opacity: 1;
    max-height: 300px;
    transform: translateY(0);
}

/* El título permanece siempre visible */
.cta-hover .elementor-cta__title {
    opacity: 1;
}


/* Indicar que el título puede pulsarse */
.toggle-panel-title {
    cursor: pointer;
}

/* Opcional: estado activo del CTA */
.toggle-trigger {
    transition: opacity 0.25s ease;
}

.toggle-trigger.is-active {
    opacity: 0.7;
}
.close-trigger{cursor: pointer}

@media(max-width:1024px){
    .e-n-menu-title::before{display: none}
    .elementor-location-header .e-n-menu-toggle:hover{background: transparent !Important; border: 0 !Important}
    .elementor-location-header .e-n-menu-wrapper .e-n-menu-title{background: #121212 !Important}
    body.single-producto .elementor-sticky:not(.elementor-sticky--active)  .e-n-menu-wrapper .e-n-menu-title{background: #fff !Important}
    .single-producto .elementor-location-header .elementor-sticky:not(.elementor-sticky--active) .e-n-menu-toggle svg{fill: #121212}
/*    body.single-producto .elementor-location-header .elementor-sticky:not(.elementor-sticky--active) .e-n-menu-title::before, 
    body.single-producto .elementor-location-header .elementor-sticky:not(.elementor-sticky--active) .e-n-menu a, 
    body.single-producto .elementor-location-header .elementor-sticky:not(.elementor-sticky--active) .e-n-menu span:not(.mc-menu-productos-auto__cat-name),
    body.single-producto .elementor-location-header .elementor-sticky:not(.elementor-sticky--active) .e-n-menu span:not(.mc-menu-productos-auto__cat-name) {color: #fff !Important}
    body.single-producto .elementor-location-header .elementor-sticky:not(.elementor-sticky--active) .e-n-menu .mc-menu-productos-auto__panel a{color: #121212 !Important}
    */
    
}
@media(max-width:769px){
    h1 br,
    h2 br,
    h3 br,
    .hidden-br br{display: none !Important}
    .e-n-menu-content.e-active>div{width: 100vw !Important}
    .hablamos-footer{
  position: relative !Important;
  right: auto !Important;}
    .card-mov > div {position: relative !Important;  bottom: auto !Important; top: auto !Important; right: auto !Important; left: auto !Important; margin-bottom: -60px !Important}
    .card-mov > div:nth-child(odd){margin-left: 0;margin-right: auto !Important;}
    .card-mov > div:nth-child(even){margin-right: 0;margin-left: auto !Important;}
    
}