.pp-image-comparison {
  position: relative;
  overflow: hidden;
}
.pp-image-comparison * {
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
}

.pp-image-comparison-overlay {
  position: absolute;
  top: 0;
  width: 100%;
  height: 100%;
  -webkit-transition-duration: 0.5s;
          transition-duration: 0.5s;
  -webkit-transition-property: background;
  transition-property: background;
  background: transparent;
  z-index: 25;
}
.pp-image-comparison-overlay:hover {
  background-color: rgba(0, 0, 0, 0.5);
}

.pp-before-image img,
.pp-after-image img {
  max-width: 100%;
  vertical-align: middle;
  width: 100%;
}

.pp-after-image {
  position: absolute;
  top: 0;
  right: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.pp-after-image img {
  position: absolute;
  top: 0;
}

.pp-comparison-handle {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  position: absolute;
  top: 50%;
  right: 50%;
  z-index: 3;
  height: 100%;
  cursor: pointer;
  -ms-touch-action: none;
      touch-action: none;
  z-index: 40;
}

.pp-image-comparison-horizontal .pp-comparison-handle {
  margin-right: -21px;
  margin-top: -21px;
}

.pp-image-comparison-vertical .pp-comparison-divider {
  margin-top: -21px;
  top: 50%;
  right: auto;
  width: 100%;
  height: auto;
}

.pp-comparison-handle {
  border: 2px solid #FFF;
  border-radius: 100%;
  -webkit-box-shadow: 0px 0px 12px rgba(51, 51, 51, 0.5);
          box-shadow: 0px 0px 12px rgba(51, 51, 51, 0.5);
  color: #FFF;
  fill: #FFF;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: 42px;
  height: 42px;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 6px;
}
.pp-comparison-handle svg {
  fill: currentColor;
  width: auto;
  height: 1em;
}

.pp-image-comparison-vertical .pp-after-image img {
  top: auto;
}

.pp-image-comparison-vertical .pp-comparison-handle {
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}

.pp-image-comparison-horizontal .pp-comparison-handle:before,
.pp-image-comparison-horizontal .pp-comparison-handle:after {
  background-color: #FFF;
  -webkit-box-shadow: 0px 0px 12px rgba(51, 51, 51, 0.5);
          box-shadow: 0px 0px 12px rgba(51, 51, 51, 0.5);
  content: "";
  display: block;
  position: absolute;
  height: 9999px;
}

.pp-image-comparison-horizontal .pp-comparison-handle:before {
  width: 2px;
  margin-right: -1px;
  margin-bottom: 21px;
  right: 50%;
  bottom: 50%;
}

.pp-image-comparison-horizontal .pp-comparison-handle:after {
  width: 2px;
  margin-right: -1px;
  margin-top: 21px;
  right: 50%;
  top: 50%;
}

.pp-image-comparison-vertical .pp-comparison-handle:before,
.pp-image-comparison-vertical .pp-comparison-handle:after {
  background-color: #FFF;
  -webkit-box-shadow: 0px 0px 12px rgba(51, 51, 51, 0.5);
          box-shadow: 0px 0px 12px rgba(51, 51, 51, 0.5);
  content: "";
  display: block;
  position: absolute;
  width: 9999px;
}

.pp-image-comparison-vertical .pp-comparison-handle:before {
  height: 2px;
  margin-left: 1px;
  left: 50%;
  top: 50%;
}

.pp-image-comparison-vertical .pp-comparison-handle:after {
  height: 2px;
  margin-right: 1px;
  right: 50%;
  top: 50%;
}

.pp-comparison-label {
  position: absolute;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  padding: 15px;
}
.pp-comparison-label > span {
  background-color: rgba(255, 255, 255, 0.2);
  border-radius: 2px;
  color: #FFF;
  font-size: 13px;
  line-height: 38px;
  padding: 0 20px;
}

.pp-image-comparison-horizontal .pp-comparison-label {
  top: 0;
  height: 100%;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}

.pp-image-comparison-horizontal .pp-comparison-label-before {
  right: 0;
}

.pp-image-comparison-horizontal .pp-comparison-label-after {
  left: 0;
}

.pp-image-comparison-vertical .pp-comparison-label {
  right: 0;
  width: 100%;
}

.pp-image-comparison-vertical .pp-comparison-label-before {
  top: 0;
}

.pp-image-comparison-vertical .pp-comparison-label-after {
  bottom: 0;
}