/* DSD Strategy Services 001 — front-end.
   PART 1 and PART 2 are the ORIGINAL Design Studio D stylesheets from the source zip (service-slider-widget.css, heading.css), copied verbatim.
   PART 3 = the theme variables they rely on (values from default.css of the same zip) + the plugin's own scoping/defaults measured from the reference screenshot. */

/* ===== PART 1 — service-slider-widget.css (verbatim) ===== */
.rs-service-slider-grid .grid-wrapper {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 30px 30px;
  align-items: flex-start;
}
.rs-service-slider-grid .service-item {
  position: relative;
  display: flex;
  flex-direction: column;
  transition: var(--transition);
}
.rs-service-slider-grid .service-item .thumbnail {
  margin: 0 0 30px;
  overflow: hidden;
  flex-shrink: 0;
}
.rs-service-slider-grid .service-item .thumbnail img {
  width: 100%;
  border-radius: 6px;
  transition: var(--transition);
}
.rs-service-slider-grid .service-item .icon {
  font-size: 50px;
  color: var(--primaryColor);
  margin: 0 0 25px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: var(--transition);
}
.rs-service-slider-grid .service-item .icon svg,
.rs-service-slider-grid .service-item .icon img {
  width: 1em;
  height: 1em;
}
.rs-service-slider-grid .service-item .icon svg {
  fill: currentColor;
}
.rs-service-slider-grid .service-item .content {
  position: relative;
  transition: var(--transition);
}
.rs-service-slider-grid .service-item .sub-title {
  transition: var(--transition);
}
.rs-service-slider-grid .service-item .feature-list {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0;
  padding: 0;
}
.rs-service-slider-grid .service-item .feature-list li {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  max-width: 49.14%;
  transition: var(--transition);
}
.rs-service-slider-grid .service-item .feature-list li:before {
  content: "\eb7b";
  font-family: remixicon;
  color: var(--bodyColor);
  line-height: 1;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  border: 1px solid var(--bodyColor);
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  flex-shrink: 0;
  transition: var(--transition);
}
.rs-service-slider-grid .service-item .feature-list li.feature-cross:before {
  content: "\eb99";
}
.rs-service-slider-grid .service-item .btn-wrap a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 20px;
  border-radius: 30px;
  background: var(--primaryColor);
  color: var(--whiteColor);
  transition: var(--transition);
}
.rs-service-slider-grid .service-item .btn-wrap a:hover {
  background: var(--secondaryColor);
  color: var(--whiteColor);
}
.rs-service-slider-grid .service-item .btn-wrap a svg {
  fill: currentColor;
  width: 1em;
  height: 1em;
}
.rs-service-slider-grid .service-item .title {
  margin: 0;
  transition: var(--transition);
  color: var(--titleColor);
}
.rs-service-slider-grid .service-item .title a {
  color: var(--titleColor);
}
.rs-service-slider-grid .service-item .title-animated-border {
  position: relative;
  padding-bottom: 22px;
}
.rs-service-slider-grid .service-item .title-animated-border::before, .rs-service-slider-grid .service-item .title-animated-border::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 1px;
  background-color: rgba(0, 0, 0, 0.15);
  transition: 0.4s;
}
.rs-service-slider-grid .service-item .title-animated-border::after {
  background-color: rgb(0, 0, 0);
  width: 70px;
}
.rs-service-slider-grid .service-item .description {
  margin: 20px 0 0;
  transition: var(--transition);
}
.rs-service-slider-grid .service-item.hovered-item .title-animated-border::after, .rs-service-slider-grid .service-item:hover .title-animated-border::after {
  width: 85%;
}
.rs-service-slider-grid .service-item.icon-effect-active:hover .icon {
  animation: tubeline 0.6s;
}
.rs-service-slider-grid.style-one .service-item .thumbnail {
  margin: 0;
}
.rs-service-slider-grid.style-one .service-item .content {
  position: absolute;
  left: 0;
  bottom: 0;
  width: calc(100% - 30px);
  padding: 40px 30px;
  border-radius: 0 6px 0 6px;
  background: radial-gradient(175% 135% at 35% -15%, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.5) 100%);
  backdrop-filter: blur(42px);
  transition: 0.4s;
}
.rs-service-slider-grid.style-one .service-item .title,
.rs-service-slider-grid.style-one .service-item .title a,
.rs-service-slider-grid.style-one .service-item .description,
.rs-service-slider-grid.style-one .service-item .icon {
  color: var(--whiteColor);
}
.rs-service-slider-grid.style-one .service-item .title-animated-border::before, .rs-service-slider-grid.style-one .service-item .title-animated-border::after {
  background-color: rgba(255, 255, 255, 0.15);
}
.rs-service-slider-grid.style-one .service-item .title-animated-border::after {
  background-color: rgb(255, 255, 255);
}
.rs-service-slider-grid.style-one .service-item .icon {
  margin: 0 20px 0 0;
  flex-shrink: 0;
}
.rs-service-slider-grid.style-one .service-item .title-icon-wrap {
  display: flex;
  align-items: center;
}
.rs-service-slider-grid.style-one .service-item .description {
  display: none;
  transition: none;
}

