/* basic reset */
body,* { margin: 0; padding: 0; box-sizing: border-box; }
button::-moz-focus-inner { border: 0; padding: 0; }
p, h1, h2, h3, h4, h5, h6, ul, ol { margin: 1rem auto 1rem auto; }
input, textarea, select { font-family: inherit; }
input.no-appearance { -webkit-appearance: textfield; -moz-appearance: textfield; appearance: field; }
input.no-appearance::-webkit-inner-spin-button { -webkit-appearance: none; }
input.no-appearance::-webkit-outer-spin-button { -webkit-appearance: none; }
ul,ol { padding-left: 20px; }
li { margin: 5px auto 5px auto; }
a img { border: none; }
/* basic classes */
.text-center { text-align: center; }
.text-left { text-align: left; }
.text-right { text-align: right; }
.text-upper { text-transform: uppercase; }

h1, h2, h3 { line-height: 1em; }

:root {
	--base-margin: 15px;
	--base-padding: 15px;
	--color-text: #5d5454;
	--color-link-hover: #111;
	--color-default: #B0CCB5;
	--color-hover: #8BA28F;
	--color-light: #E8F2EA;
	--border-radius: 4px;
}

html {
	min-width: 460px;
	min-height: 100vh;
}
body {
	font-family: "Open Sans", sans-serif;
	font-optical-sizing: auto;
	background: #fff;
	color: #5d5454;
	font-size: 18px;
	line-height: 1.5rem;
}
a {
	color: inherit;
	text-decoration: none;
	transition: 0.3s color linear;
}
a:hover {
	color: var(--color-link-hover);
}

.contain {
	min-width: 420px;
	max-width: 1380px;
	margin-left: auto;
	margin-right: auto;
}

.spacing {
	padding-left: var(--base-margin);
	padding-right: var(--base-margin);
}
.rounded {
	border-radius: var(--border-radius);
}

.block-top {
	text-align: center;
}
.block-top .title {
	font-size: 1.88rem;
	font-weight: 600;
}

.color {
	color: #00808f;
}
.color-alt {
	color: #00a4b7;
}

.bg-default {
	background: var(--color-default);
}
.bg-light {
	background: var(--color-light);	
}
.bg-semi {
	background: rgba(176, 204, 181, 0.7);
}

.fs-0 {
	font-weight: 600;
	font-size: 4.25rem;
	line-height: 4rem;
}
.fs-2 {
	font-size: 2rem;
	line-height: 2rem;
}

.text-img {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	min-height: 100%;
}
.text-img .title {
	margin: 0 auto auto 0;
}

.text > *:first-child {
	margin-top: 0;
}
.text > *:last-child {
	margin-bottom: 0;
}
.text ul {
    text-align: justify;
}

.flex-columns {
	display: flex;
	flex-direction: row;
	justify-content: center;
	align-items: stretch;
	flex-wrap: wrap;
}
.flex-columns > :first-child {
	padding-left: 0;
}
.flex-columns > :last-child {
	padding-right: 0;
}

.dotted {
	position: relative;
}
.dotted:before {
	display: block;
	content: ' ';
	position: absolute;
	z-index: 15;
	top: -3px;
	left: 0;
	right: 0;
	height: 6px;
	width: 100%;
	background-image: url("data:image/svg+xml,%3csvg version='1.1' viewBox='0 0 25 6' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='3' cy='3' r='3' fill='%23A7C3AA' stroke-width='0'/%3e%3c/svg%3e");
	background-position: center center;
	background-repeat: repeat-x;
}

/*** Slideshow ***/
.slider-block {
	position: relative;
}
.slider-frame {
	position: relative;
}
.slideshow {
	position: relative;
	z-index: 11;
	height: auto;
	width: 100%;
	overflow: hidden;
}
.slide {
	display: none;
	position: relative;
	z-index: 12;
	top: 0;
	left: 0;
	width: 100%;
	min-height: 300px;
}
.slide img {
	display: block;
	width: 100%;
	height: auto;
	min-height: 300px;
	object-fit: cover;
	border-radius: var(--border-radius);
}
.slide.active {
	display: block;
	position: relative;
	z-index: 13;
}
.slide.slide-off {
	display: block;
	position: absolute;
	z-index: 11;
}

.slide-text {
	position: absolute;
	display: flex;
	flex-direction: column;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
}

/*** modification for CSS only effect ***/
.slideshow-css .slide {
	height: 0;
	overflow: hidden;
	opacity: 0;
}
.slideshow-css .slide-show,
.slideshow-css .active {
	opacity: 1;
}
.slideshow-css .slide-hide {
	position: absolute;
	z-index: 11;
}
.slideshow-css .active,
.slideshow-css .slide-show,
.slideshow-css .slide-hide {
	height: auto;
	transition: opacity 1s ease-in-out;
}

