
.ds-popup-wrap{position:fixed;inset:0;z-index:var(--ds-z);pointer-events:none;visibility:hidden}
.ds-popup-wrap.is-open{visibility:visible}
.ds-popup-overlay{position:absolute;inset:0;background:var(--ds-overlay);opacity:0;transition:opacity var(--ds-duration) ease;pointer-events:auto}
.ds-popup-wrap.no-overlay .ds-popup-overlay{display:none}
.ds-popup-wrap.has-blur .ds-popup-overlay{backdrop-filter:blur(var(--ds-blur));-webkit-backdrop-filter:blur(var(--ds-blur))}
.ds-popup-wrap.is-open .ds-popup-overlay{opacity:var(--ds-overlay-opacity)}
.ds-popup-stage{position:absolute;inset:0;display:flex;padding:24px;pointer-events:none;overflow:auto}
.ds-pos-center .ds-popup-stage{align-items:center;justify-content:center}
.ds-pos-top .ds-popup-stage{align-items:flex-start;justify-content:center}
.ds-pos-bottom .ds-popup-stage{align-items:flex-end;justify-content:center}
.ds-pos-left .ds-popup-stage{align-items:center;justify-content:flex-start}
.ds-pos-right .ds-popup-stage{align-items:center;justify-content:flex-end}
.ds-pos-top-left .ds-popup-stage{align-items:flex-start;justify-content:flex-start}
.ds-pos-top-right .ds-popup-stage{align-items:flex-start;justify-content:flex-end}
.ds-pos-bottom-left .ds-popup-stage{align-items:flex-end;justify-content:flex-start}
.ds-pos-bottom-right .ds-popup-stage{align-items:flex-end;justify-content:flex-end}
.ds-popup{position:relative;width:min(100%,var(--ds-width));max-height:var(--ds-maxh);overflow:auto;background:var(--ds-bg);color:var(--ds-text);font-size:var(--ds-font-size);padding:var(--ds-pad);border-radius:var(--ds-radius);border:var(--ds-border-width) var(--ds-border-style) var(--ds-border-color);box-sizing:border-box;pointer-events:auto;opacity:0;transition:opacity var(--ds-duration) ease,transform var(--ds-duration) cubic-bezier(.2,.75,.25,1)}
.ds-popup-content>*:first-child{margin-top:0}.ds-popup-content>*:last-child{margin-bottom:0}
.ds-popup-content h2{color:inherit;line-height:1.15}
.ds-popup-close{position:absolute;top:12px;right:12px;width:42px;height:42px;border:0;padding:0;display:flex;align-items:center;justify-content:center;font-size:var(--ds-close-size);line-height:1;color:var(--ds-close);background:transparent;cursor:pointer;z-index:3}
.ds-close-circle{background:var(--ds-close-bg);border-radius:50%}
.ds-popup-cta{margin-top:24px}.ds-align-center{text-align:center}.ds-align-right{text-align:right}
.ds-popup-button{display:inline-block;padding:12px 22px;background:var(--ds-btn-bg);color:var(--ds-btn-color)!important;border-radius:var(--ds-btn-radius);text-decoration:none;font-weight:700}
.ds-anim-fade{transform:none}.ds-anim-fade-scale{transform:scale(.94)}.ds-anim-slide-up{transform:translateY(45px)}.ds-anim-slide-down{transform:translateY(-45px)}.ds-anim-slide-left{transform:translateX(55px)}.ds-anim-slide-right{transform:translateX(-55px)}.ds-anim-zoom{transform:scale(.75)}.ds-anim-none{transform:none}
.ds-popup-wrap.is-visible .ds-popup{opacity:1;transform:none}
.ds-popup-wrap.is-closing .ds-popup.ds-close-fade{opacity:0;transform:none}
.ds-popup-wrap.is-closing .ds-popup.ds-close-fade-scale{opacity:0;transform:scale(.94)}
.ds-popup-wrap.is-closing .ds-popup.ds-close-slide-up{opacity:0;transform:translateY(-45px)}
.ds-popup-wrap.is-closing .ds-popup.ds-close-slide-down{opacity:0;transform:translateY(45px)}
.ds-popup-wrap.is-closing .ds-popup.ds-close-slide-left{opacity:0;transform:translateX(-55px)}
.ds-popup-wrap.is-closing .ds-popup.ds-close-slide-right{opacity:0;transform:translateX(55px)}
.ds-popup-wrap.is-closing .ds-popup.ds-close-zoom{opacity:0;transform:scale(.75)}
.ds-popup-wrap.is-closing .ds-popup.ds-close-none{opacity:0;transition:none}
html.ds-popup-lock,body.ds-popup-lock{overflow:hidden!important;overscroll-behavior:none!important}
.ds-popup-wrap.has-blur .ds-popup-overlay{background-color:color-mix(in srgb,var(--ds-overlay) calc(var(--ds-overlay-opacity) * 100%),transparent);opacity:1}
@supports not (background:color-mix(in srgb, black 50%, transparent)){.ds-popup-wrap.has-blur .ds-popup-overlay{opacity:var(--ds-overlay-opacity)}}
@media(max-width:767px){.ds-popup-stage{padding:14px}.ds-popup{width:100%;max-height:92vh}}
@media(prefers-reduced-motion:reduce){.ds-popup,.ds-popup-overlay{transition:none!important}}

