/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
/* Document
   ========================================================================== */
/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */
html {
  line-height: 1.15;
  /* 1 */
  -webkit-text-size-adjust: 100%;
  /* 2 */
}

/* Sections
     ========================================================================== */
/**
   * Remove the margin in all browsers.
   */
body {
  margin: 0;
}

/**
   * Render the `main` element consistently in IE.
   */
main {
  display: block;
}

/**
   * Correct the font size and margin on `h1` elements within `section` and
   * `article` contexts in Chrome, Firefox, and Safari.
   */
h1 {
  font-size: 2em;
  margin: 0.67em 0;
}

/* Grouping content
     ========================================================================== */
/**
   * 1. Add the correct box sizing in Firefox.
   * 2. Show the overflow in Edge and IE.
   */
hr {
  box-sizing: content-box;
  /* 1 */
  height: 0;
  /* 1 */
  overflow: visible;
  /* 2 */
}

/**
   * 1. Correct the inheritance and scaling of font size in all browsers.
   * 2. Correct the odd `em` font sizing in all browsers.
   */
pre {
  font-family: monospace, monospace;
  /* 1 */
  font-size: 1em;
  /* 2 */
}

/* Text-level semantics
     ========================================================================== */
/**
   * Remove the gray background on active links in IE 10.
   */
a {
  background-color: transparent;
}

/**
   * 1. Remove the bottom border in Chrome 57-
   * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
   */
abbr[title] {
  border-bottom: none;
  /* 1 */
  text-decoration: underline;
  /* 2 */
  text-decoration: underline dotted;
  /* 2 */
}

/**
   * Add the correct font weight in Chrome, Edge, and Safari.
   */
b,
strong {
  font-weight: bolder;
}

/**
   * 1. Correct the inheritance and scaling of font size in all browsers.
   * 2. Correct the odd `em` font sizing in all browsers.
   */
code,
kbd,
samp {
  font-family: monospace, monospace;
  /* 1 */
  font-size: 1em;
  /* 2 */
}

/**
   * Add the correct font size in all browsers.
   */
small {
  font-size: 80%;
}

/**
   * Prevent `sub` and `sup` elements from affecting the line height in
   * all browsers.
   */
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/* Embedded content
     ========================================================================== */
/**
   * Remove the border on images inside links in IE 10.
   */
img {
  border-style: none;
}

/* Forms
     ========================================================================== */
/**
   * 1. Change the font styles in all browsers.
   * 2. Remove the margin in Firefox and Safari.
   */
button,
input,
optgroup,
select,
textarea {
  font-family: inherit;
  /* 1 */
  font-size: 100%;
  /* 1 */
  line-height: 1.15;
  /* 1 */
  margin: 0;
  /* 2 */
}

/**
   * Show the overflow in IE.
   * 1. Show the overflow in Edge.s
   */
button,
input {
  /* 1 */
  overflow: visible;
}

/**
   * Remove the inheritance of text transform in Edge, Firefox, and IE.
   * 1. Remove the inheritance of text transform in Firefox.
   */
button,
select {
  /* 1 */
  text-transform: none;
}

/**
   * Correct the inability to style clickable types in iOS and Safari.
   */
button,
[type=button],
[type=reset],
[type=submit] {
  -webkit-appearance: button;
}

/**
   * Remove the inner border and padding in Firefox.
   */
button::-moz-focus-inner,
[type=button]::-moz-focus-inner,
[type=reset]::-moz-focus-inner,
[type=submit]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

/**
   * Restore the focus styles unset by the previous rule.
   */
button:-moz-focusring,
[type=button]:-moz-focusring,
[type=reset]:-moz-focusring,
[type=submit]:-moz-focusring {
  outline: 1px dotted ButtonText;
}

/**
   * Correct the padding in Firefox.
   */
fieldset {
  padding: 0.35em 0.75em 0.625em;
}

/**
   * 1. Correct the text wrapping in Edge and IE.
   * 2. Correct the color inheritance from `fieldset` elements in IE.
   * 3. Remove the padding so developers are not caught out when they zero out
   *    `fieldset` elements in all browsers.
   */
legend {
  box-sizing: border-box;
  /* 1 */
  color: inherit;
  /* 2 */
  display: table;
  /* 1 */
  max-width: 100%;
  /* 1 */
  padding: 0;
  /* 3 */
  white-space: normal;
  /* 1 */
}

/**
   * Add the correct vertical alignment in Chrome, Firefox, and Opera.
   */
progress {
  vertical-align: baseline;
}

/**
   * Remove the default vertical scrollbar in IE 10+.
   */
textarea {
  overflow: auto;
}

/**
   * 1. Add the correct box sizing in IE 10.
   * 2. Remove the padding in IE 10.
   */
[type=checkbox],
[type=radio] {
  box-sizing: border-box;
  /* 1 */
  padding: 0;
  /* 2 */
}

/**
   * Correct the cursor style of increment and decrement buttons in Chrome.
   */
[type=number]::-webkit-inner-spin-button,
[type=number]::-webkit-outer-spin-button {
  height: auto;
}

/**
   * 1. Correct the odd appearance in Chrome and Safari.
   * 2. Correct the outline style in Safari.
   */
[type=search] {
  -webkit-appearance: textfield;
  /* 1 */
  outline-offset: -2px;
  /* 2 */
}

/**
   * Remove the inner padding in Chrome and Safari on macOS.
   */
[type=search]::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
   * 1. Correct the inability to style clickable types in iOS and Safari.
   * 2. Change font properties to `inherit` in Safari.
   */
::-webkit-file-upload-button {
  -webkit-appearance: button;
  /* 1 */
  font: inherit;
  /* 2 */
}

/* Interactive
     ========================================================================== */
/*
   * Add the correct display in Edge, IE 10+, and Firefox.
   */
details {
  display: block;
}

/*
   * Add the correct display in all browsers.
   */
summary {
  display: list-item;
}

/* Misc
     ========================================================================== */
/**
   * Add the correct display in IE 10+.
   */
