@import url(fontawesome-all.min.css);
@import url("https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,300italic,600,600italic");

@font-face {
	font-family: 'Gotham';
	src: url('../Gotham-font-family/Gotham/Gotham-Book.otf') format('opentype');
	font-weight: normal;
	font-style: normal;
}

@font-face {
	font-family: 'Gotham';
	src: url('../Gotham-font-family/Gotham/Gotham-Book.otf') format('opentype');
	font-weight: 400;
	font-style: normal;
}

@font-face {
	font-family: 'Gotham';
	src: url('../Gotham-font-family/Gotham/Gotham-Bold.otf') format('opentype');
	font-weight: bold;
	font-style: normal;
}

@font-face {
	font-family: 'Gotham';
	src: url('../Gotham-font-family/Gotham/Gotham-Bold.otf') format('opentype');
	font-weight: 600;
	font-style: normal;
}

@font-face {
	font-family: 'Gotham';
	src: url('../Gotham-font-family/Gotham/Gotham-Bold.otf') format('opentype');
	font-weight: 700;
	font-style: normal;
}

@font-face {
	font-family: 'Gotham';
	src: url('../Gotham-font-family/Gotham/Gotham-Bold.otf') format('opentype');
	font-weight: 800;
	font-style: normal;
}

@font-face {
	font-family: 'Gotham';
	src: url('../Gotham-font-family/Gotham/Gotham-Light.otf') format('opentype');
	font-weight: 300;
	font-style: normal;
}


/*
	Forty by HTML5 UP
	html5up.net | @ajlkn
	Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
*/

html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
embed,
figure,
figcaption,
footer,
header,
hgroup,
menu,
nav,
output,
ruby,
section,
summary,
time,
mark,
audio,
video {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 100%;
	font: inherit;
	vertical-align: baseline;
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
	display: block;
}

body {
	line-height: 1;
}

ol,
ul {
	list-style: none;
}

blockquote,
q {
	quotes: none;
}

blockquote:before,
blockquote:after,
q:before,
q:after {
	content: '';
	content: none;
}

table {
	border-collapse: collapse;
	border-spacing: 0;
}

body {
	-webkit-text-size-adjust: none;
}

mark {
	background-color: transparent;
	color: inherit;
}

input::-moz-focus-inner {
	border: 0;
	padding: 0;
}

input,
select,
textarea {
	-moz-appearance: none;
	-webkit-appearance: none;
	-ms-appearance: none;
	appearance: none;
}

/* Basic */

@-ms-viewport {
	width: device-width;
}

body {
	-ms-overflow-style: scrollbar;
}

@media screen and (max-width: 480px) {

	html,
	body {
		min-width: 320px;
	}

}

html {
	box-sizing: border-box;
}

*,
*:before,
*:after {
	box-sizing: inherit;
}

body {
	background: #ECECEC;
}

body.is-preload *,
body.is-preload *:before,
body.is-preload *:after {
	-moz-animation: none !important;
	-webkit-animation: none !important;
	-ms-animation: none !important;
	animation: none !important;
	-moz-transition: none !important;
	-webkit-transition: none !important;
	-ms-transition: none !important;
	transition: none !important;
}

/* Type */

body,
input,
select,
textarea {
	color: #292929;
	font-family: 'Gotham', 'Source Sans Pro', Helvetica, sans-serif;
	font-size: 17pt;
	font-weight: 300;
	letter-spacing: 0.025em;
	line-height: 1.65;
}

@media screen and (max-width: 1680px) {

	body,
	input,
	select,
	textarea {
		font-size: 14pt;
	}

}

@media screen and (max-width: 1280px) {

	body,
	input,
	select,
	textarea {
		font-size: 12pt;
	}

}

@media screen and (max-width: 360px) {

	body,
	input,
	select,
	textarea {
		font-size: 11pt;
	}

}

a {
	-moz-transition: color 0.2s ease-in-out, border-bottom-color 0.2s ease-in-out;
	-webkit-transition: color 0.2s ease-in-out, border-bottom-color 0.2s ease-in-out;
	-ms-transition: color 0.2s ease-in-out, border-bottom-color 0.2s ease-in-out;
	transition: color 0.2s ease-in-out, border-bottom-color 0.2s ease-in-out;
	border-bottom: dotted 1px;
	color: inherit;
	text-decoration: none;
}

a:hover {
	border-bottom-color: transparent;
	color: #4294d1 !important;
}

a:active {
	color: #00CCFF !important;
}

strong,
b {
	color: #292929;
	font-weight: 600;
}

em,
i {
	font-style: italic;
}

p {
	margin: 0 0 2em 0;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	color: #292929;
	font-weight: 600;
	line-height: 1.65;
	margin: 0 0 1em 0;
}

h1 a,
h2 a,
h3 a,
h4 a,
h5 a,
h6 a {
	color: inherit;
	border-bottom: 0;
}

h1 {
	font-size: 2.5em;
}

h2 {
	font-size: 1.75em;
}

h3 {
	font-size: 1.35em;
}

h4 {
	font-size: 1.1em;
}

h5 {
	font-size: 0.9em;
}

h6 {
	font-size: 0.7em;
}

@media screen and (max-width: 736px) {

	h1 {
		font-size: 2em;
	}

	h2 {
		font-size: 1.5em;
	}

	h3 {
		font-size: 1.25em;
	}

}

sub {
	font-size: 0.8em;
	position: relative;
	top: 0.5em;
}

sup {
	font-size: 0.8em;
	position: relative;
	top: -0.5em;
}

blockquote {
	border-left: solid 4px rgba(39, 39, 39, 0.1);
	font-style: italic;
	margin: 0 0 2em 0;
	padding: 0.5em 0 0.5em 2em;
}

code {
	background: rgba(0, 118, 255, 0.02);
	font-family: "Courier New", monospace;
	font-size: 0.9em;
	margin: 0 0.25em;
	padding: 0.25em 0.65em;
}

pre {
	-webkit-overflow-scrolling: touch;
	font-family: "Courier New", monospace;
	font-size: 0.9em;
	margin: 0 0 2em 0;
}

pre code {
	display: block;
	line-height: 1.75;
	padding: 1em 1.5em;
	overflow-x: auto;
}

hr {
	border: 0;
	border-bottom: solid 1px rgba(39, 39, 39, 0.1);
	margin: 2em 0;
}

hr.major {
	margin: 3em 0;
}

.align-left {
	text-align: left;
}

.align-center {
	text-align: center;
}

.align-right {
	text-align: right;
}

/* Row */

.row {
	display: flex;
	flex-wrap: wrap;
	box-sizing: border-box;
	align-items: stretch;
}

.row>* {
	box-sizing: border-box;
}

.row.gtr-uniform>*> :last-child {
	margin-bottom: 0;
}

.row.aln-left {
	justify-content: flex-start;
}

.row.aln-center {
	justify-content: center;
}

.row.aln-right {
	justify-content: flex-end;
}

.row.aln-top {
	align-items: flex-start;
}

.row.aln-middle {
	align-items: center;
}

.row.aln-bottom {
	align-items: flex-end;
}

.row>.imp {
	order: -1;
}

.row>.col-1 {
	width: 8.33333%;
}

.row>.off-1 {
	margin-left: 8.33333%;
}

.row>.col-2 {
	width: 16.66667%;
}

.row>.off-2 {
	margin-left: 16.66667%;
}

.row>.col-3 {
	width: 25%;
}

.row>.off-3 {
	margin-left: 25%;
}

.row>.col-4 {
	width: 33.33333%;
}

.row>.off-4 {
	margin-left: 33.33333%;
}

.row>.col-5 {
	width: 41.66667%;
}

.row>.off-5 {
	margin-left: 41.66667%;
}

.row>.col-6 {
	width: 50%;
}

.row>.off-6 {
	margin-left: 50%;
}

.row>.col-7 {
	width: 58.33333%;
}

.row>.off-7 {
	margin-left: 58.33333%;
}

.row>.col-8 {
	width: 66.66667%;
}

.row>.off-8 {
	margin-left: 66.66667%;
}

.row>.col-9 {
	width: 75%;
}

.row>.off-9 {
	margin-left: 75%;
}

.row>.col-10 {
	width: 83.33333%;
}

.row>.off-10 {
	margin-left: 83.33333%;
}

.row>.col-11 {
	width: 91.66667%;
}

.row>.off-11 {
	margin-left: 91.66667%;
}

.row>.col-12 {
	width: 100%;
}

.row>.off-12 {
	margin-left: 100%;
}

.row.gtr-0 {
	margin-top: 0;
	margin-left: 0em;
}

.row.gtr-0>* {
	padding: 0 0 0 0em;
}

.row.gtr-0.gtr-uniform {
	margin-top: 0em;
}

.row.gtr-0.gtr-uniform>* {
	padding-top: 0em;
}

.row.gtr-25 {
	margin-top: 0;
	margin-left: -0.5em;
}

.row.gtr-25>* {
	padding: 0 0 0 0.5em;
}

.row.gtr-25.gtr-uniform {
	margin-top: -0.5em;
}

.row.gtr-25.gtr-uniform>* {
	padding-top: 0.5em;
}

.row.gtr-50 {
	margin-top: 0;
	margin-left: -1em;
}

.row.gtr-50>* {
	padding: 0 0 0 1em;
}

.row.gtr-50.gtr-uniform {
	margin-top: -1em;
}

.row.gtr-50.gtr-uniform>* {
	padding-top: 1em;
}

.row {
	margin-top: 0;
	margin-left: -2em;
}

.row>* {
	padding: 0 0 0 2em;
}

.row.gtr-uniform {
	margin-top: -2em;
}

.row.gtr-uniform>* {
	padding-top: 2em;
}

.row.gtr-150 {
	margin-top: 0;
	margin-left: -3em;
}

.row.gtr-150>* {
	padding: 0 0 0 3em;
}

.row.gtr-150.gtr-uniform {
	margin-top: -3em;
}

.row.gtr-150.gtr-uniform>* {
	padding-top: 3em;
}

.row.gtr-200 {
	margin-top: 0;
	margin-left: -4em;
}

.row.gtr-200>* {
	padding: 0 0 0 4em;
}

.row.gtr-200.gtr-uniform {
	margin-top: -4em;
}

.row.gtr-200.gtr-uniform>* {
	padding-top: 4em;
}

@media screen and (max-width: 1680px) {

	.row {
		display: flex;
		flex-wrap: wrap;
		box-sizing: border-box;
		align-items: stretch;
	}

	.row>* {
		box-sizing: border-box;
	}

	.row.gtr-uniform>*> :last-child {
		margin-bottom: 0;
	}

	.row.aln-left {
		justify-content: flex-start;
	}

	.row.aln-center {
		justify-content: center;
	}

	.row.aln-right {
		justify-content: flex-end;
	}

	.row.aln-top {
		align-items: flex-start;
	}

	.row.aln-middle {
		align-items: center;
	}

	.row.aln-bottom {
		align-items: flex-end;
	}

	.row>.imp-xlarge {
		order: -1;
	}

	.row>.col-1-xlarge {
		width: 8.33333%;
	}

	.row>.off-1-xlarge {
		margin-left: 8.33333%;
	}

	.row>.col-2-xlarge {
		width: 16.66667%;
	}

	.row>.off-2-xlarge {
		margin-left: 16.66667%;
	}

	.row>.col-3-xlarge {
		width: 25%;
	}

	.row>.off-3-xlarge {
		margin-left: 25%;
	}

	.row>.col-4-xlarge {
		width: 33.33333%;
	}

	.row>.off-4-xlarge {
		margin-left: 33.33333%;
	}

	.row>.col-5-xlarge {
		width: 41.66667%;
	}

	.row>.off-5-xlarge {
		margin-left: 41.66667%;
	}

	.row>.col-6-xlarge {
		width: 50%;
	}

	.row>.off-6-xlarge {
		margin-left: 50%;
	}

	.row>.col-7-xlarge {
		width: 58.33333%;
	}

	.row>.off-7-xlarge {
		margin-left: 58.33333%;
	}

	.row>.col-8-xlarge {
		width: 66.66667%;
	}

	.row>.off-8-xlarge {
		margin-left: 66.66667%;
	}

	.row>.col-9-xlarge {
		width: 75%;
	}

	.row>.off-9-xlarge {
		margin-left: 75%;
	}

	.row>.col-10-xlarge {
		width: 83.33333%;
	}

	.row>.off-10-xlarge {
		margin-left: 83.33333%;
	}

	.row>.col-11-xlarge {
		width: 91.66667%;
	}

	.row>.off-11-xlarge {
		margin-left: 91.66667%;
	}

	.row>.col-12-xlarge {
		width: 100%;
	}

	.row>.off-12-xlarge {
		margin-left: 100%;
	}

	.row.gtr-0 {
		margin-top: 0;
		margin-left: 0em;
	}

	.row.gtr-0>* {
		padding: 0 0 0 0em;
	}

	.row.gtr-0.gtr-uniform {
		margin-top: 0em;
	}

	.row.gtr-0.gtr-uniform>* {
		padding-top: 0em;
	}

	.row.gtr-25 {
		margin-top: 0;
		margin-left: -0.5em;
	}

	.row.gtr-25>* {
		padding: 0 0 0 0.5em;
	}

	.row.gtr-25.gtr-uniform {
		margin-top: -0.5em;
	}

	.row.gtr-25.gtr-uniform>* {
		padding-top: 0.5em;
	}

	.row.gtr-50 {
		margin-top: 0;
		margin-left: -1em;
	}

	.row.gtr-50>* {
		padding: 0 0 0 1em;
	}

	.row.gtr-50.gtr-uniform {
		margin-top: -1em;
	}

	.row.gtr-50.gtr-uniform>* {
		padding-top: 1em;
	}

	.row {
		margin-top: 0;
		margin-left: -2em;
	}

	.row>* {
		padding: 0 0 0 2em;
	}

	.row.gtr-uniform {
		margin-top: -2em;
	}

	.row.gtr-uniform>* {
		padding-top: 2em;
	}

	.row.gtr-150 {
		margin-top: 0;
		margin-left: -3em;
	}

	.row.gtr-150>* {
		padding: 0 0 0 3em;
	}

	.row.gtr-150.gtr-uniform {
		margin-top: -3em;
	}

	.row.gtr-150.gtr-uniform>* {
		padding-top: 3em;
	}

	.row.gtr-200 {
		margin-top: 0;
		margin-left: -4em;
	}

	.row.gtr-200>* {
		padding: 0 0 0 4em;
	}

	.row.gtr-200.gtr-uniform {
		margin-top: -4em;
	}

	.row.gtr-200.gtr-uniform>* {
		padding-top: 4em;
	}

}

@media screen and (max-width: 1280px) {

	.row {
		display: flex;
		flex-wrap: wrap;
		box-sizing: border-box;
		align-items: stretch;
	}

	.row>* {
		box-sizing: border-box;
	}

	.row.gtr-uniform>*> :last-child {
		margin-bottom: 0;
	}

	.row.aln-left {
		justify-content: flex-start;
	}

	.row.aln-center {
		justify-content: center;
	}

	.row.aln-right {
		justify-content: flex-end;
	}

	.row.aln-top {
		align-items: flex-start;
	}

	.row.aln-middle {
		align-items: center;
	}

	.row.aln-bottom {
		align-items: flex-end;
	}

	.row>.imp-large {
		order: -1;
	}

	.row>.col-1-large {
		width: 8.33333%;
	}

	.row>.off-1-large {
		margin-left: 8.33333%;
	}

	.row>.col-2-large {
		width: 16.66667%;
	}

	.row>.off-2-large {
		margin-left: 16.66667%;
	}

	.row>.col-3-large {
		width: 25%;
	}

	.row>.off-3-large {
		margin-left: 25%;
	}

	.row>.col-4-large {
		width: 33.33333%;
	}

	.row>.off-4-large {
		margin-left: 33.33333%;
	}

	.row>.col-5-large {
		width: 41.66667%;
	}

	.row>.off-5-large {
		margin-left: 41.66667%;
	}

	.row>.col-6-large {
		width: 50%;
	}

	.row>.off-6-large {
		margin-left: 50%;
	}

	.row>.col-7-large {
		width: 58.33333%;
	}

	.row>.off-7-large {
		margin-left: 58.33333%;
	}

	.row>.col-8-large {
		width: 66.66667%;
	}

	.row>.off-8-large {
		margin-left: 66.66667%;
	}

	.row>.col-9-large {
		width: 75%;
	}

	.row>.off-9-large {
		margin-left: 75%;
	}

	.row>.col-10-large {
		width: 83.33333%;
	}

	.row>.off-10-large {
		margin-left: 83.33333%;
	}

	.row>.col-11-large {
		width: 91.66667%;
	}

	.row>.off-11-large {
		margin-left: 91.66667%;
	}

	.row>.col-12-large {
		width: 100%;
	}

	.row>.off-12-large {
		margin-left: 100%;
	}

	.row.gtr-0 {
		margin-top: 0;
		margin-left: 0em;
	}

	.row.gtr-0>* {
		padding: 0 0 0 0em;
	}

	.row.gtr-0.gtr-uniform {
		margin-top: 0em;
	}

	.row.gtr-0.gtr-uniform>* {
		padding-top: 0em;
	}

	.row.gtr-25 {
		margin-top: 0;
		margin-left: -0.375em;
	}

	.row.gtr-25>* {
		padding: 0 0 0 0.375em;
	}

	.row.gtr-25.gtr-uniform {
		margin-top: -0.375em;
	}

	.row.gtr-25.gtr-uniform>* {
		padding-top: 0.375em;
	}

	.row.gtr-50 {
		margin-top: 0;
		margin-left: -0.75em;
	}

	.row.gtr-50>* {
		padding: 0 0 0 0.75em;
	}

	.row.gtr-50.gtr-uniform {
		margin-top: -0.75em;
	}

	.row.gtr-50.gtr-uniform>* {
		padding-top: 0.75em;
	}

	.row {
		margin-top: 0;
		margin-left: -1.5em;
	}

	.row>* {
		padding: 0 0 0 1.5em;
	}

	.row.gtr-uniform {
		margin-top: -1.5em;
	}

	.row.gtr-uniform>* {
		padding-top: 1.5em;
	}

	.row.gtr-150 {
		margin-top: 0;
		margin-left: -2.25em;
	}

	.row.gtr-150>* {
		padding: 0 0 0 2.25em;
	}

	.row.gtr-150.gtr-uniform {
		margin-top: -2.25em;
	}

	.row.gtr-150.gtr-uniform>* {
		padding-top: 2.25em;
	}

	.row.gtr-200 {
		margin-top: 0;
		margin-left: -3em;
	}

	.row.gtr-200>* {
		padding: 0 0 0 3em;
	}

	.row.gtr-200.gtr-uniform {
		margin-top: -3em;
	}

	.row.gtr-200.gtr-uniform>* {
		padding-top: 3em;
	}

}

