/* =========================================================== */
/* 00. Widget - Elementor Imagebox
/* =========================================================== */
.elementor-widget-dplf_image_box .dplf-imagebox-img {
  position: relative;
  text-align: center;
}

.elementor-widget-dplf_image_box .dplf-imagebox-img .dplf-imagebox-img{
  position: relative;
  overflow: hidden;
}

.elementor-widget-dplf_image_box .dplf-imagebox-img .dplf-imagebox-img img{
  transition: transform 2.5s cubic-bezier(.17, .05, .13, .85);
}

.elementor-widget-dplf_image_box .dplf-imagebox-content {
  position: relative;
  padding-top: 20px;
  z-index: 999;
  width: 100%;
}

.elementor-widget-dplf_image_box .dplf-imagebox-title {
  margin: 0 0 12px;
}

.elementor-widget-dplf_image_box .dplf-imagebox-desc{
  margin: 0;
  color: var(--dplf-color-text-body);
}

.elementor-widget-dplf_image_box .dplf-imagebox-button{
  margin-top: 20px;
}

@media (min-width: 768px) {
  .elementor-widget-dplf_image_box.dplf-imgbox-img-position--left .dplf-imagebox-wrapper,
  .elementor-widget-dplf_image_box.dplf-imgbox-img-position--right .dplf-imagebox-wrapper {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
  }

  .elementor-widget-dplf_image_box.dplf-imgbox-img-position--right .dplf-imagebox-wrapper {
    text-align: right;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
    -ms-flex-direction: row-reverse;
    flex-direction: row-reverse;
  }

  .elementor-widget-dplf_image_box.dplf-imgbox-img-position--right .dplf-imagebox-content {
    padding-top: 0;
    padding-right: 30px;
  }

  .elementor-widget-dplf_image_box.dplf-imgbox-img-position--left .dplf-imagebox-wrapper {
    text-align: left;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -ms-flex-direction: row;
    flex-direction: row;
  }

  .elementor-widget-dplf_image_box.dplf-imgbox-img-position--left .dplf-imagebox-content {
    padding-top: 0;
    padding-left: 30px;
  }

  .elementor-widget-dplf_image_box.dplf-imgbox-img-position--top .dplf-imagebox-wrapper {
    margin: auto;
  }

  .elementor-widget-dplf_image_box.elementor-vertical-align-top .dplf-imagebox-wrapper {
    -webkit-box-align: start;
    -ms-flex-align: start;
    align-items: flex-start;
  }

  .elementor-widget-dplf_image_box.elementor-vertical-align-middle .dplf-imagebox-wrapper {
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
  }

  .elementor-widget-dplf_image_box.elementor-vertical-align-bottom .dplf-imagebox-wrapper {
    -webkit-box-align: end;
    -ms-flex-align: end;
    align-items: flex-end;
  }
}

@media (max-width: 767px) {
  .elementor-widget-dplf_image_box .dplf-imagebox-wrapper {
    margin-left: auto !important;
    margin-right: auto !important;
  }
}

/* SVG Icon */
.dplf-imagebox-heading-icon {
    display: inline-flex;
    vertical-align: middle;
    transition: all 0.3s ease;
}

.dplf-imagebox-heading-icon svg {
    display: inline-block;
}

.dplf-imagebox-heading-icon-before {
    margin-right: 0.1em;
    margin-left: 0;
}

.dplf-imagebox-heading-icon-after {
    margin-left: 0.1em;
    margin-right: 0;
}

.dplf-imagebox-heading-icon.dplf-imagebox-heading-icon-inline {
    display: inline-flex;
    vertical-align: middle;
}

.dplf-imagebox-heading-icon.dplf-imagebox-heading-icon-block {
    display: block;
    margin-top: 0.5em;
    margin-bottom: 0.5em;
}

.dplf-imagebox-heading-icon-before.dplf-imagebox-heading-icon-block {
    margin-bottom: 0.5em;
    margin-right: 0;
}

