@font-face {
  font-family: "Inter";
  src: url("../fonts/InterVariable.woff2") format("woff2");
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}

@font-face {
  font-family: "Inter";
  src: url("../fonts/InterVariable-Italic.woff2") format("woff2");
  font-style: italic;
  font-weight: 100 900;
  font-display: swap;
}

:root {
  --c1: #123a63;
  --c2: #3973a8;
  --c3: #3f4852;
  --c4: #dce2e7;
  --c5: #ffffff;
  --c6: #1f2328;
  --c7: #af2838;
  --f-s: max(14px, 16rem);
  --f-d: max(14px, 18rem);
  --f-m: max(14px, 20rem);
  --f-b: max(14px, 24rem);
  --f-l: max(14px, 28rem);
  --f-xl: max(14px, 32rem);
  --f-xl1: max(14px, 40rem);
  --f-xxl: max(14px, 48rem);
  --f-xxxl: max(14px, 54rem);
  --f-xxxxl: max(14px, 72rem);
  --duration: 0.3s;
  --ease: linear;
  --wr: 30rem;
  --mw: 16000px;
  --gap: 25rem;
  --app-height: 100vh;
  --headroom-height: auto;
  --button: max(16px, 20rem);
}

html {
  font-size: 0.0625vw;
}

br {
  display: none;
}

.document {
  font-family: "Inter", sans-serif;
  font-weight: 400;
  font-size: var(--f-s);
  color: var(--c3);
  background-color: var(--c5);
  line-height: 1.3;
  font-optical-sizing: auto;
}

.container {
  min-height: var(--app-height);
  flex-direction: column;
  display: flex;
}

a {
  position: relative;
}

a:before {
  position: absolute;
  left: 0;
  bottom: 0px;
  content: "";
  display: block;
  width: 0;
  height: 1rem;
  background: currentColor;
  transition: width 0.3s;
}

a.is-active:before {
  width: 100%;
}

img {
  border-radius: max(8px, 8rem);
}

input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not(
    [type="file"]
  ):not([type="hidden"]) {
  border-radius: max(8px, 8rem);
}

textarea {
  border-radius: max(8px, 8rem);
}

.project-card,
.focus-area-card,
.project-build-step-card,
.partners-showcase-card,
.partner-highlight-card,
.project-promo-banner-card,
.project-plan-showcase-media-card,
.featured-projects-card {
  border-radius: max(8px, 8rem);
}

.button,
.slider-nav-button,
.topbar-logo a {
  text-decoration: none;
}

.button:before,
.slider-nav-button:before,
.topbar-logo a:before {
  content: none;
}

.header {
  top: calc(-1 * var(--headroom-height));
  z-index: 99;
  width: 100%;
  transition: all 0.25s;
  /*position: sticky;*/
  left: 0;
  overflow-x: clip;
}

.wrapper {
  width: 100%;
  padding: 0 var(--wr);
  max-width: var(--mw);
  margin: 0 auto;
}

.title {
  letter-spacing: -0.03em;
  width: 100%;
  line-height: 1.1;
}

.title__large {
  font-size: var(--f-xxxxl);
}

.title__default {
  font-size: var(--f-xl);
}

.title__xxl {
  font-size: var(--f-xxl);
}

.title-min {
  font-size: var(--f-m);
}

.section-grey {
  background-color: #f5f5f5;
  padding: max(50px, 100rem) 0;
}

.topbar {
  grid-gap: var(--gap);
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  padding: 25rem 0;
  display: grid;
  position: relative;
}

.topbar-center {
  align-items: center;
  min-height: 100%;
  display: flex;
  font-weight: 500;
  color: var(--c1);
  font-size: var(--f-d);
}

.topbar-logo {
  max-width: 300rem;
}

.topbar-nav {
  grid-gap: 15rem;
  grid-auto-flow: column;
  align-self: stretch;
  display: grid;
}

.topbar-nav-menu {
  display: flex;
}

.topbar-nav-menu ul {
  grid-gap: 25rem;
  grid-auto-flow: column;
  display: grid;
}

.topbar-nav-menu li {
  align-items: center;
  display: flex;
}

.topbar-right {
  align-items: stretch;
  align-self: stretch;
  display: flex;
  justify-content: flex-end;
}

.topbar-right-text {
  width: 3rem;
  margin-right: 10rem;
  background-color: var(--c4);
  flex: 0 0 auto;
}

.topbar-right img {
  max-height: 60rem;
  object-fit: contain;
  width: fit-content;
}

.main {
  flex: 1 1 auto;
}

.section__contrast:first-child {
  margin-top: calc(-1 * var(--headroom-height));
}

.section {
  z-index: 1;
  margin-bottom: 120rem;
  position: relative;
}

.main > .section:last-child {
  margin-bottom: 0;
}

.main > .section.section--keep-margin:last-child {
  margin-bottom: 120rem;
}

.button {
  position: relative;
  display: inline-flex;
  gap: max(4px, 4rem);
  color: var(--c1);
  text-decoration: none;
}

.button-main {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: max(48px, 56rem);
  padding: max(10px, 10rem) max(28px, 40rem);
  font-size: var(--button);
  line-height: 1;
  color: inherit;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  font-weight: 500;
  background: var(--c5);
  border-radius: max(8px, 8rem);
  transition: all var(--duration) var(--ease);
}

.button-arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: max(48px, 56rem);
  width: max(48px, 56rem);
  height: max(48px, 56rem);
  background: var(--c5);
  border-radius: max(8px, 8rem);
  transition: all var(--duration) var(--ease);
}

.button-icon {
  position: relative;
  z-index: 1;
  overflow: hidden;
  width: max(18px, 18rem);
  height: max(18px, 18rem);
}

.button-icon:before,
.button-icon:after {
  position: absolute;
  inset: 0;
  display: block;
  content: "";
  background-color: currentColor;
  -webkit-mask: url("../images/button-arrow.svg") 50% 50% / contain no-repeat;
  mask: url("../images/button-arrow.svg") 50% 50% / contain no-repeat;
  transition: transform var(--duration) var(--ease);
}

.button-icon:after {
  transform: translate(-110%, 110%);
}

.button-dark .button-main,
.button-dark .button-arrow {
  background: var(--c1);
  color: var(--c5);
}

.button-outline .button-main,
.button-outline .button-arrow {
  color: var(--c1);
  background: var(--c5);
  border: 1px solid rgba(18, 58, 99, 0.24);
}

.slider-nav {
  --slider-nav-color: var(--c5);
  --slider-nav-border: var(--c5);
  --slider-nav-bg: transparent;
  --slider-nav-hover-color: var(--c1);
  --slider-nav-hover-border: var(--c5);
  --slider-nav-hover-bg: var(--c5);
  display: inline-flex;
  align-items: center;
  gap: max(8px, 8rem);
}

.slider-nav--accent {
  --slider-nav-color: var(--c1);
  --slider-nav-border: rgba(18, 58, 99, 0.18);
  --slider-nav-bg: var(--c5);
  --slider-nav-hover-color: var(--c5);
  --slider-nav-hover-border: var(--c1);
  --slider-nav-hover-bg: var(--c1);
}

.slider-nav-button {
  width: max(48px, 48rem);
  height: max(48px, 48rem);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  color: var(--slider-nav-color);
  cursor: pointer;
  border: 1px solid var(--slider-nav-border);
  background-color: var(--slider-nav-bg);
  transition: all 0.3s linear;
  border-radius: max(6px, 6rem);
}

.slider-nav-icon {
  width: max(8px, 8rem);
  height: max(14px, 14rem);
  display: block;
  background-color: currentColor;
  -webkit-mask: url("../images/slider-arrow.svg") 50% 50% / contain no-repeat;
  mask: url("../images/slider-arrow.svg") 50% 50% / contain no-repeat;
  transition: all 0.3s linear;
}

.slider-nav-button-prev .slider-nav-icon {
  transform: rotate(180deg);
}

.hero-layout {
  position: relative;
  overflow: hidden;
  min-height: max(420px, 640rem);
  background-color: var(--c6);
}

.hero-slider {
  width: 100%;
  height: 100%;
}

.hero-slide {
  position: relative;
  min-height: max(420px, 640rem);
}

.hero-slide:after {
  position: absolute;
  inset: 0;
  content: "";
  background: linear-gradient(
    90deg,
    rgba(12, 19, 27, 0.68) 0%,
    rgba(12, 19, 27, 0.48) 28%,
    rgba(12, 19, 27, 0.12) 58%,
    rgba(12, 19, 27, 0) 100%
  );
}

.hero-image {
  width: 100%;
  height: max(420px, 640rem);
  object-fit: cover;
  display: block;
}

.hero-content {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: flex;
  align-items: flex-end;
  padding: max(24px, 32rem);
}

.hero-block {
  max-width: max(360px, 620rem);
  color: var(--c5);
}

.hero-text {
  max-width: max(560px, 620rem);
  margin: max(24px, 24rem) 0 0;
  font-size: var(--f-m);
}

.hero-controls {
  position: absolute;
  right: max(24px, 30rem);
  bottom: max(24px, 30rem);
  z-index: 3;
}

.top-button {
  display: inline-flex;
  margin: max(24px, 24rem) 0 0;
}

.company-overview-layout {
  display: grid;
  grid-template-columns: minmax(280px, 400rem) minmax(0, 1fr);
  gap: max(18px, 20rem);
  align-items: start;
}