.slider-pager {
	position: absolute;
	left: 0;
	bottom: 2%;
	z-index: 15;
	width: 100%;
	text-align: center;
}
.slider-pager button {
	display: inline-block;
	background: #333;;
	height: 12px;
	width: 12px;
	border-radius: 12px;
	border: none;
	margin: 0 5px 0 5px;
	outline: none;
}
.slider-pager button.active {
	background: #999;
}

/*** carousel ***/
.carousel-block {
	position: relative;
	margin: 0 -10px;
}
.carousel-window {
	position: relative;
	width: 100%;
	overflow: hidden;
}
.carousel-content {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	position: relative;
	top: 0;
	left: 0;
	height: 100%;
}
.carousel-content.carousel-nomination {
	transition: none !important;
	animation: none !important;
}
.carousel-content .carousel-item {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	padding: 0 10px;
}
.carousel-content .carousel-item img {
	display: block;
	max-width: 100%;
	height: auto;
}
.carousel-endless-box {
	position: absolute;
	top: 0;
	bottom: 0;
	width: 100%;
}
.slider-arrows button,
.carousel-arrows button {
	position: absolute;
	z-index: 20;
	top: calc(50% - 39px);
	width: 78px;
	height: 78px;
	background-repeat: no-repeat;
	background-position: center center;
	background-color: transparent;
	background-size: 26px 26px;
	border: none;
	cursor: pointer;
}
.slider-arrows button.slider-arrows-left,
.carousel-arrows button.carousel-arrows-left {
	left: 0;
	background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%235d5454' stroke-linecap='square' stroke-linejoin='square' stroke-width='2' d='m11 2-6 6 6 6'/%3e%3c/svg%3e");
    background-position-x: 23px;
}
.slider-arrows button.slider-arrows-right,
.carousel-arrows button.carousel-arrows-right {
	right: 0;
	background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%235d5454' stroke-linecap='square' stroke-linejoin='square' stroke-width='2' d='m5 14 6-6-6-6'/%3e%3c/svg%3e");
    background-position-x: 27px;
}
.slider-arrows button.disabled,
.carousel-arrows button.disabled {
	opacity: 0.3;
}

/*** gallery grid ***/
.grid {
	display: grid;
	gap: 20px;
}
.grid-item {
	position: relative;
	width: 100%;
	height: 100%;
}
.grid-text {
	position: absolute;
	bottom: 10px;
	left: 10px;
	right: 10px;
	padding: 10px;
	background: rgba(255, 255, 255, 0.2);
}
.grid-text :last-child {
	margin-bottom: 0;
}

.frame {
	padding: 15px;
	background: #fff;
	box-shadow: 0 0 10px 2px #999;
	border-radius: 4px;
}
.frame img {
	display: block;
	object-fit: cover;
	width: 100%;
	height: 100%;
}

/*** Gallery Box ***/
.gallery-box-all {
	display: none;
	position: absolute;
	top: 0;
	left: 0;
	margin: auto;
	z-index: 50;
	width: 100%;
	height: 100%;
}
.gallery-box-modal {
	position: fixed;
	top: 0;
	left: 0;
	margin: auto;
	z-index: 55;
	width: 100%;
	height: 100%;
	background-color: #000;
	opacity: 0.70;
}
.gallery-box {
	position: relative;
	top: 0;
	margin: 0;
	z-index: 60;
	text-align: center;
}
.gallery-box-content {
	position: relative;
	display: inline-block;
	padding: 10px 10px 5px 10px;
	margin: auto;
	background: #fff;
	border: none;
	color: #000;
	box-sizing: content-box;
}
.gallery-box-loading .gallery-box-image {
	height: 160px;
	width: 260px;
}
.gallery-box-loading .gallery-box-loader {
	position: absolute;
	top: calc(50% - 40px);
	left: calc(50% - 40px);
	width: 80px;
	height: 80px;
	background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3e%3cpath d='m40 20c0 11-8.95 20-20 20-11 0-20-8.95-20-20s8.95-20 20-20v3.27c-9.24 0-16.7 7.46-16.7 16.7s7.46 16.7 16.7 16.7c9.2 0 16.7-7.46 16.7-16.7z' fill='%23aaa'/%3e%3cpath d='m20 0c11 0 20 8.95 20 20h-3.3c0-9.2-7.49-16.7-16.7-16.7z' fill='%23333'/%3e%3c/svg%3e");
	background-size: 100% 100%;;
	background-position: center center;
	background-repeat: no-repeat;
	animation: gallery-box-rotate 1s linear infinite;
}
.gallery-box-image img {
	display: block;
	position: relative;
	z-index: 62;
	height: 100%;
	width: 100%;
}
.gallery-box-title {
	margin: 0;
	padding: 5px 0 0 0;
}
.gallery-box .gallery-box-close,
.gallery-box .gallery-box-zoom,
.gallery-box .gallery-box-right,
.gallery-box .gallery-box-left {
	display: block;
	position: absolute;
	top: 0;
	z-index: 65;
	background-color: transparent;
	background-repeat: no-repeat;
	background-position: center center;
	text-decoration: none;
	text-align: center;
	margin: 0;
	padding: 0;
	outline: none;
	border: none;
	cursor: pointer;
}
.gallery-box .gallery-box-close span,
.gallery-box .gallery-box-right span,
.gallery-box .gallery-box-left span {
	display: none;
}
.gallery-box a:hover {
	text-decoration: none;
}
.gallery-box .gallery-box-zoom {
	top: 30px;
	right: 40px;
	width: 80px;
	height: 80px;
	background-color: rgba(255, 255, 255, 0.4);
	background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 494 494'%3e%3cg fill='none' stroke='%23000'%3e%3ccircle cx='170' cy='170' r='150' stroke-width='40'/%3e%3cpath d='m280 280 194 194' stroke-width='56'/%3e%3c/g%3e%3c/svg%3e");
	background-size: 42px 42px;
	opacity: 0.3;
	border-radius: 50px;
}
.gallery-box .gallery-box-zoom:hover {
	opacity: 1;
}
.gallery-box .gallery-box-close {
	right: 0;
	width: 32px;
	height: 32px;
	background-color: rgba(0, 0, 0, 0.5);
	background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cg fill='none' stroke='%23eee' stroke-width='3'%3e%3cpath d='m1 1 14 14'/%3e%3cpath d='m1 15 14-14'/%3e%3c/g%3e%3c/svg%3e");
	background-size: 14px 14px;
	transition: 0.2s all linear;
}
.gallery-box .gallery-box-close:hover {
	background-size: 18px 18px;
}
.gallery-box .gallery-box-right,
.gallery-box .gallery-box-left {
	height: 100%;
	width: 30%;
}
.gallery-box .gallery-box-left {
	left: 0;
	background-position: left center;
}
.gallery-box .gallery-box-left:hover {
	background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23eee' stroke-width='2' d='m11 2-6 6 6 6'/%3e%3c/svg%3e");
	background-size: 100px 100px;
}
.gallery-box .gallery-box-right {
	right: 0;
	background-position: right center;
}
.gallery-box .gallery-box-right:hover {
	background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23eee' stroke-width='2' d='m5 14 6-6-6-6'/%3e%3c/svg%3e");
	background-size: 100px 100px;
}

