<!DOCTYPE html>
<html lang="en" class="MainHtml">

<head>
  <meta charset="utf-8">
  <meta http-equiv="x-ua-compatible" content="ie=edge">
  <title>Terms and Conditions - RevCent</title>
  <meta name="description" content="RevCent terms and conditions." />
  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
  <link rel="icon" href="https://cdn.revcent.com/img/favicon.png">


  <link rel="stylesheet" href="https://cdn.revcent.com/public-new/css/vendor/bootstrap.min.css">
  <link rel="stylesheet" href="https://cdn.revcent.com/public-new/css/vendor/slick.css">
  <link rel="stylesheet" href="https://cdn.revcent.com/public-new/css/vendor/slick-theme.css">
  <link rel="stylesheet" href="https://cdn.revcent.com/public-new/css/plugins/sal.css">
  <link rel="stylesheet" href="https://cdn.revcent.com/public-new/css/plugins/feather.css">
  <link rel="stylesheet" href="https://cdn.revcent.com/css/plugins/fontawesome-5/css/all.css">
  <link rel="stylesheet" href="https://cdn.revcent.com/public-new/css/plugins/euclid-circulara.css">
  <link rel="stylesheet" href="https://cdn.revcent.com/public-new/css/plugins/swiper.css">
  <link rel="stylesheet" href="https://cdn.revcent.com/public-new/css/plugins/magnify.css">
  <link rel="stylesheet" href="https://cdn.revcent.com/public-new/css/plugins/odometer.css">
  <link rel="stylesheet" href="https://cdn.revcent.com/public-new/css/plugins/animation.css">
  <link rel="stylesheet" href="https://cdn.revcent.com/public-new/css/plugins/bootstrap-select.min.css">
  <link rel="stylesheet" href="https://cdn.revcent.com/public-new/css/plugins/jquery-ui.css">
  <link rel="stylesheet" href="https://cdn.revcent.com/public-new/css/plugins/magnigy-popup.min.css">
  <link rel="stylesheet" href="https://cdn.revcent.com/public-new/css/plugins/plyr.css">
  <link rel="stylesheet" href="https://cdn.revcent.com/css/plugins/sweetalert/sweetalert.css" type="text/css" />
  <link rel="stylesheet" href="https://cdn.revcent.com/public-new/css/style.css">
  <style>
    html {
      --gutterWidth: 16px;
      --scrollbarWidth: 0px;
      --windowWidth: calc(100vw - var(--scrollbarWidth));
      --layoutWidth: calc(var(--windowWidth) - var(--gutterWidth)*2);
      --layoutWidthMax: 1080px;
      --viewWidthSmall: 375;
      --viewWidthMedium: 600;
      --viewWidthLarge: 1112;
      --viewportScale: calc(var(--windowWidth)/var(--viewWidthLarge));
      --paddingTop: 160px;
      --paddingBottom: 160px;
      --colPadNone: 0;
      --colPadSmall: 8px;
      --colPadNormal: 16px;
      --colPadMedium: 16px;
      --colPadLarge: 16px;
      --colPadXLarge: 16px;
      --rowGap: 8px;
      --navSignupBg: #b966e721;
      --navSignupColor: #b966e7;
      --navSignupBgH: #b966e7;
      --navSignupColorH: #ffffff;
      --shadow-blue: 0px 6px 34px rgb(119 138 255 / 18%);
      --shadow-12: 0px 18px 36px -12px rgba(0, 0, 0, 0.1), 0px 30px 45px -30px rgba(50, 50, 93, 0.25)
    }


    @media (min-width:768px) {
      html {
        --colPadMedium: 32px;
        --colPadLarge: 64px;
        --colPadXLarge: 64px;
      }
    }

    @media (min-width:991px) {
      html {
        --colPadXLarge: 112px;
      }
    }

    @media (min-width:1112px) {
      html {
        --layoutWidth: var(--layoutWidthMax);
        --gutterWidth: calc(var(--windowWidth)/2 - var(--layoutWidth)/2)
      }
    }
  </style>

  <style>
    :root {
      --color-body: #474a51;
      --largeHeroLWidthMax: 1080px;
      --largeHeroLWidth: var(--largeHeroLWidthMax);
      --largeHeroGWidth: calc(var(--windowWidth)/2 - var(--largeHeroLWidth)/2);
      --largeHeroOffsetX: var(--largeHeroGWidth);
      --largeHeroTransformX: calc(var(--largeHeroGWidth)*0.8);
      --largeHeroPaddingTop: calc(116*1px);
      --largeHeroGHeight: calc(100% + var(--largeHeroPaddingTop) + var(--largeHeroTransformX)*0.212);
    }
  </style>

  <style>
    .Section {
      --sectAngleSin: var(--angleNormalSin);
      --sectAngle: 0;
      --sectPaddingSmallMax: 110;
      --sectPaddingXSmallMax: 72;
      --sectPaddingMin: 72;
      --sectPaddingMax: var(--sectPaddingNormalMax);
      --sectPaddingTopMax: var(--sectPaddingMax);
      --sectPaddingBottomMax: var(--sectPaddingMax);
      --sectionMarginBottom: 0;
      --sectAngleHeight: calc(var(--windowWidth)*var(--sectAngleSin));
      --sectAnglePaddingBaseMin: 100;
      --sectAnglePaddingBaseMax: var(--sectPaddingMax);
      --sectAnglePaddingTopBaseMax: var(--sectAnglePaddingBaseMax);
      --sectAnglePaddingBottomBaseMax: var(--sectAnglePaddingBaseMax);
      --sectAngleMaxHeight: none;
      --sectionOverflow: hidden;
      --sectionTransformOrigin: 100% 0;
      --sectionBackgroundOverflow: visible;
      position: relative;
      z-index: 1;
      margin-bottom: var(--sectionMarginBottom);
      color: var(--textColor);
      scroll-margin-top: calc(var(--fNvHeight) + var(--fNvSpacing) - var(--sectPaddingTop))
    }


    .Section {
      --sectPaddingNormalMax: 128
    }


    .Sect--hasStickyNav {
      --sectionOverflow: visible
    }

    .Sect--hasBorderTop .Sect__background {
      border-top: 1px solid rgba(230, 235, 241, .52)
    }

    .Sect--paddingSmall {
      --sectPaddingMax: var(--sectPaddingSmallMax)
    }

    .Sect--paddingXSmall {
      --sectPaddingMax: var(--sectPaddingXSmallMax)
    }

    .Section {
      --sectAnglePaddingTopBase: calc(var(--sectAnglePaddingBaseMin)*1px + (var(--sectAnglePaddingTopBaseMax) - var(--sectAnglePaddingBaseMin))*(var(--windowWidth)/737 - 0.50882px));
      --sectAnglePaddingBottomBase: calc(var(--sectAnglePaddingBaseMin)*1px + (var(--sectAnglePaddingBottomBaseMax) - var(--sectAnglePaddingBaseMin))*(var(--windowWidth)/737 - 0.50882px));
      --sectPaddingTopGutterWidth: var(--gutterWidth);
      --sectAnglePaddingTop: calc(var(--sectAngleHeight) - var(--sectAngleSin)*var(--sectPaddingTopGutterWidth) + var(--sectAnglePaddingTopBase));
      --sectAnglePaddingBottom: calc(var(--sectAngleHeight) - var(--sectAngleSin)*var(--gutterWidth) + var(--sectAnglePaddingBottomBase));
      --sectPaddingTop: calc(var(--sectPaddingMin)*1px + (var(--sectPaddingTopMax) - var(--sectPaddingMin))*(var(--windowWidth)/737 - 0.50882px));
      --sectPaddingBottom: calc(var(--sectPaddingMin)*1px + (var(--sectPaddingBottomMax) - var(--sectPaddingMin))*(var(--windowWidth)/737 - 0.50882px));
    }

    @media (max-width:375px) {
      .Section {
        --sectAnglePaddingTopBase: calc(var(--sectAnglePaddingBaseMin)*1px);
        --sectAnglePaddingBottomBase: calc(var(--sectAnglePaddingBaseMin)*1px);
        --sectPaddingTop: calc(var(--sectPaddingMin)*1px);
        --sectPaddingBottom: calc(var(--sectPaddingMin)*1px)
      }
    }

    @media (min-width:1112px) {
      .Section {
        --sectAnglePaddingTopBase: calc(var(--sectAnglePaddingTopBaseMax)*1px);
        --sectAnglePaddingBottomBase: calc(var(--sectAnglePaddingBottomBaseMax)*1px);
        --sectPaddingTop: calc(var(--sectPaddingTopMax)*1px);
        --sectPaddingBottom: calc(var(--sectPaddingBottomMax)*1px)
      }
    }

    .Sect__background {
      position: relative;
      height: 100%;
      max-height: var(--sectAngleMaxHeight);
      width: 100%;
      top: 0;
      left: 0;
      transform-origin: var(--sectionTransformOrigin);
      transform: skewY(var(--sectAngle));
      background: var(--backgroundColor);
      overflow: hidden
    }

    .Sect__background--isTransparent {
      background: hsla(0, 0%, 100%, .2);
      -webkit-backdrop-filter: blur(7px);
      backdrop-filter: blur(7px)
    }

    .Sect__masked {
      overflow: var(--sectionOverflow)
    }

    .Sect__container {
      position: relative;
      z-index: 1;
      display: flex;
      justify-content: center;
      min-height: var(--sectionMinHeight)
    }

    .Sect__layoutContainer {
      width: 100%;
      margin: 0 var(--colPadNormal)
    }

    .Sect__layout {
      padding: var(--sectPaddingTop) 0 var(--sectPaddingBottom)
    }

    .Sect--angleTop {
      --sectPaddingTop: var(--sectAnglePaddingTop);
      --sectAngle: var(--angleNormal)
    }

    .Sect--angleBottom {
      --sectionTransformOrigin: 0 0
    }

    .Sect--angleBoth,
    .Sect--angleBottom {
      --sectPaddingBottom: var(--sectAnglePaddingBottom);
      --sectionMarginBottom: calc(var(--sectAngleHeight)*-1)
    }

    .Sect--angleBoth {
      --sectPaddingTop: var(--sectAnglePaddingTop);
      --sectAngle: var(--angleNormal)
    }

    .Sect--bleed3 {
      --sectPaddingBottom: 0
    }

    .Sect__backgroundMask {
      position: absolute;
      width: 100%;
      height: 100%;
      overflow: var(--sectionBackgroundOverflow)
    }

    .Sect--paddingTopNone {
      --sectPaddingTop: 0
    }

    .Sect--paddingBottomNone {
      --sectPaddingBottom: 0
    }
  </style>
  <style>
    .MainHtml {
      --filterShadowMedium: 0px 3px 11.5px -3.5px rgba(50, 50, 93, 0.25), 0px 3.8px 7.5px -3.7px rgba(0, 0, 0, 0.1);
      --scrollbarOffset: 10px;
      --angleNormal: -6deg;
      --angleStrong: -12deg;
      --angleNormalSin: 0.106;
      --angleStrongSin: 0.212;
      --fNvHeight: 60px;
      --fNvSpacing: 48px;
      color-scheme: only light
    }

    .MainHtml *,
    .MainHtml :after,
    .MainHtml :before {
      box-sizing: border-box;
    }



    .MainHtml[data-loading] {
      overflow-x: hidden
    }

    .MainHtml[data-loading] :after,
    .MainHtml[data-loading] :before,
    .MainHtml[data-loading] :not([data-transition-in]) {
      transition: none !important
    }

    .MainBody {
      margin: 0;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
    }

    .SiteFooterSection {
      --sectionBackgroundOverflow: hidden;
    }

    .SiteFooterSection {
      z-index: 2;
    }
  </style>

  <style>
    .MainHtml {
      --heroImgShadow: rgba(50, 50, 93, 0.25);
    }

    .Page-Theme-0 {
      --blendBackground: #d6d6d6;
      --blendIntersection: #d6d6d6;
      --blendForeground: #d6d6d6;
      --pageThemeBg: #fdfafd;
      --pageThemeLink: #800080;
      --pageThemeLinkH: #800080;
      --badgeColor: #6b6b6b;
      --badgeBackground: #bfbfbf21;
      --pageThemeSectionLink: #fff;
      --pageThemeSectionLinkBg: #9400FF;
      --pageThemeSectionLinkH: #9400FF;
      --pageThemeSectionLinkHBg: #80008021;
      --navSignupBg: #f1ddff;
      --navSignupColor: #192335;
      --navSignupBgH: #9400FF;
      --navSignupColorH: #ffffff;
    }

    .Page-Theme-1 {
      --blendBackground: #9400ff;
      --blendIntersection: #9400ff;
      --blendForeground: #9400ff;
      --pageThemeBg: #fdfafd;
      --pageThemeLink: #9400ff;
      --pageThemeLinkH: #c068ff;
      --pageThemeLinkDark: #b959ff;
      --badgeColor: #af1eff;
      --badgeBackground: #b966e721;
      --pageThemeSectionLink: #fff;
      --pageThemeSectionLinkBg: #9400FF;
      --pageThemeSectionLinkH: #9400FF;
      --pageThemeSectionLinkHBg: #80008021;
      --navSignupBg: #f1ddff;
      --navSignupColor: #192335;
      --navSignupBgH: #9400FF;
      --navSignupColorH: #ffffff;
      --heroImgShadow: rgba(148, 0, 255, 0.5);
    }

    .Page-Theme-2 {
      --blendBackground: #ff2171;
      --blendIntersection: #ff2171;
      --blendForeground: #ff2171;
      --pageThemeBg: #fffafc;
      --pageThemeLink: #FF2171;
      --pageThemeLinkH: #ff679e;
      --badgeColor: #FF2171;
      --badgeBackground: #ffebf2;
      --pageThemeSectionLink: #fff;
      --pageThemeSectionLinkBg: #ff0f80;
      --pageThemeSectionLinkH: #ff0f80;
      --pageThemeSectionLinkHBg: #ffeaf2;
      --navSignupBg: #ff217121;
      --navSignupColor: #192335;
      --navSignupBgH: #FF2171;
      --navSignupColorH: #ffffff;
      --heroImgShadow: rgba(255, 16, 127, 0.5);
    }

    .Page-Theme-3 {
      --blendBackground: #ff3802;
      --blendIntersection: #ff3802;
      --blendForeground: #ff3802;
      --pageThemeBg: #fffcfb;
      --pageThemeLink: #e75703;
      --pageThemeLinkH: #e75703;
      --badgeColor: #ff7300;
      --badgeBackground: #ff39010f;
      --pageThemeSectionLink: #fff;
      --pageThemeSectionLinkBg: #ff3802;
      --pageThemeSectionLinkH: #ff3802;
      --pageThemeSectionLinkHBg: #ffd89d85;
      --navSignupBg: #ffd89d85;
      --navSignupColor: #192335;
      --navSignupBgH: #ff3802;
      --navSignupColorH: #ffffff;
      --heroImgShadow: rgba(255, 57, 1, 0.5);
    }

    .Page-Theme-4 {
      --blendBackground: #00c918;
      --blendIntersection: #00c918;
      --blendForeground: #00c918;
      --pageThemeBg: #fbfffc;
      --pageThemeLink: #00ab14;
      --pageThemeLinkH: #00ab14;
      --badgeColor: #00c918;
      --badgeBackground: #eafff2;
      --pageThemeSectionLink: #fff;
      --pageThemeSectionLinkBg: #00c918;
      --pageThemeSectionLinkH: #119b44;
      --pageThemeSectionLinkHBg: #c5ffdb;
      --navSignupBg: #daffe8;
      --navSignupColor: #192335;
      --navSignupBgH: #14bf53;
      --navSignupColorH: #ffffff;
      --heroImgShadow: rgba(4, 201, 25, 0.5);
    }

    .Page-Theme-5 {
      --blendBackground: #1b8bff;
      --blendIntersection: #1b8bff;
      --blendForeground: #1b8bff;
      --pageThemeBg: #fbfdff;
      --pageThemeLink: #082d7a;
      --pageThemeLinkH: #082d7a;
      --pageThemeLinkDark: #1b8bff;
      --badgeColor: #082d7a;
      --badgeBackground: #c3f5ff;
      --pageThemeSectionLink: #fff;
      --pageThemeSectionLinkBg: #1b8bff;
      --pageThemeSectionLinkH: #082d7a;
      --pageThemeSectionLinkHBg: #c3f5ff;
      --navSignupBg: #1a8bff2b;
      --navSignupColor: #192335;
      --navSignupBgH: #1b8bff;
      --navSignupColorH: #ffffff;
      --heroImgShadow: rgba(26, 139, 255, 0.5);
    }

    .Page-Theme-6 {
      --blendBackground: #930077;
      --blendIntersection: #930077;
      --blendForeground: #930077;
      --pageThemeBg: #fffbfe;
      --pageThemeLink: #930077;
      --pageThemeLinkH: #930077;
      --badgeColor: #930077;
      --badgeBackground: #fff0fc;
      --pageThemeSectionLink: #fff;
      --pageThemeSectionLinkBg: #930077;
      --pageThemeSectionLinkH: #930077;
      --pageThemeSectionLinkHBg: #fff;
      --navSignupBg: #ffeafb;
      --navSignupColor: #192335;
      --navSignupBgH: #930077;
      --navSignupColorH: #fff;
      --heroImgShadow: rgba(147, 0, 119, 0.5);
    }


    .hero-img.page-theme-hero-img {
      box-shadow: 0 50px 100px -20px rgba(50, 50, 93, 0.25), 0 30px 60px -30px rgba(50, 50, 93, 0.25)
    }

    .bg-color-page-theme {
      background-color: var(--pageThemeBg) !important;
    }

    a.bg-page-theme-nav-signup {
      background: var(--navSignupBg) !important;
      color: var(--navSignupColor) !important;
    }

    a.bg-page-theme-nav-signup:hover,
    a.bg-page-theme-nav-signup:focus {
      background: var(--navSignupBgH) !important;
      color: var(--navSignupColorH) !important;
    }


    a.page-theme-link {
      color: var(--pageThemeLink);
    }

    a.page-theme-link.dark-link {
      color: var(--pageThemeLinkDark);
    }

    a.page-theme-link:hover,
    a.page-theme-link:focus {
      color: var(--pageThemeLinkH);
    }

    .page-theme-section-link {
      background: var(--pageThemeSectionLinkBg) !important;
      color: var(--pageThemeSectionLink) !important;
    }

    a.page-theme-section-link:hover,
    button.page-theme-section-link:hover {
      background: var(--pageThemeSectionLinkHBg) !important;
      color: var(--pageThemeSectionLinkH) !important;
    }


    .rbt-badge-6.page-theme-badge {
      background: var(--badgeBackground) !important;
      color: var(--badgeColor) !important;
    }

    .SeparatorSlant {
      --slantInset: 0px;
      --slantWidth: var(--gutterWidth);
      --slantMinWidth: 80px;
      --slantHeight: 40px;
      --slantIntersectionTop: calc(var(--slantSetHeight) - var(--slantHeight));
      --slantIntersectionInset: 0px;
      --slantIntersectionWidth: var(--gutterWidth);
      --slantIntersectionBackground: var(--blendIntersection);
      --slantMaxInset: calc(var(--layoutWidth)/2);
      --slantStartMax: calc(var(--layoutWidth) + var(--gutterWidth));
      --slantStart: calc(var(--slantStartMax) - var(--slantInset) + var(--slantBorderOffset));
      --slantBorderOffset: 0px;
      right: var(--slantStart);
      width: calc(var(--slantWidth) + var(--slantInset) - var(--slantBorderOffset)*2);
      position: absolute;
      height: var(--slantHeight);
      background: var(--slantColor);
      overflow: hidden;
    }

    .SeparatorSlantSet {
      --slantSetHeight: 72px;
      --slantSetAlignCenterOffset: -40px;
      --slantSetSubpixelOffset: 0;
      --slantSetAngle: var(--angleNormal);
      position: absolute;
      height: var(--slantSetHeight);
      width: 100%;
      transform: skewY(var(--slantSetAngle)) translateY(var(--slantSetSubpixelOffset));
      overflow: hidden;
    }



    .SeparatorSlant__intersection {
      position: absolute;
      top: var(--slantIntersectionTop);
      height: var(--slantHeight);
      transform: translateY(-0.25px);
      background: var(--slantIntersectionBackground);
      left: calc(var(--slantWidth) - var(--slantIntersectionWidth));
      width: calc(var(--slantIntersectionWidth) + var(--slantIntersectionInset));
    }

    .SeparatorSlantSet--alignCenter {
      top: var(--slantSetAlignCenterOffset);
    }

    .SeparatorSlantSet--alignEnd {
      top: calc(var(--slantSetHeight)*-1);
    }

    .SeparatorSlant--insetNormal {
      --slantInset: calc(var(--slantMaxInset)*0.25);
    }

    .SeparatorSlant--accentNone:first-of-type {
      --slantColor: var(--blendBackground);
    }

    .SeparatorSlant--widthNormal {
      --slantWidth: 160px;
    }

    .SeparatorSlantSet--BottomLeft .SeparatorSlant.SeparatorSlant--accentNone {
      --slantColor: var(--blendForeground);
    }

    .SeparatorSlantSet--BottomLeft .SeparatorSlant {
      top: var(--slantIntersectionTop);
    }

    .SeparatorSlant--insetSmall {
      --slantInset: calc(var(--slantMaxInset)*0.125);
    }

    .SeparatorSlant:nth-of-type(3) {
      --slantColor: transparent;
    }

    .SeparatorSlant--intersectionInsetSmall {
      --slantIntersectionInset: calc(var(--slantMaxInset)*0.25);
    }

    .SeparatorSlant--intersectionWidthNormal {
      --slantIntersectionWidth: 160px;
    }

    .SeparatorSlantSet--BottomRight .SeparatorSlant__intersection,
    .SeparatorSlantSet--TopRight .SeparatorSlant__intersection {
      left: auto;
      right: calc(var(--slantWidth) - var(--slantIntersectionWidth));
    }


    .SeparatorSlantSet--TopRight {
      --slantSetSubpixelOffset: -0.35px;
      top: 0;
      right: 0;
      transform-origin: 100% 0;
    }

    .SeparatorSlantSet--TopLeft {
      top: 0;
      left: 0;
      transform-origin: 100% 0;
    }

    .SeparatorSlantSet--BottomLeft {
      left: 0;
      bottom: 0;
      transform-origin: 0 100%;
    }


    .SeparatorSlantSet--BottomRight .SeparatorSlant,
    .SeparatorSlantSet--TopRight .SeparatorSlant {
      right: auto;
      left: var(--slantStart);
    }
  </style>

  <style>
    .rbt-btn:hover {
      background-color: var(--color-primary);
      color: var(--color-white);
      transform: translate3d(0, -2px, 0);
      box-shadow: var(--shadow-7);
    }

    .rbt-btn.btn-white {
      box-shadow: none;
    }

    .rbt-btn.btn-white:hover {
      box-shadow: var(--shadow-7);
      background: var(--color-white);
      color: var(--color-heading);
    }


    .rbt-header.rbt-transparent-header {
      max-width: 1450px;
      margin-left: auto;
      margin-right: auto;
    }

    .bg-violet-opacity-2 {
      background: rgba(226, 213, 252, 0.8) !important;
      color: var(--color-violet) !important;
    }

    a.text-link:hover {
      cursor: pointer;
    }

    .quick-access>li.account-access {
      padding-left: 10px;
      margin-left: 20px;
      margin-right: 20px;
      position: relative;
    }

    .rbt-header .logo a img {
      max-height: 21px;
    }

    .rbt-banner-1 {
      background: var(--gradient-2) !important;
      background: linear-gradient(180deg, #f4e9fd87 0%, #FFFFFF 100%) !important;
    }

    .rbt-banner-1.variation-2 .content,
    .rbt-banner-1.variation-2 .content .inner .title,
    .rbt-banner-1.variation-2 .content .inner .description {
      padding-right: 0%;
    }

    .product-hero .content,
    .product-hero .content .inner .title,
    .product-hero .content .inner .description {
      padding-right: 0%;
    }


    .quick-access>li.account-access:first-child::after {
      background: none;
    }

    .height-450 {
      height: 450px;
    }

    .height-350 {
      height: 350px;
    }

    .height-250 {
      height: 250px;
    }

    .height-450,
    .height-350,
    .height-250 {
      display: flex;
      align-items: center;
    }

    .rbt-section-gap-2.simple-page,
    .rbt-section-gap.simple-page {
      padding-top: 0px;
      margin-top: -20px
    }

    @media only screen and (max-width: 1199px) {

      .height-450,
      .height-350,
      .height-250 {
        height: auto
      }
    }

    @media only screen and (min-width: 1199px) {
      .rbt-section-gap-2.simple-page {
        padding-top: 0px;
        /* margin-top: -90px */
      }
    }

    .rbt-section-gap-2 {
      padding: 60px 0;
    }

    a.a-no-link:hover {
      cursor: default;
    }

    .form-group input:focus {
      outline: none;
    }

    .form-group input:focus-visible {
      border-color: #efefef;
      outline: none;
    }

    .form-group.focused label {
      color: var(--color-gray);
    }

    .form-group span.focus-border {
      background-color: var(--color-gray);
    }

    .quick-access>li.account-access::after {
      background: none !important;
    }



    .inner-skew-angle {
      position: absolute;
      height: 100px;
      width: 100%;
      transform: skewY(-6deg) translateY(0);
      overflow: hidden;
    }

    .product-separator-skew .inner-skew-angle {
      transform: skewY(var(--angleNormal)) translateY(0);
    }



    .large-hero h1 span.hero-title-1,
    .large-hero h1 span.hero-title-2 {
      color: #fff;
      text-shadow: 1px 1px #00000052;
    }

    .large-hero .large-hero-inner,
    .product-hero .product-hero-inner {
      top: 0px;
    }

    @media only screen and (min-width: 991px) {

      .large-hero .second-col {
        top: 40px;
        margin-bottom: 30px;
      }

      .bg-color-light-blue {
        background-color: #f0f2ff;
      }
    }

    @media only screen and (max-width: 991px) {

      .large-hero .second-col,
      .product-hero .second-col {
        top: 100px;
        height: 100%;
      }
    }

    .large-hero.height-750,
    .product-hero.height-750 {
      height: 850px;
      display: flex;
      align-items: center;
    }

    @media only screen and (min-width: 991px) {
      .large-hero.height-750.register-hero {
        height: 1250px;
        display: flex;
        align-items: center;
      }

      .large-hero.height-750.pricing-hero {
        height: 950px;
        display: flex;
        align-items: center;
      }

      .large-hero.height-750.contact-hero {
        height: 950px;
        display: flex;
        align-items: center;
      }
    }

    @media only screen and (max-width: 991px) {

      .large-hero.height-750,
      .product-hero.height-750 {
        height: auto;
      }
    }

    .large-hero.rbt-banner-area.rbt-banner-1 {
      background: none !important;
    }

    @media only screen and (min-width: 768px) and (max-width: 991px) {
      .product-hero {
        padding: 0 60px;
        padding-top: 100px;
        padding-bottom: 100px;
      }
    }

    @media only screen and (min-width: 1200px) {

      .large-hero.rbt-banner-1.variation-2 .content .inner h1.title,
      .large-hero.rbt-banner-large-hero .content .inner h1.title,
      .product-hero .content .inner h1.title,
      .product-hero-inner h1.title {
        line-height: .95;
      }
    }



    #hero-background-wrapper {
      position: absolute;
      top: auto;
      left: calc(var(--largeHeroOffsetX)*-1);
      left: 0;
      width: var(--windowWidth);
      height: var(--largeHeroGHeight);
      transform-origin: var(--largeHeroTransformX) 100%;
      transform: skewY(-12deg);
      overflow: hidden;
    }

    .white-hero-nav .rbt-header .mainmenu-nav .mainmenu>li>a,
    .white-hero-nav .quick-access>li>a {
      color: #fff !important;
      text-shadow: 1px 1px #00000036;
    }

    .white-hero-nav .rbt-header .mainmenu-nav .mainmenu>li>a:hover,
    .white-hero-nav .rbt-header .mainmenu-nav .mainmenu>li>a:focus,
    .white-hero-nav .rbt-header .mainmenu-nav .mainmenu>li>a:active,
    .white-hero-nav .quick-access>li>a:hover {
      color: #fff !important;
      opacity: .6;
    }

    .white-hero-nav .rbt-header .mainmenu-nav .mainmenu>li:hover>a,
    .white-hero-nav .rbt-header .mainmenu-nav .mainmenu>li.active>a {
      color: #fff !important;
      opacity: .6;
    }

    .large-hero .large-hero-inner.inner .sub-description,
    .product-hero .product-hero-inner.inner .sub-description {
      max-width: 80%;
    }

    .large-hero.rbt-banner-1 .content .inner .title,
    .large-hero.rbt-banner-large-hero .content .inner .title,
    .product-hero.rbt-banner-1 .content .inner .title {
      letter-spacing: -0.03em;
      color: #000;
    }

    .large-hero .large-hero-inner.inner .sub-description .hero-quote {
      max-width: 80%;
      color: #5a5a5a !important;
    }

    @media only screen and (min-width: 1200px) {
      .product-hero .about-style-1 .thumbnail-wrapper .thumbnail.image-1 {
        left: 200px;
        top: 0px;
      }

    }

    @media only screen and (max-width: 767px) {

      .large-hero .large-hero-inner.inner .sub-description,
      .product-hero .product-hero-inner.inner .sub-description {
        color: #000;
        max-width: 100%;
        background-color: #ffffffc4;
        padding: 10px;
        border-radius: 5px;
        text-align: center;
      }

      .large-hero .large-hero-inner.inner .sub-description .hero-quote {
        max-width: 100%;
      }

      .rbt-banner-1.variation-2 .content .inner .description {
        font-size: 24px;
      }

      .product-hero .content .inner .description {
        font-size: 24px;
      }

      .product-hero {
        padding: 0 15px;
        padding-top: 90px;
        padding-bottom: 50px;
      }

      .product-hero .image-1 {
        left: 0px;
        top: 20px;
      }
    }

    @media only screen and (max-width: 991px) {

      .large-hero.rbt-banner-1 .content .inner .title,
      .large-hero.rbt-banner-large-hero .content .inner .title {
        font-size: 65px;
        margin-left: -1px;
        line-height: 1;
      }

      .product-hero .content .inner .title {
        font-size: 40px;
      }

      .product-hero-inner h1.title {
        font-size: 40px;
        margin-left: -3px;
      }
    }

    @media only screen and (min-width: 992px) and (max-width: 1199px) {

      .large-hero.rbt-banner-1 .content .inner .title,
      .large-hero.rbt-banner-large-hero .content .inner .title {
        font-size: 90px;
        margin-left: -5px;
      }

      .product-hero .content .inner .title {
        font-size: 50px;
      }

      .product-hero-inner h1.title {
        font-size: 50px;
        margin-left: -3px;
      }
    }

    @media only screen and (min-width: 1200px) {

      .large-hero.rbt-banner-1 .content .inner .title,
      .large-hero.rbt-banner-large-hero .content .inner .title {
        font-size: 130px;
        margin-left: -10px;
      }

      .product-hero .content .inner .title {
        font-size: 60px;
      }

      .product-hero-inner h1.title {
        font-size: 75px;
        margin-left: -5px;
      }
    }

    @media only screen and (max-width: 991px) {
      .hero-small-mb {
        margin-bottom: 100px;
      }
    }

    .small-shadow {
      box-shadow: 0px 1px 4px rgb(215 216 222 / 97%);
    }

    .rbt-card.small-shadow {
      box-shadow: 0px 1px 4px rgb(215 216 222 / 97%);
    }

    .rbt-card.white-bordered {
      border: 3px solid #fff;
      border-radius: 8px;
    }

    .rbt-card.white-bordered-large {
      border: 4px solid #fff;
      border-radius: 10px;
    }

    .card-top-white-bordered {
      border-top: 3px solid #ffffff;
    }

    .card-top-grey-bordered {
      border-top: 3px solid #737373;
    }

    .rbt-card.thin-border {
      border: 2px solid #fff;
    }

    .rbt-card.thinner-border {
      border: 1px solid #fff;
    }

    .advance-pricing .pricing-middle {
      height: 100%;
      background: var(--color-lighter);
      padding: 60px 50px;
      border-radius: 0px;
    }

    .advance-pricing .price-wrapper .price-amount {
      font-size: 60px;
      text-align: center;
      display: block;
      color: var(--color-heading);
      font-weight: 700;
      line-height: 1;
    }

    .advance-pricing .price-wrapper .price-amount sup {
      font-size: 16px;
      top: -34px;
    }

    .advance-pricing .main-title {
      margin-bottom: 10px;
    }

    .rbt-contact-form.contact-form-style-1.semi-trans-hero-bg {
      background: #ffffffe8;
    }

    .rbt-contact-form.contact-form-style-1.semi-trans-hero-outline {
      outline: 10px solid #ffffff21;
    }

    .rbt-round-btn::after {
      background: #f6f6f64f;
    }

    .popup-mobile-menu .inner-wrapper .inner-top .close-button {
      height: 25px;
    }

    .popup-mobile-menu .inner-wrapper .inner-top .logo a img {
      max-height: 20px;
    }

    p {
      color: #425466;
    }

    .page-hero-wrapper {
      position: absolute;
      bottom: 0;
      left: 0;
      top: 0;
      width: 100%;
      height: 450px;
      transform-origin: 0 100%;
      transform: skewY(var(--angleNormal));
      will-change: transform;
      z-index: 0;
    }

    .page-hero-canvas {
      position: relative;
      display: block;
      width: inherit;
      height: 100%;
    }

    .hero-thumbnail .small {
      font-size: .75em;
    }

    .section-separator-wrapper {
      position: absolute;
      bottom: 0;
      left: 0;
      width: 100%;
      transform-origin: 0 100%;
      transform: skewY(var(--angleNormal));
      will-change: transform;
      z-index: 0;
    }

    .section-separator-wrapper.skew-flat {
      transform: skewY(0);
    }

    .section-separator-wrapper.section-separator-250 {
      height: 250px;
    }

    .section-separator-wrapper.section-separator-300 {
      height: 300px;
    }

    .section-separator-wrapper.section-separator-400 {
      height: 400px;
    }

    .section-separator-wrapper.section-separator-500 {
      height: 500px;
    }

    .section-separator-wrapper.section-separator-10 {
      height: 10px;
    }

    .section-separator-canvas {
      position: absolute;
      display: block;
      width: inherit;
      height: 100%;
    }

    .gradient-canvas {
      image-rendering: pixelated;
    }

    @media only screen and (max-width: 787px) {}

    @media only screen and (max-width: 991px) {}


    @media only screen and (min-width: 992px) and (max-width: 1199px) {}

    @media only screen and (min-width: 1200px) {}


    .rbt-btn.btn-secondary:hover {
      background-color: var(--color-secondary);
    }

    .rbt-btn.btn-violet:hover {
      background: var(--color-violet);
    }

    .rbt-card-nav a:hover,
    .rbt-card-nav a:focus,
    .rbt-card-nav a:active {
      text-decoration: none;
      outline: none;
      color: var(--pageThemeLink);
    }

    .text-strong {
      font-weight: 600;
    }

    .rbt-badge-card.large-badge {
      padding: 3px 10px;
      font-size: 14px;
    }

    .v-align-super {
      vertical-align: super;
    }

    div.developer-example-wrap {
      border: 1px solid #ffffff26;
      border-radius: 14px;
    }

    .thumbnail-wrapper .thumbnail.outlined-img img {
      outline: 10px solid #ffffff21;
    }

    .developer-example-wrap pre {
      border-radius: 14px;
    }

    .thumbnail-wrapper .thumbnail img.hero-img {
      border-radius: 6px;
    }

    .thumbnail-wrapper.inner-thumbnail {
      padding: 4px;
      border-radius: 6px;
      overflow: hidden;
    }

    .thumbnail-wrapper.inner-thumbnail .thumbnail {
      border-radius: 6px;
      overflow: hidden;
    }

    @media only screen and (max-width: 991px) {
      .row.extra-padding.extra-padding-y .mt--20 {
        margin-top: 20px;
      }
    }

    @media only screen and (min-width: 992px) {
      .row.extra-padding {
        --bs-gutter-x: 5rem;
      }

      .row.extra-padding.extra-padding-y {
        --bs-gutter-y: 5rem;
      }

      .row.extra-padding.extra-padding-y .mt--20 {
        margin-top: var(--bs-gutter-y) !important;
      }
    }

    span.title-numeral {
      font-size: 30px;
      font-weight: 600;
      color: #ffffff;
      line-height: 1.26;
    }

    div.title-numeral-wrap {
      position: absolute;
      margin-top: 0px;
      margin-left: -55px;
      height: 40px;
      width: 40px;
      border-radius: 50px;
      background: #616161;
      text-align: center;
    }



    div.title-numeral-wrap-v2 span.title-numeral {
      font-size: 25px;
      font-weight: 600;
      color: #ffffff;
      line-height: 1.17;
      color: var(--color-secondary) !important;
    }

    div.title-numeral-wrap-v2 {
      position: absolute;
      margin-top: 4px;
      margin-left: -45px;
      height: 30px;
      width: 30px;
      border-radius: 30px;
      background: #8000806e;
      text-align: center;
      background: var(--secondary-opacity) !important;
    }

    @media (min-width: 992px) {
      div.row.row-extra-padding>[class^="col-"] {
        padding-right: 40px;
      }
    }

    .rbt-card-body.card-body-padded {
      padding: 40px;
    }

    .rbt-card.card-nopadded,
    .rbt-card.card-nopadded .rbt-card-body {
      padding: 0px;
    }

    .rbt-card-col-1 {
      padding: 70px;
      padding-top: 30px;
      padding-bottom: 30px;
      z-index: 1;
    }

    .card-gradient {
      height: 100%;
      opacity: .26;
    }

    .card-gradient-wrap {
      height: 100%;
      /* position: relative; */
    }

    .card-gradient-overlay {
      height: 100%;
      position: relative;
      background: linear-gradient(90deg, rgb(255 255 255) 0%, rgb(255 255 255 / 92%) 56%, rgb(255 255 255 / 20%) 100%);
    }

    .card-gradient-overlay-vertical {
      height: 100%;
      position: relative;
      background: linear-gradient(0deg, rgb(255 255 255) 0%, rgb(255 255 255 / 92%) 56%, rgb(255 255 255 / 20%) 100%);
    }

    .card-gradient-wrap .card-icon {
      position: absolute;
      font-size: 100px;
    }

    .bg-card-color-white-bordered {
      background: var(--color-white);
      background-color: var(--color-white) !important;
      border-radius: 4px;
    }

    .tab-button-style-2 li a.active {
      color: var(--color-violet);
    }

    .tab-button-style-2 li a::after {
      background-color: var(--color-violet);
    }

    ul.tab-button-style-2 li a:hover,
    ul.tab-button-style-2 li a:focus,
    ul.tab-button-style-2 li a:active {
      color: var(--pageThemeLink);
    }

    .advance-tab-button-1 .tab-button-list .tab-button {
      padding: 25px 25px;
    }
  </style>

  <style>
    .lifespan-lg-wrap .advance-tab-button-1 .tab-button-list .tab-button::after {
      border-left: 20px solid var(--color-lighter);
    }

    .lifespan-lg-wrap .advance-tab-button-1 .tab-button-list .tab-button::before {
      background: var(--color-lighter);
      box-shadow: none;
    }

    .does-it-all-tab-content {
      padding: 30px;
      border-radius: 10px;
    }
  </style>

  <style>
    .bg-rose-opacity {
      background: #f6a1e430 !important;
      color: #a90087 !important;
    }

    .color-rose {
      color: #a90087 !important;
    }


    .color-coral-dark {
      color: #f26e42 !important;
    }

    .color-orange {
      color: #ff3901 !important;
    }

    .color-blue {
      color: #005cb7 !important;
    }

    .color-blue-dark {
      color: #004f9e !important;
    }
    .color-info-dark {
      color: #00aacc !important;
    }

    .color-green {
      color: #139135 !important;
    }
    .color-secondary-dark {
      color: #8627ba !important;
    }

    .color-pink-dark {
      color: #e03b71 !important;
    }

    .color-hot-pink {
      color: #ff2171 !important;
    }

    .bg-color-violet-opacity-light {
      background: #80008005 !important;
    }

    .bg-color-hot-pink {
      background-color: #ff2171 !important;
    }

    .color-purple {
      color: #6e00be !important;
    }

    .bg-color-purple {
      background-color: #6e00be !important;
    }

    .bg-color-purple-1 {
      background: #aa7ae90a !important;
    }

    .bg-color-purple-2 {
      background: #aa7ae913 !important;
    }

    .bg-color-purple-3 {
      background: #aa7ae924 !important;
    }

    .bg-color-purple-4 {
      background: #aa7ae930 !important;
    }


    .bg-color-purple-5 {
      background: #b966e7 !important;
    }

    .bg-color-purple-6 {
      background: #ab45e3 !important;
    }

    .bg-color-purple-7 {
      background: #a427e9 !important;
    }

    .bg-color-orange {
      background-color: #ff3802 !important;
    }

    .bg-color-orange-1 {
      background: #ff380208 !important;
    }

    .bg-color-orange-2 {
      background: #ff380213 !important;
    }

    .bg-color-orange-3 {
      background: #ff380220 !important;
    }

    .bg-color-orange-4 {
      background: #ff38022b !important;
    }

    .bg-color-orange-5l {
      background: #ff6c2e !important;
    }

    .bg-color-orange-5 {
      background: #ff5f1c !important;
    }

    .bg-color-orange-6 {
      background: #ff4d01 !important;
    }

    .bg-color-orange-7 {
      background: #ff3901 !important;
    }


    .bg-color-pink {
      background-color: #ff2171 !important;
    }

    .bg-color-pink-1 {
      background: #ff217108 !important;
    }

    .bg-color-pink-2 {
      background: #ff217113 !important;
    }

    .bg-color-pink-3 {
      background: #ff217124 !important;
    }

    .bg-color-pink-4 {
      background: #ff217130 !important;
    }


    .bg-color-pink-5 {
      background: #f93491 !important;
    }

    .bg-color-pink-6 {
      background: #ff278d !important;
    }

    .bg-color-pink-7 {
      background: #ff0f80 !important;
    }

    .bg-color-pink-8 {
      background: #fa0074 !important;
    }

    .bg-color-blue {
      background-color: #1a8bff !important;
    }

    .bg-color-blue-1 {
      background: #1a8bff08 !important;
    }

    .bg-color-blue-2 {
      background: #1a8bff13 !important;
    }

    .bg-color-blue-3 {
      background: #1a8bff24 !important;
    }

    .bg-color-blue-4 {
      background: #1a8bff30 !important;
    }


    .bg-color-blue-5l {
      background: #007eff !important;
    }

    .bg-color-blue-5 {
      background: #0076ee !important;
    }

    .bg-color-blue-6 {
      background: #006bd6 !important;
    }

    .bg-color-blue-7 {
      background: #005cb7 !important;
    }

    .bg-color-woo-purple {
      background: #7f54b2 !important;
    }

    .bg-color-woo-purple-light {
      background: #7f54b21a !important;
    }

    .bg-color-dark-purple-1 {
      background: #980ee4 !important;
    }

    .bg-color-dark-purple-2 {
      background: #8805d0 !important;
    }

    .bg-color-dark-purple-3 {
      background: #6b00a5 !important;
    }

    .bg-color-dark-purple-4 {
      background: #580088 !important;
    }

    .bg-color-pink-1 {
      background: #db709312 !important;
    }

    .bg-color-light-xl {
      background-color: #fafcff !important;
    }


    .bg-color-google-blue {
      background-color: #4285F4 !important;
    }

    .bg-color-google-green {
      background-color: #0F9D58 !important;
    }

    .bg-color-dark-green {
      background-color: #1a9139 !important;
    }

    .bg-color-google-red {
      background-color: #DB4437 !important;
    }

    .bg-color-google-yellow {
      background-color: #F4B400 !important;
    }

    .bg-color-white-light-opacity {
      background-color: #ffffff0d !important;
    }

    .bg-color-white-light-xl-opacity {
      background-color: #ffffff05 !important;
    }

    .bg-color-white-xl-opacity {
      background-color: #ffffff03 !important;
    }

    .bg-color-white-opacity-more {
        background-color: #ffffffe3 !important;
    }

    .bg-color-transparent {
        background-color: transparent!important;
    }
    .rbt-badge-6.bg-color-gray {
      color: #fff !important;
      background-color: #8e979b !important;
    }

    .color-bright-lime {
      color: #b0ff14 !important;
    }

    .color-bright-aqua {
      color: #07ffb9 !important;
    }

    .badge.numbering-badge {
      padding: 0.35em 0.6em;
    }

    @media (min-width:991px) {
      .numbered-badge-wrap .badge.numbering-badge {
        vertical-align: sub;
        margin-left: -12px;
      }
    }

    .numbered-badge-wrap .badge.numbering-badge {
      font-size: .9em !important;
    }

    .h5-badge {
      font-size: .67em;
      vertical-align: text-top;
      margin-right: 5px;
    }

    .card-light-purple-bg {
      box-shadow: none;
      background-color: #80008008;
    }

    .bg-color-light {
      background-color: #f6f9fc !important;
    }

    .bg-color-gray-med {
      background-color: #e6e8f1 !important;
    }

    .bg-color-gray-med-xl {
      background-color: #eef0f8 !important;
    }

    .mw--90 {
      max-width: 90%;
    }

    .mw--80 {
      max-width: 80%;
    }

    .padded-thumbnail {
      padding: 20px;
      background-color: #fff;
      border-radius: 6px;
    }

    .padded-thumbnail img {
      max-height: 500px;
    }

    .popup-mobile-menu .mainmenu li a:hover,
    .popup-mobile-menu .mainmenu li a:focus,
    .popup-mobile-menu .mainmenu li a:active {
      color: #9d2fef;
    }

    .Sect--Dark li.list-item.color-white {
      color: #f0f0f0 !important;
    }

    span.helv-font {
      font-family: "Helvetica Neue", sans-serif;
    }

    /* .hljs.highlight-code.language-plaintext {
      color: #4dd0e1;
    } */

    div.developer-example-wrap {
      border: 1px solid #ffffff26;
      border-radius: 14px;
    }

    #functions-container-wrap .margin-view-overlays,
    #functions-container-wrap .lines-content.monaco-editor-background {
      background-color: #021012 !important;
    }

    #functions-container-wrap .developer-example-wrap,
    .developer-example-wrap pre.highlight-code.language-cpp.hljs,
    #functions-container-wrap .monaco-editor.no-user-select.mac.showUnused.showDeprecated.vs-dark,
    #functions-container-wrap .monaco-editor .overflow-guard {
      border-radius: 14px;
    }


    .hljs {
      background: #021012 !important;
    }

    section.svg-section svg {
      margin-bottom: -1px;
    }

    section.svg-section svg {
      position: relative;
      z-index: 1;
    }

    .no-shadow {
      box-shadow: none !important;
    }

    .rbt-default-tab.tab-dark-bg {}

    .rbt-default-tab.tab-dark-bg .tab-button .tabs__tab .nav-link {
      color: var(--color-white);
      /* background: var(--color-gray); */
    }

    .rbt-default-tab.tab-dark-bg .tab-button .tabs__tab .nav-link.active {
      color: var(--color-heading);
      background: var(--color-lighter);
      border-color: transparent;
    }

    .rbt-default-tab.tab-dark-bg div.tab-content {
      padding: 30px;
      border-bottom-left-radius: .25rem;
      border-bottom-right-radius: .25rem;
    }

    .rbt-badge-super {
      background: var(--color-gray-light);
      padding: 4px 7px;
      font-size: 11px;
      display: inline-block;
      vertical-align: super;
      height: 22px;
      align-items: center;
      border-radius: var(--radius-small);
      justify-content: center;
      width: max-content;
    }

    .rbt-badge-default {
      font-size: 14px;
      line-height: 15px;
      font-weight: 500;
      margin-bottom: 15px;
      display: inline-block;
      padding: 10px 20px;
      border-radius: 100px;
      text-transform: uppercase;
      display: inline-block;
      background: #0c0c0c0a;
      color: var(--color-body);
    }

    .row.hero-btn-row .bg-secondary-opacity {
      color: #8d11d2 !important;
    }

    .row.hero-btn-row a.bg-secondary-opacity:hover,
    .row.hero-btn-row button.bg-secondary-opacity:hover {
      background: #a631e7 !important;
      color: var(--color-white) !important;
    }

    .row.hero-btn-row .bg-pink-opacity {
      background: #d733aa21 !important;
      color: #e3259f !important;
    }

    .row.hero-btn-row a.bg-pink-opacity:hover,
    .row.hero-btn-row button.bg-pink-opacity:hover {
      background: #d52186 !important;
      color: var(--color-white) !important;
    }

    .rbt-card.bg-color-text-white h4,
    .rbt-card.bg-color-text-white h5,
    .rbt-card.bg-color-text-white h6,
    .rbt-card.bg-color-text-white p,
    .rbt-card.bg-color-text-white ul li.list-item,
    .rbt-card.bg-color-text-white ol li.list-item {
      color: white !important;
    }

    .tab-content.bg-color-text-white h4,
    .tab-content.bg-color-text-white h5,
    .tab-content.bg-color-text-white h6,
    .tab-content.bg-color-text-white p,
    .tab-content.bg-color-text-white ul li.list-item,
    .tab-content.bg-color-text-white ol li.list-item {
      color: white !important;
    }

    .rbt-card.shadow-blue,
    .thumbnail.shadow-blue {
      box-shadow: var(--shadow-blue);
    }

    .rbt-card.shadow-12,
    .thumbnail.shadow-12 {
      box-shadow: var(--shadow-12);
    }

    .shadow-13 {
      box-shadow: 0 50px 100px -20px rgba(50, 50, 93, 0.25), 0 30px 60px -30px rgba(0, 0, 0, 0.3) !important;
    }

    .shadow-14 {
      box-shadow: 0 50px 100px -20px rgba(50, 50, 93, 0.25), 0 30px 60px -30px rgba(50, 50, 93, 0.25) !important;
    }

    .rbt-default-tab .rainbow-tab-content {
      background: var(--color-light);
      padding: 40px;
    }

    .rbt-default-tab .tab-button .tabs__tab .nav-link.active {
      background: var(--color-light);
      border-color: transparent;
    }

    .border-radius--30 {
      border-radius: 30px !important;
    }

    .border-radius--20 {
      border-radius: 20px !important;
    }

    .border-radius--15 {
      border-radius: 15px !important;
    }

    .border-radius--10 {
      border-radius: 10px !important;
    }

    .hero-terminal-simulator {
      opacity: .9
    }

    .terminal-font {
      font-family: "Courier 10 Pitch", Courier, monospace;
    }

    .terminal-font i {
      color: #7a7a7a !important;
      font-size: .775em;
    }

    .terminal-console-green,
    .terminal-font .terminal-console-green i {
      color: #3EB75E !important
    }

    .terminal-console-blue,
    .terminal-font .terminal-console-blue i {
      color: #579bec !important;
    }

    span.terminal-console-pink {
      color: #ff2171;
    }

    .hero-box-shadow {
      box-shadow: 0 50px 100px -20px rgba(50, 50, 93, 0.25), 0 30px 60px -30px rgba(50, 50, 93, 0.25);
    }

    #hero-ui-display {
      cursor: default !important;
      -webkit-touch-callout: none;
      -webkit-user-select: none;
      -khtml-user-select: none;
      -moz-user-select: none;
      -ms-user-select: none;
      user-select: none;
    }

    p.italic,
    span.italic {
      font-style: italic;
    }

    .rbt-default-tab .tab-button.white-nav .tabs__tab .nav-link.active {
      background: #fff;
      color: var(--color-heading);
      border-color: transparent;
    }

    .rbt-default-tab .tab-button.blue-trans-nav .tabs__tab .nav-link.active {
      background: #1a8bff13;
      border-color: transparent;
    }
  </style>

  <style>
    .Typewriter__cursor {
      display: none;
    }

    .hero-terminal-simulator {
      --terminalHeroBorderRadius: 10px;
      --terminalHeaderBorderRadius: 10px;
      --terminalHeroBgColor: #e8e8e8;
      border-radius: var(--terminalHeroBorderRadius);
      overflow: hidden;
      box-shadow: 0 20px 80px -20px rgba(50, 50, 93, 0.85), 0 10px 30px -20px rgba(50, 50, 93, 0.45);
    }

    .hero-terminal-simulator {
      opacity: 1;
    }

    .terminal-hero-card {
      border-top-left-radius: 0px;
      border-top-right-radius: 0px;
      /* opacity: .95; */
      padding: 20px;
    }

    .terminal-hero-header {
      height: 40px;
      background: var(--terminalHeroBgColor);
    }

    .terminal-mac-buttons {
      position: relative;
      top: -3px;
      left: 15px;
    }

    .mac-button {
      font-size: 13px;
    }

    .mac-button-close {
      color: #FF5D5A
    }

    .mac-button-minimize {
      color: #f5c350
    }

    .mac-button-maximize {
      color: #65cd57
    }
  </style>

  <style>
    .sect-thumbnail-main {
      position: relative;
      --sectImgScale: scale(1.7);
    }

    .sect-thumbnail-main.scale-less {
      --sectImgScale: scale(1.503);
    }

    .sect-thumbnail-main.scale-none {
      --sectImgScale: scale(1);
    }

    .sect-thumbnail-main.fade-white {
      --mgmtFadeBgColor: #ffffff;
    }

    .sect-thumbnail-main.fade-light {
      --mgmtFadeBgColor: #f6f9fc;
    }

    .sect-thumbnail-main.fade-light-xl {
      --mgmtFadeBgColor: #fafcff;
    }

    .sect-thumbnail-main.fade-gray {
      --mgmtFadeBgColor: #a0a9ac;
    }

    .sect-thumbnail-main.fade-gray-lighter {
      --mgmtFadeBgColor: #ebebeb;
    }

    .sect-thumbnail-main.fade-darker {
      --mgmtFadeBgColor: #192335;
    }

    .sect-thumbnail-main.fade-blue-1 {
      --mgmtFadeBgColor: #ecf2fa;
    }

    .sect-thumbnail-main.fade-lighter {
      --mgmtFadeBgColor: var(--color-lighter)
    }

    .sect-thumbnail-main.fade-page-theme {
      --mgmtFadeBgColor: var(--pageThemeBg)
    }

    .sect-thumbnail-wrapper {
      height: 350px;
      overflow: hidden;
      padding: 30px 30px 0px 30px;
      margin-top: -100px;
    }


    .sect-img {
      /* border-radius: 10px; */
    }

    .sect-img:not(.no-transform) {
      -moz-transform: var(--sectImgScale);
      -webkit-transform: var(--sectImgScale);
      transform: var(--sectImgScale);
      transform-origin: top left;
    }

    .sect-thumbnail {
      box-shadow: 0px 10px 30px -10px #47479b38, 0 10px 30px -10px #3f3f7338;
      border-radius: 10px;
      background: #fff;
      overflow: hidden;
      border: 0;
      height: 100%;
    }

    .sect-thumbnail:not(.no-border) {
      border: 15px solid #fff;
    }

    .sect-thumbnail.no-background {
      background: none;
    }

    .sect-thumbnail-fade {
      height: 70px;
      width: 100%;
      bottom: 0px;
      position: absolute;
      background: linear-gradient(to bottom, transparent, var(--mgmtFadeBgColor));
    }



    .sect-thumbnail-main.sect-thumbnail-cornered {
      position: absolute;
      bottom: -10px;
    }

    .sect-thumbnail-cornered .sect-thumbnail-wrapper {
      overflow: hidden;
      padding: 0;
      margin-top: 0px;
    }




    .manage-cards-row .sect-thumbnail-wrapper {
      height: 220px;
    }

    .sect-thumbnail-cornered .sect-img {
      border-radius: 0px;
      opacity: 1;
    }

    .sect-thumbnail-cornered .sect-img:not(.no-transform) {
      -moz-transform: var(--sectImgScale);
      -webkit-transform: var(--sectImgScale);
      transform: var(--sectImgScale);
      transform-origin: top left;
    }

    .sect-thumbnail-cornered .sect-thumbnail:not(.no-mask) {
      box-shadow: none;
      border-radius: 0px;
      border-top-left-radius: 10px;
      mask-image: linear-gradient(to left, transparent, var(--mgmtFadeBgColor) 30%);
      -webkit-mask-image: linear-gradient(to left, transparent, var(--mgmtFadeBgColor) 30%);
    }

    .sect-thumbnail-cornered .sect-thumbnail {
      border-top-right-radius: 0;
    }




    .tabs-bordered {
      --tabsBorderColor: #000;
      --tabsBorderRadius: 6px;
    }

    .tabs-bordered.rbt-default-tab .tab-button.white-nav .tabs__tab .nav-link.active {
      border-left: 1px solid var(--tabsBorderColor);
      border-right: 1px solid var(--tabsBorderColor);
      border-top: 1px solid var(--tabsBorderColor);
    }

    .tabs-bordered.rbt-default-tab .tab-button.white-nav .tabs__tab .nav-link:not(.active) {
      border-bottom: 1px solid var(--tabsBorderColor);
    }

    .tabs-bordered.rbt-default-tab .rainbow-tab-content {
      border-left: 1px solid var(--tabsBorderColor);
      border-right: 1px solid var(--tabsBorderColor);
      border-bottom: 1px solid var(--tabsBorderColor);
      border-bottom-left-radius: var(--tabsBorderRadius);
      border-bottom-right-radius: var(--tabsBorderRadius);
    }


    @media only screen and (min-width: 992px) {
      .card-left-content-col {
        border-left: 3px solid #fff;
      }

      .rbt-card.card-left-img .card-left-img-col .sect-thumbnail,
      .rbt-card.card-left-img .card-left-img-col .sect-img {
        border-radius: 0px;
      }
    }


    @media only screen and (min-width: 992px) {
      .sd--60 {
        bottom: -60px;
      }

      .sd--80 {
        bottom: -80px;
      }

      .sd--100 {
        bottom: -100px;
      }
    }

    .rbt-card.card-top-img,
    .rbt-card.card-top-img .card-body,
    .rbt-card.card-left-img,
    .rbt-card.card-left-img .card-body {
      padding: 0;
    }

    .rbt-card.card-top-img .card-top-img-col,
    .rbt-card.card-left-img .card-left-img-col {
      padding-left: 0;
      padding-right: 0;
    }


    .rbt-card.card-top-img .card-top-img-col .sect-thumbnail-wrapper,
    .rbt-card.card-left-img .card-left-img-col .sect-thumbnail-wrapper {
      padding: 0px;
      margin-top: 0px;
      height: 250px;
      overflow: hidden;
    }

    .rbt-card.card-top-img .card-top-img-col .sect-thumbnail-wrapper.short {
      height: 210px;
    }

    .rbt-card.card-top-img .card-top-img-col .sect-thumbnail-wrapper.tall {
      height: auto;
      max-height: 330px;
      min-height: 250px;
    }

    .rbt-card.card-top-img .card-top-img-col .sect-thumbnail {
      margin-left: 10%;
      margin-top: 10%
    }

    .rbt-card.card-top-img .card-top-img-col .sect-img {
      padding: 20px;
    }

    .card-top-content-wrap,
    .card-left-content-wrap {
      padding: 30px;
    }

    .card-top-text-wrap {
      padding: 40px;
    }

    .rbt-card.card-top-img .card-top-img-col .sect-thumbnail-fade,
    .rbt-card.card-left-img .card-left-img-col .sect-thumbnail-fade {
      opacity: .5;
    }


    .ml--10p {
      margin-left: 10%;
    }

    .mr--10p {
      margin-right: 10%;
    }

    .mlt--0 {
      margin-left: 0% !important;
      margin-top: 0% !important;
    }

    .op--9 {
      opacity: .9 !important;
    }

    .op--8 {
      opacity: .8 !important;
    }

    .op--7 {
      opacity: .7 !important;
    }

    .op--6 {
      opacity: .6 !important;
    }

    .op--5 {
      opacity: .5 !important;
    }

    .op--4 {
      opacity: .4 !important;
    }

    .op--3 {
      opacity: .3 !important;
    }

    .op--2 {
      opacity: .2 !important;
    }

    .op--1 {
      opacity: .1 !important;
    }

    .bg-color-lighter-d {
      background-color: #e1e4e8 !important;
    }

    .sect-thumbnail-wrapper.inner-box-shadow {
      box-shadow: var(--shadow-1);
    }

    .bg-gradient-white-blue {
      background: linear-gradient(rgb(255, 255, 255) 0%, rgb(250 252 255) 100%) !important;
    }

    .bg-gradient-white-purple {
      background: linear-gradient(rgb(255, 255, 255) 0%, rgb(247 239 255) 100%) !important;
    }

    .no-bottom-radius {
      border-bottom-left-radius: 0;
      border-bottom-right-radius: 0;
    }

    .btn-lg.btn-outline-secondary:focus {
      color: #fff;
    }
  </style>
  <style>
    .duo-image-wrap {
      position: relative;
    }

    .duo-image-wrap .thumbnail-wrapper {
      position: relative;
      display: flex;
      flex-wrap: wrap;
    }

    .duo-image-wrap .thumbnail-wrapper .thumbnail img {
      max-height: 450px;
      background-color: #fff;
      padding: 0px;
    }


    .duo-image-wrap img {
      object-fit: cover;
    }

    .duo-image-wrap .thumbnail-wrapper .thumbnail.image-1 {
      position: relative;
    }

    .duo-image-wrap .thumbnail-wrapper .thumbnail.image-2 {
      position: absolute;
      top: 0;
    }
  </style>
  <style>
    @media only screen and (min-width: 992px) {

      .duo-image-wrap .thumbnail-wrapper .thumbnail.image-2 {
        left: 0;
      }

      .row.duo-image-dormant-customer {
        margin-bottom: 250px;
      }

      .row.duo-image-soft-decline {
        margin-bottom: 300px;
      }

      .row.duo-image-renewal-sms {
        margin-bottom: 80px;
      }

      .duo-image-dormant-customer .duo-image-wrap .thumbnail-wrapper .thumbnail.image-1 {
        left: 200px;
        top: -50px;
      }

      .duo-image-dormant-customer .duo-image-wrap .thumbnail-wrapper .thumbnail.image-1 img {
        max-height: 550px;
      }


      .duo-image-dormant-customer .duo-image-wrap .thumbnail-wrapper .thumbnail.image-2 {
        top: 10px;
      }

      .duo-image-dormant-customer .duo-image-wrap .thumbnail-wrapper .thumbnail.image-2 img {
        max-height: 475px;
      }

      .duo-image-soft-decline .duo-image-wrap .thumbnail-wrapper .thumbnail.image-1 {
        left: 50px;
        top: -70px;
      }

      .duo-image-soft-decline .duo-image-wrap .thumbnail-wrapper .thumbnail.image-1 img {}

      .duo-image-soft-decline .duo-image-wrap .thumbnail-wrapper .thumbnail.image-2 {
        top: 130px;
      }

      .duo-image-soft-decline .duo-image-wrap .thumbnail-wrapper .thumbnail.image-2 img {
        max-height: 300px;
      }

      .duo-image-renewal-sms .duo-image-wrap .thumbnail-wrapper .thumbnail.image-1 {
        left: 320px;
        top: -20px;
      }

      .duo-image-renewal-sms .duo-image-wrap .thumbnail-wrapper .thumbnail.image-2 {}
    }

    @media only screen and (max-width: 991px) {

      .duo-image-wrap .thumbnail-wrapper .thumbnail.image-2 {
        right: 0;
      }

      .duo-image-wrap .thumbnail-wrapper .thumbnail img {
        background-color: #fff;
        padding: 0px;
      }

      .duo-image-wrap .thumbnail-wrapper .thumbnail.image-1 img {
        max-height: 350px;
      }

      .duo-image-wrap .thumbnail-wrapper .thumbnail.image-2 img {
        max-height: 300px;
        max-width: 60vw;
      }

      .duo-image-wrap .thumbnail-wrapper .thumbnail.image-2 {
        top: 100px;
      }


      .row.duo-image-dormant-customer {
        margin-bottom: 150px;
      }

      .row.duo-image-soft-decline {
        margin-bottom: 150px;
      }

      .row.duo-image-soft-decline {
        margin-bottom: 150px;
      }

      .row.duo-image-renewal-sms {
        margin-bottom: 100px;
      }
    }



    .gradient-canvas-overlay-wrap {
      height: 100%;
      width: 100%;
      position: absolute;
      right: 0;
      top: 0;
      --overlayPercent: 50%;
    }

    .gradient-canvas-overlay {
      height: 100%;
    }

    .overlay--50 {
      --overlayPercent: 50%;
    }

    .overlay--40 {
      --overlayPercent: 40%;
    }

    .overlay--30 {
      --overlayPercent: 30%;
    }

    .overlay--20 {
      --overlayPercent: 20%;
    }

    .overlay--10 {
      --overlayPercent: 10%;
    }

    .overlay-white {
      background: linear-gradient(#fff var(--overlayPercent), transparent);
    }

    .overlay-light {
      background: linear-gradient(#f6f9fc 30%, transparent);
    }

    .overlay-light-xl {
      background: linear-gradient(#fafcff 30%, transparent);
    }

    .overlay-lighter {
      background: linear-gradient(#F2F5F9 30%, transparent);
    }

    .overlay-purple {
      background: linear-gradient(#fbf9ff 40%, transparent);
    }
  </style></head>

<body class="MainBody">
  <div class="white-hero-navx">
    <!-- Start Header Area -->
    <header class="rbt-header rbt-header-1 rbt-transparent-header">
        <div class="rbt-sticky-placeholder"></div>
        <div class="rbt-header-wrapper header-space-betwween header-sticky">
            <div class="container-fluid">
                <div class="mainbar-row rbt-navigation-center align-items-center">
                    <div class="header-left rbt-header-content">
                        <div class="header-info">
                            <div class="logo">
                                <a href="/">

    
                                    <img src="https://cdn.revcent.com/img/revcent-logo-black.png" alt="RevCent Logo">
                                </a>
                            </div>
                        </div>
                    </div>

                    <div class="rbt-main-navigation d-none d-xl-block">
                        <nav class="mainmenu-nav">
                            <ul class="mainmenu">

                                <li class="with-megamenu has-menu-child-item position-static">
                                    <a class="a-no-link">Product <i class="feather-chevron-down d-none"></i></a>
                                    <div class="triangle-border-top-nav triangle-border-top-nav-grey"></div>
                                    <!-- Start Mega Menu  -->
                                    <div class="rbt-megamenu grid-item-3 advanced-tab-button-wrapper" style="margin-left:0">
                                        <div class="wrapper">


                                            <div class="row g-5">
                                                <div class="col-lg-4 col-md-12 col-sm-12 col-12 mt_md--30 mt_sm--30 order-2 order-lg-1 advanced-tab-button-content-col-1">
                                                    <div class="advance-tab-button advance-tab-button-1">
                                                        <ul class="nav nav-tabs tab-button-list advanced-tab-button-nav" id="myTab" role="tablist">
                                                            <li class="nav-item" role="presentation">
                                                                <a href="#" class="nav-link tab-button active" id="payments-tab" data-bs-toggle="tab" data-bs-target="#payments" role="tab" aria-controls="payments" aria-selected="true">
                                                                    <div class="tab">
                                                                        <h4 class="title">Payments</h4>
                                                                        <p class="description">Accept payments and increase revenue.</p>
                                                                    </div>
                                                                </a>
                                                            </li>

                                                            <li class="nav-item" role="presentation">
                                                                <a href="#" class="nav-link tab-button" id="manage-tab" data-bs-toggle="tab" data-bs-target="#manage" role="tab" aria-controls="manage" aria-selected="false">
                                                                    <div class="tab">
                                                                        <h4 class="title">Manage</h4>
                                                                        <p class="description">Manage mulitple aspects of your business.</p>
                                                                    </div>
                                                                </a>
                                                            </li>
                                                            <li class="nav-item" role="presentation">
                                                                <a href="#" class="nav-link tab-button" id="track-report-tab" data-bs-toggle="tab" data-bs-target="#track-report" role="tab" aria-controls="track-report" aria-selected="true">
                                                                    <div class="tab">
                                                                        <h4 class="title">Track & Report</h4>
                                                                        <p class="description">Conversion tracking and reporting.</p>
                                                                    </div>
                                                                </a>
                                                            </li>
                                                            <li class="nav-item" role="presentation">
                                                                <a href="#" class="nav-link tab-button" id="tools-tab" data-bs-toggle="tab" data-bs-target="#tools" role="tab" aria-controls="tools" aria-selected="false">
                                                                    <div class="tab">
                                                                        <h4 class="title">Tools</h4>
                                                                        <p class="description">Advanced capabilities and features.</p>
                                                                    </div>
                                                                </a>
                                                            </li>
                                                        </ul>
                                                    </div>
                                                </div>
                                                <div class="col-lg-8 col-md-12 col-sm-12 col-12 order-1 order-lg-2  advanced-tab-button-content-col-2">
                                                    <div class="tab-content advanced-tab-button-content">
                                                        <div class="tab-pane advance-tab-content-1 active show" id="payments" role="tabpanel" aria-labelledby="payments-tab">
                                                            <div class="row">
                                                                <div class="col-lg-6 col-md-12 col-sm-12 col-12">
                                                                    <ul class="mega-menu-item">
                                                                        <li>
                                                                            <a href="/products/payments/credit-card">
                                                                                <strong>Credit Card</strong>
                                                                                <br>
                                                                                <span>The ultimate credit card payment suite</span>
                                                                            </a>
                                                                        </li>
                                                                        <li>
                                                                            <a href="/products/payments/payment-profiles">
                                                                                <strong>Payment Routing</strong>
                                                                                <br>
                                                                                <span>Dynamically route payments</span>
                                                                            </a>
                                                                        </li>
                                                                        <li>
                                                                            <a href="/products/payments/revenue-recovery">
                                                                                <strong>Recovery Recovery</strong>
                                                                                <br>
                                                                                <span>Automatically recover lost revenue</span>
                                                                            </a>
                                                                        </li>
                                                                        <li>
                                                                            <a href="/products/payments/chargeback-management">
                                                                                <strong>Chargebacks</strong>
                                                                                <br>
                                                                                <span>Integrated chargeback management</span>
                                                                            </a>
                                                                        </li>
                                                                    </ul>
                                                                </div>
                                                                <div class="col-lg-6 col-md-12 col-sm-12 col-12">
                                                                    <ul class="mega-menu-item">
                                                                        <li>
                                                                            <a href="/products/payments/anti-fraud">
                                                                                <strong>Anti Fraud</strong>
                                                                                <br>
                                                                                <span>Prevent fraud with Sentinel, our in-house anti-fraud tool</span>
                                                                            </a>
                                                                        </li>
                                                                        <li>
                                                                            <a href="/products/payments/alternative">
                                                                                <strong>Third Party</strong>
                                                                                <br>
                                                                                <span>PayPal, Amazon Pay & more</span>
                                                                            </a>
                                                                        </li>
                                                                        <li>
                                                                            <a href="/products/payments/credit-card#section-mid-management">
                                                                                <strong>MID Management</strong>
                                                                                <br>
                                                                                <span>Organize MID's and prevent cross corp transactions</span>
                                                                            </a>
                                                                        </li>
                                                                        <li>
                                                                            <a href="/products/payments/credit-card#section-card-data">
                                                                                <strong>Card Storage</strong>
                                                                                <br>
                                                                                <span>Store customer cards securely within RevCent</span>
                                                                            </a>
                                                                        </li>
                                                                    </ul>
                                                                </div>
                                                            </div>
                                                        </div>
                                                        <div class="tab-pane advance-tab-content-1" id="manage" role="tabpanel" aria-labelledby="manage-tab">
                                                            <div class="row">
                                                                <div class="col-lg-6 col-md-12 col-sm-12 col-12">
                                                                    <ul class="mega-menu-item">
                                                                        <li>
                                                                            <a href="/products/manage/suite">
                                                                                <strong>Sales</strong>
                                                                                <br>
                                                                                <span>View and manage sales</span>
                                                                            </a>
                                                                        </li>
                                                                        <li>
                                                                            <a href="/products/manage/suite#section-customers">
                                                                                <strong>Customers</strong>
                                                                                <br>
                                                                                <span>Customer management in one place</span>
                                                                            </a>
                                                                        </li>
                                                                        <li>
                                                                            <a href="/products/manage/suite#section-shipping">
                                                                                <strong>Shipping</strong>
                                                                                <br>
                                                                                <span>Automate with integrated fulfillment centers</span>
                                                                            </a>
                                                                        </li>
                                                                        <li>
                                                                            <a href="/products/manage/suite#section-products">
                                                                                <strong>Products</strong>
                                                                                <br>
                                                                                <span>Multiple product types and variations</span>
                                                                            </a>
                                                                        </li>
                                                                    </ul>
                                                                </div>
                                                                <div class="col-lg-6 col-md-12 col-sm-12 col-12">
                                                                    <ul class="mega-menu-item">
                                                                        <li>
                                                                            <a href="/products/manage/suite#section-subscriptions">
                                                                                <strong>Subscriptions</strong>
                                                                                <br>
                                                                                <span>Recurring billing made easy</span>
                                                                            </a>
                                                                        </li>
                                                                        <li>
                                                                            <a href="/products/manage/suite#section-tax">
                                                                                <strong>Tax</strong>
                                                                                <br>
                                                                                <span>Manage tax using profiles or third parties</span>
                                                                            </a>
                                                                        </li>
                                                                        <li>
                                                                            <a href="/products/manage/suite#section-organizations">
                                                                                <strong>Users</strong>
                                                                                <br>
                                                                                <span>Add users with granular permissions</span>
                                                                            </a>
                                                                        </li>
                                                                        <li>
                                                                            <a href="/products/manage/suite#section-notes">
                                                                                <strong>Notes</strong>
                                                                                <br>
                                                                                <span>Take notes on customers, sales and more</span>
                                                                            </a>
                                                                        </li>
                                                                    </ul>
                                                                </div>
                                                            </div>
                                                        </div>
                                                        <div class="tab-pane advance-tab-content-1" id="track-report" role="tabpanel" aria-labelledby="track-report-tab">
                                                            <div class="row">
                                                                <div class="col-lg-6 col-md-12 col-sm-12 col-12">
                                                                    <ul class="mega-menu-item">
                                                                        <li>
                                                                            <a href="/products/tracking/suite">
                                                                                <strong>DNS Tracking</strong>
                                                                                <br>
                                                                                <span>Accurately track visitors across domains</span>
                                                                            </a>
                                                                        </li>
                                                                        <li>
                                                                            <a href="/products/tracking/suite#section-utilize-metadata">
                                                                                <strong>Metadata</strong>
                                                                                <br>
                                                                                <span>Utilize detailed metadata</span>
                                                                            </a>
                                                                        </li>
                                                                        <li>
                                                                            <a href="/products/tracking/suite#section-conversions">
                                                                                <strong>Conversions</strong>
                                                                                <br>
                                                                                <span>Know your true conversion metrics</span>
                                                                            </a>
                                                                        </li>
                                                                        <li>
                                                                            <a href="/products/tracking/suite#section-adwords">
                                                                                <strong>AdWords</strong>
                                                                                <br>
                                                                                <span>Link your AdWords account with RevCent</span>
                                                                            </a>
                                                                        </li>
                                                                    </ul>
                                                                </div>
                                                                <div class="col-lg-6 col-md-12 col-sm-12 col-12">
                                                                    <ul class="mega-menu-item">
                                                                        <li>
                                                                            <a href="/products/reporting/suite">
                                                                                <strong>Reports</strong>
                                                                                <br>
                                                                                <span>Pre-built reporting pages with popular metrics</span>
                                                                            </a>
                                                                        </li>
                                                                        <li>
                                                                            <a href="/products/reporting/suite#section-dashboard">
                                                                                <strong>Dashboard</strong>
                                                                                <br>
                                                                                <span>Advanced customizable metrics</span>
                                                                            </a>
                                                                        </li>
                                                                        <li>
                                                                            <a href="/products/reporting/suite#section-auto-queries">
                                                                                <strong>Auto Queries</strong>
                                                                                <br>
                                                                                <span>Receive custom metrics data via email, SMS and more</span>
                                                                            </a>
                                                                        </li>
                                                                        <li>
                                                                            <a href="/products/reporting/suite#section-bigquery">
                                                                                <strong>BigQuery</strong>
                                                                                <br>
                                                                                <span>Direct data access via Google BigQuery</span>
                                                                            </a>
                                                                        </li>
                                                                    </ul>
                                                                </div>
                                                            </div>
                                                        </div>
                                                        <div class="tab-pane advance-tab-content-1" id="tools" role="tabpanel" aria-labelledby="tools-tab">
                                                            <div class="row">
                                                                <div class="col-lg-6 col-md-12 col-sm-12 col-12">
                                                                    <ul class="mega-menu-item">
                                                                        <li>
                                                                            <a href="/products/tools/suite">
                                                                                <strong>Customer Groups</strong>
                                                                                <br>
                                                                                <span>Hyper advanced customer segments</span>
                                                                            </a>
                                                                        </li>
                                                                        <li>
                                                                            <a href="/products/tools/suite#section-flows">
                                                                                <strong>Flows</strong>
                                                                                <br>
                                                                                <span>Visual customer engagement builder</span>
                                                                            </a>
                                                                        </li>
                                                                        <li>
                                                                            <a href="/products/tools/suite#section-functions">
                                                                                <strong>Functions</strong>
                                                                                <br>
                                                                                <span>Run custom code hosted by RevCent</span>
                                                                            </a>
                                                                        </li>
                                                                        <li>
                                                                            <a href="/products/tools/suite#section-ai">
                                                                                <strong>AI</strong>
                                                                                <br>
                                                                                <span>Natively integrated with OpenAI</span>
                                                                            </a>
                                                                        </li>
                                                                    </ul>
                                                                </div>
                                                                <div class="col-lg-6 col-md-12 col-sm-12 col-12">
                                                                    <ul class="mega-menu-item">
                                                                        <li>
                                                                            <a href="/products/tools/suite#section-email-templates">
                                                                                <strong>Email Templates</strong>
                                                                                <br>
                                                                                <span>Send emails according to triggers</span>
                                                                            </a>
                                                                        </li>
                                                                        <li>
                                                                            <a href="/products/tools/suite#section-firehose">
                                                                                <strong>Firehose</strong>
                                                                                <br>
                                                                                <span>Send event details to any endpoint</span>
                                                                            </a>
                                                                        </li>
                                                                        <li>
                                                                            <a href="/products/integration/suite">
                                                                                <strong>Integrations</strong>
                                                                                <br>
                                                                                <span>Inbound, outbound & custom integrations</span>
                                                                            </a>
                                                                        </li>
                                                                        <li>
                                                                            <a href="/products/tools/suite#section-customer-portals">
                                                                                <strong>Customer Portals</strong>
                                                                                <br>
                                                                                <span>Customer portals for self service</span>
                                                                            </a>
                                                                        </li>
                                                                    </ul>
                                                                </div>
                                                            </div>
                                                        </div>
                                                    </div>
                                                </div>

                                            </div>
                                        </div>
                                        <!-- End Mega Menu  -->
                                </li>

                                <li class="with-megamenu has-menu-child-item position-static">
                                    <a class="a-no-link">Industries <i class="feather-chevron-down d-none"></i></a>
                                    <div class="triangle-border-top-nav"></div>
                                    <!-- Start Mega Menu  -->
                                    <div class="rbt-megamenu grid-item-4">
                                        <div class="wrapper">
                                            <div class="row row--15">
                                                <div class="col-lg-12 col-xl-3 col-xxl-3 single-mega-item">
                                                    <h3 class="rbt-short-title">Ecommerce</h3>
                                                    <ul class="mega-menu-item">
                                                        <li>
                                                            <a href="/products/integration/suite#section-woocommerce">
                                                                <strong>WooCommerce Plugin</strong>
                                                                <br>
                                                                <span>Link an existing WooCommerce store</span>
                                                            </a>
                                                        </li>
                                                        <li>
                                                            <a href="/products/integration/suite#section-woocommerce">
                                                                <strong>Hosted WooCommere</strong>
                                                                <br>
                                                                <span>Spin up a WooCommerce store in minutes</span>
                                                            </a>
                                                        </li>
                                                        <li>
                                                            <a href="/products/integration/suite#section-api">
                                                                <strong>Direct API</strong>
                                                                <br>
                                                                <span>Integrate a custom store via API</span>
                                                            </a>
                                                        </li>
                                                        <li>
                                                            <a href="/products/tracking/suite">
                                                                <strong>Tracking</strong>
                                                                <br>
                                                                <span>In-house DNS tracking</span>
                                                            </a>
                                                        </li>
                                                    </ul>
                                                </div>
                                                <div class="col-lg-12 col-xl-3 col-xxl-3 single-mega-item">
                                                    <h3 class="rbt-short-title">SAAS</h3>
                                                    <ul class="mega-menu-item">
                                                        <li>
                                                            <a href="/products/integration/suite#section-api">
                                                                <strong>Advanced API</strong>
                                                                <br>
                                                                <span>Use our API to process payments, retrieve data and more</span>
                                                            </a>
                                                        </li>
                                                        <li>
                                                            <a href="/products/tools/suite#section-functions">
                                                                <strong>Functions</strong>
                                                                <br>
                                                                <span>Run your own code in the cloud without servers</span>
                                                            </a>
                                                        </li>
                                                        <li>
                                                            <a href="/products/tracking/suite#section-metadata">
                                                                <strong>Metadata</strong>
                                                                <br>
                                                                <span>Implement metadata in API requests for granular analysis</span>
                                                            </a>
                                                        </li>
                                                    </ul>
                                                </div>
                                                <div class="col-lg-12 col-xl-3 col-xxl-3 single-mega-item">
                                                    <h3 class="rbt-short-title">Call Center</h3>
                                                    <ul class="mega-menu-item">
                                                        <li>
                                                            <a href="/products/manage/suite#section-organizations">
                                                                <strong>Organizations</strong>
                                                                <br>
                                                                <span>Organize users by business to separate concerns</span>
                                                            </a>
                                                        </li>
                                                        <li>
                                                            <a href="/products/manage/suite#section-organizations">
                                                                <strong>Permissions</strong>
                                                                <br>
                                                                <span>User hierarchy and granular permissions within organizations</span>
                                                            </a>
                                                        </li>
                                                        <li>
                                                            <a href="/products/manage/suite#section-notes">
                                                                <strong>Item Notes</strong>
                                                                <br>
                                                                <span>Take notes which are visible throughout the system</span>
                                                            </a>
                                                        </li>
                                                    </ul>
                                                </div>
                                                <div class="col-lg-12 col-xl-3 col-xxl-3 single-mega-item">
                                                    <h3 class="rbt-short-title">Self Serve</h3>
                                                    <ul class="mega-menu-item">
                                                        <li>
                                                            <a href="/products/manage/suite">
                                                                <strong>Manual Billing</strong>
                                                                <br>
                                                                <span>Create sales and process customer payments in the RevCent web app</span>
                                                            </a>
                                                        </li>
                                                        <li>
                                                            <a href="/products/manage/suite">
                                                                <strong>Invoices</strong>
                                                                <br>
                                                                <span>Create invoices and send clients a link to pay online or print and mail</span>
                                                            </a>
                                                        </li>
                                                        <li>
                                                            <a href="/products/tools/suite#section-customer-portals">
                                                                <strong>Portals</strong>
                                                                <br>
                                                                <span>Allow customers to login and make payments, track shipping and more</span>
                                                            </a>
                                                        </li>
                                                    </ul>
                                                </div>
                                            </div>
                                        </div>
                                    </div>
                                    <!-- End Mega Menu  -->
                                </li>

                                <li class="">
                                    <a href="/pricing">Pricing
                                        <i class="feather-chevron-down d-none"></i>
                                    </a>
                                </li>

                                <li class="with-megamenu has-menu-child-item">
                                    <a class="a-no-link">Help <i class="feather-chevron-down d-none"></i></a>
                                    <div class="triangle-border-top-nav"></div>
                                    <!-- Start Mega Menu  -->
                                    <div class="rbt-megamenu grid-item-2">
                                        <div class="wrapper">
                                            <div class="row row--15">
                                                <div class="col-lg-12 col-xl-6 col-xxl-6 single-mega-item">
                                                    <h3 class="rbt-short-title">Docs</h3>
                                                    <ul class="mega-menu-item">
                                                        <li><a href="https://kb.revcent.com/" target="_blank">Knowledge Base <i class="far fa-external-link-square-alt small"></i></a></li>
                                                        <li><a href="/docs/api">API</a></li>
                                                    </ul>
                                                </div>
                                                <div class="col-lg-12 col-xl-6 col-xxl-6 single-mega-item">
                                                    <h3 class="rbt-short-title">Popular Guides</h3>
                                                    <ul class="mega-menu-item">
                                                        <li><a href="https://kb.revcent.com/en/tracking/conversion-tracking" target="_blank">Conversion Tracking</a></li>
                                                        <li><a href="https://kb.revcent.com/integrations/third-party-shop/woocommerce-installation" target="_blank">WooCommerce Integration</a></li>
                                                        <li><a href="https://kb.revcent.com/en/payments/credit-card/payment-profile" target="_blank">Payment Profiles</a></li>
                                                    </ul>
                                                </div>
                                            </div>
                                            <div class="row">
                                                <div class="col-lg-12">
                                                    <ul class="nav-quick-access">
                                                        <li><a href="https://revcent.statuspage.io/" target="_blank"><i class="feather-folder-minus"></i> System Status</a></li>
                                                        <li><a href="https://kb.revcent.com/en/guides/initial-setup" target="_blank"><i class="feather-folder-minus"></i> Quick Start Guide</a></li>
                                                    </ul>
                                                </div>
                                            </div>
                                        </div>
                                    </div>
                                    <!-- End Mega Menu  -->
                                </li>

                                <li class="">
                                    <a href="/contact">Contact
                                    </a>
                                </li>
                            </ul>
                        </nav>
                    </div>

                    <div class="header-right">

                        <!-- Navbar Icons -->
                        <ul class="quick-access">


    
                            <li class="account-access rbt-user-wrapper d-none d-xl-block">
                                <a class="" href="/register"><i class="feather-user-plus"></i>Sign Up</a>
                            </li>
                            <li class="account-access rbt-user-wrapper d-none d-xl-block">
                                <a href="/login"><i class="feather-log-in"></i>Log In</a>
                            </li>
    

                        </ul>

                        <!-- Start Mobile-Menu-Bar -->
                        <div class="mobile-menu-bar d-block d-xl-none">
                            <div class="hamberger">

    
                                <button class="hamberger-button rbt-round-btn">
                                    <i class="feather-menu"></i>
                                </button>
                            </div>
                        </div>
                        <!-- Start Mobile-Menu-Bar -->

                    </div>
                </div>
            </div>

        </div>

    </header>


    <!-- Mobile Menu Section -->
    <div class="popup-mobile-menu">
        <div class="inner-wrapper">
            <div class="inner-top">
                <div class="content">
                    <div class="logo">
                        <a href="/">
                            <img src="https://cdn.revcent.com/img/revcent-logo-black.png" alt="RevCent">
                        </a>
                    </div>
                    <div class="rbt-btn-close">
                        <button class="close-button rbt-round-btn"><i class="feather-x"></i></button>
                    </div>
                </div>
            </div>

            <nav class="mainmenu-nav">
                <ul class="mainmenu">
                    <li class="with-megamenu has-menu-child-item position-static">
                        <a href="#">Payments <i class="feather-chevron-down"></i></a>
                        <div class="rbt-megamenu grid-item-4">
                            <div class="wrapper">
                                <div class="row row--15">
                                    <div class="col-lg-12 col-xl-3 col-xxl-3 single-mega-item">
                                        <ul class="mega-menu-item">
                                            <li>
                                                <a href="/products/payments/credit-card">
                                                    Credit Card
                                                    <br>
                                                    <span class="text-muted small">The ultimate credit card payment suite</span>
                                                </a>
                                            </li>
                                            <li>
                                                <a href="/products/payments/payment-profiles">
                                                    Payment Routing
                                                    <br>
                                                    <span class="text-muted small">Dynamically route payments</span>
                                                </a>
                                            </li>
                                            <li>
                                                <a href="/products/payments/revenue-recovery">
                                                    Recovery Recovery
                                                    <br>
                                                    <span class="text-muted small">Automatically recover lost revenue</span>
                                                </a>
                                            </li>
                                            <li>
                                                <a href="/products/payments/chargeback-management">
                                                    Chargebacks
                                                    <br>
                                                    <span class="text-muted small">Integrated chargeback management</span>
                                                </a>
                                            </li>
                                            <li>
                                                <a href="/products/payments/anti-fraud">
                                                    Anti Fraud
                                                    <br>
                                                    <span class="text-muted small">Prevent fraud with Sentinel, our in-house anti-fraud tool</span>
                                                </a>
                                            </li>
                                            <li>
                                                <a href="/products/payments/alternative">
                                                    Third Party
                                                    <br>
                                                    <span class="text-muted small">PayPal, Amazon Pay & more</span>
                                                </a>
                                            </li>
                                            <li>
                                                <a href="/products/payments/credit-card#section-mid-management">
                                                    MID Management
                                                    <br>
                                                    <span class="text-muted small">Organize MID's and prevent cross corp transactions</span>
                                                </a>
                                            </li>
                                            <li>
                                                <a href="/products/payments/credit-card#section-card-data">
                                                    Card Storage
                                                    <br>
                                                    <span class="text-muted small">Store customer cards securely within RevCent</span>
                                                </a>
                                            </li>
                                        </ul>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </li>
                    <li class="with-megamenu has-menu-child-item position-static">
                        <a href="#">Management <i class="feather-chevron-down"></i></a>
                        <div class="rbt-megamenu grid-item-4">
                            <div class="wrapper">
                                <div class="row row--15">
                                    <div class="col-lg-12 col-xl-3 col-xxl-3 single-mega-item">
                                        <ul class="mega-menu-item">
                                            <li>
                                                <a href="/products/manage/suite">
                                                    Sales
                                                    <br>
                                                    <span class="text-muted small">View and manage sales</span>
                                                </a>
                                            </li>
                                            <li>
                                                <a href="/products/manage/suite#section-customers">
                                                    Customers
                                                    <br>
                                                    <span class="text-muted small">Customer management in one place</span>
                                                </a>
                                            </li>
                                            <li>
                                                <a href="/products/manage/suite#section-shipping">
                                                    Shipping
                                                    <br>
                                                    <span class="text-muted small">Automate with integrated fulfillment centers</span>
                                                </a>
                                            </li>
                                            <li>
                                                <a href="/products/manage/suite#section-products">
                                                    Products
                                                    <br>
                                                    <span class="text-muted small">Multiple product types and variations</span>
                                                </a>
                                            </li>
                                            <li>
                                                <a href="/products/manage/suite#section-subscriptions">
                                                    Subscriptions
                                                    <br>
                                                    <span class="text-muted small">Recurring billing made easy</span>
                                                </a>
                                            </li>
                                            <li>
                                                <a href="/products/manage/suite#section-tax">
                                                    Tax
                                                    <br>
                                                    <span class="text-muted small">Manage tax using profiles or third parties</span>
                                                </a>
                                            </li>
                                            <li>
                                                <a href="/products/manage/suite#section-organizations">
                                                    Users
                                                    <br>
                                                    <span class="text-muted small">Add users with granular permissions</span>
                                                </a>
                                            </li>
                                            <li>
                                                <a href="/products/manage/suite#section-notes">
                                                    Notes
                                                    <br>
                                                    <span class="text-muted small">Take notes on customers, sales and more</span>
                                                </a>
                                            </li>
                                        </ul>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </li>
                    <li class="with-megamenu has-menu-child-item position-static">
                        <a href="#">Tracking <i class="feather-chevron-down"></i></a>
                        <div class="rbt-megamenu grid-item-4">
                            <div class="wrapper">
                                <div class="row row--15">
                                    <div class="col-lg-12 col-xl-3 col-xxl-3 single-mega-item">
                                        <ul class="mega-menu-item">
                                            <li>
                                                <a href="/products/tracking/suite">
                                                    DNS Tracking
                                                    <br>
                                                    <span class="text-muted small">Accurately track visitors across domains</span>
                                                </a>
                                            </li>
                                            <li>
                                                <a href="/products/tracking/suite#section-utilize-metadata">
                                                    Metadata
                                                    <br>
                                                    <span class="text-muted small">Utilize detailed metadata</span>
                                                </a>
                                            </li>
                                            <li>
                                                <a href="/products/tracking/suite#section-conversions">
                                                    Conversions
                                                    <br>
                                                    <span class="text-muted small">Know your true conversion metrics</span>
                                                </a>
                                            </li>
                                            <li>
                                                <a href="/products/tracking/suite#section-adwords">
                                                    AdWords
                                                    <br>
                                                    <span class="text-muted small">Link your AdWords account with RevCent</span>
                                                </a>
                                            </li>
                                        </ul>
                                    </div>
                                </div>
                            </div>
                        </div>
                        <!-- End Mega Menu  -->
                    </li>
                    <li class="with-megamenu has-menu-child-item position-static">
                        <a href="#">Reporting <i class="feather-chevron-down"></i></a>
                        <div class="rbt-megamenu grid-item-4">
                            <div class="wrapper">
                                <div class="row row--15">
                                    <div class="col-lg-12 col-xl-3 col-xxl-3 single-mega-item">
                                        <ul class="mega-menu-item">
                                            <li>
                                                <a href="/products/reporting/suite">
                                                    Reports
                                                    <br>
                                                    <span class="text-muted small">Pre-built reporting pages with popular metrics</span>
                                                </a>
                                            </li>
                                            <li>
                                                <a href="/products/reporting/suite#section-dashboard">
                                                    Dashboard
                                                    <br>
                                                    <span class="text-muted small">Advanced customizable metrics</span>
                                                </a>
                                            </li>
                                            <li>
                                                <a href="/products/reporting/suite#section-auto-queries">
                                                    Auto Queries
                                                    <br>
                                                    <span class="text-muted small">Receive custom metrics data via email, SMS and more</span>
                                                </a>
                                            </li>
                                            <li>
                                                <a href="/products/reporting/suite#section-bigquery">
                                                    BigQuery
                                                    <br>
                                                    <span class="text-muted small">Direct data access via Google BigQuery</span>
                                                </a>
                                            </li>
                                        </ul>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </li>
                    <li class="with-megamenu has-menu-child-item position-static">
                        <a href="#">Tools <i class="feather-chevron-down"></i></a>
                        <div class="rbt-megamenu grid-item-4">
                            <div class="wrapper">
                                <div class="row row--15">
                                    <div class="col-lg-12 col-xl-3 col-xxl-3 single-mega-item">
                                        <ul class="mega-menu-item">
                                            <li>
                                                <a href="/products/tools/suite">
                                                    Customer Groups
                                                    <br>
                                                    <span class="text-muted small">Hyper advanced customer segments</span>
                                                </a>
                                            </li>
                                            <li>
                                                <a href="/products/tools/suite#section-flows">
                                                    Flows
                                                    <br>
                                                    <span class="text-muted small">Visual customer engagement builder</span>
                                                </a>
                                            </li>
                                            <li>
                                                <a href="/products/tools/suite#section-functions">
                                                    Functions
                                                    <br>
                                                    <span class="text-muted small">Run custom code hosted by RevCent</span>
                                                </a>
                                            </li>
                                            <li>
                                                <a href="/products/tools/suite#section-ai">
                                                    AI
                                                    <br>
                                                    <span class="text-muted small">Natively integrated with OpenAI</span>
                                                </a>
                                            </li>
                                            <li>
                                                <a href="/products/tools/suite#section-email-templates">
                                                    Email Templates
                                                    <br>
                                                    <span class="text-muted small">Send emails according to triggers</span>
                                                </a>
                                            </li>
                                            <li>
                                                <a href="/products/tools/suite#section-firehose">
                                                    Firehose
                                                    <br>
                                                    <span class="text-muted small">Send event details to any endpoint</span>
                                                </a>
                                            </li>
                                            <li>
                                                <a href="/products/integration/suite">
                                                    Integrations
                                                    <br>
                                                    <span class="text-muted small">Inbound, outbound & custom integrations</span>
                                                </a>
                                            </li>
                                            <li>
                                                <a href="/products/tools/suite#section-customer-portals">
                                                    Customer Portals
                                                    <br>
                                                    <span class="text-muted small">Customer portals for self service</span>
                                                </a>
                                            </li>
                                        </ul>
                                    </div>
                                </div>
                            </div>
                        </div>
                        <!-- End Mega Menu  -->
                    </li>
                    <li>
                        <a href="/pricing">
                            Pricing
                        </a>
                    </li>
                    <li class="with-megamenu has-menu-child-item position-static">
                        <a href="#">Help <i class="feather-chevron-down"></i></a>
                        <div class="rbt-megamenu grid-item-4">
                            <div class="wrapper">
                                <div class="row row--15">
                                    <div class="col-lg-12 col-xl-3 col-xxl-3 single-mega-item">
                                        <h3 class="rbt-short-title">Docs</h3>
                                        <ul class="mega-menu-item">
                                            <li><a href="https://kb.revcent.com/" target="_blank">Knowledge Base <i class="far fa-external-link-square-alt small"></i></a></li>
                                            <li><a href="/docs/api" target="_blank">API <i class="far fa-external-link-square-alt small"></i></a></li>
                                        </ul>
                                    </div>

                                    <div class="col-lg-12 col-xl-3 col-xxl-3 single-mega-item">
                                        <h3 class="rbt-short-title">Popular Guides</h3>
                                        <ul class="mega-menu-item">
                                            <li><a href="https://kb.revcent.com/en/tracking/conversion-tracking" target="_blank">Conversion Tracking</a></li>
                                            <li><a href="https://kb.revcent.com/integrations/third-party-shop/woocommerce-installation" target="_blank">WooCommerce Integration</a></li>
                                            <li><a href="https://kb.revcent.com/en/payments/credit-card/payment-profile" target="_blank">Payment Profiles</a></li>
                                        </ul>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </li>
                    <li>
                        <a href="/contact">
                            Contact
                        </a>
                    </li>
                </ul>
            </nav>
            <div class="mobile-menu-bottom">
                <div class="rbt-btn-wrapper mb--20">
                    <a href="/register" class="rbt-btn btn-sm bg-color-pink-4 color-hot-pink d-block text-center">Sign Up</a>
                </div>
                <div class="rbt-btn-wrapper mb--20">
                    <a href="/login" class="rbt-btn btn-sm bg-color-purple-4 d-block text-center color-purple">Login</a>
                </div>
            </div>
        </div>
    </div>
    <a class="close_side_menu" href="javascript:void(0);"></a>  </div>


  <main class="rbt-main-wrapper">



    <section class="Section Sect--angleNormal Sect--paddingXSmall">

      <div class=" Sect__masked">
        <div class="Sect__backgroundMask">
          <div class="Sect__background bg-color-white">

          </div>
        </div>


        <div class="container Sect__container">
          <div class="container-wrap Sect__layoutContainer">
            <div class="container-inner Sect__layout">
              <div class="row text-center mb--30">
                <div class="col-12 mt--100">
                  <h1>Terms & Conditions</h1>
                </div>
              </div>
              <div class="row mb--30">
                <div class="col-lg-10 offset-lg-1">
                  <h4>Overview</h4>
                  <p>
                    By registering with and using RevCent you agree to the Terms and Conditions below.
                  </p>
                  <br>
                  <h4>Using RevCent</h4>
                  <p>
                    Please do not misuse any services that we provide. Any attempts to hack, manipulate, misuse or use our services in a malicious way will be taken seriously. RevCent asks that all users that discover any security issues please contact us at admin@revcent.com immediately.
                  </p>
                  <br>
                  <h4>Modification or Termination of Services</h4>
                  <p>
                    We never stop developing at RevCent and may modify or stop providing a particular feature or service. Any features or services that may be discontinued will be announced at least 30 days prior to termination/suspension in order to give you time to respond to such changes.
                  </p>
                  <br>
                  <h4>Warranty and Liability</h4>
                  <p>
                    WE PROVIDE THE SERVICES "AS IS". WHEN PERMITTED BY LAW, REVCENT WILL NOT BE RESPONSIBLE FOR LOST PROFITS, REVENUES, OR DATA, FINANCIAL LOSSES OR INDIRECT, SPECIAL, CONSEQUENTIAL, EXEMPLARY, OR PUNITIVE DAMAGES.
                  </p>
                  <p>
                    TO THE EXTENT PERMITTED BY LAW, THE TOTAL LIABILITY OF REVCENT FOR ANY CLAIMS UNDER THESE TERMS, INCLUDING FOR ANY IMPLIED WARRANTIES, IS LIMITED TO THE AMOUNT YOU PAID US.
                  </p>
                  <p>
                    IN ALL CASES, REVCENT WILL NOT BE LIABLE FOR ANY LOSS OR DAMAGE THAT IS NOT REASONABLY FORESEEABLE.
                  </p>
                  <br>
                  <h4>Using RevCent for a business</h4>
                  <p>
                    If you are using our Services on behalf of a business, that business also accepts these terms. The business hold harmless and indemnify RevCent and its officers, agents, and employees from any claim, suit or action arising from or related to the use of RevCent or violation of these terms, including any liability or expense arising from claims, losses, damages, suits, judgments, litigation costs and attorneys' fees.
                  </p>
                  <br>
                  <h4>Updates</h4>
                  <p>
                    Our Terms and Conditions may change and all updates will be posted on this page.
                  </p>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
    </section>


    <footer class="Section SiteFooterSection Sect--paddingXSmall">

      <div class=" Sect__masked">
        <div class="Sect__backgroundMask">
          <div class="Sect__background bg-color-white">

          </div>
        </div>
        <div class="container Sect__container">
          <div class="container-wrap Sect__layoutContainer">
            <div class="container-inner Sect__layout">
              
                      <!-- Start Copyright Area  -->
                      <div class="copyright-area copyright-style-1 ptb--20">
                          <div class="container">
                              <div class="row align-items-center">
                                  <div class="col-xxl-6 col-xl-6 col-lg-6 col-md-12 col-12">
                                      <p class="rbt-link-hover text-center text-lg-start">© RevCent</p>
                                  </div>
                                  <div class="col-xxl-6 col-xl-6 col-lg-6 col-md-12 col-12">
                                      <ul class="copyright-link rbt-link-hover justify-content-center justify-content-lg-end mt_sm--10 mt_md--10">
                                          <li><a href="/terms-and-conditions">Terms & Conditions</a></li>
                                          <li><a href="/privacy-policy">Privacy Policy</a></li>
                                      </ul>
                                  </div>
                              </div>
                          </div>
                      </div>
                      <!-- End Copyright Area  -->            </div>
          </div>
        </div>
      </div>
    </footer>

  </main>

  <!-- End Page Wrapper Area -->
  <div class="rbt-progress-parent d-none">
    <svg class="rbt-back-circle svg-inner" width="100%" height="100%" viewBox="-1 -1 102 102">
      <path d="M50,1 a49,49 0 0,1 0,98 a49,49 0 0,1 0,-98" />
    </svg>
  </div>

  <script src="https://cdn.revcent.com/public-new/js/vendor/modernizr.min.js"></script>
  <script src="https://cdn.revcent.com/public-new/js/vendor/jquery.js"></script>
  <script src="https://cdn.revcent.com/public-new/js/vendor/bootstrap.min.js"></script>
  <script src="https://cdn.revcent.com/public-new/js/vendor/sal.js"></script>
  <script src="https://cdn.revcent.com/public-new/js/vendor/swiper.js"></script>
  <script src="https://cdn.revcent.com/public-new/js/vendor/magnify.min.js"></script>
  <script src="https://cdn.revcent.com/public-new/js/vendor/jquery-appear.js"></script>
  <script src="https://cdn.revcent.com/public-new/js/vendor/odometer.js"></script>
  <script src="https://cdn.revcent.com/public-new/js/vendor/backtotop.js"></script>
  <script src="https://cdn.revcent.com/public-new/js/vendor/isotop.js"></script>
  <script src="https://cdn.revcent.com/public-new/js/vendor/imageloaded.js"></script>
  <script src="https://cdn.revcent.com/public-new/js/vendor/wow.js"></script>
  <script src="https://cdn.revcent.com/public-new/js/vendor/waypoint.min.js"></script>
  <script src="https://cdn.revcent.com/public-new/js/vendor/easypie.js"></script>
  <script src="https://cdn.revcent.com/public-new/js/vendor/text-type.js"></script>
  <script src="https://cdn.revcent.com/public-new/js/vendor/jquery-one-page-nav.js"></script>
  <script src="https://cdn.revcent.com/public-new/js/vendor/bootstrap-select.min.js"></script>
  <script src="https://cdn.revcent.com/public-new/js/vendor/jquery-ui.js"></script>
  <script src="https://cdn.revcent.com/public-new/js/vendor/magnify-popup.min.js"></script>
  <script src="https://cdn.revcent.com/public-new/js/vendor/paralax-scroll.js"></script>
  <script src="https://cdn.revcent.com/public-new/js/vendor/paralax.min.js"></script>
  <script src="https://cdn.revcent.com/public-new/js/vendor/countdown.js"></script>
  <script src="https://cdn.revcent.com/public-new/js/vendor/plyr.js"></script>
  <script src="https://cdn.revcent.com/js/plugins/lodash/lodash.js"></script>
  <script src="https://cdn.revcent.com/js/plugins/sweetalert/sweetalert.min.js"></script>

  <script src="https://cdn.revcent.com/js/plugins/validation/jquery.validate.min.js"></script>
  <script src="https://cdn.revcent.com/js/plugins/validation/additional-methods.min.js"></script>
  <script src="https://www.google.com/recaptcha/api.js?onload=recaptchaLibLoaded&render=explicit" async defer></script>
  <script src="https://cdn.revcent.com/js/plugins/anim-gradient/anim-gradient.js"></script>
  <script src="https://cdn.revcent.com/js/plugins/highlightjs/highlight-2.min.js"></script>
  <script src="https://cdn.revcent.com/js/plugins/typeit/typeit.js"></script>




  <script>
    let registerRequestRecaptchaWidget;
    let contactModalRecaptchaWidget;
    recaptchaLibLoaded=function() {
      let recaptcha_site_key='6LcDsNUUAAAAAIpsHmkuI7Renzt8xNAl7HHItOou';
      if($('#recaptcha_contact_modal').length>0) {
        contactModalRecaptchaWidget=grecaptcha.render('recaptcha_contact_modal',{
          'sitekey': recaptcha_site_key
        });
      }
      if($('#recaptcha_register_request').length>0) {
        registerRequestRecaptchaWidget=grecaptcha.render('recaptcha_register_request',{
          'sitekey': recaptcha_site_key
        });
      }
    };

    $(document).ready(function() {
      $(document).on('mouseenter','.advanced-tab-button-nav .nav-link:not(.active)',function(a) {
        $(this).tab('show');
      });
      $('.lobtn').click(function() {
        $.ajax({
          type: 'POST',
          url: '/auth/logout',
          dataType: "json",
          success: function(x) {
            window.location.replace('/');
          }
        });
      });
    });
  </script>

  <script>
    // $('.page-theme-link.small').hover(function() {
    //   $(this).children('i.far.fa-angle-right.small').addClass('ml--5');
    // },
    //   function() {
    //     $(this).children('i.far.fa-angle-right.small').removeClass('ml--5');
    //   });
  </script>
  <script>
    let hero_palette=[
      ['#521262','#6639a6','#3490de','#6fe7dd'], //0
      ['#f8ecfd','#c264fe','#a82ffc','#7a08fa'], //purple 1
      ['#d9faff','#00bbf0','#005792','#00204a'], //ice 2
      ['#fc85ae','#9e579d','#574b90','#303a52'], //city night 3
      ['#abedd8','#46cdcf','#3d84a8','#48466d'], //sea foam 4
      ['#d2ecf9','#1891ac','#1f5f8b','#253b6e'], //ocean 5
      ['#ffbd39','#e61c5d','#930077','#3a0088'], //dark fruit 6
      ['#ff165d','#ff9a00','#ebedb4','#3ec1d3'], //fruit 7
      ['#ffde7d','#f6416c','#f8f3d4','#00b8a9'], //light melon 8
      ['#eaeaea','#ff2e63','#252a34','#08d9d6'], //peppermint 9
      ['#64379f','#9854cb','#ddacf5','#33a8b5'], // 10
      ['#5f59f7','#6592fd','#44c2fd','#8c61ff'], // 11
      ['#a7dbd8','#e0e4cc','#f38630','#fa6900'], // 12
      ['#0dceda','#6ef3d6','#c6fce5','#ebfffa'], //13
      ['#7e6bc4','#c79ecf','#d6c8ff','#fef0ff'], //14
      ['#d988bc','#ffa8b8','#ffd2a5','#ffffc1'], //15
      ['#8a00d4','#d527b7','#f782c2','#f9c46b'], //16
      ['#556270','#4ecdc4','#c7f464','#ff6b6b'], //17
      ['#bce784','#5dd39e','#348aa7','#525174'], //18
      ['#ff9de2','#8c82fc','#b693fe','#7effdb'], //19
      ['#8971d0','#7dace4','#95e8d7','#adf7d1'], //20
      ['#fff5a5','#ffaa64','#ff8264','#ff6464'], //21
      ['#a7ff83','#17b978','#086972','#071a52'], //22
      ['#2f9296','#46b7b9','#87dfd6','#dff5f2'], //23
      ['#74f9ff','#e8ffe8','#a6fff2','#00e0ff'], //24
      ['#d7fbe8','#62d2a2','#9df3c4','#1fab89'], //25
      ['#F0FF42','#82CD47','#54B435','#379237'],//26
      ['#F49D1A','#009FBD','#210062','#77037B'], //27
      ['#13bf53','#38E54D','#9CFF2E','#FDFF00'], //28
      ['#07e3d1','#7203ad','#C70A80','#ffe100'], //29
      ['#FFBE0B','#70d6ff','#FF006E','#8338EC'], //30
      ['#92bff0','#57cdff','#1b8bff','#0061c9'], //31
      ['#fff75e','#ffe94e','#ffda3d','#fdc43f'], //32
      ['#E60965','#F94892','#FFA1C9','#E80F88'], //33
      ['#a200ff','#7e00c7','#b940ff','#8b3aba'], //34
      ['#930077','#7f2381','#6a3287','#eb1ec5'], //35
    ];

    let page_theme_gradients={
      '1': 1,
      '2': 33,
      '3': 21,
      '4': 28,
      '5': 31,
      '6': 35,
      '7': 33
    };

    if($('.gradient-canvas').length>0&&(typeof $('.gradient-canvas').attr('data-palettenum')!=='undefined'||typeof $('body.MainBody').attr('data-pagetheme')!=='undefined'||typeof $('.rbt-main-wrapper').attr('data-palettearray')!=='undefined')) {
      $('.gradient-canvas').each(function() {
        let angle=0;
        let palette_array;
        let amplitude=320;
        let static=false;
        let indiv_grad=$(this);
        if(typeof $('body.MainBody').attr('data-pagetheme')!=='undefined'&&$(this).parent('.gradient-canvas-wrapper').hasClass('section-separator-250')&&typeof page_theme_gradients?.[$('body.MainBody').attr('data-pagetheme')]!=='undefined') {
          palette_array=hero_palette[page_theme_gradients[$('body.MainBody').attr('data-pagetheme')]];
        } else if(typeof $(this).attr('data-palettearray')!=='undefined') {
          palette_array=JSON.parse($(this).attr('data-palettearray'));
        } else {
          palette_array=hero_palette[parseInt($(this).attr('data-palettenum'))];
        }
        if(typeof $(this).attr('data-gradamp')!=='undefined'&&parseInt($(this).attr('data-gradamp'))>0) {
          amplitude=parseInt($(this).attr('data-gradamp'));
        }
        if(typeof $(this).attr('data-gradangle')!=='undefined'&&parseInt($(this).attr('data-gradangle'))>0) {
          angle=parseInt($(this).attr('data-gradangle'));
        }

        if(typeof $(this).attr('data-gradstatic')!=='undefined'&&$(this).attr('data-gradstatic')==='true') {
          static=true;
        }
        if(typeof $(this).attr('data-gradshuffle')!=='undefined'&&$(this).attr('data-gradshuffle')==='true') {
          palette_array=palette_array
            .map(value => ({value,sort: Math.random()}))
            .sort((a,b) => a.sort-b.sort)
            .map(({value}) => value)
        }



        indiv_grad.gradient({
          colors: palette_array,
          angle,
          amplitude,
          static,
          density: [.06, .16]
        });
      });
    }
  </script>


  <script>


    (function(window,document,$,undefined) {
      'use strict';

      let siteConf={
        i: function(e) {
          siteConf.d();
          siteConf.methods();
        },

        d: function(e) {
          this._window=$(window),
            this._document=$(document),
            this._body=$('body'),
            this._html=$('html'),
            this.sideNav=$('.rbt-search-dropdown')
        },
        methods: function(e) {
          siteConf._clickDoc();
          siteConf.popupMobileMenu();
        },
        _clickDoc: function() {
          var inputblur,inputFocus,openSideNav,closeSideNav;
          inputblur=function(e) {
            if(!$(this).val()) {
              $(this).parent('.form-group').removeClass('focused');
            }
          };
          inputFocus=function(e) {
            $(this).parents('.form-group').addClass('focused');
          };
          openSideNav=function(e) {
            e.preventDefault();
            siteConf.sideNav.addClass('active');
            $('.search-trigger-active').addClass('open');
            siteConf._html.addClass('side-nav-opened');
          };

          closeSideNav=function(e) {
            if(!$('.rbt-search-dropdown, .rbt-search-dropdown *:not(".search-trigger-active, .search-trigger-active *")').is(e.target)) {
              siteConf.sideNav.removeClass('active');
              $('.search-trigger-active').removeClass('open');
              siteConf._html.removeClass('side-nav-opened');
            }
          };
          siteConf._document
            .on('blur','input,textarea,select',inputblur)
            .on('focus','input:not([type="radio"]),input:not([type="checkbox"]),textarea,select',inputFocus)
            .on('click','.search-trigger-active',openSideNav)
            .on('click','.side-nav-opened',closeSideNav)
        },




        popupMobileMenu: function(e) {
          $('.hamberger-button').on('click',function(e) {
            $('.popup-mobile-menu').addClass('active');
          });

          $('.close-button').on('click',function(e) {
            $('.popup-mobile-menu').removeClass('active');
            $('.popup-mobile-menu .mainmenu .has-dropdown > a, .popup-mobile-menu .mainmenu .with-megamenu > a').siblings('.submenu, .rbt-megamenu').removeClass('active').slideUp('400');
            $('.popup-mobile-menu .mainmenu .has-dropdown > a, .popup-mobile-menu .mainmenu .with-megamenu > a').removeClass('open')
          });

          $('.popup-mobile-menu .mainmenu .has-dropdown > a, .popup-mobile-menu .mainmenu .with-megamenu > a').on('click',function(e) {
            e.preventDefault();
            $(this).siblings('.submenu, .rbt-megamenu').toggleClass('active').slideToggle('400');
            $(this).toggleClass('open')
          })

          $('.popup-mobile-menu, .popup-mobile-menu .mainmenu.onepagenav li a').on('click',function(e) {
            e.target===this&&$('.popup-mobile-menu').removeClass('active')&&$('.popup-mobile-menu .mainmenu .has-dropdown > a, .popup-mobile-menu .mainmenu .with-megamenu > a').siblings('.submenu, .rbt-megamenu').removeClass('active').slideUp('400')&&$('.popup-mobile-menu .mainmenu .has-dropdown > a, .popup-mobile-menu .mainmenu .with-megamenu > a').removeClass('open');
          });
        }
      }
      siteConf.i();


    })(window,document,jQuery);
    
  </script><script type="text/javascript">

</script>
</body>


</html>