<!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 V1</a></li>
                                                        <li><a href="/docs/api/v2">API V2</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">API V1</a></li>
                                            <li><a href="/docs/api/v2">API V2</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/uuid/uuid.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>