@import "https://fonts.googleapis.com/css2?family=Rubik:ital,wght@0,300..900;1,300..900&display=swap";

/* scss/style.scss */
:root {
  --fonts-main-fallback: sans, sans-serif;
  --fonts-main-family: "Rubik";
  --fonts-main-line-height: 1.6;
  --fonts-main-size: 2rem;
  --fonts-main-weight: 400;
}
html,
body,
main,
header,
footer,
p,
article,
div,
section,
nav,
a,
ul,
li {
  box-sizing: border-box;
  margin: 0;
}
html {
  font-size: 62.5%;
  scroll-behavior: smooth;
  overscroll-behavior: none;
}
body {
  overflow-x: hidden;
  color: #505050;
  font-family: var(--fonts-main-family), var(--fonts-main-fallback);
  font-size: var(--fonts-main-size);
  font-weight: var(--fonts-main-weight);
  line-height: var(--fonts-main-line-height);
  scroll-behavior: smooth;
  overscroll-behavior: none;
}
@media (max-width: 49.999rem) {
  body {
    font-size: 1.7rem;
    line-height: 1.6;
  }
}
a {
  transition: all, 0.4s;
  text-decoration: none;
  color: #111;
}
a:hover,
a:focus {
  color: rgb(42.5, 42.5, 42.5);
}
p {
  margin-top: 1rem;
  margin-bottom: 1rem;
}
ul,
ol {
  margin: 1rem 2rem;
  padding: 0;
}
li {
  display: list-item;
}
video,
img {
  display: block;
  width: 100%;
  height: auto;
}
sup,
sub {
  font-size: 50%;
}
.layout--container {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  min-height: 100%;
  padding: 0;
}
.layout--container > main {
  flex: 1;
}
@media (min-width: 65rem) {
  main.has-sidebar {
    max-width: 156rem;
    margin-right: auto;
    margin-left: auto;
    padding-right: 2rem;
    padding-left: 2rem;
  }
  main.has-sidebar {
    display: flex;
    flex-wrap: wrap;
    width: 100%;
    gap: 2rem;
  }
  main.has-sidebar .main--content {
    flex: 1 1 0;
  }
}
h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 0;
  padding-right: 0;
  padding-left: 0;
}
h1 {
  text-transform: none;
  font-size: 2rem;
  line-height: 3rem;
  font-weight: 700;
}
@media (min-width: 50rem) {
  h1 {
    font-size: 3rem;
    line-height: 4rem;
  }
}
@media (min-width: 65rem) {
  h1 {
    font-size: 4rem;
    line-height: 5rem;
  }
}
h2 {
  font-size: 2.2rem;
  font-weight: 700;
  line-height: 2.8rem;
}
@media (min-width: 50rem) {
  h2 {
    font-size: 3rem;
    line-height: 4rem;
  }
}
h3 {
  font-size: 2rem;
  font-weight: 300;
  line-height: 2.6rem;
}
@media (min-width: 50rem) {
  h3 {
    font-size: 2.4rem;
    line-height: 3rem;
  }
}
h4 {
  font-size: 2rem;
  font-weight: 300;
  line-height: 2.6rem;
}
h5 {
  font-size: 1.6rem;
  font-weight: 300;
}
h6 {
  font-size: 1.4rem;
  font-style: italic;
}
table {
  width: 100%;
  max-width: 100%;
  background-color: #fff;
}
table th,
table td {
  padding: 0.75rem;
  vertical-align: top;
  border: 1px solid #000;
  background-color: #fff;
}
table thead th {
  vertical-align: bottom;
}
table tbody {
  border-top: none;
}
@media (min-width: 77.5rem) {
  table {
    display: block;
    overflow-x: auto;
    width: 100% !important;
    -ms-overflow-style: -ms-autohiding-scrollbar;
  }
}
body {
  font-family: Rubik, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.breadcrumbs {
  max-width: 65rem;
  margin-right: auto;
  margin-left: auto;
  padding-right: 2rem;
  padding-left: 2rem;
  color: #505050;
  font-weight: 400;
  font-size: 1.3rem;
}
.breadcrumbs ol {
  display: flex;
  margin: 0;
}
.breadcrumbs ol > li {
  display: block;
}
.breadcrumbs ol > li:after {
  display: inline-block;
  width: 0.8rem;
  height: 0.8rem;
  margin-right: 0.4rem;
  margin-left: 0.4rem;
  content: " ";
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}
.breadcrumbs ol > li:not(:last-child):after {
  background-image: url(/images/icons/default/arrow-right.svg);
}
.breadcrumbs a {
  color: #505050;
  font-weight: 400;
}
.button--_common {
  display: inline-flex;
  align-items: center;
  margin-top: 1.8rem;
  padding: 1rem 3rem;
  border-width: 1px;
  border-style: solid;
  border-color: #111;
  border-radius: 3rem;
  background-color: #fff;
  color: #111;
  font-family: "Rubik";
  font-size: 2rem;
  font-weight: 400;
  line-height: 1;
  text-decoration: none;
  min-height: 4.8rem;
  transition-property: all;
  transition-duration: 0.2s;
  transition-timing-function: ease;
}
.button--_common.outline {
  display: inline-flex;
  align-items: center;
  margin-top: 1.8rem;
  padding: 1rem 3rem;
  border-width: 1px;
  border-style: solid;
  border-color: #111;
  border-radius: 3rem;
  background-color: #fff;
  color: #111;
  font-family: "Rubik";
  font-size: 2rem;
  font-weight: 400;
  line-height: 1;
  text-decoration: none;
  min-height: 4.8rem;
  transition-property: all;
  transition-duration: 0.2s;
  transition-timing-function: ease;
}
.button--_common.outline {
  background-color: transparent;
  color: #fff;
}
.button--_common.outline:hover,
.button--_common.outline:focus {
  background-color: #fff;
  color: #111;
}
.button--primary {
  display: inline-flex;
  align-items: center;
  margin-top: 1.8rem;
  padding: 1rem 3rem;
  border-width: 1px;
  border-style: solid;
  border-color: #111;
  border-radius: 3rem;
  background-color: #fff;
  color: #111;
  font-family: "Rubik";
  font-size: 2rem;
  font-weight: 400;
  line-height: 1;
  text-decoration: none;
  min-height: 4.8rem;
  transition-property: all;
  transition-duration: 0.2s;
  transition-timing-function: ease;
}
.button--primary:hover,
.button--primary:focus {
  background-color: #111;
  border-color: #111;
  color: #fff;
}
.button--primary.outline {
  display: inline-flex;
  align-items: center;
  margin-top: 1.8rem;
  padding: 1rem 3rem;
  border-width: 1px;
  border-style: solid;
  border-color: #111;
  border-radius: 3rem;
  background-color: #fff;
  color: #111;
  font-family: "Rubik";
  font-size: 2rem;
  font-weight: 400;
  line-height: 1;
  text-decoration: none;
  min-height: 4.8rem;
  transition-property: all;
  transition-duration: 0.2s;
  transition-timing-function: ease;
}
.button--primary.outline:hover,
.button--primary.outline:focus {
  background-color: #111;
  border-color: #111;
  color: #fff;
}
.button--primary.outline {
  background-color: transparent;
  color: #fff;
}
.button--primary.outline:hover,
.button--primary.outline:focus {
  background-color: #fff;
  color: #111;
}
.button--secondary {
  display: inline-flex;
  align-items: center;
  margin-top: 1.8rem;
  padding: 1rem 3rem;
  border-width: 1px;
  border-style: solid;
  border-color: #fff;
  border-radius: 3rem;
  background-color: #111;
  color: #fff;
  font-family: "Rubik";
  font-size: 2rem;
  font-weight: 400;
  line-height: 1;
  text-decoration: none;
  min-height: 4.8rem;
  transition-property: all;
  transition-duration: 0.2s;
  transition-timing-function: ease;
}
.button--secondary:hover,
.button--secondary:focus {
  border-color: #fff;
  color: #fff;
}
.button--secondary.outline {
  display: inline-flex;
  align-items: center;
  margin-top: 1.8rem;
  padding: 1rem 3rem;
  border-width: 1px;
  border-style: solid;
  border-color: #fff;
  border-radius: 3rem;
  background-color: #111;
  color: #fff;
  font-family: "Rubik";
  font-size: 2rem;
  font-weight: 400;
  line-height: 1;
  text-decoration: none;
  min-height: 4.8rem;
  transition-property: all;
  transition-duration: 0.2s;
  transition-timing-function: ease;
}
.button--secondary.outline:hover,
.button--secondary.outline:focus {
  border-color: #fff;
  color: #fff;
}
.button--secondary.outline {
  background-color: transparent;
  color: #111;
}
.button--secondary.outline:hover,
.button--secondary.outline:focus {
  background-color: #111;
  color: #fff;
}
input[type=submit],
.button {
  display: inline-flex;
  align-items: center;
  margin-top: 1.8rem;
  padding: 1rem 3rem;
  border-width: 1px;
  border-style: solid;
  border-color: #111;
  border-radius: 3rem;
  background-color: #fff;
  color: #111;
  font-family: "Rubik";
  font-size: 2rem;
  font-weight: 400;
  line-height: 1;
  text-decoration: none;
  min-height: 4.8rem;
  transition-property: all;
  transition-duration: 0.2s;
  transition-timing-function: ease;
}
input[type=submit]:hover,
input[type=submit]:focus,
.button:hover,
.button:focus {
  background-color: #111;
  border-color: #111;
  color: #fff;
}
input[type=button],
input[type=reset] {
  display: inline-flex;
  align-items: center;
  margin-top: 1.8rem;
  padding: 1rem 3rem;
  border-width: 1px;
  border-style: solid;
  border-color: #fff;
  border-radius: 3rem;
  background-color: #111;
  color: #fff;
  font-family: "Rubik";
  font-size: 2rem;
  font-weight: 400;
  line-height: 1;
  text-decoration: none;
  min-height: 4.8rem;
  transition-property: all;
  transition-duration: 0.2s;
  transition-timing-function: ease;
}
input[type=button]:hover,
input[type=button]:focus,
input[type=reset]:hover,
input[type=reset]:focus {
  border-color: #fff;
  color: #fff;
}
.status-messages,
.messages__wrapper {
  padding: 2rem;
  background-color: #111;
}
.status-messages > div,
.messages__wrapper > div {
  max-width: 156rem;
  margin-right: auto;
  margin-left: auto;
  padding-right: 2rem;
  padding-left: 2rem;
}
.status-messages > div,
.messages__wrapper > div {
  padding: 2rem;
  color: #111;
  border-radius: 1.5rem;
  background-color: #fff;
}
.status-messages > div a,
.messages__wrapper > div a {
  text-decoration: underline;
  color: #111;
}
.card {
  position: relative;
  transition: all 0.5s ease-in-out;
  container-type: inline-size;
}
.card .image {
  position: relative;
  z-index: 4;
  display: block;
  margin: 0;
  border-radius: 50%;
  background-color: #fff;
  box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.1);
  aspect-ratio: 1;
}
.card .image img {
  width: 100%;
  height: 100%;
  transition: all 0.5s ease-in-out;
  border-radius: 50%;
  -o-object-fit: cover;
  object-fit: cover;
}
.card .image:before,
.card .image:after {
  position: absolute;
  z-index: -10;
  top: 50%;
  left: 50%;
  display: block;
  width: 80%;
  height: 80%;
  content: "";
  transition: all 0.5s ease-in-out;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background-color: rgba(0, 0, 0, 0.1);
}
.card .image:hover img {
  transform: rotate(-20deg);
  transform-origin: center;
}
.card .image:hover:before {
  top: 30%;
  left: 30%;
}
.card .image:hover:after {
  top: 70%;
  left: 70%;
}
.card h3 {
  padding: 2rem 0;
  text-align: center;
}
.card .inner {
  position: fixed;
  z-index: 2;
  top: -100vh;
  left: 50vw;
  flex: 0 0 100%;
  width: 90vw;
  max-width: 60rem;
  max-height: 90vh;
  padding: 2rem 3rem;
  transition: all 0.5s ease-in-out;
  transform: translate(-50%, -50%);
  color: #fff;
  background: #000;
}
.card.goldblast .image {
  background-color: #000;
}
.card.kobbenet .image {
  background-color: #fff;
}
.card.open .inner {
  z-index: 100;
  top: 50vh;
}
.services > .intro {
  position: relative;
}
.services > .intro h3:after {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: 1.2rem;
  height: 1.2rem;
  margin-left: 1rem;
  content: "i";
  border: 1px solid #ccc;
  border-radius: 50%;
  font-size: 0.8rem;
}
.specialization--quote {
  position: absolute;
  z-index: 2;
  top: 100%;
  left: 0;
  width: 100%;
  margin-bottom: 3rem;
  padding: 3rem;
  transition: transform 0.2s;
  transform: scale(0);
  color: #efefef;
  background: #000;
}
.specialization--quote:before {
  position: absolute;
  top: -10px;
  left: 2rem;
  display: block;
  width: 0;
  height: 0;
  content: " ";
  border: 5px solid transparent;
  border-bottom-color: #000;
}
.specialization--quote.open {
  transform: scale(1);
}
blockquote {
  font-size: 1.6rem;
  font-style: italic;
}
blockquote strong {
  display: block;
}
[class*=button].external {
  padding-right: 6rem;
  background-repeat: no-repeat;
  background-position: right 2rem center;
  background-size: 2rem;
}
.button.external {
  background-image: url(/images/icons/shade-1/external.svg);
}
.button--secondary.external {
  background-image: url(/images/icons/white/external.svg);
}
.button--tertiary.external {
  background-image: url(/images/icons/white/external.svg);
}
.modal {
  position: fixed;
  z-index: 100;
  top: 50%;
  left: 50%;
  display: none;
  width: 60rem;
  max-width: 99vw;
  min-height: 20rem;
  max-height: 99vh;
  padding: 3rem;
  transform: translate(-50%, -50%);
  border: 1px solid #000;
  background-color: #fff;
}
.modal.open {
  display: block;
}
.modal .close-modal {
  background-image: url(/images/icons/white/close.svg);
}
.modal .close-modal {
  box-sizing: border-box;
  width: 3rem;
  height: 3rem;
  margin: 0;
  padding: 0;
  border: none;
  border-radius: 50%;
  background-color: #000;
  background-repeat: no-repeat;
  background-position: center;
  background-size: 60% auto;
  font-size: 0;
}
.modal .close-modal {
  position: absolute;
  top: 1rem;
  right: 1rem;
}
body:not(.lb-page) .slideshow {
  --slideshow-default-speed: 6000ms;
  --slideshow-default-transition: 1500ms;
  position: relative;
}
body:not(.lb-page) .slideshow > figure,
body:not(.lb-page) .slideshow > div {
  position: absolute;
  z-index: -100;
  top: 0;
  left: 0;
  width: 100%;
  transition-timing-function: ease-in-out;
  transition-duration: var(--slideshow-default-transition);
  transition-property: opacity;
  opacity: 0;
}
body:not(.lb-page) .slideshow > figure img,
body:not(.lb-page) .slideshow > div img {
  transition-timing-function: ease-in-out;
  transition-duration: var(--slideshow-default-transition);
  transition-property: transform;
}
body:not(.lb-page) .slideshow > figure.active,
body:not(.lb-page) .slideshow > div.active {
  z-index: 2;
  opacity: 1;
}
body:not(.lb-page) .slideshow > figure.active img,
body:not(.lb-page) .slideshow > div.active img {
  transform: scale(1.1);
}
body:not(.lb-page) .slideshow > figure.deactivating,
body:not(.lb-page) .slideshow > div.deactivating {
  z-index: 3;
  pointer-events: none;
  opacity: 0;
}
body:not(.lb-page) .slideshow > figure.inline-block img,
body:not(.lb-page) .slideshow > div.inline-block img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
}
.slideshow--indicator {
  display: block;
  margin-top: 2rem;
  margin-bottom: 2rem;
}
.slideshow--indicator ul {
  display: flex;
  justify-content: center;
  margin: 0;
  gap: 2rem;
}
.slideshow--indicator ul li {
  width: 2rem;
  height: 2rem;
  cursor: pointer;
  border: 1px solid #000;
  border-radius: 50%;
  background: #000;
  font-size: 0;
}
.slideshow--indicator ul li.indicator--active {
  width: 2rem;
  height: 2rem;
  border: 1px solid #000;
  border-radius: 50%;
  background: #111;
}
.slideshow--navigation {
  position: relative;
}
.slideshow--navigation a {
  position: absolute;
  z-index: 100;
  top: 0;
  width: 5cqw;
  min-width: 3rem;
  height: calc(100cqw * var(--img-ratio-max));
  background-repeat: no-repeat;
  background-position: center;
  background-size: 2rem auto;
  font-size: 0;
}
.slideshow--navigation .prev {
  left: 0;
}
.slideshow--navigation .prev {
  background-image: url(/images/icons/black/arrow-left.svg);
}
.slideshow--navigation .next {
  right: 0;
}
.slideshow--navigation .next {
  background-image: url(/images/icons/black/arrow-right.svg);
}
.layout-builder .slideshow > * {
  position: absolute;
  z-index: -100;
  top: 0;
  left: 0;
}
.layout-builder .slideshow > *:nth-child(1) {
  position: relative;
  z-index: 1;
}
body > header {
  max-width: 65rem;
  margin-right: auto;
  margin-left: auto;
  padding-right: 2rem;
  padding-left: 2rem;
}
body > header {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  padding-top: 3rem;
  padding-bottom: 3rem;
  gap: 2rem;
}
body > header figure {
  width: 10rem;
  height: 10rem;
  margin: 0;
}
body > header figure img {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  -o-object-fit: cover;
  object-fit: cover;
}
body > header h1 {
  margin: 0;
  font-size: 2rem;
  line-height: 1.2;
}
body > header h2 {
  margin: 0;
  color: #b0b0b0;
  font-size: 1.6rem;
  line-height: 1.2;
}
body > footer .inner {
  max-width: 156rem;
  margin-right: auto;
  margin-left: auto;
  padding-right: 2rem;
  padding-left: 2rem;
}
body > footer .inner {
  position: relative;
  height: 15rem;
}
body > footer {
  margin-top: 8rem;
  background-color: #f4f4f4;
}
body > footer p {
  padding: 6rem 0;
  font-size: 1.4rem;
}
body > footer .contact {
  position: absolute;
  top: -5rem;
  right: 0;
  display: block;
  width: 10rem;
  height: 10rem;
  border-radius: 50%;
  background-color: #000;
  font-size: 0;
}
body > footer .contact .letter-image {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 60px;
  height: 60px;
  cursor: pointer;
  transform: translate(-50%, -50%);
}
body > footer .contact .animated-mail {
  position: absolute;
  width: 60px;
  height: 45px;
  transition: 0.4s;
}
body > footer .contact .animated-mail .body {
  position: absolute;
  z-index: 2;
  bottom: 0;
  width: 0;
  height: 0;
  border-width: 0 0 30px 60px;
  border-style: solid;
  border-color: transparent transparent #fff transparent;
}
body > footer .contact .animated-mail .top-fold {
  position: absolute;
  z-index: 2;
  top: 15px;
  width: 0;
  height: 0;
  transition: transform 0.4s 0.4s, z-index 0.2s 0.4s;
  transform-origin: 50% 0%;
  border-width: 15px 30px 0 30px;
  border-style: solid;
  border-color: #f1f1f1 transparent transparent transparent;
}
body > footer .contact .animated-mail .back-fold {
  position: absolute;
  z-index: 0;
  bottom: 0;
  width: 60px;
  height: 30px;
  background: #f1f1f1;
}
body > footer .contact .animated-mail .left-fold {
  position: absolute;
  z-index: 2;
  bottom: 0;
  width: 0;
  height: 0;
  border-width: 15px 0 15px 30px;
  border-style: solid;
  border-color: transparent transparent transparent #ededed;
}
body > footer .contact .animated-mail .letter {
  position: absolute;
  z-index: 1;
  bottom: 0;
  left: 6px;
  overflow: hidden;
  width: 48px;
  height: 18px;
  transition: 0.4s 0.2s;
  background: white;
}
body > footer .contact .animated-mail .letter .letter-border {
  width: 100%;
  height: 3px;
  background: #ccc;
}
body > footer .contact .animated-mail .letter .letter-title {
  width: 40%;
  height: 3px;
  margin-top: 3px;
  margin-left: 2px;
  background: #aaa;
}
body > footer .contact .animated-mail .letter .letter-context {
  width: 20%;
  height: 3px;
  margin-top: 3px;
  margin-left: 1px;
  background: #000;
}
body > footer .contact .animated-mail .letter .letter-stamp {
  width: 9px;
  height: 9px;
  margin-top: 15px;
  margin-left: 24px;
  opacity: 0.3;
  background: #000;
}
body > footer .contact .letter-image:hover .animated-mail {
  transform: translateY(15px);
}
body > footer .contact .letter-image:hover .animated-mail .top-fold {
  z-index: 0;
  transition: transform 0.4s, z-index 0.2s;
  transform: rotateX(180deg);
}
body > footer .contact .letter-image:hover .animated-mail .letter {
  height: 54px;
}
body > footer .contact .letter-image:hover .shadow {
  width: 75px;
}
fieldset {
  margin: 0;
  padding: 6px 0;
  border: none;
}
fieldset > legend,
fieldset > label {
  display: block;
  margin-bottom: 0.2rem;
  font-size: 1.7rem;
}
textarea,
select,
input[type=color],
input[type=url],
input[type=password],
input[type=email],
input[type=tel],
input[type=number],
input[type=text],
input[type=search],
input[type=date] {
  box-sizing: border-box;
  padding: 1.2rem 1rem;
  color: #505050;
  border: 1px solid #b0b0b0;
  border-radius: 0.5rem;
  font-family: "Rubik";
  font-size: 2rem;
  font-weight: 400;
}
textarea::-moz-placeholder,
select::-moz-placeholder,
input[type=color]::-moz-placeholder,
input[type=url]::-moz-placeholder,
input[type=password]::-moz-placeholder,
input[type=email]::-moz-placeholder,
input[type=tel]::-moz-placeholder,
input[type=number]::-moz-placeholder,
input[type=text]::-moz-placeholder,
input[type=search]::-moz-placeholder,
input[type=date]::-moz-placeholder {
  color: 1px solid #b0b0b0;
}
textarea::placeholder,
select::placeholder,
input[type=color]::placeholder,
input[type=url]::placeholder,
input[type=password]::placeholder,
input[type=email]::placeholder,
input[type=tel]::placeholder,
input[type=number]::placeholder,
input[type=text]::placeholder,
input[type=search]::placeholder,
input[type=date]::placeholder {
  color: 1px solid #b0b0b0;
}
textarea:focus,
textarea:hover,
select:focus,
select:hover,
input[type=color]:focus,
input[type=color]:hover,
input[type=url]:focus,
input[type=url]:hover,
input[type=password]:focus,
input[type=password]:hover,
input[type=email]:focus,
input[type=email]:hover,
input[type=tel]:focus,
input[type=tel]:hover,
input[type=number]:focus,
input[type=number]:hover,
input[type=text]:focus,
input[type=text]:hover,
input[type=search]:focus,
input[type=search]:hover,
input[type=date]:focus,
input[type=date]:hover {
  border: 1px solid rgb(5, 176, 51);
  outline: none;
}
input[type=color],
input[type=url],
input[type=password],
input[type=email],
input[type=tel],
input[type=number],
input[type=text],
input[type=search],
input[type=date] {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}
textarea {
  width: 100%;
  resize: vertical;
  background-color: #fff;
}
select {
  background-image: url(/images/icons/default/arrow-down.svg);
}
select {
  box-sizing: border-box;
  padding: 1.2rem 4rem 1.2rem 1rem;
  color: #505050;
  border: 1px solid #b0b0b0;
  border-radius: 0.5rem;
  background-color: #fff;
  background-position: right 1rem center;
  background-size: "2rem auto";
  background-repeat: no-repeat;
  font-family: "Rubik";
  font-size: 2rem;
  font-weight: 400;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}
