.elementor-223 .elementor-element.elementor-element-bc6f7d7{--display:flex;--min-height:464px;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--justify-content:space-between;--gap:14px 14px;--row-gap:14px;--column-gap:14px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:20px;--padding-bottom:20px;--padding-left:20px;--padding-right:20px;}.elementor-widget-image .widget-image-caption{color:var( --e-global-color-text );font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );}.elementor-223 .elementor-element.elementor-element-fb82786{width:100%;max-width:100%;top:-1px;}body:not(.rtl) .elementor-223 .elementor-element.elementor-element-fb82786{left:0px;}body.rtl .elementor-223 .elementor-element.elementor-element-fb82786{right:0px;}.elementor-223 .elementor-element.elementor-element-fb82786 img{width:100%;height:464px;object-fit:cover;object-position:center center;}.elementor-223 .elementor-element.elementor-element-3a8ede6{--display:flex;--z-index:5;}.elementor-widget-heading .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-size:var( --e-global-typography-primary-font-size );font-weight:var( --e-global-typography-primary-font-weight );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );color:var( --e-global-color-primary );}.elementor-223 .elementor-element.elementor-element-277050e{width:auto;max-width:auto;z-index:5;text-align:start;}.elementor-223 .elementor-element.elementor-element-277050e > .elementor-widget-container{background-color:var( --e-global-color-accent );padding:6px 14px 6px 14px;}.elementor-223 .elementor-element.elementor-element-277050e.elementor-element{--align-self:flex-start;}.elementor-223 .elementor-element.elementor-element-277050e .elementor-heading-title{font-family:"Cormorant Upright", Sans-serif;font-size:14px;font-weight:400;line-height:20px;letter-spacing:-0.16px;color:#3E4827;}.elementor-223 .elementor-element.elementor-element-1b2ccdb{--display:flex;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-223 .elementor-element.elementor-element-0d359a9{z-index:5;text-align:start;}.elementor-223 .elementor-element.elementor-element-1c7303a > .elementor-widget-container{margin:7px 0px 10px 0px;padding:0px 0px 0px 0px;}.elementor-223 .elementor-element.elementor-element-1c7303a .elementor-heading-title{font-family:"Forum", Sans-serif;font-size:18px;font-weight:400;line-height:28px;letter-spacing:-0.2px;color:var( --e-global-color-accent );}.elementor-223 .elementor-element.elementor-element-20e18ab{--display:flex;}.elementor-widget-icon-list .elementor-icon-list-item:not(:last-child):after{border-color:var( --e-global-color-text );}.elementor-widget-icon-list .elementor-icon-list-icon i{color:var( --e-global-color-primary );}.elementor-widget-icon-list .elementor-icon-list-icon svg{fill:var( --e-global-color-primary );}.elementor-widget-icon-list .elementor-icon-list-item > .elementor-icon-list-text, .elementor-widget-icon-list .elementor-icon-list-item > a{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );}.elementor-widget-icon-list .elementor-icon-list-text{color:var( --e-global-color-secondary );}.elementor-223 .elementor-element.elementor-element-04016d8{z-index:5;--e-icon-list-icon-size:22px;--icon-vertical-offset:0px;}.elementor-223 .elementor-element.elementor-element-04016d8 .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:last-child){padding-block-end:calc(35px/2);}.elementor-223 .elementor-element.elementor-element-04016d8 .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:first-child){margin-block-start:calc(35px/2);}.elementor-223 .elementor-element.elementor-element-04016d8 .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item{margin-inline:calc(35px/2);}.elementor-223 .elementor-element.elementor-element-04016d8 .elementor-icon-list-items.elementor-inline-items{margin-inline:calc(-35px/2);}.elementor-223 .elementor-element.elementor-element-04016d8 .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item:after{inset-inline-end:calc(-35px/2);}.elementor-223 .elementor-element.elementor-element-04016d8 .elementor-icon-list-item:not(:last-child):after{content:"";height:74%;border-color:#FFFFFF33;}.elementor-223 .elementor-element.elementor-element-04016d8 .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:last-child):after{border-block-start-style:solid;border-block-start-width:1px;}.elementor-223 .elementor-element.elementor-element-04016d8 .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item:not(:last-child):after{border-inline-start-style:solid;}.elementor-223 .elementor-element.elementor-element-04016d8 .elementor-inline-items .elementor-icon-list-item:not(:last-child):after{border-inline-start-width:1px;}.elementor-223 .elementor-element.elementor-element-04016d8 .elementor-icon-list-icon i{color:#FFFFFF;transition:color 0.3s;}.elementor-223 .elementor-element.elementor-element-04016d8 .elementor-icon-list-icon svg{fill:#FFFFFF;transition:fill 0.3s;}.elementor-223 .elementor-element.elementor-element-04016d8 .elementor-icon-list-icon{padding-inline-end:4px;}.elementor-223 .elementor-element.elementor-element-04016d8 .elementor-icon-list-item > .elementor-icon-list-text, .elementor-223 .elementor-element.elementor-element-04016d8 .elementor-icon-list-item > a{font-family:"Forum", Sans-serif;font-size:14px;font-weight:400;line-height:20px;letter-spacing:-0.16px;}.elementor-223 .elementor-element.elementor-element-04016d8 .elementor-icon-list-text{color:#FFFFFF;transition:color 0.3s;}.elementor-223 .elementor-element.elementor-element-6dde913{--display:flex;--min-height:40px;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:center;--align-items:center;--gap:8px 8px;--row-gap:8px;--column-gap:8px;}.elementor-223 .elementor-element.elementor-element-6dde913:not(.elementor-motion-effects-element-type-background), .elementor-223 .elementor-element.elementor-element-6dde913 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#FFFFFF;}.elementor-widget-icon.elementor-view-stacked .elementor-icon{background-color:var( --e-global-color-primary );}.elementor-widget-icon.elementor-view-framed .elementor-icon, .elementor-widget-icon.elementor-view-default .elementor-icon{color:var( --e-global-color-primary );border-color:var( --e-global-color-primary );}.elementor-widget-icon.elementor-view-framed .elementor-icon, .elementor-widget-icon.elementor-view-default .elementor-icon svg{fill:var( --e-global-color-primary );}.elementor-223 .elementor-element.elementor-element-357c253 > .elementor-widget-container{margin:0px 0px -5px 0px;padding:0px 0px 0px 0px;}.elementor-223 .elementor-element.elementor-element-357c253.elementor-element{--align-self:center;}.elementor-223 .elementor-element.elementor-element-357c253 .elementor-icon-wrapper{text-align:center;}.elementor-223 .elementor-element.elementor-element-357c253 .elementor-icon{font-size:20px;}.elementor-223 .elementor-element.elementor-element-357c253 .elementor-icon svg{height:20px;}.elementor-223 .elementor-element.elementor-element-f8599c7.elementor-element{--align-self:center;}.elementor-223 .elementor-element.elementor-element-f8599c7 .elementor-heading-title{font-family:"Forum", Sans-serif;font-size:14px;font-weight:400;line-height:20px;letter-spacing:-0.16px;}.elementor-223 .elementor-element.elementor-element-dedf210{width:100%;max-width:100%;top:0px;}body:not(.rtl) .elementor-223 .elementor-element.elementor-element-dedf210{left:0px;}body.rtl .elementor-223 .elementor-element.elementor-element-dedf210{right:0px;}.elementor-223 .elementor-element.elementor-element-dedf210 img{width:100%;height:464px;object-fit:cover;object-position:center center;}@media(min-width:768px){.elementor-223 .elementor-element.elementor-element-6dde913{--width:129px;}}@media(max-width:1366px){.elementor-widget-image .widget-image-caption{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );}.elementor-widget-heading .elementor-heading-title{font-size:var( --e-global-typography-primary-font-size );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );}.elementor-widget-icon-list .elementor-icon-list-item > .elementor-icon-list-text, .elementor-widget-icon-list .elementor-icon-list-item > a{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );}}@media(max-width:1024px){.elementor-widget-image .widget-image-caption{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );}.elementor-widget-heading .elementor-heading-title{font-size:var( --e-global-typography-primary-font-size );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );}.elementor-widget-icon-list .elementor-icon-list-item > .elementor-icon-list-text, .elementor-widget-icon-list .elementor-icon-list-item > a{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );}}@media(max-width:767px){.elementor-223 .elementor-element.elementor-element-bc6f7d7{--min-height:345px;}.elementor-widget-image .widget-image-caption{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );}.elementor-223 .elementor-element.elementor-element-fb82786 img{height:345px;}.elementor-widget-heading .elementor-heading-title{font-size:var( --e-global-typography-primary-font-size );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );}.elementor-223 .elementor-element.elementor-element-1c7303a .elementor-heading-title{font-size:14px;line-height:16px;}.elementor-widget-icon-list .elementor-icon-list-item > .elementor-icon-list-text, .elementor-widget-icon-list .elementor-icon-list-item > a{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );}.elementor-223 .elementor-element.elementor-element-04016d8 .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:last-child){padding-block-end:calc(16px/2);}.elementor-223 .elementor-element.elementor-element-04016d8 .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:first-child){margin-block-start:calc(16px/2);}.elementor-223 .elementor-element.elementor-element-04016d8 .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item{margin-inline:calc(16px/2);}.elementor-223 .elementor-element.elementor-element-04016d8 .elementor-icon-list-items.elementor-inline-items{margin-inline:calc(-16px/2);}.elementor-223 .elementor-element.elementor-element-04016d8 .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item:after{inset-inline-end:calc(-16px/2);}.elementor-223 .elementor-element.elementor-element-dedf210 img{height:345px;}}@media(min-width:2400px){.elementor-widget-image .widget-image-caption{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );}.elementor-widget-heading .elementor-heading-title{font-size:var( --e-global-typography-primary-font-size );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );}.elementor-widget-icon-list .elementor-icon-list-item > .elementor-icon-list-text, .elementor-widget-icon-list .elementor-icon-list-item > a{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );}}/* Start custom CSS for container, class: .elementor-element-bc6f7d7 *//* =========================================================
   CARD PROYECTO — listing de proyectos (ISOLA)
   ========================================================= */

.cardproyecto {
    position: relative;
    overflow: hidden;
    isolation: isolate;
}

/* ---------- Imágenes (cambio en hover) ---------- */
.cardproyecto .primeraimagen,
.cardproyecto .segundaimagen {
    inset: 0;
    width: 100%;
    height: 100%;
    margin: 0;
    pointer-events: none;
}

.cardproyecto .primeraimagen .elementor-widget-container,
.cardproyecto .segundaimagen .elementor-widget-container,
.cardproyecto .primeraimagen img,
.cardproyecto .segundaimagen img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.cardproyecto .primeraimagen { z-index: 1; }

.cardproyecto .segundaimagen {
    z-index: 2;
    opacity: 0;
    transition: opacity 700ms cubic-bezier(0.4, 0, 0.2, 1);
}

.cardproyecto:hover .segundaimagen { opacity: 1; }

/* ---------- Gradiente ---------- */
.cardproyecto::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 3;
    pointer-events: none;
    background: linear-gradient(180deg, rgba(0, 0, 0, 0.20) 0%, rgba(0, 0, 0, 0.05) 50%, rgba(0, 0, 0, 0.46) 100%);
}

