/*==============================================================
GENERAL
==============================================================*/

*, *::before, *::after {
	outline: 0;
	box-sizing: border-box;
	-webkit-tap-highlight-color: transparent;
}

body, html {
	margin: 0;
	padding: 0;
	color: var(--black-text-color);
	font-size: 15px;
	background-color: #fff;
	font-family: 'Avenir Next', sans-serif;
}

ul {
	margin: 0;
	padding: 0;
	list-style-type: none;
}

a {
	color: var(--black-text-color);
	font-size: 15px;
	cursor: pointer;
	white-space: nowrap;
	text-decoration: none;
	font-family: 'Avenir Next', sans-serif;
}

button {
	color: var(--black-text-color);
	font-size: 15px;
	cursor: pointer;
	white-space: nowrap;
	font-family: 'Avenir Next', sans-serif;
}

input {
	color: var(--black-text-color);
	font-size: 15px;
	font-family: 'Avenir Next', sans-serif;
}

textarea {
	color: var(--black-text-color);
	font-size: 15px;
	min-height: 80px;
	max-height: 400px;
	resize: vertical;
	font-family: 'Avenir Next', sans-serif;
}

/*==============================================================
LAYOUT
==============================================================*/

#page-notification {
	z-index: 20;
	position: fixed;
	bottom: 0;
	right: 0;
	width: 100%;
	max-width: 520px;
}

#page-navigation {
	z-index: 10;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
}

#page-header {
	width: 100%;
	padding-top: 80px;
}

#page-content {
	width: 100%;
}

#page-footer {
	width: 100%;
}

/*==============================================================
NOTIFICATION
==============================================================*/

.notification {
	display: none;
	margin: 30px;
	border-radius: 5px;
	box-shadow: 0 0 5px 0 rgba(0,0,0,0.1);
	background-color: var(--white-background-color);
}

.notification.is-active {
	display: block;
}

/* ==== NOTIFICATION CONTENT ==== */

.notification .notification-content {
	display: flex;
	align-items: center;
	padding: 10px;
}

/* ==== NOTIFICATION ITEM ==== */

.notification .notification-item {
	padding: 10px;
}

/*==============================================================
NAVIGATION
==============================================================*/

.navigation {
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 0 5px 0 rgba(0,0,0,0.1);
	background-color: var(--white-background-color);
}

/* ==== NAVIGATION CONTENT ==== */

.navigation .navigation-content {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	max-width: 1200px;
	padding: 0 10px;
}

/* ==== NAVIGATION MENU ==== */

@media (min-width: 769px) {
	.navigation .navigation-menu {
		display: flex;
		align-items: center;
		overflow: hidden;
	}
	.navigation .navigation-menu-mobile {
		display: none;
	}
}

@media (max-width: 768px) {
	.navigation .navigation-menu {
		display: block;
		overflow: hidden;
	}
	.navigation .navigation-menu-collapse {
		width: 100%;
		height: 0px;
		visibility: hidden;
		transition: height 0.5s ease, visibility 0.5s ease;
	}
	.navigation.is-open .navigation-menu-collapse {
		width: 100%;
		height: 400px;
		visibility: visible;
		transition: height 0.5s ease, visibility 0.5s ease;
	}
}

/* ==== NAVIGATION ITEM ==== */

.navigation .navigation-item {
	display: flex;
	align-items: center;
}

/* ==== NAVIGATION LINK ==== */

.navigation .navigation-link {
	display: flex;
	align-items: center;
	width: 100%;
	height: 80px;
	padding: 0 20px;
}

/* ==== NAVIGATION BUTTON ==== */

.navigation .navigation-button {
	display: flex;
	align-items: center;
	border: none;
	background: none;
	width: 100%;
	height: 80px;
	padding: 0 20px;
}

/* ==== NAVIGATION TEXT ==== */

.navigation .navigation-text {
	display: block;
	position: relative;
	padding: 5px 0;
	font-size: 15px;
	font-weight: 400;
	line-height: 30px;
	font-family: 'Cera Pro', sans-serif;
}

@media (min-width: 769px) {
	.navigation .navigation-text::after {
		content: '';
		position: absolute;
		bottom: 0;
		left: 0;
		width: 100%;
		height: 2px;
		border-radius: 5px;
		background-color: var(--green-background-color);
		transform: scaleX(0);
		transform-origin: 50% 50%;
		transition: transform ease 0.5s;
	}
}