.pagination {
	text-align: center;
}

/*** button ***/
a.btn,
.btn {
	display: inline-block;
	box-sizing: border-box;
	border: none;
	border-radius: 4px;
	background: var(--color-default);
	color: #fff;
	padding: 1rem 30px;
	text-transform: uppercase;
	font-size: 18px;
	line-height: 1rem;
	white-space: nowrap;
	cursor: pointer;
	transition: 0.3s background linear;
}
.btn:focus {
	outline: none;
	background: var(--color-hover);
}
.btn:hover {
	background: var(--color-hover);
}

.btn.btn-white {
	background: #fff;
	color: var(--color-text);
	border: 1px solid var(--color-text);
	border-radius: var(--border-radius);
	padding: 0.5rem 15px;
}
.btn.btn-white:hover,
.btn.btn-white:focus {
	background: var(--color-light);
}

/*** form ***/
.form-row {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
}
.form-control {
	display: block;
	box-sizing: border-box;
	width: 100%;
	padding: 0;
	background: transparent;
	color: #000;
	border: none;
	border-bottom: 3px dotted #000;
	font-size: 18px;
	line-height: 1.5rem;
}
.form-control::placeholder {
	color: #666;
	vertical-align: bottom;
}
.form-input-checkout {
	padding: 10px 0 0 0;
}
.form-control:focus {
	border-bottom-color: var(--color-default);
	outline: none;
}
.form-label {
	align-content: center;
}
.form-input {
	display: block;
	margin: 0;
	padding: 0;
}
textarea.form-control {
	background: var(--color-default);
	border-radius: var(--border-radius);
	border-bottom: none;
	padding: 8px 10px;
}
.form-counter {
	display: none;
}
.form-check-input {
	width: 20px;
	height: 20px;
	margin: auto;
	padding: 0;
	vertical-align: bottom;
	background: #fff;
	border: 1px solid var(--color-text);
	border-radius: var(--border-radius);
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
}
.form-check-input:focus {
	outline: none;
	background: var(--color-light);
}
.form-check-input:checked {
	background-color: var(--color-text);
}
.form-check-input:focus:checked {
	background-color: var(--color-link-hover);
}
.form-check-input:checked[type=checkbox] {
	background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='4' d='M6 10l3 3l6-6'/%3e%3c/svg%3e");
}
.form-check-input[type=checkbox]:indeterminate {
	background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='4' d='M6 10h8'/%3e%3c/svg%3e");
}
.form-check-input[type=radio] {
	border-radius: 100%;
}
.form-check-input:checked[type=radio] {
	background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3ccircle cx='10' cy='10' r='5' fill='%23fff' stroke-width='0'/%3e%3c/svg%3e");
}

.col-form-label {
	display: inline-block;
	vertical-align: bottom;
	align-self: center;
}

