/* DSD interaction layer. Based on the supplied Bustar button/button.css,
   rs-service-grid.css, image-widget.css, default.scss (.phone a::after)
   and progress/rs-progress.css. Selectors are scoped to builder content. */
.dsd-page .dsd-node-button,.dsd-page .dsd-form-submit,.dsd-page .dsd-carousel-controls button,.dsd-page .dsd-carousel-filters button{
  position:relative;cursor:pointer;transition:background-color .3s ease 0s,color .3s ease 0s,border-color .3s ease 0s
}
.dsd-page a.dsd-button-surface{align-items:center;justify-content:center;text-decoration:none}
.dsd-page .dsd-node-button:is(:hover,:focus-visible,:focus-within),
.dsd-page .dsd-form-submit:is(:hover,:focus-visible),
.dsd-page .dsd-carousel-controls button:not(:disabled):is(:hover,:focus-visible),
.dsd-page .dsd-carousel-filters button:is(:hover,:focus-visible){
  background:var(--dsd-hover-bg,var(--dsd-hover-auto,#ab052d))!important;color:var(--dsd-hover-ink,#fff)!important;opacity:1
}
.dsd-page .dsd-node-button:is(:hover,:focus-visible,:focus-within)>.dsd-link-button{color:inherit;opacity:1}
.dsd-page .dsd-node-button:is(:hover,:focus-visible,:focus-within)>.dsd-link-button svg{color:inherit}
/* Bustar Remix Icon ri-arrow-left-line / ri-arrow-right-line; color follows the entire button. */
.dsd-page .dsd-carousel-controls button{--dsd-diameter:var(--dsd-carousel-arrow-size,44px);width:var(--dsd-diameter)!important;height:var(--dsd-diameter)!important;min-width:var(--dsd-diameter)!important;min-height:var(--dsd-diameter)!important;max-width:var(--dsd-diameter)!important;max-height:var(--dsd-diameter)!important;aspect-ratio:1!important;flex:0 0 var(--dsd-diameter)!important;padding:0;border-radius:50%!important;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;line-height:1}
.dsd-page .dsd-carousel-controls button::before{content:"";display:block;width:50%;height:50%;background-color:currentColor;mask:var(--dsd-arrow) center/contain no-repeat;-webkit-mask:var(--dsd-arrow) center/contain no-repeat}
.dsd-page .dsd-carousel-controls [data-carousel-prev]{--dsd-arrow:url("vendor/arrow-left.svg")}
.dsd-page .dsd-carousel-controls [data-carousel-next]{--dsd-arrow:url("vendor/arrow-right.svg")}
.dsd-page [data-dsd-icon-hover="white"] :is(img,svg){transition:filter .3s ease,color .3s ease}
.dsd-page [data-dsd-icon-hover="white"]:is(:hover,:focus-within) :is(img,svg),
.dsd-page [data-dsd-hover-group="true"]:is(:hover,:focus-within) [data-dsd-icon-hover="white"] :is(img,svg){filter:brightness(0) invert(1);color:white}
.dsd-page [data-dsd-line="true"]::before,.dsd-page [data-dsd-line="true"]::after{position:absolute;content:"";height:var(--dsd-line-width,1px);bottom:0;pointer-events:none}
.dsd-page [data-dsd-line="true"]::before{width:100%;left:0;background:var(--dsd-line-track,currentColor)}
.dsd-page [data-dsd-line="true"]::after{left:0;right:auto;width:var(--dsd-line-rest,0%);background:var(--dsd-line-color,currentColor);transition:width var(--dsd-line-time,.3s) ease}
.dsd-page [data-dsd-line="true"]:is(:hover,:focus-visible,:focus-within)::after,
.dsd-page [data-dsd-hover-group="true"]:is(:hover,:focus-within) [data-dsd-line="true"]::after{width:100%}
.dsd-page .dsd-node-divider[data-dsd-line="true"]{border-top-color:transparent!important;min-height:var(--dsd-line-width,1px)}
.dsd-page .dsd-node-divider[data-dsd-line="true"]>.dsd-divider-line{height:10px;position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);pointer-events:auto;opacity:0}
.dsd-page [data-dsd-reveal="left-to-right"]{--dsd-reveal-x:-50%;--dsd-reveal-y:0%;--dsd-hidden-inset:inset(0 100% 0 0)}
.dsd-page [data-dsd-reveal="right-to-left"]{--dsd-reveal-x:50%;--dsd-reveal-y:0%;--dsd-hidden-inset:inset(0 0 0 100%)}
.dsd-page [data-dsd-reveal="bottom-to-top"]{--dsd-reveal-x:0%;--dsd-reveal-y:50%;--dsd-hidden-inset:inset(100% 0 0 0)}
.dsd-page [data-dsd-reveal="top-to-bottom"]{--dsd-reveal-x:0%;--dsd-reveal-y:-50%;--dsd-hidden-inset:inset(0 0 100% 0)}
.dsd-page .dsd-fx-ready[data-dsd-reveal]{clip-path:var(--dsd-hidden-inset,inset(0))}
.dsd-page .dsd-fx-ready.dsd-fx-active[data-dsd-reveal]{animation:dsd-photo-reveal var(--dsd-reveal-time,1s) cubic-bezier(.215,.61,.355,1) both}
/* Original Bustar rs-anim-int.js: wrapper xPercent ±50 with the photographic
   content travelling in the opposite direction from scale 1.3 → 1. Separate
   layers leave the user's persistent pan, crop and responsive dimensions intact. */
@media(prefers-reduced-motion:no-preference){
  .dsd-page .dsd-fx-active[data-dsd-reveal]>.dsd-media-figure{animation:dsd-reveal-frame var(--dsd-reveal-time,1s) cubic-bezier(.215,.61,.355,1) both}
  .dsd-page .dsd-fx-active[data-dsd-reveal]>.dsd-media-figure .dsd-photo-viewport{animation:dsd-reveal-photo var(--dsd-reveal-time,1s) cubic-bezier(.215,.61,.355,1) both}
}
@keyframes dsd-reveal-frame{from{transform:translate(var(--dsd-reveal-x,0%),var(--dsd-reveal-y,0%))}to{transform:none}}
@keyframes dsd-reveal-photo{from{transform:translate(calc(0% - var(--dsd-reveal-x,0%)),calc(0% - var(--dsd-reveal-y,0%))) scale(var(--dsd-reveal-start-scale,1.3))}to{transform:none}}
@keyframes dsd-photo-reveal{from{clip-path:var(--dsd-hidden-inset,inset(0))}to{clip-path:inset(0)}}
.dsd-page .dsd-entrance-ready[data-dsd-entrance="fade-up"]{opacity:0;transform:translateY(28px)}
.dsd-page .dsd-entrance-ready.dsd-entrance-active[data-dsd-entrance="fade-up"]{animation:dsd-fade-up var(--dsd-entrance-time,1s) cubic-bezier(.215,.61,.355,1) both}
@keyframes dsd-fade-up{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
.dsd-page .dsd-progress-track.dsd-fx-ready>span{transition:none!important}
@media(prefers-reduced-motion:reduce){
  .dsd-page .dsd-fx-ready[data-dsd-reveal]{animation:none!important;clip-path:none!important}
  .dsd-page [data-dsd-line="true"]::after,.dsd-page [data-dsd-icon-hover="white"] :is(img,svg){transition:none!important}
}
@media print{
  .dsd-page .dsd-fx-ready[data-dsd-reveal]{animation:none!important;clip-path:none!important}
  .dsd-page .dsd-progress-track.dsd-fx-ready>span{width:var(--dsd-progress-goal)!important}
}

.dsd-page .dsd-source-icon path{fill:var(--dsd-icon-color,#2B3944);transition:fill .3s ease}
.dsd-page .dsd-node-image:is(:hover,:focus-within) .dsd-source-icon path,
.dsd-page [data-dsd-hover-group="true"]:is(:hover,:focus-within) .dsd-source-icon path{fill:var(--dsd-icon-hover-color,var(--dsd-icon-color,#2B3944))}
.dsd-page [data-dsd-icon-hover="white"]:is(:hover,:focus-within) .dsd-source-icon,
.dsd-page [data-dsd-hover-group="true"]:is(:hover,:focus-within) [data-dsd-icon-hover="white"] .dsd-source-icon{filter:none}
.dsd-page [data-dsd-icon-hover="white"]:is(:hover,:focus-within) .dsd-source-icon path,
.dsd-page [data-dsd-hover-group="true"]:is(:hover,:focus-within) [data-dsd-icon-hover="white"] .dsd-source-icon path{fill:var(--dsd-icon-hover-color,#fff)}

/* Source services-inner.box:hover .media_wrap SVGs change fill, and the
   wrapped tile changes background. External media keeps real pixels underneath its optional color overlay. */
.dsd-page [data-dsd-icon-tile="true"]{transition:background-color .3s ease}
.dsd-page [data-dsd-icon-tile="true"]:is(:hover,:focus-within),
.dsd-page [data-dsd-hover-group="true"]:is(:hover,:focus-within) [data-dsd-icon-tile="true"]{background-color:var(--dsd-icon-tile-hover-bg,#fff)!important}
@supports ((mask-image:linear-gradient(black,black)) or (-webkit-mask-image:linear-gradient(black,black))){
.dsd-page [data-dsd-icon-tint="true"] .dsd-photo-viewport::after{
  content:"";pointer-events:none;position:absolute;inset:0;background-color:var(--dsd-icon-color,currentColor);
  -webkit-mask-image:var(--dsd-icon-mask);mask-image:var(--dsd-icon-mask);
  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;
  -webkit-mask-position:center;mask-position:center;transition:background-color .3s ease,filter .3s ease;
}
.dsd-page [data-dsd-icon-tint="true"]:is(:hover,:focus-within) .dsd-photo-viewport::after,
.dsd-page [data-dsd-hover-group="true"]:is(:hover,:focus-within) [data-dsd-icon-tint="true"] .dsd-photo-viewport::after{background-color:var(--dsd-icon-hover-color,#fff)}
}
.dsd-page .dsd-carousel-controls button[hidden]{display:none!important}
.dsd-page :is(.dsd-menu-toggle,.dsd-submenu-toggle):is(:hover,:focus-visible){background-color:var(--dsd-hover-bg,#ab052d);color:var(--dsd-hover-ink,white)}


.dsd-page [data-dsd-line="true"][data-dsd-line-edge="bottom"]{border-bottom-color:transparent!important}

.dsd-page [data-dsd-zoom]{--dsd-reveal-start-scale:1}
/* Independent scale preserves photo framing/pan and the original directional reveal. */
.dsd-page [data-dsd-zoom].dsd-zoom-active .dsd-photo-plane,
.dsd-page img[data-dsd-zoom].dsd-zoom-active{animation:dsd-image-zoom-in var(--dsd-zoom-time,1.2s) ease-in-out both;transform-origin:center}
.dsd-page [data-dsd-zoom="out"].dsd-zoom-active .dsd-photo-plane,
.dsd-page img[data-dsd-zoom="out"].dsd-zoom-active{animation-name:dsd-image-zoom-out}
.dsd-page :has(>img[data-dsd-zoom]){overflow:clip}
@keyframes dsd-image-zoom-in{from{scale:1}to{scale:var(--dsd-zoom-scale,1.15)}}
@keyframes dsd-image-zoom-out{from{scale:var(--dsd-zoom-scale,1.15)}to{scale:1}}
@media(prefers-reduced-motion:reduce){
 .dsd-page [data-dsd-zoom] .dsd-photo-plane,.dsd-page img[data-dsd-zoom]{animation:none!important;scale:1!important}
}

/* Native component images carry both effects on the same element. */
.dsd-page img.dsd-fx-active[data-dsd-reveal].dsd-zoom-active{animation:dsd-photo-reveal var(--dsd-reveal-time,1s) cubic-bezier(.215,.61,.355,1) both,dsd-image-zoom-in var(--dsd-zoom-time,1.2s) ease-in-out both}
.dsd-page img.dsd-fx-active[data-dsd-reveal].dsd-zoom-active[data-dsd-zoom="out"]{animation-name:dsd-photo-reveal,dsd-image-zoom-out}