.ds-popup-overlay{z-index:0}
.ds-popup-cookie-bg{position:absolute!important;inset:0;z-index:1;pointer-events:none}
.ds-popup-stage{z-index:2}
.ds-shadow-none .ds-popup{box-shadow:none}
.ds-shadow-subtle .ds-popup{box-shadow:0 8px 24px rgba(0,0,0,.10)}
.ds-shadow-soft .ds-popup{box-shadow:0 18px 50px rgba(0,0,0,.18)}
.ds-shadow-strong .ds-popup{box-shadow:0 24px 70px rgba(0,0,0,.30)}

/* v1.4: container settings deliberately win over theme/WPBakery defaults */
.ds-popup-wrap .ds-popup{
  border-width:var(--ds-border-width)!important;
  border-style:var(--ds-border-style)!important;
  border-color:var(--ds-border-color)!important;
  border-radius:var(--ds-radius)!important;
}
.ds-popup-cookie-bg{
  display:block!important;
  position:absolute!important;
  top:0!important;right:0!important;bottom:0!important;left:0!important;
  width:100%!important;height:100%!important;
  overflow:hidden!important;
  pointer-events:none!important;
}

/* v1.5 */
.ds-popup-wrap .ds-popup,
.ds-popup-wrap .ds-popup:focus,
.ds-popup-wrap .ds-popup:focus-visible{
  outline:0!important;
  outline-offset:0!important;
}

/* Falling Cookies now clips strictly to the popup itself. */
.ds-popup-wrap .ds-popup.cookie-interactie{
  position:relative!important;
  overflow:auto;
  isolation:isolate;
}

/* Give content breathing room below/away from the close button. */
.ds-popup-wrap .ds-popup-content{
  position:relative;
  z-index:2;
  padding-top:18px;
}
.ds-popup-wrap .ds-popup-close{
  top:16px;
  right:16px;
  z-index:20;
}

/* New gentle rotational entrance, based on the cookie hover feel. */
.ds-anim-gentle-rotate{
  opacity:0;
  transform:translateY(10px) rotate(-2.5deg) scale(.97);
}
.ds-popup-wrap.is-visible .ds-anim-gentle-rotate{
  opacity:1;
  transform:translateY(0) rotate(0deg) scale(1);
}
.ds-popup-wrap.is-closing .ds-popup.ds-close-gentle-rotate{
  opacity:0;
  transform:translateY(8px) rotate(2.5deg) scale(.97);
}

/* Old full-screen cookie host is no longer used. */
.ds-popup-cookie-bg{display:none!important}

/* v1.6 close button */
.ds-popup-wrap .ds-popup-close,
.ds-popup-wrap .ds-popup-close:hover,
.ds-popup-wrap .ds-popup-close:focus,
.ds-popup-wrap .ds-popup-close:active{
  background:transparent!important;
  box-shadow:none!important;
  border:0!important;
}
.ds-popup-wrap .ds-popup-close{color:var(--ds-close)!important}
.ds-popup-wrap .ds-popup-close:hover,
.ds-popup-wrap .ds-popup-close:focus-visible{color:var(--ds-close-hover)!important}
.ds-popup-wrap .ds-popup-content{padding-top:var(--ds-close-gap)!important}

/* Different transition time for closing */
.ds-popup-wrap.is-closing .ds-popup{
  transition-duration:var(--ds-close-duration)!important;
}

/* Optional visual protruding above the popup */
.ds-popup-wrap .ds-popup{overflow:visible!important}
.ds-popup-wrap .ds-popup-content{
  max-height:calc(var(--ds-maxh) - (var(--ds-pad) * 2));
  overflow:auto;
}
.ds-popup-top-visual{
  position:absolute;
  z-index:15;
  top:0;
  left:50%;
  width:min(var(--ds-visual-width),80%);
  transform:translate(-50%,calc(-1 * var(--ds-visual-offset)));
  pointer-events:none;
}
.ds-popup-top-visual img{
  display:block;
  width:100%;
  height:auto;
  max-width:none;
}

