@import url(https://fonts.googleapis.com/css?family=Roboto:300,400,500,700);

.parallax {
  position: absolute;
  overflow: hidden;
  width: 100%;
  -webkit-transform: translateZ(0);
  -ms-transform: translateZ(0);
  transform: translateZ(0);
}

.parallax img {
  width: 100%;
  height: 100%;
}

/* Preloader */

.preloader {
  position: fixed;
  z-index: 9999;
  width: 100%;
  height: 100%;
  background-color: white;
}

.preloader img {
  position: absolute;
  top: calc(50% - 32px);
  left: calc(50% - 32px);
}

.preloader div {
  display: none;
  /* Preload the Second Pricing Image */
  background: url(../img/pricing2.jpg) no-repeat 9999px 9999px;
  background-position: 9999px 9999px;
}

/* Typography */

.bigp {
  font-size: 18px;
  line-height: 1.5;
  color: #80287a;
}

ul.white-list {
  padding: 0;
  list-style-type: none;
}

ul.white-list li {
  font-size: 18px;
  margin: 10px 0;
  color: #fff;
}

ul.white-list li:before {
  content: ' ';
  position: relative;
  top: -3px;
  display: inline-block;
  width: 6px;
  height: 6px;
  margin-right: 15px;
  background: white;
}

header {
  position: relative;
  width: 100%;
  color: #80287a;
  background: rgba(28, 36, 65, 0.93);
  background: url('../img/header.jpg');
  background-size: cover;
}

header .table {
  display: table;
  height: 100%;
}

header .container {
  height: 100%;
}

header .header-text {
  display: table-cell;
  text-align: center;
  vertical-align: middle;
  color: #80287a;
}

header .typed {
  display: inline-block;
  margin: 0;
}

header .typed-cursor {
  font-size: 60px;
  display: inline-block;
  margin: 0 10px;
  color: #80287a;
}

ul, ol {
  margin-bottom: 20px;
}

pre {
  border: 0 solid #ccc;
  margin: 0 0 20px;
}

code {
  color: #8a6d3b;
  background-color: #f5f5f5;
}

p {
  margin: 0 0 20px;
}

td p {
  margin: 0;
}

body {
  font-size: 17px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}

h1, .h1, h2, .h2, h3, .h3, h4, .h4 {
  margin-top: 20px;
  margin-bottom: 20px;
}

h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
  font-weight: 500;
}

h5, .h5, h6, .h6 {
  margin-top: 25px;
  font-weight: 600;
}

.page-header h1 {
  font-weight: 500;
}

.page-header {
  margin: 40px 0 20px;
}

li {
  margin-bottom: 10px;
}

.nav > li {
  margin: 0;
}

/*a {*/
/*text-decoration: none;*/
/*color: #80287a;*/
/*-webkit-transition: all 0.3s ease;*/
/*transition: all 0.3s ease;*/
/*}*/
/* Navigation Bar ( Navbar ) */

/*nav.navbar {*/
/*  position: absolute;*/
/*  z-index: 9500;*/
/*  width: 100%;*/
/*  width: 100vw;*/
/*  -webkit-transition: all 0.3s ease;*/
/*  transition: all 0.3s ease;*/
/*}*/

nav.navbar .navbar-nav li.active a:not(.btn) {
  color: #80287a !important;
}