@keyframes tubeline {
  from, to {
    transform: scale(1, 1);
  }
  25% {
    transform: scale(0.7, 1.1);
  }
  50% {
    transform: scale(1.1, 0.7);
  }
  75% {
    transform: scale(0.95, 1.05);
  }
}

/* ===== PART 2 — heading.css, rules used by this block (verbatim) ===== */
.prelements-heading .title-inner {
  position: relative;
}
.prelements-heading .title-inner .title {
  margin-bottom: 11px;
  stroke: var(--titleColor);
  -webkit-text-stroke-color: var(--titleColor);
}
.prelements-heading .title-inner span.sub-text {
  display: inline-block;
  color: var(--titleColor);
  font-weight: 500;
  margin-bottom: 14px;
  position: relative;
}
.prelements-heading .descripti p {
  margin-bottom: 10px;
}

/* ===== PART 3 — variables + block scoping + reference defaults ===== */
.dsdss{--primaryColor:#AB052D;--secondaryColor:#2B3944;--titleColor:#2B3944;--bodyColor:#616C74;--whiteColor:#ffffff;--transition:all 0.3s ease 0s;--bodyFont:"Inter Tight",sans-serif;--titleFont:"Inter Tight",sans-serif;
  --dsdss-lift:0px;--dsdss-zoom:1;--dsdss-blur:42px;--dsdss-tint:.35;--dsdss-panel-op:100;--dsdss-dur:.3s;--dsdss-ease:ease;--dsdss-open:1.2s;
  position:relative;box-sizing:border-box;width:100%;margin-left:auto;margin-right:auto;padding:70px 0 84px;font-family:var(--bodyFont);color:var(--bodyColor);overflow:visible}