/* v1.6.1 – geen zichtbare scrollbar in normale popup */
.ds-popup-wrap .ds-popup-content{
  max-height:none!important;
  overflow:visible!important;
}
/* Alleen wanneer de popup werkelijk hoger wordt dan de ingestelde max. hoogte,
   mag de popup zelf intern scrollen. De scrollbar blijft visueel verborgen. */
.ds-popup-wrap .ds-popup{
  overflow-y:auto!important;
  scrollbar-width:none;
  -ms-overflow-style:none;
}
.ds-popup-wrap .ds-popup::-webkit-scrollbar{
  width:0!important;
  height:0!important;
  display:none!important;
}

/* v1.7 – uitstekende visual + inhoud eronder
   De stage mag niet clippen. De popup zelf is zichtbaar overflow.
   Scrollbeperking gebeurt op de stage/pagina, niet op de popupcontainer. */
.ds-popup-wrap .ds-popup-stage{
  overflow:visible!important;
}
.ds-popup-wrap .ds-popup{
  overflow:visible!important;
  max-height:none!important;
}
.ds-popup-wrap .ds-popup-top-visual{
  top:0!important;
  transform:translate(-50%,calc(-1 * var(--ds-visual-offset)))!important;
}
.ds-popup-wrap .ds-popup:has(.ds-popup-top-visual) .ds-popup-content{
  padding-top:calc(var(--ds-visual-space) + var(--ds-close-gap))!important;
}
/* Fallback voor browsers zonder :has(), class wordt via JS gezet. */
.ds-popup-wrap .ds-popup.ds-has-top-visual .ds-popup-content{
  padding-top:calc(var(--ds-visual-space) + var(--ds-close-gap))!important;
}

