:root {
	--font-size: 17px;
	--container-padding: 80px;
	--header-height: 140px;
	--text-color: #000;
	--button-text-color: #fff;
	--button-color: #000;
	--highlight: #666;
	--main-font: 'Arial', sans-serif;
	--alt-font: serif;
}
@media (max-width: 1600px) {
	:root {
		--container-padding: 40px;
	}
}
@media (max-width: 800px) {
	:root {
		--font-size: 16px;
		--container-padding: 20px;
		--header-height: 100px;
	}
}

*, *::before, *::after {
	margin: 0;
	padding: 0;
	font: inherit;
	box-sizing: border-box;
}
html {
	font-family: var(--main-font);
	font-size: var(--font-size);
	font-weight: normal;
	line-height: 1.4;
}
body {
	min-height: 280px;
	color: var(--text-color);
	fill: var(--text-color:);
	background-color: #fff;
	hyphens: none;
}
#wrapper.fixed-footer {
	position: relative;
	min-height: 100dvh;
	padding-bottom: 200px; /* footer starting height */
}

:where(a, u, ins, span) {
	text-underline-offset: 0.2em;
}
code, pre, kbd, samp {
	font-family: ui-monospace, monospace;
}
strong, b, .strong {
	font-weight: bold;
}
em, i, .italic {
	font-style: italic;
}
u, .underline {
	text-decoration: underline;
}
.strike, .strikethrough {
	text-decoration: line-through;
}
sup, sub {
	font-size: 0.7em;
	line-height: 0;
}
sup {
	vertical-align: super;
}
sub {
	vertical-align: sub;
}
ol, ul {
	list-style: none;
}

hr {
	height: 1px;
	border: 0;
	background-color: var(--text-color);
	border-color: var(--text-color);
}

img, svg, video {
	width: 100%;
	height: auto;
}
img {
	border: 0;
}
svg {
	fill: inherit;
}
.lottie {
	font-size: 0;
}

a {
	text-decoration: none;
	outline: none;
	color: inherit;
	fill: inherit;
	transition: color 0.2s;
}
a:not(.btn, .button):focus-visible {
	outline: auto;
}
a svg {
	transition: fill 0.2s;
}
a:hover {
	color: var(--highlight) !important;
	fill: var(--highlight) !important;
}

table {
	width: 100%;
	border-collapse: collapse;
	border-spacing: 0;
}

p {
	margin-bottom: 1em;
}

h1, h2, h3, h4, h5, h6 {
	font-family: var(--alt-font);
	line-height: 1.3;
}

.lowercase {
	text-transform: lowercase;
}
.uppercase {
	text-transform: uppercase;
}
.capitalize {
	text-transform: capitalize;
}
.nowrap {
	white-space: nowrap;
}
.no-margin {
	margin-bottom: 0 !important;
}

.highlight {
	color: var(--highlight);
}
.alt-font {
	font-family: var(--alt-font);
}

.position-relative {
	position: relative;
}
.position-absolute {
	position: absolute;
}
.position-fixed {
	position: fixed;
}
.z-index-1 {
	z-index: 1;
}
.z-index-2 {
	z-index: 2;
}

.full-height {
	height: 100dvh;
}
.full-height-no-header {
	height: calc(100dvh - var(--header-height));
}
.min-full-height {
	min-height: 100dvh;
}
.min-full-height-no-header {
	min-height: calc(100dvh - var(--header-height));
}

.content-box {
	box-sizing: content-box;
}

.round,
.rounded {
	font-size: 0;
	overflow: hidden;
	border-radius: 50%;
}

.hide,
.hidden {
	display: none !important;
}
.disabled {
	pointer-events: none !important;
	opacity: 0.5;
}

.no-font-size {
	font-size: 0;
	letter-spacing: 0;
}

.no-decoration,
.no-decoration a {
	text-decoration: none !important;
}

.no-pointer-events {
	pointer-events: none;
}
.all-pointer-events {
	pointer-events: all;
}

.object-cover,
.object-fit-cover {
	object-fit: cover;
}

.aspect-ratio {
	aspect-ratio: 1/1;
	object-fit: cover;
}
.aspect-ratio.ratio-2-3 { aspect-ratio: 2/3; }
.aspect-ratio.ratio-3-4 { aspect-ratio: 3/4; }
.aspect-ratio.ratio-4-3 { aspect-ratio: 4/3; }
.aspect-ratio.ratio-3-2 { aspect-ratio: 3/2; }
.aspect-ratio.ratio-16-10 { aspect-ratio: 16/10; }
.aspect-ratio.ratio-16-9 { aspect-ratio: 16/9; }
.aspect-ratio.ratio-2-1 { aspect-ratio: 2/1; }
.aspect-ratio.ratio-3-1 { aspect-ratio: 3/1; }