.col-form-label-custom {
	display: -ms-flexbox;
	display: flex;
	flex-direction: row;
	align-self: center;
	align-content: flex-end;
	font-size: 0.9rem;
}
.col-check-label {
	display: inline-block;
	vertical-align: bottom;
	margin-top: auto;
	margin-left: 10px;
}

.form-input-list .form-check-inline {
	display: block;
	margin: 8px 0;
}
.form-input-list .form-check-input {
	
}


/*** bootstrap stub ***/
.d-flex {
	display: -ms-flexbox;
	-ms-flex-wrap: wrap;
	display: flex;
	flex-wrap: wrap;
}
.align-content-center {
	-ms-flex-line-pack: center;
	align-content: center;
}
.align-content-between {
	-ms-flex-line-pack: justify;
	align-content: space-between;
}
.align-content-stretch {
	-ms-flex-line-pack: stretch;
	align-content: stretch;
}
.align-content-end {
	-ms-flex-line-pack: flex-end;
	align-content: flex-end;
}
.align-items-center {
	align-items: center;
}
.justify-content-between {
	justify-content: space-between;
}
.justify-content-center {
	justify-content: center;
}

.row {
	box-sizing: border-box;
	display: -ms-flexbox;
	-ms-flex-wrap: wrap;
	display: flex;
	flex-wrap: wrap;
}
.row > * {
	flex-shrink: 0;
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}

.col {
	flex: 1 0 0%;
}
.row-cols-auto > * {
	flex: 0 0 auto;
	width: auto;
}

.col-12 {
	flex: 0 0 auto;
	width: 100%;
}
.col-10 {
	-ms-flex: 0 0 83.3333%;
	flex: 0 0 83.3333%;
	width: 83.3333%;
}
.col-9 {
	-ms-flex: 0 0 75%;
	flex: 0 0 75%;
	width: 75%;
}
.col-8 {
	-ms-flex: 0 0 66.6666%;
	flex: 0 0 66.6666%;
	width: 66.6666%;
}
.col-7 {
	-ms-flex: 0 0 58.3333%;
	flex: 0 0 58.3333%;
	width: 58.3333%;
}
.col-6 {
	-ms-flex: 0 0 50%;
	flex: 0 0 50%;
	width: 50%;
}
.col-5 {
	-ms-flex: 0 0 41.6666%;
	flex: 0 0 41.6666%;
	width: 41.6666%;
}
.col-4 {
	-ms-flex: 0 0 33.3333%;
	flex: 0 0 33.3333%;
	width: 33.3333%;
}
.col-3 {
	-ms-flex: 0 0 25%;
	flex: 0 0 25%;
	width: 25%;
}
.col-2 {
	-ms-flex: 0 0 16.6666%;
	flex: 0 0 16.6666%;
	width: 16.6666%;
}
.col-1 {
	-ms-flex: 0 0 8.3333%;
	flex: 0 0 8.3333%;
	width: 8.3333%;
}

.col-sm-12,.col-md-12,.col-12,
.col-sm-10,.col-md-10,.col-10,
.col-sm-9,.col-md-9,.col-9,
.col-sm-8,.col-md-8,.col-8,
.col-sm-7,.col-md-7,.col-7,
.col-sm-6,.col-md-6,.col-6,
.col-sm-5,.col-md-5,.col-5,
.col-sm-4,.col-md-4,.col-4,
.col-sm-3,.col-md-3,.col-3,
.col-sm-2,.col-md-2,.col-2,
.col-sm-1,.col-md-1,.col-1,
.col {
	box-sizing: border-box;
}

@media (min-width: 575px) {
	.col-sm-12 {
		flex: 0 0 auto;
		width: 100%;
	}
	.col-sm-10 {
		-ms-flex: 0 0 83.3333%;
		flex: 0 0 83.3333%;
		width: 83.3333%;
	}
	.col-sm-9 {
		-ms-flex: 0 0 75%;
		flex: 0 0 75%;
		width: 75%;
	}
	.col-sm-8 {
		-ms-flex: 0 0 66.6666%;
		flex: 0 0 66.6666%;
		width: 66.6666%;
	}
	.col-sm-7 {
		-ms-flex: 0 0 58.3333%;
		flex: 0 0 58.3333%;
		width: 58.3333%;
	}
	.col-sm-6 {
		-ms-flex: 0 0 50%;
		flex: 0 0 50%;
		width: 50%;
	}
	.col-sm-5 {
		-ms-flex: 0 0 41.6666%;
		flex: 0 0 41.6666%;
		width: 41.6666%;
	}
	.col-sm-4 {
		-ms-flex: 0 0 33.3333%;
		flex: 0 0 33.3333%;
		width: 33.3333%;
	}
	.col-sm-3 {
		-ms-flex: 0 0 25%;
		flex: 0 0 25%;
		width: 25%;
	}
	.col-sm-2 {
		-ms-flex: 0 0 16.6666%;
		flex: 0 0 16.6666%;
		width: 16.6666%;
	}
	.col-sm-1 {
		-ms-flex: 0 0 8.3333%;
		flex: 0 0 8.3333%;
		width: 8.3333%;
	}
}