nav.navbar-fixed-top {
  background-image: linear-gradient(90deg,#f59423,#e2632a,#ca2136,#832778);
  z-index: 9499;
  top: 0;
  padding-top: 10px;
  padding-bottom: 10px;
  opacity: 1;
}

.navbar .button, .nav > li:last-child {
    display: inline-flex;
    align-items: center;
    background: #fff;
    border: 1px solid #e1e1e1;
    border-radius: 0.25rem;
    height: 31px;
    padding: 0 6px;
    margin-top: 6px;
    margin-left: 15px;
}

nav.navbar-fixed-top .navbar-nav > li > a:not(.btn) {
    color: #ffffff;
    font-family: Roboto,sans-serif;
    font-size: 16px;
    font-weight: 400;
    -webkit-font-smoothing: auto;
}

nav.navbar-fixed-top .navbar-nav > li:last-child > a:not(.btn) {
    display: inline-flex;
    color: #222;
    padding: 6px;
    white-space: nowrap;
    cursor: pointer;
}
.navbar-brand {
    float: left;
    height: 100%;
    padding: 0px 15px;
    font-size: 22px;
    line-height: 20px;
    color: #fff;
    font-family: Roboto,sans-serif;
    -webkit-font-smoothing: auto;
}
.icon-bar {
  background: #bbb;
}

/* Buttons */

.btn {
  font-size: 18px;
  display: inline-block;
  padding: 15px 30px;
  color: #80287a;
  border: 2px solid transparent;
  border-radius: 2px;
  background: transparent;
  /*-webkit-transition: all 0.3s ease;*/
  /*transition: all 0.3s ease;*/
}

.btn:hover,
.btn:focus {
  color: #CE2D34;
}

.btn.btn-blue {
  background: #80287a;
  color: #fff;
}

.btn.btn-blue:hover {
  background: #31b9ff;
}

.btn.btn-blue-fill {
  color: #80287a;
  border-color: #80287a;
  background: transparent;
}

.btn.btn-blue-fill:hover {
  color: white;
  background: #80287a;
}

.btn.btn-white-fill {
  color: #fff;
  border-color: #fff;
  background: transparent;
}

.btn.btn-white-fill:hover {
  color: #80287a;
  background: #fff;
}

.btn.btn-gray-fill {
  color: #fff;
  border-color: #fff;
  background: transparent;
}

.btn.btn-gray-fill:hover {
  border-color: #bbb;
  background: #bbb;
}

/* Blink Cursor */

.blink {
  position: relative;
  top: 4px;
  display: inline-block;
  width: 4px;
  height: 50px;
  height: 5vh;
  margin: 0 10px;
}

.navbar {
  top: 50px;
  height: 63px;
}

.container {
  position: relative;
  z-index: 1;
}

/* Sections */
section {
  position: relative;
}

.section {
  padding: 40px 0;
  background: #fff;
}

.main-block {
  padding-top: 50px;
}

.cut-top {
  content: ' ';
  position: absolute;
  z-index: 1;
  top: -80px;
  left: 0;
  width: 0;
  height: 0;
  border-top: 80px solid transparent;
  border-right: 30px solid white;
}

.cut-bottom {
  content: ' ';
  position: absolute;
  z-index: 1;
  bottom: -80px;
  left: 0;
  width: 0;
  height: 0;
  border-bottom: 80px solid transparent;
  border-left: 30px solid white;
}

.intro-tables {
  top: -130px;
  position: relative;
}

.intro-table {
  -webkit-background-size: cover;
  background-size: cover;
  background-repeat: repeat;
  background-position: 0% 0%;
}

.intro-table-hover:hover {
  -webkit-transition: background-image 0.3s ease, background-position 0.3s;
  transition: background-image 0.3s ease, background-position 0.3s;
}

.intro-table1 {
  background-image: url('../img/table-1.jpg');
}

.intro-table2 {
  background-image: url('../img/table-2.jpg');
}

.intro-table3 {
  background-image: url('../img/table-3.jpg');
}

.intro-table-hover1:hover {
  background-image: url('../img/table-1-hover.jpg');
}

.intro-table-hover2:hover {
  background-image: url('../img/table-2-hover.jpg');
}

.intro-table-hover3:hover {
  background-image: url('../img/table-3-hover.jpg');
}

.intro-table-hover h4 {
  -webkit-transform: translateY(170px);
  transform: translateY(170px);
  -webkit-transition: -webkit-transform 0.3s;
  transition: transform 0.3s;
}

.intro-table-hover {
  background-position: 50% 50%;
}

.intro-table-hover .expand {
  margin-top: 120px;
  margin: 30px;
  opacity: 0;
  -webkit-transition: -webkit-transform 0.3s, opacity 0.3s;
  transition: transform 0.3s ease, opacity 0.3s;
  -webkit-transform: scale(0.6);
  -ms-transform: scale(0.6);
  transform: scale(0.6);
}

.intro-table-hover:hover h4 {
  -webkit-transform: translateY(0);
  transform: translateY(0);
}

.intro-table-hover:hover .expand {
  opacity: 1;
  -webkit-transform: scale(1);
  -ms-transform: scale(1);
  transform: scale(1);
}

.intro-table-hover .hide-hover {
  -webkit-transition: opacity 0.3s ease;
  transition: opacity 0.3s ease;
}

.intro-table-hover:hover .hide-hover {
  opacity: 0;
}

.intro-tables .intro-table {
  position: relative;
  width: 100%;
  height: 300px;
  margin: 20px 0;
}

header h2 {
  font-size: 48px;
  font-weight: 500;
}

section h5 {
  font-weight: 500;
  font-size: 20px;
}

.intro-tables .intro-table .heading {
  margin: 0;
  padding: 30px;
}

.intro-tables .intro-table .small-heading {
  margin: 0;
  padding: 0 30px;
}

.intro-tables .intro-table .bottom {
  position: absolute;
  bottom: 0;
}

.intro-tables .intro-table .owl-schedule .schedule-row {
  padding: 10px 30px;
  color: #80287a;
  transition: all 0.3s ease;
}

.owl-schedule .schedule-row:not(:last-child) {
  border-bottom: 1px solid rgba(255, 255, 255, 0.4);
}

.owl-testimonials .author {
  margin-top: 50px;
}

.ripple-effect {
  position: absolute;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background: #80287a;
  /*-webkit-animation: ripple-animation 2s;*/
  /*animation: ripple-animation 2s;*/
}

@-webkit-keyframes ripple-animation {
  from {
    opacity: 0.2;
    -webkit-transform: scale(1);
    transform: scale(1);
  }
  to {
    opacity: 0;
    -webkit-transform: scale(100);
    transform: scale(100);
  }
}

@keyframes ripple-animation {
  from {
    opacity: 0.2;
    -webkit-transform: scale(1);
    transform: scale(1);
  }
  to {
    opacity: 0;
    -webkit-transform: scale(100);
    transform: scale(100);
  }
}

.services {
  margin: 40px 0;
}

.service {
  width: 100%;
  height: 320px;
  margin: 80px 0;
  text-align: center;
  border: 1px solid #ddd;
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
}

.service .icon-holder {
  position: relative;
  top: 100px;
  display: inline-block;
  margin-bottom: 40px;
  padding: 10px;
  background: #80287a;
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
}

.service .heading {
  position: relative;
  top: 80px;
  -webkit-transition: all 600ms cubic-bezier(0.68, -0.55, 0.265, 1.55);
  transition: all 600ms cubic-bezier(0.68, -0.55, 0.265, 1.55);
}

.service .icon-holder > img.icon {
  width: 40px;
}

.service:hover {
  border-color: #80287a;
}

.service:hover .icon-holder {
  top: -30px;
}

.service:hover .heading {
  top: -30px;
}

.service .description {
  width: 80%;
  margin: 0 auto;
  opacity: 0;
  -webkit-transition: all 600ms cubic-bezier(0.68, -0.55, 0.265, 1.55);
  transition: all 600ms cubic-bezier(0.68, -0.55, 0.265, 1.55);
  -webkit-transform: scale(0);
  -ms-transform: scale(0);
  transform: scale(0);
}

.service:hover .description {
  opacity: 1;
  -webkit-transform: scale(1);
  -ms-transform: scale(1);
  transform: scale(1);
}

.team {
  margin: 80px 0;
  padding-bottom: 60px;
  background: #80287a;
  box-shadow: 0 2px 3px rgba(0, 0, 0, 0.07);
}

.team .cover .overlay {
  height: 250px;
  padding-top: 60px;
  opacity: 0;
  background: rgba(0, 168, 255, 0.9);
  -webkit-transition: opacity 0.45s ease;
  transition: opacity 0.45s ease;
}

.team:hover .cover .overlay {
  opacity: 1;
}

.team .avatar {
  position: relative;
  z-index: 2;
  margin-top: -60px;
  border-radius: 50%;
}

.team .title {
  margin: 50px 0;
}

/* Pricing */

#pricing {
  background: #80287a url('../img/pricing1.jpg') no-repeat center center;
  -webkit-background-size: cover;
  background-size: cover;
  -webkit-transition: background-image 0.6s linear 0.3s;
  transition: background-image 0.6s linear 0.3s;
}