.btn,
button,
input,
input[type=search], /* for safari styling */
textarea,
select {
	width: 100%;
	padding: 0.5em 0.65em;
	color: var(--text-color);
	background: none;
	border: 1px solid var(--button-color);
	border-radius: 0; /* remove osx safari styling */
	margin: 0; /* remove ios styling */
	outline: none; /* remove chrome outline */
	-webkit-appearance: none;
	appearance: none;
	transition: border-color 0.2s;
}
textarea {
	max-width: 100%;
	min-height: 2.2em;
	max-height: 20em;
	resize: vertical;
	vertical-align: top; /* remove space under text areas */
}
input[type="submit"]::-moz-focus-inner { /* firefox extra submit padding */
	padding: 0;
	border: 0
}
input[type=search]::-webkit-search-decoration, input[type=search]::-webkit-search-cancel-button { /* remove X from search fields */
	display: none;
}
input[type="radio"],
input[type="checkbox"] {
	width: auto;
	margin-left: 0;
	margin-right: 0.4em !important;
	padding: 0.5em;
	vertical-align: middle;
	background-repeat: no-repeat;
	background-position: center;
}
input[type="radio"] {
	border-radius: 50%;
}
input[type=radio]:checked {
	background-image: url('../media/radio.svg');
}
input[type=checkbox]:checked {
	background-image: url('../media/checkmark.svg');
}
.input-group > * { /* radio/checkbox + span group (inside a label) */
	vertical-align: middle;
}
input:not([type="submit"]):focus-visible,
textarea:focus-visible,
select:focus-visible {
	border-color: var(--highlight);
}
.btn,
button,
input[type="submit"] {
	display: inline-block;
	width: auto;
	text-align: center;
	color: var(--button-text-color);
	background-color: var(--button-color);
	border-color: var(--button-color);
	cursor: pointer;
	transition: color 0.2s, background-color 0.2s, border-color 0.2s;
}
.btn:hover, .btn:focus-visible,
button:hover, button:focus-visible,
input[type="submit"]:hover, input[type="submit"]:focus-visible {
	color: var(--button-text-color) !important;
	fill: var(--button-text-color) !important;
	background-color: var(--highlight);
	border-color: var(--highlight);
}
input::placeholder,
textarea::placeholder {
	color: #666 !important;
}

.hide-scrollbar {
	overflow: auto;
	scrollbar-width: none; /* firefox */
}
.hide-scrollbar::-webkit-scrollbar { /* webkit */
	display: none;
}

.background-image,
.background-contain,
.background-cover,
.background-fixed {
	background-repeat: no-repeat;
	background-position: center;
}
.background-image {
	background-size: 100% auto;
}
.background-contain {
	background-size: contain;
}
.background-cover {
	background-size: cover;
}
.background-fixed { /* not working on ios */
	background-attachment: fixed;
	background-size: cover;
}

.flex {
	display: flex;
}
.flex.column {
	flex-direction: column;
}

.h-center {
	text-align: center;
	margin-left: auto;
	margin-right: auto;
}
.v-center {
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
}
.over {
	position: absolute;
	width: 100%;
	height: 100%;
	left: 0;
	top: 0;
	pointer-events: none;
}
.over > * {
	pointer-events: all;
}
@media (max-width: 1200px) {
	.v-center.v-center-no-tablet {
		justify-content: normal;
	}
	.over.over-no-tablet {
		position: relative;
		height: auto;
		left: auto;
		top: auto;
	}
}
@media (max-width: 800px) {
	.v-center.v-center-no-mobile {
		justify-content: normal;
	}
	.over.over-no-mobile {
		position: relative;
		height: auto;
		left: auto;
		top: auto;
	}
}

/* svg-span */
.img-span > *,
.svg-span > * {
	display: inline-block;
	vertical-align: middle;
}
.img-span > img,
.svg-span > svg {
	width: auto;
	height: 1.4em;
}
.img-span > img {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}
.img-span > *:first-child,
.svg-span > *:first-child {
	margin-right: 0.7em;
}

/* loading system */
.loadme {
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.4s, transform 0.6s;
}
.loadme:not(.loadme-static) {
	transform: translateY(35px);
}
.loadme.loaded {
	opacity: 1;
	visibility: visible;
}
.loadme.loaded:not(.loadme-static) {
	transform: translateY(0);
}
footer.loadme.loaded { /* fix 1 bottom px bug */
	transform: none;
}

/* loader */
#h-loader {
	position: fixed;
	z-index: 9999;
	left: 0;
	top: 0;
	right: 0;
	bottom: 0;
	font-size: 0;
}
#h-loader svg {
	width: 60px;
	stroke: #666;
	stroke-width: 2px;
	animation: loader 1s infinite linear;
}
@keyframes loader {
	from { transform: rotate(0deg); }
	to { transform: rotate(360deg); }
}

