@font-face {
	font-family: ptsans;
	font-weight: 400;
	font-style: normal;

	font-display: fallback;
	src: url("../fonts/ptsans-normal-webfont.woff2") format("woff2"),
	url("../fonts/ptsans-normal-webfont.woff") format("woff");
}

@font-face {
	font-family: ptsans;
	font-weight: 700;
	font-style: normal;

	font-display: fallback;
	src: url("../fonts/ptsans-bold-webfont.woff2") format("woff2"),
	url("../fonts/ptsans-bold-webfont.woff") format("woff");
}

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

:root {
	--color-darkgray: hsl(0 0% 45%);
	--color-lightgray: hsl(0 0% 90%);
	--color-mainbg: hsl(0 0% 97.6%);
	--color-primary: hsl(220 100% 60%);
	--color-secondary: hsl(223 100% 49%);
	--color-text: hsl(0 0% 18.8%);
	--color-white: hsl(0 0% 100%);
}

[id] {
	scroll-margin-top: 6rem;
}

html {
	font-family: ptsans;
	font-size: 110%;
	font-weight: 400;

	overflow-x: hidden;

	color: var(--color-text);
	background-color: var(--color-mainbg);
	background-image: url("../img/bg_small.jpg");
	background-repeat: no-repeat;
	background-size: 100vh;

	-webkit-text-size-adjust: 100%;
	   -moz-text-size-adjust: 100%;
	        text-size-adjust: 100%;
}

body,
html {
	width: 100%;
	margin: 0;
}

svg:not(:root) {
	overflow: hidden;
}

button,
input,
optgroup,
select,
textarea {
	font: inherit;

	margin: 0;
}

button,
html input[type=button],
input[type=reset],
input[type=submit] {
	margin: 0;

	cursor: pointer;

	border: 0;
	background: 0;

	-webkit-appearance: none;
	   -moz-appearance: none;
	        appearance: none;
}

button[disabled],
html input[disabled] {
	cursor: not-allowed;
}

button::-moz-focus-inner,
input::-moz-focus-inner {
	padding: 0;

	border: 0;
}

input {
	line-height: normal;
}

input[type=checkbox],
input[type=radio] {
	padding: 0;
}

input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button {
	height: auto;
}

input[type=search] {
	-webkit-appearance: textfield;
	   -moz-appearance: textfield;
	        appearance: textfield;
}

input[type=search]::-webkit-search-cancel-button,
input[type=search]::-webkit-search-decoration {
	-webkit-appearance: none;
	        appearance: none;
}

legend {
	padding: 0;

	border: 0;
}

textarea {
	overflow: auto;
}

table {
	border-spacing: 0;
	border-collapse: collapse;
}

iframe {
	max-width: 100% !important;
}

.b-typo-h1,
.b-typo-h2,
.b-typo-h3 {
	font-weight: normal;

	width: 100%;
	margin: 0;
}

.b-typo-h1 {
	font-size: clamp(1.25rem, 0.975rem + 1.375vw, 2.625rem);

	flex-basis: 100%;

	margin: -2rem 0 1rem;
}

.b-typo-h2 {
	font-size: clamp(1.1rem, 0.975rem + 1.2vw, 2rem);

	padding: 1rem 0 2rem;

	text-align: center;

	color: var(--color-secondary);
}

.b-typo-h2.v-full {
	flex-basis: 100%;
}

.b-typo-h3 {
	font-size: clamp(0.975rem, 0.975rem + 1vw, 1.6rem);

	padding: 1rem 0 2rem;

	text-align: center;
}

.b-typo-h3.v-left {
	text-align: left;
}

.b-typo-p {
	line-height: 1.6rem;

	width: 100%;
	margin: 0 0 1rem;

	color: var(--color-darkgray);
}

.b-typo-p.v-light {
	color: var(--color-lightgray);
}

.c-header {
	position: sticky;
	top: 0;

	display: flex;
	justify-content: space-between;

	width: 100%;
	padding: 1rem 3rem 1rem;
}

.c-header.v-scrolled {
	background-color: var(--color-mainbg);
}