@media screen and (max-width: 980px) {

	.row {
		display: flex;
		flex-wrap: wrap;
		box-sizing: border-box;
		align-items: stretch;
	}

	.row>* {
		box-sizing: border-box;
	}

	.row.gtr-uniform>*> :last-child {
		margin-bottom: 0;
	}

	.row.aln-left {
		justify-content: flex-start;
	}

	.row.aln-center {
		justify-content: center;
	}

	.row.aln-right {
		justify-content: flex-end;
	}

	.row.aln-top {
		align-items: flex-start;
	}

	.row.aln-middle {
		align-items: center;
	}

	.row.aln-bottom {
		align-items: flex-end;
	}

	.row>.imp-medium {
		order: -1;
	}

	.row>.col-1-medium {
		width: 8.33333%;
	}

	.row>.off-1-medium {
		margin-left: 8.33333%;
	}

	.row>.col-2-medium {
		width: 16.66667%;
	}

	.row>.off-2-medium {
		margin-left: 16.66667%;
	}

	.row>.col-3-medium {
		width: 25%;
	}

	.row>.off-3-medium {
		margin-left: 25%;
	}

	.row>.col-4-medium {
		width: 33.33333%;
	}

	.row>.off-4-medium {
		margin-left: 33.33333%;
	}

	.row>.col-5-medium {
		width: 41.66667%;
	}

	.row>.off-5-medium {
		margin-left: 41.66667%;
	}

	.row>.col-6-medium {
		width: 50%;
	}

	.row>.off-6-medium {
		margin-left: 50%;
	}

	.row>.col-7-medium {
		width: 58.33333%;
	}

	.row>.off-7-medium {
		margin-left: 58.33333%;
	}

	.row>.col-8-medium {
		width: 66.66667%;
	}

	.row>.off-8-medium {
		margin-left: 66.66667%;
	}

	.row>.col-9-medium {
		width: 75%;
	}

	.row>.off-9-medium {
		margin-left: 75%;
	}

	.row>.col-10-medium {
		width: 83.33333%;
	}

	.row>.off-10-medium {
		margin-left: 83.33333%;
	}

	.row>.col-11-medium {
		width: 91.66667%;
	}

	.row>.off-11-medium {
		margin-left: 91.66667%;
	}

	.row>.col-12-medium {
		width: 100%;
	}

	.row>.off-12-medium {
		margin-left: 100%;
	}

	.row.gtr-0 {
		margin-top: 0;
		margin-left: 0em;
	}

	.row.gtr-0>* {
		padding: 0 0 0 0em;
	}

	.row.gtr-0.gtr-uniform {
		margin-top: 0em;
	}

	.row.gtr-0.gtr-uniform>* {
		padding-top: 0em;
	}

	.row.gtr-25 {
		margin-top: 0;
		margin-left: -0.375em;
	}

	.row.gtr-25>* {
		padding: 0 0 0 0.375em;
	}

	.row.gtr-25.gtr-uniform {
		margin-top: -0.375em;
	}

	.row.gtr-25.gtr-uniform>* {
		padding-top: 0.375em;
	}

	.row.gtr-50 {
		margin-top: 0;
		margin-left: -0.75em;
	}

	.row.gtr-50>* {
		padding: 0 0 0 0.75em;
	}

	.row.gtr-50.gtr-uniform {
		margin-top: -0.75em;
	}

	.row.gtr-50.gtr-uniform>* {
		padding-top: 0.75em;
	}

	.row {
		margin-top: 0;
		margin-left: -1.5em;
	}

	.row>* {
		padding: 0 0 0 1.5em;
	}

	.row.gtr-uniform {
		margin-top: -1.5em;
	}

	.row.gtr-uniform>* {
		padding-top: 1.5em;
	}

	.row.gtr-150 {
		margin-top: 0;
		margin-left: -2.25em;
	}

	.row.gtr-150>* {
		padding: 0 0 0 2.25em;
	}

	.row.gtr-150.gtr-uniform {
		margin-top: -2.25em;
	}

	.row.gtr-150.gtr-uniform>* {
		padding-top: 2.25em;
	}

	.row.gtr-200 {
		margin-top: 0;
		margin-left: -3em;
	}

	.row.gtr-200>* {
		padding: 0 0 0 3em;
	}

	.row.gtr-200.gtr-uniform {
		margin-top: -3em;
	}

	.row.gtr-200.gtr-uniform>* {
		padding-top: 3em;
	}

}

@media screen and (max-width: 736px) {

	.row {
		display: flex;
		flex-wrap: wrap;
		box-sizing: border-box;
		align-items: stretch;
	}

	.row>* {
		box-sizing: border-box;
	}

	.row.gtr-uniform>*> :last-child {
		margin-bottom: 0;
	}

	.row.aln-left {
		justify-content: flex-start;
	}

	.row.aln-center {
		justify-content: center;
	}

	.row.aln-right {
		justify-content: flex-end;
	}

	.row.aln-top {
		align-items: flex-start;
	}

	.row.aln-middle {
		align-items: center;
	}

	.row.aln-bottom {
		align-items: flex-end;
	}

	.row>.imp-small {
		order: -1;
	}

	.row>.col-1-small {
		width: 8.33333%;
	}

	.row>.off-1-small {
		margin-left: 8.33333%;
	}

	.row>.col-2-small {
		width: 16.66667%;
	}

	.row>.off-2-small {
		margin-left: 16.66667%;
	}

	.row>.col-3-small {
		width: 25%;
	}

	.row>.off-3-small {
		margin-left: 25%;
	}

	.row>.col-4-small {
		width: 33.33333%;
	}

	.row>.off-4-small {
		margin-left: 33.33333%;
	}

	.row>.col-5-small {
		width: 41.66667%;
	}

	.row>.off-5-small {
		margin-left: 41.66667%;
	}

	.row>.col-6-small {
		width: 50%;
	}

	.row>.off-6-small {
		margin-left: 50%;
	}

	.row>.col-7-small {
		width: 58.33333%;
	}

	.row>.off-7-small {
		margin-left: 58.33333%;
	}

	.row>.col-8-small {
		width: 66.66667%;
	}

	.row>.off-8-small {
		margin-left: 66.66667%;
	}

	.row>.col-9-small {
		width: 75%;
	}

	.row>.off-9-small {
		margin-left: 75%;
	}

	.row>.col-10-small {
		width: 83.33333%;
	}

	.row>.off-10-small {
		margin-left: 83.33333%;
	}

	.row>.col-11-small {
		width: 91.66667%;
	}

	.row>.off-11-small {
		margin-left: 91.66667%;
	}

	.row>.col-12-small {
		width: 100%;
	}

	.row>.off-12-small {
		margin-left: 100%;
	}

	.row.gtr-0 {
		margin-top: 0;
		margin-left: 0em;
	}

	.row.gtr-0>* {
		padding: 0 0 0 0em;
	}

	.row.gtr-0.gtr-uniform {
		margin-top: 0em;
	}

	.row.gtr-0.gtr-uniform>* {
		padding-top: 0em;
	}

	.row.gtr-25 {
		margin-top: 0;
		margin-left: -0.3125em;
	}

	.row.gtr-25>* {
		padding: 0 0 0 0.3125em;
	}

	.row.gtr-25.gtr-uniform {
		margin-top: -0.3125em;
	}

	.row.gtr-25.gtr-uniform>* {
		padding-top: 0.3125em;
	}

	.row.gtr-50 {
		margin-top: 0;
		margin-left: -0.625em;
	}

	.row.gtr-50>* {
		padding: 0 0 0 0.625em;
	}

	.row.gtr-50.gtr-uniform {
		margin-top: -0.625em;
	}

	.row.gtr-50.gtr-uniform>* {
		padding-top: 0.625em;
	}

	.row {
		margin-top: 0;
		margin-left: -1.25em;
	}

	.row>* {
		padding: 0 0 0 1.25em;
	}

	.row.gtr-uniform {
		margin-top: -1.25em;
	}

	.row.gtr-uniform>* {
		padding-top: 1.25em;
	}

	.row.gtr-150 {
		margin-top: 0;
		margin-left: -1.875em;
	}

	.row.gtr-150>* {
		padding: 0 0 0 1.875em;
	}

	.row.gtr-150.gtr-uniform {
		margin-top: -1.875em;
	}

	.row.gtr-150.gtr-uniform>* {
		padding-top: 1.875em;
	}

	.row.gtr-200 {
		margin-top: 0;
		margin-left: -2.5em;
	}

	.row.gtr-200>* {
		padding: 0 0 0 2.5em;
	}

	.row.gtr-200.gtr-uniform {
		margin-top: -2.5em;
	}

	.row.gtr-200.gtr-uniform>* {
		padding-top: 2.5em;
	}

}

@media screen and (max-width: 480px) {

	.row {
		display: flex;
		flex-wrap: wrap;
		box-sizing: border-box;
		align-items: stretch;
	}

	.row>* {
		box-sizing: border-box;
	}

	.row.gtr-uniform>*> :last-child {
		margin-bottom: 0;
	}

	.row.aln-left {
		justify-content: flex-start;
	}

	.row.aln-center {
		justify-content: center;
	}

	.row.aln-right {
		justify-content: flex-end;
	}

	.row.aln-top {
		align-items: flex-start;
	}

	.row.aln-middle {
		align-items: center;
	}

	.row.aln-bottom {
		align-items: flex-end;
	}

	.row>.imp-xsmall {
		order: -1;
	}

	.row>.col-1-xsmall {
		width: 8.33333%;
	}

	.row>.off-1-xsmall {
		margin-left: 8.33333%;
	}

	.row>.col-2-xsmall {
		width: 16.66667%;
	}

	.row>.off-2-xsmall {
		margin-left: 16.66667%;
	}

	.row>.col-3-xsmall {
		width: 25%;
	}

	.row>.off-3-xsmall {
		margin-left: 25%;
	}

	.row>.col-4-xsmall {
		width: 33.33333%;
	}

	.row>.off-4-xsmall {
		margin-left: 33.33333%;
	}

	.row>.col-5-xsmall {
		width: 41.66667%;
	}

	.row>.off-5-xsmall {
		margin-left: 41.66667%;
	}

	.row>.col-6-xsmall {
		width: 50%;
	}

	.row>.off-6-xsmall {
		margin-left: 50%;
	}

	.row>.col-7-xsmall {
		width: 58.33333%;
	}

	.row>.off-7-xsmall {
		margin-left: 58.33333%;
	}

	.row>.col-8-xsmall {
		width: 66.66667%;
	}

	.row>.off-8-xsmall {
		margin-left: 66.66667%;
	}

	.row>.col-9-xsmall {
		width: 75%;
	}

	.row>.off-9-xsmall {
		margin-left: 75%;
	}

	.row>.col-10-xsmall {
		width: 83.33333%;
	}

	.row>.off-10-xsmall {
		margin-left: 83.33333%;
	}

	.row>.col-11-xsmall {
		width: 91.66667%;
	}

	.row>.off-11-xsmall {
		margin-left: 91.66667%;
	}

	.row>.col-12-xsmall {
		width: 100%;
	}

	.row>.off-12-xsmall {
		margin-left: 100%;
	}

	.row.gtr-0 {
		margin-top: 0;
		margin-left: 0em;
	}

	.row.gtr-0>* {
		padding: 0 0 0 0em;
	}

	.row.gtr-0.gtr-uniform {
		margin-top: 0em;
	}

	.row.gtr-0.gtr-uniform>* {
		padding-top: 0em;
	}

	.row.gtr-25 {
		margin-top: 0;
		margin-left: -0.3125em;
	}

	.row.gtr-25>* {
		padding: 0 0 0 0.3125em;
	}

	.row.gtr-25.gtr-uniform {
		margin-top: -0.3125em;
	}

	.row.gtr-25.gtr-uniform>* {
		padding-top: 0.3125em;
	}

	.row.gtr-50 {
		margin-top: 0;
		margin-left: -0.625em;
	}

	.row.gtr-50>* {
		padding: 0 0 0 0.625em;
	}

	.row.gtr-50.gtr-uniform {
		margin-top: -0.625em;
	}

	.row.gtr-50.gtr-uniform>* {
		padding-top: 0.625em;
	}

	.row {
		margin-top: 0;
		margin-left: -1.25em;
	}

	.row>* {
		padding: 0 0 0 1.25em;
	}

	.row.gtr-uniform {
		margin-top: -1.25em;
	}

	.row.gtr-uniform>* {
		padding-top: 1.25em;
	}

	.row.gtr-150 {
		margin-top: 0;
		margin-left: -1.875em;
	}

	.row.gtr-150>* {
		padding: 0 0 0 1.875em;
	}

	.row.gtr-150.gtr-uniform {
		margin-top: -1.875em;
	}

	.row.gtr-150.gtr-uniform>* {
		padding-top: 1.875em;
	}

	.row.gtr-200 {
		margin-top: 0;
		margin-left: -2.5em;
	}

	.row.gtr-200>* {
		padding: 0 0 0 2.5em;
	}

	.row.gtr-200.gtr-uniform {
		margin-top: -2.5em;
	}

	.row.gtr-200.gtr-uniform>* {
		padding-top: 2.5em;
	}

}

/* Section/Article */

section.special,
article.special {
	text-align: center;
}

header.major {
	width: -moz-max-content;
	width: -webkit-max-content;
	width: -ms-max-content;
	width: max-content;
	margin-bottom: 2em;
}

header.major> :first-child {
	margin-bottom: 0;
	width: calc(100% + 0.5em);
}

header.major> :first-child:after {
	content: '';
	background-color: #4294d1;
	display: block;
	height: 2px;
	margin: 0.325em 0 0.5em 0;
	width: 100%;
}

header.major>p {
	font-size: 0.7em;
	font-weight: 600;
	letter-spacing: 0.25em;
	margin-bottom: 0;
	text-transform: uppercase;
}

body.is-ie header.major> :first-child:after {
	max-width: 9em;
}

body.is-ie header.major>h1:after {
	max-width: 100% !important;
}

@media screen and (max-width: 736px) {

	header.major>p br {
		display: none;
	}

}

/* Form */

form {
	margin: 0 0 2em 0;
}

form> :last-child {
	margin-bottom: 0;
}

form>.fields {
	display: -moz-flex;
	display: -webkit-flex;
	display: -ms-flex;
	display: flex;
	-moz-flex-wrap: wrap;
	-webkit-flex-wrap: wrap;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	width: calc(100% + 3em);
	margin: -1.5em 0 2em -1.5em;
}

form>.fields>.field {
	-moz-flex-grow: 0;
	-webkit-flex-grow: 0;
	-ms-flex-grow: 0;
	flex-grow: 0;
	-moz-flex-shrink: 0;
	-webkit-flex-shrink: 0;
	-ms-flex-shrink: 0;
	flex-shrink: 0;
	padding: 1.5em 0 0 1.5em;
	width: calc(100% - 1.5em);
}

form>.fields>.field.half {
	width: calc(50% - 0.75em);
}

form>.fields>.field.third {
	width: calc(100%/3 - 0.5em);
}

form>.fields>.field.quarter {
	width: calc(25% - 0.375em);
}

@media screen and (max-width: 480px) {

	form>.fields {
		width: calc(100% + 3em);
		margin: -1.5em 0 2em -1.5em;
	}

	form>.fields>.field {
		padding: 1.5em 0 0 1.5em;
		width: calc(100% - 1.5em);
	}

	form>.fields>.field.half {
		width: calc(100% - 1.5em);
	}

	form>.fields>.field.third {
		width: calc(100% - 1.5em);
	}

	form>.fields>.field.quarter {
		width: calc(100% - 1.5em);
	}

}

label {
	color: #292929;
	display: block;
	font-size: 0.8em;
	font-weight: 600;
	letter-spacing: 0.25em;
	margin: 0 0 1em 0;
	text-transform: uppercase;
}

input[type="text"],
input[type="password"],
input[type="email"],
input[type="tel"],
input[type="search"],
input[type="url"],
select,
textarea {
	-moz-appearance: none;
	-webkit-appearance: none;
	-ms-appearance: none;
	appearance: none;
	background: #ffffff;
	border: solid 1px rgba(39, 39, 39, 0.15);
	border-radius: 0;
	color: inherit;
	display: block;
	outline: 0;
	padding: 0 1em;
	text-decoration: none;
	width: 100%;
}

input[type="text"]:invalid,
input[type="password"]:invalid,
input[type="email"]:invalid,
input[type="tel"]:invalid,
input[type="search"]:invalid,
input[type="url"]:invalid,
select:invalid,
textarea:invalid {
	box-shadow: none;
}

input[type="text"]:focus,
input[type="password"]:focus,
input[type="email"]:focus,
input[type="tel"]:focus,
input[type="search"]:focus,
input[type="url"]:focus,
select:focus,
textarea:focus {
	border-color: #4294d1;
	box-shadow: 0 0 0 2px rgba(0, 118, 255, 0.25);
}

select {
	background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' preserveAspectRatio='none' viewBox='0 0 40 40'%3E%3Cpath d='M9.4,12.3l10.4,10.4l10.4-10.4c0.2-0.2,0.5-0.4,0.9-0.4c0.3,0,0.6,0.1,0.9,0.4l3.3,3.3c0.2,0.2,0.4,0.5,0.4,0.9 c0,0.4-0.1,0.6-0.4,0.9L20.7,31.9c-0.2,0.2-0.5,0.4-0.9,0.4c-0.3,0-0.6-0.1-0.9-0.4L4.3,17.3c-0.2-0.2-0.4-0.5-0.4-0.9 c0-0.4,0.1-0.6,0.4-0.9l3.3-3.3c0.2-0.2,0.5-0.4,0.9-0.4S9.1,12.1,9.4,12.3z' fill='rgba(39, 39, 39, 0.4)' /%3E%3C/svg%3E");
	background-size: 1.25rem;
	background-repeat: no-repeat;
	background-position: calc(100% - 1rem) center;
	height: 2.75em;
	padding-right: 2.75em;
	text-overflow: ellipsis;
}

select option {
	color: #292929;
	background: #ffffff;
}

select:focus::-ms-value {
	background-color: transparent;
}

select::-ms-expand {
	display: none;
}

input[type="text"],
input[type="password"],
input[type="email"],
input[type="tel"],
input[type="search"],
input[type="url"],
select {
	height: 2.75em;
}

textarea {
	padding: 0.75em 1em;
}

input[type="checkbox"],
input[type="radio"] {
	-moz-appearance: none;
	-webkit-appearance: none;
	-ms-appearance: none;
	appearance: none;
	display: block;
	float: left;
	margin-right: -2em;
	opacity: 0;
	width: 1em;
	z-index: -1;
}

input[type="checkbox"]+label,
input[type="radio"]+label {
	text-decoration: none;
	color: #292929;
	cursor: pointer;
	display: inline-block;
	font-weight: 300;
	padding-left: 2.65em;
	padding-right: 0.75em;
	position: relative;
}

input[type="checkbox"]+label:before,
input[type="radio"]+label:before {
	-moz-osx-font-smoothing: grayscale;
	-webkit-font-smoothing: antialiased;
	display: inline-block;
	font-style: normal;
	font-variant: normal;
	text-rendering: auto;
	line-height: 1;
	text-transform: none !important;
	font-family: 'Font Awesome 5 Free';
	font-weight: 900;
}

input[type="checkbox"]+label:before,
input[type="radio"]+label:before {
	background: rgba(39, 39, 39, 0.05);
	content: '';
	display: inline-block;
	font-size: 0.8em;
	height: 2.0625em;
	left: 0;
	letter-spacing: 0;
	line-height: 2.0625em;
	position: absolute;
	text-align: center;
	top: 0;
	width: 2.0625em;
}

input[type="checkbox"]:checked+label:before,
input[type="radio"]:checked+label:before {
	background: #4294d1;
	border-color: #4294d1;
	content: '00c';
	color: #4294d1;
}

input[type="checkbox"]:focus+label:before,
input[type="radio"]:focus+label:before {
	box-shadow: 0 0 0 2px rgba(0, 118, 255, 0.25);
}

input[type="radio"]+label:before {
	border-radius: 100%;
}

::-webkit-input-placeholder {
	color: rgba(39, 39, 39, 0.4) !important;
	opacity: 1.0;
}

:-moz-placeholder {
	color: rgba(39, 39, 39, 0.4) !important;
	opacity: 1.0;
}

::-moz-placeholder {
	color: rgba(39, 39, 39, 0.4) !important;
	opacity: 1.0;
}

:-ms-input-placeholder {
	color: rgba(39, 39, 39, 0.4) !important;
	opacity: 1.0;
}

/* Box */

.box {
	border: solid 1px rgba(39, 39, 39, 0.1);
	margin-bottom: 2em;
	padding: 1.5em;
}

.box> :last-child,
.box> :last-child> :last-child,
.box> :last-child> :last-child> :last-child {
	margin-bottom: 0;
}

.box.alt {
	border: 0;
	border-radius: 0;
	padding: 0;
}

/* Icon */

