@charset "UTF-8";
@import url("https://fonts.googleapis.com/css?family=Montserrat:100,300,400,700,800,900&display=swap");
:root {
  --primary: #fdfdfd;
  --secondary: #2a2a2a;
  --tertiary: #cccccc;
}

/*-- Pages & Parts -- */
.preloader {
  overflow: hidden;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
}
.preloader h1 {
  display: block;
  font-family: "Montserrat", sans-serif;
  font-weight: 300;
  font-size: 3em;
  color: var(--secondary);
  filter: blur(3px);
  opacity: 1;
  transition: all 0.5s;
  animation: shift 3.2s ease-in-out infinite alternate;
}

@keyframes shift {
  0%,
  40%,
  44%,
  58%,
  61%,
  65%,
  69%,
  73%,
  100% {
    transform: skewX(0deg);
  }
  41% {
    transform: skewX(10deg);
  }
  42% {
    transform: skewX(-10deg);
  }
  59% {
    transform: skewX(40deg) skewY(10deg);
  }
  60% {
    transform: skewX(-40deg) skewY(-10deg);
  }
  63% {
    transform: skewX(10deg) skewY(-5deg);
  }
  70% {
    transform: skewX(-50deg) skewY(-20deg);
  }
  71% {
    transform: skewX(10deg) skewY(-10deg);
    filter: blur(3px);
  }
}
header {
  height: 80px;
  width: 100%;
  z-index: 1000;
  position: relative;
}
header .row {
  height: 100%;
  align-items: center;
}
header a {
  display: inline-block;
}
header a img {
  height: 2.2rem;
}

.menu-section {
  position: absolute;
  right: 0;
  top: 50%;
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  transform: translateY(-50%);
  margin-top: 5px;
}
.menu-section .menu {
  display: inline-block;
  position: absolute;
  width: 26px;
  right: 0;
  transform: translate(-50%, -50%);
  font-size: 34px;
  color: var(--secondary);
  cursor: pointer;
  z-index: 2;
}
.menu-section .menu::before,
.menu-section .menu::after {
  position: absolute;
  transition: 0.4s ease;
  opacity: 0;
  pointer-events: none;
}
.menu-section .menu:before {
  content: "M      U";
  top: -60px;
  left: -130%;
  width: 120px;
}
.menu-section .menu:after {
  content: "N";
  top: 50px;
  left: 103%;
}
.menu-section .menu:hover::before,
.menu-section .menu:hover::after {
  top: -0.3em;
  opacity: 1;
  transition:
    0.2s ease,
    opacity 0.17s 0.03s ease-in;
}
.menu-section .menu.on:before,
.menu-section .menu.on:after {
  display: none;
}
.menu-section .menu.on .bar-1 {
  transform: rotate(45deg) translate(7px, 7px);
}
.menu-section .menu.on .bar-2 {
  opacity: 0;
}
.menu-section .menu.on .bar-3 {
  transform: rotate(-45deg) translate(7px, -7px);
}

.bar-1,
.bar-2,
.bar-3 {
  height: 2px;
  backface-visibility: hidden;
  -moz-transition-duration: 0.4s;
  -o-transition-duration: 0.4s;
  -webkit-transition-duration: 0.4s;
  transition-duration: 0.4s;
  background: var(--secondary);
  margin: 0 auto 8px;
  transition: transform 0.4s ease;
}

/*--Navigation block-- */
.main-menu {
  position: fixed;
  display: none;
  top: 0;
  right: 0;
  left: 0;
  bottom: 60px;
  z-index: 999;
  overflow: hidden;
  padding-top: 80px;
  background-color: #f7f7f7;
}
.main-menu > .row,
.main-menu > .row *[class*="col"] {
  height: 100%;
}

.nav-menu {
  line-height: 6rem;
  display: flex;
  justify-content: flex-end;
  margin-right: 10rem;
  align-items: center;
  height: 100%;
  text-align: right;
  position: relative;
  z-index: 5;
}

.main-menu .nav-menu {
  background: #fff;
}
.nav-menu li {
  list-style: none;
}
.nav-menu a {
  font-size: 3.6rem;
  text-decoration: none;
  color: var(--secondary);
  transition: 0.5s;
}
.nav-menu a:hover {
  font-size: 5.2rem;
}

.example {
  margin: 0 auto;
  position: relative;
}

.bg-menu {
  opacity: 0.8;
}

.menu-parallax-stage {
  position: relative; /* stacking context here */
  height: 100%;
  min-height: calc(100vh - 140px); /* menu screen */
  overflow: hidden; /* so layers don't spill past left */
}
.menu-parallax-stage .row {
  height: 100%;
  min-height: 100vh;
}

.menu-parallax-stage .col-8 {
  position: relative; /* context for absolute .parallax */
  min-height: 100vh;
}

.parallax {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
  margin: 0;
  overflow: hidden;
  text-indent: -999px;
  --frame-scale: 1;
}
.parallax:first-child {
  width: 100%;
  height: 88vh;
}
/* base */
.parallax .level {
  position: absolute;
  display: block;
  pointer-events: none !important;
  background-repeat: no-repeat;
}

.parallax .level .level-inner {
  position: absolute;
  inset: 0;
  background-position: center;
  background-repeat: no-repeat;
  background-size: inherit;
  transform: translate3d(0, 0, 0);
}

/* canvas */
.parallax .level.canvas {
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
}

.parallax .level.canvas .level-inner {
  background-position: center center;
  background-size: cover;
}

/* overlays = framed pictures */
.parallax .level:not(.canvas) {
  z-index: 2;

  width: calc(clamp(140px, 16vw, 260px) * var(--frame-scale));
  height: calc(clamp(110px, 13vw, 210px) * var(--frame-scale));

  border: 0;
  border-radius: 0;
  box-shadow: 0 14px 40px rgba(0, 0, 0, 0.16);

  opacity: 0;
  transition: opacity 420ms ease;
}

.parallax.enhanced.is-ready .level:not(.canvas) {
  opacity: 1;
}

.parallax .level:not(.canvas) .level-inner {
  background-size: cover;
}

/* positions preset — Classic layout */
.parallax[data-layout="classic"] .level[data-level="1"] {
  top: 7%;
  left: 6%;
}
.parallax[data-layout="classic"] .level[data-level="2"] {
  top: 18%;
  left: 35%;
  width: calc(clamp(90px, 10vw, 160px) * var(--frame-scale));
  height: calc(clamp(70px, 8vw, 120px) * var(--frame-scale));
  opacity: 0.92;
}
.parallax[data-layout="classic"] .level[data-level="3"] {
  top: 6%;
  left: 58%;
  width: calc(clamp(220px, 24vw, 380px) * var(--frame-scale));
  height: calc(clamp(170px, 20vw, 300px) * var(--frame-scale));
}

.parallax[data-layout="classic"] .level[data-level="4"] {
  top: 38%;
  left: 6%;
  height: calc(clamp(170px, 20vw, 320px) * var(--frame-scale));
}
.parallax[data-layout="classic"] .level[data-level="5"] {
  top: 34%;
  left: 30%;
  width: calc(clamp(220px, 24vw, 380px) * var(--frame-scale));
  height: calc(clamp(210px, 24vw, 420px) * var(--frame-scale));
}

.parallax[data-layout="classic"] .level[data-level="6"] {
  top: 42%;
  left: 73%;
  width: calc(clamp(90px, 10vw, 160px) * var(--frame-scale));
  height: calc(clamp(90px, 10vw, 160px) * var(--frame-scale));
  opacity: 0.9;
}

.parallax[data-layout="classic"] .level[data-level="7"] {
  top: 73%;
  left: 6%;
}
.parallax[data-layout="classic"] .level[data-level="8"] {
  top: 78%;
  left: 36%;
}
.parallax[data-layout="classic"] .level[data-level="9"] {
  top: 72%;
  left: 62%;
}

/* Dense layout - more images closer */
.parallax[data-layout="dense"] .level[data-level="1"] {
  top: 5%;
  left: 4%;
  width: calc(clamp(120px, 14vw, 220px) * var(--frame-scale));
  height: calc(clamp(95px, 11vw, 175px) * var(--frame-scale));
}
.parallax[data-layout="dense"] .level[data-level="2"] {
  top: 12%;
  left: 28%;
  width: calc(clamp(100px, 12vw, 180px) * var(--frame-scale));
  height: calc(clamp(80px, 9vw, 150px) * var(--frame-scale));
  opacity: 0.92;
}
.parallax[data-layout="dense"] .level[data-level="3"] {
  top: 4%;
  left: 52%;
  width: calc(clamp(200px, 22vw, 360px) * var(--frame-scale));
  height: calc(clamp(155px, 18vw, 290px) * var(--frame-scale));
}
.parallax[data-layout="dense"] .level[data-level="4"] {
  top: 32%;
  left: 4%;
  height: calc(clamp(155px, 18vw, 300px) * var(--frame-scale));
}
.parallax[data-layout="dense"] .level[data-level="5"] {
  top: 28%;
  left: 26%;
  width: calc(clamp(200px, 22vw, 360px) * var(--frame-scale));
  height: calc(clamp(190px, 22vw, 400px) * var(--frame-scale));
}
.parallax[data-layout="dense"] .level[data-level="6"] {
  top: 36%;
  left: 68%;
  width: calc(clamp(100px, 12vw, 180px) * var(--frame-scale));
  height: calc(clamp(100px, 12vw, 180px) * var(--frame-scale));
  opacity: 0.9;
}
.parallax[data-layout="dense"] .level[data-level="7"] {
  top: 68%;
  left: 4%;
}
.parallax[data-layout="dense"] .level[data-level="8"] {
  top: 74%;
  left: 32%;
}
.parallax[data-layout="dense"] .level[data-level="9"] {
  top: 68%;
  left: 58%;
}

/* Minimal layout - 3-4 images, lots of space */
.parallax[data-layout="minimal"] .level[data-level="1"] {
  top: 15%;
  left: 10%;
  width: calc(clamp(180px, 20vw, 320px) * var(--frame-scale));
  height: calc(clamp(140px, 16vw, 260px) * var(--frame-scale));
}
.parallax[data-layout="minimal"] .level[data-level="2"] {
  top: 25%;
  left: 50%;
  width: calc(clamp(200px, 22vw, 360px) * var(--frame-scale));
  height: calc(clamp(160px, 18vw, 300px) * var(--frame-scale));
}
.parallax[data-layout="minimal"] .level[data-level="3"] {
  top: 60%;
  left: 15%;
  width: calc(clamp(220px, 24vw, 380px) * var(--frame-scale));
  height: calc(clamp(170px, 20vw, 320px) * var(--frame-scale));
}
.parallax[data-layout="minimal"] .level[data-level="4"] {
  top: 65%;
  left: 55%;
  width: calc(clamp(180px, 20vw, 320px) * var(--frame-scale));
  height: calc(clamp(140px, 16vw, 260px) * var(--frame-scale));
}
.parallax.enhanced {
  background: none;
}
.parallax.enhanced:first-child {
  background: none;
  cursor: default;
}