.company-overview-intro {
  grid-column: 1;
  grid-row: 1 / span 2;
  padding: max(8px, 8rem) 0;
}

.company-overview-kicker {
  margin-bottom: max(10px, 10rem);
  font-size: var(--f-s);
  line-height: 1.2;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--c2);
}

.company-overview-intro .title {
  margin-bottom: max(18px, 20rem);
  color: var(--c1);
}

.company-overview-text {
  display: grid;
  gap: max(12px, 12rem);
  font-size: var(--f-s);
  line-height: 1.55;
  color: var(--c3);
}

.company-overview-cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-column: 2;
  grid-row: 1;
  align-self: start;
}

.company-overview-card {
  padding: max(10px, 10rem) max(14px, 16rem) max(10px, 10rem) max(18px, 20rem);
  border-left: 1px solid rgba(18, 58, 99, 0.12);
}

.company-overview-card-icon {
  width: max(50px, 50rem);
  height: max(50px, 50rem);
  margin-bottom: max(20px, 20rem);
  display: block;
}

.company-overview-card-title {
  margin-bottom: max(12px, 12rem);
  color: var(--c1);
}

.company-overview-card-text {
  font-size: var(--f-s);
  line-height: 1.5;
  color: var(--c3);
}

.company-overview-layout > img {
  grid-column: 2;
  grid-row: 2;
  width: 100%;
  min-height: max(260px, 320rem);
  object-fit: cover;
  display: block;
}

.projects-overview-layout {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: max(28px, 36rem);
}

.projects-overview-group {
  min-width: 0;
}

.projects-overview-group-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: max(20px, 20rem);
  margin-bottom: max(20px, 24rem);
}

.projects-overview-kicker {
  margin-bottom: max(10px, 10rem);
  font-size: var(--f-s);
  line-height: 1.2;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--c2);
}

.projects-overview-group .title {
  max-width: max(260px, 360rem);
  color: var(--c1);
}

.projects-overview-group-header .button {
  flex: 0 0 auto;
  margin-top: max(24px, 24rem);
}

.projects-overview-cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: max(18px, 18rem);
}

.project-card {
  min-width: 0;
  background-color: var(--c5);
}

.project-card-content {
  padding: max(10px, 20rem);
}

.project-card .box-img {
  position: relative;
  margin-bottom: max(5px, 5rem);
}

.project-card-media {
  overflow: hidden;
  border-radius: max(8px, 8rem);
}

.project-card-image {
  width: 100%;
  aspect-ratio: 1.6 / 1;
  object-fit: cover;
  display: block;
  transition: transform 0.2s var(--ease);
}

.project-card-status {
  position: absolute;
  left: max(10px, 20rem);
  bottom: 0;
  transform: translateY(50%);
  z-index: 1;
  display: inline-flex;
  align-items: center;
  min-height: max(18px, 18rem);
  padding: max(3px, 3rem) max(6px, 6rem);
  font-size: max(10px, 14rem);
  text-transform: uppercase;
  color: var(--c5);
  background-color: var(--c2);
  border-radius: max(4px, 4rem);
}

.project-card-status.is-done {
  background-color: var(--c3);
}

.project-card-title {
  margin-bottom: max(10px, 10rem);
  color: var(--c1);
}

.project-card-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: max(6px, 6rem);
  margin-bottom: max(8px, 8rem);
  line-height: 1.4;
  color: var(--c3);
}

.project-card-category {
  position: relative;
  padding-left: max(12px, 12rem);
}

.project-card-region + .project-card-category::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: 3px;
  height: 3px;
  transform: translateY(-50%);
  border-radius: 50%;
  background-color: currentColor;
}

.project-card-text {
  font-size: var(--f-s);
  line-height: 1.5;
  color: var(--c3);
}

.about-person {
  padding-top: max(32px, 40rem);
}

.about-person-layout {
  display: grid;
  grid-template-columns: minmax(280px, 500rem) minmax(0, 1fr);
  gap: max(28px, 36rem);
  align-items: start;
}

.about-person-content {
  padding: max(12px, 12rem) 0;
}

.about-person-content .title {
  margin-bottom: max(18px, 20rem);
  color: var(--c1);
}

.about-person-text {
  font-size: var(--f-s);
  line-height: 1.55;
  color: var(--c3);
}

.about-person-tags {
  display: flex;
  flex-wrap: wrap;
  gap: max(10px, 10rem);
  margin-top: max(18px, 24rem);
}

.about-person-tag {
  display: inline-flex;
  align-items: center;
  gap: max(8px, 8rem);
  min-height: max(36px, 40rem);
  padding: max(8px, 8rem) max(12px, 14rem);
  font-size: var(--f-s);
  line-height: 1.2;
  color: var(--c3);
  border: 1px solid rgba(63, 72, 82, 0.16);
  background-color: var(--c5);
  box-shadow: 0 max(4px, 4rem) max(14px, 14rem) rgba(35, 73, 158, 0.08);
  border-radius: max(5px, 5rem);
}

.about-person-tag img {
  width: max(24px, 24rem);
  height: max(24px, 24rem);
  display: block;
  flex: 0 0 auto;
}

.about-person-image {
  width: 100%;
  aspect-ratio: 1.9 / 1;
  object-fit: cover;
  display: block;
}

.focus-areas .title {
  margin-bottom: max(24px, 28rem);
  color: var(--c1);
  text-align: center;
}

.focus-areas-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: max(18px, 18rem);
}

.focus-areas-grid--cols-4 {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.focus-area-card {
  display: grid;
  grid-template-columns: max(72px, 100rem) 1fr;
  gap: max(16px, 18rem);
  padding: max(20px, 24rem);
  border: 1px solid rgba(63, 72, 82, 0.12);
  background-color: var(--c5);
  box-shadow: 0 max(6px, 6rem) max(20px, 20rem) rgba(35, 73, 158, 0.06);
}

.focus-area-icon {
  width: max(72px, 100rem);
  height: max(72px, 100rem);
  display: block;
}

.focus-area-card .title {
  margin-bottom: max(10px, 10rem);
  text-align: left;
}

.focus-area-list {
  display: grid;
  gap: max(6px, 6rem);
  font-size: var(--f-s);
  line-height: 1.45;
  color: var(--c3);
}

.focus-area-list > div {
  display: flex;
  align-items: center;
  gap: max(8px, 8rem);
}

.focus-area-list--plain > div {
  display: block;
}

.focus-area-list > div::before {
  width: max(6px, 6rem);
  height: max(6px, 6rem);
  content: "";
  display: block;
  border-radius: 50%;
  background-color: var(--c2);
  flex: 0 0 auto;
}

.focus-area-list--plain > div::before {
  content: none;
}

.completed-objects-layout {
  display: grid;
  grid-template-columns: minmax(240px, 380rem) minmax(0, 1fr);
  gap: max(24px, 32rem);
  align-items: stretch;
}

.completed-objects-content {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.completed-objects-kicker {
  margin-bottom: max(14px, 14rem);
  font-size: var(--f-m);
  line-height: 1.2;
  font-weight: 600;
  color: var(--c1);
}

.completed-objects-value {
  font-size: var(--f-xxxxl);
  line-height: 0.95;
  font-weight: 700;
  letter-spacing: -0.04em;
  color: var(--c1);
}

.completed-objects-value span {
  font-size: var(--f-xl1);
}

.completed-objects-text {
  margin-top: max(8px, 8rem);
  font-size: var(--f-m);
  line-height: 1.3;
  color: var(--c2);
}

.completed-objects-controls {
  margin-top: auto;
  padding-top: max(28px, 40rem);
  text-align: end;
}

.completed-objects-slider-wrap {
  min-width: 0;
}

.completed-objects-slider {
  overflow: hidden;
}

.completed-objects-slide {
  height: auto;
}

.completed-objects-image {
  width: 100%;
  aspect-ratio: 1.05 / 1;
  object-fit: cover;
  display: block;
}

.project-build-steps .title {
  margin-bottom: max(24px, 28rem);
  color: var(--c1);
  text-align: center;
}

.project-build-steps-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: max(18px, 20rem);
}

.project-build-step-card {
  position: relative;
  padding: max(10px, 10rem);
  border: 1px solid rgba(18, 58, 99, 0.12);
  background-color: var(--c5);
  box-shadow: 0 max(6px, 6rem) max(18px, 18rem) rgba(35, 73, 158, 0.05);
}

.project-build-step-card:not(:last-child)::after {
  position: absolute;
  top: 50%;
  right: max(-13px, -13rem);
  z-index: 1;
  width: max(8px, 8rem);
  height: max(14px, 14rem);
  content: "";
  background-color: var(--c2);
  -webkit-mask: url("../images/slider-arrow.svg") 50% 50% / contain no-repeat;
  mask: url("../images/slider-arrow.svg") 50% 50% / contain no-repeat;
  transform: translate(50%, -50%);
}

.project-build-step-head {
  display: flex;
  align-items: center;
  gap: max(10px, 10rem);
  margin-bottom: max(10px, 10rem);
}

.project-build-step-number {
  width: max(24px, 24rem);
  height: max(24px, 24rem);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  font-size: var(--f-s);
  line-height: 1;
  font-weight: 700;
  color: var(--c5);
  background-color: var(--c1);
  border-radius: max(3px, 3rem);
}

.project-build-step-title {
  font-size: var(--f-d);
  line-height: 1.2;
  font-weight: 600;
  color: var(--c3);
}

.project-build-step-image {
  width: 100%;
  aspect-ratio: 1.45 / 1;
  object-fit: cover;
  display: block;
}

.partners-showcase .title {
  margin-bottom: max(24px, 28rem);
  color: var(--c1);
}

.partners-showcase-card {
  display: grid;
  grid-template-columns: minmax(220px, 300rem) minmax(0, 1fr);
  gap: max(24px, 36rem);
  align-items: center;
  padding: max(18px, 22rem) max(22px, 26rem);
  border: 1px solid rgba(18, 58, 99, 0.12);
  background-color: var(--c5);
  box-shadow: 0 max(6px, 6rem) max(18px, 18rem) rgba(35, 73, 158, 0.05);
}

.partners-showcase-logo {
  display: flex;
  align-items: center;
}

.partners-showcase-logo img {
  width: 100%;
  max-width: max(180px, 280rem);
  height: auto;
  display: block;
}

.partners-showcase-content {
  min-width: 0;
}

.partners-showcase-name {
  margin-bottom: max(8px, 8rem);
  font-size: var(--f-l);
  line-height: 1.2;
  font-weight: 600;
  color: var(--c1);
}

.partners-showcase-text {
  font-size: var(--f-m);
  line-height: 1.4;
  color: var(--c3);
}

.partner-highlight-card {
  position: relative;
  min-height: 80vh;
  min-height: 80svh;
  overflow: hidden;
  background-color: var(--c6);
}

.partner-highlight-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.partner-highlight-overlay {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(
      90deg,
      rgba(12, 19, 27, 0.86) 0%,
      rgba(12, 19, 27, 0.72) 26%,
      rgba(12, 19, 27, 0.24) 60%,
      rgba(12, 19, 27, 0.08) 100%
    ),
    linear-gradient(
      180deg,
      rgba(12, 19, 27, 0.06) 0%,
      rgba(12, 19, 27, 0.18) 100%
    );
}

.partner-highlight-content {
  position: relative;
  z-index: 1;
  max-width: 60%;
  min-height: 80vh;
  min-height: 80svh;
  display: flex;
  flex-direction: column;
  padding: max(32px, 40rem);
  color: var(--c5);
}

.partner-highlight-kicker {
  width: fit-content;
  margin-bottom: max(12px, 12rem);
  padding: max(8px, 10rem) max(14px, 16rem);
  font-size: var(--f-s);
  line-height: 1.2;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--c5);
  background: var(--c1);
  border-radius: max(4px, 4rem);
}