@media (min-width: 880px) {
	.col-md {
		flex: 1 0 0%;
	}
	.col-md-12 {
		flex: 0 0 auto;
		width: 100%;
	}
	.col-md-10 {
		-ms-flex: 0 0 83.3333%;
		flex: 0 0 83.3333%;
		width: 83.3333%;
	}
	.col-md-9 {
		-ms-flex: 0 0 75%;
		flex: 0 0 75%;
		width: 75%;
	}
	.col-md-8 {
		-ms-flex: 0 0 66.6666%;
		flex: 0 0 66.6666%;
		width: 66.6666%;
	}
	.col-md-7 {
		-ms-flex: 0 0 58.3333%;
		flex: 0 0 58.3333%;
		width: 58.3333%;
	}
	.col-md-6 {
		-ms-flex: 0 0 50%;
		flex: 0 0 50%;
		width: 50%;
	}
	.col-md-5 {
		-ms-flex: 0 0 41.6666%;
		flex: 0 0 41.6666%;
		width: 41.6666%;
	}
	.col-md-4 {
		-ms-flex: 0 0 33.3333%;
		flex: 0 0 33.3333%;
		width: 33.3333%;
	}
	.col-md-3 {
		-ms-flex: 0 0 25%;
		flex: 0 0 25%;
		width: 25%;
	}
	.col-md-2 {
		-ms-flex: 0 0 16.6666%;
		flex: 0 0 16.6666%;
		width: 16.6666%;
	}
	.col-md-1 {
		-ms-flex: 0 0 8.3333%;
		flex: 0 0 8.3333%;
		width: 8.3333%;
	}
	
	.offset-md-6 {
		margin-left: 50%;
	}
}

@media (min-width: 1100px) {
	.col-lg {
		flex: 1 0 0%;
	}
	.col-lg-12 {
		flex: 0 0 auto;
		width: 100%;
	}
	.col-lg-10 {
		flex: 0 0 83.3333%;
		width: 83.3333%;
	}
	.col-lg-9 {
		flex: 0 0 75%;
		width: 75%;
	}
	.col-lg-8 {
		flex: 0 0 66.6666%;
		width: 66.6666%;
	}
	.col-lg-7 {
		flex: 0 0 58.3333%;
		width: 58.3333%;
	}
	.col-lg-6 {
		flex: 0 0 50%;
		width: 50%;
	}
	.col-lg-5 {
		flex: 0 0 41.6666%;
		width: 41.6666%;
	}
	.col-lg-4 {
		flex: 0 0 33.3333%;
		width: 33.3333%;
	}
	.col-lg-3 {
		flex: 0 0 25%;
		width: 25%;
	}
	.col-lg-2-4 {
		flex: 0 0 20%;
		width: 20%;		
	}
	.col-lg-2 {
		flex: 0 0 16.6666%;
		width: 16.6666%;
	}
	.col-lg-1 {
		flex: 0 0 8.3333%;
		width: 8.3333%;
	}
	
	.offset-lg-6 {
		margin-left: 50%;
	}
	
	.form-row .col-lg-6:first-child {
		padding-right: calc(var(--base-padding) / 2);
	}
	.form-row .col-lg-6:last-child {
		padding-left: calc(var(--base-padding) / 2);
	}
}

@media (min-width: 1280px) {
	.col-xl {
		flex: 1 0 0%;
	}
	.col-xl-12 {
		flex: 0 0 auto;
		width: 100%;
	}
	.col-xl-10 {
		flex: 0 0 83.3333%;
		width: 83.3333%;
	}
	.col-xl-9 {
		flex: 0 0 75%;
		width: 75%;
	}
	.col-xl-8 {
		flex: 0 0 66.6666%;
		width: 66.6666%;
	}
	.col-xl-7 {
		flex: 0 0 58.3333%;
		width: 58.3333%;
	}
	.col-xl-6 {
		flex: 0 0 50%;
		width: 50%;
	}
	.col-xl-5 {
		flex: 0 0 41.6666%;
		width: 41.6666%;
	}
	.col-xl-4 {
		flex: 0 0 33.3333%;
		width: 33.3333%;
	}
	.col-xl-3 {
		flex: 0 0 25%;
		width: 25%;
	}
	.col-xl-2-4 {
		flex: 0 0 20%;
		width: 20%;		
	}
	.col-xl-2 {
		flex: 0 0 16.6666%;
		width: 16.6666%;
	}
	.col-xl-1 {
		flex: 0 0 8.3333%;
		width: 8.3333%;
	}
}

/*** margin / padding ***/
.pt-0 {
	padding-top: 0;
}
.pb-0 {
	padding-bottom: 0;
}
.ps-0 {
	padding-left: 0;
}
.pe-0 {
	padding-right: 0;
}