.c-logo {
	font-size: 1.6rem;
	font-weight: 700;

	margin: 1rem 0;

	white-space: nowrap;
}

.c-logo > .d-link > .d-pictogram,
.c-logo > .d-pictogram {
	display: inline;

	width: 15rem;
	margin-right: 0.5rem;

	vertical-align: middle;
}

.c-logo > .d-link {
	text-decoration: none;

	color: #333333;
}

.c-logo > .d-link:hover {
	color: #004a8f;
}

.c-navigation > .d-button {
	position: relative;
	z-index: 2;

	width: 2rem;
	height: 2rem;
	margin: 1.3rem -2rem 1.3rem 0;
}

.c-navigation > .d-button.v-pressed::after,
.c-navigation > .d-button.v-pressed::before {
	z-index: 5;
	top: 1rem;

	transform: rotate(45deg);

	background: var(--color-lightgray);
}

.c-navigation > .d-button.v-pressed::before {
	transform: rotate(-45deg);
}

.c-navigation > .d-button > .d-line {
	top: calc(50% - 1px);
}

.c-navigation > .d-button::after,
.c-navigation > .d-button::before,
.c-navigation > .d-button > .d-line {
	position: absolute;
	left: 0;

	width: 100%;
	height: 2px;

	content: "";

	background: var(--color-text);
}

.c-navigation > .d-button::before {
	top: 0.4rem;
}

.c-navigation > .d-button::after {
	bottom: 0.4rem;
}

.c-navigation > .d-button.v-pressed ~ .d-menu {
	display: block;
}

.c-navigation > .d-menu {
	position: absolute;
	z-index: 1;
	top: 0;
	right: 0;

	display: none;

	height: 100vh;
	padding: 1rem 2rem;
	padding-top: 1rem;
	padding-top: 7rem;

	background-color: var(--color-text);
}

.c-navigation > .d-menu > .d-list {
	display: flex;
	flex-direction: column;

	list-style: none;

	gap: 1rem;
}

.c-navigation > .d-menu > .d-list > .d-menuitem > .d-link {
	white-space: nowrap;
	text-decoration: none;

	color: var(--color-lightgray);
}

.c-navigation > .d-menu > .d-list > .d-menuitem > .d-link:hover {
	text-decoration: underline;

	color: var(--color-primary);
}

.c-button {
	font-size: clamp(1.2, 0.975rem + 1vw, 1rem);
	font-weight: bold;

	display: inline-block;

	padding: 0.8rem 2rem;

	text-decoration: none;

	color: var(--color-mainbg);
	border: 2px solid transparent;
	background-color: var(--color-primary);
}

.c-button:hover {
	color: var(--color-primary);
	border: 2px solid var(--color-primary);
	background-color: var(--color-mainbg);
}

.c-dot {
	display: inline-block;

	width: 0.8rem;
	height: 0.8rem;
	margin-right: 0.5rem;

	border-radius: 50%;
	background-color: var(--color-primary);
}

.c-dot.v-red {
	background-color: crimson;
}

.c-dot.v-green {
	background-color: darkgreen;
}

.c-hero {
	display: flex;
	align-content: center;
	flex-wrap: wrap;

	width: 100vw;
	height: 80vh;
	padding: 3rem;
}

.c-about {
	padding: 2rem;

	background-color: var(--color-mainbg);
}

.c-boxes {
	display: flex;
	flex-wrap: wrap;

	margin: 0 auto;

	gap: 1rem;
}

.c-boxes > .d-box {
	align-self: stretch;

	width: 100%;
}

.c-boxes > .d-box.v-img {
	align-content: center;
	order: 2;

	padding-bottom: 2rem;

	text-align: center;
}

.c-boxes > .d-box.v-img.v-map > .d-img {
	width: 50rem;
}

.c-boxes > .d-box.v-content {
	display: flex;
	align-content: center;
	flex-wrap: wrap;
	order: 1;
}

.c-boxes .d-img {
	max-width: 20rem;
	max-height: 30rem;
}