template {
  display: none;
}

/**
   * Add the correct display in IE 10.
   */
[hidden] {
  display: none;
}

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

html {
  font-size: 62.5%;
  scroll-behavior: smooth;
  scroll-padding-top: 10rem;
}

body {
  display: block;
  font-size: 1.6rem;
  font-family: "poppins", sans-serif;
  color: #ffffff;
  background-color: #3A3A3A;
  margin: 0;
  padding: 0;
  font-weight: 400;
  line-height: 1.4;
  overflow-x: hidden;
  display: flex;
  flex-direction: column;
  justify-content: stretch;
  min-height: 100vh;
  background-repeat: no-repeat;
  background-size: cover;
  position: relative;
}

main {
  flex-grow: 1;
}
main.reserve-header-space {
  transition-duration: 0.25s;
  padding-top: 10rem;
}

.scrolled main.reserve-header-space {
  padding-top: 5rem;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  text-transform: uppercase;
  color: #1A80C3;
  font-weight: 700;
  line-height: 1;
  margin: 0;
}

p {
  line-height: 1.5;
}

p:only-child {
  margin-bottom: 0 !important;
}

a {
  display: inline-block;
  text-decoration: none;
}

img, svg {
  display: block;
  max-width: 100%;
}

.max-width {
  max-width: 154rem;
  padding: 0 5rem;
  margin-left: auto;
  margin-right: auto;
}
.max-width_large {
  max-width: 170rem;
  padding: 0 5rem;
  margin-left: auto;
  margin-right: auto;
}

.max-width_text {
  max-width: 75rem;
}
.max-width_text_center {
  max-width: 75rem;
  margin-left: auto;
  margin-right: auto;
}

.section-spacing_p {
  padding: 10rem 0;
}
.section-spacing_p_small {
  padding: 5rem 0;
}
.section-spacing_m {
  margin: 10rem 0;
}
.section-spacing_m_small {
  margin: 5rem 0;
}
.section-spacing_p-top {
  padding-top: 10rem;
}
.section-spacing_p-top_small {
  padding-top: 5rem;
}
.section-spacing_p-bot {
  padding-bottom: 10rem;
}
.section-spacing_p-bot_small {
  padding-bottom: 5rem;
}
.section-spacing_m-top {
  margin-top: 10rem;
}
.section-spacing_m-top_small {
  margin-top: 5rem;
}
.section-spacing_m-bot {
  margin-bottom: 10rem;
}
.section-spacing_m-bot_small {
  margin-bottom: 5rem;
}

.no-list-styles {
  list-style: none;
  padding: 0;
  margin: 0;
}

.text-center {
  text-align: center;
}

.imagebox img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.titlebox {
  margin-bottom: 2.5rem;
}
.titlebox:last-child {
  margin-bottom: 0;
}

.title {
  font-size: 3.5rem;
  margin-top: 3rem;
  margin-bottom: 2.5rem;
  max-width: 100%;
  hyphens: auto;
}
.title:first-of-type {
  margin-top: 0;
}
.title:last-child {
  margin-bottom: 0;
}
.title + .textbox {
  margin-top: 0;
}

.subtitle {
  font-size: 2.5rem;
  margin-top: 2.5rem;
  margin-bottom: 2rem;
  max-width: 100%;
  hyphens: auto;
}
.subtitle:first-of-type {
  margin-top: 0;
}
.subtitle:last-child {
  margin-bottom: 0;
}
.subtitle + .textbox {
  margin-top: 0;
}

.textbox {
  margin-top: 2rem;
  margin-bottom: 2rem;
}
.textbox:first-child {
  margin-top: 0;
}
.textbox:last-child {
  margin-bottom: 0;
}
.textbox a {
  color: #1A80C3;
}
.textbox a:hover {
  text-decoration: underline;
}
.textbox p {
  margin: 1rem 0;
}
.textbox p:first-child {
  margin-top: 0;
}
.textbox p:last-child {
  margin-bottom: 0;
}
.textbox.no-p-margins p {
  margin: 0;
}

.buttonbox {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
}

.button {
  cursor: pointer;
  background-color: #3A3A3A;
  color: #ffffff;
  border: 2px solid #3A3A3A;
  padding: 1rem 1.5rem;
  margin: 0;
  transition-duration: 0.25s;
}
.button:hover {
  background-color: #ffffff;
  color: #3A3A3A;
}

.grid {
  display: grid;
  gap: 5rem;
}
.grid-col-2 {
  grid-template-columns: repeat(2, 1fr);
}
.grid-col-3 {
  grid-template-columns: repeat(3, 1fr);
}
.grid-col-4 {
  grid-template-columns: repeat(4, 1fr);
}

.rounded-corners {
  border-radius: 25px;
}
.rounded-corners.circle {
  border-radius: 50%;
}

.bg-main {
  background-color: #3A3A3A;
  color: #ffffff;
}
.bg-main h1, .bg-main h2, .bg-main h3, .bg-main h4, .bg-main h5, .bg-main h6 {
  color: #ffffff;
}
.bg-main a {
  color: #c9c9c9;
}
.bg-main .textbox a {
  color: #c9c9c9;
}
.bg-main .button {
  background-color: #c9c9c9;
  color: #3A3A3A;
  border-color: #c9c9c9;
}
.bg-main .button:hover {
  background-color: transparent;
  color: #c9c9c9;
}

.bg-sec {
  background-color: #c9c9c9;
  color: #3A3A3A;
}
.bg-sec a {
  color: #3A3A3A;
}
.bg-sec .textbox a {
  color: #3A3A3A;
}
.bg-sec .button {
  color: #ffffff;
}
.bg-sec .button:hover {
  background-color: transparent;
  color: #3A3A3A;
}

