/*---------------------------------------------------------------*/
/*--------------------------- appscss ---------------------------*/
/*---------------------------------------------------------------*/
/* File import, and general styling */
/* Colors */
/* Background colors */
/* Grey swatches */
/* Typography */
/* General color scheme */
/* Call to action color */
/* Error */
/* Text colors */
/* Text styling */
/*---------------------------------------------------------------*/
/*------------------------ fonts.scss ---------------------------*/
/*---------------------------------------------------------------*/
@font-face {
  font-family: "dm-sans-bold";
  src: url("../fonts/dm-sans-bold.ttf");
  font-weight: 700;
  font-style: normal;
}
@font-face {
  font-family: "dm-sans-bold-italic";
  src: url("../fonts/dm-sans-bold-italic.ttf");
  font-weight: 700;
  font-style: italic, oblique;
}
@font-face {
  font-family: "dm-sans-medium";
  src: url("../fonts/dm-sans-medium.ttf");
  font-weight: 500;
  font-style: normal;
}
@font-face {
  font-family: "dm-sans-medium-italic";
  src: url("../fonts/dm-sans-medium-italic.ttf");
  font-weight: 500;
  font-style: italic;
}
@font-face {
  font-family: "dm-sans-regular";
  src: url("../fonts/dm-sans-regular.ttf");
  font-weight: 400;
  font-style: normal;
}
@font-face {
  font-family: "dm-sans-regular-italic";
  src: url("../fonts/dm-sans-regular-italic.ttf");
  font-weight: 400;
  font-style: italic;
}
/* ----------------------------------------------- */
/* ----------------- theme.css ------------------- */
/* ----------------------------------------------- */
/* Branding specific styling. */
/*---------------------------------------------------------------*/
/*--------------------- elements/submit.scss --------------------*/
/*---------------------------------------------------------------*/
/* Success messages */
.submit main section {
  flex-grow: 1;
  justify-content: center;
  align-items: center;
  display: flex;
  padding-top: 5rem;
}
.submit main section div {
  align-items: center;
  flex-direction: column;
  width: auto;
}

/* Base elements */
/*---------------------------------------------------------------*/
/*------------------------- base.scss ---------------------------*/
/*---------------------------------------------------------------*/
body {
  margin: 0;
  padding: 0;
  font-family: "dm-sans-regular", sans-serif;
  font-size: 1.25rem;
  line-height: 2rem;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}
body > main {
  flex-grow: 1;
  display: flex;
  flex-direction: column;
}
body > main > div:only-child {
  margin: auto 0;
}

/* Section styling */
.section-black {
  background-color: #000;
  color: #fff;
}

/*  Section background color to add structure to the page */
.light-grey,
.section-light-grey {
  background-color: #f0f0f0;
}
.light-grey form,
.section-light-grey form {
  background-color: #e8e8e8;
}

div > p:first-child {
  margin-top: 0;
}

/*---------------------------------------------------------------*/
/*----------------- elements/base/button.scss -------------------*/
/*---------------------------------------------------------------*/
.button,
button,
form button[type=submit],
a.button,
a.button:visited {
  cursor: pointer;
  background-color: #000;
  color: #fff;
  padding: 1rem 3rem;
  border: 0;
  font-size: inherit;
  font-family: inherit;
  position: relative;
  text-decoration: none;
  margin-top: 1rem;
  line-height: 1.2rem;
  display: inline-block;
  text-align: center;
  width: 100%;
  box-sizing: border-box;
}
@media (min-width: 24rem) {
  .button,
button,
form button[type=submit],
a.button,
a.button:visited {
    width: auto;
  }
}
.button.button-call-to-action,
button.button-call-to-action,
form button[type=submit].button-call-to-action,
a.button.button-call-to-action,
a.button:visited.button-call-to-action {
  background-color: #DB2955;
}
.button.button-align-right,
button.button-align-right,
form button[type=submit].button-align-right,
a.button.button-align-right,
a.button:visited.button-align-right {
  margin-left: auto;
}
.button:hover,
button:hover,
form button[type=submit]:hover,
a.button:hover,
a.button:visited:hover {
  background-color: #fff;
  color: #000;
}

/*---------------------------------------------------------------*/
/*------------------- element/base/footer.scss ------------------*/
/*---------------------------------------------------------------*/
footer {
  background-color: #353535;
  color: #fff;
}
footer a {
  text-decoration: none;
  color: inherit;
}
footer a:visited {
  color: #fff;
}
footer > div {
  padding: 2rem 3%;
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
}
@media (min-width: 42rem) {
  footer > div {
    justify-content: space-between;
  }
}
footer nav {
  width: 100%;
}
footer nav ul {
  display: flex;
  margin: 2rem 0 0 0;
  justify-content: flex-end;
  flex-wrap: wrap;
  padding: 0;
  font-size: 1rem;
}
footer nav ul li {
  list-style: none;
  width: 100%;
  border-top: 1px solid #d1d1d1;
  padding: 1.5rem 2rem;
  width: 100%;
  text-align: center;
  color: inherit;
  box-sizing: border-box;
  position: relative;
}
footer nav ul li:last-child {
  border-bottom: 1px solid #d1d1d1;
}
footer nav ul li a {
  color: inherit;
  text-decoration: none;
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
}
@media (min-width: 42rem) {
  footer nav {
    width: auto;
  }
  footer nav ul {
    font-size: inherit;
    gap: 2rem;
  }
  footer nav ul li {
    width: auto;
    border: 0;
    padding: 0;
  }
  footer nav ul li:last-child {
    border: 0;
  }
  footer nav ul li a {
    position: static;
  }
}

/*---------------------------------------------------------------*/
/*------------------- elements/base/img -------------------------*/
/*---------------------------------------------------------------*/
img {
  max-width: 100%;
}
img.img-alignment-top {
  object-position: top;
}
img.img-alignment-right {
  object-position: right;
}
img.img-alignment-left {
  object-position: left;
}
img.img-alignment-bottom {
  object-position: bottom;
}

.img_container {
  margin: 0 2rem;
}