/*--End of navigation block-- */
.home-main .swiper-slide.swiper-slide-active .slider-image-right {
  background-color: transparent;
  filter: unset;
}
.home-main .swiper-container-vertical > .swiper-pagination-bullets {
  right: 30vw;
  left: auto;
}
.home-main
  .swiper-container-vertical
  > .swiper-pagination-bullets:not(.works-list)
  .swiper-pagination-bullet-active {
  left: 2rem;
  display: none;
}
.home-main
  .swiper-container-vertical
  > .swiper-pagination-bullets
  .swiper-pagination-bullet {
  position: relative;
  right: -4rem;
}
.home-main .swiper-slide .swiper-image {
  width: 100%;
  position: absolute;
  background-color: transparent;
  filter: unset;
}
.home-main .swiper-slide .image {
  opacity: 0;
}
.home-main .swiper-slide.swiper-slide-active {
  display: block;
}
.home-main .swiper-slide.swiper-slide-active .image {
  clip: rect(0, 68vw, 100vh, 0);
  opacity: 1;
}
.home-main .swiper-slide.swiper-slide-active .content h1 {
  transform: translateY(0);
  opacity: 1;
  transition-delay: 1s;
}
.home-main .swiper-slide.swiper-slide-active .content .quotation-block {
  opacity: 1;
}
.home-main .swiper-slide.swiper-slide-active .content .quotation-block p {
  transform: translateY(0);
  opacity: 1;
  transition-delay: 1.2s;
  margin-top: 2.2rem;
}
.home-main .swiper-slide.swiper-slide-active .content .link-line {
  transform: translateY(0);
  opacity: 1;
  transition-delay: 1.4s;
}

.bg-content {
  border-bottom: 1.2rem solid var(--primary);
  box-shadow:
    2rem 0 0 0 var(--primary),
    -3rem 0 0 0 var(--primary);
  border-right-width: 0;
  border-left-width: 3.4rem;
  background-color: var(--primary);
}

.image {
  position: absolute;
  top: 0;
  left: 0;
  right: 30vw;
  height: 100%;
  overflow: hidden;
  clip: rect(0, 80vw, 50vh, 80vw);
  transition: clip 0.8s cubic-bezier(0.53, 0.03, 0.39, 0.88);
  will-change: clip;
  display: flex;
  justify-content: center;
  align-items: center;
}
.image img {
  height: auto;
  width: 115%;
}

.content {
  position: absolute;
  top: 0;
  right: 3rem;
  bottom: 0;
  left: 30vw;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.content h1 {
  transform: translateY(-30%);
  opacity: 0;
  margin-top: auto;
  margin-bottom: 6rem;
  text-align: right;
  transition:
    transform 0.5s,
    opacity 0.5s;
  margin-left:0;
  will-change: transform, opacity;
  font-weight: 600;
  font-size: clamp(6rem, 12vw, 12rem);
  line-height: clamp(5rem, 10vw, 10rem);
  padding: 0 clamp(12px, 2vw, 20px);
  background-clip:text;
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-image: var(--concrete-headline-clip);
  background-repeat: no-repeat;
  background-size: cover;
  letter-spacing: -0.5rem;
}
.content .quotation-block {
  width: calc(28vw - 6rem);
  margin: 0 3rem auto 0;
  opacity: 0;
}
.content .quotation-block p {
  padding-right: 15px;
  transform: translateY(-30%);
  transition:
    transform 0.5s,
    opacity 0.5s;
  will-change: transform, opacity;
  margin: 0;
}
.content .quotation-block .link-line {
  transform: translateY(-30%);
  transition:
    transform 0.5s,
    opacity 0.5s;
  will-change: transform, opacity;
  margin: 3vh 0 2rem 0;
}

.home-slider-nav {
  position: absolute;
  bottom: 2rem;
  right: 30vw;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  z-index: 2;
  list-style: none;
  margin: 0 -2rem 0 0;
  padding: 0;
}
.home-slider-nav li {
  background: rgba(80, 80, 80, 0.38);
  width: 2rem;
  height: 22px;
  display: inline-block;
  margin-top: 8px;
  cursor: pointer;
}
.home-slider-nav li.current {
  width: 4rem;
  cursor: default;
  background:#dfd8d8b0 !important;
}

.news-main .home-slider-nav li, .works-main .home-slider-nav li {
  background: #b8b6b661;
}

.about-image-one {
  background-image: url(../img/about-img/about-1.jpg);
}

.about-image-three {
  background-image: url(../img/about-img/about-2.jpg);
}

.about-image-five {
  background-image: url(../img/about-img/about-3.jpg);
}

.about-bg {
  background-color: var(--primary);
}
.about-bg.slider-image-left {
  filter: grayscale(0%);
  transition: all 1s linear;
  transition-delay: 1s;
}
.about-bg.swiper-image-inner.slider-image-right {
  transition: all 1s linear;
  transition-delay: 1s;
  background-blend-mode: multiply;
}
.about-bg.slider-image-right {
  padding: 5rem;
}
.about-bg .swiper-wrap-text {
  top: 4rem;
}

.works-main .link-line {
  position: absolute;
  bottom: 2rem;
  left: 5rem;
  color: #ffffff;
  z-index: 300;
}
.works-main .link-line:after {
  opacity: 1;
  background: #ffffff;
}
.works-main .swiper-slide.swiper-slide-active .swiper-image-left {
  filter: grayscale(0%) brightness(60%);
}
.works-main .swiper-wrap-text {
  left: 10rem;
}

.gallery-main {
  max-height: calc(100vh - 140px);
  min-height: 0;
}

.gallery-wrapper {
  position: relative;
  height: 100%;
}
.gallery-wrapper .gallery-grid {
  overflow: auto;
}
.gallery-wrapper .gallery-grid:after {
  content: "";
  display: block;
  clear: both;
}
.gallery-wrapper .gallery-grid-sizer {
  width: 25%;
}
.gallery-wrapper .gallery-grid-wrapper {
  width: 100%;
}
.gallery-wrapper .gallery-grid-wrapper img {
  width: 100%;
  height: auto;
}
.gallery-wrapper .gallery-grid-item {
  width: calc(25% - 20px);
  margin: 0 10px 20px;
}
.gallery-wrapper .gallery-grid-item:hover {
  cursor: pointer;
}
.gallery-wrapper .gallery-grid-item img {
  display: block;
  max-width: 100%;
}
.gallery-wrapper .gallery-grid-item.gallery-grid-item__expanded {
  width: 66.66%;
  z-index: 2;
}
.gallery-wrapper .tabs.is-boxed.is-fullwidth {
  bottom: 20px;
}
.gallery-wrapper .gallery-title {
  position: absolute;
  top: 0;
  left: -2.4rem;
  padding: 0;
  font-weight: 300;
  opacity: 0.8;
  font-size: 1.6rem;
  -webkit-writing-mode: vertical-rl;
  writing-mode: tb-rl !important;
  transform: scale(-1, -1) !important;
}
.gallery-wrapper nav.tabs {
  padding: 0 0 20px;
  caret-color: transparent;
}
.gallery-wrapper nav.tabs ul {
  margin: 0;
  padding: 0;
}
.gallery-wrapper nav.tabs li {
  font-size: 2rem;
  padding: 0 1rem;
  list-style: none;
  display: inline-block;
  cursor: pointer;
  transition: 0.5s;
}
.gallery-wrapper nav.tabs li:hover {
  font-size: 3rem;
}
.gallery-wrapper nav.tabs li.is-active {
  font-size: 3rem;
}
.gallery-wrapper nav.tabs a,
.gallery-wrapper nav.tabs a:visited {
  color: var(--secondary);
  text-decoration: none;
}
.gallery-wrapper nav.tabs a:hover,
.gallery-wrapper nav.tabs li.is-active a {
  color: var(--secondary);
  text-decoration: none;
}
.gallery-wrapper nav.tabs a:focus,
.gallery-wrapper nav.tabs a:active {
  outline: none;
}

.exhibitions-wrapper {
  height: 100%;
  width: 100%;
  overflow-y: auto;
  overflow-x: hidden;
  position: relative;
}
.exhibitions-wrapper.item_open .close {
  opacity: 1;
  visibility: visible;
  z-index: 999;
  right: 2rem;
  top: 2rem;
  -webkit-transition:
    opacity 0.25s ease,
    right 0.3s ease-in-out,
    top 0.25s ease;
  -moz-transition:
    opacity 0.25s ease,
    right 0.3s ease-in-out,
    top 0.25s ease;
  transition:
    opacity 0.25s ease,
    right 0.3s ease-in-out,
    top 0.25s ease;
}
.exhibitions-wrapper .port.show p {
  opacity: 1;
  transform: unset;
  margin-left: 0;
}
.exhibitions-wrapper img {
  height: 100%;
  width: 100%;
  padding: 0;
  margin: 0;
}
.exhibitions-wrapper p {
  transition: all 0.6s linear;
}
.exhibitions-wrapper ul {
  position: relative;
}
.exhibitions-wrapper ul li {
  float: left;
  padding: 0 10px 20px;
  overflow: hidden;
  width: calc(100% / 4);
  position: relative;
}
.exhibitions-wrapper ul li a {
  display: block;
  position: relative;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  line-height: 0;
  overflow: hidden;
}
.exhibitions-wrapper ul li a:before {
  height: 100%;
  width: 100%;
  position: absolute;
  background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMiIgaGVpZ2h0PSIyMiIgdmlld0JveD0iMCAwIDIyIDIyIj48cGF0aCBkPSJNMTYsMjJWMjBoNFYxNmgydjZaTTAsMjJWMTZIMnY0SDZ2MlptMTAtNlYxMkg2VjEwaDRWNmgydjRoNHYySDEydjRaTTIwLDZWMkgxNlYwaDZWNlpNMCw2VjBINlYySDJWNloiIGZpbGw9IiM3MDcwNzAiLz48L3N2Zz4=)
    center no-repeat;
  content: "";
  opacity: 0;
  z-index: 1;
  -webkit-transition: all 0.3s linear;
  -moz-transition: all 0.3s linear;
  transition: all 0.3s linear;
}
.exhibitions-wrapper ul li a:after {
  position: absolute;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(242, 242, 242, 0.85);
  content: "";
  opacity: 0;
  -webkit-transition: all 0.3s linear;
  -moz-transition: all 0.3s linear;
  transition: all 0.3s linear;
}
.exhibitions-wrapper ul li a:hover:after,
.exhibitions-wrapper ul li a:hover:before {
  opacity: 1;
}
.exhibitions-wrapper .port {
  position: fixed;
  right: 2rem;
  top: 80px;
  left:2rem;
  bottom: 60px;
  overflow: auto;
  background: var(--primary);
  z-index: 103;
  -webkit-transform: translateY(-100%);
  transform: translateY(-100%);
  -webkit-transition: all 0.5s ease-in-out;
  -moz-transition: all 0.5s ease-in-out;
  transition: all 0.5s ease-in-out;
  visibility: hidden; 
  padding: 2rem 0;
}
.exhibitions-wrapper .port.show {
  display: flex;
  flex-direction: column;
  visibility: visible;
  -webkit-transform: translateY(0%);
  transform: translateY(0%);
  -webkit-transition: all 0.4s ease-in-out;
  -moz-transition: all 0.4s ease-in-out;
  transition: all 0.4s ease-in-out;
}
.exhibitions-wrapper .port .img-exhibitions {
  max-width: 40vw;
  max-height: 80vh;
}
.exhibitions-wrapper .port .img-exhibitions img {
  width: auto;
  max-height: 97%;
  max-width: 100%;
  height: auto;
}
.exhibitions-wrapper .port .description {
  padding: 4rem 8rem;
  flex: 1;
  max-width: 60vw;
}
.exhibitions-wrapper .port h1 {
  font-size: 4rem;
  line-height: 5rem;
  margin-right: 0;
  margin-bottom: 4.2rem;
  font-weight: 300;
}
.exhibitions-wrapper .port > * {
  opacity: 1;
  -webkit-transition: all 0.5s linear;
  -moz-transition: all 0.5s linear;
  transition: all 0.5s linear;
  margin-bottom: 3rem;
  flex: 1;
  max-height: 100%;
}
.exhibitions-wrapper .close {
  display: block;
  width: 25px;
  height: 25px;
  min-width: 25px;
  min-height: 25px;
  position: absolute;
  right: -4.6rem;
  top: 1rem;
  opacity: 0;
  visibility: hidden;
  z-index: 1004;
  background-size: 100% 100%;
  background-position: center;
  cursor: pointer;
  text-indent: -9999px;
  overflow: hidden;
  border: 0;
  -webkit-transition:
    opacity 0.2s ease,
    visibility 0.2s ease,
    right 0.3s ease-in-out,
    top 0.25s ease;
  -moz-transition:
    opacity 0.2s ease,
    visibility 0.2s ease,
    right 0.3s ease-in-out,
    top 0.25s ease;
  transition:
    opacity 0.2s ease,
    visibility 0.2s ease,
    right 0.3s ease-in-out,
    top 0.25s ease;
}
.exhibitions-wrapper .close:hover {
  opacity: 0.85;
}
.exhibitions-wrapper .close:focus {
  opacity: 0.85;
  outline: 2px solid var(--secondary, #707070);
  outline-offset: 2px;
}

.news-main {
  /*---News img--- */
  /*---End of news img--- */
}
.news-main div[class^="slider"] p {
  margin: 0 0 3rem 0;
}
.news-main .slider-news-left {
  filter: grayscale(0%) brightness(0.8);
  transition: all 1s linear;
  transition-delay: 1s;
}
.news-main .swiper-wrap-text {
  overflow: auto;
}
.news-main .swiper-slide.swiper-slide-active .slider-news-left {
  filter: grayscale(10%) brightness(0.5);
}
.news-main .swiper-image-inner.slider-news-right {
  filter: grayscale(0%) brightness(0.8);
  transition: all 1s linear;
  transition-delay: 1s;
  background-blend-mode: multiply;
}
.news-main .swiper-slide.swiper-slide-active .slider-news-right {
  filter: grayscale(10%) brightness(0.5);
}
.news-main .news-image-one {
  background-image: url(../img/news-img/news-1.jpg);
}
.news-main .news-image-two {
  background-image: url(../img/news-img/news-2.jpg);
}
.news-main .news-image-three {
  background-image: url(../img/news-img/news-3.jpg);
}
.news-main .news-image-four {
  background-image: url(../img/news-img/news-4.jpg);
}
.news-main .news-image-five {
  background-image: url(../img/news-img/news-5.jpg);
}
.news-main .news-image-six {
  background-image: url(../img/news-img/news-6.jpg);
}
.news-main .news-data {
  bottom: 0px;
  position: absolute;
  background: var(--primary);
  padding: 2rem 4.4rem;
  z-index: 10;
}
.news-main .news-data p {
  color: #ffffff;
}
.news-main .swiper-nav-wrapper {
  bottom: 2rem;
}
.news-main .swiper-nav-wrapper * {
  color: #ffffff;
}
.news-main .swiper-nav-wrapper .swiper-button-next:after,
.news-main .swiper-nav-wrapper .swiper-button-next:before,
.news-main .swiper-nav-wrapper .swiper-button-prev:after,
.news-main .swiper-nav-wrapper .swiper-button-prev:before {
  border-bottom-color: #ffffff;
}
.news-main h2 {
  color: #ffffff;
  margin-bottom: 2rem;
  margin-top: 0.8rem;
  line-height: 3rem;
}

h1.title {
  font:
    600 5rem/6.2rem "Montserrat",
    sans-serif;
  margin-bottom: 2rem;
  color: #c3c3c3;
}

.wrap-form, .wrap-form .entry-content, .contact-right 
{
  background:#ffffff;
}

.contact-right {
  padding: 4rem 4rem 0 4rem;
}

#feedback-form [required] {
  width: 100%;
  box-sizing: border-box;
  font-size: 18px;
  padding: 15px;
}
#feedback-form [required]:focus {
  outline: none;
  transition: 0.2s linear;
}
#feedback-form input,
#feedback-form textarea {
  font-family: "Montserrat", sans-serif;
  font-weight: 300;
  background-color: var(--primary);
  color: var(--secondary);
}
#feedback-form input:focus,
#feedback-form textarea:focus {
  background-color: rgba(255, 255, 255, 0.4);
  color: var(--secondary);
}
#feedback-form input {
  height: 50px;
}
#feedback-form textarea {
  border: 1px solid var(--secondary);
  resize: none;
  height: 33vh;
}
#feedback-form [type="submit"] {
  padding: 17px 0 15px;
  width: 200px;
  background: var(--primary);
  color: var(--secondary);
  font-size: 0.9em;
  font-weight: 400;
  text-transform: uppercase;
  margin: 3rem auto 0;
  cursor: pointer;
  transition: All 0.4s ease;
  letter-spacing: 1.2px;
  border: 1px solid var(--secondary);
  display: block;
}
#feedback-form [type="submit"]:hover {
  background: rgba(255, 255, 255, 0.4);
  color: #000000;
}