.form-item > .description {
  width: 100%;
  padding-top: 0.5rem;
  color: rgb(105.5, 105.5, 105.5);
  font-size: 1.4rem;
  font-weight: 200;
  font-style: italic;
  line-height: 1.4;
}
.form-item > label,
.form-item > .label {
  font-size: inherit;
}
.form-item:not(.js-form-type-checkbox) > label,
.form-item:not(.js-form-type-checkbox) > .label {
  margin-bottom: 0.2rem;
}
.js-form-type-radio,
.js-form-type-checkbox {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
}
.js-form-type-radio label,
.js-form-type-checkbox label {
  display: inline-block;
  flex: 1 1 0;
}
.js-form-type-radio .form-item--error-message,
.js-form-type-checkbox .form-item--error-message {
  display: block;
  width: 100%;
}
.js-form-type-radio .checkbox,
.js-form-type-checkbox .checkbox {
  margin-right: 1rem;
}
.js-form-type-radio .checkbox .form-item--error-message:has(*:not(.valid)),
.js-form-type-checkbox .checkbox .form-item--error-message:has(*:not(.valid)) {
  position: absolute;
  top: -2.5rem;
  left: 0;
  width: 100vw;
  max-width: 600px;
  height: 2.4rem;
  padding: 0.2rem;
  border: solid 1px rgb(241, 0, 0);
  border-radius: 0.4rem;
  background-color: rgba(241, 0, 0, 0.1);
}
.js-form-type-radio .description,
.js-form-type-checkbox .description {
  flex: 1 1 0;
  width: auto;
}
@media (max-width: 49.999rem) {
  .js-form-type-radio .description,
  .js-form-type-checkbox .description {
    flex: 1 1 100%;
  }
}
.form-item:has(.form-item--error-message) textarea:not(.valid),
.form-item:has(.form-item--error-message) select:not(.valid),
.form-item:has(.form-item--error-message) input:not(.valid) {
  border: 1px solid rgb(241, 0, 0);
  background-color: rgba(241, 0, 0, 0.1);
}
.form-item:has(.form-item--error-message) textarea:not(.valid)::-moz-placeholder,
.form-item:has(.form-item--error-message) select:not(.valid)::-moz-placeholder,
.form-item:has(.form-item--error-message) input:not(.valid)::-moz-placeholder {
  color: rgb(241, 0, 0);
}
.form-item:has(.form-item--error-message) textarea:not(.valid)::placeholder,
.form-item:has(.form-item--error-message) select:not(.valid)::placeholder,
.form-item:has(.form-item--error-message) input:not(.valid)::placeholder {
  color: rgb(241, 0, 0);
}
.form-item:has(.form-item--error-message) select:not(.valid),
.form-item:has(.form-item--error-message) input[type=color]:not(.valid),
.form-item:has(.form-item--error-message) input[type=url]:not(.valid),
.form-item:has(.form-item--error-message) input[type=password]:not(.valid),
.form-item:has(.form-item--error-message) input[type=email]:not(.valid),
.form-item:has(.form-item--error-message) input[type=tel]:not(.valid),
.form-item:has(.form-item--error-message) input[type=number]:not(.valid),
.form-item:has(.form-item--error-message) input[type=text]:not(.valid),
.form-item:has(.form-item--error-message) input[type=search]:not(.valid),
.form-item:has(.form-item--error-message) input[type=date]:not(.valid) {
  background-image: url(/images/icons/default/error.svg);
}
.form-item:has(.form-item--error-message) select:not(.valid),
.form-item:has(.form-item--error-message) input[type=color]:not(.valid),
.form-item:has(.form-item--error-message) input[type=url]:not(.valid),
.form-item:has(.form-item--error-message) input[type=password]:not(.valid),
.form-item:has(.form-item--error-message) input[type=email]:not(.valid),
.form-item:has(.form-item--error-message) input[type=tel]:not(.valid),
.form-item:has(.form-item--error-message) input[type=number]:not(.valid),
.form-item:has(.form-item--error-message) input[type=text]:not(.valid),
.form-item:has(.form-item--error-message) input[type=search]:not(.valid),
.form-item:has(.form-item--error-message) input[type=date]:not(.valid) {
  background-repeat: no-repeat;
  background-position: right 1rem center;
  background-size: 2rem auto;
}
.form-item:has(.form-item--error-message) .description {
  color: rgb(241, 0, 0);
}
.form-item--error-message,
.fieldset--errors {
  width: 100%;
  color: rgb(241, 0, 0);
  font-size: 1.4rem;
  font-weight: 200;
  font-style: italic;
  line-height: 1.4;
}
.form-item--error-message:not(.valid),
.fieldset--errors:not(.valid) {
  padding-top: 0.5rem;
}
.form-type-radio {
  display: flex;
}
.field.type-datetime [data-drupal-field-elements=date] > .form-item {
  margin-top: 0;
}
.js-form-type-range {
  display: flex;
  justify-content: space-between;
}
.form-type-checkbox + .form-type-checkbox {
  margin-top: 1rem;
}
@media (max-width: 49.999rem) {
  .js-form-type-range {
    flex-wrap: wrap;
  }
  .js-form-type-range legend,
  .js-form-type-range label {
    display: block;
    width: 100%;
    margin: 0 0 1rem 0;
  }
}
input[type=range] {
  width: 16rem;
  cursor: pointer;
  background: transparent;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}