/* text ticker */
.h-ticker {
	padding: 0.1em 0;
	white-space: nowrap;
	line-height: 1;
	overflow: hidden;
}
.h-ticker.active {
	display: flex;
}
.h-ticker.active > * {
	animation: ticker 15s linear infinite;
}
.h-ticker.rtl.active > * {
	animation: ticker-rtl 15s linear infinite;
}
@keyframes ticker {
	from { transform: translateX(0); }
	to { transform: translateX(-100%); }
}
@keyframes ticker-rtl {
	from { transform: translateX(-100%); }
	to { transform: translateX(0); }
}

/* animations */
.blink-animation {
	animation: blink-animation 1s alternate infinite;
}
@keyframes blink-animation {
	from { opacity: 0.5; }
	to { opacity: 1; }
}

.spin-animation {
	transform-origin: 50% 50%;
	animation: spin-animation 1s infinite linear;
}
@keyframes spin-animation {
	from { transform: rotate(0deg); }
	to { transform: rotate(360deg); }
}

.scroll-me-down-animation {
	animation: scroll-me-down-animation 5s 1s infinite;
}
@keyframes scroll-me-down-animation {
	0% { transform: translateY(0); }
	5% { transform: translateY(0.4em); }
	12% { transform: translateY(0); }
	15% { transform: translateY(0); }
	20% { transform: translateY(0.4em); }
	27% { transform: translateY(0); }
	100% { transform: translateY(0); }
}

/* search fields */
.search-form > div {
	white-space: nowrap;
}
.search-form .search-field {
	max-width: 18rem;
}
.search-form .search-submit {
	width: auto;
	margin-left: 0.4em;
}
.search-form .screen-reader-text {
	display: none;
}
@media (max-width: 600px) {
	.search-form .search-field {
		width: 60%;
	}
}

/* archive pages */
body.search #title-block {
	z-index: 1;
}
body.archive #title-block .title-type {
	display: none;
}
body.error404 #title-block .head-search,
body.search #title-block .head-search {
	margin-top: 1em;
}
body.search .search-excerpt,
body.search .search-highlight {
	background-color: rgba(255, 255, 0, 0.8);
}

/* blocks */
section {
	position: relative;
	margin-bottom: 60px;
}
section.small-margin {
	margin-bottom: 20px;
}
section.large-margin {
	margin-bottom: 120px;
}
section.largest-margin {
	margin-bottom: 160px;
}
section.no-margin {
	margin-bottom: -1px;
}
.container {
	position: relative;
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 var(--container-padding);
	box-sizing: content-box;
}
.container.full-width {
	max-width: none;
}
.container.limited-width {
	max-width: 720px;
}
.container.no-padding {
	padding-left: 0;
	padding-right: 0;
}
@media (max-width: 800px) {
	section {
		margin-bottom: 40px;
	}
	section.small-margin {
		margin-bottom: 20px;
	}
	section.large-margin {
		margin-bottom: 60px;
	}
	section.largest-margin {
		margin-bottom: 100px;
	}
}

/* pagination */
.post-pagination,
.load-more-posts-container {
	margin-top: 2.5em;
	text-align: center;
}
.post-pagination > * {
	text-decoration: none !important;
	text-transform: lowercase;
	margin-bottom: 0;
	font-size: 1.1em;
	vertical-align: middle;
}
.post-pagination .page-numbers {
	margin: 0 0.25em;
	font-weight: bold;
}
.post-pagination .page-numbers.current {
	text-decoration: underline !important;
}
.post-pagination .page-arrows.prev-page {
	margin-right: 0.9em;
}
.post-pagination .page-arrows.next-page {
	margin-left: 0.9em;
}
@media (max-width: 600px) {
	.post-pagination .page-arrows .text {
		display: none;
	}
}

/* top/bottom info notice */
.h-info-notice {
	display: none;
	position: fixed;
	z-index: 111;
	width: 100%;
	left: 0;
	bottom: 0;
	color: #333;
	background-color: #eee;
}
.h-info-notice > .container {
	display: flex;
	justify-content: space-between;
	gap: 1.25rem;
	padding-top: 1.25rem;
	padding-bottom: 1.25rem;
}
.h-info-notice .text-content {
	font-size: 0.85rem;
	letter-spacing: 0;
}
.h-info-notice .text-content > * {
	line-height: 1.4;
}
.h-info-notice .text-content > *:not(:last-child) {
	margin-bottom: 0.6em;
}
.h-info-notice .text-content a {
	margin-top: 0;
	font-size: 1em;
	text-decoration: underline;
}
.h-info-notice .text-content .accept-btn {
	width: auto !important;
	height: auto !important;
	text-decoration: none !important;
	white-space: nowrap;
}
@media (max-width: 600px) {
	.h-info-notice > .container {
		flex-direction: column;
	}
}