::placeholder {
  color: var(--secondary);
}

::-ms-input-placeholder {
  color: #ffffff;
}

::-ms-input-placeholder {
  color: #ffffff;
}

input {
  outline: none;
}

input:-webkit-autofill {
  -webkit-box-shadow: inset 0 0 0 70px #ffffff !important;
}

.form-group {
  min-height: 75px;
  margin-top: 2rem;
}

/*----------Elastic input---------- */
.inp {
  position: relative;
  margin: auto;
  width: 100%;
  max-width: 280px;
  cursor: pointer;
  display: inline-block;
}
.inp .label {
  position: absolute;
  top: 50%;
  left: 0;
  font-size: 18px;
  color: var(--secondary);
  font-weight: 500;
  transform-origin: 0 0;
  transition: all 0.2s ease;
}
.inp svg {
  position: absolute;
  left: 0;
  bottom: -1px;
  height: 26px;
  fill: none;
}
.inp svg path {
  stroke: var(--secondary);
  stroke-width: 2;
}
.inp svg path d {
  transition: all 0.2s ease;
}
.inp input {
  -webkit-appearance: none;
  width: 100%;
  border: 0;
  padding: 12px 0;
  height: 48px;
  border-radius: 0;
  transition: all 0.15s ease;
}
.inp input:not(:placeholder-shown) + span {
  transform: translateY(-26px) scale(0.75);
}
.inp input:focus {
  outline: none;
}
.inp input:focus + span {
  transform: translateY(-44px) scale(0.75);
  transition-delay: 0.1s;
}
.inp input:focus + span + svg path {
  animation: elasticInput 0.4s ease forwards;
}
.inp:after {
  content: "";
  display: inline-block;
  position: absolute;
  right: 0;
  bottom: -1px;
  left: 120px;
  height: 0;
  border-bottom: 1px solid var(--secondary);
}

@-moz-keyframes elasticInput {
  50% {
    d: path("M2,2 C21,17 46,25 74,25 C102,25 118,25 120,25");
  }
}
@-webkit-keyframes elasticInput {
  50% {
    d: path("M2,2 C21,17 46,25 74,25 C102,25 118,25 120,25");
  }
}
@-o-keyframes elasticInput {
  50% {
    d: path("M2,2 C21,17 46,25 74,25 C102,25 118,25 120,25");
  }
}
@keyframes elasticInput {
  50% {
    d: path("M2,2 C21,17 46,25 74,25 C102,25 118,25 120,25");
  }
}
/*------------End of elastic input----------- */
/*------------End of contact form block----------- */
/*------------Block map & address----------- */
.wrap-map {
  height: calc(100vh - 140px);
  display: flex;
  background-color: #000000;
  position: relative;
  z-index: 1;
  animation: showDiv 0.6s forwards;
}
.wrap-map iframe {
  opacity: 0.9;
  width: 100%;
  border: 0;
  pointer-events: auto;
  position: relative;
  z-index: 2;
}

.wrap-form {
  position: relative;
  z-index: 3;
  margin-top: 50px;
}

.contact-main .container {
  position: relative;
  z-index: 1;
}

