/* ____________________________ STANDART CSS START _______________*/

* {
  margin: 0px;
  padding: 0px;
  box-sizing: border-box;
}

[v-cloak] {
  display: none;
}

html,
body {
  width: 100%;
  overflow-x: hidden;
  /* opacity: 0; */
}

/* body>div:first-child {
  display: none !important;
} */

body::-webkit-scrollbar {
  width: 0px;
}

body {
  --font-regular: "MabryPro-Regular";
  --font-italic: "MabryPro-Italic";

  --text-normal: 12px;
  --line-height-normal: 20px;
  --letter-spacing-normal: 0.02em;

  --color-text: #111;
  --color-text-invert: #fff;

  --color-bg: #fff;
  --color-bg-invert: #111;

  --color-border: #111;
  --color-border-invert: #fff;

  --padding-lr: 20px;
}

/* strong, b, .bold {
  font-family: var(--font-bold);
} */

i, em {
  font-family: var(--font-italic);
  font-style: initial;
}

.main {
  position: relative;
  width: 100%;
  display: flex;
  flex-direction: column;
  min-height: 100vh;

  font-family: var(--font-regular);
  color: var(--color-text);

  font-size: var(--text-normal);
  line-height: var(--line-height-normal);
  letter-spacing: var(--letter-spacing-normal);

  background-color: var(--color-bg);
  box-sizing: border-box;
}

/* .title {
  font-family: var(--font-title);
  font-size: var(--text-title);
  line-height: var(--line-height-title);
  letter-spacing: var(--letter-spacing-title);
} */

footer {
  margin-top: auto;
  position: relative;
  z-index: 10;
}

.white-page{
  /* display: none; */
  width: 100%;
  height: 100vh;
  background-color: var(--color-bg);
  position: fixed;
  top: 0px;
  left: 0px;
  z-index: 1000;
  transition: opacity .5s;
}
.white-page-2{
  display: none;
  width: 100%;
  height: 100vh;
  background-color: rgba(255, 255, 255, 0.6);
  position: fixed;
  top: 0px;
  left: 0px;
  z-index: 1000;
  transition: opacity .2s;
}
.white-page-2.hidden{
  opacity: 0;
}

.white-page.hidden{
  opacity: 0;
}

main {
  width: 100%;
}

a {
  color: inherit;
  text-decoration: inherit;
  transition: opacity 0.2s;
  cursor: pointer !important;
  position: relative;
  display: inline-block;
}

strong {
  font-weight: normal;
}

p {
  line-height: var(--line-height-normal);
  margin-bottom: var(--line-height-normal);

}

p:last-of-type {
  margin-bottom: 0px;
}

ul,
li {
  list-style: none;
  display: inline-block;
}

.mobile-only,
.mobile-menu,
.hidden-gallery,
.hidden-line {
  display: none !important;
}

button,
select,
input {
  background: none;
  border: none;
  font-family: inherit;
  font-size: inherit;
  text-transform: inherit;
  box-sizing: border-box;
  transition: all 0.2s;
  cursor: pointer;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  border-radius: 0px !important;
}

input {
  cursor: initial;
}

input::placeholder, textarea::placeholder {
  color: inherit;
  font-size: inherit;
}

button:active,
select:active,
input:active,
button:focus,
select:focus,
input:focus {
  outline: none;
}

h1,
h2,
h3,
h4 {
  font-weight: inherit;
  font-size: inherit;
}

img, video {
  width: 100%;
  box-sizing: border-box;
  vertical-align: bottom;
}


strong{
  font-family: var(--font-italic);
  font-weight: normal;
}

button.disabled{
  opacity: 0.7;
  pointer-events: none;
}

.lined-link, p a {
  position: relative;
}

.lined-link::after, p a::after {
  content: '';
  position: absolute;
  bottom: 0px;
  /* left: 1px; */
  left: 0px;
  /* width: calc(100% - 2px); */
  width: 100%;
  height: 1px;
  background-color: var(--color-text);
  transition: width 0.2s;
}

.lined-link:hover::after, p a:hover::after {
  width: 0px;
}

a {
  position: relative;
}

a::after {
  content: '';
  position: absolute;
  bottom: 0px;
  left: 1px;
  width: 0px;
  height: 1px;
  background-color: var(--color-text);
  transition: width 0.2s;
}

a:hover::after {
  /* width: calc(100% - 2px); */
  width: 100%;
}

/* ____________________________ IMAGE ROTATOR START _______________*/

.image-rotator{
  position: relative;
  width: 100%;
  height: 100vh;
  font-size: 0px;
  line-height: 0px;
  z-index: 100;
}

.image-rotator-item{
  position: absolute;
  left: 0px;
  top: 0px;
  transition: opacity 0.7s;
  opacity: 0;
  width: 100%;
  height: 100%;
  
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}

.image-rotator-item.current{
  position: static;
  padding: 0px;
  opacity: 1;
}

/* ____________________________ IMAGE ROTATOR END _______________*/

/* ____________________________ NEWSLETTER START _______________*/