.icon {
	text-decoration: none;
	border-bottom: none;
	position: relative;
}

.icon:before {
	-moz-osx-font-smoothing: grayscale;
	-webkit-font-smoothing: antialiased;
	display: inline-block;
	font-style: normal;
	font-variant: normal;
	text-rendering: auto;
	line-height: 1;
	text-transform: none !important;
	font-family: 'Font Awesome 5 Free';
	font-weight: 400;
}

.icon>.label {
	display: none;
}

.icon:before {
	line-height: inherit;
}

.icon.solid:before {
	font-weight: 900;
}

.icon.brands:before {
	font-family: 'Font Awesome 5 Brands';
}

.icon.alt:before {
	box-shadow: inset 0 0 0 1px rgba(39, 39, 39, 0.25);
	background-color: transparent;
	border-radius: 100%;
	color: #292929;
	display: inline-block;
	height: 2em;
	line-height: 2em;
	text-align: center;
	width: 2em;
}

a.icon.alt:before {
	-moz-transition: background-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out, color 0.2s ease-in-out;
	-webkit-transition: background-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out, color 0.2s ease-in-out;
	-ms-transition: background-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out, color 0.2s ease-in-out;
	transition: background-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out, color 0.2s ease-in-out;
}

a.icon.alt:hover:before {
	background-color: #4294d1;
	box-shadow: inset 0 0 0 1px #4294d1;
	color: #ffffff;
}

a.icon.alt:active:before {
	background-color: #00CCFF;
	box-shadow: inset 0 0 0 1px #00CCFF;
	color: #ffffff;
}

/* Image */

.image {
	border: 0;
	display: inline-block;
	position: relative;
}

.image img {
	display: block;
}

.image.left,
.image.right {
	max-width: 30%;
}

.image.left img,
.image.right img {
	width: 100%;
}

.image.left {
	float: left;
	margin: 0 1.5em 1.25em 0;
	top: 0.25em;
}

.image.right {
	float: right;
	margin: 0 0 1.25em 1.5em;
	top: 0.25em;
}

.image.fit {
	display: block;
	margin: 0 0 2em 0;
	width: 100%;
}

.image.fit img {
	width: 100%;
}

.image.main {
	display: block;
	margin: 2.5em 0;
	width: 100%;
}

.image.main img {
	width: 100%;
}

@media screen and (max-width: 736px) {

	.image.main {
		margin: 1.5em 0;
	}

}

/* List */

ol {
	list-style: decimal;
	margin: 0 0 2em 0;
	padding-left: 1.25em;
}

ol li {
	padding-left: 0.25em;
}

ul {
	list-style: disc;
	margin: 0 0 2em 0;
	padding-left: 1em;
}

ul li {
	padding-left: 0.5em;
}

ul.alt {
	list-style: none;
	padding-left: 0;
}

ul.alt li {
	border-top: solid 1px rgba(39, 39, 39, 0.1);
	padding: 0.5em 0;
}

ul.alt li:first-child {
	border-top: 0;
	padding-top: 0;
}

dl {
	margin: 0 0 2em 0;
}

dl dt {
	display: block;
	font-weight: 600;
	margin: 0 0 1em 0;
}

dl dd {
	margin-left: 2em;
}

/* Actions */

ul.actions {
	display: -moz-flex;
	display: -webkit-flex;
	display: -ms-flex;
	display: flex;
	cursor: default;
	list-style: none;
	margin-left: -1em;
	padding-left: 0;
}

ul.actions li {
	padding: 0 0 0 1em;
	vertical-align: middle;
}

ul.actions.special {
	-moz-justify-content: center;
	-webkit-justify-content: center;
	-ms-justify-content: center;
	justify-content: center;
	width: 100%;
	margin-left: 0;
}

ul.actions.special li:first-child {
	padding-left: 0;
}

ul.actions.stacked {
	-moz-flex-direction: column;
	-webkit-flex-direction: column;
	-ms-flex-direction: column;
	flex-direction: column;
	margin-left: 0;
}

ul.actions.stacked li {
	padding: 1.3em 0 0 0;
}

ul.actions.stacked li:first-child {
	padding-top: 0;
}

ul.actions.fit {
	width: calc(100% + 1em);
}

ul.actions.fit li {
	-moz-flex-grow: 1;
	-webkit-flex-grow: 1;
	-ms-flex-grow: 1;
	flex-grow: 1;
	-moz-flex-shrink: 1;
	-webkit-flex-shrink: 1;
	-ms-flex-shrink: 1;
	flex-shrink: 1;
	width: 100%;
}

ul.actions.fit li>* {
	width: 100%;
}

ul.actions.fit.stacked {
	width: 100%;
}

/* Icons */

ul.icons {
	cursor: default;
	list-style: none;
	padding-left: 0;
}

ul.icons li {
	display: inline-block;
	padding: 0 1em 0 0;
}

ul.icons li:last-child {
	padding-right: 0;
}

@media screen and (max-width: 736px) {

	ul.icons li {
		padding: 0 0.75em 0 0;
	}

}

/* Pagination */

ul.pagination {
	cursor: default;
	list-style: none;
	padding-left: 0;
}

ul.pagination li {
	display: inline-block;
	padding-left: 0;
	vertical-align: middle;
}

ul.pagination li>.page {
	-moz-transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out;
	-webkit-transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out;
	-ms-transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out;
	transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out;
	border-bottom: 0;
	display: inline-block;
	font-size: 0.8em;
	font-weight: 600;
	height: 1.5em;
	line-height: 1.5em;
	margin: 0 0.125em;
	min-width: 1.5em;
	padding: 0 0.5em;
	text-align: center;
}

ul.pagination li>.page.active {
	background-color: #ffffff;
	color: #242943;
}

ul.pagination li>.page.active:hover {
	background-color: #9bf1ff;
	color: #242943 !important;
}

ul.pagination li>.page.active:active {
	background-color: #53e3fb;
}

ul.pagination li:first-child {
	padding-right: 0.75em;
}

ul.pagination li:last-child {
	padding-left: 0.75em;
}

@media screen and (max-width: 480px) {

	ul.pagination li:nth-child(n+2):nth-last-child(n+2) {
		display: none;
	}

	ul.pagination li:first-child {
		padding-right: 0;
	}

}

/* Table */

.table-wrapper {
	-webkit-overflow-scrolling: touch;
	overflow-x: auto;
	width: 100%;
	max-width: 100%;
	scrollbar-width: thin;
	scrollbar-color: rgba(39, 39, 39, 0.15) transparent;
}

/* Premium slim scrollbars */
.table-wrapper::-webkit-scrollbar {
	height: 6px;
	width: 6px;
}

.table-wrapper::-webkit-scrollbar-track {
	background: transparent;
}

.table-wrapper::-webkit-scrollbar-thumb {
	background-color: rgba(39, 39, 39, 0.15);
	border-radius: 6px;
	border: 1px solid transparent;
	background-clip: padding-box;
}

.table-wrapper::-webkit-scrollbar-thumb:hover {
	background-color: rgba(39, 39, 39, 0.35);
}

table {
	margin: 0 0 2em 0;
	width: 100%;
}

table tbody tr {
	border: solid 1px rgba(39, 39, 39, 0.1);
	border-left: 0;
	border-right: 0;
}

table tbody tr:nth-child(2n + 1) {
	background-color: rgba(0, 118, 255, 0.02);
}

table td {
	padding: 0.75em 0.75em;
}

table th {
	color: #ffffff;
	font-size: 0.9em;
	font-weight: 600;
	padding: 0 0.75em 0.75em 0.75em;
	text-align: center;
}

table thead {
	border-bottom: solid 2px rgba(39, 39, 39, 0.1);
}

table tfoot {
	border-top: solid 2px rgba(39, 39, 39, 0.1);
}

table.alt {
	border-collapse: separate;
}

table.alt tbody tr td {
	border: solid 1px rgba(39, 39, 39, 0.1);
	border-left-width: 0;
	border-top-width: 0;
}

table.alt tbody tr td:first-child {
	border-left-width: 1px;
}

table.alt tbody tr:first-child td {
	border-top-width: 1px;
}

table.alt thead {
	border-bottom: 0;
}

table.alt tfoot {
	border-top: 0;
}

/* Button */

input[type="submit"],
input[type="reset"],
input[type="button"],
button,
.button {
	-moz-appearance: none;
	-webkit-appearance: none;
	-ms-appearance: none;
	appearance: none;
	-moz-transition: background-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out, color 0.2s ease-in-out;
	-webkit-transition: background-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out, color 0.2s ease-in-out;
	-ms-transition: background-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out, color 0.2s ease-in-out;
	transition: background-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out, color 0.2s ease-in-out;
	background-color: transparent;
	border: 0;
	border-radius: 0;
	box-shadow: inset 0 0 0 2px #4294d1;
	color: #4294d1;
	cursor: pointer;
	display: inline-block;
	font-size: 0.8em;
	font-weight: 600;
	height: 3.5em;
	letter-spacing: 0.25em;
	line-height: 3.5em;
	padding: 0 1.75em;
	text-align: center;
	text-decoration: none;
	text-transform: uppercase;
	white-space: nowrap;
}

input[type="submit"]:hover,
input[type="submit"]:active,
input[type="reset"]:hover,
input[type="reset"]:active,
input[type="button"]:hover,
input[type="button"]:active,
button:hover,
button:active,
.button:hover,
.button:active {
	box-shadow: inset 0 0 0 2px #00CCFF;
	color: #00CCFF;
}

input[type="submit"]:active,
input[type="reset"]:active,
input[type="button"]:active,
button:active,
.button:active {
	background-color: rgba(0, 204, 255, 0.1);
	box-shadow: inset 0 0 0 2px #76EFFF;
	color: #76EFFF;
}

input[type="submit"].icon:before,
input[type="reset"].icon:before,
input[type="button"].icon:before,
button.icon:before,
.button.icon:before {
	margin-right: 0.5em;
}

input[type="submit"].fit,
input[type="reset"].fit,
input[type="button"].fit,
button.fit,
.button.fit {
	width: 100%;
}

input[type="submit"].small,
input[type="reset"].small,
input[type="button"].small,
button.small,
.button.small {
	font-size: 0.6em;
}

input[type="submit"].large,
input[type="reset"].large,
input[type="button"].large,
button.large,
.button.large {
	font-size: 1.25em;
	height: 3em;
	line-height: 3em;
}

input[type="submit"].next,
input[type="reset"].next,
input[type="button"].next,
button.next,
.button.next {
	padding-right: 4.5em;
	position: relative;
}

input[type="submit"].next:before,
input[type="submit"].next:after,
input[type="reset"].next:before,
input[type="reset"].next:after,
input[type="button"].next:before,
input[type="button"].next:after,
button.next:before,
button.next:after,
.button.next:before,
.button.next:after {
	-moz-transition: opacity 0.2s ease-in-out;
	-webkit-transition: opacity 0.2s ease-in-out;
	-ms-transition: opacity 0.2s ease-in-out;
	transition: opacity 0.2s ease-in-out;
	background-position: center right;
	background-repeat: no-repeat;
	background-size: 36px 24px;
	content: '';
	display: block;
	height: 100%;
	position: absolute;
	right: 1.5em;
	top: 0;
	vertical-align: middle;
	width: 36px;
}

input[type="submit"].next:before,
input[type="reset"].next:before,
input[type="button"].next:before,
button.next:before,
.button.next:before {
	background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='36px' height='24px' viewBox='0 0 36 24' zoomAndPan='disable'%3E%3Cstyle%3Eline %7B stroke: %230076ff%3B stroke-width: 2px%3B %7D%3C/style%3E%3Cline x1='0' y1='12' x2='34' y2='12' /%3E%3Cline x1='25' y1='4' x2='34' y2='12.5' /%3E%3Cline x1='25' y1='20' x2='34' y2='11.5' /%3E%3C/svg%3E");
}

/* White arrow overrides for primary next buttons and next buttons inside banner */
input[type="submit"].primary.next:before,
input[type="reset"].primary.next:before,
input[type="button"].primary.next:before,
button.primary.next:before,
.button.primary.next:before,
#banner input[type="submit"].next:before,
#banner input[type="reset"].next:before,
#banner input[type="button"].next:before,
#banner button.next:before,
#banner .button.next:before {
	background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='36px' height='24px' viewBox='0 0 36 24' zoomAndPan='disable'%3E%3Cstyle%3Eline %7B stroke: %23ffffff%3B stroke-width: 2px%3B %7D%3C/style%3E%3Cline x1='0' y1='12' x2='34' y2='12' /%3E%3Cline x1='25' y1='4' x2='34' y2='12.5' /%3E%3Cline x1='25' y1='20' x2='34' y2='11.5' /%3E%3C/svg%3E") !important;
}

input[type="submit"].next:after,
input[type="reset"].next:after,
input[type="button"].next:after,
button.next:after,
.button.next:after {
	background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='36px' height='24px' viewBox='0 0 36 24' zoomAndPan='disable'%3E%3Cstyle%3Eline %7B stroke: %2300CCFF%3B stroke-width: 2px%3B %7D%3C/style%3E%3Cline x1='0' y1='12' x2='34' y2='12' /%3E%3Cline x1='25' y1='4' x2='34' y2='12.5' /%3E%3Cline x1='25' y1='20' x2='34' y2='11.5' /%3E%3C/svg%3E");
	opacity: 0;
	z-index: 1;
}

input[type="submit"].next:hover:after,
input[type="submit"].next:active:after,
input[type="reset"].next:hover:after,
input[type="reset"].next:active:after,
input[type="button"].next:hover:after,
input[type="button"].next:active:after,
button.next:hover:after,
button.next:active:after,
.button.next:hover:after,
.button.next:active:after {
	opacity: 1;
}

@media screen and (max-width: 1280px) {

	input[type="submit"].next,
	input[type="reset"].next,
	input[type="button"].next,
	button.next,
	.button.next {
		padding-right: 5em;
	}

}

input[type="submit"].primary,
input[type="reset"].primary,
input[type="button"].primary,
button.primary,
.button.primary {
	background-color: #4294d1;
	box-shadow: none;
	color: #ffffff;
}

input[type="submit"].primary:hover,
input[type="submit"].primary:active,
input[type="reset"].primary:hover,
input[type="reset"].primary:active,
input[type="button"].primary:hover,
input[type="button"].primary:active,
button.primary:hover,
button.primary:active,
.button.primary:hover,
.button.primary:active {
	background-color: #00CCFF;
	color: #ffffff !important;
}

input[type="submit"].primary:active,
input[type="reset"].primary:active,
input[type="button"].primary:active,
button.primary:active,
.button.primary:active {
	background-color: #76EFFF;
}

input[type="submit"].disabled,
input[type="submit"]:disabled,
input[type="reset"].disabled,
input[type="reset"]:disabled,
input[type="button"].disabled,
input[type="button"]:disabled,
button.disabled,
button:disabled,
.button.disabled,
.button:disabled {
	pointer-events: none;
	cursor: default;
	opacity: 0.25;
}

/* Tiles */

.tiles {
	display: -moz-flex;
	display: -webkit-flex;
	display: -ms-flex;
	display: flex;
	-moz-flex-wrap: wrap;
	-webkit-flex-wrap: wrap;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	border-top: 0 !important;
}

.tiles+* {
	border-top: 0 !important;
}

.tiles article {
	-moz-align-items: center;
	-webkit-align-items: center;
	-ms-align-items: center;
	align-items: center;
	display: -moz-flex;
	display: -webkit-flex;
	display: -ms-flex;
	display: flex;
	-moz-transition: -moz-transform 0.25s ease, opacity 0.25s ease, -moz-filter 1s ease, -webkit-filter 1s ease;
	-webkit-transition: -webkit-transform 0.25s ease, opacity 0.25s ease, -webkit-filter 1s ease, -webkit-filter 1s ease;
	-ms-transition: -ms-transform 0.25s ease, opacity 0.25s ease, -ms-filter 1s ease, -webkit-filter 1s ease;
	transition: transform 0.25s ease, opacity 0.25s ease, filter 1s ease, -webkit-filter 1s ease;
	padding: 4em 4em 2em 4em;
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	cursor: default;
	height: 40vh;
	max-height: 40em;
	min-height: 23em;
	overflow: hidden;
	position: relative;
	width: 40%;
}

.tiles article .image {
	display: none;
}

.tiles article,
.tiles article h3,
.tiles article h3 a,
.tiles article p,
.tiles article strong {
	color: #ffffff !important;
}

.tiles article header {
	position: relative;
	z-index: 3;
}

.tiles article h3 {
	font-size: 1.75em;
}

.tiles article h3 a:hover {
	color: inherit !important;
}

.tiles article .link.primary {
	border: 0;
	height: 100%;
	left: 0;
	position: absolute;
	top: 0;
	width: 100%;
	z-index: 4;
}

.tiles article:before {
	-moz-transition: opacity 0.5s ease;
	-webkit-transition: opacity 0.5s ease;
	-ms-transition: opacity 0.5s ease;
	transition: opacity 0.5s ease;
	bottom: 0;
	content: '';
	display: block;
	height: 100%;
	left: 0;
	opacity: 0.65;
	position: absolute;
	width: 100%;
	z-index: 2;
}

.tiles article:after {
	background-color: rgba(36, 41, 67, 0.25);
	content: '';
	display: block;
	height: 100%;
	left: 0;
	position: absolute;
	top: 0;
	width: 100%;
	z-index: 1;
}

.tiles article:hover:before {
	opacity: 0;
}

.tiles article.is-transitioning {
	-moz-transform: scale(0.95);
	-webkit-transform: scale(0.95);
	-ms-transform: scale(0.95);
	transform: scale(0.95);
	-moz-filter: blur(0.5em);
	-webkit-filter: blur(0.5em);
	-ms-filter: blur(0.5em);
	filter: blur(0.5em);
	opacity: 0;
}

.tiles article:nth-child(4n - 1),
.tiles article:nth-child(4n - 2) {
	width: 60%;
}

.tiles article:nth-child(6n - 5):before {
	background-color: #6fc3df;
}

.tiles article:nth-child(6n - 4):before {
	background-color: #00AEFC;
}

.tiles article:nth-child(6n - 3):before {
	background-color: #009CFF;
}

.tiles article:nth-child(6n - 2):before {
	background-color: #75EFFF;
}

.tiles article:nth-child(6n - 1):before {
	background-color: #00BDFF;
}

.tiles article:nth-child(6n):before {
	background-color: #00CDFF;
}

@media screen and (max-width: 1280px) {

	.tiles article {
		padding: 4em 3em 2em 3em;
		height: 30vh;
		max-height: 30em;
		min-height: 20em;
	}

}

@media screen and (max-width: 980px) {

	.tiles article {
		width: 50% !important;
	}

}

@media screen and (max-width: 736px) {

	.tiles article {
		padding: 3em 1.5em 1em 1.5em;
		height: 16em;
		max-height: none;
		min-height: 0;
	}

	.tiles article h3 {
		font-size: 1.5em;
	}

}

@media screen and (max-width: 480px) {

	.tiles {
		display: block;
	}

	.tiles article {
		height: 20em;
		width: 100% !important;
	}

}

/* Contact Method */

.contact-method {
	margin: 0 0 2em 0;
	padding-left: 3.25em;
	position: relative;
}

.contact-method .icon {
	left: 0;
	position: absolute;
	top: 0;
}

.contact-method h3 {
	margin: 0 0 0.5em 0;
}

/* Spotlights */

.spotlights {
	border-top: 0 !important;
}

.spotlights+* {
	border-top: 0 !important;
}

.spotlights>section {
	display: -moz-flex;
	display: -webkit-flex;
	display: -ms-flex;
	display: flex;
	-moz-flex-direction: row;
	-webkit-flex-direction: row;
	-ms-flex-direction: row;
	flex-direction: row;
	background-color: #4294d1;
}

.spotlights>section>.image {
	background-position: center center;
	background-size: cover;
	border-radius: 0;
	display: block;
	position: relative;
	width: 30%;
}