@keyframes showDiv {
  0%,
  96% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
/*------------end of block map & address----------- */
footer {
  opacity: 0.7;
  height: 60px;
  min-height: 60px;
  display: flex;
  align-items: center;
}

.text-copy {
  font-size: 15px;
}

.social-link {
  display: inline-block;
  width: 25px;
  height: 25px;
  margin: 0 0 0 16px;
}
.social-link img {
  width: 25px;
  height: auto;
}

/*-- Plugins styles -- */
.slider-relative {
  position: relative;
  height: calc(100vh - 140px);
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
}

.swiper-container {
  height: 100%;
  width: 100%;
  margin: 0 auto;
  position: relative;
  overflow: hidden;
  z-index: 1;
}

.swiper-wrapper {
  position: relative;
  width: 100%;
  height: 100%;
  z-index: 1;
  display: flex;
  -ms-transition-property: -ms-transform;
  transition-property: transform;
  box-sizing: content-box;
}

.swiper-slide {
  -webkit-flex-shrink: 0;
  -ms-flex: 0 0 auto;
  flex-shrink: 0;
  width: 100%;
  height: 100%;
  position: relative;
  overflow: hidden;
  display: flex;
}

.swiper-bg {
  background-color: #000000;
  opacity: 0.5;
}

.swiper-image {
  width: 50%;
  height: 100%;
  position: relative;
}

.swiper-image-inner {
  background-size: cover;
  background-position: center center;
  display: flex;
  flex-direction: column;
  justify-content: start;
  width: 100%;
  height: 100%;
  background-blend-mode: overlay;
  position: relative;
}

.swiper-nav-wrapper {
  position: absolute;
  right: 5rem;
  bottom: 2rem;
  text-transform: lowercase;
  z-index: 20;
}
.swiper-nav-wrapper * {
  position: static;
  color: #000000;
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  width: auto;
  height: auto;
  margin-top: 0 !important;
}
.swiper-nav-wrapper *:hover {
  opacity: 0.8;
}
.swiper-nav-wrapper .swiper-button-prev {
  margin-bottom: 20px;
  margin-right: 100%;
  padding-left: 5rem;
}
.swiper-nav-wrapper .swiper-button-prev:before {
  left: 0;
  content: "";
  display: block;
  border-bottom: 1px solid #000000;
  width: 4rem;
  right: 0;
  position: absolute;
  transition: all 0.6s cubic-bezier(0.215, 0.61, 0.355, 1);
}
.swiper-nav-wrapper .swiper-button-prev:hover:before {
  width: 2rem;
}
.swiper-nav-wrapper .swiper-button-next {
  float: right;
  padding-right: 5rem;
}
.swiper-nav-wrapper .swiper-button-next:before {
  content: "";
  display: block;
  border-bottom: 1px solid #000000;
  width: 4rem;
  margin-left: 1rem;
  right: 0;
  position: absolute;
  transition: all 0.6s cubic-bezier(0.215, 0.61, 0.355, 1);
}
.swiper-nav-wrapper .swiper-button-next:hover:before {
  width: 2rem;
}
.swiper-nav-wrapper .swiper-button-prev:after {
  font-size: 12px;
  left: 0;
  position: absolute;
}
.swiper-nav-wrapper .swiper-button-next:after {
  font-size: 12px;
  right: 0;
  position: absolute;
}

.swiper-pagination {
  position: absolute;
  text-align: center;
  -webkit-transition: 300ms;
  -moz-transition: 300ms;
  -o-transition: 300ms;
  transition: 300ms;
  -webkit-transform: translate3d(0, 0, 0);
  -ms-transform: translate3d(0, 0, 0);
  -o-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
  z-index: 10;
}

.swiper-wrap-text {
  position: absolute;
  left: 5rem;
  top: 9rem;
  right: 5rem;
  bottom: 8rem;
  display: flex;
  flex-direction: column;
}
.swiper-wrap-text h1 {
  font:
    600 5rem/6.2rem "Montserrat",
    sans-serif;
  color: #c3c3c3;
  align-self: flex-start;
  transition: all 0.8s cubic-bezier(0.215, 0.61, 0.355, 1) 1.1s;
  transform: translate3d(-20%, 0, 0);
  opacity: 0;
}
.swiper-wrap-text h1 span.emphasis {
  opacity: 0;
  transition: all 0.8s cubic-bezier(0.215, 0.61, 0.355, 1) 1.2s;
  transform: translate3d(-20%, 0, 0);
  display: inline-block;
}
.swiper-wrap-text h1 span:not(.emphasis) {
  font-size: 3.5rem;
}

.swiper-container-no-flexbox .swiper-slide {
  float: left;
}

.swiper-container-vertical > .swiper-wrapper {
  -webkit-box-orient: vertical;
  -moz-box-orient: vertical;
  -ms-flex-direction: column;
  -webkit-flex-direction: column;
  flex-direction: column;
}

.swiper-container-android .swiper-slide,
.swiper-wrapper {
  -webkit-transform: translate3d(0px, 0, 0);
  -moz-transform: translate3d(0px, 0, 0);
  -o-transform: translate(0px, 0px);
  -ms-transform: translate3d(0px, 0, 0);
  transform: translate3d(0px, 0, 0);
}

.swiper-container-multirow > .swiper-wrapper {
  -webkit-box-lines: multiple;
  -moz-box-lines: multiple;
  -ms-flex-wrap: wrap;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
}

.swiper-container-free-mode > .swiper-wrapper {
  -webkit-transition-timing-function: ease-out;
  -moz-transition-timing-function: ease-out;
  -ms-transition-timing-function: ease-out;
  -o-transition-timing-function: ease-out;
  transition-timing-function: ease-out;
  margin: 0 auto;
}

.swiper-container-autoheight {
  height: auto;
}
.swiper-container-autoheight .swiper-slide {
  height: auto;
}
.swiper-container-autoheight .swiper-wrapper {
  -webkit-box-align: start;
  -ms-flex-align: start;
  -webkit-align-items: flex-start;
  align-items: flex-start;
  -webkit-transition-property: -webkit-transform, height;
  -moz-transition-property: -moz-transform;
  -o-transition-property: -o-transform;
  -ms-transition-property: -ms-transform;
  transition-property: transform, height;
}

.swiper-container .swiper-notification {
  position: absolute;
  left: 0;
  top: 0;
  pointer-events: none;
  opacity: 0;
  z-index: -1000;
}

.swiper-wp8-horizontal {
  -ms-touch-action: pan-y;
  touch-action: pan-y;
}

.swiper-wp8-vertical {
  -ms-touch-action: pan-x;
  touch-action: pan-x;
}

.swiper-pagination-fraction,
.swiper-pagination-custom,
.swiper-container-horizontal > .swiper-pagination-bullets {
  bottom: 10px;
  left: 0;
  width: 100%;
}

button.swiper-pagination-bullet {
  border: none;
  margin: 0;
  padding: 0;
  box-shadow: none;
  -moz-appearance: none;
  -ms-appearance: none;
  -webkit-appearance: none;
  appearance: none;
}

.swiper-pagination-clickable .swiper-pagination-bullet {
  cursor: pointer;
}

.swiper-pagination-white .swiper-pagination-bullet {
  background: #ffffff;
}

.swiper-pagination-bullet-active {
  opacity: 1;
  background: var(--secondary);
}

.swiper-pagination-white .swiper-pagination-bullet-active {
  background: #ffffff;
}

.swiper-pagination-black .swiper-pagination-bullet-active {
  background: #000000;
}

.swiper-container-vertical > .swiper-pagination-bullets {
  left: 50%;
  bottom: 8px;
  text-align: right;
  display: flex;
  flex-direction: column;
}
.swiper-container-vertical .works-list,
.swiper-container-vertical > .swiper-pagination-bullets.works-list {
  bottom: 14rem;
  left: auto;
  display: flex;
  flex-direction: column;
  justify-content: center;
  right: calc(5rem + 48px);
  list-style: none;
  padding: 0;
  margin: 0;
  position: relative;
  z-index: 10;
}
.swiper-container-vertical .works-list .swiper-pagination-bullet,
.swiper-container-vertical
  > .swiper-pagination-bullets.works-list
  .swiper-pagination-bullet {
  position: relative;
  margin: 0;
  width: 100%;
  display: block;
  line-height: 5.5rem;
  background: unset;
  opacity: 1;
  height: 100px;
  cursor: pointer;
}

/* Works menu must be above slides and not clipped */
.works-list {
  position: relative;
  z-index: 10;
}

.works-list li {
  position: relative; /* anchor for :after */
}
.swiper-container-vertical .works-list .swiper-pagination-bullet:after,
.swiper-container-vertical
  > .swiper-pagination-bullets.works-list
  .swiper-pagination-bullet:after {
  display: block;
  font-size: 3rem;
  color: #ffffff;
  transition: 0.5s;
  content: attr(data-label);
}
.swiper-container-vertical .works-list .swiper-pagination-bullet:hover,
.swiper-container-vertical .works-list .swiper-pagination-bullet-active,
.swiper-container-vertical
  > .swiper-pagination-bullets.works-list
  .swiper-pagination-bullet:hover,
.swiper-container-vertical
  > .swiper-pagination-bullets.works-list
  .swiper-pagination-bullet-active {
  background: none;
}
.swiper-container-vertical .works-list .swiper-pagination-bullet:hover:after,
.swiper-container-vertical .works-list .swiper-pagination-bullet-active:after,
.swiper-container-vertical
  > .swiper-pagination-bullets.works-list
  .swiper-pagination-bullet:hover:after,
.swiper-container-vertical
  > .swiper-pagination-bullets.works-list
  .swiper-pagination-bullet-active:after {
  font-size: 5rem;
}
.swiper-container-vertical
  > .swiper-pagination-bullets:not(.works-list)
  .swiper-pagination-bullet {
  background: rgba(80, 80, 80, 0.38);
  width: 2rem;
  height: 22px;
  display: inline-block;
}
.swiper-container-vertical
  > .swiper-pagination-bullets:not(.works-list)
  .swiper-pagination-bullet-active {
  background: rgba(0, 0, 0, 0.1);
  position: relative;
  width: 4rem;
  left: -2rem;
}
.swiper-container-vertical
  > .swiper-pagination-bullets
  .swiper-pagination-bullet {
  margin: 8px 0 0;
  display: block;
}

.swiper-container-horizontal
  > .swiper-pagination-bullets
  .swiper-pagination-bullet {
  margin: 0 5px;
}

.swiper-scrollbar {
  border-radius: 10px;
  position: relative;
  -ms-touch-action: none;
  background: rgba(0, 0, 0, 0.1);
}

.swiper-container-horizontal > .swiper-scrollbar {
  position: absolute;
  left: 1%;
  bottom: 3px;
  z-index: 50;
  height: 5px;
  width: 98%;
}

.swiper-container-vertical > .swiper-scrollbar {
  position: absolute;
  right: 3px;
  top: 1%;
  z-index: 50;
  width: 5px;
  height: 98%;
}

.swiper-scrollbar-drag {
  height: 100%;
  width: 100%;
  position: relative;
  background: rgba(0, 0, 0, 0.5);
  border-radius: 10px;
  left: 0;
  top: 0;
}

.swiper-scrollbar-cursor-drag {
  cursor: move;
}

.swiper-image-left {
  filter: grayscale(0%) brightness(0.8);
  transition: all 1s linear;
  transition-delay: 1s;
}

.swiper-slide.swiper-slide-active .swiper-image-left {
  filter: grayscale(30%) brightness(120%);
}

.swiper-image-inner.swiper-image-right {
  filter: grayscale(0%) brightness(0.8);
  transition: all 1s linear;
  transition-delay: 1s;
  background-blend-mode: multiply;
}

.swiper-slide.swiper-slide-active {
  z-index: 1000;
}
.swiper-slide.swiper-slide-active .swiper-image-right {
  filter: grayscale(30%) brightness(0.6);
}
.swiper-slide.swiper-slide-active h1,
.swiper-slide.swiper-slide-active p,
.swiper-slide.swiper-slide-active .link-line,
.swiper-slide.swiper-slide-active h2,
.swiper-slide.swiper-slide-active h3,
.swiper-slide.swiper-slide-active h4,
.swiper-slide.swiper-slide-active h5,
.swiper-slide.swiper-slide-active h6 {
  transform: translate3d(0, 0, 0);
  opacity: 1;
}
.swiper-slide.swiper-slide-active h1 span.emphasis,
.swiper-slide.swiper-slide-active h1 + p {
  transform: translate3d(0, 0, 0);
  opacity: 1;
  padding-bottom: 5%;
}

.gallery-wrapper figcaption:not(.gallery-item-info) {
  display: none;
}

/* Gallery grid item: text under each image (title + excerpt) */
.gallery-wrapper .gallery-grid-item .gallery-item-info {
  display: block;
  padding: 2rem;
  background: var(--primary, #fff);
  color: var(--secondary, #333);
  font-size: 1.3rem;
  line-height: 1.4;
}
.gallery-wrapper .gallery-grid-item .gallery-item-info .gallery-item-title {
  display: block;
  font-weight: 700;
  margin-bottom: 0.25rem;
}
.gallery-wrapper .gallery-grid-item .gallery-item-info .gallery-item-excerpt {
  display: block;
  font-weight: 400;
  opacity: 0.9;
}
.gallery-wrapper .gallery-grid-item .gallery-item-info .gallery-item-excerpt p {
  margin: 0 0 0.35em;
  opacity: 1;
  transform: unset;
}
.gallery-wrapper .gallery-grid-item .gallery-item-info .gallery-item-excerpt p:last-child {
  margin-bottom: 0;
}

.gallery-wrapper .pswp {
  touch-action: auto !important;
}
.gallery-wrapper .pswp__bg,
.gallery-wrapper .pswp__ui--fit .pswp__top-bar,
.gallery-wrapper .pswp__caption {
  background-color: var(--primary) !important;
}
.gallery-wrapper .pswp__top-bar,
.gallery-wrapper .pswp__caption {
  height: 80px;
  background: rgba(242, 242, 242, 0.8);
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 30px;
}
.gallery-wrapper .pswp__counter {
  color: var(--secondary) !important;
  opacity: 1 !important;
  position: static !important;
}
.gallery-wrapper .pswp__caption__center {
  text-align: center;
  color: var(--secondary);
  font-size: 1.6rem;
}
.gallery-wrapper .pswp__preloader {
  position: fixed;
  left: 0;
  right: 0;
  top: 50%;
  float: none;
  margin: auto;
}
.gallery-wrapper button.pswp__button {
  width: 22px;
  height: 22px;
  margin: 0 20px;
}
.gallery-wrapper .pswp__button--arrow--right:before {
  display: inline-block;
  -webkit-transform: rotate(-180deg);
  -moz-transform: rotate(-180deg);
  -ms-transform: rotate(-180deg);
  -o-transform: rotate(-180deg);
  transform: rotate(-180deg);
}
.gallery-wrapper .pswp__button.pswp__button--zoom {
  background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMiIgaGVpZ2h0PSIyMiIgdmlld0JveD0iMCAwIDIyIDIyIj48cGF0aCBkPSJNMTYsMjJWMjBoNFYxNmgydjZaTTAsMjJWMTZIMnY0SDZ2MlptMTAtNlYxMkg2VjEwaDRWNmgydjRoNHYySDEydjRaTTIwLDZWMkgxNlYwaDZWNlpNMCw2VjBINlYySDJWNloiIGZpbGw9IiM3MDcwNzAiLz48L3N2Zz4=)
    0 0 no-repeat !important;
}
.gallery-wrapper .pswp--zoomed-in .pswp__button--zoom {
  background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMiIgaGVpZ2h0PSIyMiIgdmlld0JveD0iMCAwIDIyIDIyIj48cGF0aCBkPSJNMTYsMjJWMjBoNFYxNmgydjZaTTAsMjJWMTZIMnY0SDZ2MlpNNiwxMlYxMEgxNnYyWk0yMCw2VjJIMTZWMGg2VjZaTTAsNlYwSDZWMkgyVjZaIiBmaWxsPSIjNzA3MDcwIi8+PC9zdmc+)
    0 0 no-repeat !important;
  background-position: 0;
}
.gallery-wrapper .pswp__button--arrow--left:before,
.gallery-wrapper .pswp__button--arrow--right:before {
  background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyOS4yMjgiIGhlaWdodD0iMjUuMDU5IiB2aWV3Qm94PSIwIDAgMjkuMjI4IDI1LjA1OSI+PHBhdGggZD0iTTIzLjY3NCwyMy42NDVsOS43MzktOS43MzlIOHYtMkgzMy40MTNMMjIuOTIzLDEuNDE1LDI0LjMzOCwwbDEyLjg5LDEyLjg5MS0uMDE0LjAxNC4wMTQuMDE0TDI1LjA4OCwyNS4wNTlaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzNy4yMjggMjUuMDU5KSByb3RhdGUoMTgwKSIgZmlsbD0iIzcwNzA3MCIvPjwvc3ZnPg==)
    center no-repeat !important;
  right: 0 !important;
  left: 0 !important;
  margin: auto;
}
.gallery-wrapper .pswp__button--arrow--left,
.gallery-wrapper .pswp__button--arrow--right {
  background-color: var(--primary) !important;
  border-radius: 0;
  width: 93px !important;
  height: 93px !important;
}
.gallery-wrapper .pswp--supports-fs .pswp__button--fs {
  background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMiIgaGVpZ2h0PSIyMiIgdmlld0JveD0iMCAwIDIyIDIyIj48cGF0aCBkPSJNMTYsMjJWMjBoNnYyWm0tNiwwSDBWMTBIMTJWMjJabTAtMlYxMkgydjhabTEwLTRWMTFoMnY1Wk0xNS4xNzEsNS40MTQsMTguNTg2LDJIMTZWMGg2VjZIMjBWMy40MTVMMTYuNTg2LDYuODI4Wk0wLDVWMEgyVjVaTTYsMlYwaDZWMloiIGZpbGw9IiM3MDcwNzAiLz48L3N2Zz4=)
    0 0 no-repeat !important;
}
.gallery-wrapper .pswp--fs .pswp__button--fs {
  background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMiIgaGVpZ2h0PSIyMiIgdmlld0JveD0iMCAwIDIyIDIyIj48cGF0aCBkPSJNMTYsMjJWMjBoNnYyWm0tNiwwSDBWMTBIMTJWMjJabTAtMlYxMkgydjhabTEwLTRWMTFoMnY1Wk0xNCw4VjJoMlY0LjU4NmwzLjQxNC0zLjQxNCwxLjQxNSwxLjQxNEwxNy40MTQsNkgyMFY4Wk0wLDVWMEgyVjVaTTYsMlYwaDZWMloiIGZpbGw9IiM3MDcwNzAiLz48L3N2Zz4=)
    0 0 no-repeat !important;
}
.gallery-wrapper .pswp__button.pswp__button--share {
  display: none !important;
}