.dplf-imagebox-heading-icon-after.dplf-imagebox-heading-icon-block {
    margin-top: 0.5em;
    margin-left: 0;
}

/* Icon Rotation animations */
.dplf-icon-hover-rotate-45 .dplf-imagebox-content:hover .dplf-imagebox-heading-icon {
    transform: rotate(45deg);
}

.dplf-icon-hover-rotate-90 .dplf-imagebox-content:hover .dplf-imagebox-heading-icon {
    transform: rotate(90deg);
}

.dplf-icon-hover-rotate-180 .dplf-imagebox-content:hover .dplf-imagebox-heading-icon {
    transform: rotate(180deg);
}

.dplf-icon-hover-rotate-360 .dplf-imagebox-content:hover .dplf-imagebox-heading-icon {
    transform: rotate(360deg);
}

/* Icon Flip animations */
.dplf-icon-hover-flip-x .dplf-imagebox-content:hover .dplf-imagebox-heading-icon {
    transform: scaleX(-1);
}

.dplf-icon-hover-flip-y .dplf-imagebox-content:hover .dplf-imagebox-heading-icon {
    transform: scaleY(-1);
}

/* Icon Bounce animation */
@keyframes dplf-icon-bounce {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-10px); }
}

.dplf-icon-hover-bounce .dplf-imagebox-content:hover .dplf-imagebox-heading-icon {
    animation: dplf-icon-bounce 0.5s ease infinite;
}

/* Icon Pulse animation */
@keyframes dplf-icon-pulse {
    0% { transform: scale(1); }
    50% { transform: scale(1.2); }
    100% { transform: scale(1); }
}

.dplf-icon-hover-pulse .dplf-imagebox-content:hover .dplf-imagebox-heading-icon {
    animation: dplf-icon-pulse 1s ease infinite;
}

/* Icon Shake animation */
@keyframes dplf-icon-shake {
    0%, 100% { transform: translateX(0); }
    10%, 30%, 50%, 70%, 90% { transform: translateX(-5px); }
    20%, 40%, 60%, 80% { transform: translateX(5px); }
}

.dplf-icon-hover-shake .dplf-imagebox-content:hover .dplf-imagebox-heading-icon {
    animation: dplf-icon-shake 0.8s ease infinite;
}

/* Icon Tada animation */
@keyframes dplf-icon-tada {
    0% { transform: scale(1); }
    10%, 20% { transform: scale(0.9) rotate(-3deg); }
    30%, 50%, 70%, 90% { transform: scale(1.1) rotate(3deg); }
    40%, 60%, 80% { transform: scale(1.1) rotate(-3deg); }
    100% { transform: scale(1) rotate(0); }
}

.dplf-icon-hover-tada .dplf-imagebox-content:hover .dplf-imagebox-heading-icon {
    animation: dplf-icon-tada 1s ease infinite;
}

/* Icon Wobble animation */
@keyframes dplf-icon-wobble {
    0%, 100% { transform: translateX(0%); }
    15% { transform: translateX(-25%) rotate(-5deg); }
    30% { transform: translateX(20%) rotate(3deg); }
    45% { transform: translateX(-15%) rotate(-3deg); }
    60% { transform: translateX(10%) rotate(2deg); }
    75% { transform: translateX(-5%) rotate(-1deg); }
}

.dplf-icon-hover-wobble .dplf-imagebox-content:hover .dplf-imagebox-heading-icon {
    animation: dplf-icon-wobble 1s ease infinite;
}

/* Icon Swing animation */
@keyframes dplf-icon-swing {
    20% { transform: rotate(15deg); }
    40% { transform: rotate(-10deg); }
    60% { transform: rotate(5deg); }
    80% { transform: rotate(-5deg); }
    100% { transform: rotate(0deg); }
}

.dplf-icon-hover-swing .dplf-imagebox-content:hover .dplf-imagebox-heading-icon {
    transform-origin: top center;
    animation: dplf-icon-swing 1s ease infinite;
}