.spotlights>section>.image img {
	border-radius: 0;
	display: block;
	width: 100%;
}

.spotlights>section>.image:before {
	background: rgba(39, 39, 39, 0.95);
	content: '';
	display: block;
	height: 100%;
	left: 0;
	opacity: 0;
	position: absolute;
	top: 0;
	width: 100%;
}

.spotlights>section>.content {
	display: -moz-flex;
	display: -webkit-flex;
	display: -ms-flex;
	display: flex;
	-moz-flex-direction: column;
	-webkit-flex-direction: column;
	-ms-flex-direction: column;
	flex-direction: column;
	-moz-justify-content: center;
	-webkit-justify-content: center;
	-ms-justify-content: center;
	justify-content: center;
	-moz-align-items: center;
	-webkit-align-items: center;
	-ms-align-items: center;
	align-items: center;
	padding: 2em 3em 0.1em 3em;
	width: 70%;
}

.spotlights>section>.content>.inner {
	margin: 0 auto;
	max-width: 100%;
	width: 65em;
}

.spotlights>section:nth-child(2n) {
	-moz-flex-direction: row-reverse;
	-webkit-flex-direction: row-reverse;
	-ms-flex-direction: row-reverse;
	flex-direction: row-reverse;
	background-color: rgba(0, 118, 255, 0.03);
}

.spotlights>section:nth-child(2n)>.content {
	-moz-align-items: -moz-flex-end;
	-webkit-align-items: -webkit-flex-end;
	-ms-align-items: -ms-flex-end;
	align-items: flex-end;
}

@media screen and (max-width: 1680px) {

	.spotlights>section>.image {
		width: 40%;
	}

	.spotlights>section>.content {
		width: 60%;
	}

}

@media screen and (max-width: 1280px) {

	.spotlights>section>.image {
		width: 45%;
	}

	.spotlights>section>.content {
		width: 55%;
	}

}

@media screen and (max-width: 980px) {

	.spotlights>section {
		display: block;
	}

	.spotlights>section>.image {
		width: 100%;
	}

	.spotlights>section>.content {
		padding: 4em 3em 2em 3em;
		width: 100%;
	}

}

@media screen and (max-width: 736px) {

	.spotlights>section>.content {
		padding: 3em 1.5em 1em 1.5em;
	}

}

/* Header */

@-moz-keyframes reveal-header {
	0% {
		top: -4em;
		opacity: 0;
	}

	100% {
		top: 0;
		opacity: 1;
	}
}

@-webkit-keyframes reveal-header {
	0% {
		top: -4em;
		opacity: 0;
	}

	100% {
		top: 0;
		opacity: 1;
	}
}

@-ms-keyframes reveal-header {
	0% {
		top: -4em;
		opacity: 0;
	}

	100% {
		top: 0;
		opacity: 1;
	}
}

@keyframes reveal-header {
	0% {
		top: -4em;
		opacity: 0;
	}

	100% {
		top: 0;
		opacity: 1;
	}
}

#header {
	display: -moz-flex;
	display: -webkit-flex;
	display: -ms-flex;
	display: flex;
	background-color: #292929;
	box-shadow: 0 0 0.25em 0 rgba(0, 0, 0, 0.15);
	cursor: default;
	font-weight: 600;
	height: 3.25em;
	left: 0;
	letter-spacing: 0.25em;
	line-height: 3.25em;
	margin: 0;
	position: fixed;
	text-transform: uppercase;
	top: 0;
	width: 100%;
	z-index: 10000;
}

#header .logo {
	border: 0;
	display: -moz-inline-flex;
	display: -webkit-inline-flex;
	display: -ms-inline-flex;
	display: inline-flex;
	-moz-align-items: center;
	-webkit-align-items: center;
	-ms-align-items: center;
	align-items: center;
	font-size: 0.9em;
	height: inherit;
	line-height: inherit;
	padding: 0 1.0em;
}

#header .logo img {
	height: 1.8em;
	width: auto;
	margin-right: 0.6em;
	-moz-transition: opacity 0.2s ease-in-out;
	-webkit-transition: opacity 0.2s ease-in-out;
	-ms-transition: opacity 0.2s ease-in-out;
	transition: opacity 0.2s ease-in-out;
}

#header .logo:hover img {
	opacity: 0.8;
}

#header .logo strong {
	-moz-transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out;
	-webkit-transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out;
	-ms-transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out;
	transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out;
	background-color: #4294d1;
	color: #ffffff;
	display: inline-block;
	line-height: 1.65em;
	margin-right: 0.325em;
	padding: 0 0.125em 0 0.375em;
}

#header .logo:hover strong {
	background-color: #00CCFF;
}

#header .logo:active strong {
	background-color: #76EFFF;
}

#header nav {
	display: -moz-flex;
	display: -webkit-flex;
	display: -ms-flex;
	display: flex;
	-moz-justify-content: -moz-flex-end;
	-webkit-justify-content: -webkit-flex-end;
	-ms-justify-content: -ms-flex-end;
	justify-content: flex-end;
	-moz-flex-grow: 1;
	-webkit-flex-grow: 1;
	-ms-flex-grow: 1;
	flex-grow: 1;
	height: inherit;
	line-height: inherit;
}

#header nav a {
	border: 0;
	display: block;
	font-size: 0.8em;
	height: inherit;
	line-height: inherit;
	padding: 0 0.75em;
	position: relative;
	vertical-align: middle;
	color: #ffffff;
}


#header nav .nav-btn {
	background-color: transparent;
	border: 1px solid rgba(255, 255, 255, 0.4);
	border-radius: 4px;
	height: 2.25em !important;
	line-height: 2.15em !important;
	margin: auto 0.4em;
	padding: 0 1.2em !important;
	color: #ffffff !important;
	font-weight: 600;
	font-size: 0.75em;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	vertical-align: middle;
}

#header nav .nav-btn:hover {
	background-color: #ffffff;
	border-color: #ffffff;
	color: #242943 !important;
}

#header nav .nav-btn-primary {
	background-color: #4294d1;
	border-color: #4294d1;
}

#header nav .nav-btn-primary:hover {
	background-color: #00CCFF;
	border-color: #00CCFF;
	color: #ffffff !important;
}

@media screen and (max-width: 980px) {
	#header nav .nav-btn {
		display: none !important;
	}
}

/* Responsive visibility for header navigation links */
#header nav .nav-link {
	display: block;
}

#header nav .nav-hamburger {
	display: none;
}

/* Ensure the last visible nav-link on PC has proper right padding */
#header nav .nav-link:last-child,
#header nav .nav-link:nth-last-child(2) {
	padding-right: 1.5em !important;
}

@media screen and (max-width: 980px) {
	#header nav .nav-link {
		display: none;
	}

	#header nav .nav-hamburger {
		display: block;
	}
}

#header nav a[href="#menu"] {
	padding-right: 3.325em !important;
}

#header nav a[href="#menu"]:before,
#header nav a[href="#menu"]:after {
	background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='32' viewBox='0 0 24 32' preserveAspectRatio='none'%3E%3Cstyle%3Eline %7B stroke-width: 2px%3B stroke: %23ffffff%3B %7D%3C/style%3E%3Cline x1='0' y1='11' x2='24' y2='11' /%3E%3Cline x1='0' y1='21' x2='24' y2='21' /%3E%3Cline x1='0' y1='16' x2='24' y2='16' /%3E%3C/svg%3E");
	background-position: center;
	background-repeat: no-repeat;
	background-size: 24px 32px;
	content: '';
	display: block;
	height: 100%;
	position: absolute;
	right: 1.5em;
	top: 0;
	vertical-align: middle;
	width: 24px;
}

#header nav a[href="#menu"]:after {
	-moz-transition: opacity 0.2s ease-in-out;
	-webkit-transition: opacity 0.2s ease-in-out;
	-ms-transition: opacity 0.2s ease-in-out;
	transition: opacity 0.2s ease-in-out;
	background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='32' viewBox='0 0 24 32' preserveAspectRatio='none'%3E%3Cstyle%3Eline %7B stroke-width: 2px%3B stroke: %2300CCFF%3B %7D%3C/style%3E%3Cline x1='0' y1='11' x2='24' y2='11' /%3E%3Cline x1='0' y1='21' x2='24' y2='21' /%3E%3Cline x1='0' y1='16' x2='24' y2='16' /%3E%3C/svg%3E");
	opacity: 0;
	z-index: 1;
}

#header nav a[href="#menu"]:hover:after,
#header nav a[href="#menu"]:active:after {
	opacity: 1;
}

#header nav a[href="#menu"]:last-child {
	padding-right: 3.875em !important;
}

#header nav a[href="#menu"]:last-child:before,
#header nav a[href="#menu"]:last-child:after {
	right: 2em;
}

#header.reveal {
	-moz-animation: reveal-header 0.35s ease;
	-webkit-animation: reveal-header 0.35s ease;
	-ms-animation: reveal-header 0.35s ease;
	animation: reveal-header 0.35s ease;
}

#header.alt {
	-moz-transition: opacity 2.5s ease;
	-webkit-transition: opacity 2.5s ease;
	-ms-transition: opacity 2.5s ease;
	transition: opacity 2.5s ease;
	-moz-transition-delay: 0.75s;
	-webkit-transition-delay: 0.75s;
	-ms-transition-delay: 0.75s;
	transition-delay: 0.75s;
	-moz-animation: none;
	-webkit-animation: none;
	-ms-animation: none;
	animation: none;
	background-color: transparent;
	box-shadow: none;
	position: absolute;
}

#header.alt.style1 .logo strong {
	color: #6fc3df;
}

#header.alt.style2 .logo strong {
	color: #8d82c4;
}

#header.alt.style3 .logo strong {
	color: #ec8d81;
}

#header.alt.style4 .logo strong {
	color: #e7b788;
}

#header.alt.style5 .logo strong {
	color: #8ea9e8;
}

#header.alt.style6 .logo strong {
	color: #87c5a4;
}

body.is-preload #header.alt {
	opacity: 0;
}

@media screen and (max-width: 1680px) {

	#header nav a[href="#menu"] {
		padding-right: 3.75em !important;
	}

	#header nav a[href="#menu"]:last-child {
		padding-right: 4.25em !important;
	}

}

@media screen and (max-width: 1280px) {

	#header nav a[href="#menu"] {
		padding-right: 4em !important;
	}

	#header nav a[href="#menu"]:last-child {
		padding-right: 4.5em !important;
	}

}

@media screen and (max-width: 736px) {

	#header {
		height: 2.75em;
		line-height: 2.75em;
	}

	#header .logo {
		padding: 0 1em;
	}

	#header nav a {
		padding: 0 0.5em;
	}

	#header nav a:last-child {
		padding-right: 1em;
	}

	#header nav a[href="#menu"] {
		padding-right: 3.25em !important;
	}

	#header nav a[href="#menu"]:before,
	#header nav a[href="#menu"]:after {
		right: 0.75em;
	}

	#header nav a[href="#menu"]:last-child {
		padding-right: 4em !important;
	}

	#header nav a[href="#menu"]:last-child:before,
	#header nav a[href="#menu"]:last-child:after {
		right: 1.5em;
	}

}

@media screen and (max-width: 480px) {

	#header .logo span {
		display: none;
	}

	#header nav a[href="#menu"] {
		overflow: hidden;
		padding-right: 0 !important;
		text-indent: 5em;
		white-space: nowrap;
		width: 5em;
	}

	#header nav a[href="#menu"]:before,
	#header nav a[href="#menu"]:after {
		right: 0;
		width: inherit;
	}

	#header nav a[href="#menu"]:last-child:before,
	#header nav a[href="#menu"]:last-child:after {
		width: 4em;
		right: 0;
	}

}

/* Banner */

#banner {
	-moz-align-items: center;
	-webkit-align-items: center;
	-ms-align-items: center;
	align-items: center;
	background-image: url("../../images/banner.jpg");
	display: -moz-flex;
	display: -webkit-flex;
	display: -ms-flex;
	display: flex;
	padding: 6em 0 2em 0;
	background-attachment: fixed;
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	border-bottom: 0 !important;
	cursor: default;
	height: 60vh;
	margin-bottom: -3.25em;
	max-height: 32em;
	min-height: 22em;
	position: relative;
	top: -3.25em;
}

#banner:after {
	-moz-transition: opacity 2.5s ease;
	-webkit-transition: opacity 2.5s ease;
	-ms-transition: opacity 2.5s ease;
	transition: opacity 2.5s ease;
	-moz-transition-delay: 0.75s;
	-webkit-transition-delay: 0.75s;
	-ms-transition-delay: 0.75s;
	transition-delay: 0.75s;
	pointer-events: none;
	background-color: #292929;
	content: '';
	display: block;
	height: 100%;
	left: 0;
	opacity: 0.85;
	position: absolute;
	top: 0;
	width: 100%;
	z-index: 1;
}

#banner h1 {
	font-size: 3.25em;
}

#banner>.inner {
	-moz-transition: opacity 1.5s ease, -moz-transform 0.5s ease-out, -moz-filter 0.5s ease, -webkit-filter 0.5s ease;
	-webkit-transition: opacity 1.5s ease, -webkit-transform 0.5s ease-out, -webkit-filter 0.5s ease, -webkit-filter 0.5s ease;
	-ms-transition: opacity 1.5s ease, -ms-transform 0.5s ease-out, -ms-filter 0.5s ease, -webkit-filter 0.5s ease;
	transition: opacity 1.5s ease, transform 0.5s ease-out, filter 0.5s ease, -webkit-filter 0.5s ease;
	padding: 0 !important;
	position: relative;
	z-index: 2;
}

#banner>.inner .image {
	display: none;
}

#banner>.inner header {
	width: auto;
}

#banner>.inner header> :first-child {
	width: auto;
}

#banner>.inner header> :first-child:after {
	max-width: 100%;
}

#banner>.inner .content {
	display: -moz-flex;
	display: -webkit-flex;
	display: -ms-flex;
	display: flex;
	-moz-align-items: center;
	-webkit-align-items: center;
	-ms-align-items: center;
	align-items: center;
	margin: 0 0 2em 0;
}

#banner>.inner .content>* {
	margin-right: 1.5em;
	margin-bottom: 0;
}

#banner>.inner .content> :last-child {
	margin-right: 0;
}

#banner>.inner .content p {
	font-size: 0.7em;
	font-weight: 600;
	letter-spacing: 0.25em;
	text-transform: uppercase;
}

#banner.major {
	height: 75vh;
	min-height: 30em;
	max-height: 50em;
}

#banner.major.alt {
	opacity: 0.75;
}

#banner.style1:after {
	background-color: #6fc3df;
}

#banner.style2:after {
	background-color: #8d82c4;
}

#banner.style3:after {
	background-color: #ec8d81;
}

#banner.style4:after {
	background-color: #e7b788;
}

#banner.style5:after {
	background-color: #8ea9e8;
}

#banner.style6:after {
	background-color: #87c5a4;
}

body.is-preload #banner:after {
	opacity: 1.0;
}

body.is-preload #banner>.inner {
	-moz-filter: blur(0.125em);
	-webkit-filter: blur(0.125em);
	-ms-filter: blur(0.125em);
	filter: blur(0.125em);
	-moz-transform: translateX(-0.5em);
	-webkit-transform: translateX(-0.5em);
	-ms-transform: translateX(-0.5em);
	transform: translateX(-0.5em);
	opacity: 0;
}

@media screen and (max-width: 1280px) {

	#banner {
		background-attachment: scroll;
	}

}

@media screen and (max-width: 736px) {

	#banner {
		padding: 5em 0 1em 0;
		height: auto;
		margin-bottom: -2.75em;
		max-height: none;
		min-height: 0;
		top: -2.75em;
	}

	#banner h1 {
		font-size: 2em;
	}

	#banner>.inner .content {
		display: block;
	}

	#banner>.inner .content>* {
		margin-right: 0;
		margin-bottom: 2em;
	}

	#banner.major {
		height: auto;
		min-height: 0;
		max-height: none;
	}

}

@media screen and (max-width: 480px) {

	#banner {
		padding: 6em 0 2em 0;
	}

	#banner>.inner .content p br {
		display: none;
	}

	#banner.major {
		padding: 8em 0 4em 0;
	}

}

/* Main */

#main {
	background-color: #ECECEC;
}

#main>* {
	border-top: solid 1px rgba(39, 39, 39, 0.1);
}

#main>*:first-child {
	border-top: 0;
}

#main>*>.inner {
	padding: 4em 0 2em 0;
	margin: 0 auto;
	max-width: 65em;
	width: calc(100% - 6em);
}

@media screen and (max-width: 736px) {

	#main>*>.inner {
		padding: 3em 0 1em 0;
		width: calc(100% - 3em);
	}

}

#main.alt {
	background-color: transparent;
	border-bottom: solid 1px rgba(39, 39, 39, 0.1);
}

/* Contact */

#contact {
	border-bottom: solid 1px rgba(39, 39, 39, 0.1);
	overflow-x: hidden;
}

#contact>.inner {
	display: -moz-flex;
	display: -webkit-flex;
	display: -ms-flex;
	display: flex;
	padding: 0 !important;
}

#contact>.inner> :nth-child(2n - 1) {
	padding: 4em 3em 2em 0;
	border-right: solid 1px rgba(39, 39, 39, 0.1);
	width: 60%;
}

#contact>.inner> :nth-child(2n) {
	padding-left: 3em;
	width: 40%;
}

#contact>.inner>.split {
	padding: 0;
}

#contact>.inner>.split>* {
	padding: 3em 0 1em 3em;
	position: relative;
}

#contact>.inner>.split>*:before {
	border-top: solid 1px rgba(39, 39, 39, 0.1);
	content: '';
	display: block;
	margin-left: -3em;
	position: absolute;
	top: 0;
	width: calc(100vw + 3em);
}

#contact>.inner>.split> :first-child:before {
	display: none;
}

@media screen and (max-width: 980px) {

	#contact>.inner {
		display: block;
	}

	#contact>.inner> :nth-child(2n - 1) {
		padding: 4em 0 2em 0;
		border-right: 0;
		width: 100%;
	}

	#contact>.inner> :nth-child(2n) {
		padding-left: 0;
		width: 100%;
	}

	#contact>.inner>.split>* {
		padding: 3em 0 1em 0;
	}

	#contact>.inner>.split> :first-child:before {
		display: block;
	}

}

@media screen and (max-width: 736px) {

	#contact>.inner> :nth-child(2n - 1) {
		padding: 3em 0 1em 0;
	}

}

/* Footer Contact Details Grid */
.footer-contact-grid {
	display: -moz-flex;
	display: -webkit-flex;
	display: -ms-flex;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	margin-bottom: 2.5em;
	gap: 2.5em;
	border-bottom: solid 1px rgba(255, 255, 255, 0.05);
	padding-bottom: 2.5em;
	text-align: left;
}

.footer-contact-col {
	flex: 1;
	min-width: 220px;
}

.footer-contact-col.address-col {
	flex: 1.2;
	min-width: 260px;
}

.footer-contact-col h4 {
	color: #ffffff;
	margin-bottom: 0.8em;
	font-size: 0.9em;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	font-weight: 600;
}

.footer-contact-col h4 i {
	margin-right: 8px;
	color: #4294d1;
}

.footer-contact-col p {
	margin: 0;
	font-size: 0.95em;
	color: rgba(255, 255, 255, 0.6);
	line-height: 1.6;
}

.footer-contact-col p a.footer-email-link {
	color: rgba(255, 255, 255, 0.6);
	text-decoration: none;
	border-bottom: none;
	transition: color 0.2s ease;
}

.footer-contact-col p a.footer-email-link:hover {
	color: #4294d1 !important;
}

/* Footer */

#footer {
	background-color: #292929;
	color: rgba(255, 255, 255, 0.6);
}

#footer .copyright {
	font-size: 0.8em;
	list-style: none;
	padding-left: 0;
}