/* ---------- Contenido ---------- */
.cardproyecto > .e-con.e-child {
    position: relative;
    z-index: 4;
}

.cardproyecto > .e-con.e-child:has(.logoprincipal) {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    margin-top: auto;
}

/* Categoría */
.cardproyecto .categoriaprincipal {
    opacity: 0;
    transform: translateY(-10px);
    transition: opacity 500ms cubic-bezier(0.4, 0, 0.2, 1),
                transform 600ms cubic-bezier(0.22, 0.61, 0.36, 1);
}

.cardproyecto:hover .categoriaprincipal {
    opacity: 1;
    transform: translateY(0);
}

.cardproyecto .logoprincipal,
.cardproyecto .caracteristicaslist {
    transition: transform 650ms cubic-bezier(0.22, 0.61, 0.36, 1);
}

/* ---------- Dirección (widget heading: colapso con grid 0fr → 1fr) ---------- */
.cardproyecto .direccion {
    display: grid;
    grid-template-rows: 0fr;
    opacity: 0;
    margin: 0;
    transform: translateY(-8px);
    transition: grid-template-rows 650ms cubic-bezier(0.22, 0.61, 0.36, 1),
                opacity 450ms cubic-bezier(0.4, 0, 0.2, 1) 80ms,
                transform 650ms cubic-bezier(0.22, 0.61, 0.36, 1);
}

