:root{
  /* Scrollbar width helper to avoid 100vw overflow inside boxed containers. */
  --wdo-sbw: calc(100vw - 100%);
}

@supports (width: 100dvw){
  :root{ --wdo-sbw: calc(100dvw - 100%); }
}

.wdo-slider,
.wdo-slider *{ box-sizing: var(--wdo-box-sizing, border-box); }

.wdo-slider{
  position: relative;
  width: 100%;
  max-width: var(--wdo-slider-max-width, 100%);
  height: var(--wdo-h-desktop, 520px);
  overflow: var(--wdo-slider-overflow, hidden);
  overflow-x: var(--wdo-slider-overflow-x, clip);
  contain: layout paint;
}

@media (max-width: 1024px){
  .wdo-slider{ height: var(--wdo-h-tablet, 420px); }
}
@media (max-width: 767px){
  .wdo-slider{ height: var(--wdo-h-mobile, 320px); }
}

.wdo-slider.wdo-fullwidth{
  left: var(--wdo-full-left, 50%);
  right: var(--wdo-full-right, 50%);
  width: var(--wdo-full-width, calc(100vw - var(--wdo-sbw)));
  max-width: var(--wdo-full-max-width, calc(100vw - var(--wdo-sbw)));
  margin-left: var(--wdo-full-margin-left, calc(-50vw + (var(--wdo-sbw) / 2)));
  margin-right: var(--wdo-full-margin-right, calc(-50vw + (var(--wdo-sbw) / 2)));
}
@supports (width: 100dvw){
  .wdo-slider.wdo-fullwidth{
    width: var(--wdo-full-width-dvw, calc(100dvw - var(--wdo-sbw)));
    max-width: var(--wdo-full-max-width-dvw, calc(100dvw - var(--wdo-sbw)));
    margin-left: var(--wdo-full-margin-left-dvw, calc(-50dvw + (var(--wdo-sbw) / 2)));
    margin-right: var(--wdo-full-margin-right-dvw, calc(-50dvw + (var(--wdo-sbw) / 2)));
  }
}

/* Grid layout (responsive columns) */
.wdo-slider.wdo-layout-grid{
  height: var(--wdo-grid-slider-height, auto);
  overflow: var(--wdo-grid-slider-overflow, visible);
  overflow-x: var(--wdo-grid-slider-overflow-x, clip);
}
.wdo-slider.wdo-layout-grid .wdo-track{
  display: var(--wdo-grid-track-display, grid);
  grid-template-columns: repeat(var(--wdo-grid-cols-d, 3), minmax(var(--wdo-grid-col-min, 0), var(--wdo-grid-col-max, 1fr)));
  gap: var(--wdo-grid-gap, 24px);
  height: var(--wdo-grid-track-height, auto);
  overflow: var(--wdo-grid-track-overflow, visible);
  overflow-x: var(--wdo-grid-track-overflow-x, clip);
  scroll-snap-type: var(--wdo-grid-track-snap-type, none);
}
.wdo-slider.wdo-layout-grid .wdo-slide{
  flex: var(--wdo-grid-slide-flex, initial);
  scroll-snap-align: var(--wdo-grid-slide-snap-align, none);
  scroll-snap-stop: var(--wdo-grid-slide-snap-stop, normal);
  height: var(--wdo-grid-slide-height, var(--wdo-h-desktop, 520px));
  min-height: var(--wdo-grid-slide-min-height, 0);
}

@media (max-width: 1024px){
  .wdo-slider.wdo-layout-grid .wdo-track{
    grid-template-columns: repeat(var(--wdo-grid-cols-t, 2), minmax(var(--wdo-grid-col-min, 0), var(--wdo-grid-col-max, 1fr)));
  }
  .wdo-slider.wdo-layout-grid .wdo-slide{
    height: var(--wdo-grid-slide-height-t, var(--wdo-h-tablet, 420px));
  }
}
@media (max-width: 767px){
  .wdo-slider.wdo-layout-grid .wdo-track{
    grid-template-columns: repeat(var(--wdo-grid-cols-m, 1), minmax(var(--wdo-grid-col-min, 0), var(--wdo-grid-col-max, 1fr)));
  }
  .wdo-slider.wdo-layout-grid .wdo-slide{
    height: var(--wdo-grid-slide-height-m, var(--wdo-h-mobile, 320px));
  }
}