/*---------------------------------------------------------------*/
/*------------------- elements/base/list.scss -------------------*/
/*---------------------------------------------------------------*/
/*---------------------------------------------------------------*/
/*------------------- element/error-page.scss -------------------*/
/*---------------------------------------------------------------*/
.error-page {
  background-color: #000;
  color: #fff;
  flex-grow: 1;
}
.error-page header {
  width: 100%;
}
.error-page > div {
  gap: 0.5rem;
}

/* Layout */
/*---------------------------------------------------------------*/
/*----------------------- layout.scss ---------------------------*/
/*---------------------------------------------------------------*/
section > div,
article > div {
  max-width: 82rem;
  padding: 5rem 3%;
  width: 100%;
  box-sizing: border-box;
  display: flex;
  flex-wrap: wrap;
}
section > div > div,
article > div > div {
  max-width: 100%;
}
@media (min-width: 85rem) {
  section > div,
article > div {
    margin: 0 auto;
    padding: 6.5rem 0;
    width: 100%;
  }
}

/* Smaller width for content */
article {
  align-items: center;
}
article > div {
  max-width: 50rem;
  padding: 5rem 3%;
}
@media (min-width: 55rem) {
  article > div {
    margin: 0 auto;
    padding: 3rem 0;
    width: 100%;
    padding: 6.5rem 0;
  }
}

/*---------------------------------------------------------------*/
/*----------------------- layout/60-40.scss ---------------------*/
/*---------------------------------------------------------------*/
section > div.layout-60-40,
section > div.layout-60-40-flipped,
article > div.layout-60-40,
article > div.layout-60-40-flipped {
  display: flex;
}
@media (min-width: 80rem) {
  section > div.layout-60-40,
section > div.layout-60-40-flipped,
article > div.layout-60-40,
article > div.layout-60-40-flipped {
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: flex-start;
    align-items: center;
    gap: 4rem;
  }
  section > div.layout-60-40 > div:first-child,
section > div.layout-60-40-flipped > div:first-child,
article > div.layout-60-40 > div:first-child,
article > div.layout-60-40-flipped > div:first-child {
    max-width: 60%;
  }
}
@media (min-width: 80rem) {
  section > div.layout-60-40-flipped,
article > div.layout-60-40-flipped {
    flex-direction: row-reverse;
  }
}

/*---------------------------------------------------------------*/
/*------------------- elements/layout/auth.scss -----------------*/
/*---------------------------------------------------------------*/
.layout-auth {
  display: flex;
  flex-grow: 1;
  align-items: center;
}
.layout-auth > div {
  margin: 0 auto;
  width: 100%;
  padding: 5rem 3%;
  max-width: 42rem;
}
@media (min-width: 42rem) {
  .layout-auth > div {
    padding: 6.5rem 0;
  }
}

/*---------------------------------------------------------------*/
/*---------------- elements/layout/centered.scss ---------------*/
/*---------------------------------------------------------------*/
.atom_text-block > section > div:first-child.layout-centered > div {
  width: 100%;
}
.atom_text-block > section > div:first-child.layout-centered > div > h1,
.atom_text-block > section > div:first-child.layout-centered > div > h2,
.atom_text-block > section > div:first-child.layout-centered > div > div,
.atom_text-block > section > div:first-child.layout-centered > div > div > p {
  text-align: center;
  margin-left: auto;
  margin-right: auto;
  max-width: 50rem;
  /* To ensure readability */
}

/*---------------------------------------------------------------*/
/*---------------- elements/layout/condensed.scss ---------------*/
/*---------------------------------------------------------------*/
section > div.layout-condensed > div,
article > div.layout-condensed > div {
  padding: 1rem 3%;
}

/*---------------------------------------------------------------*/
/*-------------- elements/layout/cover-inlay.scss ---------------*/
/*---------------------------------------------------------------*/
.layout-cover-inlay > div:first-child,
.layout-cover-inlay-flipped > div:first-child {
  margin-top: auto;
}
@media (min-width: 50rem) {
  .layout-cover-inlay > div:first-child,
.layout-cover-inlay-flipped > div:first-child {
    max-width: 42%;
  }
}

@media (min-width: 50rem) {
  .layout-cover-inlay-flipped > div:first-child {
    margin-left: auto;
  }
}

section.img-cover > div.layout-cover-inlay,
section.img-cover > div.layout-cover-inlay-flipped {
  padding: 10rem 3% 2rem 3%;
  min-height: 50rem;
}

/*---------------------------------------------------------------*/
/*-------------- elements/layout/flipped.scss -------------------*/
/*---------------------------------------------------------------*/
.layout-flipped {
  display: flex;
  flex-wrap: wrap;
  flex-direction: row-reverse;
}

/*---------------------------------------------------------------*/
/*------------------- elements/layout/form.scss -----------------*/
/*---------------------------------------------------------------*/
.layout-form {
  align-items: center;
}
.layout-form > div {
  margin: 0 auto;
  width: 100%;
  padding: 5rem 3%;
  max-width: 55rem;
}
@media (min-width: 55rem) {
  .layout-form > div {
    padding: 6.5rem 0;
  }
}

form {
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  font-size: 1rem;
}
@media (min-width: 32rem) {
  form {
    min-width: 30rem;
    font-size: 1.25rem;
  }
}
form > div {
  display: flex;
  flex-direction: column;
  margin-bottom: 2rem;
}
form input,
form textarea {
  border: 0;
  min-height: 3.25rem;
  flex-grow: 1;
  font-size: inherit;
  padding: 0 1rem;
  min-width: 0;
  font-family: inherit;
}
form textarea {
  padding-top: 1rem;
}
@media (min-width: 24rem) {
  form .button,
form button,
form form button[type=submit] {
    margin-left: auto;
  }
}

/*---------------------------------------------------------------*/
/*----------- elements/section-layout/horizontal.scss -----------*/
/*---------------------------------------------------------------*/
.layout-horizontal,
.layout-horizontal-flipped {
  gap: 2rem;
}
@media (min-width: 55rem) {
  .layout-horizontal,
.layout-horizontal-flipped {
    flex-wrap: nowrap;
    gap: 3rem;
  }
}
.layout-horizontal > div,
.layout-horizontal-flipped > div {
  flex-grow: 1;
}
@media (min-width: 42rem) {
  .layout-horizontal > div > div,
.layout-horizontal-flipped > div > div {
    display: flex;
    flex-direction: column;
    justify-content: center;
  }
  .layout-horizontal > div > div > h1,
.layout-horizontal-flipped > div > div > h1 {
    margin: 0;
  }
}

