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

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

body {
	font-size: 16px;
	line-height: 1.9em;
	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;
}

p {
	margin: 0 0 1em;
}

figure {
	margin: 0;
}

h1,
.h1,
h2,
.h2,
h3,
.h3,
h4,
.h4,
h5,
h6 {
	font-family: var(--secondary-font);
	color: var(--primary-color);
	font-weight: var(--fw-thin);
	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: 40px;
	line-height: 1.1em;

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

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

h2,
.h2 {
	font-size: 32px;
	line-height: 1.2em;

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

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

h3,
.h3 {
	font-size: 28px;
	line-height: 1.2em;

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

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

h4,
.h4,
h5,
h6 {
	font-size: 20px;
	line-height: 1.2em;

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

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

a {
	color: var(--primary-color);
	text-decoration: underline;

	&:focus {
		outline: none;
		text-decoration: none;
	}

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