.newsletter{
  position: relative;
  z-index: 100;
  height: 18px;
  transform: scale(1, 0.92);
  -webkit-transform: scale(1, 0.92); /* Safari and Chrome */
  -moz-transform: scale(1, 0.92); /* Firefox */
  -ms-transform: scale(1, 0.92); /* IE 9+ */
  -o-transform: scale(1, 0.92); /* Opera */
}

.newsletter input{
  display: inline-block;
  font-family: var(--font-normal);
  line-height: var(--line-height-normal);
  letter-spacing: var(--letter-spacing-normal);
  color: var(--color-text);
  width: 100%;
}

.newsletter input::placeholder{
  font-family: var(--font-normal);
  font-size: var(--font-size-normal);
  line-height: var(--line-height-normal);
  letter-spacing: var(--letter-spacing-normal);
  color: var(--color-text);
}

/* .newsletter::before{
  position: absolute;
  content: '';
  height: 1px;
  width: calc(100% - 20px);
  bottom: -2px;
  left: 0px;
  background-color: var(--color-text);
} */

.newsletter button{
  display: inline-block;
  position: absolute;
  right: 0px;
}

.newsletter input:focus::placeholder{
  opacity: 0;
}

.newsletter-checkbox form{
  display: none;
  position: relative;
  /* width: 200px; */
  margin-top: -10px;
}

.newsletter-checkbox-text{
  /* width: 200px; */
  display: inline-block;
  text-align: right;
}

.newsletter-checkbox-text:hover{
  cursor: pointer;
}

.newsletter-checkbox {
  /* width: 200px; */
}

.newsletter-checkbox>input {
  position: absolute;
  z-index: -1;
  opacity: 0;
  margin: 0px;
}

.newsletter-checkbox>input:checked + .newsletter-checkbox-text {
  display: none;
}

.newsletter-white-page{
  position: fixed;
  top: 0px;
  left: 0px;
  z-index: 99;
  width: 100%;
  height: 100vh;
  background-color: rgba(255, 255, 255, 0.5);
  opacity: 0;
  transform: translateY(100%);
  transition: opacity 0.2s;
}

.newsletter-checkbox>input:checked ~ form {
  display: inline-block;
}

.newsletter-checkbox>input:checked ~ .newsletter-white-page {
  transform: translateY(0px);
  opacity: 1;
}

.newsletter-thanks{
  display: none;
  text-align: right;
  width: 200px;
}

.newsletter-checkbox form input:focus::placeholder{
  color: transparent;
}

.newsletter-checkbox form input{
  background-color: transparent !important;
  color: inherit !important;
  text-transform: none;
  height: 18px;
  width: 186px;
} 

input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
input:-webkit-autofill:active,
input:focus,
input:-internal-autofill-previewed,
input:-internal-autofill-selected {
  color: inherit !important;
  background-color: transparent !important;
  background-position: 0 0;
  -webkit-box-shadow: 0 0 0 30px var(--color-bg) inset !important;
  -webkit-text-fill-color: var(--color-text) !important;
  caret-color: var(--color-text) !important;
}

.newsletter-checkbox form button{
  color: inherit !important;
}

/* ____________________________ NEWSLETTER END _______________*/



/* ____________________________ STANDART CSS END _______________*/


header, footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 15px var(--padding-lr);
}

main {
  min-height: calc(100vh - 140px);
  padding: 20px var(--padding-lr);
}

.home {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr;
  grid-template-rows: repeat(4, calc((100% - 180px) / 4));
  grid-column-gap: 10px;
  grid-row-gap: 60px;
  height: calc(100vh - 140px);
}

.home-link img, .home-link video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.home-link {
  position: relative;
  transition: opacity 0.2s;
}

a.home-link::after {
  display: none;
}

a.home-link:hover {
  opacity: 0.6;
}

.home-link-title {
  position: absolute;
  left: 0px;
  bottom: 0px;
  transform: translateY(100%);
  line-height: 18px;
  padding-top: 5px;
}

.works-page>.title {
  position: absolute;
  z-index: 2;
  top: 15px;
  left: calc(((100vw - 110px) / 8) * 4 + 60px);
  display: inline-block;
}

.works-page>.nav {
  position: absolute;
  z-index: 2;
  top: 15px;
  left: calc(((100vw - 110px) / 8) * 6 + 80px);
  display: inline-flex;
  flex-direction: column;
}
.works-page>.nav a::after {
  display: none;
}
.works-page>.nav a{
  transition: all 0.2s;
}
.works-page>.nav .current, .works-page>.nav a:hover {
  font-family: var(--font-italic);
}

.works {
  display: none;
  grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr;
  /* grid-template-rows: 1fr 1fr 1fr 1fr; */
  grid-column-gap: 10px;
  grid-row-gap: 60px;
}

.works.current {
  display: grid;
}

.works-list {
  display: none;
  grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr;
  grid-template-rows: 1fr 1fr 1fr 1fr;
  grid-column-gap: 10px;
  grid-row-gap: 60px;
  height: calc(100vh - 140px);
}

.works-list-block {
  grid-column: 5/9;
  grid-row: 1/3;
  padding-top: 15px;
  line-height: 24px;
}