.featherlight-content {
  padding: 0 !important;
  border: 0 !important;
  position: relative;
  max-width: 95% !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.featherlight-previous {
  left: 0 !important;
  top: 0 !important;
  width: unset;
  height: unset;
  right: 80%;
  transform: unset;
  background: unset;
}
.featherlight-previous > span {
  max-width: 100% !important;
  top: 50% !important;
  left: 50% !important;
  transform: translateX(-50%) translateY(-50%);
  font-size: 0 !important;
  width: 5rem !important;
  height: 5rem;
  background-image: url("../assets/svg/arrow-left.svg");
  background-repeat: no-repeat;
  background-position: center center;
  background-size: contain;
  margin-top: 0;
}

.featherlight-next {
  right: 0 !important;
  top: 0 !important;
  width: unset;
  height: unset;
  left: 80%;
  transform: unset;
  background: unset;
}
.featherlight-next > span {
  max-width: 100% !important;
  top: 50% !important;
  right: 50% !important;
  transform: translateX(50%) translateY(-50%);
  font-size: 0 !important;
  width: 5rem !important;
  height: 5rem;
  background-image: url("../assets/svg/arrow-right.svg");
  background-repeat: no-repeat;
  background-position: center center;
  background-size: contain;
  margin-top: 0;
}

.splide__arrow {
  background-color: #3A3A3A;
}
.splide__arrow--prev {
  left: -5rem;
}
.splide__arrow--next {
  right: -5rem;
}
.splide__arrow svg * {
  fill: #ffffff;
}

.splide__slide a, .splide__slide .imagebox {
  width: 100%;
  height: 100%;
}
.splide__slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media (max-width: 1600px) {
  .splide {
    padding-bottom: 5rem;
  }
  .splide.arrows-center .splide__arrow--prev {
    left: unset;
    right: 50%;
    transform: translateX(-25%);
  }
  .splide.arrows-center .splide__arrow--next {
    right: unset;
    left: 50%;
    transform: translateX(25%);
  }
  .splide.arrows-left .splide__arrow--prev {
    left: 0;
  }
  .splide.arrows-left .splide__arrow--next {
    right: unset;
    left: 2em;
    transform: translateX(50%);
  }
  .splide.arrows-right .splide__arrow--prev {
    left: unset;
    right: 2em;
    transform: translateX(-50%);
  }
  .splide.arrows-right .splide__arrow--next {
    right: 0;
  }
  .splide__arrow {
    top: unset;
    bottom: 0;
    transform: translateY(0);
  }
}
@media (max-width: 1024px) {
  .grid-col-2 {
    grid-template-columns: repeat(1, 1fr);
  }
  .grid-col-3 {
    grid-template-columns: repeat(2, 1fr);
  }
  .grid-col-4 {
    grid-template-columns: repeat(3, 1fr);
  }
  .featherlight-previous {
    width: 6rem;
    height: 6rem;
    top: 50% !important;
    left: 2.5rem !important;
    right: unset;
    transform: translateY(-50%);
    background-color: rgba(255, 255, 255, 0.25);
  }
  .featherlight-previous:hover {
    background-color: rgba(255, 255, 255, 0.25);
  }
  .featherlight-previous > span {
    top: 50%;
    left: 50% !important;
    transform: translateX(-50%) translateY(-50%);
    transform-origin: center center;
  }
  .featherlight-next {
    width: 6rem;
    height: 6rem;
    top: 50% !important;
    right: 2.5rem !important;
    left: unset;
    transform: translateY(-50%);
    background-color: rgba(255, 255, 255, 0.25);
  }
  .featherlight-next:hover {
    background-color: rgba(255, 255, 255, 0.25);
  }
  .featherlight-next > span {
    top: 50%;
    right: 50% !important;
    transform: translateX(50%) translateY(-50%);
  }
}
@media (max-width: 768px) {
  body {
    font-size: 1.4rem;
  }
  .title {
    font-size: 2.5rem;
    margin-top: 2.5rem;
    margin-bottom: 2rem;
  }
  .subtitle {
    font-size: 2rem;
    margin-top: 2rem;
    margin-bottom: 1.6rem;
  }
  .section-spacing_p {
    padding: 5rem 0;
  }
  .section-spacing_p_small {
    padding: 2.5rem 0;
  }
  .section-spacing_m {
    margin: 5rem 0;
  }
  .section-spacing_m_small {
    margin: 2.5rem 0;
  }
  .section-spacing_p-top {
    padding-top: 5rem;
  }
  .section-spacing_p-top_small {
    padding-top: 2.5rem;
  }
  .section-spacing_p-bot {
    padding-bottom: 5rem;
  }
  .section-spacing_p-bot_small {
    padding-bottom: 2.5rem;
  }
  .section-spacing_m-top {
    margin-top: 5rem;
  }
  .section-spacing_m-top_small {
    margin-top: 2.5rem;
  }
  .section-spacing_m-bot {
    margin-bottom: 5rem;
  }
  .section-spacing_m-bot_small {
    margin-bottom: 2.5rem;
  }
  .grid {
    gap: 2.5rem;
  }
}
@media (max-width: 650px) {
  .max-width {
    padding: 0 2.5rem;
  }
  .grid-col-3 {
    grid-template-columns: repeat(1, 1fr);
  }
  .grid-col-4 {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 500px) {
  .featherlight-previous {
    width: 3rem;
    height: 3rem;
  }
  .featherlight-next {
    width: 3rem;
    height: 3rem;
  }
}
@media (max-width: 400px) {
  .grid-col-4 {
    grid-template-columns: repeat(1, 1fr);
  }
}
.main-header {
  background-color: transparent;
  width: 100%;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 10;
  height: 10rem;
  transition-duration: 0.25s;
}

.scrolled .main-header {
  height: 5rem;
}
.scrolled .main-header_left {
  padding: 1rem 0;
}

.main-header_inner {
  height: 100%;
  display: flex;
  justify-content: space-between;
}

.main-header_left {
  display: flex;
  align-items: center;
  height: 100%;
  width: auto;
  max-width: 60%;
  padding: 2.5rem 0;
  transition-duration: 0.25s;
}

.main-logo {
  display: block;
  width: 100%;
  height: 100%;
}
.main-logo svg {
  width: 100%;
  height: 100%;
  display: block;
}

.main-header_right {
  display: flex;
  align-items: center;
}

.main-nav {
  display: flex;
  align-items: center;
}

.main-nav_list {
  display: flex;
  margin: 0;
  gap: 1rem;
}

.main-nav_item a {
  color: #ffffff;
  font-weight: 600;
  font-size: 17px;
  text-transform: uppercase;
}

.lang-nav_item {
  margin-left: 1rem;
  padding-left: 1rem;
  position: relative;
}
.lang-nav_item:before {
  content: "";
  display: block;
  width: 2px;
  height: 90%;
  background-color: #3A3A3A;
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
}
.lang-nav_item a {
  font-weight: 700;
}

.footer {
  padding: 3.5rem 0;
}
.footer a {
  color: #ffffff;
}
.footer a:hover {
  color: #1A80C3;
}

.footer_upper {
  padding-bottom: 2.5rem;
  display: flex;
  justify-content: space-between;
}
.footer_upper .textbox .subtitle {
  margin-bottom: 2.5rem;
}
.footer_upper .textbox p {
  margin: 0;
}
.footer_upper .socialbox {
  display: flex;
  gap: 1rem;
}

.footer_lower {
  padding-top: 2.5rem;
  border-top: 1px solid #ffffff;
  display: flex;
  justify-content: center;
  align-items: center;
}
.footer_lower > a, .footer_lower > p {
  margin: 0 1rem;
  padding: 0 1rem;
  position: relative;
}
.footer_lower > a::before, .footer_lower > p::before {
  content: "";
  display: block;
  height: 90%;
  width: 1px;
  background-color: #ffffff;
  position: absolute;
  left: -1rem;
  top: 50%;
  transform: translateY(-50%);
}
.footer_lower > a:first-child, .footer_lower > p:first-child {
  margin-left: 0;
  padding-left: 0;
}
.footer_lower > a:first-child::before, .footer_lower > p:first-child::before {
  display: none;
}
.footer_lower > a:last-child, .footer_lower > p:last-child {
  margin-right: 0;
  padding-right: 0;
}

.footer-columns .footer_upper {
  display: flex;
  gap: 5rem;
  justify-content: space-between;
}
.footer-columns .footer-box {
  display: flex;
  flex-direction: column;
}
.footer-columns .footer-box.logobox {
  width: 25rem;
}
.footer-columns .footer-box p {
  margin: 0;
  margin-top: 1rem;
}
.footer-columns .footer-box p:first-child {
  margin-top: 0;
}

@media (max-width: 1024px) {
  .footer-columns .footer_upper {
    flex-wrap: wrap;
    gap: 5rem;
  }
  .footer-columns .footer-box {
    width: calc((100% - 5rem) / 2);
  }
}
@media (max-width: 768px) {
  .footer_lower {
    flex-direction: column;
    padding-top: 1.5rem;
  }
  .footer_lower > a, .footer_lower > p {
    margin: 0;
    margin-top: 1rem;
    padding: 0;
    text-align: center;
  }
  .footer_lower > a::before, .footer_lower > p::before {
    display: none;
  }
  .footer_lower > a:first-child, .footer_lower > p:first-child {
    margin-top: 0;
  }
}
@media (max-width: 500px) {
  .footer_upper {
    flex-direction: column;
  }
  .footer-columns .footer-box {
    width: 100%;
  }
}
.mod-banner {
  position: relative;
}
.mod-banner_inner {
  width: 100%;
  height: 100%;
}
.mod-banner .imagebox, .mod-banner .videobox {
  width: 100%;
  height: 100%;
  margin: 0;
}
.mod-banner .imagebox picture, .mod-banner .imagebox video, .mod-banner .videobox picture, .mod-banner .videobox video {
  display: block;
  width: 100%;
  height: 100%;
}
.mod-banner.cut {
  aspect-ratio: 21/9;
  display: flex;
  justify-content: center;
}
.mod-banner.cut .videobox, .mod-banner.cut .imagebox {
  position: relative;
}
.mod-banner.cut picture, .mod-banner.cut video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.mod-banner.with-text::after {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  opacity: 0.35;
  z-index: 1;
}
.mod-banner.with-text .textwrap {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  z-index: 2;
  width: calc(100% - 10rem);
  height: 100%;
}
.mod-banner.with-text .titlebox {
  position: absolute;
  top: unset;
  left: 5rem;
  bottom: 5rem;
  z-index: 2;
  margin-right: 5rem;
}
.mod-banner.with-text .titlebox * {
  color: #ffffff;
}

@media (max-width: 650px) {
  .mod-banner.with-text .titlebox {
    left: 2.5rem;
    bottom: 2.5rem;
    margin-right: 2.5rem;
  }
}
@media (max-width: 600px) {
  .mod-banner.cut {
    aspect-ratio: unset;
  }
  .mod-banner.cut .videobox {
    aspect-ratio: 16/9;
  }
  .mod-banner.with-text .mod-banner_inner {
    position: static;
    display: flex;
    flex-direction: column-reverse;
  }
  .mod-banner.with-text .textwrap {
    background-color: #c9c9c9;
    position: static;
    transform: unset;
    padding: 2.5rem;
    height: auto;
  }
  .mod-banner.with-text .titlebox {
    position: static;
    margin: 0;
  }
  .mod-banner.with-text .titlebox * {
    color: #3A3A3A;
  }
}
.mod-text-image_list {
  display: flex;
  flex-direction: column;
  gap: 5rem;
}

.mod-text-image_item {
  display: flex;
  gap: 5rem;
}
.mod-text-image_item:nth-child(even) {
  flex-direction: row-reverse;
}
.mod-text-image_item .contentbox {
  width: 55%;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.mod-text-image_item .textbox {
  display: flex;
  flex-direction: column;
}
.mod-text-image_item .imagebox {
  width: 45%;
  background-color: lightgrey;
}

@media (max-width: 768px) {
  .mod-text-image_item {
    flex-direction: column-reverse;
    gap: 2.5rem;
  }
  .mod-text-image_item:nth-child(even) {
    flex-direction: column-reverse;
  }
  .mod-text-image_item .contentbox, .mod-text-image_item .imagebox {
    width: 100%;
  }
}
.mod-grid_item .imagebox {
  background-color: lightgrey;
}
.mod-grid_item .contentbox {
  margin-top: 2.5rem;
}
.mod-grid_item a {
  color: #3A3A3A;
}
.mod-grid_item a:hover .button {
  background-color: #ffffff;
  color: #3A3A3A;
}
.mod-grid_item .button {
  display: inline-block;
}

.mod-gallery_item a, .mod-gallery_item .imagebox {
  width: 100%;
  height: 100%;
}
.mod-gallery_item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media (max-width: 600px) {
  .mod-gallery_list {
    gap: 2.5rem;
  }
}
.mod-dropdown_list {
  display: flex;
  flex-direction: column;
  gap: 2.5rem;
  margin-top: 5rem;
}

.mod-dropdown_item {
  padding-bottom: 2.5rem;
  border-bottom: 1px solid #3A3A3A;
}
.mod-dropdown_item .titlebox {
  width: 100%;
  display: inline-block;
  cursor: pointer;
  position: relative;
  margin-bottom: 0;
}
.mod-dropdown_item .titlebox .subtitle {
  display: inline-block;
  margin: 0;
  margin-right: 3rem;
}
.mod-dropdown_item .titlebox .arrowbox {
  position: absolute;
  top: 50%;
  left: unset;
  right: 0;
  transform: translateY(-50%);
  width: 2.5rem;
}
.mod-dropdown_item .titlebox .arrowbox svg {
  width: 100%;
  height: 100%;
}
.mod-dropdown_item .dropdown {
  display: grid;
  grid-template-rows: 0fr;
  transition-duration: 0.25s;
  margin: 0;
}
.mod-dropdown_item .dropdown-panel {
  overflow: hidden;
}
.mod-dropdown_item.active .titlebox .arrowbox {
  transform: translateY(-50%) rotateZ(180deg);
}
.mod-dropdown_item.active .dropdown {
  margin-top: 2.5rem;
  grid-template-rows: 1fr;
}

.videobox {
  max-width: 100%;
}
.videobox video {
  max-width: 100%;
}

.mod-partner {
  background-color: #ffffff;
}

.mod-partner_slider .splide__slide {
  max-height: 25rem;
}
.mod-partner_slider .splide__slide a {
  display: block;
  width: 100%;
  height: 100%;
}
.mod-partner_slider .splide__slide a img, .mod-partner_slider .splide__slide a svg {
  width: 100%;
  height: 100%;
  object-fit: scale-down;
}

@media (max-width: 500px) {
  .mod-partner_slider .splide__slide a {
    max-width: 30rem;
    margin: 0 auto;
  }
}
.mapbox {
  position: relative;
  aspect-ratio: 16/9;
}
.mapbox iframe {
  position: absolute;
  top: 0;
  left: 0;
  height: 0;
  overflow: hidden;
}

.c-gdpr-overlay--accepted + iframe {
  height: 100%;
  display: block;
}

.c-gdpr-overlay {
  position: absolute;
  top: 0;
  left: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 5rem;
  background: #f1f1f1;
  height: 100%;
}
.c-gdpr-overlay p {
  text-align: center;
}
.c-gdpr-overlay p a {
  text-decoration: underline;
}
.c-gdpr-overlay--accepted {
  display: none;
}

@media (max-width: 768px) {
  .mapbox {
    aspect-ratio: unset;
  }
  .c-gdpr-overlay {
    position: static;
  }
  .c-gdpr-overlay--accepted + iframe {
    aspect-ratio: 16/9;
    width: 100%;
    position: static;
  }
}
@media (max-width: 600px) {
  .c-gdpr-overlay {
    padding: 2.5rem;
  }
}
.cta-banner {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.cta-banner.bg-main, .cta-banner.bg-sec {
  padding: 3.5rem 2.5rem;
}
.cta-banner:not(:has(.textbox)) .title {
  margin-bottom: 0;
}
.cta-banner .contentbox {
  max-width: 75%;
  padding-right: 2.5rem;
}

@media (max-width: 600px) {
  .cta-banner {
    flex-direction: column;
    align-items: flex-start;
  }
  .cta-banner .contentbox {
    max-width: 100%;
    padding-right: 0;
    margin-bottom: 2.5rem;
  }
}
.projects_filter {
  margin-bottom: 2.5rem;
  display: flex;
  flex-wrap: wrap;
}

.filter-button {
  cursor: pointer;
  display: block;
}
.filter-button .button.active {
  background-color: #ffffff;
  color: #3A3A3A;
}

.projects_list {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 2.5rem;
}

.projects_item {
  height: 20vw;
  overflow: hidden;
}
.projects_item--first {
  grid-column: span 1;
}
.projects_item--second {
  grid-column: span 2;
}
.projects_item--third {
  grid-column: span 2;
}
.projects_item--fourth {
  grid-column: span 3;
}
.projects_item--fifth {
  grid-column: span 1;
}
.projects_item--sixth {
  grid-column: span 1;
}
.projects_item a {
  display: block;
  width: 100%;
  height: 100%;
}
.projects_item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media (min-width: 1540px) {
  .projects_item {
    height: 30rem;
  }
}
@media (max-width: 1024px) {
  .projects_list {
    gap: 1rem;
  }
}
@media (max-width: 768px) {
  .projects_list {
    grid-template-columns: repeat(3, 1fr);
  }
  .projects_item {
    height: 30vw;
  }
  .projects_item--first {
    grid-column: span 1;
  }
  .projects_item--second {
    grid-column: span 2;
  }
  .projects_item--third {
    grid-column: span 3;
  }
  .projects_item--fourth {
    grid-column: span 2;
  }
  .projects_item--fifth {
    grid-column: span 1;
  }
  .projects_item--sixth {
    grid-column: span 3;
  }
}
@media (max-width: 500px) {
  .projects_item {
    height: 40vw;
  }
}
/* page 404 */
.error-sec {
  width: 100%;
}
.error-sec > * {
  text-align: center;
}
.error-sec .btn {
  margin-left: auto;
  margin-right: auto;
}

.content {
  width: 300px;
  height: 300px;
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  margin-left: auto;
  margin-right: auto;
}

.content .planet {
  width: 65%;
  height: 65%;
  background-color: #546c8c;
  border-radius: 100%;
  position: absolute;
  display: flex;
  align-items: center;
  transform-origin: center center;
  box-shadow: inset 2px -10px 0px rgba(0, 0, 0, 0.1);
  animation: planet 5s ease infinite alternate;
}

@keyframes planet {
  /* planet ring */
  0% {
    transform: rotate(10deg);
  }
  100% {
    transform: rotate(-10deg);
  }
}
.content .planet .ring {
  position: absolute;
  width: 300px;
  height: 300px;
  border-radius: 100%;
  background-color: #bacbd9;
  display: flex;
  align-items: center;
  justify-content: center;
  transform-origin: 33% center;
  box-shadow: 2px -10px 0px rgba(0, 0, 0, 0.1), inset -5px -10px 0px rgba(0, 0, 0, 0.1);
  animation: ring 3s ease infinite;
}

@keyframes ring {
  /* small ball */
  0% {
    transform: rotateX(110deg) rotateZ(0deg) translate(-50px, 5px);
  }
  100% {
    transform: rotateX(110deg) rotateZ(360deg) translate(-50px, 5px);
  }
}
.content .planet .ring:before {
  content: "";
  position: absolute;
  width: 10px;
  height: 30px;
  border-radius: 100%;
  background-color: #7ea1bf;
  z-index: 2;
  left: -5px;
  box-shadow: inset -3px 3px 0px rgba(0, 0, 0, 0.2);
  /* inner ring */
}

.content .planet .ring:after {
  content: "";
  position: absolute;
  width: 240px;
  height: 240px;
  border-radius: 100%;
  background-color: #7ea1bf;
  box-shadow: inset 2px -10px 0px rgba(0, 0, 0, 0.1);
  /* to cover the back of the ring */
}

.content .planet .cover-ring {
  position: absolute;
  width: 100%;
  height: 50%;
  border-bottom-left-radius: 80%;
  border-bottom-right-radius: 80%;
  border-top-left-radius: 100px;
  border-top-right-radius: 100px;
  transform: translate(0px, -17px);
  background-color: #546c8c;
  z-index: 2;
  box-shadow: inset 0px -2px 0px rgba(0, 0, 0, 0.1);
  /* planet spots */
}

.content .planet .spots {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  z-index: 2;
}

.content .planet .spots span {
  width: 30px;
  height: 30px;
  background-color: #3c4359;
  position: absolute;
  border-radius: 100%;
  box-shadow: inset -2px 3px 0px rgba(0, 0, 0, 0.3);
  animation: dots 5s ease infinite alternate;
}

@keyframes dots {
  0% {
    box-shadow: inset -3px 3px 0px rgba(0, 0, 0, 0.3);
  }
  100% {
    box-shadow: inset 3px 3px 0px rgba(0, 0, 0, 0.3);
  }
}
.content .planet .spots span:nth-child(1) {
  top: 20px;
  right: 50px;
}

.content .planet .spots span:nth-child(2) {
  top: 40px;
  left: 50px;
  width: 15px;
  height: 15px;
}

.content .planet .spots span:nth-child(3) {
  top: 80px;
  left: 20px;
  width: 25px;
  height: 25px;
}

.content .planet .spots span:nth-child(4) {
  top: 80px;
  left: 90px;
  width: 40px;
  height: 40px;
}

.content .planet .spots span:nth-child(5) {
  top: 160px;
  left: 70px;
  width: 15px;
  height: 15px;
}

.content .planet .spots span:nth-child(6) {
  top: 165px;
  left: 125px;
  width: 10px;
  height: 10px;
}

.content .planet .spots span:nth-child(7) {
  top: 90px;
  left: 150px;
  width: 15px;
  height: 15px;
}

.content p {
  color: #bacbd9;
  font-size: 14px;
  z-index: 2;
  position: absolute;
  bottom: -20px;
  animation: text 4s ease infinite;
  width: 100px;
  text-align: center;
}

@keyframes text {
  0% {
    transform: translateX(-30px);
    letter-spacing: 0px;
    color: #bacbd9;
  }
  25% {
    letter-spacing: 3px;
    color: #7ea1bf;
  }
  50% {
    transform: translateX(30px);
    letter-spacing: 0px;
    color: #bacbd9;
  }
  75% {
    letter-spacing: 3px;
    color: #7ea1bf;
  }
  100% {
    transform: translateX(-30px);
    letter-spacing: 0px;
    color: #bacbd9;
  }
}
/* TEMPORAIRE */
.message-google-maps {
  padding: 4rem;
  display: flex;
  flex-direction: column;
  margin: 2rem;
  font-size: "poppins", sans-serif;
  border: #3A3A3A 1px solid;
}

.message-google-maps button {
  width: fit-content;
  margin: 1rem auto;
}

iframe {
  width: 100%;
  height: 750px;
  display: block;
}

.button-google-maps {
  background-color: #3A3A3A;
  color: #ffffff;
  padding: 1rem;
  border: #3A3A3A 1px solid;
}
.button-google-maps:hover {
  background-color: transparent;
  color: #3A3A3A;
  transition: 0.35s;
}

.container-map iframe {
  width: 100%;
}

.button-nav_list {
  display: flex;
  gap: 1rem;
  margin: 0;
  margin-left: 2.5rem;
}

.button-nav_item a {
  width: 3rem;
  height: 3rem;
  padding: 0.75rem;
  border-radius: 50%;
  background-color: #c9c9c9;
  display: flex;
  justify-content: center;
  align-items: center;
}
.button-nav_item svg {
  width: 100%;
  height: 100%;
  fill: #ffffff;
}

.hamburger {
  display: none;
  appearance: none;
  border: none;
  background-color: transparent;
  padding: 0;
  cursor: pointer;
  position: absolute;
  top: 5rem;
  left: auto;
  right: 5rem;
  transform: translateY(-50%);
  transition-duration: 0.25s;
  max-width: 5rem;
  max-height: 5rem;
}
.hamburger svg {
  width: 100%;
  height: 100%;
}
.hamburger .line {
  fill: none;
  stroke: #3A3A3A;
  stroke-width: 6;
  transition: stroke-dasharray 600ms cubic-bezier(0.4, 0, 0.2, 1), stroke-dashoffset 600ms cubic-bezier(0.4, 0, 0.2, 1);
}
.hamburger .line1 {
  stroke-dasharray: 60 207;
  stroke-width: 6;
}
.hamburger .line2 {
  stroke-dasharray: 60 60;
  stroke-width: 6;
}
.hamburger .line3 {
  stroke-dasharray: 60 207;
  stroke-width: 6;
}

.scrolled .hamburger {
  top: 2.5rem;
}

.bar {
  display: block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  margin: 4px auto;
  background-color: #c6bfab;
}

.blocker {
  display: none;
  width: 100dvw;
  height: 100dvh;
  background-color: rgba(0, 0, 0, 0.5);
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  transform: translateX(100%);
  transition-duration: 0.5s;
}

@media (max-width: 1024px) {
  .hamburger {
    display: block;
  }
  .main-nav {
    width: 35%;
    min-width: max-content;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    height: 100dvh;
    background-color: #3A3A3A;
    position: fixed;
    top: 0;
    left: auto;
    right: 0;
    bottom: 0;
    transform: translateX(100%);
    transition-duration: 0.25s;
    padding: 3.5rem;
    padding-top: 10rem;
  }
  .main-nav_list {
    display: flex;
    flex-direction: column;
  }
  .main-nav_item {
    margin: 0;
    margin-top: 1rem;
  }
  .main-nav_item:first-child {
    margin-top: 0;
  }
  .main-nav_item a {
    color: #ffffff;
  }
  .lang-nav_item {
    margin: 1.5rem 0;
    padding: 1.5rem 0;
  }
  .lang-nav_item a {
    line-height: 1;
  }
  .lang-nav_item::before {
    width: 10rem;
    max-width: 100%;
    height: 2px;
    background-color: #ffffff;
    left: unset;
    top: 0;
    transform: translateX(0) translateY(-50%);
  }
  .lang-nav_item::after {
    content: "";
    display: block;
    width: 10rem;
    max-width: 100%;
    height: 2px;
    background-color: #ffffff;
    position: absolute;
    left: unset;
    bottom: 0;
    transform: translateX(0) translateY(-50%);
  }
  .button-nav_list {
    margin-left: 0;
    margin-bottom: 0;
    margin-top: 0.5rem;
  }
  .blocker {
    display: block;
  }
  .nav-active {
    overflow: hidden;
  }
  .nav-active body {
    overflow: hidden;
  }
  .nav-active main.reserve-header-space {
    padding-top: 0 !important;
  }
  .nav-active .main-header {
    height: 0 !important;
  }
  .nav-active .hamburger {
    right: 2.5rem;
    top: 2.5rem;
    transform: translateY(0);
  }
  .nav-active .hamburger svg .line {
    stroke: #ffffff;
  }
  .nav-active .hamburger .line1 {
    stroke-dasharray: 90 207;
    stroke-dashoffset: -134;
    stroke-width: 6;
  }
  .nav-active .hamburger .line2 {
    stroke-dasharray: 1 60;
    stroke-dashoffset: -30;
    stroke-width: 6;
  }
  .nav-active .hamburger .line3 {
    stroke-dasharray: 90 207;
    stroke-dashoffset: -134;
    stroke-width: 6;
  }
  .nav-active .main-nav {
    transform: translateX(0);
  }
  .nav-active .blocker {
    transform: translateX(0);
    z-index: 5;
  }
}
.social-media-link {
  background-color: #c9c9c9;
  border-radius: 25rem;
  width: 3.3rem;
  height: 3.3rem;
  padding: 1rem;
  display: flex;
  justify-content: center;
  align-items: center;
}
.social-media-link img {
  height: 100%;
  width: 100%;
}

.footer_nav-icons .social-media-link {
  width: 4.3rem;
  height: 4.3rem;
}

.nav-list--link {
  font-weight: 600;
  color: #3A3A3A;
}

@media (max-width: 600px) {
  .main-nav {
    width: 100%;
    padding: 2.5rem;
    padding-top: 10rem;
  }
  .hamburger {
    right: 2.5rem;
  }
}
.contact__content {
  margin-top: 18rem;
  padding-top: 5rem;
  margin-bottom: 4rem;
}
.contact__blue {
  color: #ffffff;
}
.contact__blue a {
  color: #ffffff;
  text-decoration: none;
}
.contact__nav a {
  text-transform: uppercase;
  font-size: 21px;
}
.contact__infos {
  gap: 5rem;
}
.contact .social-media--items {
  gap: 2rem;
}
.contact--container {
  padding-top: 6rem;
  padding-bottom: 6rem;
}

form label {
  font-weight: 600;
  margin-bottom: 1rem;
}
form textarea::placeholder,
form input::placeholder {
  color: #BAD5D1;
}
form input:not([type=submit]),
form label,
form textarea {
  width: 100%;
  display: block;
  border: none;
}
form input:not([type=submit]),
form textarea {
  padding: 1rem 2rem;
}
form input[type=submit]:hover {
  cursor: pointer;
}
form .submit_wrap {
  margin-top: 2.5rem;
}
form .submit_wrap .button {
  font-weight: 600;
}

.form-fields_list {
  margin-top: 2.5rem;
  display: flex;
  flex-wrap: wrap;
  gap: 2.5rem;
}

.form-fields_item_half {
  width: calc((100% - 2.5rem) / 2);
}
.form-fields_item_full {
  width: 100%;
}

.loader_wrap {
  display: none;
  position: absolute;
  right: 20rem;
  bottom: 0;
}

.loader {
  place-self: center;
  width: 6rem;
  aspect-ratio: 1;
  border-radius: 50%;
  border: 8px solid;
  border-color: transparent #ffffff;
  animation: l1 1s infinite;
}

@keyframes l1 {
  to {
    transform: rotate(0.7turn);
  }
}
.message_wrap {
  height: 0;
  overflow: hidden;
}

.close {
  color: #aaa;
  float: right;
  font-size: 28px;
  font-weight: bold;
}

.close:hover,
.close:focus {
  color: black;
  text-decoration: none;
  cursor: pointer;
}

.mail_msg_wrap {
  display: none;
}
.mail_msg_wrap > * {
  text-align: center;
}

@media (max-width: 500px) {
  .form-fields_item_half {
    width: 100%;
  }
}
body {
  letter-spacing: 2px;
}

.default-section {
  margin-top: 25rem;
}

.rounded-corners {
  border-radius: 50px;
}

.title {
  letter-spacing: 3px;
}

.subtitle {
  letter-spacing: 4px;
}

.button {
  background-color: #1A80C3;
  color: #ffffff;
  padding-top: 1.25rem;
}

.main-header {
  height: 15rem;
}

.main-logo {
  height: 50%;
  transition-duration: 0.25s;
}

.main-nav_list {
  gap: 7.5rem;
}

.main-nav_item a {
  text-transform: unset;
  font-weight: 500;
}
.main-nav_item a:hover {
  color: #1A80C3;
}

.scrolled .main-header {
  height: 7.5rem;
  background-color: #3A3A3A;
}
.scrolled .main-logo {
  height: 100%;
}

main.reserve-header-space {
  padding-top: 10rem;
}

.scrolled main.reserve-header-space {
  padding-top: 7.5rem;
}

.mod-banner .videobox, .mod-banner .imagebox {
  border-bottom-left-radius: 5rem;
  border-bottom-right-radius: 5rem;
  overflow: hidden;
}
.mod-banner .title {
  text-transform: unset;
  margin-bottom: 1rem;
}
.mod-banner strong {
  font-size: 2.2rem;
}

.mod-text-image .mod-text-image_item {
  gap: 5rem;
}
.mod-text-image .mod-text-image_item .contentbox {
  width: calc((100% - 5rem) * 0.45);
}
.mod-text-image .mod-text-image_item .imagebox {
  width: calc((100% - 5rem) * 0.55);
  aspect-ratio: 16/9;
  overflow: hidden;
}
.mod-text-image .mod-text-image_item:nth-child(odd) .contentbox {
  align-items: flex-end;
  text-align: end;
}

.mod-projects {
  background-color: #1A80C3;
}
.mod-projects * {
  color: #ffffff;
}
.mod-projects .projects_filter {
  gap: 0;
}
.mod-projects .filter-button {
  border: none;
  background-color: transparent;
  padding: 0.5rem 1rem;
  position: relative;
}
.mod-projects .filter-button--all {
  padding-left: 0;
}
.mod-projects .filter-button::after {
  content: "";
  display: block;
  background-color: #ffffff;
  width: 2px;
  height: 75%;
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-55%);
}
.mod-projects .filter-button:first-child::after {
  display: none;
}
.mod-projects .filter-button.active {
  font-weight: 700;
}

.mod-partner .mod-partner_slider {
  padding-bottom: 5rem;
}
.mod-partner .splide__arrows {
  position: absolute;
  bottom: 0;
  left: 0;
}
.mod-partner .splide__arrow--prev {
  left: 0;
}
.mod-partner .splide__arrow--next {
  left: 5rem;
}

@media (max-width: 1650px) {
  .main-header_inner {
    margin: 0 5rem;
  }
}
@media (max-width: 1600px) {
  .mod-partner .splide__arrow--prev {
    top: 50%;
    right: unset;
    transform: translateY(-50%);
  }
  .mod-partner .splide__arrow--next {
    top: 50%;
    right: unset;
    transform: translateY(-50%);
  }
}
@media (max-width: 1250px) {
  .main-header .main-nav_list {
    gap: 5rem;
  }
}
@media (max-width: 1024px) {
  .rounded-corners {
    border-radius: 25px;
  }
  .main-header .main-header_inner {
    margin: 0;
  }
  .main-header .main-nav_list {
    gap: 1rem;
  }
  .main-header .hamburger {
    top: 7.5rem;
    right: 4rem;
  }
  .main-header .hamburger svg * {
    stroke: #ffffff;
  }
  .scrolled .main-header .main-nav {
    padding-top: 7.5rem;
  }
  .scrolled .main-header .hamburger {
    top: 3.75rem;
  }
  .nav-active .main-header .hamburger {
    top: 5rem;
    right: 5rem;
    transform: translateY(-50%);
  }
  .nav-active .scrolled .main-header .hamburger {
    transform: translateY(-50%);
  }
  .mod-banner .mod-banner_inner {
    padding: 0;
  }
  .mod-banner.with-text .textwrap {
    width: 100%;
    padding: 0;
  }
  .mod-banner .videobox, .mod-banner .imagebox {
    border-bottom-left-radius: 2.5rem;
    border-bottom-right-radius: 2.5rem;
  }
  .mod-text-image .mod-text-image_item {
    flex-direction: column-reverse;
  }
  .mod-text-image .mod-text-image_item .contentbox {
    width: 100%;
  }
  .mod-text-image .mod-text-image_item .imagebox {
    width: 100%;
  }
}
@media (max-width: 768px) {
  .main-header .main-nav {
    width: 50%;
  }
}
@media (max-width: 650px) {
  .main-header .hamburger {
    right: 1.5rem;
  }
}
@media (max-width: 600px) {
  .mod-banner .titlebox {
    padding: 2.5rem;
    background-color: #1A80C3;
  }
  .mod-banner .titlebox .title, .mod-banner .titlebox .textbox * {
    color: #ffffff;
  }
}

/*# sourceMappingURL=main.css.map */
