@font-face {
  font-family: 'M';
  src: url('fonts/Montserrat-Regular.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
}
@font-face {
  font-family: 'M';
  src: url('fonts/Montserrat-Medium.woff2') format('woff2');
  font-weight: 500;
  font-style: normal;
}
@font-face {
  font-family: 'M';
  src: url('fonts/Montserrat-SemiBold.woff2') format('woff2');
  font-weight: 600;
  font-style: normal;
}

:root {
  font-family: 'M', sans-serif;
  --link-hover-transition: 0.3s;
  --link-unhover-transition: 0.1s;
  --media-query-transition: 0.15s;
}

* {
  box-sizing: border-box;
}
::selection {
  background-color: rgb(216, 215, 189);
  color: rgb(25, 25, 25);
}
html {
  background: rgb(255, 253, 249);
  color: rgb(25, 25, 25);
  margin: 0;
  padding: 0;
  font-size: 16px;
  scroll-behavior: smooth;
}

body {
  background: rgb(255, 253, 249);
  margin: 0;
}
body:before {
  content: '';
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 130px;
  background: linear-gradient(to bottom, rgb(255, 253, 249) 0%, transparent);
  z-index: 5;
  opacity: 0;
  pointer-events: none;
}
@media (max-width: 700px) {
  body {
    padding-top: 90px;
    opacity: 1;
  }
  body:before {
    opacity: 1;
  }
}

h2 {
  font-size: 23px;
  line-height: 1.1;
  font-weight: 600;
}

a {
  text-decoration: none;
  color: rgb(25, 25, 25);
}
a u {
  text-decoration: none;
  display: inline-block;
  line-height: 0.9;
  position: relative;
}
a u:after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: -2px;
  height: 1px;
  background: rgba(25, 25, 25, 0.2);
  transition: background-color var(--link-hover-transition);
}
a:hover u:after {
  background: rgba(25, 25, 25, 0.7);
  transition-duration: var(--link-hover-transition);
}

.constraint {
  max-width: 990px;
  padding: 0 30px;
  position: relative;
}

.composition {
  display: flex;
  flex-direction: row;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
  margin-top: 40px;
}
@media (max-width: 700px) {
  .composition {
    flex-direction: column;
    align-items: flex-start;
    gap: 25px;
  }
}

.hero {
  max-width: 400px;
  width: 45%;
}

@media (max-width: 770px) {
  .hero {
    width: 40%;
  }
}
@media (max-width: 700px) {
  .hero {
    width: 50%;
    min-width: 400px;
  }
}
@media (max-width: 600px) {
  .hero {
    width: 100%;
    min-width: auto;
  }
}

.features {
  list-style: none;
  padding: 0;
  margin: 0 0 -8px;
  line-height: 1.5;
  font-size: clamp(15px, calc(15px + (18 - 15) * ((100vw - 760px) / (930 - 760))), 18px);
}
@media (max-width: 700px) {
  .features {
    font-size: 14px;
    font-weight: 500;
    margin-left: -1.4em;
    margin-top: 20px;
  }
}
.features li::before {
  content: '— ';
  margin-right: 2px;
  opacity: 0.6;
  font-weight: 400;
}

.navigation {
  list-style: none;
  padding: 0;
  margin: 40px 0 0 -15px;
  display: flex;
  gap: 0;
  align-items: center;
  font-size: 16px;
  position: relative;
}
@media (max-width: 900px) {
  .navigation { font-size: 15px; }
}
@media (max-width: 860px) {
  .navigation { font-size: 14px; }
}
@media (max-width: 700px) {
  .navigation {
    width: 100%;
    flex-wrap: wrap;
    gap: 25px 0;
    font-size: 16px;
    margin-top: 30px;
  }
}

.navigation__item { position: relative; }
.navigation__item.for-desktop {
  display: block;
}
@media (max-width: 700px) {
  .navigation__item.for-desktop { display: none; }
}

.navigation a {
  display: inline-block;
  line-height: 0.9;
  font-weight: 500;
}
.navigation a:hover u:after {
  background: rgba(25, 25, 25, 0.7);
  transition-duration: var(--link-hover-transition);
}

.navigation__additional {
  display: inline-block;
  position: absolute;
  top: 100%;
  left: 15px;
  font-size: 11px;
  opacity: 0.8;
  margin-top: -2px;
}

.navigation__link {
  padding: 10px 15px;
}