.g-1 {
	gap: var(--base-padding);
}
.g-3 {
	gap: calc(var(--base-padding) * 2);
}

.p-1 {
	padding: var(--base-padding);
}
.px-1 {
	padding-left: var(--base-padding);
	padding-right: var(--base-padding);
}
.py-1 {
	padding-top: var(--base-padding);
	padding-bottom: var(--base-padding);
}
.pt-1 {
	padding-top: var(--base-padding);
}
.pb-1 {
	padding-bottom: var(--base-padding);
}
.p-3 {
	padding: calc(var(--base-padding) * 2);
}
.px-3 {
	padding-left: calc(var(--base-padding) * 2);
	padding-right: calc(var(--base-padding) * 2);
}
.py-3 {
	padding-top: calc(var(--base-padding) * 2);
	padding-bottom: calc(var(--base-padding) * 2);
}
.pt-3 {
	padding-top: calc(var(--base-padding) * 2);
}
.pb-3 {
	padding-bottom: calc(var(--base-padding) * 2);
}

.m-1 {
	margin: var(--base-margin);
}
.mx-1 {
	margin-left: var(--base-margin);
	margin-right: var(--base-margin);
}
.my-1 {
	margin-top: var(--base-margin);
	margin-bottom: var(--base-margin);
}
.mt-1 {
	margin-top: var(--base-margin);
}
.mb-1 {
	margin-bottom: var(--base-margin);
}
.m-3 {
	margin: calc(var(--base-margin) * 2);
}
.mx-3 {
	margin-left: calc(var(--base-margin) * 2);
	margin-right: calc(var(--base-margin) * 2);
}
.my-3 {
	margin-top: calc(var(--base-margin) * 2);
	margin-bottom: calc(var(--base-margin) * 2);
}
.mt-3 {
	margin-top: calc(var(--base-margin) * 2);
}
.mb-3 {
	margin-bottom: calc(var(--base-margin) * 2);
}

.full-size {
	display: block;
	width: 100%;
	height: auto;
}
.w-100 {
	width: 100%;
}
.h-100 {
	height: 100%;
}

#header {
	position: absolute;
	z-index: 20;
	top: 0;
	left: 0;
	right: 0;
	height: 104px;
	padding-top: 20px;
	padding-bottom: 20px;
}
#footer {
	text-align: center;
	padding-top: 20px;
	padding-bottom: 20px;	
}

#navigation-show {
	display: none;
}
#navigation-toggle {
	display: block;
	position: relative;
	z-index: 20;
	color: var(--color-text);
	border-radius: 10px;
	width: 60px;
	height: 60px;
	cursor: pointer;
}
#navigation-toggle > span,
#navigation-toggle:after,
#navigation-toggle:before {
	position: relative;
	left: 16px;
	display: block;
	content: ' ';
	background: var(--color-text);
	width: 28px;
	height: 3px;
	transition: 0.2s all linear;
}
#navigation-toggle:after {
	top: 15px;
}
#navigation-toggle > span {
	top: 26px;
}
#navigation-toggle:before {
	top: 37px;
}
#navigation-toggle:hover {
	background: var(--color-light);	
}

#navigation-show:checked ~ #navigation-toggle span {
	width: 0;
}
#navigation-show:checked ~ #navigation-toggle:hover {
}
#navigation-show:checked ~ #navigation-toggle:after,
#navigation-show:checked ~ #navigation-toggle:before {
	left: 18px;
	width: 25px;
	height: 4px;
}
#navigation-show:checked ~ #navigation-toggle:after {
	transform: rotate(45deg);
	top: 21px;
}
#navigation-show:checked ~ #navigation-toggle:before {
	transform: rotate(-45deg);
	top: 28px;
}

#navigation {
	display: flex;
	flex-direction: column;
	align-items: end;
	width: 100%;
	flex: 1 0;
}
#menu {
	position: absolute;
	top: 104px;
	left: 0;
	right: 0;
	z-index: 80;
	width: 100%;
	max-width: 0;
	max-height: 0;
	overflow: hidden;
	transition: 0.3s all linear;
}
#navigation-show:checked ~ #menu {
	max-width: 100vw;
	max-height: calc(100vh - 100px);
}

#menu .navbar-nav {
	display: flex;
	flex-direction: column;
	justify-content: stretch;
	list-style: none;
	margin: 0;
	padding: 0 var(--base-padding);
	font-size: 1.25rem;
}
#menu li {
	margin: 0;
	padding: 0;	
}
#menu a {
	display: inline-block;
	color: var(--color-text);
	text-decoration: none;
	text-transform: uppercase;
	font-weight: 600;
	padding: 13px 0;
}
#menu a:hover {
	color: var(--color-link-hover);
}
#menu .active a {
	color: var(--color-text);
}

#header .contain,
#footer .contain {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
}

#footer-contact {
	display: flex;
	flex-direction: column;
	justify-content: space-evenly;
	align-content: space-evenly;
}

