/*!***************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./sarae_db_data/wp-content/themes/sarae/src/css/style.scss ***!
  \***************************************************************************************************************************************************/
@charset "UTF-8";
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
* {
  box-sizing: border-box;
}

body {
  margin: 0;
}

main {
  display: block;
}

h1, h2, h3, h4, h5, h6 {
  all: unset;
}

hr {
  box-sizing: content-box; /* 1 */
  height: 0; /* 1 */
  overflow: visible; /* 2 */
}

pre {
  font-family: monospace, monospace; /* 1 */
  font-size: 1em; /* 2 */
}

a {
  background-color: transparent;
}

abbr[title] {
  border-bottom: none; /* 1 */
  text-decoration: underline; /* 2 */
  text-decoration: underline dotted; /* 2 */
}

b,
strong {
  font-weight: bold;
}

code,
kbd,
samp {
  font-family: monospace, monospace; /* 1 */
  font-size: 1em; /* 2 */
}

small {
  font-size: 80%;
}

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

h1, h2, h3, h4, h5, h6, p {
  margin: 0;
  padding: 0;
  display: inline-block;
}

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

img,
video {
  max-width: 100%;
  height: auto;
}

button,
input,
optgroup,
select,
textarea {
  font-family: inherit; /* 1 */
  font-size: 100%; /* 1 */
  line-height: 1.15; /* 1 */
  margin: 0; /* 2 */
}

button,
input { /* 1 */
  overflow: visible;
}

button,
select { /* 1 */
  text-transform: none;
}

button,
[type=button],
[type=reset],
[type=submit] {
  -webkit-appearance: none;
}

button::-moz-focus-inner,
[type=button]::-moz-focus-inner,
[type=reset]::-moz-focus-inner,
[type=submit]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

button:-moz-focusring,
[type=button]:-moz-focusring,
[type=reset]:-moz-focusring,
[type=submit]:-moz-focusring {
  outline: 1px dotted ButtonText;
}

fieldset {
  padding: 0.35em 0.75em 0.625em;
}

legend {
  box-sizing: border-box; /* 1 */
  color: inherit; /* 2 */
  display: table; /* 1 */
  max-width: 100%; /* 1 */
  padding: 0; /* 3 */
  white-space: normal; /* 1 */
}

progress {
  vertical-align: baseline;
}

textarea {
  overflow: auto;
}

[type=checkbox],
[type=radio] {
  box-sizing: border-box; /* 1 */
  padding: 0; /* 2 */
}

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

[type=search] {
  -webkit-appearance: textfield; /* 1 */
  outline-offset: -2px; /* 2 */
}

[type=search]::-webkit-search-decoration {
  -webkit-appearance: none;
}

::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}

details {
  display: block;
}

summary {
  display: list-item;
}

template {
  display: none;
}

[hidden] {
  display: none;
}

ul {
  list-style-type: none;
  padding: 0;
  margin: 0;
}
ul li {
  padding: 0;
  margin: 0;
}

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

figure {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline;
  display: flex;
}

:root {
  --color-background: #F5F5F5;
  --color-background-state-1: #C7C7C7;
  --color-background-state-2: #F0F0F0;
  --color-background-state-3: #E6E6E6;
  --color-accent: #0000FF;
  --color-white: #ffffff;
  --color-black: #1F1F1F;
  --color-black-opacity: rgba(31, 31, 31, 0.6);
  --border-radius: 4px;
  --transition-primary: .3s cubic-bezier(.3, 1, .3, 1);
  --transition-secondary: .6s cubic-bezier(.3, 1, .3, 1);
  --transition-smooth: .8s cubic-bezier(.3, 1, .3, 1);
  --transition-slow: .8s cubic-bezier(.6, 0, .2, 1);
  --site-padding: clamp(16px, 2.083333vw, 40px);
  --gap: clamp(16px, 2.083333vw, 40px);
}