.owl-pricing img {
  width: 100%;
}

.owl-pricing,
.pricings {
  margin-top: 100px;
  margin-bottom: 100px;
}

.pricing {
  position: relative;
  width: 100%;
}

.pricings .pricing .box-main,
.pricings .pricing .box-second {
  position: relative;
  left: 25%;
  display: inline-block;
  width: 50%;
  height: 300px;
  padding: 50px 40px;
  background: #bbb;
  -webkit-transition: -webkit-transform 0.3s, background-image 0.3s, opacity 0.3s;
  transition: transform 0.3s, background-image 0.3s, opacity 0.3s;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}

.pricings .pricing .box-main {
  z-index: 10;
  padding-top: 40px;
}

.pricings .pricing .box-main:not(.active) {
  cursor: pointer;
}

.pricings .pricing .box-main .info-icon {
  font-size: 14px;
  position: absolute;
  top: 20px;
  right: 20px;
  pointer-events: none;
  opacity: 0;
  color: #fff;
  -webkit-transition: opacity 0.3s;
  transition: opacity 0.3s;
}

.pricings .pricing .box-main:not(.active) .info-icon {
  opacity: 1;
  -webkit-transition-delay: 0.2s;
  transition-delay: 0.2s;
}

.pricings .pricing .box-main:not(.active):hover {
  background: #afafaf;
}