input[type=range]:focus {
  outline: none;
}
input[type=range]::-webkit-slider-runnable-track {
  height: 0.5rem;
  border-radius: 0.5rem;
  background-color: #111;
}
input[type=range]::-webkit-slider-thumb {
  width: 2rem;
  height: 2rem;
  margin-top: -8px;
  border-radius: 50%;
  background-color: #111;
  -webkit-appearance: none;
  appearance: none;
}
input[type=range]::-moz-range-track {
  height: 0.5rem;
  border-radius: 0.5rem;
  background-color: #d2d1d1;
}
input[type=range]::-moz-range-progress {
  height: 0.5rem;
  border-radius: 0.5rem;
  background-color: #111;
}
input[type=range]::-moz-range-thumb {
  width: 2rem;
  height: 2rem;
  border: none;
  border-radius: 50%;
  background-color: #111;
}
.form-type-checkbox {
  display: flex;
  align-items: center;
}
.form-type-checkbox .checkbox {
  --border-width: 1px;
  --e-in: ease-in;
  --e-out: cubic-bezier(0.11, 0.29, 0.18, 0.98);
  --s-small: 1.2em;
  --s-xsmall: 0.625em;
  --t-base: 0.4s;
  --t-fast: 0.2s;
  position: relative;
  width: 2rem;
  height: 2rem;
  margin-right: 2rem;
}
.form-type-checkbox .checkbox input[type=checkbox] {
  position: absolute;
  z-index: 3;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  opacity: 0;
  border: 0;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}