@font-face {
  font-family: "PP Neue Montreal";
  src: url(../fonts/PPNeueMontreal-Regular.otf) format("opentype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "PP Neue Montreal";
  src: url(../fonts/PPNeueMontreal-Medium.woff2) format("woff2"), url(../fonts/PPNeueMontreal-Medium.woff) format("woff");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Romie";
  src: url(../fonts/RomieTrial-MediumItalic.otf) format("opentype");
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}
.container {
  padding-inline: var(--site-padding);
  width: 100%;
  max-width: 1920px;
  margin: 0 auto;
}

.row {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  column-gap: var(--gap);
  width: 100%;
}

.grid-view {
  position: fixed;
  z-index: 9999999;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  pointer-events: none;
}
.grid-view .container, .grid-view .row {
  height: 100%;
}
.grid-view .col {
  height: 100%;
  transform: scaleY(0);
  transition: transform var(--transition-smooth);
  transform-origin: top;
  background: rgba(255, 0, 0, 0.1);
}
.grid-view .col:nth-of-type(2) {
  transition-delay: 0.025s;
}
.grid-view .col:nth-of-type(3) {
  transition-delay: 0.05s;
}
.grid-view .col:nth-of-type(4) {
  transition-delay: 0.075s;
}

[data-grid-status=active] .grid-view .col {
  transform: scaleY(1);
  transform-origin: bottom;
}

* {
  overscroll-behavior: none;
  -webkit-tap-highlight-color: transparent;
}

html {
  background-color: var(--color-background);
  -webkit-font-smoothing: antialiased;
  -webkit-text-size-adjust: 100%;
  font-family: "PP Neue Montreal", sans-serif;
  font-weight: 500;
  font-size: clamp(87.5%, 1.25vw, 125%);
  line-height: 140%;
  font-optical-sizing: auto;
  letter-spacing: 0.02em;
}

body {
  color: var(--color-black);
}

.custom-cursor {
  position: fixed;
  top: 0;
  left: 0;
  width: 20.618vw; /* Größe des äußeren Containers */
  height: auto;
  aspect-ratio: 7/10;
  pointer-events: none; /* verhindert Interaktionen */
  z-index: 100; /* immer sichtbar */
  transform: translate(-50%, -50%); /* Positionierung relativ zur Maus */
  will-change: transform; /* Optimierung für Animationen */
}

.cursor-inner {
  width: 100%;
  height: 100%;
  overflow: hidden; /* Bild bleibt im Bereich */
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}
.cursor-inner .cursor-image {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  clip-path: inset(100% 0% 0% 0%); /* Bild wird nicht angezeigt */
}
.cursor-inner .cursor-image img {
  object-fit: cover;
  width: 100%; /* Größe des äußeren Containers */
  height: auto;
  aspect-ratio: 7/10;
}

.copy-to-clipboard-toast {
  position: fixed;
  bottom: 1rem;
  left: 50%;
  transform: translate(-50%, 150%);
  z-index: 99999;
  font-size: 1rem;
  padding: 0.618em 1.618em;
  border-radius: 200em;
  background-color: var(--color-black);
  color: var(--color-background);
  opacity: 0;
}
.copy-to-clipboard-toast p {
  font-size: 1em;
  line-height: 140%;
}

.navbar {
  position: fixed;
  z-index: 100;
  top: 0;
  left: 0;
  right: 0;
  padding-top: 1rem;
}
.navbar p,
.navbar a {
  font-size: 1rem;
  line-height: 120%;
  text-transform: uppercase;
  cursor: pointer;
  display: flex;
}
.navbar p .outer,
.navbar a .outer {
  overflow: hidden;
  display: block;
}
.navbar p .outer .inner,
.navbar a .outer .inner {
  display: block;
}
.navbar__fsm-trigger {
  grid-column: span 2;
  justify-self: end;
  display: flex;
  position: relative;
}
.navbar__fsm-trigger .navbar-menu-item {
  margin-top: 0.1em;
}
.navbar__fsm-trigger .outer {
  position: relative;
}
.navbar__fsm-trigger .outer .inner {
  position: absolute;
  top: 0;
  right: 0;
}
.navbar__fsm-trigger .outer .second {
  display: block;
  transform: translateY(100%);
}
.navbar__logo {
  grid-column: span 2;
  display: none;
}
.navbar__logo .logo-wrapper {
  display: none;
}
.navbar__logo .logo-wrapper svg {
  height: clamp(18px, 1.354167vw, 26px);
  width: auto;
}
.navbar__logo .logo-wrapper svg path {
  fill: var(--color-black);
}
.navbar__contact {
  grid-column: span 2;
  display: flex;
  justify-content: flex-start;
}
.navbar__contact .outer {
  position: relative;
}
.navbar__contact .outer .inner {
  position: absolute;
  top: 0;
  left: 0;
}
.navbar__contact .outer .second {
  display: block;
  transform: translateY(100%);
}

body:not(.home) .navbar__fsm-trigger {
  align-items: center;
  grid-column: span 1;
}
body:not(.home) .navbar__logo {
  grid-column: span 3;
  display: flex;
}
@media (min-width: 1200px) {
  body:not(.home) .navbar__logo {
    grid-column: span 2;
    align-items: center;
    justify-content: center;
  }
}
body:not(.home) .navbar__logo .logo-wrapper {
  display: flex;
  align-items: center;
}
body:not(.home) .navbar__contact {
  display: none;
  grid-column: span 1;
}
@media (min-width: 1200px) {
  body:not(.home) .navbar__contact {
    display: flex;
    align-items: center;
  }
}

.fullscreen-menu {
  width: 100vw;
  height: 100vh;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 99;
  background: var(--color-background-state-2);
  transform: translateY(100%);
}
.fullscreen-menu .container,
.fullscreen-menu .row {
  height: 100%;
  max-height: 100svh;
}
.fullscreen-menu .row {
  grid-template-rows: 1fr max-content;
}
.fullscreen-menu__menu {
  position: relative;
  z-index: 101;
  grid-column: span 4;
  grid-row: 1;
  font-size: clamp(44px, 4.375vw, 84px);
  line-height: 120%;
  color: var(--color-white);
  mix-blend-mode: difference;
}
@media (max-width: 1199px) {
  .fullscreen-menu__menu {
    align-self: end;
    margin-bottom: 1.618em;
  }
}
@media (min-width: 1200px) {
  .fullscreen-menu__menu {
    align-self: center;
  }
}
@media (max-width: 1199px) {
  .fullscreen-menu__menu .fullscreen-menu-ul {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
  }
}
@media (min-width: 1200px) {
  .fullscreen-menu__menu .fullscreen-menu-ul {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
  }
}
.fullscreen-menu__menu .fullscreen-menu-ul li {
  display: flex;
}
.fullscreen-menu__menu .fullscreen-menu-ul li a,
.fullscreen-menu__menu .fullscreen-menu-ul li p {
  font-size: 1em;
  line-height: 120%;
  font-weight: 400;
  cursor: pointer;
}
.fullscreen-menu__menu .fullscreen-menu-ul li a .outer,
.fullscreen-menu__menu .fullscreen-menu-ul li p .outer {
  overflow: hidden;
  display: flex;
}
.fullscreen-menu__menu .fullscreen-menu-ul li a .outer .inner,
.fullscreen-menu__menu .fullscreen-menu-ul li p .outer .inner {
  display: block;
  transform: translateY(100%);
}
.fullscreen-menu__menu .fullscreen-menu-ul li.menu-divider p {
  font-family: "Romie";
  font-weight: 400;
  font-style: italic;
  display: flex;
}
.fullscreen-menu__menu .fullscreen-menu-ul li.menu-divider p::before {
  content: " ";
  display: inline-block;
}
.fullscreen-menu__menu .fullscreen-menu-ul li.menu-divider p::after {
  content: " ";
  display: inline-block;
}
.fullscreen-menu__menu .fullscreen-menu-ul li.current-menu-item a {
  font-family: "Romie";
  font-weight: 400;
  font-style: italic;
}
.fullscreen-menu__dsgvo {
  grid-column: span 4;
  grid-row: 2;
  padding-block: 1rem;
}
.fullscreen-menu__dsgvo ul {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.fullscreen-menu__dsgvo ul li {
  display: flex;
}
.fullscreen-menu__dsgvo ul li a {
  font-size: 1rem;
  line-height: 140%;
  text-transform: uppercase;
  cursor: pointer;
}
.fullscreen-menu__dsgvo ul li a .outer {
  overflow: hidden;
  display: flex;
}
.fullscreen-menu__dsgvo ul li a .outer .inner {
  display: block;
  transform: translateY(100%);
}

.contact-menu {
  width: 100vw;
  height: 100vh;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 99;
  background: var(--color-background-state-2);
  transform: translateY(100%);
}
.contact-menu .container,
.contact-menu .row {
  height: 100%;
  max-height: 100svh;
}
.contact-menu .contact-wrapper {
  grid-column: span 4;
  display: flex;
  align-self: center;
  justify-content: center;
  align-items: center;
  justify-self: center;
  font-size: clamp(32px, 3.75vw, 72px);
  line-height: 120%;
}
@media (max-width: 1199px) {
  .contact-menu .contact-wrapper {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
  }
}
@media (min-width: 1200px) {
  .contact-menu .contact-wrapper {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
  }
}
.contact-menu .contact-wrapper li {
  display: flex;
}
.contact-menu .contact-wrapper li a,
.contact-menu .contact-wrapper li p {
  font-size: 1em;
  line-height: 120%;
  font-weight: 400;
  cursor: pointer;
}
.contact-menu .contact-wrapper li a .outer,
.contact-menu .contact-wrapper li p .outer {
  overflow: hidden;
  display: flex;
}
.contact-menu .contact-wrapper li a .outer .inner,
.contact-menu .contact-wrapper li p .outer .inner {
  display: block;
  transform: translateY(100%);
}
.contact-menu .contact-wrapper li .devider {
  font-family: "Romie";
  font-weight: 400;
  font-style: italic;
  display: flex;
}
.contact-menu .contact-wrapper li .devider::before {
  content: " ";
  display: inline-block;
}
.contact-menu .contact-wrapper li .devider::after {
  content: " ";
  display: inline-block;
}

.transition-container {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100lvh;
  overflow: hidden;
  z-index: 1100;
  pointer-events: none;
  background: var(--color-background-state-3);
  display: flex;
  justify-content: center;
  align-items: center;
  clip-path: inset(0% 0% 0% 0%);
}

@keyframes splide-loading {
  0% {
    transform: rotate(0);
  }
  to {
    transform: rotate(1turn);
  }
}
.splide__track--draggable {
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

.splide__track--fade > .splide__list > .splide__slide {
  margin: 0 !important;
  opacity: 0;
  z-index: 0;
}

.splide__track--fade > .splide__list > .splide__slide.is-active {
  opacity: 1;
  z-index: 1;
}

.splide--rtl {
  direction: rtl;
}

.splide__track--ttb > .splide__list {
  display: block;
}

.splide__container {
  box-sizing: border-box;
  position: relative;
}

.splide__list {
  backface-visibility: hidden;
  display: -ms-flexbox;
  display: flex;
  height: 100%;
  margin: 0 !important;
  padding: 0 !important;
}

.splide.is-initialized:not(.is-active) .splide__list {
  display: block;
}

.splide__pagination {
  margin: 0;
  pointer-events: none;
}

.splide__pagination li {
  display: inline-block;
  line-height: 1;
  list-style-type: none;
  margin: 0;
  pointer-events: auto;
}

.splide:not(.is-overflow) .splide__pagination {
  display: none;
}

.splide__progress__bar {
  width: 0;
}

.splide {
  position: relative;
  visibility: hidden;
}

.splide.is-initialized,
.splide.is-rendered {
  visibility: visible;
}

.splide__slide {
  backface-visibility: hidden;
  box-sizing: border-box;
  -ms-flex-negative: 0;
  flex-shrink: 0;
  list-style-type: none !important;
  margin: 0;
  position: relative;
}

.splide__slide img {
  vertical-align: bottom;
}

.splide__spinner {
  animation: splide-loading 1s linear infinite;
  border: 2px solid #999;
  border-left-color: transparent;
  border-radius: 50%;
  bottom: 0;
  contain: strict;
  display: inline-block;
  height: 20px;
  left: 0;
  margin: auto;
  position: absolute;
  right: 0;
  top: 0;
  width: 20px;
}

.splide__sr {
  clip: rect(0 0 0 0);
  border: 0;
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
}

.splide__toggle.is-active .splide__toggle__play,
.splide__toggle__pause {
  display: none;
}

.splide__toggle.is-active .splide__toggle__pause {
  display: inline;
}

.splide__track {
  overflow: hidden;
  position: relative;
  z-index: 0;
}

.front-page {
  height: 100svh;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}
.front-page .container {
  position: relative;
}
@media (max-width: 1199px) {
  .front-page .container {
    padding-inline: 0;
    height: 100%;
    display: grid;
    grid-template-rows: 1fr max-content;
  }
  .front-page .row.heading-row {
    padding-inline: var(--site-padding);
    height: 100%;
  }
  .front-page .row.heading-row.loaded {
    padding-top: var(--navbar-height);
  }
}
@media (min-width: 1200px) {
  .front-page {
    padding-block: 1rem;
  }
}
.front-page .logo {
  grid-column: span 4;
  display: flex;
  align-items: center;
  position: relative;
  overflow: hidden;
}
.front-page .logo svg {
  width: 100%;
  height: auto;
  max-height: max-content;
}
.front-page .logo svg path {
  fill: var(--color-black);
}
.front-page .logo .loading-line {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: 0;
  width: 100%;
  display: flex;
  justify-content: space-between;
  height: max-content;
  overflow: hidden;
}
.front-page .logo .loading-line p {
  font-size: clamp(18px, 2.5vw, 48px);
  line-height: 100%;
  text-transform: uppercase;
  transform: translateY(140%);
}
.front-page .logo .loading-line p:first-of-type {
  font-weight: 400;
}
.front-page .logo .loading-line p:first-of-type span {
  color: var(--color-background-state-1);
}
.front-page .logo .loading-line p.procent-counter {
  overflow: hidden;
  display: flex;
  font-family: "Romie";
}
.front-page .logo .loading-line p.procent-counter .procent-wrapper {
  position: relative;
  display: inline-flex;
  justify-content: flex-end;
  min-width: 3ch;
}
.front-page .logo .loading-line p.procent-counter .procent-wrapper span:not(:first-of-type) {
  position: absolute;
  right: 0;
  top: 0;
  transform: translateY(110%);
}
.front-page .logo .nav-line {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
@media (max-width: 1199px) {
  .front-page .logo .nav-line {
    display: none;
  }
}
.front-page .logo .nav-line p {
  position: absolute;
  bottom: 0;
  left: 0;
  font-size: clamp(36px, 10.416667vw, 200px);
  line-height: 75%;
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: -0.02em;
  transform: translateY(140%);
}
@media (min-width: 1200px) {
  .front-page .navimage-row {
    margin-top: 1.618rem;
  }
}
.front-page .navimage-row .slider-wrap {
  grid-column: span 4;
}
@media (max-width: 1199px) {
  .front-page .navimage-row .slider-wrap {
    justify-content: flex-start;
    align-items: center;
    width: 100%;
    height: 100%;
    display: flex;
    overflow: hidden;
  }
}
@media (min-width: 1200px) {
  .front-page .navimage-row .slider-wrap {
    display: grid;
    grid-template-columns: subgrid;
  }
}
@media (max-width: 1199px) {
  .front-page .navimage-row .slider-wrap .slider-list {
    flex-flow: row;
    justify-content: flex-start;
    align-items: stretch;
    display: flex;
    position: relative;
  }
}
@media (min-width: 1200px) {
  .front-page .navimage-row .slider-wrap .slider-list {
    grid-column: span 4;
    display: grid;
    grid-template-columns: subgrid;
    gap: var(--gap);
  }
}
.front-page .navimage-row .slider-wrap .slider-list .index-nav-element {
  display: flex;
  position: relative;
}
@media (max-width: 1199px) {
  .front-page .navimage-row .slider-wrap .slider-list .index-nav-element {
    flex: none;
    width: 100vw;
  }
}
@media (min-width: 1200px) {
  .front-page .navimage-row .slider-wrap .slider-list .index-nav-element {
    grid-column: span 1;
  }
}
.front-page .navimage-row .slider-wrap .slider-list .index-nav-element .index-nav-element-inner {
  display: flex;
  flex-direction: column;
}
.front-page .navimage-row .slider-wrap .slider-list .index-nav-element .mobile-title {
  padding-inline: var(--site-padding);
  display: flex;
  justify-content: space-between;
}
@media (min-width: 1200px) {
  .front-page .navimage-row .slider-wrap .slider-list .index-nav-element .mobile-title {
    display: none;
  }
}
.front-page .navimage-row .slider-wrap .slider-list .index-nav-element .mobile-title p {
  font-size: 1rem;
  line-height: 140%;
  margin-bottom: 0.309em;
  text-transform: uppercase;
}
.front-page .navimage-row .slider-wrap .slider-list .index-nav-element .mobile-title p .outer {
  overflow: hidden;
  display: block;
}
.front-page .navimage-row .slider-wrap .slider-list .index-nav-element .mobile-title p .outer .inner {
  display: block;
  transform: translateY(100%);
  transition: transform var(--transition-smooth), opacity var(--transition-primary);
}
.front-page .navimage-row .slider-wrap .slider-list .index-nav-element img {
  height: auto;
  width: 100%;
  aspect-ratio: 3/4;
  object-fit: cover;
}
@media (max-width: 1199px) {
  .front-page .navimage-row .slider-wrap .slider-list .index-nav-element img {
    max-height: 50vh;
    width: 100vw;
  }
}
.front-page .navimage-row .slider-wrap .slider-list .index-nav-element.active .mobile-title p .inner {
  transform: translateY(0);
}

body.category .navigation-overlay {
  position: fixed;
  z-index: 10;
  bottom: 0;
  left: 0;
  width: 100%;
  padding: 1rem var(--site-padding);
  display: flex;
  justify-content: space-between;
}
body.category .navigation-overlay p,
body.category .navigation-overlay a {
  font-size: 1rem;
  line-height: 140%;
  text-transform: uppercase;
  cursor: pointer;
}

.project-item {
  height: 100dvh;
  position: relative;
  background-color: var(--color-background);
  clip-path: inset(0% 0% 0% 0%);
}
.project-item .project-item-inner {
  position: relative;
  width: 100%;
  height: 100dvh;
}
.project-item .row {
  height: 100dvh;
  grid-template-rows: 1fr max-content;
}
@media (max-width: 1199px) {
  .project-item .row {
    padding-top: var(--navbar-height);
  }
}
.project-item .middle {
  grid-column: 1/span 4;
  grid-row: 1/span 2;
  align-self: center;
  display: grid;
  grid-template-columns: subgrid;
  column-gap: var(--gap);
}
.project-item .project-title {
  grid-column: span 4;
  grid-row: 1;
  align-self: center;
  mix-blend-mode: difference;
  z-index: 2;
}
@media (max-width: 1199px) {
  .project-item .project-title {
    align-self: end;
    justify-self: center;
  }
  .project-item .project-title p {
    margin-bottom: 0.618em;
  }
}
@media (min-width: 1200px) {
  .project-item .project-title {
    grid-column: 1/span 2;
    grid-row: 1/span 2;
  }
}
.project-item .project-title p {
  font-family: "Romie";
  font-size: clamp(24px, 2.291667vw, 44px);
  line-height: 110%;
  font-weight: 400;
  font-style: italic;
  text-transform: uppercase;
  letter-spacing: 0;
  display: flex;
}
.project-item .project-title p .outer {
  overflow: hidden;
  display: inline-block;
}
.project-item .project-title p .outer .inner {
  line-height: 110%;
  display: inline-block;
}
.project-item .project-info {
  grid-column: span 4;
  grid-row: 3;
  align-self: flex-start;
  justify-self: center;
  display: flex;
  mix-blend-mode: difference;
  z-index: 2;
}
@media (min-width: 1200px) {
  .project-item .project-info {
    grid-column: 3/span 2;
    grid-row: 1/span 2;
    align-self: center;
    justify-self: end;
  }
}
.project-item .project-info p {
  font-family: "Romie";
  font-size: clamp(24px, 2.291667vw, 44px);
  line-height: 110%;
  font-weight: 400;
  font-style: italic;
  text-transform: uppercase;
  letter-spacing: 0;
  display: flex;
}
@media (max-width: 1199px) {
  .project-item .project-info p {
    margin-top: 0.618em;
  }
}
.project-item .project-info p .outer {
  overflow: hidden;
  display: inline-block;
}
.project-item .project-info p .outer .inner {
  line-height: 110%;
  display: inline-block;
}
.project-item .project-images {
  grid-column: span 4;
  grid-row: 2;
  display: grid;
  grid-template-columns: repeat(8, minmax(0, 1fr));
  gap: var(--gap);
  align-self: center;
}
@media (min-width: 1200px) {
  .project-item .project-images {
    grid-column: 1/span 4;
    grid-row: 1/span 2;
  }
}
.project-item .project-images .project-image {
  display: flex;
  grid-column: span 2;
  position: relative;
}
.project-item .project-images[data-images-count="1"] .project-image {
  grid-column: 3/span 4;
}
@media (min-width: 1200px) {
  .project-item .project-images[data-images-count="1"] .project-image {
    grid-column: 4/span 2;
  }
}
.project-item .project-images[data-images-count="2"] .project-image {
  grid-column: span 4;
}
@media (min-width: 1200px) {
  .project-item .project-images[data-images-count="2"] .project-image {
    grid-column: span 2;
  }
  .project-item .project-images[data-images-count="2"] .project-image:first-of-type {
    grid-column: 3/span 2;
  }
}
.project-item .project-images[data-images-count="3"] .project-image {
  grid-column: span 2;
}
.project-item .project-images[data-images-count="3"] .project-image:first-of-type {
  grid-column: 2/span 2;
}
.project-item .project-pagination {
  grid-column: span 4;
  grid-row: 4;
  display: flex;
  justify-self: center;
  padding-bottom: 1rem;
}
@media (min-width: 1200px) {
  .project-item .project-pagination {
    grid-column: 2/span 2;
    grid-row: 2;
  }
}
.project-item .project-pagination p {
  font-size: 1rem;
  line-height: 140%;
  text-transform: uppercase;
  display: flex;
}
.project-item .project-pagination p .outer {
  overflow: hidden;
  display: inline-block;
}
.project-item .project-pagination p .outer .inner {
  line-height: 140%;
  display: inline-block;
}
.project-item:first-of-type .content {
  height: 200dvh;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
}
.project-item:first-of-type .content .container {
  height: 100dvh;
  position: sticky;
  top: 0;
  display: flex;
  align-items: center;
  justify-content: flex-end;
}
.project-item:not(:first-of-type) .content {
  height: 300dvh;
  position: absolute;
  top: -100dvh;
  left: 0;
  right: 0;
}
.project-item:not(:first-of-type) .content .container {
  height: 100dvh;
  position: sticky;
  top: 0;
  display: flex;
  align-items: center;
  justify-content: flex-start;
}
.project-item:last-of-type .content {
  height: 200dvh;
  position: absolute;
  top: -100dvh;
  left: 0;
  right: 0;
}
.project-item:last-of-type .content .container {
  height: 100dvh;
  position: sticky;
  top: 0;
  display: flex;
  align-items: center;
  justify-content: flex-start;
}

.image-lightbox {
  position: fixed;
  z-index: 1000;
  top: 0;
  left: 0;
  width: 100%;
  height: 100svh;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
}
.image-lightbox .background {
  position: absolute;
  z-index: 1001;
  top: 0;
  left: 0;
  width: 100%;
  height: 100lvh;
  background: var(--color-white);
  clip-path: inset(100% 0% 0% 0%);
}
.image-lightbox .content {
  position: relative;
  padding-inline: var(--site-padding);
  z-index: 1002;
  width: max-content;
  height: max-content;
  display: flex;
  justify-content: center;
  align-items: center;
  clip-path: inset(100% 0% 0% 0%);
}
.image-lightbox .content img {
  max-height: calc(100svh - 2rem);
  max-width: 100%;
  object-fit: contain;
}
@media (max-width: 1199px) {
  .image-lightbox .content img {
    width: 100%;
    height: auto;
  }
}
@media (min-width: 1200px) {
  .image-lightbox .content img {
    height: 100%;
    width: auto;
  }
}
.image-lightbox .close-btn {
  position: absolute;
  z-index: 1002;
  top: 1rem;
  right: var(--site-padding);
  font-size: 1rem;
  line-height: 140%;
  text-transform: uppercase;
  cursor: pointer;
}
.image-lightbox .close-btn .outer {
  position: relative;
  overflow: hidden;
  display: inline-block;
}
.image-lightbox .close-btn .outer .inner {
  line-height: 140%;
  display: inline-block;
  transform: translateY(100%);
}

section.contact-section {
  min-height: 100svh;
}
section.contact-section .container, section.contact-section .row {
  height: 100%;
}