.pricings .pricing .box-main.active {
  background: #80287a;
  -webkit-transform: translateX(-99%);
  -ms-transform: translateX(-99%);
  transform: translateX(-99%);
}

.pricings .pricing .box-second {
  position: absolute;
  top: 0;
  right: 0% !important;
  left: auto;
  opacity: 0;
  background: #afafaf;
}

.pricings .pricing .box-second.active {
  opacity: 1;
  background: #80287a;
}

.pricings .pricing.active .box-main,
.pricings .pricing .box-second {
  background: #80287a;
}

.pricings .pricing .box-main a.btn {
  margin-top: 50px;
}

.owl-twitter i.icon {
  font-size: 36px;
  margin-bottom: 60px;
  color: #80287a;
}

/* Footer */

footer {
  padding: 60px 0 40px;
  background-image: linear-gradient(to right, #f59423, #e2632a, #ca2136, #832778);
  -webkit-background-size: cover;
  background-size: cover;
}

footer .trial-button {
  overflow: hidden !important;
  margin: 40px 0;
}


footer .social-footer {
  padding: 0;
  margin-left: -.5em;
  list-style: none;
}

footer .social-footer li {
  display: inline-block;
  margin: 0 10px;
}

footer .social-footer li a {
  font-size: 24px;
  color: #fff;
}

footer .social-footer li:hover a {
  color: #80287a;
}

/* Form Control */

.form-control {
  font-size: 18px;
  position: relative;
  left: 0;
  height: auto;
  padding: 20px 30px;
  border: 1px;
  border-radius: 0;
  box-shadow: 0;
}

.form-control.form-white {
  color: #fff;
  border: 2px solid white;
  background: transparent;
  -webkit-transition: background-color 0.3s;
  transition: background-color 0.3s;
}

.form-control.form-white::-webkit-input-placeholder {
  /* WebKit browsers */
  color: #fff;
}

.form-control.form-white:-moz-placeholder {
  opacity: 1;
  /* Mozilla Firefox 4 to 18 */
  color: #fff;
}

.form-control.form-white::-moz-placeholder {
  opacity: 1;
  /* Mozilla Firefox 19+ */
  color: #fff;
}

.form-control.form-white:-ms-input-placeholder {
  /* Internet Explorer 10+ */
  color: #fff;
}

.form-control.form-white:focus {
  background: rgba(255, 255, 255, 0.2);
}

/* Popup */
.modal {
  padding: 0 25px !important;
}

.modal-dialog {
  width: 100%;
  max-width: 560px;
  margin: 0 auto;
}

.modal-popup {
  position: relative;
  padding: 45px 30px;
  text-align: center;
  background: url('../img/popup.jpg');
  box-shadow: none;
  border-radius: 2px;
}

.modal-popup a.close-link {
  font-size: 22px;
  position: absolute;
  top: 20px;
  right: 30px;
  color: #fff;
}

.popup-form {
  width: 90%;
  max-width: 375px;
  margin: 60px auto;
}

.popup-form .form-control {
  margin: 20px 0;
}

.popup-form .form-control.dropdown {
  text-align: left;
}

.popup-form .form-control.dropdown:after {
  content: '\f0d7';
  font-family: 'FontAwesome';
  display: inline-block;
  float: right;
  color: white;
}

.popup-form .dropdown .dropdown-menu {
  top: 65px;
  width: 100%;
  padding: 0;
  border: 2px solid white;
  border-top: 0;
  border-radius: 0;
  background: white;
  box-shadow: none;
}

.popup-form .dropdown .dropdown-menu li {
  font-size: 16px;
  width: 100%;
  background: transparent;
}

.popup-form .dropdown .dropdown-menu li a {
  width: 100%;
  padding: 15px 30px;
  color: #80287a;
}

.popup-form .dropdown .dropdown-menu li:hover a {
  color: #fff;
  background: #80287a;
}

/* Checkbox */

.checkbox-holder {
  white-space: nowrap;
}

.checkbox {
  position: relative;
  display: block;
}

.checkbox {
  position: relative;
}

.checkbox label:before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 20px;
  height: 20px;
  cursor: pointer;
  border: 2px solid white;
  background: transparent;
  -webkit-transition: background-color 0.3s;
  transition: background-color 0.3s;
}