#footer .copyright li {
	border-left: solid 1px rgba(255, 255, 255, 0.15);
	color: rgba(255, 255, 255, 0.45);
	display: inline-block;
	line-height: 1;
	margin-left: 1em;
	padding-left: 1em;
}

#footer .copyright li a {
	color: rgba(255, 255, 255, 0.45);
	border-bottom-color: rgba(255, 255, 255, 0.15);
}

#footer .copyright li a:hover {
	color: #4294d1 !important;
	border-bottom-color: transparent !important;
}

#footer .copyright li:first-child {
	border-left: 0;
	margin-left: 0;
	padding-left: 0;
}

#footer .icons a.icon.alt:before {
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.25);
	color: #ffffff;
}

#footer .icons a.icon.alt:hover:before {
	background-color: #4294d1 !important;
	box-shadow: inset 0 0 0 1px #4294d1 !important;
	color: #ffffff !important;
}

#footer .footer-email-link:hover {
	color: #4294d1 !important;
}

@media screen and (max-width: 480px) {

	#footer .copyright li {
		display: block;
		border-left: 0;
		margin-left: 0;
		padding-left: 0;
		line-height: inherit;
	}

}

/* Wrapper */

#wrapper {
	-moz-transition: -moz-filter 0.35s ease, -webkit-filter 0.35s ease, opacity 0.375s ease-out;
	-webkit-transition: -webkit-filter 0.35s ease, -webkit-filter 0.35s ease, opacity 0.375s ease-out;
	-ms-transition: -ms-filter 0.35s ease, -webkit-filter 0.35s ease, opacity 0.375s ease-out;
	transition: filter 0.35s ease, -webkit-filter 0.35s ease, opacity 0.375s ease-out;
	padding-top: 3.25em;
}

#wrapper.is-transitioning {
	opacity: 0;
}

#wrapper>*>.inner {
	padding: 4em 0 2em 0;
	margin: 0 auto;
	max-width: 65em;
	width: calc(100% - 6em);
}

@media screen and (max-width: 736px) {

	#wrapper>*>.inner {
		padding: 3em 0 1em 0;
		width: calc(100% - 3em);
	}

}

@media screen and (max-width: 736px) {

	#wrapper {
		padding-top: 2.75em;
	}

}

/* Menu */

#menu {
	-moz-transition: -moz-transform 0.35s ease, opacity 0.35s ease, visibility 0.35s;
	-webkit-transition: -webkit-transform 0.35s ease, opacity 0.35s ease, visibility 0.35s;
	-ms-transition: -ms-transform 0.35s ease, opacity 0.35s ease, visibility 0.35s;
	transition: transform 0.35s ease, opacity 0.35s ease, visibility 0.35s;
	-moz-align-items: center;
	-webkit-align-items: center;
	-ms-align-items: center;
	align-items: center;
	display: -moz-flex;
	display: -webkit-flex;
	display: -ms-flex;
	display: flex;
	-moz-justify-content: center;
	-webkit-justify-content: center;
	-ms-justify-content: center;
	justify-content: center;
	pointer-events: none;
	background: rgba(39, 39, 39, 0.95);
	box-shadow: none;
	height: 100%;
	left: 0;
	opacity: 0;
	overflow: hidden;
	padding: 3em 2em;
	position: fixed;
	top: 0;
	visibility: hidden;
	width: 100%;
	z-index: 10002;
}

#menu .inner {
	-moz-transition: -moz-transform 0.35s ease-out, opacity 0.35s ease, visibility 0.35s;
	-webkit-transition: -webkit-transform 0.35s ease-out, opacity 0.35s ease, visibility 0.35s;
	-ms-transition: -ms-transform 0.35s ease-out, opacity 0.35s ease, visibility 0.35s;
	transition: transform 0.35s ease-out, opacity 0.35s ease, visibility 0.35s;
	-moz-transform: rotateX(20deg);
	-webkit-transform: rotateX(20deg);
	-ms-transform: rotateX(20deg);
	transform: rotateX(20deg);
	-webkit-overflow-scrolling: touch;
	max-width: 100%;
	max-height: 100vh;
	opacity: 0;
	overflow: auto;
	text-align: center;
	visibility: hidden;
	width: 18em;
}

#menu .inner> :first-child {
	margin-top: 2em;
}

#menu .inner> :last-child {
	margin-bottom: 3em;
}

#menu ul {
	margin: 0 0 1em 0;
}

#menu ul.links {
	list-style: none;
	padding: 0;
}

#menu ul.links>li {
	padding: 0;
	color: #ECECEC;
}

#menu ul.links>li>a:not(.button) {
	border: 0;
	border-top: solid 1px rgba(39, 39, 39, 0.1);
	display: block;
	font-size: 0.8em;
	font-weight: 600;
	letter-spacing: 0.25em;
	line-height: 4em;
	text-decoration: none;
	text-transform: uppercase;
}

#menu ul.links>li>.button {
	display: block;
	margin: 0.5em 0 0 0;
}

#menu ul.links>li:first-child>a:not(.button) {
	border-top: 0 !important;
}

#menu .close {
	-moz-transition: color 0.2s ease-in-out;
	-webkit-transition: color 0.2s ease-in-out;
	-ms-transition: color 0.2s ease-in-out;
	transition: color 0.2s ease-in-out;
	-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
	border: 0;
	cursor: pointer;
	display: block;
	height: 4em;
	line-height: 4em;
	overflow: hidden;
	padding-right: 1.25em;
	position: absolute;
	right: 0;
	text-align: right;
	text-indent: 8em;
	top: 0;
	vertical-align: middle;
	white-space: nowrap;
	width: 8em;
}

#menu .close:before,
#menu .close:after {
	-moz-transition: opacity 0.2s ease-in-out;
	-webkit-transition: opacity 0.2s ease-in-out;
	-ms-transition: opacity 0.2s ease-in-out;
	transition: opacity 0.2s ease-in-out;
	background-position: center;
	background-repeat: no-repeat;
	content: '';
	display: block;
	height: 4em;
	position: absolute;
	right: 0;
	top: 0;
	width: 4em;
}

#menu .close:before {
	background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='20px' height='20px' viewBox='0 0 20 20' zoomAndPan='disable'%3E%3Cstyle%3Eline %7B stroke: %23ffffff%3B stroke-width: 2%3B %7D%3C/style%3E%3Cline x1='0' y1='0' x2='20' y2='20' /%3E%3Cline x1='20' y1='0' x2='0' y2='20' /%3E%3C/svg%3E");
}

#menu .close:after {
	background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='20px' height='20px' viewBox='0 0 20 20' zoomAndPan='disable'%3E%3Cstyle%3Eline %7B stroke: %2300CCFF%3B stroke-width: 2%3B %7D%3C/style%3E%3Cline x1='0' y1='0' x2='20' y2='20' /%3E%3Cline x1='20' y1='0' x2='0' y2='20' /%3E%3C/svg%3E");
	opacity: 0;
}

#menu .close:hover:after,
#menu .close:active:after {
	opacity: 1;
}

body.is-ie #menu {
	background: rgba(39, 39, 39, 0.98);
}

body.is-menu-visible #wrapper {
	-moz-filter: blur(0.5em);
	-webkit-filter: blur(0.5em);
	-ms-filter: blur(0.5em);
	filter: blur(0.5em);
}

body.is-menu-visible #menu {
	pointer-events: auto;
	opacity: 1;
	visibility: visible;
}

body.is-menu-visible #menu .inner {
	-moz-transform: none;
	-webkit-transform: none;
	-ms-transform: none;
	transform: none;
	opacity: 1;
	visibility: visible;
}

/* Authentication Pages (Login & Signup) */

.auth-container {
	display: -moz-flex;
	display: -webkit-flex;
	display: -ms-flex;
	display: flex;
	-moz-justify-content: center;
	-webkit-justify-content: center;
	-ms-justify-content: center;
	justify-content: center;
	-moz-align-items: center;
	-webkit-align-items: center;
	-ms-align-items: center;
	align-items: center;
	min-height: 70vh;
	padding: 3em 1.5em;
}

.auth-card {
	background-color: rgba(255, 255, 255, 0.85);
	-moz-backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	-ms-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
	border: 1px solid rgba(0, 118, 255, 0.15);
	border-radius: 0.5em;
	box-shadow: 0 15px 35px 0 rgba(0, 118, 255, 0.08);
	padding: 2.5em;
	width: 100%;
	max-width: 450px;
	margin: 0 auto;
	-moz-transition: -moz-transform 0.3s ease, box-shadow 0.3s ease;
	-webkit-transition: -webkit-transform 0.3s ease, box-shadow 0.3s ease;
	-ms-transition: -ms-transform 0.3s ease, box-shadow 0.3s ease;
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.auth-card:hover {
	-moz-transform: translateY(-4px);
	-webkit-transform: translateY(-4px);
	-ms-transform: translateY(-4px);
	transform: translateY(-4px);
	box-shadow: 0 20px 40px 0 rgba(0, 0, 0, 0.4);
}

.auth-card h2 {
	text-align: center;
	margin: 0 0 1.5em 0;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	font-size: 1.75em;
	font-weight: 600;
	color: #4294d1;
}

.auth-card form .field {
	margin-bottom: 1.5em;
}

.auth-card form label {
	display: block;
	font-size: 0.8em;
	font-weight: 600;
	margin-bottom: 0.5em;
	letter-spacing: 0.15em;
	text-transform: uppercase;
}

.auth-card form input[type="submit"] {
	width: 100%;
	margin-top: 1em;
}

.auth-card .auth-switch {
	text-align: center;
	margin-top: 2em;
	font-size: 0.85em;
	color: rgba(39, 39, 39, 0.7);
}

.auth-card .auth-switch a {
	color: #4294d1;
	font-weight: 600;
	border-bottom: dotted 1px rgba(0, 118, 255, 0.5);
	-moz-transition: color 0.2s ease-in-out, border-bottom-color 0.2s ease-in-out;
	-webkit-transition: color 0.2s ease-in-out, border-bottom-color 0.2s ease-in-out;
	-ms-transition: color 0.2s ease-in-out, border-bottom-color 0.2s ease-in-out;
	transition: color 0.2s ease-in-out, border-bottom-color 0.2s ease-in-out;
}

.auth-card .auth-switch a:hover {
	color: #00CCFF !important;
	border-bottom-color: transparent;
}

/* Custom Banner Text & Button Overrides for light theme contrast */
#banner h1,
#banner h2,
#banner h3,
#banner h4,
#banner h5,
#banner h6,
#banner p,
#banner strong,
#banner .content p {
	color: #ffffff !important;
}

#banner .button {
	box-shadow: inset 0 0 0 2px #ffffff !important;
	color: #ffffff !important;
}

#banner .button:hover {
	box-shadow: inset 0 0 0 2px #00CCFF !important;
	color: #00CCFF !important;
}

#banner .button:active {
	box-shadow: inset 0 0 0 2px #76EFFF !important;
	color: #76EFFF !important;
}

#banner .button.primary {
	background-color: #4294d1 !important;
	color: #ffffff !important;
	box-shadow: none !important;
}

#banner .button.primary:hover {
	background-color: #00CCFF !important;
}

/* Course Syllabus Premium Component */
.course-syllabus {
	margin-top: 4em;
}

.course-syllabus .section-title {
	margin-bottom: 1.5em;
	border-bottom: solid 2px #4294d1;
	display: inline-block;
	padding-bottom: 0.25em;
}