.form-type-checkbox .checkbox .checkbox__symbol {
  position: relative;
  z-index: 2;
  display: flex;
  box-sizing: border-box;
  width: 100%;
  height: 100%;
  transition:
    box-shadow var(--t-base) var(--e-out),
    background-color var(--t-base),
    border-color var(--t-base);
  border: 1px solid #b0b0b0;
  border-radius: 0.5rem;
  box-shadow: 0 0 0 0 hsl(0, 0%, -13.3333333333%);
}
.form-type-checkbox .checkbox .checkbox__symbol svg {
  display: block;
  width: 1.6rem;
  height: 1.6rem;
  margin: auto;
  transition: transform var(--t-fast) var(--e-in);
  transform: scale(0);
  fill: #111;
}
.form-type-checkbox .checkbox .checkbox__symbol:after {
  position: absolute;
  z-index: 1;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  content: "";
  transform: scale(0);
  transform-origin: 50% 50%;
  opacity: 0;
  border-radius: 50%;
  background-color: hsl(0, 0%, -13.3333333333%);
}
.form-type-checkbox input[type=checkbox]:checked ~ .checkbox__symbol {
  border-color: #111;
}
.form-type-checkbox input[type=checkbox]:checked ~ .checkbox__symbol:after {
  animation: ripple 1.5s var(--e-out);
}
.form-type-checkbox input[type=checkbox]:checked ~ .checkbox__symbol svg {
  transition: transform var(--t-base) var(--e-in);
  transform: scale(1);
  stroke-dashoffset: 0;
}
.form-type-checkbox input[type=checkbox]:focus ~ .checkbox__symbol {
  box-shadow: 0 0 0 0.25em hsl(0, 0%, -13.3333333333%);
}
@keyframes ripple {
  from {
    transform: scale(0);
    opacity: 1;
  }
  to {
    transform: scale(3);
    opacity: 0;
  }
}
.homepage section.intro {
  max-width: 65rem;
  margin-right: auto;
  margin-left: auto;
  padding-right: 2rem;
  padding-left: 2rem;
}
.homepage section.intro {
  padding-top: 6rem;
  padding-bottom: 6rem;
}
.homepage section.hobbies,
.homepage section.services {
  max-width: 104rem;
  margin-right: auto;
  margin-left: auto;
  padding-right: 2rem;
  padding-left: 2rem;
}
.homepage section.hobbies,
.homepage section.services {
  --per-row: 2;
  --gap: 3rem;
  margin-bottom: 6rem;
}
.homepage section.hobbies .intro,
.homepage section.services .intro {
  margin-bottom: 6rem;
}
.homepage section.hobbies .intro h3,
.homepage section.services .intro h3 {
  font-size: 1.6rem;
}
.homepage section.hobbies .cards,
.homepage section.services .cards {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: var(--gap);
}
.homepage section.hobbies .cards .card,
.homepage section.services .cards .card {
  flex: 0 0 calc((100% - (var(--per-row) - 1) * var(--gap)) / var(--per-row));
}
.homepage section.hobbies {
  --per-row: 4;
}
@media (min-width: 65rem) {
  .homepage section.services {
    --per-row: 3;
    --gap: 6rem;
  }
  .homepage section.hobbies {
    --per-row: 6;
    --gap: 3rem;
  }
  .homepage section.hobbies .cards .card h3 {
    font-size: 1.6rem;
  }
}
.contact .content-contact {
  max-width: 65rem;
  margin-right: auto;
  margin-left: auto;
  padding-right: 2rem;
  padding-left: 2rem;
}
.contact form {
  max-width: 50rem;
  margin-right: auto;
  margin-left: auto;
  padding-right: 2rem;
  padding-left: 2rem;
}
.contact form {
  padding-top: 6rem;
}
.contact form label {
  display: block;
  font-size: 1.8rem;
  font-style: italic;
}
.contact form input[type=text],
.contact form input[type=email] {
  width: 100%;
  margin-bottom: 2rem;
}
.contact form textarea {
  min-height: 18.5rem;
  resize: vertical;
}
#not-found {
  max-width: 65rem;
  margin-right: auto;
  margin-left: auto;
  padding-right: 2rem;
  padding-left: 2rem;
}
#not-found {
  height: calc(100vh - 16rem - 23rem);
}
#photography .intro {
  max-width: 65rem;
  margin-right: auto;
  margin-left: auto;
  padding-right: 2rem;
  padding-left: 2rem;
}
#photography .intro {
  margin-bottom: 6rem;
}
#photography .examples {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 2rem;
}
#photography figure {
  width: 90vw;
  margin: 5vw;
}
#photography figcaption {
  padding: 1rem;
  font-size: 1.4rem;
  font-style: italic;
}
@media (min-width: 65rem) {
  #photography {
    --columns: 3;
    --gap-size: 1rem;
    --gaps: calc(var(--columns) - 1);
  }
  #photography .examples {
    display: grid;
    grid-auto-rows: calc((100vw - var(--gaps) * var(--gap-size)) / (5 * var(--columns)));
    grid-gap: var(--gap-size);
    grid-template-columns: repeat(var(--columns), 1fr);
  }
  #photography .panorama {
    grid-row: span 2;
  }
  #photography .landscape {
    grid-row: span 3;
  }
  #photography .square {
    grid-row: span 5;
  }
  #photography .portrait {
    grid-row: span 7;
  }
  #photography figure {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: auto;
    margin: 0;
  }
  #photography figure img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover;
  }
  #photography figure figcaption {
    position: absolute;
    bottom: 0;
    left: 0;
    background-color: rgba(255, 255, 255, 0.5);
  }
}
@media (min-width: 125rem) {
  #photography .examples {
    --columns: 4;
  }
}
/*# sourceMappingURL=style.css.map */