.cardproyecto .direccion > .elementor-widget-container {
    overflow: hidden;
    min-height: 0;
}

.cardproyecto .direccion .elementor-heading-title {
    margin: 0;
    padding-top: 8px;
}

.cardproyecto:hover .direccion {
    grid-template-rows: 1fr;
    opacity: 1;
    transform: translateY(0);
}

/* ---------- Botón "Ver proyecto" (contenedor: icono + texto) ----------
   Es un contenedor con 2 hijos, por eso se colapsa con max-height
   (no con grid 0fr, que apilaba el icono sobre el texto).          */
.cardproyecto .btnver {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;

    min-height: 0 !important;
    max-height: 0;
    margin: 0 !important;
    padding-block: 0 !important;
    overflow: hidden;

    opacity: 0;
    transform: translateY(12px);

    /* estado inicial: contorno blanco, sin relleno */
    background-color: transparent !important;
    border: 0.5px solid rgba(255, 255, 255, 0.46);

    transition: max-height 650ms cubic-bezier(0.22, 0.61, 0.36, 1),
                margin-top 650ms cubic-bezier(0.22, 0.61, 0.36, 1),
                opacity 450ms cubic-bezier(0.4, 0, 0.2, 1) 160ms,
                transform 650ms cubic-bezier(0.22, 0.61, 0.36, 1),
                background-color 450ms cubic-bezier(0.4, 0, 0.2, 1) 250ms,
                border-color 450ms cubic-bezier(0.4, 0, 0.2, 1) 250ms;
}