@media (max-width: 768px) {
	.navigation .navigation-text::after {
		content: '';
		position: absolute;
		bottom: 0;
		left: 0;
		width: 100%;
		height: 2px;
		border-radius: 5px;
		background-color: var(--green-background-color);
		transform: scaleX(0);
		transform-origin: 0% 50%;
		transition: transform ease 0.5s;
	}
}

.navigation .navigation-link.is-active .navigation-text::after,
.navigation .navigation-link:hover .navigation-text::after,
.navigation .navigation-link:focus .navigation-text::after {
	transform: scaleX(1);
}

/* ==== NAVIGATION ICON ==== */

.navigation .navigation-icon {
	position: relative;
	width: 25px;
	height: 18px;
}

.navigation .navigation-icon-item {
	display: block;
	position: absolute;
	top: 8px;
	width: 25px;
	height: 2px;
	border-radius: 5px;
	background-color: var(--black-background-color);
}

.navigation .navigation-icon-item::before,
.navigation .navigation-icon-item::after {
	content: '';
	display: block;
	position: absolute;
	width: 25px;
	height: 2px;
	border-radius: 5px;
	background-color: var(--black-background-color);
}

.navigation .navigation-icon-item {
	transform: rotate(0deg);
	transition: transform 225ms cubic-bezier(0.55,0.055,0.675,0.19);
}

.navigation.is-open .navigation-icon-item {
	transform: rotate(45deg);
	transition: transform 225ms cubic-bezier(0.215,0.61,0.355,1) 270ms;
}

.navigation .navigation-icon-item::before {
	top: -8px;
	opacity: 1;
	transition: top 225ms ease 270ms, opacity 225ms ease;
}

.navigation.is-open .navigation-icon-item::before {
	top: 0;
	opacity: 0;
	transition: top 225ms ease, opacity 225ms ease 270ms;
}

.navigation .navigation-icon-item::after {
	bottom: -8px;
	transform: rotate(0deg);
	transition: bottom 225ms ease 270ms, transform 225ms cubic-bezier(0.55,0.055,0.675,0.19);
}

.navigation.is-open .navigation-icon-item::after {
	bottom: 0;
	transform: rotate(-90deg);
	transition: bottom 225ms ease, transform 225ms cubic-bezier(0.215,0.61,0.355,1) 270ms;
}

/*==============================================================
LANGUAGE
==============================================================*/

/* ==== LANGUAGE ITEM ==== */

.navigation .language-item {
	display: flex;
	align-items: center;
	padding: 0 10px;
}

/* ==== LANGUAGE LINK ==== */

.navigation .language-link {
	display: flex;
	align-items: center;
	height: 80px;
	padding: 0 10px;
}

/* ==== LANGUAGE TEXT ==== */

.navigation .language-text {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	font-size: 13px;
	font-weight: 400;
	line-height: 30px;
	font-family: 'Cera Pro', sans-serif;
	color: var(--black-text-color);
	border: 1px solid var(--black-background-color);
}

.navigation .language-link:hover .language-text,
.navigation .language-link:focus .language-text {
	color: var(--green-text-color);
	border: 1px solid var(--green-background-color);
}

/*==============================================================
SECTION
==============================================================*/

.section {
	display: flex;
	align-items: center;
	justify-content: center;
}

/* ==== SECTION CONTENT ==== */

.section .section-content {
	width: 100%;
	max-width: 1200px;
}

/* ==== SECTION SIZE ==== */

.section.section-small .section-content {
	padding: 70px 30px;
}

.section.section-medium .section-content {
	padding: 170px 30px;
}

.section.section-large .section-content {
	padding: 270px 30px;
}

@media (max-width: 768px) {
	.section.section-small .section-content {
		padding: 20px 30px;
	}
	.section.section-medium .section-content {
		padding: 70px 30px;
	}
	.section.section-large .section-content {
		padding: 120px 30px;
	}
}

/* ==== SECTION COLOR ==== */

.section.section-white {
	background-color: var(--white-background-color);
}

.section.section-grey {
	background-color: var(--grey-background-color);
}

.section.section-green {
	background-color: var(--green-background-color);
}

.section.section-pink {
	background-color: var(--pink-background-color);
}

/* ==== SECTION BACKGROUND ==== */

.section.section-home {
	background-image: url('../media/image/background-home.jpg');
	background-repeat: no-repeat;
	background-position: center;
	background-size: cover;
}

.section.section-solutions {
	background-image: url('../media/image/background-solutions.jpg');
	background-repeat: no-repeat;
	background-position: center;
	background-size: cover;
}

.section.section-contact {
	background-image: url('../media/image/background-contact.jpg');
	background-repeat: no-repeat;
	background-position: center;
	background-size: cover;
}