.checkbox input[type=checkbox]:focus + label:before {
  background: rgba(255, 255, 255, 0.2);
}

.checkbox label:after {
  content: '';
  position: absolute;
  top: 6px;
  left: 6px;
  width: 8px;
  height: 8px;
  opacity: 0;
  background: white;
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
}

.checkbox input[type=checkbox] {
  opacity: 0;
  position: absolute;
  width: 0;
  height: 0;
}

.checkbox input[type=checkbox]:checked + label:after {
  opacity: 1;
}

.checkbox-holder span {
  position: relative;
  display: inline-block;
  margin: 0 0 0 10px;
  white-space: normal;
  color: #fff;
}

.btn.btn-submit {
  width: 100%;
  margin-top: 30px;
  color: #80287a;
  border: 2px solid #fff;
  background: #fff;
}

.btn.btn-submit:focus {
  font-weight: bold;
}

.btn.btn-submit:hover {
  color: #80287a;
  background: #fff;
}

/* Mobile Nav */
.mobile-nav {
  position: fixed;
  z-index: 9999;
  top: 0;
  left: 0;
  display: table;
  width: 100%;
  height: 100%;
  text-align: center;
  opacity: 0;
  background: rgba(255, 255, 255, 0.98);
  -webkit-transition: all 600ms cubic-bezier(0.68, -0.55, 0.265, 1.55);
  transition: all 600ms cubic-bezier(0.68, -0.55, 0.265, 1.55);
  -webkit-transform: scale(0);
  -ms-transform: scale(0);
  transform: scale(0);
}

.mobile-nav.active {
  opacity: 1;
  -webkit-transform: scale(1);
  -ms-transform: scale(1);
  transform: scale(1);
}

.mobile-nav ul {
  display: table-cell;
  padding: 0;
  list-style: none;
  vertical-align: middle;
}

.mobile-nav ul li {
  margin: 25px 0;
}

.mobile-nav ul li a:not(.btn) {
  color: #aaa;
}