.module-card {
	background: #ffffff;
	border: solid 1px rgba(39, 39, 39, 0.08);
	border-radius: 6px;
	box-shadow: 0 4px 15px rgba(0, 0, 0, 0.02);
	margin-bottom: 2em;
	overflow: hidden;
	transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.module-card:hover {
	transform: translateY(-2px);
	box-shadow: 0 8px 25px rgba(0, 118, 255, 0.06);
	border-color: rgba(0, 118, 255, 0.3);
}

.module-header {
	background: #292929;
	color: #ffffff;
	padding: 1.5em 2em;
	display: flex;
	align-items: center;
	gap: 1em;
}

.module-header h3 {
	color: #ffffff;
	margin: 0;
	font-size: 1.2em;
	font-weight: 600;
	letter-spacing: 0.05em;
}

.module-badge {
	background: #4294d1;
	color: #ffffff;
	padding: 0.2em 0.8em;
	font-size: 0.75em;
	font-weight: 700;
	text-transform: uppercase;
	border-radius: 4px;
	letter-spacing: 0.1em;
}

.module-body {
	padding: 2em;
}

.topic-item {
	margin-bottom: 2.5em;
	border-left: solid 3px #4294d1;
	padding-left: 1.5em;
}

.topic-item:last-child {
	margin-bottom: 0;
}

.topic-header {
	display: flex;
	align-items: center;
	gap: 0.75em;
	margin-bottom: 1em;
}

.topic-number {
	color: #4294d1;
	font-weight: 700;
	font-size: 1.1em;
}

.topic-header h4 {
	margin: 0;
	font-size: 1.1em;
	font-weight: 600;
	color: #292929;
}

.topic-list {
	list-style: none !important;
	padding-left: 0 !important;
	margin: 0 !important;
}

.topic-list li {
	position: relative;
	padding-left: 1.5em !important;
	margin-bottom: 0.75em !important;
	font-size: 0.9em;
	line-height: 1.6;
	color: #555555;
}

.topic-list li:last-child {
	margin-bottom: 0 !important;
}

.topic-list li:before {
	content: "•";
	color: #00CCFF;
	font-size: 1.5em;
	position: absolute;
	left: 0.25em;
	top: -0.1em;
}

/* Module Action Container & Button */
.module-action {
	margin-top: 2.5em;
	text-align: right;
}

.button-green {
	background-color: #10b981 !important;
	color: #ffffff !important;
	box-shadow: none !important;
	display: inline-block;
	font-size: 0.85em !important;
	font-weight: 700 !important;
	height: 3.2em !important;
	line-height: 3.2em !important;
	padding: 0 2em !important;
	text-align: center;
	text-decoration: none;
	text-transform: uppercase;
	white-space: nowrap;
	border-radius: 4px;
	letter-spacing: 0.1em;
	transition: background-color 0.2s ease-in-out, transform 0.1s ease !important;
}

.button-green:hover {
	background-color: #059669 !important;
	color: #ffffff !important;
}

/* Auth Error Message Alert with animations */
.auth-error {
	background-color: rgba(220, 53, 69, 0.1);
	border: 1px solid rgba(220, 53, 69, 0.25);
	color: #dc3545;
	padding: 0.8em;
	margin-bottom: 1.5em;
	border-radius: 0.25em;
	text-align: center;
	font-size: 0.85em;
	font-weight: 600;
	letter-spacing: 0.05em;
	opacity: 0;
	transform: translateY(-10px);
	transition: opacity 0.5s cubic-bezier(0.4, 0, 0.2, 1),
		transform 0.5s cubic-bezier(0.4, 0, 0.2, 1),
		margin-bottom 0.5s cubic-bezier(0.4, 0, 0.2, 1),
		padding 0.5s cubic-bezier(0.4, 0, 0.2, 1),
		max-height 0.5s cubic-bezier(0.4, 0, 0.2, 1);
	max-height: 100px;
	overflow: hidden;
}

.auth-error.visible {
	opacity: 1;
	transform: translateY(0);
}

.auth-error.fade-out {
	opacity: 0;
	transform: translateY(-10px);
	margin-bottom: 0 !important;
	padding-top: 0 !important;
	padding-bottom: 0 !important;
	max-height: 0 !important;
	border-color: transparent !important;
}

/* Auth Success Message Alert with animations */
.auth-success {
	background-color: rgba(40, 167, 69, 0.1);
	border: 1px solid rgba(40, 167, 69, 0.25);
	color: #28a745;
	padding: 0.8em;
	margin-bottom: 1.5em;
	border-radius: 0.25em;
	text-align: center;
	font-size: 0.85em;
	font-weight: 600;
	letter-spacing: 0.05em;
	opacity: 0;
	transform: translateY(-10px);
	transition: opacity 0.5s cubic-bezier(0.4, 0, 0.2, 1),
		transform 0.5s cubic-bezier(0.4, 0, 0.2, 1),
		margin-bottom 0.5s cubic-bezier(0.4, 0, 0.2, 1),
		padding 0.5s cubic-bezier(0.4, 0, 0.2, 1),
		max-height 0.5s cubic-bezier(0.4, 0, 0.2, 1);
	max-height: 100px;
	overflow: hidden;
}

.auth-success.visible {
	opacity: 1;
	transform: translateY(0);
}

.auth-success.fade-out {
	opacity: 0;
	transform: translateY(-10px);
	margin-bottom: 0 !important;
	padding-top: 0 !important;
	padding-bottom: 0 !important;
	max-height: 0 !important;
	border-color: transparent !important;
}

/* Font Awesome Solid compatibility overrides (mapping v6 tags to v5 webfonts) */
.fa-solid {
	-moz-osx-font-smoothing: grayscale;
	-webkit-font-smoothing: antialiased;
	display: inline-block;
	font-style: normal;
	font-variant: normal;
	text-rendering: auto;
	line-height: 1;
	font-family: "Font Awesome 5 Free";
	font-weight: 900;
}

.fa-circle-check:before {
	content: "\f058";
	/* check-circle code */
}

.fa-shield-halved:before {
	content: "\f3ed";
	/* shield-alt code */
}

/* Unified Admin Panel Styles */
.admin-nav {
	display: flex;
	gap: 0.75em;
	margin-bottom: 2.5em;
	flex-wrap: wrap;
	border-bottom: 2px solid rgba(39, 39, 39, 0.08);
	padding-bottom: 1em;
}

.admin-nav .button {
	font-size: 0.8em !important;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	padding: 0 1.5em !important;
	height: 3.2em !important;
	line-height: 3.2em !important;
}

.admin-form-card {
	background: #fcfcfc;
	border: 1px solid rgba(39, 39, 39, 0.08);
	border-radius: 6px;
	padding: 2em;
	margin-bottom: 2em;
}

.admin-form-card h3 {
	margin-top: 0;
	margin-bottom: 1em;
	font-weight: 600;
	border-bottom: 1px solid rgba(39, 39, 39, 0.05);
	padding-bottom: 0.5em;
}

.action-btn.edit {
	background-color: #3b82f6 !important;
	color: #ffffff !important;
	box-shadow: none !important;
}

.action-btn.edit:hover {
	background-color: #2563eb !important;
}

.action-btn.manage {
	background-color: #8b5cf6 !important;
	color: #ffffff !important;
	box-shadow: none !important;
}

.action-btn.manage:hover {
	background-color: #7c3aed !important;
}

.delete-icon-btn {
	background: transparent !important;
	color: #ef4444 !important;
	border: none !important;
	padding: 0 0.5em !important;
	box-shadow: none !important;
	cursor: pointer;
	font-size: 1.1em;
}

.delete-icon-btn:hover {
	color: #dc2626 !important;
}

.self-account-badge {
	font-size: 0.75em;
	background: rgba(39, 39, 39, 0.05);
	color: #777;
	padding: 0.2em 0.8em;
	border-radius: 10px;
	font-weight: 600;
}

.alert-success,
.alert-error {
	padding: 1em;
	border-radius: 4px;
	margin-bottom: 1.5em;
	font-weight: 600;
	font-size: 0.9em;
	text-align: center;
}

.alert-success {
	background-color: rgba(40, 167, 69, 0.1);
	border: 1px solid rgba(40, 167, 69, 0.2);
	color: #28a745;
}

.alert-error {
	background-color: rgba(220, 53, 69, 0.1);
	border: 1px solid rgba(220, 53, 69, 0.2);
	color: #dc3545;
}

.select-wrapper select {
	background-color: #ffffff !important;
	border-color: rgba(39, 39, 39, 0.15) !important;
	color: #292929 !important;
}

.no-data {
	text-align: center;
	padding: 2em;
	color: #888;
	font-style: italic;
}

/* Administrative layout helper utilities to replace inline styles */
.admin-actions-cell {
	display: flex;
	gap: 0.5em;
	align-items: center;
}

.admin-delete-form {
	margin: 0 !important;
}

.admin-field-spacing {
	margin-bottom: 2em !important;
}

.admin-recommended-box {
	background: rgba(39, 39, 39, 0.02);
	padding: 1.5em;
	border-radius: 6px;
	border: 1px solid rgba(39, 39, 39, 0.05);
}

/* Quick Edit Admin Icon Links */
.admin-quick-edit-link {
	color: #3b82f6 !important;
	opacity: 0.65;
	transition: all 0.2s ease;
	display: inline-block;
	margin-left: 10px;
	border-bottom: none !important;
	vertical-align: middle;
	font-size: 0.75em;
}

.admin-quick-edit-link:hover {
	opacity: 1;
	color: #2563eb !important;
	transform: scale(1.15);
}

/* Tooltip Icon & Bubble Styling */
.tooltip-icon {
	position: relative;
	display: inline-block;
	cursor: help;
	margin-left: 6px;
	color: #3b82f6;
	font-size: 0.95em;
	vertical-align: middle;
}

.tooltip-icon::before {
	content: attr(data-tooltip);
	position: absolute;
	bottom: 130%;
	left: 50%;
	transform: translateX(-50%);
	background-color: #1f2937;
	color: #ffffff;
	text-align: center;
	padding: 0.6em 1em;
	border-radius: 4px;
	width: 260px;
	font-size: 0.85em;
	font-weight: 500;
	line-height: 1.4;
	text-transform: none !important;
	z-index: 999;
	opacity: 0;
	transition: opacity 0.2s ease, visibility 0.2s ease;
	visibility: hidden;
	pointer-events: none;
	box-shadow: 0 4px 10px rgba(0, 0, 0, 0.25);
	border: 1px solid rgba(255, 255, 255, 0.1);
}

.tooltip-icon:hover::before {
	opacity: 1;
	visibility: visible;
}



/* Quill Editor Premium Styles */
.quill-editor-container {
	min-height: 250px;
	height: auto !important;
	background: #ffffff !important;
	color: #292929 !important;
	margin-bottom: 1.5em;
}

.quill-editor-container .ql-editor {
	min-height: 200px;
	height: auto;
	overflow-y: visible;
}

.ql-toolbar {
	background: #f3f4f6 !important;
	border-color: rgba(39, 39, 39, 0.15) !important;
	border-top-left-radius: 4px;
	border-top-right-radius: 4px;
}

.ql-container {
	border-bottom-left-radius: 4px;
	border-bottom-right-radius: 4px;
	border-color: rgba(39, 39, 39, 0.15) !important;
	font-family: inherit !important;
	font-size: 0.9em !important;
}

/* Admin Dashboard Cockpit Styling - Course Cards Consistency Theme */
.dashboard-container {
	display: -moz-flex;
	display: -webkit-flex;
	display: -ms-flex;
	display: flex;
	-moz-justify-content: center;
	-webkit-justify-content: center;
	-ms-justify-content: center;
	justify-content: center;
	-moz-align-items: flex-start;
	-webkit-align-items: flex-start;
	-ms-align-items: flex-start;
	align-items: flex-start;
	min-height: 80vh;
	padding: 3em 1.5em;
}

.dashboard-card {
	background: #ffffff;
	border: solid 1px rgba(39, 39, 39, 0.08);
	border-radius: 6px;
	box-shadow: 0 4px 15px rgba(0, 0, 0, 0.02);
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
	overflow: hidden;
	transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.dashboard-card:hover {
	transform: translateY(-2px);
	box-shadow: 0 8px 25px rgba(0, 118, 255, 0.06);
	border-color: rgba(0, 118, 255, 0.3);
}

.dashboard-header {
	background: #292929;
	color: #ffffff;
	padding: 1.5em 2em;
	display: flex;
	align-items: center;
	gap: 1em;
}

.dashboard-header h2 {
	color: #ffffff !important;
	margin: 0 !important;
	font-size: 1.2em !important;
	font-weight: 600 !important;
	letter-spacing: 0.05em !important;
	text-transform: uppercase;
}

.dashboard-header header.major {
	margin-bottom: 0;
}

.dashboard-body {
	padding: 2em;
	background: #ffffff;
}

/* Stats Widget Layout */
.stats-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 1.25em;
	margin-bottom: 2.5em;
	width: 100%;
}

.stat-card {
	background: #ffffff;
	border: solid 1px rgba(39, 39, 39, 0.08);
	border-radius: 6px;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.02);
	padding: 1.25em;
	display: flex;
	align-items: center;
	gap: 1em;
	transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

.stat-card:hover {
	transform: translateY(-2px);
	border-color: rgba(0, 118, 255, 0.3);
	box-shadow: 0 4px 15px rgba(0, 118, 255, 0.05);
}

.stat-icon {
	font-size: 1.4em;
	width: 45px;
	height: 45px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	border: 1px solid rgba(0, 118, 255, 0.15);
	transition: transform 0.2s ease;
}

.stat-card:hover .stat-icon {
	transform: scale(1.05);
}

.stat-card.total .stat-icon {
	background: rgba(0, 118, 255, 0.05);
	color: #4294d1;
	border-color: rgba(0, 118, 255, 0.2);
}

.stat-card.verified .stat-icon {
	background: rgba(16, 185, 129, 0.05);
	color: #10B981;
	border-color: rgba(16, 185, 129, 0.2);
}

.stat-card.pending .stat-icon {
	background: rgba(245, 158, 11, 0.05);
	color: #F59E0B;
	border-color: rgba(245, 158, 11, 0.2);
}

.stat-card.admin .stat-icon {
	background: rgba(139, 92, 246, 0.05);
	color: #8B5CF6;
	border-color: rgba(139, 92, 246, 0.2);
}

.stat-info {
	display: flex;
	flex-direction: column;
}

.stat-value {
	font-size: 1.6em;
	font-weight: 700;
	color: #292929 !important;
	line-height: 1.1;
}

.stat-label {
	font-size: 0.75em;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: #777777 !important;
}

/* Enable horizontal scrolling for wide tables on responsive screens */
.dashboard-card .table-wrapper {
	overflow-x: auto;
}

/* Table adjustments for card content contrast */
.dashboard-card table {
	width: 100%;
	margin: 0 0 1.5em 0;
	border-collapse: collapse;
}

.dashboard-card table tbody tr {
	background-color: transparent !important;
	border-bottom: solid 1px rgba(39, 39, 39, 0.06);
	-moz-transition: background-color 0.2s ease;
	-webkit-transition: background-color 0.2s ease;
	-ms-transition: background-color 0.2s ease;
	transition: background-color 0.2s ease;
}

.dashboard-card table tbody tr:hover {
	background-color: rgba(0, 118, 255, 0.02) !important;
}

.dashboard-card table th {
	color: #292929 !important;
	font-weight: 600;
	font-size: 0.85em;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	border-bottom: solid 2px rgba(39, 39, 39, 0.1) !important;
	padding: 0.75em 1em;
	text-align: center;
}

.dashboard-card table td {
	color: #555555 !important;
	padding: 0.85em 0.6em;
	vertical-align: middle;
}

.dashboard-card table code {
	background: rgba(0, 118, 255, 0.03);
	color: #4294d1;
	border: 1px solid rgba(0, 118, 255, 0.1);
	border-radius: 4px;
	padding: 0.2em 0.4em;
	font-size: 0.85em;
	font-family: monospace;
}

.status-badge {
	display: inline-block;
	padding: 0.25em 0.65em;
	font-size: 0.75em;
	font-weight: 600;
	border-radius: 12px;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	text-align: center;
	border: 1px solid transparent;
}

.status-badge.unverified {
	background-color: rgba(239, 68, 68, 0.05);
	color: #dc3545;
	border-color: rgba(239, 68, 68, 0.2);
}

.status-badge.verified {
	background-color: rgba(16, 185, 129, 0.05);
	color: #10b981;
	border-color: rgba(16, 185, 129, 0.2);
}

.status-badge.admin {
	background-color: rgba(139, 92, 246, 0.05);
	color: #8b5cf6;
	border-color: rgba(139, 92, 246, 0.2);
}

.self-account-badge {
	display: inline-block;
	padding: 0.25em 0.65em;
	font-size: 0.75em;
	font-weight: 600;
	border-radius: 12px;
	background-color: rgba(39, 39, 39, 0.05);
	color: #292929;
	border: 1px dashed rgba(39, 39, 39, 0.2);
	letter-spacing: 0.05em;
	text-transform: uppercase;
	text-align: center;
}

/* Action wrapper cell spacing layout */
.actions-cell {
	min-width: 170px;
}

.actions-header {
	text-align: center !important;
}

.actions-wrapper {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4em;
	align-items: center;
	justify-content: center;
	width: 100%;
}

.actions-wrapper .delete-user-form {
	margin-left: auto !important;
	margin-right: 0 !important;
	margin-bottom: 0 !important;
}

.action-btn {
	margin: 0 !important;
	font-size: 0.7em !important;
	font-weight: 600 !important;
	height: 2.4em !important;
	line-height: 2.4em !important;
	padding: 0 1em !important;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	border-radius: 4px;
	border: 1px solid currentColor !important;
	background: transparent !important;
	box-shadow: none !important;
	cursor: pointer;
	-moz-transition: background-color 0.2s, color 0.2s, border-color 0.2s, -moz-transform 0.1s !important;
	-webkit-transition: background-color 0.2s, color 0.2s, border-color 0.2s, -webkit-transform 0.1s !important;
	-ms-transition: background-color 0.2s, color 0.2s, border-color 0.2s, -ms-transform 0.1s !important;
	transition: background-color 0.2s, color 0.2s, border-color 0.2s, transform 0.1s !important;
}

.action-btn:hover {
	-moz-transform: translateY(-1px);
	-webkit-transform: translateY(-1px);
	-ms-transform: translateY(-1px);
	transform: translateY(-1px);
}

.action-btn:active {
	-moz-transform: translateY(0) scale(0.97);
	-webkit-transform: translateY(0) scale(0.97);
	-ms-transform: translateY(0) scale(0.97);
	transform: translateY(0) scale(0.97);
}

.action-btn.verify {
	color: #10B981 !important;
}

.action-btn.verify:hover {
	background: #10B981 !important;
	color: #ffffff !important;
}

.action-btn.unverify {
	color: #d97706 !important;
}

.action-btn.unverify:hover {
	background: #d97706 !important;
	color: #ffffff !important;
}

.action-btn.admin-btn {
	color: #8B5CF6 !important;
}

.action-btn.admin-btn:hover {
	background: #8B5CF6 !important;
	color: #ffffff !important;
}

.action-btn.demote-btn {
	color: #4b5563 !important;
}

.action-btn.demote-btn:hover {
	background: #4b5563 !important;
	color: #ffffff !important;
}

.action-btn.delete {
	color: #EF4444 !important;
}

.action-btn.delete:hover {
	background: #EF4444 !important;
	color: #ffffff !important;
}

.action-form {
	display: inline-block;
	margin: 0 !important;
	padding: 0 !important;
}

/* Status Alert Message with smooth transitions */
#status-message {
	display: none;
	margin-bottom: 2em;
	border-radius: 4px;
	font-size: 0.85em;
	font-weight: 600;
	padding: 1em;
	text-align: center;
	opacity: 0;
	-moz-transform: translateY(-5px);
	-webkit-transform: translateY(-5px);
	-ms-transform: translateY(-5px);
	transform: translateY(-5px);
	-moz-transition: opacity 0.3s ease, -moz-transform 0.3s ease, margin 0.3s ease, padding 0.3s ease, max-height 0.3s ease;
	-webkit-transition: opacity 0.3s ease, -webkit-transform 0.3s ease, margin 0.3s ease, padding 0.3s ease, max-height 0.3s ease;
	-ms-transition: opacity 0.3s ease, -ms-transform 0.3s ease, margin 0.3s ease, padding 0.3s ease, max-height 0.3s ease;
	transition: opacity 0.3s ease, transform 0.3s ease, margin 0.3s ease, padding 0.3s ease, max-height 0.3s ease;
	max-height: 80px;
	overflow: hidden;
	border-width: 1px;
	border-style: solid;
}

#status-message.visible {
	opacity: 1;
	-moz-transform: translateY(0);
	-webkit-transform: translateY(0);
	-ms-transform: translateY(0);
	transform: translateY(0);
}

#status-message.fade-out {
	opacity: 0;
	-moz-transform: translateY(-5px);
	-webkit-transform: translateY(-5px);
	-ms-transform: translateY(-5px);
	transform: translateY(-5px);
	margin: 0 !important;
	padding-top: 0 !important;
	padding-bottom: 0 !important;
	max-height: 0 !important;
	border-color: transparent !important;
}

.alert-success {
	background-color: rgba(16, 185, 129, 0.05) !important;
	border-color: rgba(16, 185, 129, 0.2) !important;
	color: #10b981 !important;
}

.alert-error {
	background-color: rgba(239, 68, 68, 0.05) !important;
	border-color: rgba(239, 68, 68, 0.2) !important;
	color: #dc3545 !important;
}

/* Dashboard Toolbar styling */
.dashboard-toolbar {
	background: #fdfdfd;
	border: solid 1px rgba(39, 39, 39, 0.08);
	border-radius: 6px;
	padding: 1em 1.5em;
	margin-bottom: 2em;
	display: flex;
	justify-content: space-between;
	align-items: center;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.02);
}

.toolbar-stats {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	gap: 1.25em;
	font-size: 0.85em;
	color: #555555;
}

.toolbar-stats span {
	display: flex;
	align-items: center;
	gap: 0.5em;
}

.toolbar-stats .separator {
	color: rgba(39, 39, 39, 0.2);
	margin: 0 0.25em;
}

.toolbar-stats i {
	font-size: 1.1em;
}

.toolbar-stats strong {
	color: #292929;
}

/* User Profile Flex Column */
.user-profile-flex {
	display: flex;
	align-items: center;
	gap: 0.85em;
	text-align: left;
}

.user-avatar-circle {
	width: 38px;
	height: 38px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #ffffff;
	font-weight: 600;
	font-size: 0.85em;
	letter-spacing: 0.05em;
	flex-shrink: 0;
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.1);
}

.user-info-text {
	display: flex;
	flex-direction: column;
	line-height: 1.25;
}

.user-name {
	font-weight: 600;
	color: #292929;
	font-size: 0.95em;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	max-width: 180px;
}

.user-email {
	color: #888888;
	font-size: 0.8em;
	font-weight: 300;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	max-width: 180px;
}

/* Role Badges */
.role-badge {
	display: inline-flex;
	align-items: center;
	gap: 0.4em;
	padding: 0.25em 0.75em;
	font-size: 0.75em;
	font-weight: 600;
	border-radius: 12px;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	border: 1px solid transparent;
}

.role-badge.admin {
	background-color: rgba(59, 130, 246, 0.08);
	color: #3b82f6;
	border-color: rgba(59, 130, 246, 0.15);
}

.role-badge.student {
	background-color: rgba(107, 114, 128, 0.08);
	color: #6b7280;
	border-color: rgba(107, 114, 128, 0.15);
}

/* Status Dots */
.status-dot-wrapper {
	display: inline-flex;
	align-items: center;
	gap: 0.5em;
}

.status-dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	display: inline-block;
}

.status-dot.active {
	background-color: #10b981;
	box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.2);
}

.status-dot.pending {
	background-color: #f59e0b;
	box-shadow: 0 0 0 3px rgba(245, 158, 11, 0.2);
}

.status-text {
	font-size: 0.85em;
	font-weight: 500;
}

.status-text.active {
	color: #10b981;
}

.status-text.pending {
	color: #d97706;
}

/* Slider Switch Toggle */
.switch-toggle {
	position: relative;
	display: inline-block;
	width: 42px;
	height: 24px;
	margin: 0;
	vertical-align: middle;
	cursor: pointer;
}

.switch-toggle input {
	opacity: 0;
	width: 0;
	height: 0;
}

.switch-slider {
	position: absolute;
	cursor: pointer;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background-color: #e5e7eb;
	-webkit-transition: .2s;
	transition: .2s;
	border-radius: 24px;
}

.switch-slider:before {
	position: absolute;
	content: "";
	height: 18px;
	width: 18px;
	left: 3px;
	bottom: 3px;
	background-color: white;
	-webkit-transition: .2s;
	transition: .2s;
	border-radius: 50%;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}

.switch-toggle input:checked+.switch-slider {
	background-color: #3b82f6;
}

.switch-toggle input:focus+.switch-slider {
	box-shadow: 0 0 1px #3b82f6;
}

.switch-toggle input:checked+.switch-slider:before {
	-webkit-transform: translateX(18px);
	-ms-transform: translateX(18px);
	transform: translateX(18px);
}

.switch-toggle.disabled {
	cursor: not-allowed;
	opacity: 0.6;
}

/* Delete icon button (minimalist red outline icon) */
.delete-icon-btn {
	background: transparent;
	border: 1px solid rgba(239, 68, 68, 0.2);
	color: #ef4444;
	width: 32px;
	height: 32px;
	border-radius: 6px;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	padding: 0;
	transition: all 0.2s ease;
	box-shadow: none;
	margin: 0;
}

.delete-icon-btn:hover {
	background: #ef4444;
	color: #ffffff;
	border-color: #ef4444;
	transform: translateY(-1px);
}

.delete-icon-btn:active {
	transform: translateY(0) scale(0.95);
}

.delete-icon-btn i {
	font-size: 0.95em;
}

/* Edit devices button (minimalist blue outline icon) */
.edit-devices-btn {
	background: transparent;
	border: 1px solid rgba(0, 118, 255, 0.2);
	color: #4294d1;
	width: 32px;
	height: 32px;
	border-radius: 6px;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	padding: 0;
	transition: all 0.2s ease;
	box-shadow: none;
	margin: 0;
}

.edit-devices-btn:hover {
	background: #4294d1;
	color: #ffffff;
	border-color: #4294d1;
	transform: translateY(-1px);
}

.edit-devices-btn:active {
	transform: translateY(0) scale(0.95);
}

.edit-devices-btn i {
	font-size: 0.85em;
}

/* Centrado de la columna de equipos adquiridos */
td[data-label="Equipos"] {
	text-align: center;
}

td[data-label="Equipos"] .user-devices-container {
	justify-content: center;
}

td[data-label="Equipos"] .devices-badges {
	justify-content: center;
}

/* Font Awesome v6 compatibility maps for Font Awesome v5 */
.fa-solid {
	font-weight: 900;
	font-family: "Font Awesome 5 Free";
}

.fa-circle-check::before {
	content: "\f058";
	/* check-circle */
}

.fa-hourglass-half::before {
	content: "\f252";
	/* hourglass-half */
}

.fa-shield-halved::before {
	content: "\f3ed";
	/* shield-alt */
}

.fa-trash-can::before {
	content: "\f2ed";
	/* trash-alt */
}

.fa-location-dot::before {
	content: "\f3c5";
	/* map-marker-alt */
}

.no-serial {
	color: rgba(39, 39, 39, 0.3);
}

