.elementor-1143 .elementor-element.elementor-element-89b8c5a{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--justify-content:flex-start;--align-items:stretch;--gap:10px 10px;--row-gap:10px;--column-gap:10px;--flex-wrap:nowrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.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-1143 .elementor-element.elementor-element-5a5e9bd img{width:100%;}.elementor-widget-heading .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );color:var( --e-global-color-primary );}.elementor-1143 .elementor-element.elementor-element-7310a14{text-align:start;}.elementor-1143 .elementor-element.elementor-element-7310a14 .elementor-heading-title{color:var( --e-global-color-text );}@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 );}}@media(max-width:767px){.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 );}}/* Start custom CSS for image, class: .elementor-element-5a5e9bd */.elementor-1143 .elementor-element.elementor-element-5a5e9bd img {
    aspect-ratio: 6 / 7;
    object-fit: cover;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-89b8c5a *//* =========================================================
   .caja-proyecto HOVER (Elementor real)
   - Imagen: zoom interno sin mover layout
   - Título: underline direccional L→R (IN y OUT)
========================================================= */

/* ---------- IMAGEN ---------- */
.caja-proyecto .caja-proyecto-imagen .elementor-widget-container{
  overflow: hidden; /* recorta el zoom */
}

.caja-proyecto .caja-proyecto-imagen img{
  display: block;
  width: 100%;
  height: auto;
  transform: scale(1);
  transform-origin: center center;
  transition: transform 450ms ease;
  will-change: transform;
}

.caja-proyecto:hover .caja-proyecto-imagen img{
  transform: scale(1.12);
}

/* ---------- TÍTULO ---------- */
.caja-proyecto .caja-proyecto-titulo .elementor-heading-title{
  position: relative;
  display: inline-block; /* ancho real del texto */
  line-height: 1.2;
  text-decoration: none !important;
}

/* Línea underline */
.caja-proyecto .caja-proyecto-titulo .elementor-heading-title::after{
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -0.12em; /* ajustable */
  height: 2px;
  background: currentColor;

  transform: scaleX(0);
  transform-origin: left center; /* siempre L→R */
  transition: transform 320ms ease;
  will-change: transform;
}

/* Hover IN */
.caja-proyecto:hover .caja-proyecto-titulo .elementor-heading-title::after{
  transform: scaleX(1);
}

/* Hover OUT (misma dirección) */
.caja-proyecto:not(:hover) .caja-proyecto-titulo .elementor-heading-title::after{
  transform: scaleX(0);
}

/* ---------- ACCESIBILIDAD ---------- */
@media (prefers-reduced-motion: reduce){
  .caja-proyecto .caja-proyecto-imagen img,
  .caja-proyecto .caja-proyecto-titulo .elementor-heading-title::after{
    transition: none !important;
  }
}/* End custom CSS */