/* Grid -> mobile slider (activated via JS class) */
.wdo-slider.wdo-layout-grid.wdo-mobile-slider-active{
  height: var(--wdo-h-mobile, 320px);
  overflow: hidden;
}
.wdo-slider.wdo-layout-grid.wdo-mobile-slider-active .wdo-track{
  display: flex;
  grid-template-columns: none;
  gap: 0;
  height: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
}
.wdo-slider.wdo-layout-grid.wdo-mobile-slider-active .wdo-slide{
  flex: 0 0 100%;
  width: 100%;
  height: 100%;
  min-height: 100%;
  scroll-snap-align: start;
  scroll-snap-stop: always;
}

@media (max-width: 767px){
  /* Fallback: enable grid->slider on mobile even if JS doesn't toggle the class. */
  .wdo-slider.wdo-layout-grid.wdo-grid-mobile-slider{
    --wdo-grid-track-display: flex;
    --wdo-grid-track-overflow-x: auto;
    --wdo-grid-track-overflow: hidden;
    --wdo-grid-track-snap-type: x mandatory;
    --wdo-grid-track-height: 100%;
    --wdo-grid-gap: 0px;
    --wdo-grid-slide-flex: 0 0 100%;
    --wdo-grid-slide-width: 100%;
    --wdo-grid-slide-height: var(--wdo-h-mobile, 320px);
    --wdo-grid-slide-min-height: 100%;
    --wdo-grid-slide-snap-align: start;
    --wdo-grid-slide-snap-stop: always;
    --wdo-grid-slider-overflow: hidden;
    --wdo-grid-slider-overflow-x: hidden;
    height: var(--wdo-h-mobile, 320px);
    overflow: hidden;
  }
  .wdo-slider.wdo-layout-grid.wdo-grid-mobile-slider .wdo-track{
    display: flex;
    grid-template-columns: none;
    gap: 0;
    height: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
  }
  .wdo-slider.wdo-layout-grid.wdo-grid-mobile-slider .wdo-slide{
    flex: 0 0 100%;
    width: 100%;
    height: 100%;
    min-height: 100%;
    scroll-snap-align: start;
    scroll-snap-stop: always;
  }
}