/* 100% Mobile responsiveness overrides */
@media screen and (max-width: 768px) {
	.dashboard-container {
		padding: 2em 1em;
	}

	.dashboard-card {
		padding: 0;
	}

	.dashboard-header {
		padding: 1.25em 1.5em;
	}

	.dashboard-header h2 {
		font-size: 1.1em !important;
	}

	.dashboard-body {
		padding: 1.25em;
	}

	.stats-grid {
		grid-template-columns: 1fr;
		gap: 1em;
		margin-bottom: 2em;
	}

	.stat-card {
		padding: 1em;
	}

	.dashboard-card table,
	.dashboard-card thead,
	.dashboard-card tbody,
	.dashboard-card th,
	.dashboard-card td,
	.dashboard-card tr {
		display: block;
		width: 100%;
	}

	.dashboard-card thead {
		display: none;
	}

	.dashboard-card tbody tr {
		border: 1px solid rgba(39, 39, 39, 0.08);
		border-radius: 8px;
		padding: 1em;
		margin-bottom: 1.25em;
		background: rgba(0, 0, 0, 0.005);
	}

	.dashboard-card table td {
		display: flex;
		justify-content: space-between;
		align-items: center;
		padding: 0.6em 0;
		border-bottom: 1px solid rgba(39, 39, 39, 0.04);
		color: #555555 !important;
		text-align: right;
	}

	.dashboard-card table td:last-child {
		border-bottom: none;
		flex-direction: column;
		align-items: flex-start;
		gap: 0.6em;
		padding-top: 0.8em;
	}

	.dashboard-card table td::before {
		content: attr(data-label);
		font-weight: 700;
		text-transform: uppercase;
		font-size: 0.7em;
		color: #777777;
		letter-spacing: 0.05em;
		text-align: left;
	}

	.actions-wrapper {
		width: 100%;
		justify-content: flex-start;
		flex-wrap: wrap;
	}
}

/* SweetAlert container z-index override to sit on top of Forty menu */
.swal2-container {
	z-index: 999999 !important;
}

/* SweetAlert button styling overrides for consistency with Forty theme */
.swal2-actions .button {
	margin: 0 0.5em !important;
	text-align: center !important;
	display: inline-flex !important;
	justify-content: center !important;
	align-items: center !important;
	text-decoration: none !important;
	border-bottom: none !important;
}

.button.primary.danger {
	background-color: #ef4444 !important;
	box-shadow: none !important;
	border-color: #ef4444 !important;
	color: #ffffff !important;
}

.button.primary.danger:hover {
	background-color: #dc2626 !important;
	border-color: #dc2626 !important;
	color: #ffffff !important;
}

/* ==========================================================================
   E-Learning Course Progression & Module Locking Styles
   ========================================================================== */

/* Locked module container */
.module-card.locked {
	opacity: 0.55;
	border: 1px solid rgba(255, 255, 255, 0.05);
	background-color: rgba(255, 255, 255, 0.01) !important;
	box-shadow: none !important;
	transition: opacity 0.3s ease;
}

.module-card.locked .module-header h3 {
	color: #8a99ad !important;
}

.module-card.locked .module-badge {
	background-color: #3f4e60 !important;
	color: #8a99ad !important;
}

.module-card.locked .topic-item {
	color: #8a99ad;
}

.module-card.locked .button-green,
.module-card.locked .button {
	background-color: #3f4e60 !important;
	border-color: #3f4e60 !important;
	color: #8a99ad !important;
	cursor: not-allowed;
	pointer-events: none;
}

/* Progress Bar Styles */
.course-progress-wrapper {
	margin-bottom: 2.5em;
}

.progress-container {
	margin-top: 0.5em;
	background-color: rgba(255, 255, 255, 0.08);
	border-radius: 4px;
	overflow: hidden;
	display: flex;
	align-items: center;
	height: 26px;
	position: relative;
	border: 1px solid rgba(255, 255, 255, 0.1);
}

.progress-bar {
	height: 100%;
	background: linear-gradient(90deg, #10b981 0%, #059669 100%);
	transition: width 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}

.progress-text {
	position: absolute;
	width: 100%;
	text-align: center;
	font-size: 0.85em;
	font-weight: 700;
	color: #ffffff;
	line-height: 24px;
	text-shadow: 0 1px 2px rgba(0, 0, 0, 0.7);
	letter-spacing: 0.05em;
}

/* Lesson status elements */
.topic-header {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 10px;
}

.lesson-status {
	display: inline-flex;
	align-items: center;
	margin-left: auto;
}

.lesson-status-completed {
	color: #10b981;
	font-size: 0.85em;
	font-weight: 700;
	background-color: rgba(16, 185, 129, 0.1);
	padding: 0.2em 0.8em;
	border-radius: 20px;
	border: 1px solid rgba(16, 185, 129, 0.2);
}

.lesson-status-completed i {
	margin-right: 4px;
}

.button-complete-lesson {
	background-color: transparent !important;
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.15) !important;
	color: #ffffff !important;
	font-size: 0.7em !important;
	height: 2.4em !important;
	line-height: 2.4em !important;
	padding: 0 1em !important;
	border-radius: 4px;
	transition: all 0.2s ease;
}

.button-complete-lesson:hover {
	background-color: #10b981 !important;
	box-shadow: inset 0 0 0 1px #10b981 !important;
	color: #ffffff !important;
}

/* Responsive adjustments for Module Progress in Card Headers */
@media screen and (max-width: 736px) {
	.module-header {
		flex-direction: column;
		align-items: flex-start !important;
		gap: 0.8em !important;
		padding: 1.2em 1.5em !important;
	}

	.module-progress-header {
		margin-left: 0 !important;
		margin-top: 0.5em;
		width: 100%;
		justify-content: space-between;
		border-top: 1px solid rgba(255, 255, 255, 0.05);
		padding-top: 0.8em;
	}
}

/* ==========================================================================
   Course Viewer (leccion.php) Layout Styles
   ========================================================================== */

.course-viewer-container {
	display: grid;
	grid-template-columns: 340px 1fr;
	min-height: calc(100vh - 4em);
	background-color: #ECECEC;
}

/* Sidebar navigation */
.course-sidebar {
	background-color: #ffffff;
	border-right: 1px solid rgba(0, 0, 0, 0.08);
	display: flex;
	flex-direction: column;
	max-height: calc(100vh - 4em);
	position: sticky;
	top: 4em;
	overflow-y: auto;
}

.sidebar-header {
	padding: 1.5em;
	border-bottom: 1px solid rgba(0, 0, 0, 0.08);
	background: #fcfcfc;
}

.sidebar-header h3 {
	margin: 0 0 0.5em 0;
	font-size: 1.1em;
	font-weight: 700;
	color: #292929;
}

.sidebar-progress {
	height: 14px;
	background-color: rgba(0, 0, 0, 0.05);
	border-radius: 7px;
	overflow: hidden;
	position: relative;
	border: 1px solid rgba(0, 0, 0, 0.03);
}

.progress-bar-fill-sidebar {
	display: block;
	height: 100%;
	background: linear-gradient(90deg, #10b981 0%, #059669 100%);
}

.progress-pct-text {
	position: absolute;
	width: 100%;
	text-align: center;
	font-size: 0.65em;
	font-weight: 700;
	color: #ffffff;
	line-height: 12px;
	text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
}

.sidebar-nav {
	padding: 1em 0;
}

.sidebar-module {
	margin-bottom: 1.5em;
}

.sidebar-module.locked {
	opacity: 0.6;
}

.sidebar-module-title {
	padding: 0.5em 1.5em;
	font-size: 0.75em;
	font-weight: 700;
	text-transform: uppercase;
	color: #475569;
	letter-spacing: 0.05em;
	border-bottom: 1px solid rgba(0, 0, 0, 0.04);
	margin-bottom: 0.5em;
}

.sidebar-lesson-list {
	list-style: none;
	padding: 0;
	margin: 0;
}

.sidebar-lesson-list li {
	padding: 0;
}

.sidebar-lesson-list li a,
.sidebar-lesson-list li .sidebar-lesson-locked {
	display: flex;
	align-items: flex-start;
	padding: 0.8em 1.5em;
	color: #475569;
	text-decoration: none;
	font-size: 0.85em;
	transition: all 0.2s ease;
	border-left: 3px solid transparent;
}

.sidebar-lesson-list li a:hover {
	background-color: rgba(0, 0, 0, 0.03);
	color: #000000;
	border-left-color: rgba(0, 0, 0, 0.1);
}

.sidebar-lesson-list li.active a {
	background-color: rgba(0, 118, 255, 0.08);
	color: #4294d1;
	font-weight: 600;
	border-left-color: #4294d1;
}

.sidebar-lesson-list li.completed a {
	color: #059669;
}

.sidebar-lesson-list li.completed.active a {
	color: #4294d1;
}

.lesson-icon {
	margin-right: 10px;
	font-size: 0.9em;
	display: inline-flex;
	align-items: center;
	height: 1.4em;
}

.lesson-icon i.fa-check-circle {
	color: #10b981;
}

.lesson-locked {
	display: flex;
	align-items: center;
	padding: 0.8em 1.5em;
	color: #94a3b8;
	font-size: 0.85em;
	cursor: not-allowed;
}

/* Main Content Area */
.course-content-area {
	padding: 2.5em 3.5em;
	overflow-y: auto;
	display: flex;
	flex-direction: column;
	gap: 2em;
	background-color: #ECECEC;
}

.content-toolbar {
	display: flex;
	justify-content: space-between;
	align-items: center;
	border-bottom: 1px solid rgba(0, 0, 0, 0.08);
	padding-bottom: 1em;
}

.module-title-badge {
	font-size: 0.8em;
	font-weight: 700;
	text-transform: uppercase;
	color: #475569;
	background-color: rgba(0, 0, 0, 0.04);
	padding: 0.3em 1em;
	border-radius: 4px;
	letter-spacing: 0.05em;
}

.lesson-body-wrapper {
	max-width: 900px;
	width: 100%;
	margin: 0 auto;
}

.lesson-header h1 {
	font-size: 2.2em;
	font-weight: 700;
	margin-bottom: 1em;
	line-height: 1.2;
	color: #292929;
}

/* Video placeholder aspect ratio 16:9 - Kept dark for focus */
.lesson-video-placeholder {
	position: relative;
	width: 100%;
	padding-top: 56.25%;
	/* 16:9 Aspect Ratio */
	background-color: #141414;
	border-radius: 6px;
	overflow: hidden;
	margin-bottom: 2em;
	border: 1px solid rgba(0, 0, 0, 0.1);
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15);
}

.video-overlay {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	background: radial-gradient(circle, rgba(0, 0, 0, 0.4) 0%, rgba(0, 0, 0, 0.85) 100%);
	cursor: pointer;
	transition: background 0.3s ease;
}

.video-overlay:hover {
	background: radial-gradient(circle, rgba(0, 0, 0, 0.3) 0%, rgba(0, 0, 0, 0.8) 100%);
}

.play-icon {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 80px;
	height: 80px;
	background-color: rgba(0, 118, 255, 0.95);
	color: #ffffff;
	font-size: 2em;
	border-radius: 50%;
	margin-bottom: 15px;
	box-shadow: 0 0 20px rgba(0, 118, 255, 0.4);
	transition: transform 0.2s ease, background-color 0.2s ease;
}

.video-overlay:hover .play-icon {
	transform: scale(1.1);
	background-color: #4294d1;
}

.video-duration {
	position: absolute;
	bottom: 15px;
	right: 15px;
	background-color: rgba(0, 0, 0, 0.85);
	color: #ffffff;
	font-size: 0.75em;
	font-weight: 700;
	padding: 0.2em 0.6em;
	border-radius: 3px;
}

.video-overlay p {
	margin: 0;
	color: #a0aec0;
	font-size: 0.9em;
}

.lesson-text-content {
	font-size: 1.05em;
	line-height: 1.7;
	color: #292929;
	margin-bottom: 3em;
}

.lesson-text-content h3 {
	color: #111827;
	margin-top: 1.5em;
	margin-bottom: 0.5em;
}

/* Resources block styling */
.lesson-resources-card {
	background-color: #ffffff;
	border: 1px solid rgba(0, 0, 0, 0.08);
	border-radius: 6px;
	padding: 2em;
	margin-bottom: 3em;
	box-shadow: 0 4px 15px rgba(0, 0, 0, 0.02);
}

.lesson-resources-card h4 {
	color: #292929;
	display: flex;
	align-items: center;
	gap: 10px;
	margin-top: 0;
	font-size: 1.1em;
}

.resources-download-list {
	list-style: none;
	padding: 0;
	margin: 1.5em 0 0 0;
	display: flex;
	flex-direction: column;
	gap: 1em;
}

.resource-item {
	display: flex;
	align-items: center;
	background-color: rgba(0, 0, 0, 0.01);
	border: 1px solid rgba(0, 0, 0, 0.04);
	padding: 1em 1.5em;
	border-radius: 4px;
	gap: 15px;
	transition: background-color 0.2s ease;
}

.resource-item:hover {
	background-color: rgba(0, 0, 0, 0.03);
}

.resource-file-icon {
	font-size: 1.8em;
	color: #475569;
	display: flex;
	align-items: center;
}

.resource-info {
	display: flex;
	flex-direction: column;
	flex-grow: 1;
}

.resource-info strong {
	color: #292929;
	font-size: 0.9em;
}

.resource-info span {
	font-size: 0.75em;
	color: #475569;
}

/* Bottom navigation bar */
.lesson-navigation-footer {
	display: flex;
	justify-content: space-between;
	align-items: center;
	border-top: 1px solid rgba(0, 0, 0, 0.08);
	padding-top: 2em;
	margin-top: auto;
}

.lesson-navigation-footer .button,
.lesson-navigation-footer button {
	font-size: 0.85em;
	height: 3.2em;
	line-height: 3.2em;
	padding: 0 1.8em;
}

/* Responsive Course Viewer Layout */
@media screen and (max-width: 980px) {
	.course-viewer-container {
		grid-template-columns: 1fr;
	}

	.course-sidebar {
		max-height: 300px;
		position: static;
		width: 100%;
		border-right: none;
		border-bottom: 1px solid rgba(255, 255, 255, 0.05);
	}

	.course-content-area {
		padding: 2em;
	}
}

@media screen and (max-width: 736px) {
	.course-content-area {
		padding: 1.5em 1em;
	}

	.lesson-header h1 {
		font-size: 1.8em;
	}

	.lesson-resources-card {
		padding: 1.2em;
	}

	.resource-item {
		flex-direction: column;
		align-items: flex-start;
		gap: 10px;
	}

	.resource-item a {
		width: 100%;
		text-align: center;
	}

	.lesson-navigation-footer {
		flex-direction: column;
		gap: 1em;
		align-items: stretch;
	}

	.lesson-navigation-footer div {
		width: 100%;
	}

	.lesson-navigation-footer div a,
	.lesson-navigation-footer div button,
	.lesson-navigation-footer div form button {
		width: 100% !important;
		text-align: center;
	}
}

/* Course Access Device Locking Badges */
.tile-lock-icon {
	margin-right: 8px;
	font-size: 0.85em;
	color: #ef4444;
	vertical-align: middle;
}

.badge-device-req {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 0.35em 0.8em;
	border-radius: 4px;
	font-size: 0.72em;
	font-weight: 700;
	margin-top: 8px;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.25);
}

.badge-device-req i {
	font-size: 0.9em;
}

.badge-device-req.locked {
	background: #dc2626;
	border: 1px solid #ef4444;
	color: #ffffff;
}

.badge-device-req.owned {
	background: #059669;
	border: 1px solid #10b981;
	color: #ffffff;
}

.badge-device-req.info {
	background: #4294d1;
	border: 1px solid #4294d1;
	color: #ffffff;
}

/* Search Box for Devices tab */
.search-box-container {
	position: relative;
	margin-bottom: 1.5rem;
	max-width: 400px;
}

.search-box-container input[type="text"] {
	padding-left: 2.75em !important;
	background-color: rgba(255, 255, 255, 0.05);
	border: 1px solid rgba(255, 255, 255, 0.45);
	border-radius: 4px;
	color: #ffffff;
	width: 100%;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.search-box-container input[type="text"]:hover {
	border-color: rgba(255, 255, 255, 0.7);
}

.search-box-container input[type="text"]:focus {
	border-color: #4294d1;
	box-shadow: 0 0 0 1px #4294d1;
}

.search-box-container .search-icon {
	position: absolute;
	left: 1rem;
	top: 50%;
	transform: translateY(-50%);
	color: rgba(255, 255, 255, 0.4);
	pointer-events: none;
	font-size: 0.9em;
	display: flex;
	align-items: center;
	justify-content: center;
}

/* Responsive rich-text images */
.lesson-text-content img,
.module-temario-content img,
.ql-editor img {
	max-width: 100%;
	height: auto;
	display: block;
	margin: 1.5rem auto;
	border-radius: 4px;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

/* Contenedor principal de la imagen interactiva */
.interactive-image-wrapper {
	position: relative;
	display: block;
	width: fit-content;
	max-width: 100%;
	margin: 1.5rem auto;
}

.interactive-image-base {
	display: block;
	width: auto;
	max-width: 100%;
	height: auto;
	margin: 0 !important;
	border-radius: 6px;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}

/* Capa de hotspots superpuesta */
.hotspots-overlay {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
}

/* Pin interactivo (Hotspot) - Punto sólido pequeño */
.hotspot-pin {
	position: absolute;
	width: 15px;
	height: 15px;
	opacity: 0.5;
	margin-left: -5px;
	margin-top: -5px;
	border-radius: 50%;
	border: none;
	background: #4294d1;
	box-shadow: 0 0 0 0 rgba(0, 118, 255, 0.5);
	cursor: pointer;
	pointer-events: auto;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background-color 0.2s, transform 0.2s;
	z-index: 5;
}

.hotspot-pin:hover {
	background: #00ccff;
	transform: scale(1.4);
	z-index: 10;
}

/* Efecto de onda concéntrica (wave) que parte desde el punto */
.hotspot-pulse {
	position: absolute;
	width: 100%;
	height: 100%;
	border-radius: 50%;
	background: transparent;
	border: 1.5px solid rgba(0, 118, 255, 0.7);
	animation: hotspot-pulsing 2.5s infinite ease-out;
	pointer-events: none;
}

@keyframes hotspot-pulsing {
	0% {
		transform: scale(1);
		opacity: 1;
	}

	100% {
		transform: scale(4);
		opacity: 0;
	}
}

/* Tooltips de CSS puros */
.hotspot-pin::after {
	content: attr(data-tooltip);
	position: absolute;
	bottom: 135%;
	left: 50%;
	transform: translateX(-50%) scale(0.8);
	background: #1e1e1e;
	color: #ffffff;
	padding: 0.5em 1em;
	border-radius: 4px;
	font-size: 0.75em;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	white-space: normal;
	width: max-content;
	max-width: 220px;
	text-align: center;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: all 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275);
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.5);
	border: 1px solid rgba(255, 255, 255, 0.1);
	z-index: 100;
}

.hotspot-pin::before {
	content: '';
	position: absolute;
	bottom: 120%;
	left: 50%;
	transform: translateX(-50%);
	border-width: 6px 6px 0;
	border-style: solid;
	border-color: #1e1e1e transparent transparent;
	opacity: 0;
	visibility: hidden;
	transition: all 0.2s ease;
	z-index: 100;
}

.hotspot-pin:hover::after,
.hotspot-pin:hover::before {
	opacity: 1;
	visibility: visible;
}

.hotspot-pin:hover::after {
	transform: translateX(-50%) scale(1);
}

/* Número indicador del hotspot - oculto en modo punto */
.hotspot-number {
	display: none;
}

/* Ajustes de responsividad para móviles */
@media (max-width: 768px) {
	.hotspot-pin {
		width: 8px;
		height: 8px;
		margin-left: -4px;
		margin-top: -4px;
	}

	.hotspot-pin::after {
		font-size: 0.65em;
		padding: 0.4em 0.8em;
		white-space: normal;
		width: max-content;
		max-width: 140px;
		text-align: center;
	}
}

/* ==========================================================================
   Estilos de Tablas para el Contenido de las Lecciones
   ========================================================================== */
.lesson-text-content table,
.module-temario-content table {
	width: 100%;
	border-collapse: collapse;
	margin: 1.5em 0;
	font-size: 0.95em;
	color: #292929;
	background: #ffffff;
	border: 1px solid rgba(0, 0, 0, 0.08);
	border-radius: 4px;
	overflow: hidden;
}

.lesson-text-content table th,
.lesson-text-content table td,
.module-temario-content table th,
.module-temario-content table td {
	padding: 10px 14px;
	border: 1px solid rgba(0, 0, 0, 0.08);
	text-align: left;
}