.mobile-nav a.close-link {
  font-size: 24px;
  position: absolute;
  bottom: 0;
  left: calc(50% - 10px);
  left: 0;
  width: 100%;
  padding: 15px 0;
  color: #fff;
  background: #80287a;
}

.light {
  font-weight: 300;
}

.regular {
  font-weight: 400;
}

.bold {
  font-weight: bold;
}

/* Colors */

.white {
  color: white;
}

.light-white {
  color: rgba(255, 255, 255, 0.5);
}

.white-bg {
  background: white;
}

.gray-bg {
  background: #f7f7f7;
}

.blue {
  color: #80287a;
}

.blue-bg {
  background: #80287a;
}

.muted {
  color: #989da0;
}

.margin-top {
  margin-top: 150px;
}

@media (max-width: 992px) {
  h1 {
    font-size: 36px;
  }

  h2 {
    font-size: 28px;
  }

  h3 {
    font-size: 24px;
  }

  h4 {
    font-size: 20px;
  }

  h5 {
    font-size: 16px;
  }

  h6 {
    font-size: 12px;
  }

  .section {
    padding: 30px 0;
  }
}

/* Media Queries */

@media (max-width: 991px) {
  .text-center-mobile {
    text-align: center !important;
  }
}

@media (max-width: 768px) {
  .pricing {
    margin-bottom: 30px;
  }

  .pricings .pricing .info-icon {
    display: none;
  }

  .pricings .pricing .box-main,
  .pricings .pricing .box-second {
    left: 0;
    width: 100%;
    padding: 50px 50px 0;
    text-align: left;
    background: #80287a;
  }

  .pricings .pricing .box-main.active {
    background: #80287a;
    -webkit-transform: translateX(0%);
    -ms-transform: translateX(0%);
    transform: translateX(0%);
  }

  .pricings .pricing .box-second {
    position: relative;
    opacity: 1;
  }

  .popup-form {
    width: 100%;
    margin: 60px auto;
  }

  .modal {
    padding: 0 10px !important;
  }

  .popup-form .form-control:not(.dropdown):focus {
    position: relative;
    padding-right: 30px;
    padding-left: 30px;
  }
}

@media (max-width: 400px) {
  header .typed-cursor {
    display: none;
  }

  .pricings .pricing .box-second {
    padding-top: 0;
  }
}

.index-title {
  font-size: 80px;
}

.contributor-name {
  color: #80287a;
  font-size: 1.7em;
  margin-bottom: 0.5em;
}

.photo {
  border: 1px solid #ddd;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055);
  border-radius: 4px;
  padding: 4px;
}

.bs-callout {
  min-height: 160px;
  padding: 20px;
  border: 1px solid #eee;
  border-left-width: 5px;
  border-radius: 3px;
}

.bs-callout h4 {
  margin-top: 0;
  margin-bottom: 5px;
}

.bs-callout p:last-child {
  margin-bottom: 0;
}

.bs-callout code {
  border-radius: 3px;
}

.bs-callout + .bs-callout {
  margin-top: -5px;
}

.bs-callout-primary {

  border-left-color: #80287a;
}

.bs-callout-primary h4 {
  color: #80287a;
}

h2 {
  /*ensure downlooad as PDF are clickable*/
  z-index: -1;
}

vspace {
  height: 1em;
}

.admonitionblock td.content > .title, .exampleblock > .title, .imageblock > .title, .videoblock > .title, .listingblock > .title, .literalblock > .title, .openblock > .title, .paragraph > .title, .quoteblock > .title, .sidebarblock > .title, .tableblock > .title, .verseblock > .title, .dlist > .title, .olist > .title, .ulist > .title, .qlist > .title, .hdlist > .title {
  text-align: left;
  font-weight: bold;
}

.tableblock > caption {
  text-align: left;
  font-weight: bold;
  white-space: nowrap;
  overflow: visible;
  max-width: 0;
}

table.tableblock #preamble > .sectionbody > .paragraph:first-of-type p {
  font-size: inherit;
}