.c-boxes > .d-box .d-img.v-full {
	max-width: 100%;
}

.c-industries {
	padding: 2rem;

	background-color: var(--color-mainbg);
}

.c-industries > .d-cards {
	display: grid;

	grid-auto-rows: minmax(100px, auto);
	grid-gap: 2rem;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}

.c-industries > .d-cards > .d-card {
	padding-bottom: 1rem;

	text-align: center;

	border: 1px solid var(--color-lightgray);
	background-color: var(--color-white);
}

.c-industries > .d-cards > .d-card > .d-img {
	max-width: 100%;
	margin: 0 0 1rem;
}

.c-industries > .d-cards > .d-card > .d-content {
	padding: 0 1rem 0;
}

.c-partners {
	padding: 2rem;
}

.c-partners > .d-cards {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	justify-content: center;

	margin-top: 2rem;

	gap: 2rem;
}

.c-partners > .d-cards > .d-card {
	display: flex;

	width: 15rem;
	padding-bottom: 2rem;
}

.c-partners > .d-cards > .d-card > .d-img {
	display: block;

	max-width: 100%;
	height: 100%;
	margin-bottom: 1rem;
}

.c-references {
	padding: 3rem 2rem 2rem;

	background-color: var(--color-mainbg);
}

.c-references > .d-cards {
	margin-top: 2rem;
}

.c-references > .d-cards > .d-card {
	width: 100%;
	padding-bottom: 2rem;

	text-align: center;

	border: 1px solid var(--color-lightgray);
}

.c-contact {
	padding: 2rem;
}

.c-footer {
	padding: 2rem 2rem 0.5rem;

	background-color: var(--color-text);
}

@media only screen and (min-width: 900px) {
	html {
		background-image: url("../img/bg.jpg");
		background-size: 1920px;
	}

	.b-typo-p {
		margin: 0 0 1.5rem;
	}

	.c-logo {
		margin: 1rem;
	}

	.c-header {
		padding: 1rem 5rem 1rem;
	}

	.c-navigation > .d-menu {
		position: relative;

		display: block;

		height: inherit;
		padding: 0;

		background-color: inherit;
	}

	.c-navigation > .d-menu > .d-list {
		flex-direction: row;

		margin-top: 2rem;
		padding-right: 2rem;

		gap: 2rem;
	}

	.c-navigation > .d-button {
		display: none;
	}

	.c-navigation > .d-menu > .d-list > .d-menuitem > .d-link {
		text-decoration: none;

		color: var(--color-text);
	}

	.c-navigation > .d-menu > .d-list > .d-menuitem > .d-link:hover {
		text-decoration: underline;

		color: var(--color-primary);
	}

	.c-about {
		padding: 5rem 2rem 2rem;
	}

	.c-hero {
		width: 50vw;
		padding-left: 5rem;
	}

	.c-boxes {
		display: flex;
		flex-wrap: nowrap;

		max-width: 70rem;
		margin: 0 auto;
		padding: 3rem 0;

		gap: 3rem;
	}

	.c-boxes > .d-box {
		width: 50%;
	}

	.c-boxes > .d-box.v-img,
	.c-boxes > .d-box.v-content {
		order: initial;

		padding-bottom: 0;
	}

	.c-boxes .d-img {
		display: inline-block;

		max-width: 20rem;
		max-height: 30rem;
	}

	.c-boxes > .d-box .d-img.v-toppad {
		padding-top: 6rem;
	}

	.c-contact,
	.c-industries,
	.c-partners {
		padding: 3rem 2rem 2rem;
	}

	.c-industries > .d-cards {
		margin-top: 2rem;
	}
}

@media only screen and (min-width: 1921px) {
	html {
		background-size: contain;
	}
}

@media only screen and (min-width: 1600px) {
	.c-partners > .d-cards > .d-card {
		padding-bottom: 0;
	}
}

.is_hidden {
	display: none !important;
}

.is_readeronly {
	position: absolute !important;

	overflow: hidden;

	width: 1px;
	height: 1px;

	clip-path: rect(1px, 1px, 1px, 1px);
}
