/*=================================================
=            CSS Base and Reset styles            =
=================================================*/

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

body {
	font-size: 16px;
	line-height: 1.25em;
	font-weight: var(--fw-regular);
	color: var(--default-color);
	font-family: var(--default-font);
	min-width: 320px;
	text-align: left;
	margin: 0;
	-moz-osx-font-smoothing: grayscale;
	-webkit-font-smoothing: antialiased;
	@media (width >= 1024px) {
		line-height: 1.375em;
	}
}

p {
	margin: 0 0 1em;
}

figure {
	margin: 0;
}

h1,
.h1,
h2,
.h2,
h3,
.h3,
h4,
.h4,
h5,
h6 {
	font-family: var(--primary-font);
	color: var(--primary-color);
	font-weight: var(--fw-regular);
	text-wrap: balance;
}

h2,
.h2,
h3,
.h3,
h4,
.h4,
h5,
h6 {
	margin-top: 1em;
	margin-bottom: .5em;
	line-height: 1em;
}

h1,
.h1,
h2,
.h2,
h3,
.h3 {
	>sup {
		font-size: .65em;
	}
}

.hdng {
	font-family: var(--secondary-font);
}

h1,
.h1 {
	font-size: 28px;
	line-height: 1.07em;
	text-transform: uppercase;
	text-align: center;
	color: var(--light-color);
	/* Tablet Styles */
	@media (width >= 768px) {
		font-size: 40px;
		line-height: 1.05em;
	}

	/* Desktop Styles */
	@media (width >= 1024px) {
		font-size: 52px;
		line-height: 1.04em;
	}
}

h2,
.h2 {
	font-size: 23px;
	line-height: 1.04em;

	/* Tablet Styles */
	@media (width >= 768px) {
		font-size: 28px;
		line-height: 1.07em;
	}

	/* Desktop Styles */
	@media (width >= 1024px) {
		font-size: 32px;
		line-height: 1.09em;
	}
}

h3,
.h3 {
	font-size: 17px;
	line-height: 1.12em;
	font-weight: var(--fw-semi-bold);
	letter-spacing: 0.17px;
	text-transform: uppercase;
	color: var(--secondary-color);

	/* Tablet Styles */
	@media (width >= 768px) {
		font-size: 22px;
		line-height: 1.1em;
		letter-spacing: 0.22px;
	}

	/* Desktop Styles */
	@media (width >= 1024px) {
		font-size: 24px;
		letter-spacing: 0.24px;
	}
}

h4,
.h4,
h5,
h6 {
	font-size: 17px;
	line-height: 1.1em;
	font-weight: var(--fw-medium);
	text-transform: uppercase;

	/* Tablet Styles */
	@media (width >= 768px) {
		font-size: 20px;
	}

	/* Desktop Styles */
	/* @media (width >= 1024px) {
		font-size: 26px;
	} */
}

a {
	color: var(--primary-color);
	text-decoration: underline;
	font-weight: var(--fw-bold);
	transition: all 0.3s;
	&:focus, &:hover {
		outline: none;
		text-decoration: none;
		color: var(--secondary-color);
	}

	sup,
	sub {
		display: inline-block;
	}
}

img {
	display: block;
	max-width: 100%;
}

ul,
ol {
	margin: 1em 0;
	padding: 0;
}

li {
	list-style-position: inside;
}

dd {
	margin: 0 0 0 40px;
	padding: 0;
	border: 0;
	font-size: 100%;
	font: inherit;
	vertical-align: baseline;
}

dl,
dt {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 100%;
	font: inherit;
	vertical-align: baseline;
}

.skipto {
	display: block;
	position: absolute;
	left: -10000px;
	top: auto;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

#error_txt {
	padding-bottom: 100px;
}

section {
	padding: 20px;

	/* Tablet Styles */
	@media (width >= 768px) {
		padding: 20px 40px;
	}

	/*
@media (width >= 1024px) {
		padding: 20px calc(40px + (50vw - (var(--desktop) / 2)));
	} */
	/* Full Screen Styles */
	@media (width >= 1280px) {
		padding: 20px calc(40px + (50vw - (var(--full) / 2)));
	}
}

.contain,
.section-contain {
	padding: 0 20px;

	/* Tablet Styles */
	@media (width >= 768px) {
		padding: 0 40px;
	}

	/*
@media (width >= 1024px) {
		padding: 0 calc(40px + (50vw - (var(--desktop) / 2)));
	} */
	/* Full Screen Styles */
	@media (width >= 1280px) {
		padding: 0 calc(40px + (50vw - (var(--full) / 2)));
	}
}


/* ***************************************** */
/* --------------- Layouts ----------------- */
/* ***************************************** */


/* -----------------------
	Basic layout
----------------------- */

.container,
.container-full {
	position: relative;
}

.container {
	max-width: var(--desktop);
	margin: 0 auto;
	text-align: left;
}