.partner-highlight .title {
  color: var(--c5);
}

.partner-highlight-text {
  margin-top: max(16px, 16rem);
  font-size: var(--f-l);
  line-height: 1.25;
  color: rgba(255, 255, 255, 0.92);
}

.partner-highlight-meta {
  margin-top: auto;
  padding-top: max(28px, 36rem);
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
}

.partner-highlight-meta-item {
  display: grid;
  grid-template-columns: max(40px, 40rem) 1fr;
  gap: max(10px, 10rem);
  align-items: start;
  min-width: 0;
  padding: 0 max(18px, 20rem);
}

.partner-highlight-meta-item:not(:first-child) {
  border-left: 1px solid rgba(255, 255, 255, 0.4);
}

.partner-highlight-meta-item:first-child {
  padding-left: 0;
}

.partner-highlight-meta-item:last-child {
  padding-right: 0;
}

.partner-highlight-meta-icon {
  width: max(40px, 40rem);
  height: max(40px, 40rem);
  display: block;
}

.partner-highlight-meta-value {
  margin-bottom: max(4px, 4rem);
  font-size: var(--f-d);
  line-height: 1.2;
  font-weight: 600;
  text-transform: uppercase;
  color: var(--c5);
}

.partner-highlight-meta-text {
  font-size: var(--f-s);
  line-height: 1.35;
  color: rgba(255, 255, 255, 0.82);
}

.partner-experience-layout {
  display: grid;
  grid-template-columns: minmax(280px, 420rem) minmax(0, 1fr) minmax(
      260px,
      360rem
    );
  align-items: stretch;
  background-color: var(--c5);
}

.partner-experience-intro {
  padding: max(18px, 20rem);
}

.partner-experience-kicker {
  margin-bottom: max(16px, 16rem);
  font-size: var(--f-s);
  line-height: 1.2;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--c2);
}

.partner-experience-intro .title {
  margin-bottom: max(18px, 20rem);
  color: var(--c1);
}

.partner-experience-text {
  display: grid;
  gap: max(12px, 12rem);
  font-size: var(--f-s);
  line-height: 1.5;
  color: var(--c3);
}

.partner-experience-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.partner-experience-stat {
  min-width: 0;
  padding: max(22px, 22rem) max(14px, 14rem);
  border-left: 1px solid rgba(18, 58, 99, 0.12);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.partner-experience-stat-icon-row {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.partner-experience-stat-icon-box {
  width: max(100px, 100rem);
  height: max(100px, 100rem);
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
}

.partner-experience-stat-icon {
  width: max(100px, 100rem);
  height: max(100px, 100rem);
  object-fit: contain;
  object-position: center;
  display: block;
}

.partner-experience-stat-value {
  width: 100%;
  margin-top: max(18px, 18rem);
  font-size: var(--f-xl);
  line-height: 1;
  font-weight: 700;
  color: var(--c1);
  display: flex;
  align-items: flex-start;
  justify-content: center;
  text-align: center;
  white-space: nowrap;
}

.partner-experience-stat-text {
  margin-top: max(12px, 12rem);
  font-size: var(--f-s);
  line-height: 1.35;
  font-weight: 500;
  color: var(--c3);
}

@media screen and (width>=1024px) {
  .company-overview-intro {
    position: sticky;
    top: max(24px, 32rem);
  }

  .partner-experience-stat {
    position: relative;
    min-height: max(250px, 270rem);
    justify-content: flex-end;
  }

  .partner-experience-stat-icon-row {
    position: absolute;
    width: 100%;
    top: 30%;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    left: 0;
  }
}

.partner-experience-media {
  min-width: 0;
  padding: max(14px, 14rem);
  border-left: 1px solid rgba(18, 58, 99, 0.12);
}

.partner-experience-image {
  width: 100%;
  height: 100%;
  min-height: max(260px, 320rem);
  object-fit: cover;
  display: block;
}

.business-solutions-layout {
  display: grid;
  grid-template-columns: minmax(280px, 420rem) minmax(0, 1fr);
  align-items: stretch;
  background-color: var(--c5);
}

.business-solutions-kicker {
  margin-bottom: max(16px, 16rem);
  font-size: var(--f-s);
  line-height: 1.2;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--c2);
}

.business-solutions-intro .title {
  color: var(--c1);
}

.business-solutions-cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.business-solutions-card {
  min-width: 0;
  padding: max(20px, 24rem) max(12px, 14rem);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  border-left: 1px solid rgba(18, 58, 99, 0.12);
}

.business-solutions-card:nth-child(n + 4) {
  border-top: 1px solid rgba(18, 58, 99, 0.12);
}

.business-solutions-card:nth-child(3n + 1) {
  border-left: 0;
}

.business-solutions-card-icon {
  width: max(72px, 72rem);
  height: max(72px, 72rem);
  object-fit: contain;
  display: block;
}

.business-solutions-card-title {
  margin-top: max(16px, 16rem);
  font-size: var(--f-l);
  color: var(--c1);
}

.business-solutions-card-text {
  margin-top: max(10px, 10rem);
  color: var(--c3);
}

.why-work-with-us-layout {
  display: grid;
  grid-template-columns: minmax(280px, 420rem) minmax(0, 1fr);
  gap: max(20px, 24rem);
  align-items: stretch;
  background-color: var(--c5);
}

.why-work-with-us-intro {
  padding: max(12px, 12rem) 0;
}

.why-work-with-us-kicker {
  margin-bottom: max(14px, 14rem);
  font-size: var(--f-s);
  line-height: 1.2;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--c2);
}

.why-work-with-us-intro .title {
  margin-bottom: max(18px, 20rem);
  color: var(--c1);
}

.why-work-with-us-list {
  display: grid;
  gap: max(12px, 12rem);
}

.why-work-with-us-item {
  display: grid;
  grid-template-columns: max(20px, 20rem) 1fr;
  gap: max(10px, 10rem);
  align-items: start;
}

.why-work-with-us-item-icon {
  width: max(20px, 20rem);
  height: max(20px, 20rem);
  display: block;
}

.why-work-with-us-item-text {
  font-size: var(--f-s);
  line-height: 1.5;
  color: var(--c3);
}

.why-work-with-us-media {
  min-width: 0;
}

.why-work-with-us-image {
  width: 100%;
  height: auto;
  min-height: max(260px, 320rem);
  object-fit: cover;
  display: block;
}

.realized-projects-slider-scope {
  min-width: 0;
}

.realized-projects-slider-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: max(20px, 20rem);
  margin-bottom: max(16px, 16rem);
}

.realized-projects-slider-header .title {
  color: var(--c1);
}

.realized-projects-swiper {
  overflow: hidden;
}

.realized-projects-slide .project-card {
  min-height: 100%;
  border: 1px solid rgba(18, 58, 99, 0.12);
}