.layout-horizontal-flipped {
  flex-direction: row-reverse;
}

/*---------------------------------------------------------------*/
/*-------------- elements/layout/golden-ratio.scss --------------*/
/*---------------------------------------------------------------*/
.layout-golden-ratio {
  gap: 1rem;
  align-items: center;
}
.layout-golden-ratio > div:last-child {
  flex-grow: 1;
}
@media (min-width: 42rem) {
  .layout-golden-ratio {
    gap: 3rem;
  }
}
@media (min-width: 50rem) {
  .layout-golden-ratio > div:first-child {
    width: 40%;
  }
  .layout-golden-ratio > div:last-child {
    max-width: calc(60% - 3rem);
  }
}

/*---------------------------------------------------------------*/
/*----------------------- layout/half.scss ----------------------*/
/*---------------------------------------------------------------*/
section > div.layout-half,
section > div.layout-half-flipped,
article > div.layout-half,
article > div.layout-half-flipped {
  display: flex;
  gap: 4rem;
  justify-content: center;
}
@media (min-width: 55rem) {
  section > div.layout-half,
section > div.layout-half-flipped,
article > div.layout-half,
article > div.layout-half-flipped {
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: flex-start;
    align-items: center;
  }
  section > div.layout-half > *,
section > div.layout-half-flipped > *,
article > div.layout-half > *,
article > div.layout-half-flipped > * {
    width: calc(50% - 4rem);
  }
}
@media (min-width: 55rem) {
  section > div.layout-half-flipped,
article > div.layout-half-flipped {
    flex-direction: row-reverse;
  }
}

/* Content layout */
/*---------------------------------------------------------------*/
/*---------------- elements/layout/column_2.scss ----------------*/
/*---------------------------------------------------------------*/
@media (min-width: 42rem) {
  .content-column-2 > * {
    max-width: 46%;
  }
}
/*---------------------------------------------------------------*/
/*---------------- elements/layout/column_3.scss ----------------*/
/*---------------------------------------------------------------*/
@media (min-width: 42rem) {
  .content-column-3 > * {
    max-width: 46%;
  }
}
@media (min-width: 50rem) {
  .content-column-3 > * {
    max-width: 29.33%;
  }
}
@media (min-width: 55rem) {
  .product-layout-column-2 .project-overview li,
.product-layout-column-2 .product-overview li {
    max-width: calc(50% - 2rem);
  }
}

@media (min-width: 55rem) {
  .product-layout-column-3 .project-overview li,
.product-layout-column-3 .product-overview li {
    max-width: calc(33.33% - 2rem);
  }
}

@media (min-width: 55rem) {
  .product-layout-column-4 .project-overview li,
.product-layout-column-4 .product-overview li {
    max-width: calc(25% - 2rem);
  }
}

@media (min-width: 55rem) {
  .product-layout-column-5 .project-overview li,
.product-layout-column-5 .product-overview li {
    max-width: calc(20% - 2rem);
  }
}

/*---------------------------------------------------------------*/
/*---------------- elements/layout/column-4.scss ----------------*/
/*---------------------------------------------------------------*/
.content-column-4 img {
  min-height: 10rem;
}

@media (min-width: 42rem) {
  .content-column-4 > * {
    max-width: 46%;
  }
}
@media (min-width: 50rem) {
  .content-column-4 > * {
    max-width: 29.33%;
  }
}
@media (min-width: 60rem) {
  .content-column-4 > * {
    max-width: 21%;
  }
}
/*---------------------------------------------------------------*/
/*---------------- elements/layout/column-5.scss ----------------*/
/*---------------------------------------------------------------*/
.content-column-5 img {
  min-height: 10rem;
}

@media (min-width: 42rem) {
  .content-column-5 > * {
    max-width: 46%;
  }
}
@media (min-width: 50rem) {
  .content-column-5 > * {
    max-width: 29.33%;
  }
}
@media (min-width: 60rem) {
  .content-column-5 > * {
    max-width: calc(20% - 2rem);
  }
}
/*---------------------------------------------------------------*/
/*---------------- elements/layout/columns.scss -----------------*/
/*---------------------------------------------------------------*/
section .content-column-2,
section .content-column-3,
section .content-column-4,
article .content-column-2,
article .content-column-3,
article .content-column-4 {
  flex-direction: row;
  display: flex;
  flex-wrap: wrap;
  gap: 2rem;
}
section .content-column-2 > h1,
section .content-column-3 > h1,
section .content-column-4 > h1,
article .content-column-2 > h1,
article .content-column-3 > h1,
article .content-column-4 > h1 {
  margin-top: 0;
  margin-bottom: 1rem;
}
section .content-column-2 > p,
section .content-column-3 > p,
section .content-column-4 > p,
article .content-column-2 > p,
article .content-column-3 > p,
article .content-column-4 > p {
  margin: 1rem 0;
}
section .content-column-2 > img,
section .content-column-3 > img,
section .content-column-4 > img,
article .content-column-2 > img,
article .content-column-3 > img,
article .content-column-4 > img {
  min-height: 15rem;
  object-fit: cover;
  margin-bottom: 1rem;
}
section .content-column-2 button,
section .content-column-2 a.button,
section .content-column-3 button,
section .content-column-3 a.button,
section .content-column-4 button,
section .content-column-4 a.button,
article .content-column-2 button,
article .content-column-2 a.button,
article .content-column-3 button,
article .content-column-3 a.button,
article .content-column-4 button,
article .content-column-4 a.button {
  align-self: flex-start;
}