.form-contact {
	padding: var(--base-margin) calc(var(--base-margin) * 1.5);
	background: var(--color-light);	
}
#contact-form {
	margin-top: 2rem;
}


.social {
	display: inline-block;
	width: 41px;
	height: 41px;
	margin: auto 5px;
}

.social-yt {
	background-image: url("data:image/svg+xml,%3csvg width='41' height='41' version='1.1' viewBox='-9822 6395 40.71 40.71' xmlns='http://www.w3.org/2000/svg'%3e%3cg transform='translate(-118)'%3e%3cg transform='translate(-9703 6395)'%3e%3cpath transform='translate(-4.426 -6.34)' d='m36.16 20.52c-0.2729-1.037-1.092-1.857-2.143-2.143-1.885-0.5052-9.449-0.5052-9.449-0.5052s-7.565 0-9.448 0.5052c-1.038 0.2729-1.857 1.092-2.144 2.143-0.5052 1.885-0.5052 5.817-0.5052 5.817s0 3.933 0.5052 5.817c0.2729 1.038 1.092 1.857 2.144 2.144 1.884 0.5052 9.448 0.5052 9.448 0.5052s7.565 0 9.449-0.5052c1.037-0.2729 1.857-1.092 2.143-2.144 0.5052-1.884 0.5052-5.817 0.5052-5.817s0-3.932-0.5052-5.817m-14.01 9.449v-7.264l6.281 3.632z' fill='%235d5454' fill-rule='evenodd'/%3e%3cpath transform='translate(-.3548 -.3548)' d='m20.35 1c10.69 0 19.36 8.67 19.36 19.35 0 5.008-1.907 9.577-5.232 13.23-3.345 3.682-8.453 6.131-14.13 6.131-10.69 0-19.35-8.67-19.35-19.36 0-10.69 8.67-19.35 19.35-19.35z' fill='none' stroke='%235d5454' stroke-width='2'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e");
}
.social-insta {
	background-image: url("data:image/svg+xml,%3csvg width='41' height='41' version='1.1' viewBox='-9822 6395 40.71 40.71' xmlns='http://www.w3.org/2000/svg'%3e%3cg transform='translate(-59)'%3e%3cg transform='translate(-9762 6395)'%3e%3cpath transform='translate(-5.678 -5.675)' d='m25.68 15.99c-2.635 0-2.963 0.01097-3.991 0.05419-1.027 0.04387-1.739 0.2084-2.351 0.4484-0.6335 0.2626-1.181 0.5903-1.716 1.126-0.5355 0.5355-0.8748 1.083-1.115 1.717-0.24 0.6123-0.4045 1.323-0.4477 2.35-0.04452 1.028-0.05548 1.367-0.05548 3.991s0.01097 2.963 0.05548 3.991c0.04323 1.028 0.2077 1.738 0.4477 2.351 0.2516 0.6335 0.58 1.181 1.115 1.716 0.5355 0.5361 1.083 0.8748 1.716 1.115 0.6123 0.2406 1.324 0.4045 2.351 0.4484 1.028 0.04322 1.366 0.05419 3.991 0.05419 2.624 0 2.963-0.01097 3.99-0.05419 1.028-0.04387 1.739-0.2077 2.351-0.4484 0.6348-0.2516 1.181-0.5794 1.717-1.115 0.5355-0.5355 0.8742-1.083 1.115-1.716 0.2406-0.6129 0.4045-1.323 0.4484-2.351 0.04387-1.028 0.05484-1.367 0.05484-3.991s-0.01097-2.963-0.05484-3.991c-0.04387-1.028-0.2077-1.738-0.4484-2.35-0.251-0.6342-0.5794-1.181-1.115-1.717-0.5361-0.5361-1.082-0.8748-1.717-1.115-0.6123-0.2406-1.323-0.4045-2.351-0.4484-1.028-0.04323-1.355-0.06516-3.99-0.06516m0 4.712c-2.744 0-4.975 2.23-4.975 4.975 0 2.745 2.232 4.975 4.975 4.975 2.744 0 4.975-2.23 4.975-4.975 0-2.745-2.219-4.975-4.975-4.975m0 8.211c-1.783 0-3.226-1.443-3.226-3.225 0-1.782 1.443-3.225 3.226-3.225 1.782 0 3.225 1.443 3.225 3.225 0 1.782-1.443 3.225-3.225 3.225m6.331-8.408c0 0.6452-0.5252 1.159-1.159 1.159-0.6452 0-1.159-0.5245-1.159-1.159 0-0.6342 0.5252-1.159 1.159-1.159 0.6445 0 1.159 0.5245 1.159 1.159' fill='%235d5454' fill-rule='evenodd'/%3e%3cpath transform='translate(-.3548 -.3548)' d='m20.35 1c10.69 0 19.36 8.67 19.36 19.35 0 10.68-8.671 19.36-19.36 19.36-10.69 0-19.35-8.67-19.35-19.36 0-10.69 8.67-19.35 19.35-19.35z' fill='none' stroke='%235d5454' stroke-width='2'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e");
}
.social-fb {
	background-image: url("data:image/svg+xml,%3csvg width='41' height='41' version='1.1' viewBox='-9822 6395 40.71 40.71' xmlns='http://www.w3.org/2000/svg'%3e%3cg transform='translate(0 -1)'%3e%3cg transform='translate(-9821 6396)'%3e%3cpath transform='translate(-.3548 -.3548)' d='m20.35 1c10.69 0 19.36 8.67 19.36 19.35 0 10.68-8.671 19.36-19.36 19.36-10.69 0-19.35-8.67-19.35-19.36 0-10.69 8.67-19.35 19.35-19.35z' fill='none' stroke='%235d5454' stroke-width='2'/%3e%3cpath transform='translate(-5.945 -4.463)' d='m21.67 43.48v-13.52h-4.915v-5.599h4.915v-4.26c0-4.847 2.895-7.523 7.305-7.523 2.116 0 4.328 0.3819 4.328 0.3819v4.766h-2.43c-2.403 0-3.154 1.488-3.154 3.017v3.632h5.366l-0.86 5.598h-4.506v13.52z' fill='%235d5454' fill-rule='evenodd'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e");
}
.social:hover {
	transform: scale(1.1);
}