.realized-projects-slide .project-card-text {
  display: grid;
  gap: max(4px, 4rem);
}

.realized-projects-slide .project-card-text div:first-child {
  font-weight: 600;
  color: var(--c3);
}

.realized-projects-slide .project-card-text div:last-child {
  font-size: max(11px, 12rem);
  line-height: 1.3;
}

.project-object-gallery-card {
  width: 100%;
  padding: 0;
  border: 1px solid rgba(18, 58, 99, 0.12);
  background-color: var(--c5);
  border-radius: max(8px, 8rem);
  overflow: hidden;
  cursor: pointer;
  transition:
    transform 0.25s var(--ease),
    box-shadow 0.25s var(--ease),
    border-color 0.25s var(--ease);
}

.project-object-gallery-card:hover {
  border-color: rgba(18, 58, 99, 0.22);
  box-shadow: 0 max(10px, 12rem) max(24px, 28rem) rgba(35, 73, 158, 0.08);
  transform: translateY(max(-2px, -2rem));
}

.project-object-gallery-card .project-card-image {
  aspect-ratio: 1.6 / 1;
}

.project-object-gallery .realized-projects-slider-header {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
}

.project-object-gallery .realized-projects-slider-header .title {
  grid-column: 2;
  text-align: center;
}

.project-object-gallery .realized-projects-slider-header .title:only-child {
  grid-column: 1 / -1;
  justify-self: center;
}

.project-object-gallery .realized-projects-slider-header .slider-nav {
  grid-column: 3;
  justify-self: end;
}

.project-object-gallery
  .realized-projects-slider-header
  .slider-nav:only-child {
  grid-column: 3;
  justify-self: end;
}

.project-object-gallery-lightbox[hidden] {
  display: none;
}

.project-object-gallery-lightbox {
  position: fixed;
  inset: 0;
  z-index: 120;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: max(20px, 24rem);
}

.project-object-gallery-lightbox-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(10, 28, 48, 0.78);
  backdrop-filter: blur(8px);
}

.project-object-gallery-lightbox-dialog {
  position: relative;
  z-index: 1;
  width: min(100%, max(1080px, 1240rem));
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: max(14px, 18rem);
  align-items: center;
}

.project-object-gallery-lightbox-media {
  min-width: 0;
  padding: max(12px, 12rem);
}

.project-object-gallery-lightbox-image {
  width: 100%;
  max-height: min(78vh, max(760px, 920rem));
  object-fit: contain;
  display: block;
  border-radius: max(8px, 8rem);
}

.project-object-gallery-lightbox-nav {
  --slider-nav-hover-color: var(--c5);
  --slider-nav-hover-border: var(--c5);
  --slider-nav-hover-bg: transparent;
  position: static;
  transform: none;
  color: var(--c1);
  border-color: rgba(18, 58, 99, 0.14);
  background-color: var(--c5);
}

.project-object-gallery-lightbox-close {
  position: absolute;
  top: max(-18px, -18rem);
  right: max(-18px, -18rem);
  z-index: 2;
  width: max(42px, 48rem);
  height: max(42px, 48rem);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: max(24px, 28rem);
  line-height: 1;
  color: var(--c1);
  border: 1px solid rgba(18, 58, 99, 0.14);
  background-color: var(--c5);
  border-radius: max(8px, 8rem);
  padding-bottom: max(2px, 2rem);
}

.is-lightbox-open {
  overflow: hidden;
}

.is-lightbox-open .project-object-gallery {
  z-index: 1000;
}

.active-project-showcase > .wrapper > .title {
  margin-bottom: max(20px, 24rem);
  color: var(--c1);
}

.active-project-showcase-layout {
  display: grid;
  grid-template-columns: minmax(0, 0.86fr) minmax(360px, 520rem);
  gap: max(24px, 32rem);
  align-items: stretch;
  background-color: var(--c5);
}

.active-project-showcase-media {
  min-width: 0;
}

.active-project-showcase-stage {
  position: relative;
}

.active-project-showcase-main {
  overflow: hidden;
  background-color: var(--c4);
  border-radius: max(8px, 8rem);
}

.active-project-showcase-main-image {
  width: 100%;
  aspect-ratio: 1.48 / 1;
  object-fit: cover;
  display: block;
  transition: transform 0.3s linear;
}

.active-project-showcase-nav-button {
  position: absolute;
  top: 50%;
  z-index: 2;
  color: var(--c1);
  border-color: rgba(18, 58, 99, 0.14);
  background-color: var(--c5);
  transform: translateY(-50%);
}

.active-project-showcase-nav-button.js-gallery-prev {
  left: max(12px, 12rem);
}

.active-project-showcase-nav-button.js-gallery-next {
  right: max(12px, 12rem);
}

.active-project-showcase-thumbs {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: max(10px, 10rem);
  margin-top: max(12px, 12rem);
}

.active-project-showcase-thumb {
  padding: 0;
  border: 1px solid transparent;
  background: none;
  cursor: pointer;
  opacity: 0.72;
  transition:
    border-color 0.3s linear,
    opacity 0.3s linear;
}

.active-project-showcase-thumb img {
  width: 100%;
  aspect-ratio: 1.34 / 1;
  object-fit: cover;
  display: block;
}

.active-project-showcase-thumb.is-active {
  border-color: var(--c1);
  opacity: 1;
  border-radius: max(8px, 8rem);
}

.active-project-showcase-content {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 100%;
}

.active-project-showcase-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: max(16px, 16rem);
}

.active-project-showcase-project {
  font-size: var(--f-xxxl);
  line-height: 0.98;
  font-weight: 700;
  color: var(--c1);
}

.active-project-showcase-status {
  display: inline-flex;
  align-items: center;
  min-height: max(22px, 26rem);
  padding: max(5px, 5rem) max(10px, 10rem);
  font-size: max(10px, 13rem);
  line-height: 1;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--c5);
  background-color: var(--c2);
  border-radius: max(3px, 3rem);
}

.active-project-showcase-lead {
  margin-top: max(18px, 20rem);
  font-size: var(--f-m);
  line-height: 1.45;
  color: var(--c3);
  max-width: max(320px, 380rem);
}

.active-project-showcase-text {
  margin-top: max(10px, 10rem);
  font-size: var(--f-s);
  line-height: 1.55;
  color: var(--c3);
}

.active-project-showcase-details {
  margin-top: max(18px, 22rem);
  padding-top: max(18px, 18rem);
  display: grid;
  gap: 0;
  border-top: 1px solid rgba(18, 58, 99, 0.12);
}

.active-project-showcase-detail {
  display: grid;
  grid-template-columns: minmax(140px, 180rem) 1fr;
  gap: max(14px, 14rem);
  align-items: start;
  padding: max(12px, 12rem) 0;
  border-bottom: 1px solid rgba(18, 58, 99, 0.08);
}

.active-project-showcase-detail-label {
  display: inline-flex;
  align-items: center;
  gap: max(10px, 10rem);
  font-size: var(--f-s);
  line-height: 1.35;
  font-weight: 600;
  color: var(--c1);
}

.active-project-showcase-detail-label::before {
  width: max(18px, 18rem);
  height: max(18px, 18rem);
  flex: 0 0 auto;
  content: "";
  background-color: var(--c2);
  -webkit-mask: var(--detail-icon) 50% 50% / contain no-repeat;
  mask: var(--detail-icon) 50% 50% / contain no-repeat;
}

.active-project-showcase-detail-value {
  font-size: var(--f-s);
  line-height: 1.45;
  color: var(--c3);
}

.active-project-showcase-actions {
  display: flex;
  flex-wrap: wrap;
  gap: max(10px, 10rem);
  margin-top: auto;
  padding-top: max(24px, 28rem);
}

.consultation-cta-box {
  display: grid;
  grid-template-columns: max(56px, 72rem) minmax(0, 1fr) auto;
  gap: max(18px, 24rem);
  align-items: center;
  padding: max(20px, 24rem);
  border: 1px solid rgba(18, 58, 99, 0.12);
  background-color: var(--c5);
  border-radius: max(8px, 8rem);
}

.consultation-cta-icon {
  width: max(56px, 72rem);
  height: max(56px, 72rem);
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(57, 115, 168, 0.16);
  background-color: rgba(57, 115, 168, 0.06);
  border-radius: max(8px, 8rem);
}

.consultation-cta-icon img {
  width: max(32px, 48rem);
  height: max(32px, 48rem);
  display: block;
}

.consultation-cta-content {
  min-width: 0;
}

.consultation-cta-title {
  margin-bottom: max(8px, 8rem);
  font-size: var(--f-b);
  line-height: 1.15;
  font-weight: 600;
  color: var(--c1);
}

.consultation-cta-text {
  max-width: max(420px, 560rem);
  font-size: var(--f-s);
  line-height: 1.5;
  color: var(--c3);
}

.consultation-cta-action {
  display: flex;
  justify-content: flex-end;
}

.contacts-map-layout {
  display: grid;
  grid-template-columns: minmax(280px, 320rem) minmax(0, 1fr);
  gap: max(24px, 28rem);
  align-items: stretch;
  background-color: var(--c5);
}

.contacts-map-content {
  min-width: 0;
}

.contacts-map-content .title {
  margin-bottom: max(24px, 28rem);
  color: var(--c1);
}

.contacts-map-items {
  display: grid;
  gap: max(16px, 18rem);
}