.dsdss *,.dsdss *::before,.dsdss *::after{box-sizing:border-box}
.dsdss p,.dsdss h1,.dsdss h2,.dsdss h3,.dsdss h4,.dsdss div,.dsdss span,.dsdss a{font-family:inherit}
.dsdss .grid-wrapper::before,.dsdss .grid-wrapper::after,.dsdss-inner::before,.dsdss-inner::after,.dsdss .title-icon-wrap::before,.dsdss .title-icon-wrap::after{content:none!important;display:none!important}
/* dark band behind the lower half (reference: starts 375px above the block bottom) */
.dsdss-band{position:absolute;left:0;right:0;bottom:0;height:375px;background-color:var(--secondaryColor);z-index:0}
.dsdss-inner{position:relative;z-index:1;width:100%;max-width:1430px;margin:0 auto;padding:0}
/* heading — measured: kicker 14px/500/uppercase/2.5px spacing, title 56px/600, description 18px */
.dsdss-head{text-align:center;margin:0 0 60px}
.dsdss .title-inner .title{font-family:var(--titleFont);font-size:56px;font-weight:600;line-height:1.15;letter-spacing:-.5px;color:var(--titleColor);margin-top:0}
.dsdss .title-inner span.sub-text{font-size:14px;letter-spacing:2.5px;text-transform:uppercase;line-height:1.2}
.dsdss .descripti p{font-size:18px;line-height:1.6;color:var(--bodyColor);margin-top:0}
.dsdss .descripti p:last-child{margin-bottom:0}
/* cards — reference: 3 columns, 30px gap, image 454x494, radius 6 */
.dsdss .service-item{transition:transform var(--dsdss-dur) var(--dsdss-ease),box-shadow var(--dsdss-dur) var(--dsdss-ease)}
.dsdss .service-item:hover{transform:translateY(var(--dsdss-lift))}
.dsdss .service-item .thumbnail{position:relative;border-radius:6px}
.dsdss .service-item .thumbnail img,.dsdss .service-item .thumbnail video,.dsdss .service-item .thumbnail .dsdss-ph{display:block;width:100%;aspect-ratio:454/494;object-fit:cover;border-radius:6px;transition:transform var(--dsdss-dur) var(--dsdss-ease),filter var(--dsdss-dur) var(--dsdss-ease)}
.dsdss .service-item:hover .thumbnail img,.dsdss .service-item:hover .thumbnail video{transform:scale(var(--dsdss-zoom))}
.dsdss .service-item .thumbnail::after{content:"";position:absolute;inset:0;border-radius:6px;background-color:transparent;pointer-events:none;transition:background-color var(--dsdss-dur) var(--dsdss-ease)}
.dsdss .service-item .thumbnail .dsdss-ph{background:linear-gradient(135deg,#e8e4de,#c9c1b8)}
.dsdss.style-one .service-item .content{background:none;-webkit-backdrop-filter:none;backdrop-filter:none;z-index:2;transition:all var(--dsdss-open) var(--dsdss-ease)}
/* the glass layer is a real element (.dsdss-glass) so theme pseudo-element rules cannot remove it; "Panel opacity" fades tint + blur without fading the text */
.dsdss.style-one .service-item .content .dsdss-glass{display:block;position:absolute;inset:0;border-radius:inherit;z-index:0;pointer-events:none;background:radial-gradient(175% 135% at 35% -15%,rgba(0,0,0,var(--dsdss-tint)) 0%,rgba(0,0,0,var(--dsdss-tint)) 100%);-webkit-backdrop-filter:blur(var(--dsdss-blur));backdrop-filter:blur(var(--dsdss-blur));opacity:calc(var(--dsdss-panel-op,100) / 100)}
.dsdss.style-one .service-item .content>*{position:relative;z-index:1}
.dsdss.style-one .service-item .content::before,.dsdss.style-one .service-item .content::after{content:none!important;display:none!important}
/* slow reveal: the panel grows and the description fades in over --dsdss-open (the original snaps instantly) */
.dsdss.style-one .service-item .description{display:block;max-height:0;opacity:0;overflow:hidden;margin-top:0;transition:max-height var(--dsdss-open) var(--dsdss-ease),opacity var(--dsdss-open) var(--dsdss-ease),margin-top var(--dsdss-open) var(--dsdss-ease)}
.dsdss .service-item .title-animated-border::after{transition:width var(--dsdss-open) var(--dsdss-ease)}
.dsdss .service-item.hovered-item .title-animated-border::after,.dsdss .service-item:hover .title-animated-border::after{width:95%}
.dsdss .service-item .icon svg{width:1em;height:1em;stroke:currentColor;fill:none}
.dsdss .service-item .title{font-family:var(--titleFont);font-size:26px;font-weight:600;line-height:1.2}
.dsdss .service-item .title a{text-decoration:none;transition:var(--transition)}
.dsdss .service-item .icon img{width:1em;height:1em;object-fit:contain}
.dsdss .service-item .description{font-size:18px;line-height:1.6;text-align:left}
/* description: hidden in the original style-one, shown for the open (hovered-item) card and on hover */
.dsdss.dsdss-desc-hover .service-item:hover .description,.dsdss.dsdss-desc-hover .service-item.hovered-item .description,.dsdss.dsdss-desc-always .service-item .description{max-height:400px;opacity:1;margin-top:20px}
.dsdss.dsdss-desc-never .service-item .description{display:none}
.dsdss.dsdss-desc-hover:not(.dsdss-keep) .service-item.hovered-item.is-off .description{max-height:0;opacity:0;margin-top:0}
.dsdss.dsdss-desc-hover:not(.dsdss-keep) .service-item.hovered-item.is-off .title-animated-border::after{width:70px}
.dsdss-cover{position:absolute;inset:0;z-index:5}
/* entrance animations (optional, off by default) */
.dsdss-anim-fade .service-item,.dsdss-anim-up .service-item,.dsdss-anim-scale .service-item{opacity:0;transition:opacity .55s ease,transform .55s var(--dsdss-ease);transition-delay:calc(var(--dsdss-i,0) * var(--dsdss-stagger,120ms))}
.dsdss-anim-up .service-item{transform:translateY(28px)}
.dsdss-anim-scale .service-item{transform:scale(.94)}
.dsdss.is-inview .service-item{opacity:1;transform:none}
/* tablet / phone — original grid collapses to 2 / 1 columns */
@media (max-width:1024px){.dsdss .grid-wrapper{grid-template-columns:repeat(2,minmax(0,1fr))}.dsdss .title-inner .title{font-size:44px}.dsdss{padding:56px 24px 64px}.dsdss-band{height:45%}}
@media (max-width:767px){.dsdss .grid-wrapper{grid-template-columns:repeat(1,minmax(0,1fr))}.dsdss .title-inner .title{font-size:34px}.dsdss .descripti p{font-size:16px}.dsdss{padding:44px 16px 48px}.dsdss-head{margin-bottom:36px}.dsdss.style-one .service-item .content{padding:28px 22px}.dsdss .service-item .title{font-size:22px}}