.admonitionblock > table {
  border: 0;
  background: none;
  width: 100%;
  margin: 0 0 20px;
}

.admonitionblock > table td.icon {
  text-align: center;
  width: 80px;
}

.admonitionblock > table td.icon img {
  max-width: none;
}

.admonitionblock > table td.icon .title {
  font-weight: bold;
  text-transform: uppercase;
}

.admonitionblock > table td.content {
  padding-left: 1.125em;
  padding-right: 1.25em;
  border-left: 1px solid #dddddd;
  color: #6f6f6f;
  font-size: 15px;
}

.admonitionblock > table td.content > :last-child > :last-child {
  margin-bottom: 0;
}

[class^="icon-"], [class*=" icon-"] {
  display: inline-block;
  vertical-align: middle;
  background-position: 14px 14px;
  background-repeat: no-repeat;
}

span.icon > [class^="icon-"], span.icon > [class*=" icon-"] {
  cursor: default;
}
.green {
  color: green;
}
.red {
  color: red;
}
.blue {
  color: blue;
}
.admonitionblock td.icon [class^="fa icon-"]:before {
  font-size: 2.5em;
  text-shadow: 1px 1px 2px #e6e6e6;
  cursor: default; /* -webkit-font-smoothing: antialiased; */
}

.admonitionblock td.icon .icon-note:before {
  content: "\f05a";
  color: #005498;
  color: #80a8c7;
}

.admonitionblock td.icon .icon-tip:before {
  content: "\f0eb";
  text-shadow: 1px 1px 2px rgba(222, 222, 68, 0.8);
  color: #c7ba71;
}

.admonitionblock td.icon .icon-warning:before {
  content: "\f071";
  color: #da8f33;
}

.admonitionblock td.icon .icon-caution:before {
  content: "\f06d";
  color: #af5e40;
}

.admonitionblock td.icon .icon-important:before {
  content: "\f06a";
  color: #bd5a5a;
}

/* Markdown table */
.mdtable {
  border: 1px solid #ddd;
  width: 100%;
  max-width: 100%;
  margin-bottom: 20px;
}

.mdtable > thead > tr > th, .mdtable > thead > tr > td {
  border-bottom-width: 2px;
}

.mdtable > thead > tr > th, .mdtable > tbody > tr > th, .mdtable > tfoot > tr > th, .mdtable > thead > tr > td, .mdtable > tbody > tr > td, .mdtable > tfoot > tr > td {
  border: 1px solid #ddd;
}

.mdtable > thead > tr > th {
  vertical-align: bottom;
  border-bottom: 2px solid #ddd;
}

.mdtable > thead > tr > th, .mdtable > tbody > tr > th, .mdtable > tfoot > tr > th, .mdtable > thead > tr > td, .mdtable > tbody > tr > td, .mdtable > tfoot > tr > td {
  padding: 8px;
  line-height: 1.42857143;
  vertical-align: top;
  border-top: 1px solid #ddd;
}

.group {
  font-size: 17px;
  padding-left: 0;
  list-style-type: none;
  margin-bottom: 30px;
}

.group-title {
  font-size: 17px;
  margin-bottom: 10px;
  font-weight: 500;
}

.group-item {
  font-size: 15px;
  margin: 0 0 5px 0;
}

.group-item-i {
  margin-right: 5px;
  margin-left: 3px;
  color: #8c8c8c;
  /* height: 100%; */
  position: relative;
  float: left;
  /* margin-inline-start: 40px; */
}

table {
  border: 1px solid #ddd;
  width: 100%;
  max-width: 100%;
  margin-bottom: 20px;
}

table > thead > tr > th,
table > tbody > tr > th,
table > tfoot > tr > th,
table > thead > tr > td,
table > tbody > tr > td,
table > tfoot > tr > td {
  border: 1px solid #ddd;
  padding: 8px;
}
table > thead > tr > th,
table > thead > tr > td {
  border-bottom-width: 2px;
  padding: 8px;
}

div.compact > ul > li,
div.compact > ul > li > p {
  margin: 0px;
}

li > p {
    margin-bottom: 10px;
}