.contacts-map-item {
  display: grid;
  grid-template-columns: max(24px, 40rem) minmax(0, 1fr);
  gap: max(12px, 14rem);
  align-items: start;
}

.contacts-map-icon {
  width: max(24px, 40rem);
  height: max(24px, 40rem);
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: var(--c1);
  border-radius: max(6px, 6rem);
}

.contacts-map-icon img {
  width: max(14px, 30rem);
  height: max(14px, 30rem);
  display: block;
}

.contacts-map-info {
  min-width: 0;
}

.contacts-map-label {
  margin-bottom: max(4px, 4rem);
  color: var(--c1);
}

.contacts-map-value {
  font-size: var(--f-s);
  line-height: 1.5;
  color: var(--c3);
  white-space: pre-line;
}

.contacts-map-media {
  min-width: 0;
  border-radius: max(8px, 8rem);
  overflow: hidden;
}

.contacts-map-frame {
  width: 100%;
  min-height: max(320px, 360rem);
  height: 100%;
  display: block;
  border: 0;
  filter: saturate(0.92) contrast(1.02);
}

.contact-form-teaser-layout {
  display: grid;
  grid-template-columns: minmax(280px, 520rem) minmax(0, 1fr);
  gap: max(20px, 24rem);
  align-items: stretch;
}

.contact-form-teaser-aside {
  padding: max(22px, 24rem);
  color: var(--c5);
  background: linear-gradient(180deg, #0d2944 0%, #123a63 100%);
  border-radius: max(8px, 8rem);
}

.contact-form-teaser-aside-title {
  margin-bottom: max(10px, 10rem);
  font-size: var(--f-l);
}

.contact-form-teaser-aside-text {
  font-size: var(--f-s);
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.84);
}

.contact-form-teaser-aside-body {
  margin-top: max(28px, 36rem);
  display: grid;
  grid-template-columns: max(52px, 100rem) minmax(0, 1fr);
  gap: max(20px, 20rem);
  /* align-items: end; */
}

.contact-form-teaser-icon img {
  width: 100%;
  height: auto;
  display: block;
  filter: brightness(0) invert(1);
}

.contact-form-teaser-points {
  display: grid;
  gap: max(10px, 10rem);
}

.contact-form-teaser-point {
  position: relative;
  padding-left: max(16px, 18rem);
  font-size: var(--f-s);
  line-height: 1.45;
  color: var(--c5);
}

.contact-form-teaser-point::before {
  position: absolute;
  left: 0;
  top: max(7px, 7rem);
  width: max(6px, 6rem);
  height: max(6px, 6rem);
  content: "";
  background-color: var(--c5);
}

a.contact-form-teaser-point {
  text-decoration: none;
}

.contact-form-teaser-point span {
  position: relative;
  display: inline-block;
}

.contact-form-teaser-point span:before {
  position: absolute;
  left: 0;
  bottom: 0;
  content: "";
  display: block;
  width: 0;
  height: 1rem;
  background: currentColor;
  transition: width 0.3s;
}

.contact-form-teaser-formbox {
  padding: max(22px, 24rem);
  border: 1px solid rgba(18, 58, 99, 0.12);
  background-color: var(--c5);
  border-radius: max(8px, 8rem);
}

.contact-form-teaser-formbox .title {
  margin-bottom: max(18px, 20rem);
  color: var(--c1);
}

.contact-form-teaser-form {
  display: grid;
  gap: max(10px, 10rem);
}

.contact-form-teaser-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: max(10px, 10rem);
}

.contact-form-teaser-input,
.contact-form-teaser-textarea {
  width: 100%;
  padding: max(11px, 12rem) max(14px, 14rem);
  border: 1px solid rgba(18, 58, 99, 0.14);
  background-color: var(--c5);
  font-family: "Inter", sans-serif;
  font-size: var(--f-s);
  line-height: 1.4;
  color: var(--c3);
  outline: 0;
  transition: border-color 0.3s linear;
}

.contact-form-teaser-input::placeholder,
.contact-form-teaser-textarea::placeholder {
  color: rgba(63, 72, 82, 0.6);
}

.contact-form-teaser-textarea {
  min-height: max(110px, 120rem);
  resize: vertical;
}

.contact-form-teaser-submit {
  padding: 0;
  border: 0;
  background: none;
  cursor: pointer;
  justify-self: start;
}

.contact-form-teaser-note {
  font-size: max(12px, 13rem);
  line-height: 1.45;
  color: rgba(63, 72, 82, 0.78);
}

.contact-form-teaser-note a {
  color: var(--c2);
}

.visit-cta-layout {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: max(20px, 24rem);
  align-items: stretch;
}

.visit-cta-media {
  min-width: 0;
}

.visit-cta-media img {
  width: 100%;
  min-height: max(220px, 240rem);
  height: 100%;
  object-fit: cover;
  display: block;
}

.visit-cta-content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
  padding: max(12px, 12rem) 0;
}

.visit-cta-content .title {
  margin-bottom: max(16px, 18rem);
  color: var(--c1);
}

.visit-cta-text {
  display: grid;
  gap: max(10px, 10rem);
  font-size: var(--f-s);
  line-height: 1.5;
  color: var(--c3);
}

.visit-cta-action {
  margin-top: max(20px, 24rem);
}

.error-404-page {
  padding-top: max(40px, 48rem);
}

.error-404-page-box {
  min-height: max(420px, 560rem);
  padding: max(36px, 48rem);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.error-404-page-code {
  font-size: clamp(72px, 10vw, 164px);
  line-height: 0.88;
  font-weight: 700;
  color: var(--c2);
  letter-spacing: -0.04em;
}

.error-404-page-box .title {
  max-width: max(320px, 720rem);
  margin-top: max(10px, 12rem);
  color: var(--c1);
}

.error-404-page-text {
  max-width: max(320px, 620rem);
  margin-top: max(16px, 18rem);
  font-size: var(--f-b);
  line-height: 1.6;
  color: var(--c3);
}

.error-404-page-actions {
  margin-top: max(24px, 30rem);
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: max(12px, 14rem);
}

.project-final-cta-box {
  display: flex;
  align-items: center;
  gap: max(18px, 24rem);
  padding: max(20px, 24rem);
  border: 1px solid rgba(255, 255, 255, 0.14);
  background: linear-gradient(
    90deg,
    rgba(10, 40, 78, 1) 0%,
    rgba(11, 42, 82, 0.98) 100%
  );
  border-radius: max(8px, 8rem);
}

.project-final-cta-box--no-actions {
  justify-content: flex-start;
}

.project-final-cta-icon {
  width: max(58px, 72rem);
  height: max(58px, 72rem);
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(255, 255, 255, 0.16);
  background-color: rgba(255, 255, 255, 0.04);
  border-radius: max(8px, 8rem);
}

.project-final-cta-icon img {
  width: max(30px, 38rem);
  height: max(30px, 38rem);
  object-fit: contain;
  display: block;
  border-radius: 0;
}

.project-final-cta-content {
  min-width: 0;
  flex: 1 1 auto;
}

.project-final-cta-title {
  font-size: var(--f-l);
  color: var(--c5);
}

.project-final-cta-text {
  margin-top: max(8px, 10rem);
  color: rgba(255, 255, 255, 0.8);
}

.project-final-cta-actions {
  margin-left: auto;
  width: min(100%, max(620px, 760rem));
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: max(12px, 14rem);
}

.project-final-cta-button {
  width: 100%;
  min-width: 0;
}

.project-final-cta-button .button-main {
  flex: 1 1 auto;
  min-width: 0;
  padding-right: max(18px, 22rem);
  padding-left: max(18px, 22rem);
}

.project-final-cta-button .button-main,
.project-final-cta-button .button-arrow {
  background-color: var(--c5);
  color: var(--c1);
}

.project-final-cta-button--outline .button-main,
.project-final-cta-button--outline .button-arrow {
  color: var(--c5);
  background-color: transparent;
  border: 1px solid rgba(255, 255, 255, 0.32);
}

.project-promo-banner-card {
  position: relative;
  overflow: hidden;
  min-height: max(460px, 620rem);
  background-color: var(--c1);
  border-radius: 0;
}

.project-promo-banner .wrapper {
  max-width: none;
  padding: 0;
}

.project-promo-banner-image {
  width: 100%;
  min-height: max(460px, 620rem);
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: 0;
}

.project-promo-banner-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    90deg,
    rgba(10, 28, 48, 0.9) 0%,
    rgba(10, 28, 48, 0.7) 26%,
    rgba(10, 28, 48, 0.28) 52%,
    rgba(10, 28, 48, 0.06) 76%,
    rgba(10, 28, 48, 0) 100%
  );
}

.project-promo-banner-content {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: max(24px, 24rem);
  padding: max(32px, 40rem);
}

.project-promo-banner-main {
  max-width: 70%;
  color: var(--c5);
  width: 100%;
}

.project-promo-banner-tag {
  display: inline-flex;
  align-items: center;
  min-height: max(22px, 26rem);
  padding: max(5px, 5rem) max(10px, 10rem);
  font-size: max(10px, 13rem);
  line-height: 1;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--c5);
  background-color: var(--c2);
  border-radius: max(3px, 3rem);
}

.project-promo-banner-tag.is-done {
  background-color: var(--c3);
}

.project-promo-banner-main .title {
  margin-top: max(14px, 16rem);
  color: var(--c5);
}

