/* --- Root Container --- */
.image-marquee-widget {
  width: 100%;
  overflow: clip; /* Modern overflow property to prevent container escaping */
  --image_marquee_fade_effect_color: #ffffff;
  --image_marquee_fade_width: 100px;
}

/* --- Wrapper: Holds the marquee and side gradients --- */
.image-marquee-widget-wrapper {
  --image_marquee_height:100%;
  height: var(--image_marquee_height, 100%);
  width: 100%;
  position: relative;
  display: flex;
  align-items: center;
  overflow: visible; 
}


/* --- Track Container: Hardware Accelerated Layer --- */
.image-marquee-widget-inner {
  display: flex !important;
  flex-wrap: nowrap !important;
  align-items: center;
  position: relative;
  width: max-content !important;
  height: 100%;
  /* Force GPU rendering for ultra-smooth motion */
  will-change: transform;
  transform: translate3d(0, 0, 0);
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  transform-style: preserve-3d;
  perspective: 1000px;
  --image_marquee_gap: 60px;
  
}

/* --- Individual Item Styling --- */
.image-marquee-widget-item {
  flex-shrink: 0;
  /*padding-left: calc(var(--image_marquee_gap) / 2);
  padding-right: calc(var(--image_marquee_gap) / 2);*/
  /*padding-top: calc(var(--image_marquee_gap) / 2);
  padding-bottom: calc(var(--image_marquee_gap) / 2);*/
  
  --image_marquee_box_padding_helper_top: 0px;
  --image_marquee_box_padding_helper_right: 0px;
  --image_marquee_box_padding_helper_bottom: 0px;
  --image_marquee_box_padding_helper_left: 0px;
  padding-left:  calc(calc(var(--image_marquee_gap) / 2) + var(--image_marquee_box_padding_helper_left));
  padding-right: calc(calc(var(--image_marquee_gap) / 2) + var(--image_marquee_box_padding_helper_right));
  padding-top:  var(--image_marquee_box_padding_helper_top);
  padding-bottom:  var(--image_marquee_box_padding_helper_bottom);
  
}

.animation-orientation-vertical .image-marquee-widget-item {
  /*padding-left:0;
  padding-right: 0;
  */
  /*padding-bottom: var(--image_marquee_gap);*/
  /*padding-top:  calc(calc(var(--image_marquee_gap) / 2) + var(--image_marquee_box_padding_helper_top));*/
  /*padding-bottom: calc(var(--image_marquee_gap) + var(--image_marquee_box_padding_helper_bottom));*/
  padding-top:  calc(calc(var(--image_marquee_gap) / 2) + var(--image_marquee_box_padding_helper_top));
  padding-bottom:  calc(calc(var(--image_marquee_gap) / 2) + var(--image_marquee_box_padding_helper_bottom));
  padding-left: var(--image_marquee_box_padding_helper_left);
  padding-right: var(--image_marquee_box_padding_helper_right);
}


/* --- Link Overlay: Covers the entire image area --- */
.image-marquee-widget-item a {
  position: absolute;
  top: 0;
  left:0;
  width: 100%;
  height: 100%;
  z-index: 1;
}


/* --- Image Optimization for High Refresh Rates --- */
.image-marquee-widget-inner img {
  display: block;
  max-width: initial !important;
  image-rendering: -webkit-optimize-contrast;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  transform: translateZ(0);
  user-select: none;
  pointer-events: none;
  -webkit-user-drag: none;
  max-width: none !important;
  height: auto !important;  
  min-height: 1px;
}

.image-marquee-widget-item-inner {
  position: relative;
  /*width: min-content;*/ /* potser sí que s'ha de posar pels que porten text*/
  width: min-content;
  display: flex;
  flex-direction: column;
 --image_marquee_img_padding_helper_top: 0px;
 --image_marquee_img_padding_helper_right: 0px;
 --image_marquee_img_padding_helper_bottom: 0px;
 --image_marquee_img_padding_helper_left: 0px;
 padding-left:  var(--image_marquee_img_padding_helper_left);
 padding-right: var(--image_marquee_img_padding_helper_right);
 padding-top:  var(--image_marquee_img_padding_helper_top);
 padding-bottom: var(--image_marquee_img_padding_helper_bottom);
}

/* --- Vertical Orientation Overrides --- */
.animation-orientation-vertical .image-marquee-widget-item-inner {
  width: initial;
}

.animation-orientation-vertical.grid-active  .image-marquee-widget-item {
  padding:0 !important;
}

.animation-orientation-vertical .image-marquee-widget-inner {
  flex-direction: column;
  width: 100%;
  height: auto; 

}

.image-marquee-vertical-full-width-yes,
.image-marquee-vertical-full-width-yes .image-marquee-widget-inner {
  width: 100% !important;
}

.image-marquee-vertical-full-width-yes .image-marquee-widget-item {
  width: 100%;
}