.lead-button {
  appearance: none;
  border: none;
  box-shadow: none;
  cursor: pointer;
  position: sticky;
  padding: 10px 12px;
  border-radius: 6px;
  font-family: inherit;
  font-weight: 500;
  font-size: 16px;
  color: #fff;
  background: #111;
  z-index: 20;
  box-shadow: 0 2px 20px rgba(0, 0, 0, 0.4);
  display: block;
  margin: -37px 0 0 auto;
  top: 20px;
}
@media (max-width: 900px) {
  .lead-button {
    font-size: 15px;
    margin-top: -36px;
  }
}
@media (max-width: 860px) {
  .lead-button {
    font-size: 14px;
    margin-top: -35px;
  }
}
@media (max-width: 700px) {
  .lead-button {
    position: fixed;
    left: 50%;
    transform: translateX(-50%);
    top: 30px;
    margin: 0;
    padding: 10px 20px;
    font-weight: 600;
  }
}

.photos {
  position: relative;
  max-width: 930px;
  margin: 50px auto 0;
}
@media (max-width: 860px) {
  .photos {
    margin: 60px -30px 0;
  }
  .photos:after {
    position: absolute;
    right: 0;
    top: 0;
    bottom: 0;
    width: 20px;
    content: '';
    background: linear-gradient(to right, transparent, rgb(255, 253, 249));
    z-index: 2;
    pointer-events: none;
  }
}

.photos__wrapper {
  overflow: auto;
}
@media (max-width: 860px) {
  .photos__wrapper {
    overflow-x: auto;
    overflow-y: hidden;
  }
  .photos__wrapper:after {
    position: absolute;
    left: 100vw;
    margin-left: -20px;
    top: 0;
    bottom: 0;
    width: 20px;
    content: '';
    background: linear-gradient(to right, transparent, rgb(255, 253, 249));
    z-index: 2;
    pointer-events: none;
  }
}

.photos__content {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 20px;
}
@media (max-width: 860px) {
  .photos__content {
    grid-auto-flow: column;
    width: max-content;
    grid-auto-columns: minmax(140px, 1fr);
    grid-template-rows: repeat(2, 1fr);
    padding-right: 20px;
  }
}
@media (max-width: 700px) {
  .photos__content { grid-template-rows: repeat(1, 1fr); }
}

.photos__item {
  aspect-ratio: 17 / 25;
  background-size: cover;
  background-position: center;
}
.photos__item.is-wide {
  grid-column: span 2;
  aspect-ratio: 36 / 25;
}
.photos img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.realistic-marker-highlight {
  background-image: url('data:image/svg+xml;base64,...');
  background-position: 50% 50%;
  background-repeat: no-repeat;
  background-size: cover;
  filter: hue-rotate(-30deg);
  margin-left: -30px;
  position: absolute;
  width: 370px;
  height: 75px;
  z-index: -1;
  opacity: 0.3;
}

.price { margin-top: 40px; }

.price__description {
  font-size: 14px;
  font-weight: 500;
  margin-top: -10px; 
  margin-bottom: 25px;
}
.price-tables {
  display: flex;
  flex-direction: row;
  align-items: start;
  gap: 100px;
}
@media (max-width: 820px) {
  .price-tables { gap: 80px; }
}
@media (max-width: 700px) {
  .price-tables {
    flex-direction: column;
    gap: 15px;
  }
}

.price-table table {
  width: 300px;
  font-size: 16px;
  margin: 0 auto;
}
@media (max-width: 820px) {
  .price-table table { font-size: 14px; }
}
.price-table table td,
.price-table table th {
  text-align: right;
  padding: 0 0 8px;
  width: 70px;
  vertical-align: top;
  white-space: nowrap;
}
.price-table table th {
  padding-bottom: 15px;
}
.price-table table td:first-child,
.price-table table th:first-child {
  text-align: left;
  width: auto;
}

.price-table + .price-table {
  margin-top: 15px;
}
@media (max-width: 700px) {
  .price-tables__column + .price-tables__column table {
    width: 272px;
  }
}

.price-table__hint {
  position: absolute;
  margin-left: 3px;
  margin-top: 3px;
  font-size: 12px;
  opacity: 0.3;
}
@media (max-width: 700px) {
  .price-table__hint {
    margin-top: 2px;
  }
}
.price-table__currency {
  font-size: 10px;
  opacity: 0.5;
}
.price-table__subhead {
  font-size: 14px;
  font-weight: 500;
  display: block;
  padding-top: 5px;
}
.price-table table td.price-table__description {
  font-size: 14px;
  white-space: normal;
}

.rules {
  max-width: 700px;
  margin-top: 20px;
}
.rules h3 {
  margin: 15px 0 5px;
  padding: 0;
  font-size: 16px;
}
.rules p {
  margin: 0;
  padding: 0;
  font-size: 14px;
  line-height: 1.3;
}
.rules p + p {
  margin-top: 10px;
}

.footer {
  margin-top: 50px;
  padding-bottom: 60px;
  position: relative;
  display: flex;
  width: 100%;
}
@media (max-width: 700px) {
  .footer {
    justify-content: center;
  }
}

.logo {
  width: 200px;
  height: 200px;
}
@media (max-width: 700px) {
  .logo {
    width: 180px;
    height: 180px;
  }
}