.lesson-text-content table th,
.module-temario-content table th {
	background-color: #f8fafc;
	font-weight: 600;
	color: #1e293b;
}

.lesson-text-content table tr:nth-child(even),
.module-temario-content table tr:nth-child(even) {
	background-color: #fcfcfc;
}

.lesson-text-content table tr:hover,
.module-temario-content table tr:hover {
	background-color: rgba(0, 118, 255, 0.02);
}

/* ==========================================================================
   Quill 2.0 List Rendering Compatibility for Lessons and Temarios
   ========================================================================== */
.lesson-text-content ol:has(li[data-list]),
.module-temario-content ol:has(li[data-list]) {
	list-style-type: none !important;
	padding-left: 0;
	margin: 0 0 2em 0;
	counter-reset: list-0;
}

/* Base list item style */
.lesson-text-content ol li[data-list],
.module-temario-content ol li[data-list] {
	list-style-type: none !important;
	position: relative;
	padding-left: 1.5em;
	margin-bottom: 0.25em;
}

/* Marker element */
.lesson-text-content ol li[data-list]>.ql-ui,
.module-temario-content ol li[data-list]>.ql-ui {
	position: absolute;
	left: 0;
	top: 0;
	display: inline-block;
	text-align: right;
	white-space: nowrap;
	width: 1.2em;
	user-select: none;
	pointer-events: none;
}

.lesson-text-content ol li[data-list]>.ql-ui:before,
.module-temario-content ol li[data-list]>.ql-ui:before {
	display: inline-block;
}

/* Bullet list markers */
.lesson-text-content ol li[data-list="bullet"]>.ql-ui:before,
.module-temario-content ol li[data-list="bullet"]>.ql-ui:before {
	content: "\2022";
	/* Level 0: bullet */
}

.lesson-text-content ol li[data-list="bullet"].ql-indent-1>.ql-ui:before,
.module-temario-content ol li[data-list="bullet"].ql-indent-1>.ql-ui:before {
	content: "\25E6";
	/* Level 1: hollow circle */
}

.lesson-text-content ol li[data-list="bullet"].ql-indent-2>.ql-ui:before,
.module-temario-content ol li[data-list="bullet"].ql-indent-2>.ql-ui:before {
	content: "\25AA";
	/* Level 2: small square */
}

.lesson-text-content ol li[data-list="bullet"].ql-indent-3>.ql-ui:before,
.module-temario-content ol li[data-list="bullet"].ql-indent-3>.ql-ui:before {
	content: "\2022";
	/* Level 3: bullet */
}

.lesson-text-content ol li[data-list="bullet"].ql-indent-4>.ql-ui:before,
.module-temario-content ol li[data-list="bullet"].ql-indent-4>.ql-ui:before {
	content: "\25E6";
	/* Level 4: hollow circle */
}

/* Ordered list numbering */
.lesson-text-content ol li[data-list="ordered"],
.module-temario-content ol li[data-list="ordered"] {
	counter-increment: list-0;
	counter-reset: list-1 list-2 list-3 list-4;
}

.lesson-text-content ol li[data-list="ordered"]>.ql-ui:before,
.module-temario-content ol li[data-list="ordered"]>.ql-ui:before {
	content: counter(list-0, decimal) ". ";
}

/* Ordered Level 1 */
.lesson-text-content ol li[data-list="ordered"].ql-indent-1,
.module-temario-content ol li[data-list="ordered"].ql-indent-1 {
	counter-increment: list-1;
	counter-reset: list-2 list-3 list-4;
}

.lesson-text-content ol li[data-list="ordered"].ql-indent-1>.ql-ui:before,
.module-temario-content ol li[data-list="ordered"].ql-indent-1>.ql-ui:before {
	content: counter(list-1, lower-alpha) ". ";
}

/* Ordered Level 2 */
.lesson-text-content ol li[data-list="ordered"].ql-indent-2,
.module-temario-content ol li[data-list="ordered"].ql-indent-2 {
	counter-increment: list-2;
	counter-reset: list-3 list-4;
}

.lesson-text-content ol li[data-list="ordered"].ql-indent-2>.ql-ui:before,
.module-temario-content ol li[data-list="ordered"].ql-indent-2>.ql-ui:before {
	content: counter(list-2, lower-roman) ". ";
}

/* Ordered Level 3 */
.lesson-text-content ol li[data-list="ordered"].ql-indent-3,
.module-temario-content ol li[data-list="ordered"].ql-indent-3 {
	counter-increment: list-3;
	counter-reset: list-4;
}

.lesson-text-content ol li[data-list="ordered"].ql-indent-3>.ql-ui:before,
.module-temario-content ol li[data-list="ordered"].ql-indent-3>.ql-ui:before {
	content: counter(list-3, decimal) ". ";
}

/* Ordered Level 4 */
.lesson-text-content ol li[data-list="ordered"].ql-indent-4,
.module-temario-content ol li[data-list="ordered"].ql-indent-4 {
	counter-increment: list-4;
}

.lesson-text-content ol li[data-list="ordered"].ql-indent-4>.ql-ui:before,
.module-temario-content ol li[data-list="ordered"].ql-indent-4>.ql-ui:before {
	content: counter(list-4, lower-alpha) ". ";
}

/* Indentation offsets for items */
.lesson-text-content ol li.ql-indent-1,
.module-temario-content ol li.ql-indent-1 {
	padding-left: 3em;
}

.lesson-text-content ol li.ql-indent-1>.ql-ui,
.module-temario-content ol li.ql-indent-1>.ql-ui {
	left: 1.5em;
}

.lesson-text-content ol li.ql-indent-2,
.module-temario-content ol li.ql-indent-2 {
	padding-left: 4.5em;
}

.lesson-text-content ol li.ql-indent-2>.ql-ui,
.module-temario-content ol li.ql-indent-2>.ql-ui {
	left: 3em;
}

.lesson-text-content ol li.ql-indent-3,
.module-temario-content ol li.ql-indent-3 {
	padding-left: 6em;
}

.lesson-text-content ol li.ql-indent-3>.ql-ui,
.module-temario-content ol li.ql-indent-3>.ql-ui {
	left: 4.5em;
}

.lesson-text-content ol li.ql-indent-4,
.module-temario-content ol li.ql-indent-4 {
	padding-left: 7.5em;
}

.lesson-text-content ol li.ql-indent-4>.ql-ui,
.module-temario-content ol li.ql-indent-4>.ql-ui {
	left: 6em;
}

/* Checklist task markers */
.lesson-text-content ol li[data-list="checked"]>.ql-ui:before,
.module-temario-content ol li[data-list="checked"]>.ql-ui:before {
	content: "\2611";
	/* Checked box */
	color: #059669;
}

.lesson-text-content ol li[data-list="unchecked"]>.ql-ui:before,
.module-temario-content ol li[data-list="unchecked"]>.ql-ui:before {
	content: "\2610";
	/* Unchecked box */
	color: #9ca3af;
}

/* ==========================================================================
   Exam and Certificate Status Styles
   ========================================================================== */
.exam-status-card {
	background: linear-gradient(135deg, rgba(0, 118, 255, 0.08) 0%, rgba(0, 118, 255, 0.03) 100%);
	border: 1px solid rgba(0, 118, 255, 0.2);
	padding: 2em;
	border-radius: 6px;
	margin-bottom: 2.5em;
	position: relative;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	gap: 15px;
}

.exam-status-card .exam-cap-icon {
	position: absolute;
	right: -20px;
	bottom: -20px;
	font-size: 8em;
	opacity: 0.04;
	color: #4294d1;
	pointer-events: none;
}

.exam-status-card h3 {
	font-family: inherit !important;
	font-weight: 700;
	letter-spacing: 0.05em;
	margin: 0;
	display: flex;
	align-items: center;
	gap: 10px;
}

.exam-status-card h3.status-approved {
	color: #059669 !important;
}

.exam-status-card h3.status-failed {
	color: #dc2626 !important;
}

.exam-status-card h3.status-available {
	color: #1d4ed8 !important;
}

.exam-status-card p {
	font-size: 1.05em !important;
	opacity: 1 !important;
	color: #374151 !important;
	/* Dark text for readability on light page background */
	line-height: 1.6;
	margin: 0;
}

.exam-status-card p strong {
	color: #111827 !important;
	/* Extra dark bold text for emphasis */
	font-weight: 700;
}

.exam-status-card i {
	vertical-align: middle;
}

/* Centrado vertical y posición a la izquierda del círculo personalizado de opción */
.option-item input[type="radio"]+label:before,
.exam-option-interactive input[type="radio"]+label:before {
	left: 15px !important;
	top: 50% !important;
	transform: translateY(-50%) !important;
	margin: 0 !important;
	border: 1px solid rgba(39, 39, 39, 0.15) !important;
	background: #ffffff !important;
}

/* Estado seleccionado de la opción */
.option-item input[type="radio"]:checked+label:before,
.exam-option-interactive input[type="radio"]:checked+label:before {
	background: #4294d1 !important;
	border-color: #4294d1 !important;
	color: #ffffff !important;
	content: '\f00c' !important;
}

/* Efecto hover sobre la tarjeta de opción */
.option-item label:hover,
.exam-option-interactive label:hover {
	border-color: rgba(0, 118, 255, 0.4) !important;
	background-color: rgba(0, 118, 255, 0.01) !important;
}

/* Protección visual de imágenes subidas (desactivar selección y arrastre) */
img[src*="uploads/images/"],
canvas.protected-canvas,
video {
	user-select: none !important;
	-webkit-user-drag: none !important;
}

/* Estilo general para videos incrustados */
video {
	max-width: 100%;
	height: auto;
	border-radius: 6px;
	box-shadow: 0 4px 15px rgba(0, 0, 0, 0.15);
	margin: 1.5em auto;
	display: block;
	outline: none;
}

/* Estilo general para imágenes convertidas a canvas (responsivas y centradas) */
canvas.protected-canvas {
	max-width: 100% !important;
	height: auto !important;
	display: block;
	margin: 1.5em auto;
}

/* ==========================================================================
   Tarjetas de Consultores de Contacto (Diseñadas para legibilidad en fondo claro)
   ========================================================================== */
.consultant-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.5em;
	margin: 2em 0;
}

@media screen and (min-width: 768px) {
	.consultant-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 2em;
	}
}

.consultant-card {
	background: #ffffff;
	border: 1px solid rgba(0, 0, 0, 0.08);
	border-radius: 8px;
	padding: 1.5em;
	transition: all 0.3s ease;
	position: relative;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	box-shadow: 0 4px 15px rgba(0, 0, 0, 0.03);
}

.consultant-card::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 4px;
	background: linear-gradient(90deg, #4294d1, #00ccff);
	opacity: 0.8;
	transition: height 0.3s ease;
}

.consultant-card:hover {
	background: #ffffff;
	border-color: rgba(0, 118, 255, 0.25);
	transform: translateY(-5px);
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
}

.consultant-card:hover::before {
	height: 6px;
}

.consultant-badge {
	display: inline-block;
	font-size: 0.7em;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: #0056b3;
	background: rgba(0, 118, 255, 0.08);
	padding: 0.4em 0.8em;
	border-radius: 4px;
	margin-bottom: 1.5em;
	align-self: flex-start;
}

.consultant-meta {
	margin-bottom: 1.5em;
}

.consultant-name {
	font-size: 1.25em;
	font-weight: 700;
	color: #292929 !important;
	margin: 0;
}

.consultant-title {
	font-size: 0.85em;
	color: #666666 !important;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	margin-top: 0.25em;
}

.consultant-details {
	list-style: none;
	padding: 0;
	margin: 0;
	border-top: 1px solid rgba(0, 0, 0, 0.06);
	padding-top: 1.25em;
}

.consultant-details li {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin-bottom: 0.75em;
	font-size: 0.85em;
	color: #444444 !important;
	min-width: 0;
}

.consultant-details li:last-child {
	margin-bottom: 0;
}

.consultant-details li i {
	color: #4294d1;
	width: 16px;
	text-align: center;
	margin-top: 3px;
}

.consultant-details li a {
	color: #333333 !important;
	text-decoration: none;
	transition: color 0.2s ease;
	border-bottom: none;
	word-break: break-word;
}

.consultant-details li a:hover {
	color: #0056b3 !important;
}

/* Redes Sociales en el Banner de Contacto */
.contact-social-banner {
	margin-top: 1.5em;
	display: flex;
	align-items: center;
	gap: 1.25em;
	flex-wrap: wrap;
}

.contact-social-banner span {
	font-weight: 600;
	font-size: 0.85em;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.7);
}

.contact-social-icons {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	gap: 0.75em;
}

.contact-social-icons li {
	padding: 0;
	margin: 0;
}

.contact-social-icons li a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.08);
	color: #ffffff !important;
	border: 1px solid rgba(255, 255, 255, 0.15);
	transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
	text-decoration: none;
}

.contact-social-icons li a:hover {
	background: #4294d1;
	border-color: #4294d1;
	transform: translateY(-3px);
	box-shadow: 0 4px 12px rgba(66, 148, 209, 0.3);
}

.contact-social-icons li a .label {
	display: none;
}

/* Estilos unificados para Examen y Revisión de Examen */
.exam-container {
	padding: 3em 1.5em;
	max-width: 1100px;
	margin: 0 auto;
}

.exam-card {
	border-radius: 8px;
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15);
	overflow: hidden;
	background: #ffffff;
}

.exam-header {
	color: #ffffff;
	padding: 1.8em 2em;
	text-align: center;
}

.exam-header.default {
	background: linear-gradient(135deg, #292929 0%, #1a1a1a 100%);
}

.exam-header.approved {
	background: linear-gradient(135deg, #059669 0%, #10b981 100%);
}

.exam-header.failed {
	background: linear-gradient(135deg, #dc2626 0%, #ef4444 100%);
}

.exam-header-badge {
	font-size: 0.75em;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	background: rgba(255, 255, 255, 0.25);
	padding: 0.3em 0.8em;
	border-radius: 20px;
	display: inline-block;
	margin-bottom: 0.6em;
	color: #ffffff;
}

.exam-header-title {
	margin: 0 0 0.2em 0;
	color: #ffffff !important;
	font-size: 1.6em;
	letter-spacing: 0.05em;
	font-weight: 700;
	line-height: 1.3;
}

.exam-header-meta {
	margin: 0;
	opacity: 0.9;
	font-size: 0.95em;
	color: #ffffff;
}

.exam-header-stats {
	margin-top: 1.2em;
	display: inline-flex;
	justify-content: center;
	gap: 1.5em;
}

.exam-stat-box {
	background: rgba(255, 255, 255, 0.15);
	padding: 0.4em 1.2em;
	border-radius: 6px;
	text-align: center;
	min-width: 120px;
	color: #ffffff;
}

.exam-stat-label {
	display: block;
	font-size: 0.75em;
	opacity: 0.9;
	text-transform: uppercase;
	font-weight: 600;
}

.exam-stat-value {
	font-size: 1.3em;
	font-weight: 700;
}

.exam-body {
	padding: 2.5em 2.5em;
	color: #292929;
	background: #ffffff;
}

.exam-instructions {
	background: #f8fafc;
	border-left: 4px solid #4294d1;
	padding: 1.2em;
	border-radius: 4px;
	margin-bottom: 2.5em;
	color: #555555;
	line-height: 1.6;
	font-size: 0.95em;
}

.exam-questions-list {
	display: flex;
	flex-direction: column;
	gap: 2em;
}

.exam-question-card {
	border: 1px solid #e2e8f0;
	border-radius: 6px;
	padding: 1.5em;
	background: #ECECEC;
	position: relative;
}

.exam-question-badge {
	position: absolute;
	top: 1.25em;
	right: 1.5em;
	font-size: 0.9em;
	font-weight: 700;
	display: flex;
	align-items: center;
	gap: 6px;
}

.exam-question-badge.correct {
	color: #059669;
}

.exam-question-badge.incorrect {
	color: #dc2626;
}

.exam-question-title {
	margin: 0 0 1.2em 0;
	font-size: 1.05em;
	color: #1e293b;
	padding-right: 8em;
	line-height: 1.5;
	font-weight: 700;
}

.exam-question-title span {
	font-weight: 400;
}

.exam-options-list {
	display: flex;
	flex-direction: column;
	gap: 0.75em;
}

/* En el examen (con radios interactivos) */
.exam-option-interactive {
	position: relative;
	display: block;
}

.exam-option-interactive label {
	margin: 0;
	padding: 12px 15px 12px 48px;
	border: 1px solid rgba(39, 39, 39, 0.1);
	border-radius: 4px;
	width: 100%;
	cursor: pointer;
	color: #292929;
	font-weight: 400;
	font-size: 0.95em;
	transition: all 0.2s ease;
	background-color: #ffffff;
	text-transform: none;
	display: block;
	line-height: 1.4;
	letter-spacing: normal;
	position: relative;
}

/* En la revisión (no interactivo, coloreado) */
.exam-option-review {
	display: flex;
	align-items: center;
	padding: 10px 15px;
	border-radius: 4px;
	border: 1px solid #e2e8f0;
	background-color: #ffffff;
	color: #334155;
	transition: all 0.2s;
}

.exam-option-review.correct {
	background-color: #ecfdf5;
	border-color: #10b981;
	color: #065f46;
}

.exam-option-review.incorrect {
	background-color: #fef2f2;
	border-color: #f87171;
	color: #991b1b;
}

.exam-option-badge {
	font-size: 0.75em;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	background: rgba(0, 0, 0, 0.06);
	padding: 2px 6px;
	border-radius: 3px;
	color: inherit;
	white-space: nowrap;
}

.exam-footer-toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-top: 2.5em;
	border-top: 1px solid rgba(39, 39, 39, 0.08);
	padding-top: 2em;
}

/* Responsive actions inside exam status card */
@media screen and (max-width: 736px) {
	.exam-status-card ul.actions {
		flex-direction: column !important;
		align-items: stretch !important;
		gap: 10px !important;
		margin-left: 0 !important;
		padding-left: 0 !important;
		width: 100% !important;
	}

	.exam-status-card ul.actions li {
		padding: 0 !important;
		width: 100% !important;
		margin-bottom: 0 !important;
	}

	.exam-status-card ul.actions li a,
	.exam-status-card ul.actions li button {
		display: block !important;
		width: 100% !important;
		text-align: center !important;
	}
}

/* SweetAlert2 Gotham Font Support & Visual Fixes */
.swal2-popup,
.swal2-title,
.swal2-content,
.swal2-html-container,
.swal2-confirm,
.swal2-cancel,
.swal2-input,
.swal2-select,
.swal2-validation-message {
	font-family: 'Gotham', 'Source Sans Pro', Helvetica, sans-serif !important;
}

.swal2-actions {
	gap: 12px !important;
	flex-wrap: wrap !important;
	justify-content: center !important;
}

.swal2-actions button {
	margin: 6px !important;
}

.swal2-input {
	width: 90% !important;
	max-width: 400px !important;
	box-sizing: border-box !important;
	margin: 1.5em auto !important;
	background-color: #f7f7f7 !important;
	border: 1px solid #cccccc !important;
	color: #292929 !important;
	border-radius: 4px !important;
	padding: 0.75em !important;
	height: auto !important;
}

/* Screen Reader Only helper (Accessibility & SEO) */
.sr-only {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

/* Fix for copy-pasted inline styles with background-colors in Quill syllabus text */
.module-temario-content span,
.module-temario-content p,
.module-temario-content div,
.module-temario-content li,
.module-temario-content strong {
	background-color: transparent !important;
}

/* Restaurar y proteger el color de fondo original de los hotspots del reset de Quill */
.hotspot-pin {
	background-color: #4294d1 !important;
}

.hotspot-pin:hover {
	background-color: #00ccff !important;
}

/* Optimización para el grid de cursos: si el número de cursos es impar, hacer que el último ocupe el 100% */
.tiles article:last-child:nth-child(odd) {
	width: 100% !important;
}