/*---------------------------------------------------------------*/
/*---------------- elements/layout/magazine.scss ----------------*/
/*---------------------------------------------------------------*/
.content-magazine {
  margin-top: 1.5rem;
  display: flex;
  flex-wrap: wrap;
  gap: 2rem;
}
.content-magazine > p {
  text-align: justify;
  width: 100%;
  margin: 0;
}
@media (min-width: 50rem) {
  .content-magazine > p {
    max-width: calc(50% - 2rem);
  }
}

/* Elements */
/* ----------------------------------------------- */
/* ---------- elements/contact_block.scss -------- */
/* ----------------------------------------------- */
.atom_contact_block section > div > div:first-child > h1 {
  font-size: 3rem;
  line-height: 5rem;
  margin: 0;
}
.atom_contact_block section > div > div:first-child > h2 {
  font-size: 1.5rem;
  line-height: 3rem;
}
.atom_contact_block section > div > div:first-child address {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-top: 3rem;
  font-style: normal;
}
.atom_contact_block section > div > div:first-child address a,
.atom_contact_block section > div > div:first-child address a:visited {
  color: inherit;
  text-decoration: none;
  display: flex;
  align-items: center;
  margin-right: auto;
}
.atom_contact_block section > div > div:first-child address nav.socials {
  justify-content: flex-start;
}
.atom_contact_block section > div > div:first-child address nav.socials a,
.atom_contact_block section > div > div:first-child address nav.socials a:visited {
  margin-right: 1rem;
  color: transparent;
}

.atom_contact_block section > div.layout-half {
  align-items: flex-start;
  gap: 3rem;
}

/*---------------------------------------------------------------*/
/*------------------- element/hamburger_menu.scss ----------------*/
/*---------------------------------------------------------------*/
/* Mobile menu */
.hamburgermenu_icon,
button.hamburgermenu_icon:hover,
button.hamburgermenu_icon:focus {
  background-image: url("../../images/hamburger_menu.svg");
  background-repeat: no-repeat;
  background-size: cover;
  z-index: 5;
  background-color: transparent;
  border: 0;
  min-width: 0;
  padding: 0;
  width: 1.5rem;
  height: 1.5rem;
  border-radius: 0;
  margin-top: 0;
  cursor: pointer;
  box-shadow: none;
}

.hamburgermenu {
  position: absolute;
  width: 100%;
  top: 3.5rem;
  left: 0;
  z-index: 4;
  transition: top 1s;
  -webkit-transition: top 1s;
  display: flex;
  flex-direction: column;
}

.hamburgermenu.hidden_menu {
  top: -375px;
}

.hamburgermenu a {
  line-height: 2.3rem;
  background-color: #fff;
  width: 100%;
  display: inline-block;
  text-align: center;
  border-bottom: 1px solid #d4d4d4;
  padding: 0.5rem 0;
  cursor: pointer;
  color: #2e2756;
}

.hamburgermenu a:hover {
  background-color: #CE2152;
  color: #fff;
}

@media screen and (min-width: 65rem) {
  .hamburgermenu_icon {
    display: none;
  }

  .hamburgermenu {
    position: static;
    width: auto;
    flex-direction: row;
  }

  .hamburgermenu a {
    line-height: inherit;
    text-align: left;
    width: auto;
    background-color: transparent;
    padding: 0;
    border-bottom: 2px solid transparent;
    color: #fff;
  }

  .hamburgermenu a:hover {
    border-bottom: 2px solid #fff;
    background-color: transparent;
  }
}
/*---------------------------------------------------------------*/
/*--------------------- elements/header.scss --------------------*/
/*---------------------------------------------------------------*/
/* Page header, usually contains the main menu and the logo */
body > header {
  background-color: #000;
  display: flex;
  justify-content: center;
  position: relative;
  min-height: 3.5rem;
  color: #fff;
}
body > header .logo {
  margin: 1rem;
  white-space: nowrap;
}
body > header .logo a,
body > header .logo a:visited {
  color: #fff;
  text-decoration: none;
}
body > header > div {
  display: flex;
  justify-content: space-between;
  width: 100%;
  align-items: center;
  /*nav {
  	border: 2px dashed aqua;
  	display: flex;
  	box-sizing: border-box;
  	flex-grow: 1;
  	max-width: 100%;
  	position: absolute;
  	width: 100%;
  	top: 0;

  	input[type="checkbox"] {
  		width: 2.5rem;
  		height: 2.5rem;
  		position: absolute;
  		right: 0.5rem;
  		top: 0.5rem;
  		opacity: 0;
  		z-index: 1;
  		cursor: pointer;
  	}

  	input[type="checkbox"] + ul {
  		flex-grow: 1;
  		margin-bottom: 0;
  		flex-direction: row;
  		background-color: $secondary-bg-color;
  		color: $text-dark;

  		@media (max-width: 55rem) {
  			-moz-transition: all .5s ease;
  			-webkit-transition: all .5s ease;
  			-o-transition: all .5s ease;
  			transition: all .5s ease;
  		}

  		li {
  			height: 0;
  			color: inherit;

  			a {
  				font-size: 0;
  				color: inherit;
  			}

  			&:hover {
  				color: $text-light;
  			}
  		}

  		&:before {
  			content: url('../images/hamburger_menu.svg');
  			margin-left: auto;
  			z-index: 0;
  			position: absolute;
  			width: 1rem;
  			height: 1rem;
  			right: 1.25rem;
  			top: 1.25rem;
  		}
  	}

  	input[type="checkbox"]:checked + ul {
  		width: 100%;
  		flex-direction: column;
  		margin-bottom: 1rem;
  		display: flex;
  		margin-top: 3.5rem;

  		li {
  			flex-grow: 1;
  			cursor: pointer;
  			text-align: center;
  			height: auto;
  			display: flex;
  			border-bottom: 1px solid #ccc;

  			&:last-child {
  				border-bottom: 0;
  			}

  			a {
  				font-size: $font-size-base;
  				padding: 0.5rem;
  				flex-grow: 1;
  				line-height: 2.25rem;
  			}

  			&:hover {
  				background-color: $brand-color-1;
  			}
  		}
  	}

  	ul {
  		display: flex;
  		gap: 2rem;
  		margin: 0 2rem;
  		justify-content: flex-end;

  		li {
  			list-style: none;
  			color: inherit;

  			a,
  			a:visited {
  				color: inherit;
  				text-decoration: none;
  			}
  		}
  	}

  	> div {
  		display: flex;
  		justify-content: space-between;
  		max-width: 100%;
  		flex-grow: 1;

  		ul {
  			flex-direction: row;
  			flex-wrap: wrap;
  			margin: 0;
  			padding: 0;

  			li {
  				list-style: none;
  			}
  		}

  		a {
  			color: #fff;
  			text-decoration: none;
  			margin-right: 1.5rem;
  			font-family: 'opensans-regular', sans-serif;
  			text-transform: uppercase;
  			color: #fff;
  			font-size: 1rem;
  		}
  	}

  	@media (min-width: 55rem) {
  		position: static;
  	}
  }

  nav input[type="checkbox"]:checked + ul,
  nav input[type="checkbox"] + ul {
  	@media (min-width: 55rem) {
  		display: flex;
  		flex-direction: row;
  		flex-wrap: nowrap;
  		background-color: transparent;
  		justify-content: flex-end;
  		align-items: center;
  		margin: 1rem 0;

  		li {
  			height: auto;
  			border-bottom: 0;
  			flex-grow: unset;

  			&:hover {
  				background-color: transparent;
  			}

  			a {
  				font-size: $font-size-base;
  				color: $text-light;
  				padding: 0;
  				line-height: 1.5rem;

  				&.active,
  				&:hover {
  					color: $brand-color-1;
  				}
  			}
  		}
  	}
  }*/
}
body > header > div button {
  position: absolute;
  display: block;
  right: 1rem;
  top: 1rem;
  width: 1.25rem;
  height: 1.25rem;
  border-radius: 0;
  padding: 0;
  margin: 0;
  justify-content: center;
  align-items: center;
  background-image: url(../images/hamburger_menu.svg);
  background-repeat: no-repeat;
  background-size: cover;
  font-size: 0;
}
@media screen and (min-width: 40rem) {
  body > header nav a.active {
    color: #fff;
  }
  body > header nav a.active:hover {
    color: #fff;
  }
}