/* Hijos del botón: sin anchos forzados de Elementor */
.cardproyecto .btnver > .elementor-element {
    width: auto !important;
    max-width: none !important;
    flex: 0 0 auto !important;
    margin: 0 !important;
}

/* Quita márgenes de Elementor (el icono tenía -5px) para centrar icono y texto */
.cardproyecto .btnver .elementor-widget-container {
    margin: 0 !important;
    padding: 0 !important;
}

.cardproyecto .btnver .elementor-icon-wrapper {
    display: flex;
    line-height: 0;
}

/* Texto e icono — estado inicial (claros) */
.cardproyecto .btnver .elementor-heading-title {
    margin: 0;
    white-space: nowrap;
    color: var(--e-global-color-accent, #F4F6F5) !important;
    transition: color 450ms cubic-bezier(0.4, 0, 0.2, 1) 250ms;
}

.cardproyecto .btnver .elementor-icon {
    display: flex;
    color: #FFFFFF !important;
    transition: color 450ms cubic-bezier(0.4, 0, 0.2, 1) 250ms;
}

.cardproyecto .btnver .elementor-icon svg,
.cardproyecto .btnver .elementor-icon svg path {
    fill: currentColor !important;
    transition: fill 450ms cubic-bezier(0.4, 0, 0.2, 1) 250ms;
}

/* Hover en TODA la tarjeta: aparece el botón y pasa a blanco con texto/icono oscuros */
.cardproyecto:hover .btnver,
.cardproyecto:focus-visible .btnver {
    max-height: 40px;
    min-height: 40px !important;
    margin-top: 16px !important;
    opacity: 1;
    transform: translateY(0);
    background-color: #FFFFFF !important;
    border-color: #FFFFFF;
}

.cardproyecto:hover .btnver .elementor-heading-title,
.cardproyecto:focus-visible .btnver .elementor-heading-title {
    color: #3E4827 !important;
}

.cardproyecto:hover .btnver .elementor-icon,
.cardproyecto:focus-visible .btnver .elementor-icon {
    color: #5B6761 !important;
}

/* ---------- Pantallas táctiles (sin hover): todo visible ---------- */
@media (hover: none) {
    .cardproyecto .categoriaprincipal,
    .cardproyecto .direccion {
        opacity: 1;
        transform: none;
        grid-template-rows: 1fr;
    }
    .cardproyecto .btnver {
        max-height: 40px;
        min-height: 40px !important;
        margin-top: 16px !important;
        opacity: 1;
        transform: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .cardproyecto * {
        transition-duration: 1ms !important;
        transition-delay: 0ms !important;
    }
}/* End custom CSS */