.section.section-careers {
	background-image: url('../media/image/background-careers.jpg');
	background-repeat: no-repeat;
	background-position: center;
	background-size: cover;
}

.section.section-privacy {
	background-image: url('../media/image/background-home.jpg');
	background-repeat: no-repeat;
	background-position: center;
	background-size: cover;
}

/*==============================================================
GRID
==============================================================*/

.grid {
	display: grid;
	grid-gap: 60px;
}

/* ==== GRID ITEM ==== */

.grid .grid-item {
	align-self: center;
}

/* ==== GRID MARGIN ==== */

.grid.grid-margin-top {
	margin-top: 60px;
}

.grid.grid-margin-bottom {
	margin-bottom: 60px;
}

/* ==== GRID MOBILE ==== */

@media (max-width: 1200px) {
	.grid.grid-mobile .grid-item:first-child {
		grid-row: 2 / 3;
		grid-column: 1 / 2;
	}
	.grid.grid-mobile .grid-item:last-child {
		grid-row: 1 / 2;
		grid-column: 1 / 2;
	}
}

/* ==== GRID SIZE ==== */

.grid.grid-small {
	grid-template-rows: repeat(1, 1fr);
	grid-template-columns: repeat(2, 1fr);
}

.grid.grid-medium {
	grid-template-rows: repeat(1, 1fr);
	grid-template-columns: repeat(3, 1fr);
}

.grid.grid-large {
	grid-template-rows: repeat(1, 1fr);
	grid-template-columns: repeat(4, 1fr);
}

@media (max-width: 1200px) {
	.grid.grid-small {
		grid-template-rows: repeat(1, 1fr);
		grid-template-columns: repeat(1, 1fr);
	}
	.grid.grid-medium {
		grid-template-rows: repeat(1, 1fr);
		grid-template-columns: repeat(1, 1fr);
	}
	.grid.grid-large {
		grid-template-rows: repeat(1, 1fr);
		grid-template-columns: repeat(1, 1fr);
	}
}

/*==============================================================
TOOLBAR
==============================================================*/

.toolbar {
	display: flex;
	margin: 30px 0;
}

/* ==== TOOLBAR ALIGNMENT ==== */

.toolbar.toolbar-center {
	align-items: center;
	justify-content: center;
}

@media (max-width: 1200px) {
	.toolbar.toolbar-mobile-center {
		align-items: center;
		justify-content: center;
	}
}

/*==============================================================
IMAGE
==============================================================*/

.image {
	display: flex;
	align-items: center;
	justify-content: center;
}

/* ==== IMAGE SETTINGS ==== */

.image .image-solutions {
	width: 100%;
	height: 100%;
	max-width: 540px;
	max-height: 500px;
	border-radius: 5px;
}

.image .image-culture {
	width: 100%;
	height: 100%;
	max-width: 540px;
	max-height: 500px;
	border-radius: 5px;
}

.image .image-office {
	width: 100%;
	height: 100%;
	max-width: 400px;
	max-height: 300px;
	border-radius: 5px;
}

.image .image-contact {
	width: 100%;
	height: 100%;
	max-width: 400px;
	max-height: 300px;
	border-radius: 5px;
}

/*==============================================================
FORM
==============================================================*/

.form {
	width: 100%;
	margin: auto;
	max-width: 1000px;
}

.form {
	display: grid;
	grid-gap: 30px;
	grid-template-rows: repeat(1, 1fr);
	grid-template-columns: repeat(1, 1fr);
}

/* ==== FORM GROUP ==== */

.form .form-group {
	display: grid;
	grid-gap: 30px;
	grid-template-rows: repeat(1, 1fr);
	grid-template-columns: repeat(2, 1fr);
}

@media (max-width: 1000px) {
	.form .form-group {
		grid-template-rows: repeat(1, 1fr);
		grid-template-columns: repeat(1, 1fr);
	}
}

/* ==== FORM LABEL ==== */

.form .form-label {
	display: inline-block;
	margin-bottom: 8px;
}

.form .form-label.is-required::after {
	content: ' *';
	color: var(--red-text-color);
}

.form .form-label.is-disabled {
	opacity: 0.6;
}

/* ==== FORM INPUT ==== */

.form .form-input {
	display: block;
	width: 100%;
	padding: 10.5px 0px;
	border: 1px solid #bbb;
	border-top: none;
	border-left: none;
	border-right: none;
	background-color: var(--white-background-color);
}

.form .form-input:focus {
	border-color: var(--green-background-color);
}

.form .form-input.is-invalid {
	border-color: var(--red-text-color);
}

.form .form-input:disabled {
	opacity: 0.6;
}