/*---------------------------------------------------------------*/
/*------------------------ icons.scss ---------------------------*/
/*---------------------------------------------------------------*/
.icon:before {
  content: "";
  width: 1rem;
  height: 1rem;
  display: inline-block;
  background-size: contain;
  background-position: center center;
  background-repeat: no-repeat;
  margin: 0 1rem 0 0;
}
.icon.icon-location:before {
  background-image: url("/images/location.svg");
}
.icon.icon-email:before {
  background-image: url("/images/mail.svg");
}
.icon.icon-phone:before {
  background-image: url("/images/mobile.svg");
}

/*---------------------------------------------------------------*/
/*------------------ elements/mobile-menu.scss ------------------*/
/*---------------------------------------------------------------*/
/* Mobile menu closed */
header {
  position: relative;
}
header nav {
  display: block;
  width: 100%;
  position: absolute;
  top: -30rem;
  left: 0;
  transition: top 1s;
  -webkit-transition: top 1s;
}
header nav ul {
  display: flex;
  background-color: #fff;
  width: 100%;
  flex-direction: column;
  margin: 0;
  padding: 0;
  align-items: flex-start;
  gap: 0;
}
header nav ul li {
  border-bottom: 1px solid #d1d1d1;
  padding: 1rem 2rem;
  width: 100%;
  text-align: center;
  color: inherit;
  box-sizing: border-box;
  position: relative;
  list-style: none;
  min-height: 4rem;
}
header nav ul li a {
  color: inherit;
  text-decoration: none;
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
}
header nav ul li a:hover {
  color: #fff;
}
header nav ul li:hover {
  color: #fff;
  background-color: #000;
}
header nav ul li:last-child {
  border-bottom: 0;
}

header.is-open nav {
  top: 0;
}
header.is-open .menu-toggle {
  border: 2px solid #000;
}
header.is-open .menu-toggle:hover {
  background-color: #000;
  background-image: url(../images/hamburger_menu.svg);
}

/*---------------------------------------------------------------*/
/*-------------- layout/product-overview.scss -------------------*/
/*---------------------------------------------------------------*/
.product-overview,
.project-overview {
  display: flex;
  flex-wrap: wrap;
  gap: 2rem;
  padding: 3rem 2%;
  align-items: stretch;
  width: 100%;
  box-sizing: border-box;
  justify-content: space-between;
}
.product-overview:only-child,
.project-overview:only-child {
  padding: 0 3%;
  margin: 0;
}
@media (min-width: 80rem) {
  .product-overview,
.project-overview {
    margin-right: -2rem;
    /* Compensating for the gap between the list-items */
    padding: 3rem 0;
  }
  .product-overview:only-child,
.project-overview:only-child {
    padding: 0;
  }
}
.product-overview li,
.project-overview li {
  flex-grow: 1;
  max-width: 100%;
  list-style: none;
  display: flex;
  flex-direction: column;
  min-height: 15rem;
}
@media (min-width: 30rem) {
  .product-overview li,
.project-overview li {
    width: calc(50% - 2rem);
    max-width: calc(50% - 2rem);
  }
}
.product-overview li h1,
.project-overview li h1 {
  font-size: 1rem;
  text-align: center;
  line-height: 1.25rem;
  margin: 1rem 0;
  flex-grow: 1;
}
.product-overview li img,
.project-overview li img {
  align-self: flex-end;
  height: 14rem;
  object-fit: cover;
  object-position: bottom center;
  min-width: 100%;
  width: 100%;
}
.product-overview.product-layout-column-2 img, .product-overview.product-layout-column-3 img, .product-overview.product-layout-column-4 img, .product-overview.product-layout-column-5 img,
.product-layout-column-2.project-overview img,
.product-layout-column-3.project-overview img,
.product-layout-column-4.project-overview img,
.product-layout-column-5.project-overview img {
  max-width: 10rem;
}
@media (min-width: 30rem) {
  .product-overview.product-layout-column-2 img, .product-overview.product-layout-column-3 img, .product-overview.product-layout-column-4 img, .product-overview.product-layout-column-5 img,
.product-layout-column-2.project-overview img,
.product-layout-column-3.project-overview img,
.product-layout-column-4.project-overview img,
.product-layout-column-5.project-overview img {
    max-height: 8rem;
  }
}
.product-overview .img-illustration img,
.project-overview .img-illustration img {
  object-fit: contain;
  max-height: 15rem;
}