* {
  margin: 0;
  padding: 0;
  border: 0;
  box-sizing: border-box;
}
*:before,
*:after {
  box-sizing: inherit;
}
*:focus {
  outline: 0;
}

html {
  height: 100%;
  overflow: hidden;
  box-sizing: border-box;
  background-color: var(--primary);
  font-size: calc(4px + 0.45vw);
}

body {
  -webkit-text-size-adjust: 100%;
  -webkit-font-smoothing: antialiased;
  height: 100%;
  min-width: 375px;
  font-family: "Montserrat", sans-serif;
  font-weight: 300;
  background-color: var(--primary);
  color: var(--secondary);
  background-image: unset;
  font-size: 14px;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 0;
  padding: 0;
}

/* Heading scale: h2–h6 (h1 styled in .content h1, h1.title, .port h1, etc.) */
h2,
h3,
h4,
h5,
h6 {
  font-family: "Montserrat", sans-serif;
  font-weight: 600;
  color: var(--secondary);
  margin-top: 0;
}

h2 {
  font-size: clamp(2.2rem, 3.5vw, 3rem);
  line-height: 1.25;
  margin-bottom: 1.5rem;
}

h3 {
  font-size: clamp(2rem, 2.8vw, 2.4rem);
  line-height: 1.3;
  margin-bottom: 1.25rem;
}

h4 {
  font-size: clamp(1.75rem, 2.2vw, 2rem);
  line-height: 1.35;
  margin-bottom: 1rem;
}

h5 {
  font-size: 1.8rem;
  line-height: 1.4;
  margin-bottom: 0.75rem;
}

h6 {
  font-size: 1.5rem;
  line-height: 1.45;
  margin-bottom: 0.5rem;
}

/* Space above heading when it follows other content */
p + h2,
p + h3,
p + h4,
p + h5,
p + h6,
ul + h2,
ul + h3,
ul + h4,
ul + h5,
ul + h6,
ol + h2,
ol + h3,
ol + h4,
ol + h5,
ol + h6 {
  margin-top: 1.5rem;
}
h2 + h3,
h3 + h4,
h4 + h5,
h5 + h6 {
  margin-top: 0.75rem;
}

.container {
  max-width: 92%;
}

button {
  outline: 0;
}

.main {
  margin: 0 auto;
  flex: 1;
  width: calc(100% - 4rem);
}

.main-wrapper {
  width: 100%;
  height: 100%;
}

.show {
  display: flex;
}

.hide {
  display: none;
}

.close,
.pswp__button.pswp__button--close {
  background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOS43OTkiIGhlaWdodD0iMTkuNzk5IiB2aWV3Qm94PSIwIDAgMTkuNzk5IDE5Ljc5OSI+PHBhdGggZD0iTTkuOSwxMS4zMTMsMS40MTQsMTkuOCwwLDE4LjM4NSw4LjQ4Niw5LjksMCwxLjQxNCwxLjQxNCwwLDkuOSw4LjQ4NiwxOC4zODUsMCwxOS44LDEuNDE0LDExLjMxMyw5LjksMTkuOCwxOC4zODUsMTguMzg1LDE5LjhaIiBmaWxsPSIjNzA3MDcwIi8+PC9zdmc+)
    0 0 no-repeat !important;
}

.link-line {
  display: inline-block;
  font-size: 3.1rem;
  text-transform: lowercase;
  text-decoration: none;
  color: var(--secondary);
  position: relative;
}
.link-line:after {
  content: "";
  display: block;
  width: 100px;
  position: absolute;
  background: var(--secondary);
  opacity: 0.7;
  height: 1px;
  left: 120%;
  top: 50%;
  pointer-events: none;
  will-change: transform;
  transition: transform 0.8s;
  transform: scaleX(1);
  transform-origin: 0 100%;
}
.link-line:hover {
  color: #000000;
}
.link-line:hover:after {
  will-change: transform;
  transform: scaleX(0.5);
  transform-origin: 0 0;
}

.counter {
  display: inline-block;
  font-size: 1.6rem;
  font-family: "Montserrat", sans-serif;
  font-weight: 300;
}
.counter span:last-child::before {
  content: "/";
  margin: 0 1.2rem;
}

.w-color-swiper h1,
.w-color-swiper p,
.w-color-swiper a.link-line {
  color: #ffffff !important;
}

p:not(.text-copy),
.link-line {
  opacity: 0;
  transition: all 0.6s cubic-bezier(0.215, 0.61, 0.355, 1) 1.4s;
  transform: translate3d(-20%, 0, 0);
}

/* Same entrance transition for headings inside swiper */
.swiper-slide h2,
.swiper-slide h3,
.swiper-slide h4,
.swiper-slide h5,
.swiper-slide h6 {
  opacity: 0;
  transition: all 0.6s cubic-bezier(0.215, 0.61, 0.355, 1) 1.4s;
  transform: translate3d(-20%, 0, 0);
}

p:not(.line):not(.text-copy) {
  margin: 3rem 0 0 0;
  color: var(--secondary);
  font-size: 1.6rem;
  line-height: 2.6rem;
  font-weight: 300;
}

