@import url(http://fonts.googleapis.com/css?family=Roboto:300,400,500,700);
body {
	font-family: 'Roboto', 'Helvetica Neue', 'Segoe UI', Helvetica, Arial, sans-serif;
	font-size: 14px;
	overflow-x: hidden;
	color: #2a3237;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

.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;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	font-family: 'Roboto', 'Avenir Next', 'Helvetica Neue', 'Segoe UI', Helvetica, Arial, sans-serif;
	position: relative;
	margin: 10px 0;
}

h1 {
	font-size: 60px;
}

h2 {
	font-size: 48px;
}

h3 {
	font-size: 30px;
}

h4 {
	font-size: 24px;
}

h5 {
	font-size: 18px;
}

h6 {
	font-size: 16px;
}

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;
	-webkit-animation-name: flash;
	animation-name: flash;
	-webkit-animation-duration: 1s;
	animation-duration: 1s;
	-webkit-animation-iteration-count: infinite;
	animation-iteration-count: infinite;
}

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 {
	z-index: 9499;
	top: 0;
	padding-top: 10px;
	padding-bottom: 10px;
	opacity: 1;
	background: white;
	box-shadow: 0px 4px 3px rgba(0, 0, 0, 0.05);
}

nav.navbar-fixed-top .navbar-nav > li > a:not(.btn) {
	color: #bbb;
}

.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;
}

.container {
	position: relative;
	z-index: 1;
}
/* Sections */
section {
	position: relative;
}

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

.section-padded {
	padding: 50px 0 40px;
}

.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;
}

.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 .open-blink {
	content: ' ';
	position: relative;
	display: inline-block;
	width: 14px;
	height: 14px;
	margin: 0 20px;
	border-radius: 50%;
	background-color: #4caf50;
	-webkit-animation-name: flash;
	animation-name: flash;
	-webkit-animation-duration: 1s;
	animation-duration: 1s;
	-webkit-animation-iteration-count: infinite;
	animation-iteration-count: infinite;
}

footer .open-blink:before {
	content: ' ';
	position: absolute;
	top: -8px;
	left: -8px;
	display: inline-block;
	width: 30px;
	height: 30px;
	opacity: 0.1;
	border-radius: 50%;
	background-color: #4caf50;
}


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: 0px;
	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;
}