/*---------------------------------------------------------------*/
/*-------------- layout/project-overview.scss -------------------*/
/*---------------------------------------------------------------*/
/*---------------------------------------------------------------*/
/*-------------------- elements/shout_out.scss ------------------*/
/*---------------------------------------------------------------*/
.atom_shout_out .content_container {
  flex-direction: column;
}

/*---------------------------------------------------------------*/
/*---------------------- socials.scss ---------------------------*/
/*---------------------------------------------------------------*/
.atom_social_links_section .content_container {
  flex-direction: column;
}

.socials {
  display: flex;
  justify-content: space-between;
  /* Round social icons */
}
.socials a,
.socials a:visited {
  width: 2rem;
  height: 2rem;
  display: inline-block;
  color: transparent;
  font-size: 0;
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  margin: 0.5rem;
  opacity: 0.9;
}
.socials a:hover,
.socials a:visited:hover {
  opacity: 1;
}
.socials.socials_round .socials_facebook {
  background-image: url("../../images/socials/round/socials_facebook.svg");
}
.socials.socials_round .socials_twitter {
  background-image: url("../../images/socials/round/socials_twitter.svg");
}
.socials.socials_round .socials_linkedin {
  background-image: url("../../images/socials/round/socials_linkedin.svg");
}
.socials.socials_round .socials_instagram {
  background-image: url("../../images/socials/round/socials_instagram.svg");
}
.socials.socials_round .socials_youtube {
  background-image: url("../../images/socials/round/socials_youtube.svg");
}

/*---------------------------------------------------------------*/
/*-------------------- submit-form-cta.scss ---------------------*/
/*---------------------------------------------------------------*/
.atom_submit-form h1 {
  font-size: inherit;
  line-height: inherit;
  max-width: 100%;
  margin: 0;
}
@media (min-width: 24rem) {
  .atom_submit-form h1 {
    font-size: 3rem;
    line-height: 4.5rem;
  }
}
.atom_submit-form h2 {
  font-size: inherit;
  line-height: inherit;
}
@media (min-width: 24rem) {
  .atom_submit-form h2 {
    font-size: 1.5rem;
    line-height: 1.75rem;
  }
}
.atom_submit-form p {
  line-height: 1.75rem;
}
@media (min-width: 60rem) {
  .atom_submit-form p {
    max-width: 70%;
  }
}
.atom_submit-form form {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-width: 0;
}
.atom_submit-form form input {
  border: 0;
  min-height: 3.25rem;
  flex-grow: 1;
  font-size: inherit;
  padding: 0 1rem;
  min-width: 0;
  text-overflow: ellipsis;
}
.atom_submit-form form button[type=submit] {
  border: 1px solid #fff;
  margin-top: 0;
  box-sizing: border-box;
  width: 100%;
  padding: 1rem;
}
.atom_submit-form form > div {
  margin-bottom: 0;
  flex-direction: row;
  width: 100%;
  margin-bottom: 1rem;
}
@media (min-width: 24rem) {
  .atom_submit-form form {
    flex-direction: row;
    gap: 1rem;
  }
  .atom_submit-form form > div {
    margin-bottom: 0;
    width: auto;
    flex-grow: 1;
  }
  .atom_submit-form form button[type=submit] {
    width: auto;
    min-width: 10rem;
  }
}

/*---------------------------------------------------------------*/
/*---------------------- elements/team.scss ---------------------*/
/*---------------------------------------------------------------*/
.atom_team section > div > h1,
.atom_team section > div > h2 {
  max-width: 50rem;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}
.atom_team section > div ul {
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  gap: 3rem;
  padding-left: 0;
}
.atom_team section > div ul li {
  width: 100%;
  list-style: none;
  display: flex;
  flex-direction: column;
  text-align: center;
  gap: 2rem;
  align-items: center;
}
@media (min-width: 60rem) {
  .atom_team section > div ul li {
    max-width: calc(50% - 1.5rem);
    flex-direction: row;
    text-align: left;
  }
}
.atom_team section > div ul li img {
  width: 10rem;
  height: 10rem;
  object-fit: cover;
  object-position: center;
  border-radius: 50%;
}
.atom_team section > div ul li h1 {
  font-size: 2rem;
  line-height: 2rem;
}

/*---------------------------------------------------------------*/
/*-------------------- testimonials.scss ------------------------*/
/*---------------------------------------------------------------*/
.atom_testimonials ul {
  padding-left: 0;
  display: flex;
  flex-direction: column;
  gap: 2rem;
}
@media (min-width: 42rem) {
  .atom_testimonials ul {
    gap: 5rem;
  }
}
.atom_testimonials ul li {
  list-style: none;
  display: flex;
  gap: 5rem;
  align-items: flex-start;
  flex-wrap: wrap;
}
@media (min-width: 26rem) {
  .atom_testimonials ul li img {
    max-width: 25rem;
  }
}
.atom_testimonials ul li > div {
  min-width: 15rem;
  max-width: 50rem;
}
.atom_testimonials ul li > div .name {
  text-weight: 700;
  font-family: "dm-sans-bold";
}

/*---------------------------------------------------------------*/
/*----------- layout/text_block_with_list.scss ------------------*/
/*---------------------------------------------------------------*/
.atom_text_block_with_list section > div > div:last-child {
  flex-grow: 1;
  display: flex;
  justify-content: center;
  align-items: center;
}
.atom_text_block_with_list ul {
  max-width: 100%;
  padding-left: 0;
}
.atom_text_block_with_list ul li {
  list-style: none;
  min-height: 4rem;
  display: flex;
  align-items: center;
  word-break: break-word;
  font-size: 1.5rem;
}
.atom_text_block_with_list ul li:before {
  content: url("/images/check.svg");
  width: 1.5rem;
  min-width: 1.5rem;
  height: 1.5rem;
  min-height: 1.5rem;
  display: inline-block;
  margin-right: 1rem;
}