.image-marquee-vertical-full-width-yes .image-marquee-widget-item-inner {
  width: 100%;
  align-items: center;
}


/* --- Fade Effect: Linear Gradients for Seamless Transitions --- */
.image-marquee-widget.image-marquee-fade .image-marquee-widget-wrapper:before, 
.image-marquee-widget.image-marquee-fade .image-marquee-widget-wrapper:after {
  position: absolute;
  top: 0;
  width: var(--image_marquee_fade_width, 100px);
  height: 100%;
  content: "";
  z-index: 2;
  pointer-events: none; /* Allows clicks to pass through to links */
}

.image-marquee-widget.image-marquee-fade .image-marquee-widget-wrapper:before {
  left: 0;
  background: linear-gradient(to right, var(--image_marquee_fade_effect_color, #ffffff) 0%, transparent 100%);
}

.image-marquee-widget.image-marquee-fade .image-marquee-widget-wrapper:after {
  right: 0;
  background: linear-gradient(to left, var(--image_marquee_fade_effect_color, #ffffff) 0%, transparent 100%);
}

/* --- Vertical Fade Orientation --- */
.animation-orientation-vertical .image-marquee-widget.image-marquee-fade .image-marquee-widget-wrapper:before, 
.animation-orientation-vertical .image-marquee-widget.image-marquee-fade .image-marquee-widget-wrapper:after {
  height: var(--image_marquee_fade_width, 100px);
  width: 100%;
}

.animation-orientation-vertical .image-marquee-widget.image-marquee-fade .image-marquee-widget-wrapper:before {
  background: linear-gradient(to bottom, var(--image_marquee_fade_effect_color, #ffffff) 0%, transparent 100%);
}

.animation-orientation-vertical .image-marquee-widget.image-marquee-fade .image-marquee-widget-wrapper:after {
  background: linear-gradient(to top, var(--image_marquee_fade_effect_color, #ffffff) 0%, transparent 100%);
  top:auto;
  bottom:0;
}

/* --- Adaptive Grid Mode: Fired via JS when Breakpoint is reached --- */
.image-marquee-grid-active  .image-marquee-widget-item {
  padding-top:  var(--image_marquee_box_padding_helper_top);
  padding-bottom:  var(--image_marquee_box_padding_helper_bottom);
  padding-left:  var(--image_marquee_box_padding_helper_left);
  padding-right: var(--image_marquee_box_padding_helper_right);
}


.image-marquee-grid-active .image-marquee-widget-inner {
  transform: none !important; /* Stop JS animation */
  width: 100% !important;
  display: grid !important;
  gap: var(--image_marquee_gap);
  grid-template-columns: repeat(var(--image_marquee_grid_columns, 3), 1fr);
}

.image-marquee-grid-active .image-marquee-widget-inner img {
  max-width: 100% !important;
}

.image-marquee-grid-active .image-marquee-widget-wrapper:before,
.image-marquee-grid-active .image-marquee-widget-wrapper:after {
  display: none; /* Hide fades in grid view */
}

.image-marquee-grid-active .image-marquee-widget {
  overflow:initial;
}
.image-marquee-grid-active .image-marquee-widget-wrapper {
  overflow:initial;
  --image_marquee_height:100%;
}

.image-marquee-grid-active .image-marquee-widget-item-inner {
  width: fit-content;
  justify-self: center;
}

/* --- Accessibility & Focus Management --- */
.image-marquee-widget *:focus {
  outline: none;
}

/* --- Cloning Logic: Handling Seamless Loops --- */
.image-marquee-is-clone {
  display: flex;
  flex-wrap: nowrap;
}

/* --- Grid Active Logic: Hide Cloned Items to save performance --- */
.image-marquee-grid-active .image-marquee-is-clone {
  display: none !important;
}

.image-marquee-widget-inner {
  display: flex;
  flex-wrap: nowrap;
  width: max-content;
}

/* --- Image Text --- */
.image-marquee-template-images_text .image-marquee-widget-inner {
    align-items: flex-start;
}
.image-marquee-text-content {
  width: 100%;
  max-width: 100%; /* No podrá ser más ancho que .image-marquee-item */
  word-wrap: break-word; /* Evita que palabras largas rompan el layout */
  text-align: center;
}

.image-marquee-image-text-pos-above .image-marquee-text-content {
  order: 1;
}

.image-marquee-image-text-pos-above img {
  order: 2;
}


/* Text stroke outside */
.image-marquee-title,
.image-marquee-description {
  paint-order: stroke fill;
}



/* Equal height */
.image-marquee-equal-height-yes .image-marquee-widget-inner {
  align-items: stretch;
}

.image-marquee-equal-height-yes .image-marquee-widget-item {
  height: auto;
}

.image-marquee-equal-height-yes .image-marquee-widget-item-inner {
  height: 100%;
}



/* Slideshow Swiper */
.elementor-slideshow__counter {
  visibility: hidden !important;
}