/*** dialog + polyfill ***/
dialog {
	display: none;
	position: absolute;
	z-index: 999999;
	left: 0;
	right: 0;
	width: -moz-fit-content;
	width: -webkit-fit-content;
	width: fit-content;
	height: -moz-fit-content;
	height: -webkit-fit-content;
	height: fit-content;
	margin: auto;
	padding: 0;
	background: #fff;
	color: #000;
	border: 1px solid #999;
	transition: all 0.2s linear;
}
dialog[open] {
	display: block;
}
dialog + .backdrop {
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	background: rgba(0,0,0,0.2);
}
._dialog_overlay {
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
}
dialog.fixed {
	position: fixed;
	top: 50%;
	transform: translate(0, -50%);
}


.modal-dialog {
	border-radius: 6px;
	transform: translate(0, -50%) scale(0.1);
	min-width: 300px;
	max-width: 540px;
}
*::-ms-backdrop, .modal-dialog { width: 540px; }	/* IE 11 max- cant center */
@media screen\0 { .modal-dialog { width: 540px; } } /* IE 9,10 */

.modal-dialog.jdialog-show {
	transform: translate(0) scale(1);
}
.modal-dialog.jdialog-show.fixed {
	transform: translate(0, -50%) scale(1);
}
.modal-header .btn-close {
	box-sizing: content-box;
	background: transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") center/1em auto no-repeat;
	width: 1em;
	height: 1em;
	color: #000;
	border: none;
	opacity: 0.5;
}
.modal-header .btn-close:hover {
	opacity: 0.8;
	cursor: pointer;
}
.modal-header {
	display: flex;
	justify-content: space-between;
	padding: 15px 15px 10px 15px;
	border-bottom: 1px solid #999;
}
.modal-header h1 {
	font-weight: normal;
	font-size: 1.2em;
	line-height: 1em;
	margin: 0;
	padding: 0;
}
.modal-body {
	padding: 0 15px;
	margin: 15px 0;
}
.modal-footer {
	border-radius: 0 0 5px 5px;
	padding: 8px 15px;
	text-align: right;
	background: #ccc;
}


@media (max-width: 575px) {
	.nav-brand img,
	#footer-logo img {
		width: 300px;
	}
}
@media (min-width: 575px) {
	.grid {
		grid-template-columns: repeat(3, 1fr);
	}
	.grid-11 {
		grid-area: span 1 / span 1;
	}
	.grid-22 {
		grid-area: span 2 / span 2;
	}
	.grid-21 {
		grid-area: span 2 / span 1;
	}
	.grid-12 {
		grid-area: span 1 / span 2;
	}
}

@media (min-width: 880px) {
	:root {
		--base-margin: 15px;
		--base-padding: 30px;
	}
	
	#footer {
		text-align: left;
	}
	#footer-social {
		text-align: center;
	}
	
	.spacing {
		padding-left: calc(var(--base-margin) * 2);
		padding-right: calc(var(--base-margin) * 2);
	}
}

@media (min-width: 1100px) {
	
	#navigation-toggle {
		display: none;
	}
	#menu {
		position: initial;
		top: initial;
		right: initial;
		background: none;
		padding: 0;
		width: 100%;
		border-radius: 0;
	}
	#menu {
		max-width: initial;
		max-height: initial;
	}
	#menu .navbar-nav {
		flex-direction: row;
		justify-content: space-evenly;
		padding: 0;
	}
	#header .contain {
		justify-content: stretch;
	}
	#footer-social {
		text-align: right;
	}
	
	.spacing {
		padding-left: calc(var(--base-margin) * 3);
		padding-right: calc(var(--base-margin) * 3);
	}
}