/* v1.8 custom popup shadow */
.ds-shadow-custom .ds-popup{
  box-shadow:var(--ds-shadow-x) var(--ds-shadow-y) var(--ds-shadow-blur) var(--ds-shadow-spread)
    rgb(from var(--ds-shadow-color) r g b / var(--ds-shadow-opacity))!important;
}
@supports not (color: rgb(from #000 r g b / .5)){
  .ds-shadow-custom .ds-popup{box-shadow:var(--ds-shadow-x) var(--ds-shadow-y) var(--ds-shadow-blur) var(--ds-shadow-spread) rgba(0,0,0,var(--ds-shadow-opacity))!important}
}

/* v1.8.1 – outside click is handled globally in capture phase */
.ds-popup-wrap.is-open{pointer-events:auto}
.ds-popup-wrap .ds-popup-overlay{pointer-events:auto}
.ds-popup-wrap .ds-popup-stage{pointer-events:none}
.ds-popup-wrap .ds-popup{pointer-events:auto}

/* v1.9 micro-interaction */
@media (hover:hover) and (pointer:fine){
  .ds-popup-wrap.is-visible .ds-popup.ds-micro-interaction{
    transform:perspective(1100px)
      translate3d(var(--ds-shift-x,0px),var(--ds-shift-y,0px),0)
      rotateX(var(--ds-tilt-x,0deg)) rotateY(var(--ds-tilt-y,0deg)) scale(var(--ds-pulse-scale,1))!important;
    transform-style:preserve-3d;
    will-change:transform;
    transition:transform 180ms ease-out,opacity var(--ds-duration) ease;
  }
  .ds-popup-wrap.is-visible .ds-popup.ds-micro-interaction .ds-popup-top-visual{
    margin-left:var(--ds-vpx,0px);
    margin-top:var(--ds-vpy,0px);
    transition:margin 180ms ease-out;
  }
}
@media (prefers-reduced-motion:reduce){
  .ds-popup.ds-micro-interaction{transform:none!important}
}

/* v1.10 hover pulse – entire popup including protruding visual */
@media (hover:hover) and (pointer:fine){
  .ds-popup-wrap.is-visible .ds-popup.ds-hover-pulse:hover{
    animation:ds-popup-hover-pulse var(--ds-hover-duration,1800ms) ease-in-out infinite;
  }
  /* Popup without tilt/parallax */
  .ds-popup-wrap.is-visible .ds-popup.ds-hover-pulse:not(.ds-micro-interaction):hover{
    transform-origin:center center;
  }
  @keyframes ds-popup-hover-pulse{
    0%,100%{--ds-pulse-scale:1}
    50%{--ds-pulse-scale:var(--ds-hover-scale,1.02)}
  }
  /* For non-micro-interaction popups CSS custom property must feed transform too. */
  .ds-popup-wrap.is-visible .ds-popup.ds-hover-pulse:not(.ds-micro-interaction){
    transform:scale(var(--ds-pulse-scale,1))!important;
  }
}
@media (prefers-reduced-motion:reduce){
  .ds-popup.ds-hover-pulse{animation:none!important;--ds-pulse-scale:1!important}
}

/* v1.10.1 – smooth interpolated hover zoom */
@property --ds-pulse-scale {
  syntax: "<number>";
  inherits: false;
  initial-value: 1;
}
@media (hover:hover) and (pointer:fine){
  .ds-popup-wrap.is-visible .ds-popup.ds-hover-pulse:hover{
    animation-name:ds-popup-hover-pulse-smooth!important;
    animation-duration:var(--ds-hover-duration,3200ms)!important;
    animation-timing-function:cubic-bezier(.45,0,.55,1)!important;
    animation-iteration-count:infinite!important;
    animation-direction:normal!important;
  }
  @keyframes ds-popup-hover-pulse-smooth{
    0%{--ds-pulse-scale:1}
    50%{--ds-pulse-scale:var(--ds-hover-scale,1.02)}
    100%{--ds-pulse-scale:1}
  }
}

/* v1.10.2 – hover or continuous pulse */
@media (hover:hover) and (pointer:fine){
  .ds-popup-wrap.is-visible .ds-popup.ds-hover-pulse.ds-pulse-hover:not(:hover){
    animation:none!important;
    --ds-pulse-scale:1;
  }
}
.ds-popup-wrap.is-visible .ds-popup.ds-hover-pulse.ds-pulse-continuous{
  animation-name:ds-popup-hover-pulse-smooth!important;
  animation-duration:var(--ds-hover-duration,3200ms)!important;
  animation-timing-function:cubic-bezier(.45,0,.55,1)!important;
  animation-iteration-count:infinite!important;
}
.ds-popup-wrap.is-visible .ds-popup.ds-hover-pulse.ds-pulse-continuous:not(.ds-micro-interaction){
  transform:scale(var(--ds-pulse-scale,1))!important;
}
@media (prefers-reduced-motion:reduce){
  .ds-popup.ds-pulse-continuous{animation:none!important;--ds-pulse-scale:1!important}
}

/* v1.10.3 – opacity for Falling Cookies effect */
.ds-popup.cookie-interactie .cookie,
.ds-popup.cookie-interactie .falling-cookie,
.ds-popup.cookie-interactie .falling-cookie-item,
.ds-popup.cookie-interactie .cookie-particle,
.ds-popup.cookie-interactie [class*="cookie-fall"],
.ds-popup.cookie-interactie [class*="falling-cookie"]{
  opacity:var(--ds-cookie-opacity,1)!important;
}

/* v1.10.4 – Falling Cookies v1.17 uses .dsfc-element-cookie */
.ds-popup.cookie-interactie .dsfc-element-rain .dsfc-element-cookie{
  opacity:var(--ds-cookie-opacity,1)!important;
}

/* v1.10.5 – optionally keep website interactive behind popup */
.ds-popup-wrap.is-open.ds-page-clickable{
  pointer-events:none!important;
}
.ds-popup-wrap.is-open.ds-page-clickable .ds-popup-overlay,
.ds-popup-wrap.is-open.ds-page-clickable .ds-popup-stage{
  pointer-events:none!important;
}
.ds-popup-wrap.is-open.ds-page-clickable .ds-popup{
  pointer-events:auto!important;
}




/* v1.10.8 – bottom spacing fix.
   The popup itself already carries --ds-pad. Adding padding to .ds-popup-content
   created extra space instead of reducing it. Keep the original popup padding,
   but remove WPBakery's trailing row/element margin at the very end. */
.ds-popup-wrap .ds-popup-content{
  padding-bottom:0!important;
}
.ds-popup-wrap .ds-popup-content > :last-child,
.ds-popup-wrap .ds-popup-content > :last-child > .vc_row:last-child,
.ds-popup-wrap .ds-popup-content .wpb_content_element:last-child,
.ds-popup-wrap .ds-popup-content .wpb_button:last-child,
.ds-popup-wrap .ds-popup-content .vc_btn3-container:last-child{
  margin-bottom:0!important;
}