.text-wrapper {
  overflow: auto;
  padding-right: 2rem;
}

/* ===== Gallery: always visible fallback ===== */
.gallery-grid .gallery-grid-item {
  display: block; /* in case someone sets inline/none */
  opacity: 1; /* in case it was opacity:0 before */
  visibility: visible;
  transform: none;
}

/* To keep signature fade-in — do it via ready-class */
.gallery-grid.is-ready .gallery-grid-item {
  transition:
    opacity 0.35s ease,
    transform 0.35s ease;
}

/* ===== Gallery hard visibility guard (kills hidden/zero-size bugs) ===== */
.gallery-grid-item a {
  display: block !important;
}

.gallery-grid-item img {
  display: block !important;
  width: 100% !important;
  height: auto !important;

  opacity: 1 !important;
  visibility: visible !important;

  position: relative !important;
  transform: none !important;
  filter: none !important;
}

/* if theme has absolute positioning for preview somewhere */
.gallery-grid-item {
  overflow: visible;
}

/* in case container/overlay blocks clicks/visibility */
.gallery-main,
.gallery-wrapper,
.gallery-grid {
  position: relative;
  z-index: auto;
}

/* ===== Gallery layout: Columns (masonry-like) + polish ===== */
.gallery-grid-wrapper {
  display: block !important;
  column-count: 3;
  column-gap: 18px;
}

.gallery-grid-wrapper .gallery-grid-sizer {
  display: none !important;
}

.gallery-grid-wrapper .gallery-grid-item {
  break-inside: avoid;
  -webkit-column-break-inside: avoid;
  margin: 0 0 18px 0;
  width: 100% !important;
  position: relative !important;
}

/* Gallery: ensure container has height even with absolute Masonry items */
.gallery-grid {
  min-height: 60vh;
}

/* If some theme rule makes grid collapse */
.gallery-grid::after {
  content: "";
  display: block;
  clear: both;
}

/* Gallery: prevent stacking (only one image visible) */
.gallery-grid.no-masonry .gallery-grid-item,
.gallery-grid.force-grid .gallery-grid-item {
  position: relative !important;
  top: auto !important;
  left: auto !important;
}

.gallery-grid.no-masonry .gallery-grid-item {
  position: relative !important;
}

/* Disable overlapping layers that block gallery */
.preloader,
.overlay,
.noise-layer,
.cursor-layer {
  pointer-events: none !important;
  z-index: 0 !important;
}

/* Contact: fix layering and focus */
.contact-main .wrap-map {
  position: relative;
  z-index: 1;
}

.contact-main .wrap-map iframe {
  position: relative;
  z-index: 2;
}

.contact-main .wrap-form {
  position: relative;
  z-index: 5;
}

/* if decorative layers exist — must not capture clicks */
.contact-main .wrap-map::before,
.contact-main .wrap-map::after,
.contact-main .wrap-form::before,
.contact-main .wrap-form::after {
  pointer-events: none !important;
}

/* Contact: when map is hidden, form column takes full width */
.contact-main.no-map .row .col-6 {
  flex: 0 0 100%;
  max-width: 100%;
}

/* Works menu: pin to visible layer */
.works-main .works-list {
  position: absolute; /* as in original menu-label design */
  top: 50%;
  transform: translateY(-50%);
  right: 5%;
  z-index: 9999;
  pointer-events: auto;
  text-align: right;
}

/* Ensure bullets have a box for :after */
.works-main .works-list li {
  height: 1px; /* baseline, text drawn via pseudo-element */
  margin: 18px 0;
}

/* ===== Gallery: polish for CSS Grid ===== */
.gallery-grid-wrapper .gallery-grid-item a {
  display: block;
  overflow: hidden;
}

.gallery-grid-wrapper .gallery-grid-item img {
  display: block;
  width: 100%;
  height: auto;
  transform: translateZ(0);
  transition:
    transform 0.35s ease,
    filter 0.35s ease;
}

.gallery-grid-wrapper .gallery-grid-item:hover img {
  transform: scale(1.03);
  filter: contrast(1.03);
}

/* optional: subtle entrance when ready */
/* Moved to child element (a) to avoid conflict with FLIP transform on .gallery-grid-item */
.gallery-grid-wrapper.is-ready .gallery-grid-item {
  animation: none;
}

.gallery-grid-wrapper.is-ready .gallery-grid-item a {
  animation: concreteFadeUp 0.35s ease both;
}

@keyframes concreteFadeUp {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* ===== Gallery FLIP Animation ===== */
.gallery-grid-item {
  will-change: transform;
  transition:
    transform 450ms cubic-bezier(0.2, 0.8, 0.2, 1),
    opacity 220ms ease;
}

.gallery-grid-item.is-fading-out {
  opacity: 0;
}

@media (prefers-reduced-motion: reduce) {
  .gallery-grid-item {
    transition: none !important;
  }
}

/* ===== Gallery no-js CSS fallback (server-side filtering) ===== */
.no-js .gallery-grid-item {
  display: none;
}

.no-js .gallery-grid-item[data-match="1"] {
  display: block;
}

/* ===== Add a preview container and a clear button to the admin page ===== */
#concrete-picked-preview {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 10px;
}
.concrete-picked-thumb {
  width: 56px;
  height: 56px;
  border-radius: 10px;
  overflow: hidden;
  background: #f3f3f3;
}
.concrete-picked-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.concrete-picked-more {
  width: 56px;
  height: 56px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #111;
  color: #fff;
  font-weight: 600;
}

.gallery-empty-filter {
  text-align: center;
  margin: 18px 0 0;
  opacity: 0.85;
}

.skills-term-hint {
  margin-top: 10px;
  font-size: 12px;
  line-height: 1.35;
  opacity: 0.7;
}
.skills-term-hint::before {
  content: "✎ ";
  opacity: 0.9;
}
.skills-term-hint a {
  color: inherit;
  text-decoration: none;
  border-bottom: 1px solid rgba(255, 255, 255, 0.25);
}
.skills-term-hint a:hover {
  border-bottom-color: rgba(255, 255, 255, 0.55);
}

/* Gallery page: make all text secondary/grey */
body.page-template-page-gallery,
body.page-template-page-gallery .site,
body.page-template-page-gallery main,
body.page-template-page-gallery .gallery,
body.page-template-page-gallery .gallery * {
  color: var(--secondary);
}

/* Admin Media: ensure our buttons are visible */
.wp-admin.upload-php .media-toolbar-secondary .concrete-bulk-trash,
.wp-admin.upload-php .media-toolbar-secondary .concrete-bulk-delete {
  margin-right: 8px;
}

/* Gallery grid item polish */
body.page-template-page-gallery .gallery-grid-item a {
  overflow: hidden;
  display: block;
  transform: translateZ(0);
  transition:
    transform 260ms cubic-bezier(0.2, 0.8, 0.2, 1),
    box-shadow 260ms ease;
  box-shadow: 0 18px 60px rgba(0, 0, 0, 0.06);
}

body.page-template-page-gallery .gallery-grid-item:hover a {
  transform: translateY(-2px);
  box-shadow: 0 26px 80px rgba(0, 0, 0, 0.1);
}

/* Keep your image hover subtle */
body.page-template-page-gallery .gallery-grid-item img {
  display: block;
  width: 100%;
  height: auto;
  transition:
    transform 320ms ease,
    filter 320ms ease;
}

body.page-template-page-gallery .gallery-grid-item:hover img {
  transform: scale(1.02);
  filter: contrast(1.02);
}

/* Empty-state — keep it subtle but useful */
body.page-template-page-gallery .gallery-empty-filter {
  margin: 22px 0 0;
  padding: 14px 0;
  color: var(--secondary);
  opacity: 0.75;
  font-size: 14px;
  letter-spacing: 0.02em;
}

/* Disable text-caret / selection on clickable UI (logo + hamburger) */
.menu,
.menu *,
.site-logo,
.site-logo *,
.logo,
.logo *,
.brand,
.brand * {
  -webkit-user-select: none;
  -ms-user-select: none;
  user-select: none;
  caret-color: transparent;
}

/* Optional: remove gray focus ring on click (keep :focus-visible if desired) */
.menu:focus,
.menu a:focus,
.site-logo a:focus,
.logo a:focus {
  outline: none;
}

@media (prefers-reduced-motion: reduce) {
  body.page-template-page-gallery .gallery-grid-item a,
  body.page-template-page-gallery .gallery-grid-item img {
    transition: none !important;
  }
}

/* remove caret/outline only here, targeted — keep after gallery nav rules */
html.concrete-gallery-filter-ready nav.tabs {
  outline: none !important;
}

/* Works / Skills menu via data-label */
.works-menu ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.works-menu li {
  margin: 0;
  padding: 0;
}

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

.works-menu a::after {
  content: attr(data-label);
}

/* visually hidden helper */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* ==========================================================
   CONCRETE — THEME OVERRIDES & FIXES
   Keep this at the END of main.css.
   User custom styles belong to assets/css/your-style.css
   ========================================================== */

/* News (Posts page): prevent horizontal scroll on left half */
body.blog .news-main {
  overflow-x: hidden;
}
body.blog .news-main * {
  overflow-wrap: anywhere;
  word-break: break-word;
}

.news-main .text-wrapper {
  overflow-x: hidden;
  overflow-wrap: anywhere;
  word-break: break-word;
}
.news-main .news-body {
  overflow-x: hidden;
  overflow-wrap: anywhere;
  word-break: break-word;
  max-height: 40vh;
  overflow-y: auto;
}

/* Contact: map iframe fills wrap-map height + clickable */
body.page-template-page-contact .wrap-map iframe {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
  position: relative;
  z-index: 5;
  pointer-events: auto;
}

/* Contact: map clickable (z-index + pointer-events) */
body.page-template-page-contact .wrap-map {
  position: relative;
  z-index: 5;
  pointer-events: auto;
}

body.page-template-page-contact .wrap-form,
body.page-template-page-contact .contact-right {
  position: relative;
  z-index: 10;
}

/* Contact: show labels immediately (universal) */
body.page-template-page-contact .contact-main label,
body.page-template-page-contact .contact-main .inp .label {
  opacity: 1 !important;
  visibility: visible !important;
  display: inline-block !important;
  top: 0 !important;
  transform: unset;
}

/* Contact: wrap-form base + CF7 form layout and fields */
.wrap-form,
.wrap-form p {
  opacity: 1;
  font-size: 16px;
  transform: unset;
}

.wrap-form form {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
}

.wrap-form form input {
  border-bottom: 1px solid #999;
  background: #efefef6b !important;
  padding: 10px !important;
}

.wrap-form form textarea {
  border-bottom: 1px solid #999 !important;
  background: #efefef6b !important;
}

.wrap-form form > p:last-of-type {
  flex: 1;
}

.wrap-form form * {
  font-family: inherit;
}

/* Foundation: Mobile-first responsive base */
.container {
  width: min(1200px, 100% - clamp(16px, 4vw, 32px));
  margin-left: auto;
  margin-right: auto;
}