/* popup notice */
.h-popup-notice {
	display: none;
	position: fixed;
	z-index: 112;
	width: 100%;
	height: 100%;
	left: 0;
	top: 0;
	background-color: rgba(255, 255, 255, 0.9);
}
.h-popup-notice .container > div {
	position: relative;
	background-color: #eee;
}
.h-popup-notice .container .text-content {
	padding: 40px;
}
.h-popup-notice .close-btn {
	position: absolute;
	width: 18px !important;
	height: 18px !important;
	right: 20px;
	top: 20px;
	stroke: #333;
	text-decoration: none !important;
}
@media (max-width: 600px) {
	.h-popup-notice .container .text-content {
		padding: 30px 20px;
	}
}

/* no js notice */
#no-javascript-notice {
	position: fixed;
	z-index: 9999;
	width: 100%;
	height: 100%;
	left: 0;
	top: 0;
	padding: 20px;
	color: #333;
	background-color: #fff;
	font-size: 1.8rem;
	font-family: Arial, sans-serif;
}

/* hamburger and close buttons */
.h-btn {
	display: inline-block;
	z-index: 1000;
	width: 22px;
	height: 22px;
	font-size: 0;
	cursor: pointer;
	stroke: var(--text-color);
	stroke-width: 1px;
	text-decoration: none !important;
	transition: stroke 0.2s;
}
.h-btn:hover {
	stroke: var(--highlight);
}
.hamburger-btn {
	width: 27px;
	height: 21px;
}

/* accordion */
.accordion > li:first-child {
	border-top: 1px solid;
}
.accordion > li {
	border-bottom: 1px solid;
}
.accordion > li > a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	line-height: 1;
	padding: 1.7em 0;
	color: inherit !important;
	stroke: var(--text-color);
}
.accordion > li > a > svg {
	width: 1.1em;
	height: 1.1em;
	flex-shrink: 0;
	margin-left: 1em;
	transform: rotate(45deg) scale(0.85);
	transition: transform 0.2s;
}
.accordion > li.active > a > svg {
	transform: rotate(180deg) scale(1);
}
.accordion > li > .text-content {
	display: none;
	max-width: 800px;
	padding: 0.5em 0 2em 0;
}

/* social shares/links */
.social-shares > * {
	display: inline-block;
	vertical-align: middle;
}
.social-shares > h4 {
	margin-right: 0.5em;
	margin-bottom: 0 !important;
	font-size: 1rem;
}
.social-shares:not(.text) > ul,
.social-links:not(.text) > ul {
	font-size: 0;
}
.social-shares:not(.text) > ul > li,
.social-links:not(.text) > ul > li {
	display: inline-block;
	width: 1.3rem;
}
.social-shares > ul > li:not(:first-child),
.social-links > ul > li:not(:first-child) {
	margin-left: 0.7rem;
}
.social-shares > ul > li a,
.social-links > ul > li a {
	display: block;
	transition: color 0.2s, border-color 0.2s;
}
.social-shares > ul > li a:hover,
.social-links > ul > li a:hover {
	border-color: var(--highlight);
}
.social-shares.text > ul > li a,
.social-links.text > ul > li a {
	display: inline-block;
}
.social-shares.rounded > ul > li a,
.social-links.rounded > ul > li a {
	padding: 6px;
	border: 1px solid var(--text-color);
	border-radius: 50%;
}
.social-shares > ul > li a svg,
.social-links > ul > li a svg {
	width: 100%;
	height: auto;
	vertical-align: middle;
}
.social-shares.text > ul > li a svg,
.social-links.text > ul > li a svg {
	display: none;
}
.social-shares > ul > li a span,
.social-links > ul > li a span {
	display: none;
	vertical-align: middle;
}
.social-shares.text > ul > li a span,
.social-links.text > ul > li a span {
	display: block;
}
.social-shares .linkedin,
.social-shares .email {
	display: none !important;
}

/* embeded youtube/vimeo video */
.video-link {
	position: relative;
	display: block;
	font-size: 0;
}
.video-link img,
.video-link .image {
	transition: opacity 0.2s;
}
.video-link:not(.disabled):hover img,
.video-link:not(.disabled):hover .image {
	opacity: 0.8;
}
.video-link .video-container {
	position: absolute;
	width: 100%;
	height: 100%;
	left: 0;
	top: 0;
	opacity: 0;
	background-color: var(--text-color);
}

/* under construction page */
body.under-construction #main-block .logo {
	max-width: 300px;
	margin: 0 auto 40px auto;
}

/* wpml developement notice */
.otgs-development-site-front-end {
	display: none !important;
}