.works-list-item {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-column-gap: 10px;
}

.works-list-item:hover {
  font-family: var(--font-italic);
  cursor: pointer;
}

.works-list-item::after {
  display: none;
}

.works-list-item-about {
  display: flex;
  justify-content: space-between;
}
.works-list.current {
  display: grid;
}

.works-list-image {
  position: relative;
}

.works-list-image img {
  width: 100%;
  position: absolute;
  left: 0px;
  top: 0px;
}

.gallery-item {
  transition: opacity 0.2s;
}

.gallery-item::after {
  display: none !important;
}

.gallery-item.hover {
  opacity: 0.2;
}

.right-title {
  text-align: right;
}

.photo-title {
  line-height: 18px;
  padding-top: 5px;
}

.work-page>.title {
  position: absolute;
  z-index: 2;
  top: 15px;
  left: calc(((100vw - 110px) / 8) * 2 + 40px);
  display: inline-flex;
  flex-direction: column;
}

.work-page>.description_short {
  position: absolute;
  z-index: 2;
  top: 15px;
  left: calc(((100vw - 110px) / 8) * 4 + 60px);
  display: inline-block;
}

.work-page>.description2 {
  position: absolute;
  z-index: 2;
  top: 15px;
  left: calc(((100vw - 110px) / 8) * 6 + 80px);
  display: inline-flex;
  flex-direction: column;
}

.work-page {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr;
  grid-column-gap: 10px;
  height: calc(100vh - 140px);
}

.work-page .image {
  position: relative;
  grid-column: 1/5;
}

.work-page .image img {
  opacity: 0;
  transition: opacity 0.2s;
  position: absolute;
  width: auto;
  max-width: 100%;
  height: 100%;
  max-height: calc(100vh - 140px);
  object-fit: contain;
  object-position: top left;
  left: 0px;
  top: 0px;
}

.work-page .image .current {
  opacity: 1;
}

.leftArrow {
  cursor: w-resize;
}

.rightArrow {
  cursor: e-resize;
}

.work-page .about {
  grid-column: 5/8;
  display: flex;
  flex-direction: column;
}

.work-page .count {
  margin-top: auto;
}

.work-page .title a::after {
  display: none;
}

.work-page .title .close {
  display: none;
  position: absolute;
  left: 0px;
  font-family: var(--font-italic);
}

.work-page .title:hover .name {
  opacity: 0;
}

.work-page .title:hover .close {
  display: inline-block;
}

.text-page {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr;
  grid-column-gap: 10px;
}

.text-page>.title {
  position: absolute;
  z-index: 2;
  top: 15px;
  left: calc(((100vw - 110px) / 8) * 4 + 60px);
  display: inline-block;
}

.text-page .image {
  position: relative;
  grid-column: 1/5;
  display: flex;
  flex-direction: column;
  min-height: calc(100vh - 140px);
}

.text-page .image img {
  /* position: absolute; */
  width: calc(100% - 90px);
  left: 0px;
  top: 0px;
}

.text-page .about {
  grid-column: 5/8;
  position: relative;
  overflow-x: visible;
}

.text-page .about>div {
  position: fixed;
  width: auto;
  height: calc(100vh - 70px);
  z-index: 1;
  overflow-y: scroll;
  top: 70px;
  overflow-x: visible;
  padding-bottom: 70px;
}

.text-page .about>div>p {
  width: calc(((100vw - 110px) / 8) * 3 + 20px);
}

.text-block-title {
  margin-top: 36px;
  font-family: var(--font-italic);
}


.text-block-dates {
  margin-top: 18px;
  display: grid;
  grid-template-columns: 70px auto;
  white-space: nowrap;
}

.under-image-title {
  font-family: var(--font-italic);
  margin-bottom: 20px;
}

.under-image {
  margin-top: auto;
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1fr;
  grid-column-gap: 10px;
  padding-top: 40px;
  /* margin-top: 80px; */
}

.under-image>div:first-child {
  grid-column: 1/3;
}

.under-image>div:last-child {
  grid-column: 3/5;
}

/* .copyright {
  font-size: 24px;
  line-height: 12px !important;
  vertical-align: bottom;
} */

.logo::after {
  display: none;
}

.under-image a::after {
  width: 0px;
}

.under-image a:hover::after {
  width: calc(100% - 2px);
}

.mobile-images, .mobile-images-page, .back-mobile-block {
  display: none;
}

.video-page {
  position: fixed;
  background-color: #111;
  color: #fff;
  display: none;
  grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr;
  grid-column-gap: 10px;
  height: 100vh;
  left: 0px;
  top: 0px;
  padding: 90px var(--padding-lr);
  z-index: 1000;
}

.video {
  grid-column: 4/9;
}

.video>div {
  position: relative;
  display: inline-block;
  height: auto;
}

.close-video {
  position: absolute;
  right: 0px;
  bottom: 0px;
  transform: translateY(100%);
  line-height: 18px;
  padding-top: 5px;
  z-index: 10;
}

.close-video::after {
  background-color: #fff;
}

.open-video {
  cursor: pointer;
}