.project-promo-banner-text {
  margin-top: max(18px, 22rem);
  display: grid;
  gap: max(4px, 4rem);
  font-size: var(--f-b);
  line-height: 1.3;
}

.project-promo-banner-meta {
  margin-top: max(28px, 32rem);
  display: flex;
  flex-wrap: wrap;
  gap: max(10px, 10rem);
}

.project-promo-banner-meta-item {
  display: inline-flex;
  align-items: center;
  gap: max(8px, 8rem);
  min-height: max(38px, 42rem);
  padding: max(8px, 8rem) max(12px, 14rem);
  font-size: var(--f-s);
  line-height: 1;
  color: var(--c5);
  border: 1px solid rgba(255, 255, 255, 0.18);
  background-color: rgba(10, 28, 48, 0.35);
  border-radius: max(4px, 4rem);
}

.project-promo-banner-meta-item img {
  width: max(14px, 16rem);
  height: max(14px, 16rem);
  display: block;
}

.project-promo-banner-actions {
  margin-top: max(24px, 28rem);
  display: flex;
  flex-wrap: nowrap;
  gap: max(16px, 16rem);
}

.project-promo-banner-summary {
  width: min(100%, max(220px, 360rem));
  padding: max(22px, 24rem);
  color: var(--c1);
  background-color: rgba(255, 255, 255, 0.96);
  backdrop-filter: blur(8px);
  border-radius: max(8px, 8rem);
}

.project-promo-banner-summary-value {
  font-size: var(--f-xxl);
  line-height: 1;
  font-weight: 700;
}

.project-promo-banner-summary-title {
  font-size: var(--f-xl);
  line-height: 1.1;
  font-weight: 700;
}

.project-promo-banner-summary-text {
  margin-top: max(8px, 8rem);
  font-size: var(--f-s);
  line-height: 1.45;
  color: var(--c3);
}

.project-promo-banner-summary-divider {
  width: 100%;
  height: 1px;
  margin: max(18px, 20rem) 0;
  background-color: rgba(18, 58, 99, 0.12);
}

.project-plan-showcase-layout {
  display: grid;
  grid-template-columns: minmax(320px, 560rem) minmax(0, 1fr);
  grid-template-areas: "content media";
  gap: max(28px, 36rem);
  align-items: start;
}

.project-plan-showcase-layout--media-left {
  grid-template-columns: minmax(0, 1fr) minmax(320px, 560rem);
  grid-template-areas: "media content";
}

.project-plan-showcase-layout--media-right.project-plan-showcase-layout--image-bleed {
  margin-right: calc(50% - 50vw);
}

.project-plan-showcase-layout--media-left.project-plan-showcase-layout--image-bleed {
  margin-left: calc(50% - 50vw);
}

.project-plan-showcase-content {
  grid-area: content;
  padding: max(10px, 10rem) 0;
}

.project-plan-showcase-content .title {
  color: var(--c1);
}

.project-plan-showcase-text {
  margin-top: max(20px, 24rem);
  display: grid;
  gap: max(14px, 14rem);
  font-size: var(--f-s);
  line-height: 1.6;
  color: var(--c3);
}

.project-plan-showcase-features {
  margin-top: max(22px, 28rem);
  display: grid;
  gap: max(12px, 12rem);
}

.project-plan-showcase-feature {
  display: inline-flex;
  align-items: center;
  gap: max(12px, 12rem);
}

.project-plan-showcase-feature-index {
  width: max(22px, 22rem);
  height: max(22px, 22rem);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  font-size: max(12px, 20rem);
  line-height: 1;
  color: var(--c5);
  background-color: var(--c1);
}

.project-plan-showcase-feature-index.is-bullet {
  width: max(8px, 8rem);
  height: max(8px, 8rem);
  border-radius: 50%;
  background-color: var(--c2);
  font-size: 0;
}

.project-plan-showcase-feature-index.is-icon {
  width: max(18px, 50rem);
  height: max(18px, 50rem);
  background: transparent;
}

.project-plan-showcase-feature-index.is-icon img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
  border-radius: 0;
}

.project-plan-showcase-feature-label {
  font-size: var(--f-b);
  line-height: 1.4;
  color: var(--c1);
}

.project-plan-showcase-action {
  margin-top: max(20px, 24rem);
}

.project-plan-showcase-media {
  grid-area: media;
  min-width: 0;
}

.project-plan-showcase-media-card {
  position: relative;
  padding: 0;
}

.project-plan-showcase-media-card img {
  width: 100%;
  height: auto;
  display: block;
}

.project-construction-timeline-shell .title {
  color: var(--c1);
  text-align: center;
}

.project-construction-timeline-grid {
  --project-construction-timeline-gap: max(18px, 20rem);
  position: relative;
  margin-top: max(22px, 28rem);
  display: grid;
  grid-template-columns: repeat(
    var(--project-construction-timeline-columns),
    minmax(0, 1fr)
  );
  gap: var(--project-construction-timeline-gap);
  align-items: start;
}

.project-construction-timeline-grid--linked::before {
  position: absolute;
  top: max(15px, 18rem);
  left: calc(50% / var(--project-construction-timeline-columns));
  right: calc(50% / var(--project-construction-timeline-columns));
  height: 1px;
  content: "";
  background: repeating-linear-gradient(
    to right,
    rgba(37, 85, 186, 0.18) 0,
    rgba(37, 85, 186, 0.18) max(8px, 8rem),
    transparent max(8px, 8rem),
    transparent max(14px, 14rem)
  );
}

.project-construction-timeline-step {
  position: relative;
  min-width: 0;
  padding-top: max(4px, 4rem);
  display: grid;
  justify-items: center;
  gap: max(10px, 12rem);
  text-align: center;
}

.project-construction-timeline-step-marker {
  position: relative;
  z-index: 1;
  width: max(30px, 34rem);
  height: max(30px, 34rem);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: var(--f-s);
  line-height: 1;
  font-weight: 700;
  color: var(--c5);
  background-color: var(--c2);
  border-radius: 50%;
  box-shadow: 0 0 0 max(8px, 8rem) var(--c5);
}

.project-construction-timeline-step-media {
  width: 100%;
}

.project-construction-timeline-step-image {
  width: 100%;
  aspect-ratio: 1.45 / 1;
  object-fit: cover;
  display: block;
}

.project-construction-timeline-step-title {
  font-size: var(--f-b);
  color: var(--c1);
}

.project-realization-roles-shell .title {
  color: var(--c1);
  text-align: center;
}

.project-realization-roles-grid {
  position: relative;
  margin-top: max(24px, 30rem);
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: max(28px, 44rem);
  align-items: stretch;
}

.project-realization-roles-grid--paired::before {
  position: absolute;
  top: max(12px, 12rem);
  bottom: max(12px, 12rem);
  left: 50%;
  width: 1px;
  content: "";
  background: linear-gradient(
    180deg,
    rgba(37, 85, 186, 0) 0%,
    rgba(37, 85, 186, 0.2) 18%,
    rgba(37, 85, 186, 0.2) 82%,
    rgba(37, 85, 186, 0) 100%
  );
}

.project-realization-roles-grid--paired::after {
  position: absolute;
  top: 50%;
  left: 50%;
  width: max(4px, 4rem);
  height: max(4px, 4rem);
  content: "";
  background-color: rgba(37, 85, 186, 0.92);
  border-radius: 50%;
  transform: translate(-50%, -50%);
}

.project-realization-roles-item {
  min-width: 0;
  padding: max(10px, 12rem) 0;
  display: grid;
  gap: max(18px, 20rem);
  align-content: start;
}

.project-realization-roles-item--no-image {
  padding-top: max(20px, 24rem);
}

.project-realization-roles-item-media {
  width: 100%;
  min-height: max(68px, 82rem);
  display: flex;
  align-items: center;
}

.project-realization-roles-item-image {
  width: auto;
  max-width: min(100%, max(260px, 320rem));
  height: max(68px, 82rem);
  object-fit: contain;
  object-position: left center;
  display: block;
  border-radius: 0;
}

.project-realization-roles-item-title {
  font-size: var(--f-xl);
  color: var(--c1);
}

.project-realization-roles-item-text {
  margin-top: max(6px, 8rem);
  font-size: var(--f-b);
  line-height: 1.52;
  color: var(--c3);
}

.project-object-characteristics-shell .title {
  color: var(--c1);
}

.project-object-characteristics-grid {
  margin-top: max(18px, 30rem);
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: max(18px, 22rem) max(40px, 56rem);
  align-items: start;
}

.project-object-characteristics-grid--cols-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.project-object-characteristics-item {
  display: grid;
  grid-template-columns: max(50px, 50rem) minmax(0, 1fr);
  gap: max(10px, 12rem);
  align-items: center;
}

.project-object-characteristics-marker {
  width: max(20px, 50rem);
  height: max(20px, 50rem);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: var(--f-l);
  line-height: 1;
  color: var(--c5);
  background-color: var(--c1);
  border-radius: 50%;
}

.project-object-characteristics-label {
  font-size: var(--f-b);
  line-height: 1.5;
  font-weight: 600;
  color: var(--c1);
}

.project-object-overview-layout {
  display: grid;
  grid-template-columns: minmax(260px, 460rem) minmax(0, 1fr);
  gap: max(24px, 40rem);
  align-items: start;
}

.project-object-overview-layout--single {
  grid-template-columns: 1fr;
}