/* ----------------------------------------------- */
/* ----------------- quote.scss ------------------ */
/* ----------------------------------------------- */
quote {
  display: none;
}
@media (min-width: 75rem) {
  quote {
    display: block;
    max-width: 33%;
    margin: 4rem;
    color: #000;
    min-width: 22rem;
    font-size: 3rem;
    line-height: 3.5rem;
    text-align: center;
    font-weight: 300;
    align-self: center;
  }
}

/* Image styles */
/*---------------------------------------------------------------*/
/*-------------- element/img-transform/rouded.css ---------------*/
/*---------------------------------------------------------------*/
.img-rounded {
  position: relative;
}
.img-rounded img {
  object-fit: cover;
}
.img-rounded .img-container {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100%;
}
.img-rounded .img-container img {
  border-radius: 50%;
  object-fit: cover;
  width: 16rem;
  height: 16rem;
  min-height: 16rem;
  min-width: 16rem;
  max-width: 16rem;
  max-height: 16rem;
}

/*---------------------------------------------------------------*/
/*-------------- element/img-transform/cover.css ----------------*/
/*---------------------------------------------------------------*/
.img-cover {
  position: relative;
  color: #fff;
}
.img-cover > div {
  padding: 10rem 3%;
}
.img-cover .img-transform {
  height: 100%;
  max-height: 100%;
  width: 100%;
  max-width: 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
}
.img-cover .img-container {
  height: 100%;
  max-height: 100%;
  margin: 0;
  /* overlay */
}
.img-cover .img-container img {
  object-fit: cover;
  object-position: center;
  width: 100%;
  height: 100%;
  min-height: 100%;
  min-width: 100%;
}
.img-cover .img-container img.img-alignment-top {
  object-position: top;
}
.img-cover .img-container img.img-alignment-right {
  object-position: right;
}
.img-cover .img-container img.img-alignment-left {
  object-position: left;
}
.img-cover .img-container img.img-alignment-bottom {
  object-position: bottom;
}
.img-cover .img-container:after {
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  background-color: #000;
  top: 0;
  left: 0;
  opacity: 0.35;
}

/*---------------------------------------------------------------*/
/*-------------- element/img-transform/half.css -----------------*/
/*---------------------------------------------------------------*/
.img-half,
.img-half-reversed {
  align-items: flex-start;
  position: relative;
  /* Flipped layout */
}
.img-half > div,
.img-half-reversed > div {
  padding: 0;
  margin: 0 auto;
  width: 100%;
}
.img-half > div > div:not(.img-transform),
.img-half-reversed > div > div:not(.img-transform) {
  padding: 5rem 3%;
  box-sizing: border-box;
}
.img-half .img-transform,
.img-half-reversed .img-transform {
  width: 100%;
}
.img-half .img-transform .img-container,
.img-half-reversed .img-transform .img-container {
  margin: 0;
  height: 100%;
  max-height: 100%;
}
.img-half .img-transform .img-container img,
.img-half-reversed .img-transform .img-container img {
  object-fit: cover;
  height: 100%;
  width: 100%;
  min-height: 100%;
  min-width: 100%;
}
@media (min-width: 50rem) {
  .img-half > div > div,
.img-half-reversed > div > div {
    max-width: 45%;
  }
  .img-half .img-transform,
.img-half-reversed .img-transform {
    position: absolute;
    height: 100%;
    min-width: 50%;
    top: 0;
    right: 0;
  }
  .img-half .img-transform .img-container,
.img-half-reversed .img-transform .img-container {
    margin: 0;
    height: 100%;
    max-height: 100%;
  }
}
.img-half > div.layout-flipped,
.img-half-reversed > div.layout-flipped {
  min-width: 100%;
}
@media (min-width: 50rem) {
  .img-half > div.layout-flipped .img-transform,
.img-half-reversed > div.layout-flipped .img-transform {
    right: auto;
    left: 0;
  }
}

/*---------------------------------------------------------------*/
/*------------ element/img-transform/illustration.scss ----------*/
/*---------------------------------------------------------------*/
.img-illustration .img-container {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 2rem;
  box-sizing: border-box;
}

/*---------------------------------------------------------------*/
/*--------- element/img-transform/image-spread-half.scss --------*/
/*---------------------------------------------------------------*/
.atom_image_spread div {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  max-width: 100%;
  padding: 0;
}
@media (min-width: 42rem) {
  .atom_image_spread div {
    flex-wrap: nowrap;
  }
}
.atom_image_spread div img {
  object-fit: cover;
  object-position: center;
  width: 100%;
  max-height: 50rem;
}
@media (min-width: 42rem) {
  .atom_image_spread div img {
    max-width: 50%;
  }
}

/*---------------------------------------------------------------*/
/*-------------- element/img-transform/sliced.css ---------------*/
/*---------------------------------------------------------------*/
/* Skewed image */
.img-sliced,
.img-sliced_reversed {
  align-items: flex-start;
  position: relative;
  /* Flipped layout */
}
.img-sliced img,
.img-sliced_reversed img {
  object-fit: cover;
}
.img-sliced .img-container,
.img-sliced_reversed .img-container {
  display: none;
}
@media (min-width: 55rem) {
  .img-sliced,
.img-sliced_reversed {
    /* Skewing container */
  }
  .img-sliced > div > div:first-child,
.img-sliced_reversed > div > div:first-child {
    max-width: 48%;
  }
  .img-sliced .img-transform,
.img-sliced_reversed .img-transform {
    width: 48%;
    position: absolute;
    right: 0;
    top: 0;
    overflow: hidden;
    height: 100%;
  }
  .img-sliced .img-container,
.img-sliced_reversed .img-container {
    display: block;
    height: 100%;
    transform: skew(-7deg, 0deg);
    overflow: hidden;
    transform-origin: bottom left;
    position: relative;
    right: 0;
  }
  .img-sliced .img-container img,
.img-sliced_reversed .img-container img {
    transform: skew(7deg, 0deg);
    width: 130%;
    max-width: 130%;
    max-height: 100%;
    object-position: center;
    margin-left: -10%;
  }
}
.img-sliced > div.layout-flipped,
.img-sliced_reversed > div.layout-flipped {
  flex-direction: row-reverse;
}
@media (min-width: 55rem) {
  .img-sliced > div.layout-flipped .img-transform,
.img-sliced_reversed > div.layout-flipped .img-transform {
    right: auto;
    left: 0;
  }
  .img-sliced > div.layout-flipped .img-container,
.img-sliced_reversed > div.layout-flipped .img-container {
    transform: skew(7deg, 0deg);
    transform-origin: bottom right;
  }
  .img-sliced > div.layout-flipped .img-container img,
.img-sliced_reversed > div.layout-flipped .img-container img {
    transform: skew(-7deg, 0deg);
    margin-right: -10%;
    margin-left: 0;
  }
}