/* ==== FORM FEEDBACK ==== */

.form .form-feedback {
	display: inline-block;
	margin-top: 8px;
}

.form .form-feedback.is-invalid {
	color: var(--red-text-color);
}

.form .form-feedback.is-disabled {
	opacity: 0.6;
}

/*==============================================================
TEXT
==============================================================*/

.text-heading {
	margin: 30px 0;
	font-size: 45px;
	font-weight: 400;
	line-height: 60px;
	font-family: 'Cera Pro', sans-serif;
}

.text-subheading {
	margin: 30px 0;
	font-size: 18px;
	font-weight: 400;
	line-height: 35px;
	font-family: 'Cera Pro', sans-serif;
}

.text-paragraph {
	margin: 30px 0;
	font-size: 15px;
	font-weight: 400;
	line-height: 30px;
	font-family: 'Avenir Next', sans-serif;
}

/* ==== TEXT MARGIN ==== */

.text-margin-none {
	margin: 0;
}

/* ==== TEXT ALIGNMENT ==== */

.text-center {
	text-align: center;
}

@media (max-width: 1200px) {
	.text-mobile-center {
		text-align: center;
	}
}

/* ==== TEXT COLOR ==== */

.text-white {
	color: var(--white-text-color);
}

.text-grey {
	color: var(--grey-text-color);
}

.text-black {
	color: var(--black-text-color);
}

.text-green {
	color: var(--green-text-color);
}

.text-pink {
	color: var(--pink-text-color);
}

/*==============================================================
LINK
==============================================================*/

.link-heading {
	font-size: 45px;
	font-weight: 400;
	line-height: 60px;
	font-family: 'Cera Pro', sans-serif;
}

.link-subheading {
	font-size: 18px;
	font-weight: 400;
	line-height: 35px;
	font-family: 'Cera Pro', sans-serif;
}

.link-paragraph {
	font-size: 15px;
	font-weight: 400;
	line-height: 30px;
	font-family: 'Avenir Next', sans-serif;
}

.link-heading:hover,
.link-heading:focus {
	text-decoration: underline;
}

.link-subheading:hover,
.link-subheading:focus {
	text-decoration: underline;
}

.link-paragraph:hover,
.link-paragraph:focus {
	text-decoration: underline;
}

/* ==== LINK COLOR ==== */

.link-white {
	color: var(--white-text-color);
}

.link-grey {
	color: var(--grey-text-color);
}

.link-black {
	color: var(--black-text-color);
}

.link-green {
	color: var(--green-text-color);
}

.link-pink {
	color: var(--pink-text-color);
}

/*==============================================================
BUTTON
==============================================================*/

.button {
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	height: 50px;
	margin: 0;
	padding: 0;
	border: none;
	background: none;
	font-size: 15px;
	font-weight: 400;
	line-height: 30px;
	font-family: 'Avenir Next', sans-serif;
}

.button::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 2px;
	border-radius: 5px;
	transform: scaleX(0.3);
	transform-origin: 0% 50%;
	transition: transform ease 0.5s;
}

.button:hover::after,
.button:focus::after {
	transform: scaleX(1.0);
}

/* ==== BUTTON ALIGNMENT ==== */

.button.button-center::after {
	transform-origin: 50% 50%;
}

@media (max-width: 1200px) {
	.button.button-mobile-center::after {
		transform-origin: 50% 50%;
	}
}

/* ==== BUTTON GREY ==== */

.button.button-grey {
	color: var(--grey-text-color);
}

.button.button-grey::after {
	background-color: var(--green-background-color);
}

/* ==== BUTTON PINK ==== */

.button.button-pink {
	color: var(--pink-text-color);
}

.button.button-pink::after {
	background-color: var(--pink-background-color);
}

/*==============================================================
MEDIA
==============================================================*/

.media {
	display: block;
	padding: 0 5px;
	color: var(--grey-text-color);
}

.media:hover,
.media:focus {
	color: var(--green-text-color);
}

/* ==== MEDIA ICON ==== */

.media.media-linkedin::after {
	font-family: 'Font Awesome 5 Brands';
	font-weight: 400;
	font-size: 20px;
	content: '\f08c';
}

.media.media-instagram::after {
	font-family: 'Font Awesome 5 Brands';
	font-weight: 400;
	font-size: 20px;
	content: '\f16d';
}

/*==============================================================
CONTACT FORM
==============================================================*/

.contact-form {
	width: 100%;
	height: 1094px;
	margin: 0;
	padding: 0;
	border: 0;
}

.contact-form {
	margin-top: 60px;
}