@media (min-width: 901px) {
  .container {
    max-width: 1630px;
    width: calc(100% - clamp(16px, 4vw, 32px));
    margin-left: auto;
    margin-right: auto;
  }
  header {
    min-height: 70px;
  }
}


/* Spacing scale via clamp */
.gallery-grid-wrapper,
.exhibitions-wrapper ul {
  gap: clamp(12px, 2vw, 24px);
}

.main.exhibitions-main {
  overflow-y: auto;
}

/* CF7 Custom Styling to match inp/btn classes */
.cf7-custom-wrapper .wpcf7-form {
  max-width: 100%;
}

.cf7-custom-wrapper .wpcf7-form p {
  margin: 0 0 1.5rem 0;
}

.cf7-custom-wrapper .wpcf7-form .wpcf7-form-control-wrap {
  display: block;
  width: 100%;
}

/* Style CF7 text and email inputs to match .inp class */
.cf7-custom-wrapper .wpcf7-form input[type="text"],
.cf7-custom-wrapper .wpcf7-form input[type="email"],
.cf7-custom-wrapper .wpcf7-form input[type="tel"],
.cf7-custom-wrapper .wpcf7-form input[type="url"] {
  -webkit-appearance: none;
  width: 100%;
  padding: 12px 0;
  height: 48px;
  border-radius: 0;
  transition: all 0.15s ease;
  background: transparent;
  color: inherit;
  font-size: inherit;
}

.cf7-custom-wrapper .wpcf7-form input[type="text"]:focus,
.cf7-custom-wrapper .wpcf7-form input[type="email"]:focus,
.cf7-custom-wrapper .wpcf7-form input[type="tel"]:focus,
.cf7-custom-wrapper .wpcf7-form input[type="url"]:focus {
  outline: none;
}

/* Style CF7 textarea */
.cf7-custom-wrapper .wpcf7-form textarea {
  width: 100%;
  border: 0;
  padding: 12px 0;
  min-height: 120px;
  border-radius: 0;
  transition: all 0.15s ease;
  background: transparent;
  color: inherit;
  font-size: inherit;
  resize: vertical;
}

.cf7-custom-wrapper .wpcf7-form textarea:focus {
  outline: none;
}

/* Style CF7 submit button to match #feedback-form [type="submit"] */
.cf7-custom-wrapper .wpcf7-form input[type="submit"],
.cf7-custom-wrapper .wpcf7-form button[type="submit"] {
  padding: 17px 0 15px;
  width: 200px;
  background: var(--primary);
  color: var(--secondary);
  font-size: 0.9em;
  font-weight: 400;
  text-transform: uppercase;
  margin: 3rem auto 0;
  cursor: pointer;
  transition: all 0.4s ease;
  letter-spacing: 1.2px;
  border: 1px solid var(--secondary);
  display: block;
  -webkit-appearance: none;
  border-radius: 0;
}

.cf7-custom-wrapper .wpcf7-form input[type="submit"]:hover,
.cf7-custom-wrapper .wpcf7-form button[type="submit"]:hover {
  background: rgba(255, 255, 255, 0.4);
  color: #000000;
}

/* Hide default CF7 validation messages styling if needed, or style them */
.cf7-custom-wrapper .wpcf7-validation-errors,
.cf7-custom-wrapper .wpcf7-mail-sent-ok,
.cf7-custom-wrapper .wpcf7-mail-sent-ng {
  margin: 1rem 0;
  padding: 0.5rem;
}

/* Style CF7 select if used */
.cf7-custom-wrapper .wpcf7-form select {
  width: 100%;
  border: 0;
  padding: 12px 0;
  height: 48px;
  border-radius: 0;
  background: transparent;
  color: inherit;
  font-size: inherit;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}

.cf7-custom-wrapper .wpcf7-form select:focus {
  outline: none;
}

/* News: date in bottom right of left slide */
.news-main .news-data {
  left: 0;
  right: auto;
}

/* Hide swiper scrollbar */
.news-main .swiper-container .swiper-scrollbar,
.news-main .swiper-scrollbar {
  display: none;
}

.contact-hint {
  margin-top: 12px;
  font-size: 12px;
  opacity: 0.75;
}

/* Custom Logo styles */
.site-logo img,
.site-logo .custom-logo {
  height: auto;
  max-width: 180px;
  max-height: 70px;
  width: 100%;
  display: block;
}

.preloader-logo {
  max-width: 220px;
  height: auto;
  display: inline-block;
}

/* Accent color CSS variable (will be overridden by inline styles from Customizer) */
:root {
  --concrete-accent: #2a2a2a;
}

/* Apply accent color to common elements */
.link-line,
a.link-line,
button[type="submit"],
input[type="submit"],
.border-accent {
  border-color: var(--concrete-accent);
  color: var(--concrete-accent);
}

.link-line:hover,
a.link-line:hover {
  color: var(--concrete-accent);
  opacity: 0.8;
}

.gallery-grid-item.is-hidden {
  display: none;
}

.contact-form-empty {
  padding: 2rem 0;
}

.contact-form-empty p {
  margin: 0 0 1rem 0;
}

/* Menu: Fix .nav-menu margin-right issue (override main.css) */
.main-menu .nav-menu {
  margin-right: 0;
  padding-right: 10rem;
  width: 100%;
}

/* Menu stage geometry: consolidated rules for parallax container */
.menu-parallax-stage .row {
  min-height: 100%;
  height: 100%;
  overflow: hidden;
}

.menu-parallax-stage .col-8 {
  min-height: 100%;
  height: 100%;
  padding-bottom: clamp(20px, 4vw, 40px);
}

.main-menu .bg-menu {
  overflow: hidden;
  height: 104%;
}

/* Parallax: scale frames and ensure full height */
.main-menu .parallax {
  height: 100%;
  --frame-scale: 0.88;
}

/* Parallax: adjust specific level positions */
.parallax[data-layout="classic"] .level[data-level="7"] {
  top: 70%;
}

.parallax[data-layout="classic"] .level[data-level="8"] {
  top: 75%;
}

.parallax[data-layout="classic"] .level[data-level="9"] {
  top: 69%;
}

.parallax[data-layout="dense"] .level[data-level="7"] {
  top: 65%;
}

.parallax[data-layout="dense"] .level[data-level="8"] {
  top: 71%;
}

.parallax[data-layout="dense"] .level[data-level="9"] {
  top: 65%;
}

.parallax[data-layout="minimal"] .level[data-level="3"] {
  top: 57%;
}

.parallax[data-layout="minimal"] .level[data-level="4"] {
  top: 62%;
}

/* Parallax: overlay frame styling */
.main-menu .parallax .level:not(.canvas) {
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.14);
}

/* Override: menu overlay frames use contain so image fits inside frame */
.main-menu .parallax .level:not(.canvas) .level-inner {
  background-size: contain;
}


/* Exhibitions grid columns */
body.page-template-page-exhibitions .exhibitions-wrapper ul {
  display: grid;
  gap: clamp(12px, 2vw, 24px);
  list-style: none;
  margin: 0;
  padding-left: 0;
}

@media (min-width: 521px) and (max-width: 900px) {
  body.page-template-page-exhibitions .exhibitions-wrapper ul {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 901px) {
  body.page-template-page-exhibitions .exhibitions-wrapper ul {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  body.page-template-page-exhibitions .exhibitions-wrapper ul li {
    width: auto;
  }

  body.page-template-page-exhibitions .exhibitions-wrapper ul li img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
  }
}

/* Exhibitions: square image cells */
.exhibitions-wrapper ul li a {
  aspect-ratio: 1 / 1;
}

.exhibitions-wrapper ul li img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

/* Contact map: height on desktop only (on mobile — mobile.css) */
@media (min-width: 901px) {
  .contact-main .wrap-map {
    height: calc(100vh - 140px);
    max-height: none;
  }
}

.contact-main .wrap-map iframe {
  display: block;
  width: 100%;
  height: 100%;
}

/* Contact inputs: make inp full width so clicks always hit the real input */
.contact-main .inp {
  max-width: 100%;
  width: 100%;
  display: block;
  cursor: text;
}

/* Safety: ensure form is above anything decorative */
.contact-main .wrap-form,
.contact-main .wrap-form .entry-content {
  position: relative;
  z-index: 50;
  pointer-events: auto;
}

/* Contact: Fix input field focus issues */
.contact-main input,
.contact-main textarea,
.contact-main button,
.contact-main select {
  pointer-events: auto;
  position: relative;
  z-index: 9999;
}

/* Decorative parts in form only — must not intercept clicks (do not scope to wrap-map so iframe stays clickable) */
body.page-template-page-contact .wrap-form .inp svg,
body.page-template-page-contact .wrap-form .inp .label,
body.page-template-page-contact .wrap-form svg,
body.page-template-page-contact .wrap-form .label,
body.page-template-page-contact .wrap-form::before,
body.page-template-page-contact .wrap-form::after {
  pointer-events: none;
}

/* === Desktop layout regression fixes (post responsive refactor) === */

/* 1) Main menu must be full width (do not clamp inside menu overlay) */
@media (min-width: 901px) {
  .main-menu .container {
    width: 100%;
    max-width: none;
    margin-left: 0;
    margin-right: 0;
    padding-left: clamp(24px, 3vw, 64px);
    padding-right: clamp(24px, 3vw, 64px);
  }
}

/* 3) Exhibitions: keep grid, restore centered wide layout on desktop */
@media (min-width: 901px) {
  .exhibitions-wrapper {
    width: 100%;
    margin-left: auto;
    margin-right: auto;
  }

  .exhibitions-wrapper ul {
    width: 100%;
  }
}

/* 4) Contact: slightly constrained container on desktop */
@media (min-width: 901px) {
  body.page-template-page-contact .main {
    width: 100%;
    margin: 0;
  }

  body.page-template-page-contact .contact-main .container {
    max-width: 1630px;
    width: calc(100% - clamp(32px, 4vw, 96px));
    margin-left: auto;
    margin-right: auto;
  }
}

@media (min-width: 2000px) {
  body.page-template-page-contact .contact-main .container {
    max-width: 2530px;
  }

  .container {
    max-width: 2530px;
  }
}

/* News nav: move left on desktop */
@media (min-width: 901px) {
  .news-main .home-slider-nav,
  .works-main .home-slider-nav,
  .about-main .home-slider-nav {
    right: calc(50vw - 2rem);
  }
}

/* Burger aligned to content edge (desktop) */
@media (min-width: 901px) {
  header .menu-section {
    right: max(
      clamp(16px, 4vw, 32px),
      calc((100vw - 1630px) / 2 + clamp(16px, 4vw, 32px))
    );
  }

  body.home header .container {
    max-width: none;
    width: 100%;
  }

  body.home header .menu-section {
    right: 5rem;
  }
}

@media (min-width: 2000px) {
  header .menu-section {
    right: max(
      clamp(16px, 4vw, 32px),
      calc((100vw - 2530px) / 2 + clamp(16px, 4vw, 32px))
    );
  }
}

@media (min-width: 901px) {
  .swipe-hint {
    display: none;
  }

  /* Skills menu: no inner scroll on desktop (restore original look) */
  .works-main .works-list,
  .works-main .skills-menu,
  .works-main .skills-menu ul {
    max-height: none;
    overflow: visible;
    overscroll-behavior: auto;
  }
}

@media (min-width: 901px) and (max-height: 750px) {
  .works-main .works-list {
    max-height: 60vh;
    padding-top: 12px;
    padding-bottom: 12px;
  }
}

/* Mobile/desktop toggle for Skills (etc.) */
.concrete-mobile-only {
  display: none;
}
.concrete-desktop-only {
  display: block;
}

/* to hide only mobile variant on desktop — done via .concrete-mobile-only */
.concrete-mobile-gallery-link {
  display: block;
}

/* Skills: right CTA — position container, link static (main.css doesn't dictate left/bottom) */
@media (min-width: 901px) {
  body.page-template-page-skills .works-main .swiper-image:last-child {
    position: relative;
  }
  body.page-template-page-skills .works-main .skills-cta-right {
    position: absolute;
    right: 19rem;
    bottom: 2rem;
    z-index: 500;
    pointer-events: auto;
  }
  body.page-template-page-skills .works-main .skills-cta-right .link-line {
    position: static !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    bottom: auto !important;
  }
}

/* Contact desktop: only .inp .label (not global label — don't touch CF7/checkboxes) */
@media (min-width: 901px) {
  body.page-template-page-contact .contact-main .inp .label {
    font-size: 2.7rem !important;
  }
}

/* ================================
   Contact — Elastic input (WP hardening)
   Makes it work even if WP inserts wrappers
   ================================ */

/* restore original background as in HTML original */
#feedback-form input,
#feedback-form textarea {
  background-color: transparent;
}