.project-object-overview-intro .title {
  color: var(--c1);
}

.project-object-overview-text {
  margin-top: max(18px, 20rem);
  display: grid;
  gap: max(10px, 12rem);
  font-size: var(--f-s);
  line-height: 1.6;
  color: var(--c3);
}

.project-object-overview-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: max(14px, 16rem);
  align-items: stretch;
}

.project-object-overview-item {
  min-height: max(94px, 112rem);
  padding: max(20px, 24rem);
  display: grid;
  grid-template-columns: max(30px, 36rem) minmax(0, 1fr);
  gap: max(14px, 16rem);
  align-items: start;
  border: 1px solid rgba(18, 58, 99, 0.08);
  background-color: rgba(255, 255, 255, 0.96);
  box-shadow: 0 max(8px, 10rem) max(18px, 22rem) rgba(35, 73, 158, 0.04);
  border-radius: max(8px, 8rem);
}

.project-object-overview-item--no-icon {
  grid-template-columns: 1fr;
}

.project-object-overview-item-icon {
  width: max(30px, 36rem);
  height: max(30px, 36rem);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.project-object-overview-item-icon img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
  border-radius: 0;
}

.project-object-overview-item-title {
  color: var(--c1);
}

.project-object-overview-item-text {
  margin-top: max(4px, 6rem);
  font-size: var(--f-s);
  line-height: 1.45;
  color: var(--c3);
}

.project-documents {
  padding-top: max(32px, 40rem);
}

.project-documents-layout {
  display: grid;
  grid-template-columns: minmax(280px, 520rem) minmax(0, 1fr);
  gap: max(28px, 40rem);
  align-items: stretch;
}

.project-documents-layout--single {
  grid-template-columns: minmax(0, 1fr);
}

.project-documents-main {
  padding-top: max(18px, 22rem);
}

.project-documents-main .title {
  max-width: max(280px, 420rem);
  color: var(--c1);
}

.project-documents-text {
  max-width: max(300px, 440rem);
  margin-top: max(20px, 28rem);
  display: grid;
  gap: max(18px, 26rem);
  font-size: var(--f-b);
  line-height: 1.55;
  color: var(--c3);
}

.project-documents-list-card {
  margin-top: max(26px, 34rem);
  padding: max(24px, 28rem);
  display: grid;
  gap: max(18px, 22rem);
  border-radius: max(8px, 8rem);
  border: 1px solid rgba(18, 58, 99, 0.08);
  background: linear-gradient(
    180deg,
    rgba(248, 250, 253, 0.86) 0%,
    rgba(255, 255, 255, 0.98) 100%
  );
  box-shadow: 0 max(10px, 10rem) max(28px, 28rem) rgba(35, 73, 158, 0.06);
}

.project-documents-item {
  display: grid;
  grid-template-columns: max(56px, 64rem) minmax(0, 1fr);
  gap: max(14px, 16rem);
  align-items: center;
}

.project-documents-item--no-icon {
  grid-template-columns: 1fr;
}

.project-documents-item-icon,
.project-documents-panel-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(18, 58, 99, 0.1);
  background: rgba(57, 115, 168, 0.04);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8);
}

.project-documents-item-icon {
  width: max(56px, 64rem);
  height: max(56px, 64rem);
  border-radius: 50%;
}

.project-documents-item-icon img,
.project-documents-panel-icon img {
  width: 58%;
  height: 58%;
  object-fit: contain;
  display: block;
  border-radius: 0;
}

.project-documents-item-title {
  font-size: var(--f-b);
  line-height: 1.25;
  font-weight: 600;
  color: var(--c1);
}

.project-documents-item-text {
  margin-top: max(6px, 6rem);
  font-size: var(--f-s);
  line-height: 1.5;
  color: rgba(63, 72, 82, 0.92);
}

.project-documents-panel {
  min-width: 0;
}

.project-documents-panel-card {
  min-height: max(560px, 720rem);
  padding: max(30px, 34rem);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  border-radius: max(8px, 8rem);
  border: 1px solid rgba(18, 58, 99, 0.08);
  background: linear-gradient(
    180deg,
    rgba(250, 251, 254, 0.84) 0%,
    rgba(255, 255, 255, 1) 100%
  );
  box-shadow: 0 max(12px, 12rem) max(32px, 32rem) rgba(35, 73, 158, 0.05);
}

.project-documents-panel-icon {
  width: max(100px, 120rem);
  height: max(100px, 120rem);
  border-radius: 50%;
}

.project-documents-panel-title {
  max-width: max(260px, 540rem);
  margin-top: max(28px, 34rem);
  font-size: var(--f-xxl);
  line-height: 1.14;
  font-weight: 600;
  color: var(--c1);
}

.project-documents-panel-text {
  max-width: max(260px, 420rem);
  margin-top: max(14px, 18rem);
  font-size: var(--f-b);
  line-height: 1.55;
  color: rgba(63, 72, 82, 0.92);
}

.featured-projects-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: max(20px, 20rem);
  margin-bottom: max(24px, 28rem);
}

.featured-projects-header .title {
  margin-bottom: 0;
}

.featured-projects-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: max(18px, 20rem);
  align-items: stretch;
}

.featured-projects-card {
  border: 1px solid rgba(18, 58, 99, 0.12);
}

.featured-projects-header .button {
  width: 100%;
  display: flex;
  justify-content: flex-end;
}

.featured-projects-header .title {
  color: var(--c1);
}

.footer {
  margin-top: auto;
  padding: max(36px, 44rem) 0 max(18px, 18rem);
  color: var(--c5);
  background-color: var(--c1);
}

.footer a {
  color: inherit;
  text-decoration: none;
  width: fit-content;
}

.footer-logo:before,
.footer-contact-item:before,
.footer-social-link:before {
  content: none;
}

.footer-main {
  display: grid;
  grid-template-columns: minmax(220px, 0.4fr) repeat(3, minmax(0, 0.2fr));
  gap: max(28px, 40rem);
  align-items: start;
}

.footer-brand {
  padding-top: max(6px, 6rem);
}

.footer-logo {
  max-width: max(170px, 300rem);
  display: inline-flex;
}

.footer-logo img {
  width: 100%;
  height: auto;
  display: block;
}

.footer-brand-text {
  max-width: max(320px, 400rem);
  margin-top: max(12px, 12rem);
  font-size: var(--f-s);
  color: var(--c5);
}

.footer-title {
  margin-bottom: max(16px, 16rem);
  font-size: var(--f-d);
  color: var(--c5);
}

.footer-menu-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(max-content, auto));
  gap: max(8px, 8rem) max(24px, 28rem);
}

.footer-contact-list,
.footer-social-list {
  display: grid;
  gap: max(12px, 12rem);
}

.footer-contact-item,
.footer-social-link {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: max(10px, 10rem);
  align-items: center;
  font-size: var(--f-s);
  line-height: 1.45;
}

.footer-contact-item span,
.footer-social-link span {
  position: relative;
  display: inline-block;
}

.footer-contact-item span:before,
.footer-social-link span:before {
  position: absolute;
  left: 0;
  bottom: 0;
  content: "";
  display: block;
  width: 0;
  height: 1rem;
  background: currentColor;
  transition: width 0.3s;
}

.footer-contact-item img {
  width: max(24px, 24rem);
  height: max(24px, 24rem);
  display: block;
}

.footer-social-link img {
  width: max(30px, 30rem);
  height: max(30px, 30rem);
  display: block;
}

.footer-bottom {
  margin-top: max(28px, 36rem);
  padding-top: max(12px, 14rem);
  border-top: 1px solid rgba(255, 255, 255, 0.24);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: max(16px, 16rem);
  font-size: max(12px, 13rem);
  line-height: 1.4;
  color: rgba(255, 255, 255, 0.82);
}

@media screen and (width>=16000px) {
  html {
    font-size: 1px;
  }
}

@media (hover: hover) and (pointer: fine) and (width>=1024px) {
  a {
    transition: all 0.4s;
  }

  a:hover::before {
    width: 100%;
  }

  .footer-contact-item:hover span:before {
    width: 100%;
  }

  .footer-social-link:hover span:before {
    width: 100%;
  }

  .contact-form-teaser-point:hover span:before {
    width: 100%;
  }

  .contact-form-teaser-point:hover::before {
    width: max(6px, 6rem);
  }

  .button-dark:hover .button-main,
  .button-dark:hover .button-arrow {
    background: var(--c7);
  }

  .button-outline:hover .button-main,
  .button-outline:hover .button-arrow {
    color: var(--c5);
    background: var(--c1);
    border-color: var(--c1);
  }

  .topbar-nav-menu li {
    transition: color 0.15s;
  }

  .button:hover .button-icon:before {
    transform: translate(110%, -110%);
  }

  .button:hover .button-icon:after {
    transform: translate(0, 0);
  }

  .slider-nav-button:hover {
    color: var(--slider-nav-hover-color);
    background-color: var(--slider-nav-hover-bg);
    border-color: var(--slider-nav-hover-border);
  }

  .project-card:hover .project-card-image {
    transform: scale(1.08);
  }

  .active-project-showcase-stage:hover .active-project-showcase-main-image {
    transform: scale(1.04);
  }

  .active-project-showcase-nav-button:hover {
    color: var(--c5);
    background-color: var(--c1);
    border-color: var(--c1);
  }

  .active-project-showcase-thumb:hover {
    opacity: 1;
  }
}

