/* DOLORES hero: only active on an explicitly tagged Elementor container. */
.dhs-slider-mounted {position:relative!important;isolation:isolate;overflow:hidden;}
.dhs-slider-mounted > .dhs-stage {position:absolute;inset:0;z-index:3;}
/* Elementor content remains interactive above the decorative background. */
.dhs-slider-mounted > :not(.dhs-stage):not(.dhs-controls):not(.elementor-background-overlay):not(.elementor-background-video-container) {z-index:2;}
.dhs-slider-mounted > .dhs-static-content {position:relative!important;}
.dhs-slider-mounted > .elementor-background-overlay {z-index:0!important;}
.dhs-stage {pointer-events:none;overflow:hidden;color:#fff;}
.dhs-stage, .dhs-stage * {box-sizing:border-box;}
.dhs-visuals, .dhs-slide,.dhs-picture,.dhs-image {position:absolute;inset:0;width:100%;height:100%;display:block;}
.dhs-slide {--dhs-pos-desktop:left bottom;--dhs-pos-mobile:left bottom;opacity:0;visibility:hidden;transform:translateZ(0);transition:opacity var(--dhs-duration,700ms) ease,transform var(--dhs-duration,700ms) cubic-bezier(.2,.75,.2,1),visibility 0s linear var(--dhs-duration,700ms);}
.dhs-slide.is-active {opacity:1;visibility:visible;transition:opacity var(--dhs-duration,700ms) ease,transform var(--dhs-duration,700ms) cubic-bezier(.2,.75,.2,1),visibility 0s;}
/* Background layer for letterboxing: softened version of the same visual. */
.dhs-wash {position:absolute;inset:0;display:block;overflow:hidden;}
.dhs-wash-image {display:block;width:100%;height:100%;object-fit:cover;filter:blur(18px) brightness(1.02);transform:scale(1.12);opacity:.32;}
.dhs-image {object-fit:contain;object-position:var(--dhs-pos-desktop, left bottom);}
.dhs-fit-cover .dhs-image {object-fit:cover;}
.dhs-fit-cover .dhs-wash {display:none;}
.dhs-effect-zoom .dhs-slide {transform:scale(1.075);}
.dhs-effect-zoom .dhs-slide.is-active {transform:scale(1);}
.dhs-effect-slide .dhs-slide {transform:translateX(100%);opacity:1;}
.dhs-effect-slide.dhs-dir-prev .dhs-slide:not(.is-active) {transform:translateX(100%);}
.dhs-effect-slide.dhs-dir-next .dhs-slide:not(.is-active) {transform:translateX(-100%);}
.dhs-effect-slide .dhs-slide.is-active {transform:translateX(0);opacity:1;}
.dhs-controls {position:absolute;z-index:5;right:16px;left:auto;bottom:18px;transform:none;max-width:calc(100% - 24px);display:flex;align-items:center;gap:7px;padding:8px;border:1px solid rgba(255,255,255,.45);border-radius:999px;background:rgba(255,255,255,.20);backdrop-filter:blur(22px) saturate(1.45);-webkit-backdrop-filter:blur(22px) saturate(1.45);box-shadow:0 12px 40px rgba(21,18,15,.16),inset 0 1px 0 rgba(255,255,255,.3);pointer-events:auto;}
.dhs-rail {display:flex;align-items:center;gap:6px;max-width: min(32vw,300px);overflow-x:auto;scrollbar-width:none;padding:1px;}
.dhs-rail::-webkit-scrollbar {display:none;}
.dhs-thumb {flex:0 0 48px;width:48px;height:39px;overflow:hidden;padding:0;border:2px solid transparent!important;border-radius:10px;background:rgba(255,255,255,.2);opacity:.76;cursor:pointer;transition:opacity .25s ease,transform .25s ease,border-color .25s ease,box-shadow .25s ease;}
.dhs-thumb img {width:100%;height:100%;object-fit:cover;display:block;}
.dhs-thumb:hover,.dhs-thumb:focus-visible {opacity:1;transform:translateY(-2px);}
.dhs-thumb.is-current {opacity:1;border-color:#fff!important;box-shadow:0 0 0 2px rgba(255,255,255,.23),0 3px 11px rgba(0,0,0,.2);}
.dhs-control {flex:0 0 auto;display:grid;place-items:center;width:33px;height:37px;padding:0;border:0!important;box-shadow:none!important;background:rgba(255,255,255,.16)!important;color:#fff!important;border-radius:999px;cursor:pointer;}
.dhs-control:hover {background:rgba(255,255,255,.33)!important;}
.dhs-control svg {width:19px;height:19px;display:block;}
.dhs-count {font:600 12px/1.1 system-ui,sans-serif;white-space:nowrap;padding:4px 10px;font-variant-numeric:tabular-nums;color:#fff;}
.dhs-cta {flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;
  padding:10px 15px;min-height:39px;max-width:190px;border-radius:999px;
  background:rgba(255,249,245,.94);border:1px solid rgba(255,255,255,.7);color:#35251f!important;
  font:700 12px/1.2 system-ui,sans-serif;text-align:center;text-decoration:none!important;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:0 4px 13px #3320171c;}
.dhs-cta:hover {background:#fff;color:#9c522b!important;}
.dhs-cta[hidden] {display:none!important;}
.dhs-controls a:focus-visible {outline:2px solid #fff;outline-offset:3px;}
.dhs-controls button:focus-visible {outline:2px solid #fff!important;outline-offset:3px;}
@media(max-width:767px){
 .dhs-image{object-position:var(--dhs-pos-mobile,left bottom);}
 .dhs-cta{position:absolute;right:0;top:calc(100% + 8px);bottom:auto;max-width:calc(100% - 15px);background:rgba(255,251,248,.95);font-size:11px;min-height:36px;padding:8px 12px;}
 .dhs-controls{top:12px;bottom:auto;right:10px;left:auto;transform:none;padding:6px;gap:4px;max-width:calc(100% - 20px);}
 .dhs-rail{gap:4px;max-width:min(54vw,260px);}
 .dhs-thumb{flex-basis:39px;width:39px;height:34px;border-radius:8px;}
 .dhs-control{width:28px;height:32px;}
}
@media(prefers-reduced-motion:reduce){
 .dhs-slide,.dhs-slide.is-active,.dhs-thumb{transition:none!important;transform:none!important;}
}

/* 1.6.55: Elementor's original cover background was still visible under the
   contain slide. The slider now owns the image while it is mounted. */
.dhs-slider-mounted { background-image:none!important; }
.dhs-slider-mounted::before { background-image:none!important; }
.dhs-slider-mounted > .dhs-stage .dhs-image {object-fit:contain!important;object-position:var(--dhs-pos-desktop,left bottom)!important;}
.dhs-slider-mounted > .dhs-stage.dhs-fit-cover .dhs-image {object-fit:cover!important;}
.dhs-slider-mounted > .dhs-stage.dhs-fit-cover-bottom .dhs-image {object-fit:cover!important;object-position:left bottom!important;}
.dhs-slider-mounted > .dhs-stage.dhs-fit-cover-bottom .dhs-wash {display:none!important;}
@media(max-width:767px) {
 .dhs-slider-mounted > .dhs-stage .dhs-image {object-position:var(--dhs-pos-mobile,left bottom)!important;}
 .dhs-slider-mounted > .dhs-stage.dhs-fit-cover-bottom .dhs-image {object-position:left bottom!important;}
}

/* 1.6.55 correct stacking: image is a background, not a cover over Elementor copy.
   Navigation / CTA remains independently clickable above the copy. */
.dhs-slider-mounted > .dhs-stage {z-index:0!important;}
.dhs-slider-mounted > .dhs-controls {z-index:6!important;pointer-events:auto!important;}
.dhs-slider-mounted > :not(.dhs-stage):not(.dhs-controls):not(.elementor-background-overlay):not(.elementor-background-video-container) {z-index:2!important;}

/* 1.6.57 — STABLE frame. The height depends on the first image or admin ratio,
   never on the newly selected slide. No height transitions = no jumping. */
.dhs-slider-mounted.dhs-stable-size {
  height:var(--dhs-stable-height)!important;
  min-height:0!important;
  max-height:none!important;
  transition:none!important;
}
.dhs-slider-mounted.dhs-stable-size > .dhs-stage {width:100%;height:100%;}
.dhs-slider-mounted > .dhs-stage.dhs-fit-auto .dhs-image {
  object-fit:contain!important;
  /* Protect lower-left promotional text within the uploaded image. */
  object-position:left bottom!important;
}
@media(max-width:767px){
 .dhs-slider-mounted > .dhs-stage.dhs-fit-auto .dhs-image {object-position:left bottom!important;}
}
/* Different source ratios are accommodated without cutting off the offer text:
   unobtrusive blurred copy fills any side/top bars. */
.dhs-slider-mounted > .dhs-stage.dhs-fit-auto .dhs-wash {display:block!important;}

/* Controls MUST be positioned, not laid out as Elementor content. Earlier
   .dhs-slider-mounted > :not(.dhs-stage) gave them position:relative. */
.dhs-slider-mounted > .dhs-controls {
  position:absolute!important;
  inset:auto 16px 18px auto!important;
  z-index:6!important;
}
@media(max-width:767px){
 .dhs-slider-mounted > .dhs-controls {inset:12px 10px auto auto!important;}
}