/* Track: native scrolling for best performance + swipe */
.wdo-track{
  width: var(--wdo-track-width, 100%);
  max-width: var(--wdo-track-max-width, 100%);
  height: var(--wdo-track-height, 100%);
  display: var(--wdo-track-display, flex);
  overflow-x: var(--wdo-track-overflow-x, auto);
  overflow-y: var(--wdo-track-overflow-y, hidden);
  scroll-snap-type: var(--wdo-track-snap-type, x mandatory);
  scroll-behavior: var(--wdo-track-scroll-behavior, smooth);
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.wdo-track::-webkit-scrollbar{ display: none; }
@media (prefers-reduced-motion: reduce){
  .wdo-track{ scroll-behavior: auto; }
}

.wdo-slide{
  position: var(--wdo-slide-position, relative);
  flex: var(--wdo-slide-flex, 0 0 100%);
  height: var(--wdo-slide-height, 100%);
  min-height: var(--wdo-slide-min-height, 100%);
  scroll-snap-align: var(--wdo-slide-snap-align, start);
  scroll-snap-stop: var(--wdo-slide-snap-stop, always);
  overflow: var(--wdo-slide-overflow, hidden);
  isolation: isolate;
  --wdo-title-current: var(--wdo-title-d, 52px);
  --wdo-sub-current: var(--wdo-sub-d, 20px);
}

.wdo-slide.has-link{ cursor: pointer; }
.wdo-slide-link{
  position: absolute;
  inset: 0;
  display: block;
  z-index: 4;
}

.wdo-picture{
  position: var(--wdo-picture-position, absolute);
  inset: var(--wdo-picture-inset, 0);
  width: var(--wdo-picture-width, 100%);
  height: var(--wdo-picture-height, 100%);
  display: var(--wdo-picture-display, block);
  z-index: 1;
}
.wdo-media{
  position: var(--wdo-media-position, absolute);
  inset: var(--wdo-media-inset, 0);
  width: var(--wdo-media-width, 100%);
  height: var(--wdo-media-height, 100%);
  max-width: var(--wdo-media-max-width, none);
  max-height: var(--wdo-media-max-height, none);
  object-fit: var(--wdo-fit, cover);
  object-position: var(--wdo-pos, center);
  transform: translateZ(0);
  z-index: 1;
}

.wdo-overlay{
  position: absolute;
  inset: 0;
  background: var(--wdo-overlay-bg, rgba(0,0,0,.25));
  pointer-events: none;
  z-index: 2;
}

.wdo-content{
  position: absolute;
  inset: 0;
  display: grid;
  pointer-events: none;
  color: var(--wdo-text, #fff);
  z-index: 3;
}
.wdo-content-inner{
  width: var(--wdo-content-w, auto);
  max-width: var(--wdo-content-max-w, 100%);
  padding: var(--wdo-content-pad, 0);
  margin: var(--wdo-content-margin, 0);
  background: var(--wdo-content-bg, transparent);
  border-width: var(--wdo-content-border-w, 0);
  border-style: var(--wdo-content-border-style, solid);
  border-color: var(--wdo-content-border-color, transparent);
  border-radius: var(--wdo-content-radius, 0);
  border-top-left-radius: var(--wdo-content-radius-tl, var(--wdo-content-radius, 0));
  border-top-right-radius: var(--wdo-content-radius-tr, var(--wdo-content-radius, 0));
  border-bottom-right-radius: var(--wdo-content-radius-br, var(--wdo-content-radius, 0));
  border-bottom-left-radius: var(--wdo-content-radius-bl, var(--wdo-content-radius, 0));
  box-shadow: var(--wdo-content-shadow, none);
  pointer-events: auto;
}

/* Priority against theme/builder container rules */
.wdo-slider .wdo-content{
  position: absolute !important;
  inset: 0 !important;
  display: grid !important;
  pointer-events: none !important;
  color: var(--wdo-text, #fff) !important;
  z-index: 3 !important;
}
.wdo-slider .wdo-content-inner{
  width: var(--wdo-content-w, auto) !important;
  max-width: var(--wdo-content-max-w, 100%) !important;
  padding: var(--wdo-content-pad, 0) !important;
  margin: var(--wdo-content-margin, 0) !important;
  background: var(--wdo-content-bg, transparent) !important;
  border-width: var(--wdo-content-border-w, 0) !important;
  border-style: var(--wdo-content-border-style, solid) !important;
  border-color: var(--wdo-content-border-color, transparent) !important;
  border-radius: var(--wdo-content-radius, 0) !important;
  border-top-left-radius: var(--wdo-content-radius-tl, var(--wdo-content-radius, 0)) !important;
  border-top-right-radius: var(--wdo-content-radius-tr, var(--wdo-content-radius, 0)) !important;
  border-bottom-right-radius: var(--wdo-content-radius-br, var(--wdo-content-radius, 0)) !important;
  border-bottom-left-radius: var(--wdo-content-radius-bl, var(--wdo-content-radius, 0)) !important;
  box-shadow: var(--wdo-content-shadow, none) !important;
  pointer-events: auto !important;
}
.wdo-slider .wdo-content-inner > *{
  pointer-events: auto !important;
}

/* Custom content positioning (set per slide via --wdo-content-x/--wdo-content-y) */
.wdo-slide.wdo-pos-custom .wdo-content{
  inset: var(--wdo-content-inset, auto);
  left: var(--wdo-content-x, 50%);
  top: var(--wdo-content-y, 50%);
  right: var(--wdo-content-right, auto);
  bottom: var(--wdo-content-bottom, auto);
  width: var(--wdo-content-w, auto);
  height: var(--wdo-content-h, auto);
  display: var(--wdo-content-display, block);
  transform: var(--wdo-content-transform, translate(-50%, -50%));
}
/* Priority for custom positioning */
.wdo-slider .wdo-slide.wdo-pos-custom .wdo-content{
  inset: var(--wdo-content-inset, auto) !important;
  left: var(--wdo-content-x, 50%) !important;
  top: var(--wdo-content-y, 50%) !important;
  right: var(--wdo-content-right, auto) !important;
  bottom: var(--wdo-content-bottom, auto) !important;
  width: var(--wdo-content-w, auto) !important;
  height: var(--wdo-content-h, auto) !important;
  display: var(--wdo-content-display, block) !important;
  transform: var(--wdo-content-transform, translate(-50%, -50%)) !important;
}

.wdo-align-left{ justify-items: start; text-align: left; }
.wdo-align-center{ justify-items: center; text-align: center; }
.wdo-align-right{ justify-items: end; text-align: right; }

.wdo-valign-top{ align-items: start; }
.wdo-valign-middle{ align-items: center; }
.wdo-valign-bottom{ align-items: end; }

/* Priority for alignment helpers */
.wdo-slider .wdo-align-left{ justify-items: start !important; text-align: left !important; }
.wdo-slider .wdo-align-center{ justify-items: center !important; text-align: center !important; }
.wdo-slider .wdo-align-right{ justify-items: end !important; text-align: right !important; }

.wdo-slider .wdo-valign-top{ align-items: start !important; }
.wdo-slider .wdo-valign-middle{ align-items: center !important; }
.wdo-slider .wdo-valign-bottom{ align-items: end !important; }

/* Priority for core layout elements */
.wdo-slider .wdo-track{
  width: var(--wdo-track-width, 100%) !important;
  max-width: var(--wdo-track-max-width, 100%) !important;
  height: var(--wdo-track-height, 100%) !important;
}
.wdo-slider:not(.wdo-layout-grid) .wdo-track{
  display: var(--wdo-track-display, flex) !important;
  overflow-x: var(--wdo-track-overflow-x, auto) !important;
  overflow-y: var(--wdo-track-overflow-y, hidden) !important;
  scroll-snap-type: var(--wdo-track-snap-type, x mandatory) !important;
}
.wdo-slider.wdo-layout-grid .wdo-track{
  display: var(--wdo-grid-track-display, grid) !important;
  grid-template-columns: repeat(var(--wdo-grid-cols-d, 3), minmax(var(--wdo-grid-col-min, 0), var(--wdo-grid-col-max, 1fr))) !important;
  gap: var(--wdo-grid-gap, 24px) !important;
  height: var(--wdo-grid-track-height, auto) !important;
  overflow-x: var(--wdo-grid-track-overflow-x, clip) !important;
  overflow-y: var(--wdo-grid-track-overflow, visible) !important;
  scroll-snap-type: var(--wdo-grid-track-snap-type, none) !important;
}
.wdo-slider.wdo-layout-grid{
  height: var(--wdo-grid-slider-height, auto) !important;
  overflow: var(--wdo-grid-slider-overflow, visible) !important;
  overflow-x: var(--wdo-grid-slider-overflow-x, clip) !important;
}
.wdo-slider.wdo-layout-grid .wdo-slide{
  flex: var(--wdo-grid-slide-flex, initial) !important;
  width: var(--wdo-grid-slide-width, auto) !important;
  height: var(--wdo-grid-slide-height, var(--wdo-h-desktop, 520px)) !important;
  min-height: var(--wdo-grid-slide-min-height, 0) !important;
  scroll-snap-align: var(--wdo-grid-slide-snap-align, none) !important;
  scroll-snap-stop: var(--wdo-grid-slide-snap-stop, normal) !important;
}
@media (max-width: 1024px){
  .wdo-slider.wdo-layout-grid .wdo-track{
    grid-template-columns: repeat(var(--wdo-grid-cols-t, 2), minmax(var(--wdo-grid-col-min, 0), var(--wdo-grid-col-max, 1fr))) !important;
  }
  .wdo-slider.wdo-layout-grid .wdo-slide{
    height: var(--wdo-grid-slide-height-t, var(--wdo-h-tablet, 420px)) !important;
  }
}
@media (max-width: 767px){
  .wdo-slider.wdo-layout-grid .wdo-track{
    grid-template-columns: repeat(var(--wdo-grid-cols-m, 1), minmax(var(--wdo-grid-col-min, 0), var(--wdo-grid-col-max, 1fr))) !important;
  }
  .wdo-slider.wdo-layout-grid .wdo-slide{
    height: var(--wdo-grid-slide-height-m, var(--wdo-h-mobile, 320px)) !important;
  }
}
.wdo-slider .wdo-slide{
  position: var(--wdo-slide-position, relative) !important;
  flex: var(--wdo-slide-flex, 0 0 100%) !important;
  height: var(--wdo-slide-height, 100%) !important;
  min-height: var(--wdo-slide-min-height, 100%) !important;
  overflow: var(--wdo-slide-overflow, hidden) !important;
  isolation: isolate !important;
  scroll-snap-align: var(--wdo-slide-snap-align, start) !important;
  scroll-snap-stop: var(--wdo-slide-snap-stop, always) !important;
}
.wdo-slider .wdo-slide-link{
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  z-index: 4 !important;
}
.wdo-slider .wdo-picture{
  position: var(--wdo-picture-position, absolute) !important;
  inset: var(--wdo-picture-inset, 0) !important;
  width: var(--wdo-picture-width, 100%) !important;
  height: var(--wdo-picture-height, 100%) !important;
  display: var(--wdo-picture-display, block) !important;
  z-index: 1 !important;
}
.wdo-slider .wdo-media{
  position: var(--wdo-media-position, absolute) !important;
  inset: var(--wdo-media-inset, 0) !important;
  width: var(--wdo-media-width, 100%) !important;
  height: var(--wdo-media-height, 100%) !important;
  max-width: var(--wdo-media-max-width, none) !important;
  max-height: var(--wdo-media-max-height, none) !important;
  object-fit: var(--wdo-fit, cover) !important;
  object-position: var(--wdo-pos, center) !important;
  transform: translateZ(0) !important;
  z-index: 1 !important;
}
.wdo-slider .wdo-overlay{
  position: absolute !important;
  inset: 0 !important;
  pointer-events: none !important;
  z-index: 2 !important;
}
.wdo-slider .wdo-cta{
  margin: var(--wdo-cta-margin, 16px 0 0) !important;
}
.wdo-slider .wdo-btn{
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: var(--wdo-cta-gap, .4em) !important;
  padding: var(--wdo-cta-pad, 10px 16px) !important;
  border-radius: var(--wdo-cta-radius, 999px) !important;
  border: var(--wdo-cta-border-w, 1px) solid var(--wdo-cta-border, rgba(255,255,255,.7)) !important;
  background: var(--wdo-cta-bg, rgba(0,0,0,.25)) !important;
  color: var(--wdo-cta-color, inherit) !important;
  text-decoration: var(--wdo-cta-decoration, none) !important;
  font-weight: var(--wdo-cta-weight, 600) !important;
}
.wdo-slider .wdo-btn:hover{
  background: var(--wdo-cta-bg-hover, rgba(0,0,0,.35)) !important;
  color: var(--wdo-cta-color-hover, var(--wdo-cta-color, inherit)) !important;
  border-color: var(--wdo-cta-border-hover, var(--wdo-cta-border, rgba(255,255,255,.7))) !important;
}
.wdo-slider .wdo-btn:active{
  background: var(--wdo-cta-bg-active, var(--wdo-cta-bg-hover, rgba(0,0,0,.35))) !important;
  color: var(--wdo-cta-color-active, var(--wdo-cta-color, inherit)) !important;
  border-color: var(--wdo-cta-border-active, var(--wdo-cta-border, rgba(255,255,255,.7))) !important;
}
.wdo-slider .wdo-arrow{
  position: absolute !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: var(--wdo-arrow-size, 44px) !important;
  height: var(--wdo-arrow-size, 44px) !important;
  border-radius: var(--wdo-arrow-radius, 999px) !important;
  border: var(--wdo-arrow-border-w, 1px) solid var(--wdo-arrow-border, rgba(255,255,255,.65)) !important;
  background: var(--wdo-arrow-bg, rgba(0,0,0,.25)) !important;
  color: var(--wdo-arrow-color, rgba(255,255,255,.95)) !important;
  display: grid !important;
  place-items: center !important;
  cursor: pointer !important;
  z-index: 5 !important;
}
.wdo-slider .wdo-arrow span{
  font-size: calc(var(--wdo-arrow-size, 44px) * 0.7) !important;
  line-height: 1 !important;
  transform: translateY(-1px) !important;
}
.wdo-slider .wdo-prev{ left: var(--wdo-arrow-offset, 12px) !important; }
.wdo-slider .wdo-next{ right: var(--wdo-arrow-offset, 12px) !important; }
.wdo-slider .wdo-dots{
  position: absolute !important;
  left: 50% !important;
  bottom: var(--wdo-dots-bottom, 12px) !important;
  transform: translateX(-50%) !important;
  display: flex !important;
  gap: var(--wdo-dot-gap, 8px) !important;
  z-index: 6 !important;
}
.wdo-slider .wdo-dot{
  width: var(--wdo-dot-size, 10px) !important;
  height: var(--wdo-dot-size, 10px) !important;
  border-radius: var(--wdo-dot-radius, 999px) !important;
  border: var(--wdo-dot-border-w, 2px) solid var(--wdo-dot-border, rgba(255,255,255,.75)) !important;
  background: var(--wdo-dot-bg, rgba(0,0,0,0)) !important;
  padding: 0 !important;
  cursor: pointer !important;
}
.wdo-slider .wdo-dot.is-active{
  background: var(--wdo-dot-active-bg, rgba(255,255,255,.9)) !important;
  border-color: var(--wdo-dot-active-border, rgba(255,255,255,.9)) !important;
}

.wdo-title{
  margin: var(--wdo-title-margin, 0);
  display: block;
  color: var(--wdo-title-color, var(--wdo-text, #fff));
  font-size: var(--wdo-title-current);
  line-height: var(--wdo-title-line-h, 1.02);
  letter-spacing: var(--wdo-title-letter, -0.01em);
  max-width: var(--wdo-title-max-w, none);
  font-weight: var(--wdo-title-weight, 700);
  text-transform: var(--wdo-title-transform, none);
  font-style: var(--wdo-title-font-style, normal);
  text-decoration: var(--wdo-title-decoration, none);
  text-shadow: var(--wdo-title-shadow, none);
  background: var(--wdo-title-bg, transparent);
  padding: var(--wdo-title-pad, 0);
  border-width: var(--wdo-title-border-w, 0);
  border-style: var(--wdo-title-border-style, solid);
  border-color: var(--wdo-title-border-color, transparent);
  border-radius: var(--wdo-title-radius, 0);
  border-top-left-radius: var(--wdo-title-radius-tl, var(--wdo-title-radius, 0));
  border-top-right-radius: var(--wdo-title-radius-tr, var(--wdo-title-radius, 0));
  border-bottom-right-radius: var(--wdo-title-radius-br, var(--wdo-title-radius, 0));
  border-bottom-left-radius: var(--wdo-title-radius-bl, var(--wdo-title-radius, 0));
}
.wdo-subtitle{
  margin: var(--wdo-sub-margin, 10px 0 0);
  display: block;
  color: var(--wdo-sub-color, var(--wdo-text, #fff));
  font-size: var(--wdo-sub-current);
  line-height: var(--wdo-sub-line-h, 1.25);
  opacity: var(--wdo-sub-opacity, .95);
  max-width: var(--wdo-sub-max-w, none);
  font-weight: var(--wdo-sub-weight, 400);
  text-transform: var(--wdo-sub-transform, none);
  font-style: var(--wdo-sub-font-style, normal);
  text-decoration: var(--wdo-sub-decoration, none);
  text-shadow: var(--wdo-sub-shadow, none);
  background: var(--wdo-sub-bg, transparent);
  padding: var(--wdo-sub-pad, 0);
  border-width: var(--wdo-sub-border-w, 0);
  border-style: var(--wdo-sub-border-style, solid);
  border-color: var(--wdo-sub-border-color, transparent);
  border-radius: var(--wdo-sub-radius, 0);
  border-top-left-radius: var(--wdo-sub-radius-tl, var(--wdo-sub-radius, 0));
  border-top-right-radius: var(--wdo-sub-radius-tr, var(--wdo-sub-radius, 0));
  border-bottom-right-radius: var(--wdo-sub-radius-br, var(--wdo-sub-radius, 0));
  border-bottom-left-radius: var(--wdo-sub-radius-bl, var(--wdo-sub-radius, 0));
}

/* Tag-specific selectors for higher priority against theme/builder defaults */
.wdo-slider h1.wdo-title,
.wdo-slider h2.wdo-title,
.wdo-slider h3.wdo-title,
.wdo-slider h4.wdo-title,
.wdo-slider h5.wdo-title,
.wdo-slider h6.wdo-title,
.wdo-slider p.wdo-title,
.wdo-slider div.wdo-title,
.wdo-slider span.wdo-title{
  color: var(--wdo-title-color, var(--wdo-text, #fff)) !important;
  font-size: var(--wdo-title-current) !important;
}

.wdo-slider h1.wdo-subtitle,
.wdo-slider h2.wdo-subtitle,
.wdo-slider h3.wdo-subtitle,
.wdo-slider h4.wdo-subtitle,
.wdo-slider h5.wdo-subtitle,
.wdo-slider h6.wdo-subtitle,
.wdo-slider p.wdo-subtitle,
.wdo-slider div.wdo-subtitle,
.wdo-slider span.wdo-subtitle{
  color: var(--wdo-sub-color, var(--wdo-text, #fff)) !important;
  font-size: var(--wdo-sub-current) !important;
}

@media (max-width: 1024px){
  .wdo-slide{
    --wdo-title-current: var(--wdo-title-t, 40px);
    --wdo-sub-current: var(--wdo-sub-t, 18px);
  }
}
@media (max-width: 767px){
  .wdo-slide{
    --wdo-title-current: var(--wdo-title-m, 30px);
    --wdo-sub-current: var(--wdo-sub-m, 16px);
  }
}

/* CTA button */
.wdo-cta{ margin: var(--wdo-cta-margin, 16px 0 0); }
.wdo-btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--wdo-cta-gap, .4em);
  padding: var(--wdo-cta-pad, 10px 16px);
  max-width: var(--wdo-cta-max-w, none);
  border-radius: var(--wdo-cta-radius, 999px);
  border-top-left-radius: var(--wdo-cta-radius-tl, var(--wdo-cta-radius, 999px));
  border-top-right-radius: var(--wdo-cta-radius-tr, var(--wdo-cta-radius, 999px));
  border-bottom-right-radius: var(--wdo-cta-radius-br, var(--wdo-cta-radius, 999px));
  border-bottom-left-radius: var(--wdo-cta-radius-bl, var(--wdo-cta-radius, 999px));
  border: var(--wdo-cta-border-w, 1px) var(--wdo-cta-border-style, solid) var(--wdo-cta-border, rgba(255,255,255,.7));
  background: var(--wdo-cta-bg, rgba(0,0,0,.25));
  color: var(--wdo-cta-color, inherit);
  text-decoration: var(--wdo-cta-decoration, none);
  font-weight: var(--wdo-cta-weight, 600);
  line-height: var(--wdo-cta-line-h, normal);
  letter-spacing: var(--wdo-cta-letter, normal);
  text-transform: var(--wdo-cta-transform, none);
  font-style: var(--wdo-cta-font-style, normal);
  text-decoration: var(--wdo-cta-decoration, none);
  box-shadow: var(--wdo-cta-shadow, none);
  backdrop-filter: var(--wdo-cta-blur, blur(6px));
}
.wdo-btn:hover{
  background: var(--wdo-cta-bg-hover, rgba(0,0,0,.35));
  color: var(--wdo-cta-color-hover, var(--wdo-cta-color, inherit));
  border-color: var(--wdo-cta-border-hover, var(--wdo-cta-border, rgba(255,255,255,.7)));
}
.wdo-btn:active{
  background: var(--wdo-cta-bg-active, var(--wdo-cta-bg-hover, rgba(0,0,0,.35)));
  color: var(--wdo-cta-color-active, var(--wdo-cta-color, inherit));
  border-color: var(--wdo-cta-border-active, var(--wdo-cta-border, rgba(255,255,255,.7)));
}
@media (prefers-reduced-motion: reduce){
  .wdo-btn{ backdrop-filter: none; }
}

/* Arrows */
.wdo-arrow{
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: var(--wdo-arrow-size, 44px);
  height: var(--wdo-arrow-size, 44px);
  border-radius: var(--wdo-arrow-radius, 999px);
  border: var(--wdo-arrow-border-w, 1px) solid var(--wdo-arrow-border, rgba(255,255,255,.65));
  background: var(--wdo-arrow-bg, rgba(0,0,0,.25));
  color: var(--wdo-arrow-color, rgba(255,255,255,.95));
  display: grid;
  place-items: center;
  cursor: pointer;
  z-index: 5;
}
.wdo-arrow span{
  font-size: calc(var(--wdo-arrow-size, 44px) * 0.7);
  line-height: 1;
  transform: translateY(-1px);
}
.wdo-prev{ left: var(--wdo-arrow-offset, 12px); }
.wdo-next{ right: var(--wdo-arrow-offset, 12px); }
.wdo-no-arrows .wdo-arrow{ display: none; }
.wdo-slider.wdo-layout-grid:not(.wdo-mobile-slider-active) .wdo-arrow{ display: none; }

/* Dots */
.wdo-dots{
  position: absolute;
  left: 50%;
  bottom: var(--wdo-dots-bottom, 12px);
  transform: translateX(-50%);
  display: flex;
  gap: var(--wdo-dot-gap, 8px);
  z-index: 6;
}
.wdo-dot{
  width: var(--wdo-dot-size, 10px);
  height: var(--wdo-dot-size, 10px);
  border-radius: var(--wdo-dot-radius, 999px);
  border: var(--wdo-dot-border-w, 2px) solid var(--wdo-dot-border, rgba(255,255,255,.75));
  background: var(--wdo-dot-bg, rgba(0,0,0,0));
  padding: 0;
  cursor: pointer;
}
.wdo-dot.is-active{
  background: var(--wdo-dot-active-bg, rgba(255,255,255,.9));
  border-color: var(--wdo-dot-active-border, rgba(255,255,255,.9));
}
.wdo-no-dots .wdo-dots{ display: none; }
.wdo-slider.wdo-layout-grid:not(.wdo-mobile-slider-active) .wdo-dots{ display: none; }

/* Focus for accessibility */
.wdo-dot:focus-visible,
.wdo-arrow:focus-visible,
.wdo-btn:focus-visible,
.wdo-slide-link:focus-visible{
  outline: var(--wdo-focus-w, 2px) solid var(--wdo-focus-color, rgba(255,255,255,.9));
  outline-offset: var(--wdo-focus-offset, 2px);
}