@media screen and (width<1024px) {
  html {
    font-size: 0.25vw;
  }

  .topbar {
    grid-template-columns: 1fr;
    justify-items: start;
  }

  .topbar-center,
  .topbar-right {
    display: none;
  }

  .hero-layout,
  .hero-slide,
  .hero-image {
    min-height: max(520px, 640rem);
    height: max(520px, 640rem);
  }

  .hero-content {
    align-items: flex-end;
  }

  .hero-block {
    max-width: 100%;
    padding: 0 0 max(88px, 120rem);
  }

  .hero-block h1 {
    font-size: var(--f-xxl);
  }

  .hero-text {
    max-width: 100%;
  }

  .hero-controls {
    right: max(16px, 20rem);
    bottom: max(16px, 20rem);
  }

  .company-overview-layout {
    grid-template-columns: 1fr;
  }

  .company-overview-intro,
  .company-overview-cards,
  .company-overview-layout > img {
    grid-column: auto;
    grid-row: auto;
  }

  .company-overview-cards {
    grid-template-columns: 1fr;
    gap: max(16px, 16rem);
  }

  .company-overview-card {
    padding: max(18px, 18rem) 0 0;
    border-left: 0;
    border-top: 1px solid rgba(18, 58, 99, 0.12);
  }

  .projects-overview-layout {
    grid-template-columns: 1fr;
  }

  .projects-overview-group-header {
    flex-direction: column;
    align-items: flex-start;
  }

  .projects-overview-group-header .button {
    margin-top: 0;
  }

  .projects-overview-cards {
    grid-template-columns: 1fr;
  }

  .about-person-layout {
    grid-template-columns: 1fr;
  }

  .about-person-image {
    order: -1;
  }

  .focus-areas-grid {
    grid-template-columns: 1fr;
  }

  .focus-area-card {
    grid-template-columns: 1fr;
  }

  .completed-objects-layout {
    grid-template-columns: 1fr;
  }

  .completed-objects-content {
    gap: max(8px, 8rem);
  }

  .completed-objects-controls {
    padding-top: max(20px, 24rem);
  }

  .project-build-steps-grid {
    grid-template-columns: 1fr;
  }

  .project-build-step-card:not(:last-child)::after {
    top: auto;
    right: 50%;
    bottom: max(-17px, -17rem);
    transform: translateX(50%) rotate(90deg);
  }

  .partners-showcase-card {
    grid-template-columns: 1fr;
    gap: max(18px, 20rem);
  }

  .partner-highlight-card,
  .partner-highlight-content {
    min-height: auto;
  }

  .partner-highlight-content {
    max-width: 100%;
    padding: max(20px, 20rem);
  }

  .partner-highlight-text {
    max-width: 100%;
  }

  .partner-highlight-meta {
    grid-template-columns: 1fr;
    padding-top: max(24px, 24rem);
  }

  .partner-highlight-meta-item {
    padding: max(14px, 14rem) 0 0;
  }

  .partner-highlight-meta-item:not(:first-child) {
    border-left: 0;
    border-top: 1px solid rgba(255, 255, 255, 0.4);
  }

  .partner-highlight-meta-item:first-child {
    padding-top: 0;
  }

  .partner-experience-layout {
    grid-template-columns: 1fr;
  }

  .partner-experience-stats {
    grid-template-columns: 1fr;
  }

  .partner-experience-stat,
  .partner-experience-media {
    border-left: 0;
    border-top: 1px solid rgba(18, 58, 99, 0.12);
  }

  .business-solutions-layout {
    grid-template-columns: 1fr;
  }

  .business-solutions-cards {
    grid-template-columns: 1fr;
  }

  .business-solutions-card {
    border-left: 0;
    border-top: 1px solid rgba(18, 58, 99, 0.12);
  }

  .why-work-with-us-layout {
    grid-template-columns: 1fr;
  }

  .realized-projects-slider-header {
    flex-direction: column;
    align-items: flex-start;
  }

  .active-project-showcase-layout {
    grid-template-columns: 1fr;
  }

  .active-project-showcase-top {
    flex-direction: column;
  }

  .active-project-showcase-detail {
    grid-template-columns: 1fr;
    gap: max(4px, 4rem);
  }

  .active-project-showcase-thumbs {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .consultation-cta-box {
    grid-template-columns: 1fr;
    justify-items: start;
  }

  .consultation-cta-action {
    width: 100%;
  }

  .contacts-map-layout {
    grid-template-columns: 1fr;
  }

  .contacts-map-frame {
    min-height: max(300px, 360rem);
  }

  .contact-form-teaser-layout,
  .contact-form-teaser-grid {
    grid-template-columns: 1fr;
  }

  .visit-cta-layout {
    grid-template-columns: 1fr;
  }

  .error-404-page-box {
    min-height: max(340px, 420rem);
    padding: max(28px, 30rem);
  }

  .error-404-page-actions {
    width: 100%;
    flex-direction: column;
  }

  .error-404-page-actions .button {
    width: 100%;
  }

  .project-final-cta-box {
    flex-direction: column;
    align-items: flex-start;
  }

  .project-final-cta-actions {
    width: 100%;
    margin-left: 0;
    justify-content: flex-start;
  }

  .project-final-cta-actions .button {
    width: 100%;
  }

  .project-promo-banner-card,
  .project-promo-banner-image {
    min-height: max(620px, 760rem);
  }

  .project-promo-banner-content {
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-end;
    padding: max(24px, 28rem);
  }

  .project-promo-banner-main {
    max-width: 100%;
  }

  .project-promo-banner-summary {
    width: 100%;
    max-width: max(260px, 320rem);
  }

  .project-object-gallery-lightbox {
    padding: max(16px, 16rem);
  }

  .project-object-gallery-lightbox-dialog {
    grid-template-columns: 1fr;
  }

  .project-object-gallery-lightbox-media {
    order: 1;
  }

  .project-object-gallery-lightbox-nav {
    position: absolute;
    top: 50%;
    z-index: 2;
    transform: translateY(-50%);
  }

  .project-object-gallery-lightbox-nav.js-lightbox-prev {
    left: max(10px, 10rem);
  }

  .project-object-gallery-lightbox-nav.js-lightbox-next {
    right: max(10px, 10rem);
  }

  .project-object-gallery-lightbox-image {
    max-height: 72vh;
  }

  .project-object-gallery-lightbox-close {
    top: max(10px, 10rem);
    right: max(10px, 10rem);
  }

  .project-plan-showcase-layout {
    grid-template-columns: 1fr;
    grid-template-areas:
      "content"
      "media";
  }

  .project-plan-showcase-layout--media-right.project-plan-showcase-layout--image-bleed,
  .project-plan-showcase-layout--media-left.project-plan-showcase-layout--image-bleed {
    margin-right: 0;
    margin-left: 0;
  }

  .project-plan-showcase-layout--image-bleed .project-plan-showcase-media {
    margin-right: calc(-1 * var(--wr));
    margin-left: calc(-1 * var(--wr));
  }

  .project-plan-showcase-content .title,
  .project-plan-showcase-text {
    max-width: 100%;
  }

  .project-construction-timeline-shell {
    padding: max(22px, 24rem);
  }

  .project-construction-timeline-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: max(14px, 16rem);
  }

  .project-construction-timeline-grid--linked::before {
    content: none;
  }

  .project-realization-roles-shell {
    padding: max(22px, 24rem);
  }

  .project-realization-roles-grid {
    grid-template-columns: 1fr;
    gap: max(20px, 24rem);
  }

  .project-realization-roles-grid--paired::before,
  .project-realization-roles-grid--paired::after {
    content: none;
  }

  .project-realization-roles-item {
    padding: 0;
  }

  .project-realization-roles-item + .project-realization-roles-item {
    padding-top: max(20px, 22rem);
    border-top: 1px solid rgba(18, 58, 99, 0.08);
  }

  .project-realization-roles-item-image {
    max-width: min(100%, max(220px, 260rem));
    height: max(56px, 68rem);
  }

  .project-object-characteristics-shell {
    padding: max(22px, 24rem);
  }

  .project-object-characteristics-grid {
    grid-template-columns: 1fr;
    gap: max(14px, 16rem);
  }

  .project-object-overview-shell {
    padding: max(22px, 24rem);
  }

  .project-object-overview-layout,
  .project-object-overview-grid {
    grid-template-columns: 1fr;
  }

  .project-object-overview-intro .title,
  .project-object-overview-text {
    max-width: 100%;
  }

  .project-documents-layout {
    grid-template-columns: 1fr;
  }

  .project-documents-main {
    padding-top: 0;
  }

  .project-documents-main .title,
  .project-documents-text {
    max-width: 100%;
  }

  .project-documents-panel-card {
    min-height: max(360px, 460rem);
  }

  .project-documents-item {
    grid-template-columns: max(48px, 56rem) minmax(0, 1fr);
  }

  .project-documents-item-icon {
    width: max(48px, 56rem);
    height: max(48px, 56rem);
  }

  .featured-projects-header {
    flex-direction: column;
    align-items: flex-start;
  }

  .featured-projects-grid {
    grid-template-columns: 1fr;
  }

  .footer-main {
    grid-template-columns: 1fr;
    gap: max(24px, 24rem);
  }

  .footer-menu-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .footer-bottom {
    flex-direction: column;
    align-items: flex-start;
  }
}
