.elementor-widget-icon .eael-protected-content-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 );}.elementor-widget-icon .protected-content-error-msg{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 );}.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-425 .elementor-element.elementor-element-d97b284 .elementor-icon-wrapper{text-align:center;}.elementor-425 .elementor-element.elementor-element-d97b284 .elementor-icon{font-size:100px;}.elementor-425 .elementor-element.elementor-element-d97b284 .elementor-icon svg{height:100px;}.elementor-425 .elementor-element.elementor-element-e17d0e3 .elementor-icon-wrapper{text-align:center;}.elementor-425 .elementor-element.elementor-element-e17d0e3 .elementor-icon{font-size:64px;}.elementor-425 .elementor-element.elementor-element-e17d0e3 .elementor-icon svg{height:64px;}.elementor-425 .elementor-element.elementor-element-5f4cf6a .elementor-icon-wrapper{text-align:center;}.elementor-425 .elementor-element.elementor-element-5f4cf6a .elementor-icon{font-size:86px;}.elementor-425 .elementor-element.elementor-element-5f4cf6a .elementor-icon svg{height:86px;}:root{--page-title-display:none;}@media(max-width:1366px){.elementor-widget-icon .eael-protected-content-message{font-size:var( --e-global-typography-secondary-font-size );}.elementor-widget-icon .protected-content-error-msg{font-size:var( --e-global-typography-secondary-font-size );}}@media(max-width:1024px){.elementor-widget-icon .eael-protected-content-message{font-size:var( --e-global-typography-secondary-font-size );}.elementor-widget-icon .protected-content-error-msg{font-size:var( --e-global-typography-secondary-font-size );}}@media(max-width:767px){.elementor-widget-icon .eael-protected-content-message{font-size:var( --e-global-typography-secondary-font-size );}.elementor-widget-icon .protected-content-error-msg{font-size:var( --e-global-typography-secondary-font-size );}}/* Start custom CSS */:root{
  --tl-track: #ecdcea;
  --tl-fill: linear-gradient(180deg, #7B1FA2 0%, #E91E63 100%);
  --tl-dot-idle: #d8c3dd;
  --tl-dot-active: #E91E63;
  --tl-text-idle: #b9a7c2;
  --tl-text-active: #3d1152;
}

/* el contenedor padre de los items necesita ser relative para el overlay */
.timeline-wrap{
  position: relative;
}

/* ocultamos las líneas individuales de Elementor, ya no las usamos */
.timeline-item .timeline-line{
  display: none;
}


.timeline-dot{
  border: 3px solid #fff;
  box-shadow: 0 0 0 2px var(--tl-track);
  z-index: 3; /* por encima de la línea */
  position: relative;
  transition: background .4s ease, transform .4s ease, box-shadow .4s ease;
}

/* --- línea única generada por JS --- */
.timeline-track{
  position: absolute;
  width: 4px;
  background: var(--tl-track);
  border-radius: 4px;
  z-index: 1;
  overflow: hidden;
}

.timeline-track-fill{
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 0%;
  background: var(--tl-fill);
  border-radius: 4px;
  transition: height .1s linear;
}

.timeline-item.is-active .timeline-dot{
  background: var(--tl-dot-active);
  transform: scale(1.15);
  box-shadow: 0 0 0 4px rgba(233,30,99,.25);
}

.timeline-item .timeline-card h2,
.timeline-item p{
  color: var(--tl-text-idle);
  transition: color .4s ease;
}

.timeline-item.is-active .timeline-card h2,
.timeline-item.is-active p{
  color: var(--tl-text-active);
}

@media (max-width: 767px){
  .timeline-center{ width: 30px; }
  .timeline-dot{ width: 16px; height: 16px; }
}
















.dual-color-text{
      background: linear-gradient(
        243.93deg,
        #EA282D 29.81%,
        #35095E 66.43%
    );
  
    -webkit-background-clip: text;
    background-clip: text;
  
    -webkit-text-fill-color: transparent;
    color: transparent;
}/* End custom CSS */