/* if WP/plugins add their styles — override */
#feedback-form .inp input {
  background: transparent !important;
  color: var(--secondary);
  border: 0 !important;
  box-shadow: none !important;
}

/* important: label must move even if wrapper elements appear nearby */
#feedback-form .inp input:not(:placeholder-shown) ~ .label {
  transform: translateY(-26px) scale(0.75);
}

#feedback-form .inp input:focus ~ .label {
  transform: translateY(-44px) scale(0.75);
  transition-delay: 0.1s;
}

/* svg path animation also via ~ (not +) */
#feedback-form .inp input:focus ~ svg path {
  animation: elasticInput 0.4s ease forwards;
}

/* sometimes WP adds line-height/height — align as in original */
#feedback-form .inp input {
  height: 48px !important;
  padding: 12px 0 !important;
  font-size: 18px;
}

/* if clicks sometimes "miss" due to layers/pseudo-elements */
#feedback-form .inp,
#feedback-form .inp * {
  pointer-events: auto;
}
#feedback-form .inp svg,
#feedback-form .inp svg * {
  pointer-events: none; /* so svg doesn't capture click */
}

/* ================================
   Contact: override — background, label, underline (overrides all above)
   Use label.inp + :focus-within, no transform on label.inp
   ================================ */

/* 1) Input background: gray by default, white on focus */
#feedback-form label.inp input,
#feedback-form label.inp textarea {
  background: #f2f2f2 !important;
  transition:
    background-color 0.2s ease,
    color 0.2s ease;
}

#feedback-form label.inp:focus-within input,
#feedback-form label.inp:focus-within textarea {
  background: #fff !important;
}

/* 2) base positioning — label.inp without transform */
#feedback-form label.inp {
  position: relative;
  display: block;
}

#feedback-form label.inp .label {
  position: absolute;
  left: 16px;
  top: 18px;
  transform-origin: left top;
  transition:
    transform 0.25s ease,
    color 0.2s ease;
  pointer-events: none;
}

#feedback-form label.inp:focus-within .label {
  transform: translateY(-14px) scale(0.8);
}

/* 3) Underline: SVG under field, path hidden via dashoffset, draw on focus */
#feedback-form label.inp svg {
  position: absolute;
  left: 0;
  bottom: 6px;
  width: 120px;
  height: 24px;
  overflow: visible;
  pointer-events: none;
}

#feedback-form label.inp svg path {
  fill: none;
  stroke: currentColor;
  stroke-width: 2px;
  stroke-dasharray: 240;
  stroke-dashoffset: 240;
  transition: stroke-dashoffset 0.35s ease;
}

#feedback-form label.inp:focus-within svg path {
  stroke-dashoffset: 0;
}

/* ================================
   Contact — restore ORIGINAL elastic look (WP)
   Grey container + white field on focus + floating label + elastic underline
================================ */



#feedback-form label.inp {
  position: relative;
  display: block;
  width: 100%;
  background: #f2f2f2;
  border-radius: 0; /* as in template, tweak if needed */
  transition: background 0.2s ease;
}

/* 3) Input is transparent; becomes white when focused */
#feedback-form label.inp > input,
#feedback-form label.inp > textarea {
  width: 100%;
  background: transparent !important;
  border: 0 !important;
  outline: none !important;
  box-shadow: none !important;
  color: inherit;
  padding: 18px 14px 10px;
  font-size: 16px;
  line-height: 1.2;
}

/* Focus state: field area turns white (inside grey container) */
#feedback-form label.inp:focus-within > input,
#feedback-form label.inp:focus-within > textarea {
  background: #fff !important;
}

/* Keep white when there is text (after blur) */
#feedback-form label.inp > input:not(:placeholder-shown),
#feedback-form label.inp > textarea:not(:placeholder-shown),
#feedback-form label.inp > input:valid,
#feedback-form label.inp > textarea:valid {
  background: #fff !important;
}

/* 4) Floating label */
#feedback-form label.inp .label {
  position: absolute;
  left: 14px;
  top: 16px;
  pointer-events: none;
  transform-origin: left top;
  transition:
    transform 0.2s ease,
    color 0.2s ease,
    top 0.2s ease;
  color: rgba(0, 0, 0, 0.55);
}

/* Move label up on focus OR when field has value */
#feedback-form label.inp:focus-within .label,
#feedback-form label.inp > input:not(:placeholder-shown) ~ .label,
#feedback-form label.inp > textarea:not(:placeholder-shown) ~ .label,
#feedback-form label.inp > input:valid ~ .label,
#feedback-form label.inp > textarea:valid ~ .label {
  transform: translateY(-14px) scale(0.82);
  color: rgba(0, 0, 0, 0.45);
}

/* 5) Elastic underline SVG: hide path by dash; draw on focus */
#feedback-form label.inp svg {
  position: absolute;
  left: 14px;
  right: 14px;
  bottom: 8px;
  width: calc(100% - 28px);
  height: 24px;
  pointer-events: none;
}

#feedback-form label.inp svg path {
  fill: none;
  stroke-width: 2;
  stroke: currentColor;
  opacity: 0.55;

  stroke-dasharray: 240;
  stroke-dashoffset: 240;
  transition: stroke-dashoffset 0.35s ease;
}

/* Draw underline only on focus */
#feedback-form label.inp:focus-within svg path {
  stroke-dashoffset: 0;
}

/* 6) Chrome autofill (so it doesn't paint yellow) */
#feedback-form label.inp input:-webkit-autofill,
#feedback-form label.inp textarea:-webkit-autofill {
  -webkit-box-shadow: 0 0 0px 1000px #fff inset !important;
  transition: background-color 9999s ease-out 0s;
}

/* ================================
   Contact — FIX: true ORIGINAL elastic input in WP
   (prevents stretched SVG "Z" and restores label pop)
================================ */


/* 1) Restore original elastic input base */
#feedback-form .inp {
  position: relative;
  margin: auto;
  width: 100%;
  max-width: 280px;
  cursor: pointer;
  display: inline-block;

  /* this is the grey "container feel" */
  background: transparent; /* keep original */
}

/* 2) The input itself: transparent by default, white on focus (your requested effect) */
#feedback-form .inp input {
  -webkit-appearance: none;
  width: 100%;
  border: 0 !important;
  padding: 12px 0;
  height: 48px;
  border-radius: 0;
  outline: none !important;
  box-shadow: none !important;

  background: transparent !important;
  transition: background 0.15s ease;
}

/* White "field" when focused OR filled */
#feedback-form .inp input:focus,
#feedback-form .inp input:not(:placeholder-shown),
#feedback-form .inp input:valid {
  background: #fff !important;
}

/* 3) Floating label – EXACT original mechanics (adjacent sibling) */
#feedback-form .inp .label {
  position: absolute;
  top: 50%;
  left: 0;
  font-size: 18px;
  color: var(--secondary);
  font-weight: 500;
  transform-origin: 0 0;
  transition: all 0.2s ease;
  pointer-events: none;
}

/* filled */
#feedback-form .inp input:not(:placeholder-shown) + span,
#feedback-form .inp input:valid + span {
  transform: translateY(-26px) scale(0.75) !important;
}

/* focus */
#feedback-form .inp input:focus + span {
  transform: translateY(-44px) scale(0.75) !important;
  transition-delay: 0.1s;
}

/* 4) SVG underline – DO NOT STRETCH (this kills the "Z") */
#feedback-form .inp svg {
  position: absolute;
  left: 0 !important;
  right: auto !important;
  width: 120px !important; /* critical */
  bottom: -1px;
  height: 26px;
  fill: none;
  pointer-events: none;
}

#feedback-form .inp svg path {
  stroke: var(--secondary);
  stroke-width: 2;
  fill: none;
}

/* 5) Animate underline exactly like original */
#feedback-form .inp input:focus + span + svg path {
  animation: elasticInput 0.4s ease forwards;
}

/* 6) The straight line tail (right side) */
#feedback-form .inp:after {
  content: "";
  display: inline-block;
  position: absolute;
  right: 0;
  bottom: -1px;
  left: 120px;
  height: 0;
  border-bottom: 1px solid var(--secondary);
}

/* 7) Autofill (so it doesn't go yellow and break visuals) */
#feedback-form .inp input:-webkit-autofill {
  -webkit-box-shadow: 0 0 0px 1000px #fff inset !important;
  transition: background-color 9999s ease-out 0s;
}

/* ===== FINAL PATCH: body bg + perfect label centering + stable elastic ===== */

html,
body {
  background: #f2f2f2 !important;
}

#main-wrapper,
.main-wrapper,
.site,
.site-content {
  background: transparent !important;
}

#feedback-form .inp .label {
  top: 50%;
  transform: translateY(-50%);
}

#feedback-form .inp input {
  font-size: 18px;
  line-height: 24px;
  padding: 12px 0 !important;
}

#feedback-form .inp input:not(:placeholder-shown) + span,
#feedback-form .inp input:valid + span {
  transform: translateY(-26px) scale(0.75) !important;
}

#feedback-form .inp input:focus + span {
  transform: translateY(-44px) scale(0.75) !important;
}

#feedback-form .inp svg path {
  transition: none !important;
}

#feedback-form label.inp svg {
  position: absolute;
  left: 14px;
  right: 14px;
  width: calc(100% - 28px);
  height: 26px;
  pointer-events: none;
  top: 23px;
}
