/**
 .vc_element html item wraps shortcodes output html.
*/

.vc_element {
  display: block;
  position: relative;
  > .vc_row.vc_row-no-padding {
    > .vc_column_container {
      padding-left: 0;
      padding-right: 0;
    }
  }
  &.vc_empty {
    .vc_empty-element {
      min-height: 100px;
      cursor: pointer;
      position: relative;
      &:after {
        content: '';
        margin: -19px 0 0 0;
        padding: 0;
        position: absolute;
        z-index: 0;
        top: 50%;
        left: 0;
        width: 100%;
        height: 38px;
        background: transparent url(@vc_pe_empty_container_icon) no-repeat top center;
      }
      &:hover {
        &:after {
          background-position: bottom center;
        }
      }
      > .vc_element-container {
        min-height: 100px;
      }
    }
    > .vc_controls {
      .control-btn-append {
        display: none;
      }
    }
  }
  &.vc_sorting-over {
    background-image: none;
  }
  &.bring-to-front {
    z-index: 100000;
  }
  &.vc_active:not(.vc_tta-panel), &.vc_hold-active {
    > .vc_controls {
      visibility: visible;
      .opacity(0.7);
    }
  }
  &:hover, &.vc_hover, &.vc_hold-hover {
    > .vc_controls {
      visibility: visible;
      .opacity(1);
    }
    .wpb_row() {
      > .wpb_row {
        > .vc_element {
          &:before {
            content: '';
            margin: 0;
            padding: 0;
            position: absolute;
            z-index: 0;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            outline: 1px dashed @vc_element_hover_border;
            outline: 1px dashed @vc_element_hover_border_rgba;
          }
          &:after {
            clear: both;
          }
        }
      }
    }
    .wpb_row();
  }
  // Element must have min height enough to show placeholder on sorting.
  .vc_element-container {
    min-height: @vc_elemnet_container_min_height;
  }
  .wpb_accordion_wrapper > :last-child .wpb_accordion_content {
    margin-bottom: 30px;
    &.vc_empty-element {
      margin-bottom: 0px;
    }
  }
  &.vc_vc_separator:last-child {
    padding-bottom: 10px;
    padding-top: 10px;
  }
  &.vc_vc_separator:first-child {
    padding-bottom: 10px;
    padding-top: 10px;
  }
  &.vc_vc_gallery:last-child {
    padding-bottom: 15px;
  }
  &.vc_vc_row {
    > .vc_row {
      > .vc_vc_column {
        > .wpb_column {
          > .vc_element-container {
            > .vc_vc_row_inner {
              .vc_vc_column_inner {
                margin-bottom: 30px;
              }
            }
          }
        }
      }
    }
  }
}

.wpb_column {
  > .wpb_wrapper > .vc_element:last-child > .wpb_content_element,
  > .wpb_wrapper > .vc_element:last-child > .wpb_row {
    margin-bottom: 0; //remove margin bottom from last content elements in columns
  }
}