/* Animation */
/*---------------------------------------------------------------*/
/*---------------- element/animation/flip.scss ------------------*/
/*---------------------------------------------------------------*/
.btn-flip {
  opacity: 1;
  outline: 0;
  color: #fff;
  line-height: 40px;
  position: relative;
  text-align: center;
  letter-spacing: 1px;
  display: inline-block;
  text-decoration: none;
  font-family: "Open Sans";
  text-transform: uppercase;
}
.btn-flip:hover:after {
  opacity: 1;
  transform: translateY(0) rotateX(0);
}
.btn-flip:hover:before {
  opacity: 0;
  transform: translateY(50%) rotateX(90deg);
}
.btn-flip:after {
  top: 0;
  left: 0;
  opacity: 0;
  width: 100%;
  color: #323237;
  display: block;
  transition: 0.5s;
  position: absolute;
  background: #adadaf;
  content: attr(data-back);
  transform: translateY(-50%) rotateX(90deg);
}
.btn-flip:before {
  top: 0;
  left: 0;
  opacity: 1;
  color: #adadaf;
  display: block;
  padding: 0 30px;
  line-height: 40px;
  transition: 0.5s;
  position: relative;
  background: #323237;
  content: attr(data-front);
  transform: translateY(0) rotateX(0);
}

/* Site specific styles */
/*---------------------------------------------------------------*/
/*----------------------- transfarm.scss ------------------------*/
/*---------------------------------------------------------------*/
h1 {
  font-size: 2rem;
  line-height: 2.5rem;
}
@media (min-width: 24rem) {
  h1 {
    font-size: 3rem;
    line-height: 3.5rem;
  }
}
@media (min-width: 60rem) {
  h1 {
    font-size: 5rem;
    line-height: 6rem;
  }
}
@media (min-width: 80rem) {
  h1 {
    font-size: 6rem;
    line-height: 7rem;
  }
}

@media (min-width: 80rem) {
  section.img-cover h1 {
    font-size: 5rem;
    line-height: 6rem;
  }
}

.atom_text-block > section > div:first-child > div h1 {
  margin: 1rem 0;
}

h2 {
  font-size: 1.25rem;
  line-height: 1.5rem;
}
@media (min-width: 24rem) {
  h2 {
    font-size: 2.5rem;
    line-height: 3.5rem;
  }
}

button,
.button,
a.button,
a.button:visited {
  border: 1px solid #fff;
}
button:hover,
.button:hover,
a.button:hover,
a.button:visited:hover {
  border-color: #000;
  background-color: #fff;
  color: #000;
}

/* States */
*:focus {
  outline: 1px solid #000;
  outline-offset: 0.25rem;
}

.section-black *:focus {
  outline-color: #fff;
}

button:focus {
  outline-offset: 0;
}
button:focus.menu-toggle {
  outline: 0;
}

nav li > a:focus {
  outline-offset: 0;
}

.atom_project-showcase > section > div > h1,
.atom_projects > section > div > h1 {
  margin: 1rem 0;
}

.section-secondary-bg-color {
  color: #fff;
}

body > header {
  position: absolute;
  width: 100%;
  background-color: transparent;
  z-index: 1;
  color: #000;
}
body > header button.menu-toggle {
  padding: 1.5rem;
  border-radius: 50%;
  background-color: #fff;
  background-image: url(../images/hamburger-menu-dark.svg);
  background-repeat: no-repeat;
  background-size: 50%;
  background-position: center;
}
body > header + main > div:first-child > section > div {
  padding-top: 10rem;
  padding-bottom: 10.5rem;
}
body > header + main > div:first-child > section > div.layout-golden-ratio > div:first-child {
  max-width: 100%;
}
body > header + main > div:first-child > section > div.layout-golden-ratio > div:first-child > h1 {
  max-width: 60%;
}

.logo {
  font-size: 0;
}
.logo img {
  height: 4rem;
}

footer {
  background-color: #fff;
  color: #000;
  padding: 1.5rem 0;
}
footer a,
footer a:visited {
  color: #000;
}
footer a:hover,
footer a:visited:hover {
  text-decoration: underline 4px solid;
  text-underline-offset: 0.25rem;
}

.atom_submit-form label {
  display: none;
}

.section-black form .button,
.section-black form button,
.section-black form form button[type=submit] {
  background-color: #000;
  color: #fff;
  border: 1px solid #fff;
}
.section-black form .button:hover,
.section-black form button:hover,
.section-black form form button[type=submit]:hover {
  background-color: #fff;
  color: #000;
}

quote {
  color: #000;
}

.img-cover.text-block > div > div:first-child > h1,
.img-cover.text-block > div > div:first-child > h2,
.img-cover.text-block > div > div:first-child > div > p {
  background-color: #000;
  padding: 0.5rem;
}

section > div.layout-cover-inlay h1,
section > div.layout-cover-inlay-flipped h1 {
  font-size: 2rem;
  line-height: 3rem;
}

/* Success messages */
.submit main section {
  background-color: #000;
}
.submit main section div {
  color: #fff;
}

#atomid_246 .product-overview li {
  height: auto;
  min-height: 0;
}
#atomid_246 .product-overview li .img-container {
  padding: 0;
}
#atomid_246 .product-overview li .img-container img {
  height: auto;
  min-height: 0;
}
