@charset "UTF-8";
/* ============================================================================
   ADVANCED CSS RESET
   ============================================================================ */
*,
*::before,
*::after {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  -webkit-tap-highlight-color: transparent;
}

* {
  margin: 0;
  padding: 0;
  font: inherit;
}

img,
picture,
video,
canvas,
svg {
  display: block;
  max-width: 100%;
  height: auto;
  vertical-align: middle;
  -o-object-fit: cover;
     object-fit: cover;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 0;
  font-size: inherit;
  font-weight: inherit;
  text-wrap: balance;
}

p {
  margin: 0;
  text-wrap: pretty;
}

ol,
ul,
menu {
  list-style: none;
  margin: 0;
  padding: 0;
}

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

button,
input[type=button],
input[type=reset],
input[type=submit] {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border: none;
  background: none;
  cursor: pointer;
  font: inherit;
  color: inherit;
  margin: 0;
  padding: 0;
  text-align: center;
}

button:disabled,
input:disabled {
  cursor: not-allowed;
  opacity: 0.4;
}

input,
textarea,
select {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border: none;
  border-radius: 0;
  background: transparent;
  font: inherit;
  color: inherit;
  margin: 0;
  padding: 0;
  width: 100%;
  max-width: 100%;
}

input[type=number] {
  -moz-appearance: textfield;
  -webkit-appearance: textfield;
          appearance: textfield;
}

input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

input[type=search]::-ms-clear {
  display: none;
}

input[type=date],
input[type=time],
input[type=datetime-local],
input[type=month] {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  text-align: left !important;
  -webkit-text-align: left !important;
  width: 100%;
}
input[type=date]::-webkit-calendar-picker-indicator,
input[type=time]::-webkit-calendar-picker-indicator,
input[type=datetime-local]::-webkit-calendar-picker-indicator,
input[type=month]::-webkit-calendar-picker-indicator {
  background-image: url("../img/icons/calendar-picker.svg");
  position: absolute;
  left: var(--spacing-8);
  opacity: 0;
}

@supports (-webkit-touch-callout: none) {
  input[type=date],
  input[type=time],
  input[type=datetime-local] {
    text-align: left !important;
  }
}
table {
  border-collapse: collapse;
  border-spacing: 0;
  width: 100%;
}

blockquote,
q {
  quotes: none;
}

blockquote::before,
blockquote::after,
q::before,
q::after {
  content: "";
  content: none;
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
nav,
section {
  display: block;
}

summary {
  cursor: pointer;
}

dialog {
  /* Стили для диалоговых окон */
  border: none;
  padding: 0;
}

hr {
  border: none;
  border-top: 1px solid #ddd;
  margin: 1em 0;
  height: 0;
  overflow: visible;
}

mark {
  background-color: #fff9c4;
  color: #000;
  padding: 0.1em 0.3em;
}

ins {
  background-color: #e8f5e9;
  text-decoration: none;
}

del {
  text-decoration: line-through;
  opacity: 0.7;
}

abbr[title],
dfn[title] {
  border-bottom: 1px dotted #666;
  cursor: help;
  text-decoration: none;
}

code,
kbd,
samp,
pre {
  font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;
  font-size: 0.9em;
}

pre {
  overflow: auto;
  white-space: pre-wrap;
  word-wrap: break-word;
}

iframe {
  border: none;
  max-width: 100%;
}

embed,
object {
  max-width: 100%;
}

svg:not([fill]) {
  fill: currentColor;
}

@media print {
  *,
  *::before,
  *::after {
    background: transparent !important;
    color: #000 !important;
    -webkit-box-shadow: none !important;
            box-shadow: none !important;
    text-shadow: none !important;
  }
  a,
  a:visited {
    text-decoration: underline;
  }
  pre,
  blockquote {
    page-break-inside: avoid;
  }
  thead {
    display: table-header-group;
  }
  tr,
  img {
    page-break-inside: avoid;
  }
  img {
    max-width: 100% !important;
  }
  p,
  h2,
  h3 {
    orphans: 3;
    widows: 3;
  }
  h2,
  h3 {
    page-break-after: avoid;
  }
}
::-moz-selection {
  background-color: rgba(77, 144, 254, 0.3);
  color: inherit;
}
::selection {
  background-color: rgba(77, 144, 254, 0.3);
  color: inherit;
}

::-moz-selection {
  background-color: rgba(77, 144, 254, 0.3);
  color: inherit;
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    -webkit-animation-duration: 0.01ms !important;
            animation-duration: 0.01ms !important;
    -webkit-animation-iteration-count: 1 !important;
            animation-iteration-count: 1 !important;
    -webkit-transition-duration: 0.01ms !important;
         -o-transition-duration: 0.01ms !important;
            transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
[data-js-focus-visible] :focus:not([data-focus-visible-added]) {
  outline: none;
}

.js-focus-visible :focus:not(.focus-visible) {
  outline: none;
}

@media (hover: none) and (pointer: coarse) {
  a,
  button,
  input,
  label,
  select,
  textarea {
    -ms-touch-action: manipulation;
        touch-action: manipulation;
  }
}
/**
 * Swiper 8.4.2
 * Most modern mobile touch slider and framework with hardware accelerated transitions
 * https://swiperjs.com
 *
 * Copyright 2014-2022 Vladimir Kharlampidi
 *
 * Released under the MIT License
 *
 * Released on: September 15, 2022
 */
@font-face {
  font-family: swiper-icons;
  src: url("data:application/font-woff;charset=utf-8;base64, d09GRgABAAAAAAZgABAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAGRAAAABoAAAAci6qHkUdERUYAAAWgAAAAIwAAACQAYABXR1BPUwAABhQAAAAuAAAANuAY7+xHU1VCAAAFxAAAAFAAAABm2fPczU9TLzIAAAHcAAAASgAAAGBP9V5RY21hcAAAAkQAAACIAAABYt6F0cBjdnQgAAACzAAAAAQAAAAEABEBRGdhc3AAAAWYAAAACAAAAAj//wADZ2x5ZgAAAywAAADMAAAD2MHtryVoZWFkAAABbAAAADAAAAA2E2+eoWhoZWEAAAGcAAAAHwAAACQC9gDzaG10eAAAAigAAAAZAAAArgJkABFsb2NhAAAC0AAAAFoAAABaFQAUGG1heHAAAAG8AAAAHwAAACAAcABAbmFtZQAAA/gAAAE5AAACXvFdBwlwb3N0AAAFNAAAAGIAAACE5s74hXjaY2BkYGAAYpf5Hu/j+W2+MnAzMYDAzaX6QjD6/4//Bxj5GA8AuRwMYGkAPywL13jaY2BkYGA88P8Agx4j+/8fQDYfA1AEBWgDAIB2BOoAeNpjYGRgYNBh4GdgYgABEMnIABJzYNADCQAACWgAsQB42mNgYfzCOIGBlYGB0YcxjYGBwR1Kf2WQZGhhYGBiYGVmgAFGBiQQkOaawtDAoMBQxXjg/wEGPcYDDA4wNUA2CCgwsAAAO4EL6gAAeNpj2M0gyAACqxgGNWBkZ2D4/wMA+xkDdgAAAHjaY2BgYGaAYBkGRgYQiAHyGMF8FgYHIM3DwMHABGQrMOgyWDLEM1T9/w8UBfEMgLzE////P/5//f/V/xv+r4eaAAeMbAxwIUYmIMHEgKYAYjUcsDAwsLKxc3BycfPw8jEQA/gZBASFhEVExcQlJKWkZWTl5BUUlZRVVNXUNTQZBgMAAMR+E+gAEQFEAAAAKgAqACoANAA+AEgAUgBcAGYAcAB6AIQAjgCYAKIArAC2AMAAygDUAN4A6ADyAPwBBgEQARoBJAEuATgBQgFMAVYBYAFqAXQBfgGIAZIBnAGmAbIBzgHsAAB42u2NMQ6CUAyGW568x9AneYYgm4MJbhKFaExIOAVX8ApewSt4Bic4AfeAid3VOBixDxfPYEza5O+Xfi04YADggiUIULCuEJK8VhO4bSvpdnktHI5QCYtdi2sl8ZnXaHlqUrNKzdKcT8cjlq+rwZSvIVczNiezsfnP/uznmfPFBNODM2K7MTQ45YEAZqGP81AmGGcF3iPqOop0r1SPTaTbVkfUe4HXj97wYE+yNwWYxwWu4v1ugWHgo3S1XdZEVqWM7ET0cfnLGxWfkgR42o2PvWrDMBSFj/IHLaF0zKjRgdiVMwScNRAoWUoH78Y2icB/yIY09An6AH2Bdu/UB+yxopYshQiEvnvu0dURgDt8QeC8PDw7Fpji3fEA4z/PEJ6YOB5hKh4dj3EvXhxPqH/SKUY3rJ7srZ4FZnh1PMAtPhwP6fl2PMJMPDgeQ4rY8YT6Gzao0eAEA409DuggmTnFnOcSCiEiLMgxCiTI6Cq5DZUd3Qmp10vO0LaLTd2cjN4fOumlc7lUYbSQcZFkutRG7g6JKZKy0RmdLY680CDnEJ+UMkpFFe1RN7nxdVpXrC4aTtnaurOnYercZg2YVmLN/d/gczfEimrE/fs/bOuq29Zmn8tloORaXgZgGa78yO9/cnXm2BpaGvq25Dv9S4E9+5SIc9PqupJKhYFSSl47+Qcr1mYNAAAAeNptw0cKwkAAAMDZJA8Q7OUJvkLsPfZ6zFVERPy8qHh2YER+3i/BP83vIBLLySsoKimrqKqpa2hp6+jq6RsYGhmbmJqZSy0sraxtbO3sHRydnEMU4uR6yx7JJXveP7WrDycAAAAAAAH//wACeNpjYGRgYOABYhkgZgJCZgZNBkYGLQZtIJsFLMYAAAw3ALgAeNolizEKgDAQBCchRbC2sFER0YD6qVQiBCv/H9ezGI6Z5XBAw8CBK/m5iQQVauVbXLnOrMZv2oLdKFa8Pjuru2hJzGabmOSLzNMzvutpB3N42mNgZGBg4GKQYzBhYMxJLMlj4GBgAYow/P/PAJJhLM6sSoWKfWCAAwDAjgbRAAB42mNgYGBkAIIbCZo5IPrmUn0hGA0AO8EFTQAA");
  font-weight: 400;
  font-style: normal;
}
:root {
  --swiper-theme-color: #007aff ;
}

.swiper {
  margin-left: auto;
  margin-right: auto;
  position: relative;
  overflow: hidden;
  list-style: none;
  padding: 0;
  z-index: 1;
}

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

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

.swiper-android .swiper-slide,
.swiper-wrapper {
  -webkit-transform: translate3d(0px, 0, 0);
          transform: translate3d(0px, 0, 0);
}

.swiper-pointer-events {
  -ms-touch-action: pan-y;
      touch-action: pan-y;
}

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

.swiper-slide {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 100%;
  height: 100%;
  position: relative;
  -webkit-transition-property: -webkit-transform;
  transition-property: -webkit-transform;
  -o-transition-property: transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
}

.swiper-slide-invisible-blank {
  visibility: hidden;
}

.swiper-autoheight,
.swiper-autoheight .swiper-slide {
  height: auto;
}

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

.swiper-backface-hidden .swiper-slide {
  -webkit-transform: translateZ(0);
          transform: translateZ(0);
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}

.swiper-3d,
.swiper-3d.swiper-css-mode .swiper-wrapper {
  -webkit-perspective: 1200px;
          perspective: 1200px;
}

.swiper-3d .swiper-cube-shadow,
.swiper-3d .swiper-slide,
.swiper-3d .swiper-slide-shadow,
.swiper-3d .swiper-slide-shadow-bottom,
.swiper-3d .swiper-slide-shadow-left,
.swiper-3d .swiper-slide-shadow-right,
.swiper-3d .swiper-slide-shadow-top,
.swiper-3d .swiper-wrapper {
  -webkit-transform-style: preserve-3d;
          transform-style: preserve-3d;
}

.swiper-3d .swiper-slide-shadow,
.swiper-3d .swiper-slide-shadow-bottom,
.swiper-3d .swiper-slide-shadow-left,
.swiper-3d .swiper-slide-shadow-right,
.swiper-3d .swiper-slide-shadow-top {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 10;
}

.swiper-3d .swiper-slide-shadow {
  background: rgba(0, 0, 0, 0.15);
}

.swiper-3d .swiper-slide-shadow-left {
  background-image: -webkit-gradient(linear, right top, left top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0)));
  background-image: -o-linear-gradient(right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
  background-image: linear-gradient(to left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
}

.swiper-3d .swiper-slide-shadow-right {
  background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0)));
  background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
}

.swiper-3d .swiper-slide-shadow-top {
  background-image: -webkit-gradient(linear, left bottom, left top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0)));
  background-image: -o-linear-gradient(bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
  background-image: linear-gradient(to top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
}

.swiper-3d .swiper-slide-shadow-bottom {
  background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0)));
  background-image: -o-linear-gradient(top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
  background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
}

.swiper-css-mode > .swiper-wrapper {
  overflow: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.swiper-css-mode > .swiper-wrapper::-webkit-scrollbar {
  display: none;
}

.swiper-css-mode > .swiper-wrapper > .swiper-slide {
  scroll-snap-align: start start;
}

.swiper-horizontal.swiper-css-mode > .swiper-wrapper {
  -ms-scroll-snap-type: x mandatory;
      scroll-snap-type: x mandatory;
}

.swiper-vertical.swiper-css-mode > .swiper-wrapper {
  -ms-scroll-snap-type: y mandatory;
      scroll-snap-type: y mandatory;
}

.swiper-centered > .swiper-wrapper::before {
  content: "";
  -ms-flex-negative: 0;
      flex-shrink: 0;
  -webkit-box-ordinal-group: 10000;
      -ms-flex-order: 9999;
          order: 9999;
}

.swiper-centered.swiper-horizontal > .swiper-wrapper > .swiper-slide:first-child {
  -webkit-margin-start: var(--swiper-centered-offset-before);
          margin-inline-start: var(--swiper-centered-offset-before);
}

.swiper-centered.swiper-horizontal > .swiper-wrapper::before {
  height: 100%;
  min-height: 1px;
  width: var(--swiper-centered-offset-after);
}

.swiper-centered.swiper-vertical > .swiper-wrapper > .swiper-slide:first-child {
  -webkit-margin-before: var(--swiper-centered-offset-before);
          margin-block-start: var(--swiper-centered-offset-before);
}

.swiper-centered.swiper-vertical > .swiper-wrapper::before {
  width: 100%;
  min-width: 1px;
  height: var(--swiper-centered-offset-after);
}

.swiper-centered > .swiper-wrapper > .swiper-slide {
  scroll-snap-align: center center;
}

.swiper-virtual .swiper-slide {
  -webkit-backface-visibility: hidden;
  -webkit-transform: translateZ(0);
          transform: translateZ(0);
}

.swiper-virtual.swiper-css-mode .swiper-wrapper::after {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  pointer-events: none;
}

.swiper-virtual.swiper-css-mode.swiper-horizontal .swiper-wrapper::after {
  height: 1px;
  width: var(--swiper-virtual-size);
}

.swiper-virtual.swiper-css-mode.swiper-vertical .swiper-wrapper::after {
  width: 1px;
  height: var(--swiper-virtual-size);
}

:root {
  --swiper-navigation-size: 44px ;
}

.swiper-button-next,
.swiper-button-prev {
  position: absolute;
  top: 50%;
  width: calc(var(--swiper-navigation-size) / 44 * 27);
  height: var(--swiper-navigation-size);
  margin-top: calc(0px - var(--swiper-navigation-size) / 2);
  z-index: 10;
  cursor: pointer;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  color: var(--swiper-navigation-color, var(--swiper-theme-color));
}

.swiper-button-next.swiper-button-disabled,
.swiper-button-prev.swiper-button-disabled {
  opacity: 0.35;
  cursor: auto;
  pointer-events: none;
}

.swiper-button-next.swiper-button-hidden,
.swiper-button-prev.swiper-button-hidden {
  opacity: 0;
  cursor: auto;
  pointer-events: none;
}

.swiper-navigation-disabled .swiper-button-next,
.swiper-navigation-disabled .swiper-button-prev {
  display: none !important;
}

.swiper-button-next:after,
.swiper-button-prev:after {
  font-family: swiper-icons;
  font-size: var(--swiper-navigation-size);
  text-transform: none !important;
  letter-spacing: 0;
  font-variant: initial;
  line-height: 1;
}

.swiper-button-prev,
.swiper-rtl .swiper-button-next {
  left: 10px;
  right: auto;
}

.swiper-button-prev:after,
.swiper-rtl .swiper-button-next:after {
  content: "prev";
}

.swiper-button-next,
.swiper-rtl .swiper-button-prev {
  right: 10px;
  left: auto;
}

.swiper-button-next:after,
.swiper-rtl .swiper-button-prev:after {
  content: "next";
}

.swiper-button-lock {
  display: none;
}

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

.swiper-pagination.swiper-pagination-hidden {
  opacity: 0;
}

.swiper-pagination-disabled > .swiper-pagination,
.swiper-pagination.swiper-pagination-disabled {
  display: none !important;
}

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

.swiper-pagination-bullets-dynamic {
  overflow: hidden;
  font-size: 0;
}

.swiper-pagination-bullets-dynamic .swiper-pagination-bullet {
  -webkit-transform: scale(0.33);
      -ms-transform: scale(0.33);
          transform: scale(0.33);
  position: relative;
}

.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active {
  -webkit-transform: scale(1);
      -ms-transform: scale(1);
          transform: scale(1);
}

.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main {
  -webkit-transform: scale(1);
      -ms-transform: scale(1);
          transform: scale(1);
}

.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev {
  -webkit-transform: scale(0.66);
      -ms-transform: scale(0.66);
          transform: scale(0.66);
}

.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev {
  -webkit-transform: scale(0.33);
      -ms-transform: scale(0.33);
          transform: scale(0.33);
}

.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next {
  -webkit-transform: scale(0.66);
      -ms-transform: scale(0.66);
          transform: scale(0.66);
}

.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next {
  -webkit-transform: scale(0.33);
      -ms-transform: scale(0.33);
          transform: scale(0.33);
}

.swiper-pagination-bullet {
  width: var(--swiper-pagination-bullet-width, var(--swiper-pagination-bullet-size, 8px));
  height: var(--swiper-pagination-bullet-height, var(--swiper-pagination-bullet-size, 8px));
  display: inline-block;
  border-radius: 50%;
  background: var(--swiper-pagination-bullet-inactive-color, #000);
  opacity: var(--swiper-pagination-bullet-inactive-opacity, 0.2);
}

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

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

.swiper-pagination-bullet:only-child {
  display: none !important;
}

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

.swiper-pagination-vertical.swiper-pagination-bullets,
.swiper-vertical > .swiper-pagination-bullets {
  right: 10px;
  top: 50%;
  -webkit-transform: translate3d(0px, -50%, 0);
          transform: translate3d(0px, -50%, 0);
}

.swiper-pagination-vertical.swiper-pagination-bullets .swiper-pagination-bullet,
.swiper-vertical > .swiper-pagination-bullets .swiper-pagination-bullet {
  margin: var(--swiper-pagination-bullet-vertical-gap, 6px) 0;
  display: block;
}

.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,
.swiper-vertical > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic {
  top: 50%;
  -webkit-transform: translateY(-50%);
      -ms-transform: translateY(-50%);
          transform: translateY(-50%);
  width: 8px;
}

.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,
.swiper-vertical > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet {
  display: inline-block;
  -webkit-transition: 0.2s top, 0.2s -webkit-transform;
  transition: 0.2s top, 0.2s -webkit-transform;
  -o-transition: 0.2s transform, 0.2s top;
  transition: 0.2s transform, 0.2s top;
  transition: 0.2s transform, 0.2s top, 0.2s -webkit-transform;
}

.swiper-horizontal > .swiper-pagination-bullets .swiper-pagination-bullet,
.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet {
  margin: 0 var(--swiper-pagination-bullet-horizontal-gap, 4px);
}

.swiper-horizontal > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic,
.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic {
  left: 50%;
  -webkit-transform: translateX(-50%);
      -ms-transform: translateX(-50%);
          transform: translateX(-50%);
  white-space: nowrap;
}

.swiper-horizontal > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,
.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet {
  -webkit-transition: 0.2s left, 0.2s -webkit-transform;
  transition: 0.2s left, 0.2s -webkit-transform;
  -o-transition: 0.2s transform, 0.2s left;
  transition: 0.2s transform, 0.2s left;
  transition: 0.2s transform, 0.2s left, 0.2s -webkit-transform;
}

.swiper-horizontal.swiper-rtl > .swiper-pagination-bullets-dynamic .swiper-pagination-bullet {
  -webkit-transition: 0.2s right, 0.2s -webkit-transform;
  transition: 0.2s right, 0.2s -webkit-transform;
  -o-transition: 0.2s transform, 0.2s right;
  transition: 0.2s transform, 0.2s right;
  transition: 0.2s transform, 0.2s right, 0.2s -webkit-transform;
}

.swiper-pagination-progressbar {
  background: rgba(0, 0, 0, 0.25);
  position: absolute;
}

.swiper-pagination-progressbar .swiper-pagination-progressbar-fill {
  background: var(--swiper-pagination-color, var(--swiper-theme-color));
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  -webkit-transform: scale(0);
      -ms-transform: scale(0);
          transform: scale(0);
  -webkit-transform-origin: left top;
      -ms-transform-origin: left top;
          transform-origin: left top;
}

.swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill {
  -webkit-transform-origin: right top;
      -ms-transform-origin: right top;
          transform-origin: right top;
}

.swiper-horizontal > .swiper-pagination-progressbar,
.swiper-pagination-progressbar.swiper-pagination-horizontal,
.swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite,
.swiper-vertical > .swiper-pagination-progressbar.swiper-pagination-progressbar-opposite {
  width: 100%;
  height: 4px;
  left: 0;
  top: 0;
}

.swiper-horizontal > .swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,
.swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite,
.swiper-pagination-progressbar.swiper-pagination-vertical,
.swiper-vertical > .swiper-pagination-progressbar {
  width: 4px;
  height: 100%;
  left: 0;
  top: 0;
}

.swiper-pagination-lock {
  display: none;
}

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

.swiper-scrollbar-disabled > .swiper-scrollbar,
.swiper-scrollbar.swiper-scrollbar-disabled {
  display: none !important;
}

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

.swiper-scrollbar.swiper-scrollbar-vertical,
.swiper-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-scrollbar-lock {
  display: none;
}

.swiper-zoom-container {
  width: 100%;
  height: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  text-align: center;
}

.swiper-zoom-container > canvas,
.swiper-zoom-container > img,
.swiper-zoom-container > svg {
  max-width: 100%;
  max-height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
}

.swiper-slide-zoomed {
  cursor: move;
}

.swiper-lazy-preloader {
  width: 42px;
  height: 42px;
  position: absolute;
  left: 50%;
  top: 50%;
  margin-left: -21px;
  margin-top: -21px;
  z-index: 10;
  -webkit-transform-origin: 50%;
      -ms-transform-origin: 50%;
          transform-origin: 50%;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  border: 4px solid var(--swiper-preloader-color, var(--swiper-theme-color));
  border-radius: 50%;
  border-top-color: transparent;
}

.swiper-watch-progress .swiper-slide-visible .swiper-lazy-preloader,
.swiper:not(.swiper-watch-progress) .swiper-lazy-preloader {
  -webkit-animation: swiper-preloader-spin 1s infinite linear;
          animation: swiper-preloader-spin 1s infinite linear;
}

.swiper-lazy-preloader-white {
  --swiper-preloader-color: #fff ;
}

.swiper-lazy-preloader-black {
  --swiper-preloader-color: #000 ;
}

@-webkit-keyframes swiper-preloader-spin {
  0% {
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg);
  }
}

@keyframes swiper-preloader-spin {
  0% {
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg);
  }
}
.swiper .swiper-notification {
  position: absolute;
  left: 0;
  top: 0;
  pointer-events: none;
  opacity: 0;
  z-index: -1000;
}

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

.swiper-grid > .swiper-wrapper {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}

.swiper-grid-column > .swiper-wrapper {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}

.swiper-fade.swiper-free-mode .swiper-slide {
  -webkit-transition-timing-function: ease-out;
       -o-transition-timing-function: ease-out;
          transition-timing-function: ease-out;
}

.swiper-fade .swiper-slide {
  pointer-events: none;
  -webkit-transition-property: opacity;
  -o-transition-property: opacity;
  transition-property: opacity;
}

.swiper-fade .swiper-slide .swiper-slide {
  pointer-events: none;
}

.swiper-fade .swiper-slide-active,
.swiper-fade .swiper-slide-active .swiper-slide-active {
  pointer-events: auto;
}

.swiper-cube {
  overflow: visible;
}

.swiper-cube .swiper-slide {
  pointer-events: none;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  z-index: 1;
  visibility: hidden;
  -webkit-transform-origin: 0 0;
      -ms-transform-origin: 0 0;
          transform-origin: 0 0;
  width: 100%;
  height: 100%;
}

.swiper-cube .swiper-slide .swiper-slide {
  pointer-events: none;
}

.swiper-cube.swiper-rtl .swiper-slide {
  -webkit-transform-origin: 100% 0;
      -ms-transform-origin: 100% 0;
          transform-origin: 100% 0;
}

.swiper-cube .swiper-slide-active,
.swiper-cube .swiper-slide-active .swiper-slide-active {
  pointer-events: auto;
}

.swiper-cube .swiper-slide-active,
.swiper-cube .swiper-slide-next,
.swiper-cube .swiper-slide-next + .swiper-slide,
.swiper-cube .swiper-slide-prev {
  pointer-events: auto;
  visibility: visible;
}

.swiper-cube .swiper-slide-shadow-bottom,
.swiper-cube .swiper-slide-shadow-left,
.swiper-cube .swiper-slide-shadow-right,
.swiper-cube .swiper-slide-shadow-top {
  z-index: 0;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}

.swiper-cube .swiper-cube-shadow {
  position: absolute;
  left: 0;
  bottom: 0px;
  width: 100%;
  height: 100%;
  opacity: 0.6;
  z-index: 0;
}

.swiper-cube .swiper-cube-shadow:before {
  content: "";
  background: #000;
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  right: 0;
  -webkit-filter: blur(50px);
          filter: blur(50px);
}

.swiper-flip {
  overflow: visible;
}

.swiper-flip .swiper-slide {
  pointer-events: none;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  z-index: 1;
}

.swiper-flip .swiper-slide .swiper-slide {
  pointer-events: none;
}

.swiper-flip .swiper-slide-active,
.swiper-flip .swiper-slide-active .swiper-slide-active {
  pointer-events: auto;
}

.swiper-flip .swiper-slide-shadow-bottom,
.swiper-flip .swiper-slide-shadow-left,
.swiper-flip .swiper-slide-shadow-right,
.swiper-flip .swiper-slide-shadow-top {
  z-index: 0;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}

.swiper-creative .swiper-slide {
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  overflow: hidden;
  -webkit-transition-property: opacity, height, -webkit-transform;
  transition-property: opacity, height, -webkit-transform;
  -o-transition-property: transform, opacity, height;
  transition-property: transform, opacity, height;
  transition-property: transform, opacity, height, -webkit-transform;
}

.swiper-cards {
  overflow: visible;
}

.swiper-cards .swiper-slide {
  -webkit-transform-origin: center bottom;
      -ms-transform-origin: center bottom;
          transform-origin: center bottom;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  overflow: hidden;
}

.tippy-box[data-animation=fade][data-state=hidden] {
  opacity: 0;
}

[data-tippy-root] {
  max-width: calc(100vw - 10px);
}

.tippy-box {
  position: relative;
  background-color: #333;
  color: #fff;
  border-radius: 4px;
  font-size: 14px;
  line-height: 1.4;
  white-space: normal;
  outline: 0;
  -webkit-transition-property: visibility, opacity, -webkit-transform;
  transition-property: visibility, opacity, -webkit-transform;
  -o-transition-property: transform, visibility, opacity;
  transition-property: transform, visibility, opacity;
  transition-property: transform, visibility, opacity, -webkit-transform;
}

.tippy-box[data-placement^=top] > .tippy-arrow {
  bottom: 0;
}

.tippy-box[data-placement^=top] > .tippy-arrow:before {
  bottom: -7px;
  left: 0;
  border-width: 8px 8px 0;
  border-top-color: initial;
  -webkit-transform-origin: center top;
      -ms-transform-origin: center top;
          transform-origin: center top;
}

.tippy-box[data-placement^=bottom] > .tippy-arrow {
  top: 0;
}

.tippy-box[data-placement^=bottom] > .tippy-arrow:before {
  top: -7px;
  left: 0;
  border-width: 0 8px 8px;
  border-bottom-color: initial;
  -webkit-transform-origin: center bottom;
      -ms-transform-origin: center bottom;
          transform-origin: center bottom;
}

.tippy-box[data-placement^=left] > .tippy-arrow {
  right: 0;
}

.tippy-box[data-placement^=left] > .tippy-arrow:before {
  border-width: 8px 0 8px 8px;
  border-left-color: initial;
  right: -7px;
  -webkit-transform-origin: center left;
      -ms-transform-origin: center left;
          transform-origin: center left;
}

.tippy-box[data-placement^=right] > .tippy-arrow {
  left: 0;
}

.tippy-box[data-placement^=right] > .tippy-arrow:before {
  left: -7px;
  border-width: 8px 8px 8px 0;
  border-right-color: initial;
  -webkit-transform-origin: center right;
      -ms-transform-origin: center right;
          transform-origin: center right;
}

.tippy-box[data-inertia][data-state=visible] {
  -webkit-transition-timing-function: cubic-bezier(0.54, 1.5, 0.38, 1.11);
       -o-transition-timing-function: cubic-bezier(0.54, 1.5, 0.38, 1.11);
          transition-timing-function: cubic-bezier(0.54, 1.5, 0.38, 1.11);
}

.tippy-arrow {
  width: 16px;
  height: 16px;
  color: #333;
}

.tippy-arrow:before {
  content: "";
  position: absolute;
  border-color: transparent;
  border-style: solid;
}

.tippy-content {
  position: relative;
  padding: 5px 9px;
  z-index: 1;
}

/**
 * Миксин для медиа-запросов "min-width" (от указанного брейкпоинта и выше)
 * @param {string} $breakpoint - Ключ из карты $breakpoints
 */
/**
 * Миксин для медиа-запросов "max-width" (до указанного брейкпоинта, не включая его)
 * Вычитает 0.02px чтобы избежать перекрытия с media-up на граничном значении
 * @param {string} $breakpoint - Ключ из карты $breakpoints
 */
/**
 * Миксин для медиа-запросов между двумя брейкпоинтами
 * @param {string} $lower - Нижний брейкпоинт (включительно)
 * @param {string} $upper - Верхний брейкпоинт (не включая)
 */
/**
 * Адаптивное CSS свойство с плавным изменением значения
 * Генерирует промежуточные значения между $startSize и $minSize
 * в зависимости от ширины экрана
 * 
 * @param {string} $property - CSS свойство (font-size, padding, margin и т.д.)
 * @param {number} $startSize - Значение на максимальной ширине (px)
 * @param {number} $minSize - Значение на минимальной ширине (px)
 * @param {number} $widthFrom - Ширина, с которой начинается адаптация (px)
 * @param {number} $widthTo - Ширина, на которой адаптация заканчивается (px)
 * @param {number} $keepSize - Настройка фиксации значений:
 *                             0 - без фиксации
 *                             1 - фиксировать на всех размерах
 *                             2 - фиксировать только на больших экранах
 *                             3 - фиксировать только на маленьких экранах
 * 
 * Пример использования:
 * @include adaptive-value("font-size", 24, 16);
 * @include adaptive-value("padding", 40, 20, 1200, 320, 0);
 */
/**
 * Стили для состояний наведения и активации ссылок/кнопок
 * Поддерживает устройства с hover и touch
 * 
 * @param {color} $hover_color - Цвет при наведении (hover)
 * @param {color} $active_color - Цвет при активации (active)
 * 
 * Пример использования:
 * @include hover-link(#3498db, #2980b9);
 * @include hover-link(var(--primary), var(--primary-dark));
 */
/**
 * Обрезка текста с многоточием для ограничения количества строк
 * Работает через CSS свойства line-clamp
 * 
 * @param {number} $count_line - Количество отображаемых строк
 * 
 * Пример использования:
 * @include hide-text(2); // Ограничить 2 строками
 * @include hide-text(4); // Ограничить 4 строками
 */
/**
 * Быстрое создание псевдоэлементов ::before и ::after
 * 
 * @param {string} $display - Display свойство (block, inline-block, flex)
 * @param {string} $pos - Позиционирование (absolute, relative, fixed)
 * @param {string} $content - Содержимое псевдоэлемента
 * 
 * Пример использования:
 * @include pseudo; // С параметрами по умолчанию
 * @include pseudo(inline-block, relative, "★");
 * 
 * Использование в связке:
 * .element::before {
 *   @include pseudo;
 *   top: 0;
 *   left: 0;
 *   width: 100%;
 *   height: 100%;
 * }
 */
/**
 * Создание контейнера с фиксированным соотношением сторон
 * Полезно для видео, изображений и responsive iframes
 * 
 * @param {number} $x - Ширина соотношения (например 16 для 16:9)
 * @param {number} $y - Высота соотношения (например 9 для 16:9)
 * @param {boolean} $pseudo - Использовать псевдоэлемент для отступов
 * 
 * Пример использования:
 * @include responsive-ratio(16, 9); // Для обычного элемента
 * @include responsive-ratio(1, 1, true); // Квадрат с псевдоэлементом
 * 
 * Для видео:
 * .video-container {
 *   @include responsive-ratio(16, 9, true);
 *   iframe { width: 100%; height: 100%; }
 * }
 */
/**
 * Конвертация пикселей в vw (viewport width)
 * Относительно указанного viewport
 * 
 * @param {number} $px - Значение в пикселях
 * @return {string} - Значение в vw
 * 
 * Пример использования:
 * font-size: vw(24); // 24px → vw
 * padding: vw(20) vw(40);
 */
/**
 * Конвертация пикселей в vh (viewport height)
 * Относительно указанного viewport
 * 
 * @param {number} $px - Значение в пикселях
 * @return {string} - Значение в vh
 * 
 * Пример использования:
 * height: vh(100); // 100px → vh
 * min-height: vh(600);
 */
/**
 * Конвертация пикселей в проценты
 * Относительно указанного viewport
 * 
 * @param {number} $px - Значение в пикселях
 * @return {string} - Значение в процентах
 * 
 * Пример использования:
 * width: px(800); // 800px → %
 */
/**
 * Градиентный текст с поддержкой всех браузеров
 * 
 * @param {color} $start-color - Начальный цвет градиента
 * @param {color} $end-color - Конечный цвет градиента
 * @param {angle} $angle - Угол градиента (deg, turn, rad)
 * 
 * Пример использования:
 * @include gradient-text(#ff7e5f, #feb47b);
 * @include gradient-text(#3498db, #2ecc71, 90deg);
 * @include gradient-text(var(--gradient-start), var(--gradient-end));
 */
/**
 * Градиентные рамки с использованием border-image
 * Поддерживает все современные браузеры
 * 
 * @param {number} $width - Толщина рамки
 * @param {color} $start-color - Начальный цвет градиента
 * @param {color} $end-color - Конечный цвет градиента
 * 
 * Пример использования:
 * @include gradient-border(2px, #ff7e5f, #feb47b);
 * @include gradient-border(3px, var(--primary), var(--secondary));
 * 
 * Важно: border-radius не работает с border-image
 */
/**
 * Миксины для создания кастомных адаптивных утилит
 */
/* пример использования 

	// позиция для псевдоэлементов
	@include adaptive-value("--pos", -32, -20);

	@include concave-corner-flex(
		$pseudo: "before",
		$corner: "bottom-left",
		$top: 0,
		$left: var(--pos)
	);

	@include concave-corner-flex(
		$pseudo: "after",
		$corner: "bottom-left",
		$right: 0,
		$bottom: var(--pos)
	);

	@include concave-corner-responsive(
		$pseudo: "before",
		$breakpoint: $tablet,
		$corner: "left-top",
		$top: auto,
		$bottom: 0
	);

	@include concave-corner-responsive(
		$pseudo: "after",
		$breakpoint: $tablet,
		$corner: "left-top",
		$bottom: auto,
		$top: var(--pos)
	);

*/
/*
// ПРИМЕРЫ ИСПОЛЬЗОВАНИЯ ВСЕХ МИКСИНОВ:

// 1. Адаптивная типографика
.title {
  @include adaptive-value("font-size", 48, 24);
  @include adaptive-value("line-height", 1.2, 1.4);
  @include gradient-text(#3498db, #2ecc71);
}

// 2. Адаптивные отступы и размеры
.card {
  @include adaptive-value("padding", 40, 20);
  @include adaptive-value("border-radius", 20, 10);
  @include gradient-border(2px, #3498db, #2ecc71);
}

// 3. Контейнер с соотношением сторон
.video-wrapper {
  @include responsive-ratio(16, 9, true);
  background: #000;
}

// 4. Текст с ограничением строк
.excerpt {
  @include hide-text(3);
  @include adaptive-value("font-size", 18, 14);
}

// 5. Интерактивные элементы
.button {
  @include hover-link(#3498db, #2980b9);
  padding: vw(12) vw(24);

  &::after {
    @include pseudo;
    bottom: -2px;
    left: 0;
    width: 100%;
    height: 2px;
    background: currentColor;
    transform: scaleX(0);
    transition: transform 0.3s ease;
  }

  &:hover::after {
    transform: scaleX(1);
  }
}
// 6. Fullscreen секция
.hero-section {
  width: 100%;
  height: vh(600);
  min-height: vh(600);
  padding: vw(40);
}

// 7. Комбинирование миксинов
.featured-item {
  @include adaptive-value("padding", 32, 16);
  @include responsive-ratio(4, 3);
  position: relative;

  &::before {
    @include pseudo;
    @include gradient-border(3px, #ff7e5f, #feb47b);
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    opacity: 0;
    transition: opacity 0.3s ease;
  }

  @include hover-link(#fff, #ddd);

  &:hover::before {
    opacity: 1;
  }

  .title {
    @include hide-text(2);
  }
}
*/
/* ============================================================================
   CSS CUSTOM PROPERTIES 
   ============================================================================ */
:root {
  --font-family-base:
  	"OpenSans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
  	"Helvetica Neue", Arial, sans-serif, "Apple Color Emoji",
  	"Segoe UI Emoji", "Segoe UI Symbol";
  --font-family-heading:
  	"FindSansPro", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
  	"Helvetica Neue", Arial, sans-serif, "Apple Color Emoji",
  	"Segoe UI Emoji", "Segoe UI Symbol";
  --font-weight-thin: 100;
  --font-weight-extralight: 200;
  --font-weight-light: 300;
  --font-weight-regular: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;
  --font-weight-extrabold: 800;
  --font-weight-black: 900;
  --line-height-none: 100%;
  --line-height-tight: 110%;
  --line-height-title: 120%;
  --line-height-base: 130%;
  --line-height-text: 140%;
  --line-height-loose: 150%;
  --border-width-thin: 1px;
  --border-radius-none: 0;
  --border-radius-full: 9999px;
  --color-border-primary: #cdcdcd;
  --color-border-secondary: #e7e7e7;
  --color-devider: #c6b5f9;
  --color-primary: #a67b5b;
  --color-secondary: #7f9f9c;
  --color-tertiary: #d5d1c9;
  --color-primary-hover: #8e674b;
  --color-secondary-hover: #64807d;
  --color-tertiary-hover: #c2bcb2;
  --color-accent-secondary: #5a7a77;
  --color-text-primary: #1e2b2e;
  --color-text-secondary: #2c2c2c;
  --color-text-tertiary: #5a5a5a;
  --color-text-inverted: #fdfcff;
  --color-text-accent: #a67b5b;
  --color-text-disabled: #afa69c;
  --color-success: #52c41a;
  --color-warning: #ff8b00;
  --color-danger: #ff4d4f;
  --color-danger-hover: #e52e30;
  --color-background-primary: #f9f7f4;
  --color-background-secondary: #e8e6e1;
  --color-background-tertiary: #f3f1ee;
  --color-overlay: #1e2b2e80;
  --color-background-input: #ffffff;
  --color-surface-primary-140: #a67b5b20;
  --color-surface-primary-300: #a67b5b30;
  --color-surface-secondary-500: #7f9f9c50;
  --color-surface-tertiary-140: #d5d1c920;
  --color-surface-tertiary-300: #d5d1c930;
  --color-surface-tertiary-500: #d5d1c950;
  --color-surface-primary-hover: #c3b1f9;
  --color-surface-tertiary-hover: #e8e6e1;
  --color-surface-success: #e5f4df;
  --color-surface-warning: #f4e3d1;
  --color-surface-danger: #fde4e6;
  --color-surface-danger-hover: #feb6b9;
  --color-surface-disabled: #d7d6d9;
  --shadow-xs: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --shadow-sm: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
  --shadow-base:
  	0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
  --shadow-md:
  	0 6px 10px -1px rgb(0 0 0 / 0.1), 0 4px 6px -2px rgb(0 0 0 / 0.1);
  --shadow-lg:
  	0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
  --shadow-xl:
  	0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
  --shadow-2xl: 0 25px 50px -12px rgb(0 0 0 / 0.25);
  --shadow-3xl: 0 42px 34px 0 rgba(92, 128, 5, 0.29);
  --transition-duration-fast: 150ms;
  --transition-duration-base: 300ms;
  --transition-duration-slow: 500ms;
  --transition-timing-ease: cubic-bezier(0.4, 0, 0.2, 1);
  --transition-timing-ease-in: cubic-bezier(0.4, 0, 1, 1);
  --transition-timing-ease-out: cubic-bezier(0, 0, 0.2, 1);
  --transition-timing-ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
  --animation-duration-slow: 0.6s;
  --animation-duration-base: 0.3s;
  --animation-duration-fast: 0.15s;
  --z-index-behind: -1;
  --z-index-base: 0;
  --z-index-elevated: 1;
  --z-index-dropdown: 1000;
  --z-index-sticky: 1100;
  --z-index-fixed: 1200;
  --z-index-overlay: 1300;
  --z-index-modal: 1400;
  --z-index-popover: 1500;
  --z-index-tooltip: 1600;
  --z-index-toast: 1700;
  --z-index-maximum: 2147483647;
  --viewport-width: 1920;
  --viewport-height: 1080;
  --index: calc(1vw + 1vh);
  --container-padding: var(--spacing-10);
  --container-max-width: 1920px;
  --grid-gap: var(--spacing-4);
  --gradient-accent: linear-gradient(168deg, #a67b5b 0%, #f9f7f4 100%);
  --gradient-accent-alt: linear-gradient(168deg, #7f9f9c 0%, #f9f7f4 100%);
  --gradient-accent-overlay: linear-gradient(
  	180deg,
  	rgba(166, 123, 91, 0) 0%,
  	#a67b5b 100%
  );
  --gradient-accent-overlay-alt: linear-gradient(
  	180deg,
  	rgba(127, 159, 156, 0) 0%,
  	#7f9f9c 100%
  );
  --gradient-overlay: linear-gradient(
  	180deg,
  	rgba(30, 43, 46, 0) 0%,
  	#1e2b2e 100%
  );
  --gradient-card: linear-gradient(145deg, #e8e6e1 0%, #ffffff 100%);
  --gradient-photo-top: linear-gradient(
  	180deg,
  	rgba(30, 43, 46, 0.4) 0%,
  	rgba(30, 43, 46, 0) 50%
  );
  --gradient-photo-bottom: linear-gradient(
  	0deg,
  	rgba(30, 43, 46, 0.6) 0%,
  	rgba(30, 43, 46, 0) 100%
  );
}

@media (min-width: 1680px) {
  :root {
    --font-size-xs: 14px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  :root {
    --font-size-xs: calc(
				12px + 2 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  :root {
    --font-size-xs: 12px;
  }
}
@media (min-width: 1680px) {
  :root {
    --font-size-sm: 16px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  :root {
    --font-size-sm: calc(
				12px + 4 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  :root {
    --font-size-sm: 12px;
  }
}
@media (min-width: 1680px) {
  :root {
    --font-size-base: 18px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  :root {
    --font-size-base: calc(
				14px + 4 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  :root {
    --font-size-base: 14px;
  }
}
@media (min-width: 1920px) {
  :root {
    --font-size-lg: 21px;
  }
}
@media (min-width: 1280px) and (max-width: 1920px) {
  :root {
    --font-size-lg: calc(
				18px + 3 *
					((100vw - 1280px) / (640))
			);
  }
}
@media (max-width: 1280px) {
  :root {
    --font-size-lg: 18px;
  }
}
@media (min-width: 1680px) {
  :root {
    --font-size-xl: 24px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  :root {
    --font-size-xl: calc(
				18px + 6 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  :root {
    --font-size-xl: 18px;
  }
}
@media (min-width: 1920px) {
  :root {
    --font-size-4xl: 36px;
  }
}
@media (min-width: 1280px) and (max-width: 1920px) {
  :root {
    --font-size-4xl: calc(
				28px + 8 *
					((100vw - 1280px) / (640))
			);
  }
}
@media (max-width: 1280px) {
  :root {
    --font-size-4xl: 28px;
  }
}
@media (min-width: 1920px) {
  :root {
    --font-size-5xl: 54px;
  }
}
@media (min-width: 1280px) and (max-width: 1920px) {
  :root {
    --font-size-5xl: calc(
				36px + 18 *
					((100vw - 1280px) / (640))
			);
  }
}
@media (max-width: 1280px) {
  :root {
    --font-size-5xl: 36px;
  }
}

@media screen and (max-width: 1240px) and (min-width: 1240px) {
  :root {
    --font-size-lg: 18px;
  }
}
@media screen and (max-width: 1240px) and (min-width: 768px) and (max-width: 1240px) {
  :root {
    --font-size-lg: calc(
				16px + 2 *
					((100vw - 768px) / (472))
			);
  }
}
@media screen and (max-width: 1240px) and (max-width: 768px) {
  :root {
    --font-size-lg: 16px;
  }
}
@media screen and (max-width: 1240px) and (min-width: 1240px) {
  :root {
    --font-size-4xl: 28px;
  }
}
@media screen and (max-width: 1240px) and (min-width: 768px) and (max-width: 1240px) {
  :root {
    --font-size-4xl: calc(
				21px + 7 *
					((100vw - 768px) / (472))
			);
  }
}
@media screen and (max-width: 1240px) and (max-width: 768px) {
  :root {
    --font-size-4xl: 21px;
  }
}
@media screen and (max-width: 1240px) and (min-width: 1240px) {
  :root {
    --font-size-5xl: 36px;
  }
}
@media screen and (max-width: 1240px) and (min-width: 768px) and (max-width: 1240px) {
  :root {
    --font-size-5xl: calc(
				24px + 12 *
					((100vw - 768px) / (472))
			);
  }
}
@media screen and (max-width: 1240px) and (max-width: 768px) {
  :root {
    --font-size-5xl: 24px;
  }
}
@media screen and (max-width: 767px) and (min-width: 760px) {
  :root {
    --font-size-lg: 16px;
  }
}
@media screen and (max-width: 767px) and (min-width: 360px) and (max-width: 760px) {
  :root {
    --font-size-lg: calc(
				14px + 2 *
					((100vw - 360px) / (400))
			);
  }
}
@media screen and (max-width: 767px) and (max-width: 360px) {
  :root {
    --font-size-lg: 14px;
  }
}
@media screen and (max-width: 767px) and (min-width: 760px) {
  :root {
    --font-size-4xl: 21px;
  }
}
@media screen and (max-width: 767px) and (min-width: 360px) and (max-width: 760px) {
  :root {
    --font-size-4xl: calc(
				16px + 5 *
					((100vw - 360px) / (400))
			);
  }
}
@media screen and (max-width: 767px) and (max-width: 360px) {
  :root {
    --font-size-4xl: 16px;
  }
}
@media screen and (max-width: 767px) and (min-width: 760px) {
  :root {
    --font-size-5xl: 24px;
  }
}
@media screen and (max-width: 767px) and (min-width: 360px) and (max-width: 760px) {
  :root {
    --font-size-5xl: calc(
				18px + 6 *
					((100vw - 360px) / (400))
			);
  }
}
@media screen and (max-width: 767px) and (max-width: 360px) {
  :root {
    --font-size-5xl: 18px;
  }
}
@media (min-width: 1680px) {
  :root {
    --spacing-unit: 4px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  :root {
    --spacing-unit: calc(
				2px + 2 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  :root {
    --spacing-unit: 2px;
  }
}
@media (min-width: 1680px) {
  :root {
    --border-width-base: 2px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  :root {
    --border-width-base: calc(
				1px + 1 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  :root {
    --border-width-base: 1px;
  }
}
@media (min-width: 1680px) {
  :root {
    --border-width-thick: 3px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  :root {
    --border-width-thick: calc(
				2px + 1 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  :root {
    --border-width-thick: 2px;
  }
}
@media (min-width: 1680px) {
  :root {
    --border-width-thicker: 4px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  :root {
    --border-width-thicker: calc(
				3px + 1 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  :root {
    --border-width-thicker: 3px;
  }
}
@media (min-width: 1680px) {
  :root {
    --border-radius-sm: 4px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  :root {
    --border-radius-sm: calc(
				2px + 2 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  :root {
    --border-radius-sm: 2px;
  }
}
@media (min-width: 1680px) {
  :root {
    --border-radius-base: 6px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  :root {
    --border-radius-base: calc(
				4px + 2 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  :root {
    --border-radius-base: 4px;
  }
}
@media (min-width: 1680px) {
  :root {
    --border-radius-md: 8px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  :root {
    --border-radius-md: calc(
				6px + 2 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  :root {
    --border-radius-md: 6px;
  }
}
@media (min-width: 1680px) {
  :root {
    --border-radius-lg: 12px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  :root {
    --border-radius-lg: calc(
				8px + 4 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  :root {
    --border-radius-lg: 8px;
  }
}
@media (min-width: 1680px) {
  :root {
    --border-radius-xl: 16px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  :root {
    --border-radius-xl: calc(
				12px + 4 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  :root {
    --border-radius-xl: 12px;
  }
}
@media (min-width: 1680px) {
  :root {
    --border-radius-2xl: 24px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  :root {
    --border-radius-2xl: calc(
				16px + 8 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  :root {
    --border-radius-2xl: 16px;
  }
}
@media (min-width: 1680px) {
  :root {
    --border-radius-3xl: 32px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  :root {
    --border-radius-3xl: calc(
				20px + 12 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  :root {
    --border-radius-3xl: 20px;
  }
}
@media (min-width: 1680px) {
  :root {
    --border-radius-4xl: 48px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  :root {
    --border-radius-4xl: calc(
				24px + 24 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  :root {
    --border-radius-4xl: 24px;
  }
}
@media (min-width: 1680px) {
  :root {
    --border-radius-5xl: 64px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  :root {
    --border-radius-5xl: calc(
				32px + 32 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  :root {
    --border-radius-5xl: 32px;
  }
}
@media (min-width: 1680px) {
  :root {
    --border-radius-6xl: 80px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  :root {
    --border-radius-6xl: calc(
				48px + 32 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  :root {
    --border-radius-6xl: 48px;
  }
}

:root {
  --spacing-0: 0;
  --spacing-1: calc(var(--spacing-unit) * 1);
  --spacing-2: calc(var(--spacing-unit) * 2);
  --spacing-3: calc(var(--spacing-unit) * 3);
  --spacing-4: calc(var(--spacing-unit) * 4);
  --spacing-5: calc(var(--spacing-unit) * 5);
  --spacing-6: calc(var(--spacing-unit) * 6);
  --spacing-8: calc(var(--spacing-unit) * 8);
  --spacing-10: calc(var(--spacing-unit) * 10);
  --spacing-12: calc(var(--spacing-unit) * 12);
  --spacing-16: calc(var(--spacing-unit) * 16);
  --spacing-20: calc(var(--spacing-unit) * 20);
  --spacing-24: calc(var(--spacing-unit) * 24);
  --spacing-32: calc(var(--spacing-unit) * 32);
  --spacing-40: calc(var(--spacing-unit) * 40);
  --spacing-48: calc(var(--spacing-unit) * 48);
  --spacing-56: calc(var(--spacing-unit) * 56);
  --spacing-64: calc(var(--spacing-unit) * 64);
  --spacing-72: calc(var(--spacing-unit) * 72);
  --spacing-80: calc(var(--spacing-unit) * 80);
  --spacing-96: calc(var(--spacing-unit) * 96);
}

.text-primary, .caption, .heading-xs, .heading-small, .heading-base, .heading-large {
  color: var(--color-text-primary) !important;
}

.text-secondary, .label, .select__title, .input-box__title, .body-base, .body-large, .modal__title, .body-xl {
  color: var(--color-text-secondary) !important;
}

.text-tertiary, .body-small {
  color: var(--color-text-tertiary) !important;
}

.text-inverted {
  color: var(--color-text-inverted) !important;
}

.text-accent-primary {
  color: var(--color-primary) !important;
}

.text-accent-secondary {
  color: var(--color-secondary) !important;
}

.text-accent-tertiary {
  color: var(--color-tertiary) !important;
}

.text-success {
  color: var(--color-success) !important;
}

.text-warning {
  color: var(--color-warning) !important;
}

.text-danger {
  color: var(--color-danger) !important;
}

.bg-background {
  background-color: var(--color-background-primary);
}

.bg-surface {
  background-color: var(--color-surface-primary-140);
}

.border-base {
  border: var(--border-width-base) solid var(--color-border-primary);
}

.border-thick {
  border: var(--border-width-thick) solid var(--color-border-primary);
}

.rounded-sm {
  border-radius: var(--border-radius-sm);
}

.rounded-base {
  border-radius: var(--border-radius-base);
}

.rounded-md {
  border-radius: var(--border-radius-md);
}

.rounded-lg {
  border-radius: var(--border-radius-lg);
}

.rounded-xl {
  border-radius: var(--border-radius-xl);
}

.rounded-full {
  border-radius: var(--border-radius-full);
}

.shadow-xs {
  -webkit-box-shadow: var(--shadow-xs);
          box-shadow: var(--shadow-xs);
}

.shadow-sm {
  -webkit-box-shadow: var(--shadow-sm);
          box-shadow: var(--shadow-sm);
}

.shadow-base {
  -webkit-box-shadow: var(--shadow-base);
          box-shadow: var(--shadow-base);
}

.shadow-md {
  -webkit-box-shadow: var(--shadow-md);
          box-shadow: var(--shadow-md);
}

.shadow-lg {
  -webkit-box-shadow: var(--shadow-lg);
          box-shadow: var(--shadow-lg);
}

.shadow-xl {
  -webkit-box-shadow: var(--shadow-xl);
          box-shadow: var(--shadow-xl);
}

.shadow-2xl {
  -webkit-box-shadow: var(--shadow-2xl);
          box-shadow: var(--shadow-2xl);
}

.shadow-inner {
  -webkit-box-shadow: var(--shadow-inner);
          box-shadow: var(--shadow-inner);
}

@font-face {
  font-family: "FindSansPro";
  font-display: swap;
  src: url("../../assets/fonts/FindSansPro-Regular.woff2") format("woff2"), url("../../assets/fonts/FindSansPro-Regular.woff") format("woff");
  font-weight: 400;
  font-style: normal;
}
@font-face {
  font-family: "OpenSans";
  font-display: swap;
  src: url("../../assets/fonts/OpenSans-Regular.woff2") format("woff2"), url("../../assets/fonts/OpenSans-Regular.woff") format("woff");
  font-weight: 400;
  font-style: normal;
}
@font-face {
  font-family: "OpenSans";
  font-display: swap;
  src: url("../../assets/fonts/OpenSans-SemiBold.woff2") format("woff2"), url("../../assets/fonts/OpenSans-SemiBold.woff") format("woff");
  font-weight: 600;
  font-style: normal;
}
/* ============================================================================
   GLOBAL UTILITIES
   ============================================================================ */
html {
  scrollbar-color: var(--color-surface-disabled) var(--color-background-secondary);
  scrollbar-width: thin;
}

::-webkit-scrollbar {
  width: var(--spacing-3);
  height: var(--spacing-3);
  background-color: transparent;
}

::-webkit-scrollbar-track {
  background-color: var(--color-background-secondary);
  border-radius: var(--border-radius-full);
}

::-webkit-scrollbar-thumb {
  background-color: var(--color-surface-disabled);
  border-radius: var(--border-radius-full);
  background-clip: content-box;
  -webkit-transition: background-color var(--transition-duration-base) var(--transition-timing-ease);
  transition: background-color var(--transition-duration-base) var(--transition-timing-ease);
}
::-webkit-scrollbar-thumb:hover {
  background-color: var(--color-primary-hover);
}
::-webkit-scrollbar-thumb:active {
  background-color: var(--color-primary-hover);
}

@-moz-document url-prefix() {
  * {
    scrollbar-width: thin;
    scrollbar-color: var(--color-surface-disabled) var(--color-background-secondary);
  }
  .scrollable-content {
    scrollbar-width: thin;
    scrollbar-color: var(--color-surface-disabled) var(--color-background-secondary);
  }
}
html {
  height: 100%;
  overflow-x: clip;
  overflow-y: auto;
  scroll-behavior: smooth;
  -webkit-transition: background-color var(--transition-duration-base) var(--transition-timing-ease), color var(--transition-duration-base) var(--transition-timing-ease);
  -o-transition: background-color var(--transition-duration-base) var(--transition-timing-ease), color var(--transition-duration-base) var(--transition-timing-ease);
  transition: background-color var(--transition-duration-base) var(--transition-timing-ease), color var(--transition-duration-base) var(--transition-timing-ease);
  scrollbar-gutter: stable;
  -webkit-overflow-scrolling: touch;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  -webkit-text-size-adjust: 100%;
     -moz-text-size-adjust: 100%;
      -ms-text-size-adjust: 100%;
          text-size-adjust: 100%;
  -webkit-tap-highlight-color: transparent;
}
html.no-scroll, html._fixed, html[data-scroll-locked=true] {
  overflow: hidden;
}
@media print {
  html {
    font-size: 12pt;
    background: none !important;
  }
}

body {
  min-height: 100%;
  overflow: clip;
  font-family: var(--font-family-base);
  font-size: var(--font-size-base);
  line-height: var(--line-height-base);
  color: var(--color-text-secondary);
  background-color: var(--color-background-primary);
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  isolation: isolate;
}
@media print {
  body {
    background: white;
    color: black;
  }
}

.page {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  min-height: 100vh;
  min-height: 100dvh;
}
@supports not (min-height: 100dvh) {
  .page {
    min-height: 100vh;
  }
}

main {
  -webkit-box-flex: 1;
      -ms-flex: 1 0 auto;
          flex: 1 0 auto;
  width: 100%;
}
main:focus {
  outline: none;
}

header,
footer {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 100%;
}

.container {
  width: 100%;
  max-width: var(--container-max-width, 1920px);
  margin-left: auto;
  margin-right: auto;
}
@media (min-width: 1920px) {
  .container {
    padding-left: 120px;
  }
}
@media (min-width: 1280px) and (max-width: 1920px) {
  .container {
    padding-left: calc(
				40px + 80 *
					((100vw - 1280px) / (640))
			);
  }
}
@media (max-width: 1280px) {
  .container {
    padding-left: 40px;
  }
}
@media (min-width: 1920px) {
  .container {
    padding-right: 120px;
  }
}
@media (min-width: 1280px) and (max-width: 1920px) {
  .container {
    padding-right: calc(
				40px + 80 *
					((100vw - 1280px) / (640))
			);
  }
}
@media (max-width: 1280px) {
  .container {
    padding-right: 40px;
  }
}
@media screen and (max-width: 1240px) and (min-width: 1240px) {
  .container {
    padding-left: 40px;
  }
}
@media screen and (max-width: 1240px) and (min-width: 768px) and (max-width: 1240px) {
  .container {
    padding-left: calc(
				24px + 16 *
					((100vw - 768px) / (472))
			);
  }
}
@media screen and (max-width: 1240px) and (max-width: 768px) {
  .container {
    padding-left: 24px;
  }
}
@media screen and (max-width: 1240px) and (min-width: 1240px) {
  .container {
    padding-right: 40px;
  }
}
@media screen and (max-width: 1240px) and (min-width: 768px) and (max-width: 1240px) {
  .container {
    padding-right: calc(
				24px + 16 *
					((100vw - 768px) / (472))
			);
  }
}
@media screen and (max-width: 1240px) and (max-width: 768px) {
  .container {
    padding-right: 24px;
  }
}
@media screen and (max-width: 767px) and (min-width: 760px) {
  .container {
    padding-left: 24px;
  }
}
@media screen and (max-width: 767px) and (min-width: 360px) and (max-width: 760px) {
  .container {
    padding-left: calc(
				16px + 8 *
					((100vw - 360px) / (400))
			);
  }
}
@media screen and (max-width: 767px) and (max-width: 360px) {
  .container {
    padding-left: 16px;
  }
}
@media screen and (max-width: 767px) and (min-width: 760px) {
  .container {
    padding-right: 24px;
  }
}
@media screen and (max-width: 767px) and (min-width: 360px) and (max-width: 760px) {
  .container {
    padding-right: calc(
				16px + 8 *
					((100vw - 360px) / (400))
			);
  }
}
@media screen and (max-width: 767px) and (max-width: 360px) {
  .container {
    padding-right: 16px;
  }
}
.container--fluid {
  max-width: 100%;
}

.deactive,
[disabled] {
  pointer-events: none;
  cursor: not-allowed;
  opacity: 0.5;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
}

.hidden, .gallery-contol {
  display: none !important;
  visibility: hidden;
}

.visible {
  visibility: visible;
}

.invisible {
  visibility: hidden;
}

.scrollable {
  overflow: auto;
  -webkit-overflow-scrolling: touch;
}
.scrollable-x {
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
}
.scrollable-y {
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
.scrollable--custom::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}
.scrollable--custom::-webkit-scrollbar-thumb {
  background-color: var(--color-primary);
  border-radius: var(--border-radius-full);
}
.scrollable--custom::-webkit-scrollbar-track {
  background-color: var(--color-surface-primary-140);
}

.visually-hidden, .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;
}

/* Состояния для скринридеров */
.sticky {
  position: sticky;
  top: 0;
  z-index: var(--z-index-sticky);
}

.fixed {
  position: fixed;
  z-index: var(--z-index-fixed);
}

.absolute {
  position: absolute;
}

.relative {
  position: relative;
}

.fade-in {
  -webkit-animation: fadeIn var(--animation-duration-base) var(--transition-timing-ease);
          animation: fadeIn var(--animation-duration-base) var(--transition-timing-ease);
}

@-webkit-keyframes fadeIn {
  from {
    opacity: 0;
    -webkit-transform: translateY(10px);
            transform: translateY(10px);
  }
  to {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}

@keyframes fadeIn {
  from {
    opacity: 0;
    -webkit-transform: translateY(10px);
            transform: translateY(10px);
  }
  to {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}
@-webkit-keyframes modalEnter {
  0% {
    -webkit-transform: scale(0.75) translateY(20px);
            transform: scale(0.75) translateY(20px);
    opacity: 0;
  }
  100% {
    -webkit-transform: scale(1) translateY(0);
            transform: scale(1) translateY(0);
    opacity: 1;
  }
}
@keyframes modalEnter {
  0% {
    -webkit-transform: scale(0.75) translateY(20px);
            transform: scale(0.75) translateY(20px);
    opacity: 0;
  }
  100% {
    -webkit-transform: scale(1) translateY(0);
            transform: scale(1) translateY(0);
    opacity: 1;
  }
}
/* ==========================================================================
   LIST STYLES BASED 
   ========================================================================== */
.list-unordered,
.list-ordered {
  padding-left: 0;
  font-family: var(--font-family-base);
  font-size: var(--font-size-base);
  font-weight: var(--font-weight-regular);
  line-height: var(--line-height-text);
  letter-spacing: var(--letter-spacing-normal);
  list-style-position: inside;
}
.list-unordered li,
.list-ordered li {
  position: relative;
  color: var(--color-text-primary);
  -webkit-transition: all var(--transition-duration-base) var(--transition-timing-ease);
  -o-transition: all var(--transition-duration-base) var(--transition-timing-ease);
  transition: all var(--transition-duration-base) var(--transition-timing-ease);
}
.list-unordered li:last-child,
.list-ordered li:last-child {
  margin-bottom: 0;
}

.list-unordered li {
  padding: var(--spacing-1) 0 var(--spacing-1) var(--spacing-8);
}
.list-unordered li::before {
  content: "";
  position: absolute;
  left: 0;
  top: var(--spacing-2);
  width: var(--spacing-4);
  height: var(--spacing-4);
  border: var(--border-width-base) solid var(--color-primary);
  border-radius: var(--border-radius-full);
  border-color: var(--color-primary);
  -webkit-transition: background-color var(--transition-duration-base) var(--transition-timing-ease);
  -o-transition: background-color var(--transition-duration-base) var(--transition-timing-ease);
  transition: background-color var(--transition-duration-base) var(--transition-timing-ease);
}
@media screen and (max-width: 767px) {
  .list-unordered li::before {
    top: var(--spacing-3);
  }
}
.list-unordered .list-unordered {
  margin-top: var(--spacing-3);
}
.list-unordered .list-unordered li {
  padding-left: var(--spacing-6);
}
.list-unordered .list-unordered li::before {
  left: var(--spacing-2);
  background-color: var(--color-primary);
  width: calc(var(--spacing-2) - 1px);
  height: calc(var(--spacing-2) - 1px);
}
.list-unordered .list-ordered {
  padding-bottom: var(--spacing-2);
  padding-top: var(--spacing-2);
}
.list-unordered .list-ordered li::before {
  border: none;
}

.list-ordered {
  list-style-type: none;
  counter-reset: ordered-counter;
}
.list-ordered > li {
  padding: var(--spacing-1) 0 var(--spacing-1) var(--spacing-8);
}
.list-ordered > li::before {
  content: counter(ordered-counter) ".";
  counter-increment: ordered-counter;
  position: absolute;
  left: var(--spacing-1);
  top: var(--spacing-1);
  font-weight: var(--font-weight-medium);
  font-size: var(--font-size-base);
  color: var(--color-text-primary);
  min-width: var(--spacing-6);
  text-align: center;
}
.list-ordered > li:has(> .list-unordered),
.list-ordered > li:has(> .list-ordered) {
  padding-bottom: var(--spacing-4);
}
.list-ordered > li:has(> .list-unordered)::before,
.list-ordered > li:has(> .list-ordered)::before {
  top: var(--spacing-1);
}
.list-ordered .list-unordered {
  margin-top: var(--spacing-3);
  font-size: calc(var(--font-size-base) * 0.95);
}
.list-ordered .list-unordered li {
  padding: var(--spacing-1) 0 var(--spacing-1) var(--spacing-8);
}
.list-ordered .list-unordered li::before {
  left: var(--spacing-1);
  border: var(--border-width-base) solid var(--color-primary);
}
.list-ordered .list-ordered {
  margin: var(--spacing-2) 0 var(--spacing-2) var(--spacing-8);
  font-size: calc(var(--font-size-base) * 0.95);
  counter-reset: nested-ordered-counter;
}
.list-ordered .list-ordered > li {
  padding-left: var(--spacing-8);
}
.list-ordered .list-ordered > li::before {
  content: counter(ordered-counter) "." counter(nested-ordered-counter);
  counter-increment: nested-ordered-counter;
  left: var(--spacing-2);
  color: var(--color-text-primary);
  font-size: var(--font-size-sm);
}

@media print {
  :root {
    --font-size-xs: 9pt;
    --font-size-sm: 10pt;
    --font-size-base: 12pt;
    --font-size-md: 14pt;
    --font-size-lg: 16pt;
    --font-size-xl: 18pt;
    --font-size-2xl: 20pt;
    --font-size-3xl: 24pt;
    --font-size-4xl: 28pt;
    --font-size-display: 32pt;
    --line-height-base: 1.6;
    --line-height-lg: 1.5;
    --line-height-xl: 1.4;
    --line-height-2xl: 1.3;
    --spacing-unit: 4px;
  }
  .no-print {
    display: none !important;
  }
  * {
    background: transparent !important;
    color: black !important;
    -webkit-box-shadow: none !important;
            box-shadow: none !important;
    text-shadow: none !important;
  }
  a,
  a:visited {
    text-decoration: underline;
  }
  h1,
  h2,
  h3,
  h4,
  h5,
  h6,
  p,
  blockquote,
  tr,
  img {
    page-break-inside: avoid;
  }
  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    page-break-after: avoid;
  }
  thead {
    display: table-header-group;
  }
}
/* ============================================================================
   LAYOUT UTILITIES
   ============================================================================
   Быстрые утилиты для работы с макетом и сетками прямо в HTML.
   Используются для быстрого прототипирования и настройки интерфейсов.
   ============================================================================ */
/* ----------------------------------------------------------------------------
   DISPLAY UTILITIES
   -------------------------------------------------------------------------- */
/* Блочные модели */
.d-block {
  display: block;
}

.d-inline {
  display: inline;
}

.d-inline-block {
  display: inline-block;
}

.d-none {
  display: none !important;
}

/* Flex */
.d-flex {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}

.d-inline-flex {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
}

/* Grid */
.d-grid {
  display: -ms-grid;
  display: grid;
}

.d-inline-grid {
  display: -ms-inline-grid;
  display: inline-grid;
}

.grid-center {
  display: -ms-grid;
  display: grid;
  place-items: center;
}

/* Особые случаи */
.d-contents {
  display: contents;
}

.d-table {
  display: table;
}

.d-table-cell {
  display: table-cell;
}

.d-table-row {
  display: table-row;
}

/* ----------------------------------------------------------------------------
   FLEXBOX UTILITIES
   -------------------------------------------------------------------------- */
/* Направление flex-контейнера */
.flex-row {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
}

.flex-row-reverse {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
      -ms-flex-direction: row-reverse;
          flex-direction: row-reverse;
}

.flex-column {
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}

.flex-col-reverse {
  -webkit-box-orient: vertical;
  -webkit-box-direction: reverse;
      -ms-flex-direction: column-reverse;
          flex-direction: column-reverse;
}

.flex-center {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

.flex-between {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}

.flex-column {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}

/* Перенос элементов */
.flex-wrap {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}

.flex-nowrap {
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap;
}

.flex-wrap-reverse {
  -ms-flex-wrap: wrap-reverse;
      flex-wrap: wrap-reverse;
}

/* Выравнивание по основной оси (justify-content) */
.justify-start {
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
}

.justify-end {
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
}

.justify-center {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

.justify-between {
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}

.justify-around {
  -ms-flex-pack: distribute;
      justify-content: space-around;
}

.justify-evenly {
  -webkit-box-pack: space-evenly;
      -ms-flex-pack: space-evenly;
          justify-content: space-evenly;
}

.justify-stretch {
  -webkit-box-pack: stretch;
      -ms-flex-pack: stretch;
          justify-content: stretch;
}

/* Выравнивание по поперечной оси (align-items) */
.items-start {
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
}

.items-end {
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
}

.items-center {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.items-baseline {
  -webkit-box-align: baseline;
      -ms-flex-align: baseline;
          align-items: baseline;
}

.items-stretch {
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
}

/* Выравнивание flex-линий (align-content) */
.content-start {
  -ms-flex-line-pack: start;
      align-content: flex-start;
}

.content-end {
  -ms-flex-line-pack: end;
      align-content: flex-end;
}

.content-center {
  -ms-flex-line-pack: center;
      align-content: center;
}

.content-between {
  -ms-flex-line-pack: justify;
      align-content: space-between;
}

.content-around {
  -ms-flex-line-pack: distribute;
      align-content: space-around;
}

.content-stretch {
  -ms-flex-line-pack: stretch;
      align-content: stretch;
}

/* Распределение flex-элементов */
.flex-1 {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 0%;
          flex: 1 1 0%;
}

.flex-auto {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 auto;
          flex: 1 1 auto;
}

.flex-initial {
  -webkit-box-flex: 0;
      -ms-flex: 0 1 auto;
          flex: 0 1 auto;
}

.flex-none {
  -webkit-box-flex: 0;
      -ms-flex: none;
          flex: none;
}

.flex-grow {
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
}

.flex-grow-0 {
  -webkit-box-flex: 0;
      -ms-flex-positive: 0;
          flex-grow: 0;
}

.flex-shrink {
  -ms-flex-negative: 1;
      flex-shrink: 1;
}

.flex-shrink-0 {
  -ms-flex-negative: 0;
      flex-shrink: 0;
}

/* Порядок элементов */
.order-first {
  -webkit-box-ordinal-group: 0;
      -ms-flex-order: -1;
          order: -1;
}

.order-last {
  -webkit-box-ordinal-group: 1000;
      -ms-flex-order: 999;
          order: 999;
}

.order-1 {
  -webkit-box-ordinal-group: 2;
      -ms-flex-order: 1;
          order: 1;
}

.order-2 {
  -webkit-box-ordinal-group: 3;
      -ms-flex-order: 2;
          order: 2;
}

.order-3 {
  -webkit-box-ordinal-group: 4;
      -ms-flex-order: 3;
          order: 3;
}

.order-4 {
  -webkit-box-ordinal-group: 5;
      -ms-flex-order: 4;
          order: 4;
}

.order-5 {
  -webkit-box-ordinal-group: 6;
      -ms-flex-order: 5;
          order: 5;
}

/* Выравнивание отдельного элемента (align-self) */
.self-auto {
  -ms-flex-item-align: auto;
      -ms-grid-row-align: auto;
      align-self: auto;
}

.self-start {
  -ms-flex-item-align: start;
      align-self: flex-start;
}

.self-end {
  -ms-flex-item-align: end;
      align-self: flex-end;
}

.self-center {
  -ms-flex-item-align: center;
      -ms-grid-row-align: center;
      align-self: center;
}

.self-stretch {
  -ms-flex-item-align: stretch;
      -ms-grid-row-align: stretch;
      align-self: stretch;
}

.self-baseline {
  -ms-flex-item-align: baseline;
      align-self: baseline;
}

/* ----------------------------------------------------------------------------
   GRID UTILITIES
   -------------------------------------------------------------------------- */
/* Grid template columns */
.grid-cols-1 {
  -ms-grid-columns: (minmax(0, 1fr))[1];
  grid-template-columns: repeat(1, minmax(0, 1fr));
}

.grid-cols-2 {
  -ms-grid-columns: (minmax(0, 1fr))[2];
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.grid-cols-3 {
  -ms-grid-columns: (minmax(0, 1fr))[3];
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.grid-cols-4 {
  -ms-grid-columns: (minmax(0, 1fr))[4];
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.grid-cols-5 {
  -ms-grid-columns: (minmax(0, 1fr))[5];
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.grid-cols-6 {
  -ms-grid-columns: (minmax(0, 1fr))[6];
  grid-template-columns: repeat(6, minmax(0, 1fr));
}

.grid-cols-7 {
  -ms-grid-columns: (minmax(0, 1fr))[7];
  grid-template-columns: repeat(7, minmax(0, 1fr));
}

.grid-cols-8 {
  -ms-grid-columns: (minmax(0, 1fr))[8];
  grid-template-columns: repeat(8, minmax(0, 1fr));
}

.grid-cols-9 {
  -ms-grid-columns: (minmax(0, 1fr))[9];
  grid-template-columns: repeat(9, minmax(0, 1fr));
}

.grid-cols-10 {
  -ms-grid-columns: (minmax(0, 1fr))[10];
  grid-template-columns: repeat(10, minmax(0, 1fr));
}

.grid-cols-11 {
  -ms-grid-columns: (minmax(0, 1fr))[11];
  grid-template-columns: repeat(11, minmax(0, 1fr));
}

.grid-cols-12 {
  -ms-grid-columns: (minmax(0, 1fr))[12];
  grid-template-columns: repeat(12, minmax(0, 1fr));
}

.grid-cols-none {
  -ms-grid-columns: none;
  grid-template-columns: none;
}

/* Grid template rows */
.grid-rows-1 {
  -ms-grid-rows: (minmax(0, 1fr))[1];
  grid-template-rows: repeat(1, minmax(0, 1fr));
}

.grid-rows-2 {
  -ms-grid-rows: (minmax(0, 1fr))[2];
  grid-template-rows: repeat(2, minmax(0, 1fr));
}

.grid-rows-3 {
  -ms-grid-rows: (minmax(0, 1fr))[3];
  grid-template-rows: repeat(3, minmax(0, 1fr));
}

.grid-rows-4 {
  -ms-grid-rows: (minmax(0, 1fr))[4];
  grid-template-rows: repeat(4, minmax(0, 1fr));
}

.grid-rows-5 {
  -ms-grid-rows: (minmax(0, 1fr))[5];
  grid-template-rows: repeat(5, minmax(0, 1fr));
}

.grid-rows-6 {
  -ms-grid-rows: (minmax(0, 1fr))[6];
  grid-template-rows: repeat(6, minmax(0, 1fr));
}

.grid-rows-none {
  -ms-grid-rows: none;
  grid-template-rows: none;
}

/* Gap (отступы между элементами) */
.gap-0 {
  gap: 0;
}

.gap-1 {
  gap: var(--spacing-1); /* 2px - 4px */
}

.gap-2 {
  gap: var(--spacing-2); /* 4px - 8px */
}

.gap-3 {
  gap: var(--spacing-3); /* 6px - 12px */
}

.gap-4 {
  gap: var(--spacing-4); /* 8px - 16px */
}

.gap-5 {
  gap: var(--spacing-5); /* 10px - 20px */
}

.gap-6 {
  gap: var(--spacing-6); /* 12px - 24px */
}

.gap-8 {
  gap: var(--spacing-8); /* 16px - 32px */
}

.gap-10 {
  gap: var(--spacing-10); /* 20px - 40px */
}

.gap-12 {
  gap: var(--spacing-12); /* 24px - 48px */
}

.gap-16 {
  gap: var(--spacing-16); /* 32px - 64px */
}

.gap-20 {
  gap: var(--spacing-20); /* 40px - 80px */
}

/* Column gap */
.column-gap-0 {
  -webkit-column-gap: 0;
     -moz-column-gap: 0;
          column-gap: 0;
}

.column-gap-1 {
  -webkit-column-gap: var(--spacing-1);
     -moz-column-gap: var(--spacing-1);
          column-gap: var(--spacing-1); /* 2px - 4px */
}

.column-gap-2 {
  -webkit-column-gap: var(--spacing-2);
     -moz-column-gap: var(--spacing-2);
          column-gap: var(--spacing-2); /* 4px - 8px */
}

.column-gap-3 {
  -webkit-column-gap: var(--spacing-3);
     -moz-column-gap: var(--spacing-3);
          column-gap: var(--spacing-3); /* 6px - 12px */
}

.column-gap-4 {
  -webkit-column-gap: var(--spacing-4);
     -moz-column-gap: var(--spacing-4);
          column-gap: var(--spacing-4); /* 8px - 16px */
}

.column-gap-5 {
  -webkit-column-gap: var(--spacing-5);
     -moz-column-gap: var(--spacing-5);
          column-gap: var(--spacing-5); /* 10px - 20px */
}

.column-gap-6 {
  -webkit-column-gap: var(--spacing-6);
     -moz-column-gap: var(--spacing-6);
          column-gap: var(--spacing-6); /* 12px - 24px */
}

.column-gap-8 {
  -webkit-column-gap: var(--spacing-8);
     -moz-column-gap: var(--spacing-8);
          column-gap: var(--spacing-8); /* 16px - 32px */
}

/* Row gap */
.row-gap-0 {
  row-gap: 0;
}

.row-gap-1 {
  row-gap: var(--spacing-1); /* 2px - 4px */
}

.row-gap-2 {
  row-gap: var(--spacing-2); /* 4px - 8px */
}

.row-gap-3 {
  row-gap: var(--spacing-3); /* 6px - 12px */
}

.row-gap-4 {
  row-gap: var(--spacing-4); /* 8px - 16px */
}

.row-gap-5 {
  row-gap: var(--spacing-5); /* 10px - 20px */
}

.row-gap-6 {
  row-gap: var(--spacing-6); /* 12px - 24px */
}

.row-gap-8 {
  row-gap: var(--spacing-8); /* 16px - 32px */
}

/* Grid auto flow */
.grid-flow-row {
  grid-auto-flow: row;
}

.grid-flow-column {
  grid-auto-flow: column;
}

.grid-flow-dense {
  grid-auto-flow: dense;
}

.grid-flow-row-dense {
  grid-auto-flow: row dense;
}

.grid-flow-col-dense {
  grid-auto-flow: column dense;
}

/* Grid auto columns/rows */
.auto-cols-auto {
  grid-auto-columns: auto;
}

.auto-cols-min {
  grid-auto-columns: -webkit-min-content;
  grid-auto-columns: min-content;
}

.auto-cols-max {
  grid-auto-columns: -webkit-max-content;
  grid-auto-columns: max-content;
}

.auto-cols-fr {
  grid-auto-columns: minmax(0, 1fr);
}

.auto-rows-auto {
  grid-auto-rows: auto;
}

.auto-rows-min {
  grid-auto-rows: -webkit-min-content;
  grid-auto-rows: min-content;
}

.auto-rows-max {
  grid-auto-rows: -webkit-max-content;
  grid-auto-rows: max-content;
}

.auto-rows-fr {
  grid-auto-rows: minmax(0, 1fr);
}

/* Grid placement */
.col-auto {
  grid-column: auto;
}

.col-span-1 {
  -ms-grid-column-span: 1;
  grid-column: span 1/span 1;
}

.col-span-2 {
  -ms-grid-column-span: 2;
  grid-column: span 2/span 2;
}

.col-span-3 {
  -ms-grid-column-span: 3;
  grid-column: span 3/span 3;
}

.col-span-4 {
  -ms-grid-column-span: 4;
  grid-column: span 4/span 4;
}

.col-span-5 {
  -ms-grid-column-span: 5;
  grid-column: span 5/span 5;
}

.col-span-6 {
  -ms-grid-column-span: 6;
  grid-column: span 6/span 6;
}

.col-span-7 {
  -ms-grid-column-span: 7;
  grid-column: span 7/span 7;
}

.col-span-8 {
  -ms-grid-column-span: 8;
  grid-column: span 8/span 8;
}

.col-span-9 {
  -ms-grid-column-span: 9;
  grid-column: span 9/span 9;
}

.col-span-10 {
  -ms-grid-column-span: 10;
  grid-column: span 10/span 10;
}

.col-span-11 {
  -ms-grid-column-span: 11;
  grid-column: span 11/span 11;
}

.col-span-12 {
  -ms-grid-column-span: 12;
  grid-column: span 12/span 12;
}

.col-span-full {
  grid-column: 1/-1;
}

.row-auto {
  grid-row: auto;
}

.row-span-1 {
  -ms-grid-row-span: 1;
  grid-row: span 1/span 1;
}

.row-span-2 {
  -ms-grid-row-span: 2;
  grid-row: span 2/span 2;
}

.row-span-3 {
  -ms-grid-row-span: 3;
  grid-row: span 3/span 3;
}

.row-span-4 {
  -ms-grid-row-span: 4;
  grid-row: span 4/span 4;
}

.row-span-5 {
  -ms-grid-row-span: 5;
  grid-row: span 5/span 5;
}

.row-span-6 {
  -ms-grid-row-span: 6;
  grid-row: span 6/span 6;
}

.row-span-full {
  grid-row: 1/-1;
}

/* Grid justify/align items */
.justify-items-start {
  justify-items: start;
}

.justify-items-end {
  justify-items: end;
}

.justify-items-center {
  justify-items: center;
}

.justify-items-stretch {
  justify-items: stretch;
}

.items-start {
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: start;
}

.items-end {
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: end;
}

.items-center {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.items-stretch {
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
}

/* Grid justify/align self */
.justify-self-auto {
  -ms-grid-column-align: auto;
      justify-self: auto;
}

.justify-self-start {
  -ms-grid-column-align: start;
      justify-self: start;
}

.justify-self-end {
  -ms-grid-column-align: end;
      justify-self: end;
}

.justify-self-center {
  -ms-grid-column-align: center;
      justify-self: center;
}

.justify-self-stretch {
  -ms-grid-column-align: stretch;
      justify-self: stretch;
}

.self-auto {
  -ms-flex-item-align: auto;
      -ms-grid-row-align: auto;
      align-self: auto;
}

.self-start {
  -ms-flex-item-align: start;
      -ms-grid-row-align: start;
      align-self: start;
}

.self-end {
  -ms-flex-item-align: end;
      -ms-grid-row-align: end;
      align-self: end;
}

.self-center {
  -ms-flex-item-align: center;
      -ms-grid-row-align: center;
      align-self: center;
}

.self-stretch {
  -ms-flex-item-align: stretch;
      -ms-grid-row-align: stretch;
      align-self: stretch;
}

/* ----------------------------------------------------------------------------
   WIDTH UTILITIES
   -------------------------------------------------------------------------- */
/* Проценты */
.w-full {
  width: 100%;
}

.w-screen {
  width: 100vw;
}

.w-min {
  width: -webkit-min-content;
  width: -moz-min-content;
  width: min-content;
}

.w-max {
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
}

.w-fit {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
}

.w-auto {
  width: auto;
}

/* Фиксированные ширины */
.w-0 {
  width: 0px;
}

.w-1 {
  width: var(--spacing-1); /* 2px - 4px */
}

.w-2 {
  width: var(--spacing-2); /* 4px - 8px */
}

.w-3 {
  width: var(--spacing-3); /* 6px - 12px */
}

.w-4 {
  width: var(--spacing-4); /* 8px - 16px */
}

.w-5 {
  width: var(--spacing-5); /* 10px - 20px */
}

.w-6 {
  width: var(--spacing-6); /* 12px - 24px */
}

.w-8 {
  width: var(--spacing-8); /* 16px - 32px */
}

.w-10 {
  width: var(--spacing-10); /* 20px - 40px */
}

.w-12 {
  width: var(--spacing-12); /* 24px - 48px */
}

.w-16 {
  width: var(--spacing-16); /* 32px - 64px */
}

.w-20 {
  width: var(--spacing-20); /* 40px - 80px */
}

.w-24 {
  width: var(--spacing-24); /* 48px - 96px */
}

.w-32 {
  width: var(--spacing-32); /* 64px - 128px */
}

.w-40 {
  width: var(--spacing-40); /* 80px - 160px */
}

.w-48 {
  width: var(--spacing-48); /* 96px - 192px */
}

.w-56 {
  width: var(--spacing-56); /* 112px - 224px */
}

.w-64 {
  width: var(--spacing-64); /* 128px - 256px */
}

.w-72 {
  width: var(--spacing-72); /* 144px - 288px */
}

.w-80 {
  width: var(--spacing-80); /* 160px - 320px */
}

.w-96 {
  width: var(--spacing-96); /* 192px - 384px */
}

/* Проценты */
.w-1\/2 {
  width: 50%;
}

.w-1\/3 {
  width: 33.333333%;
}

.w-2\/3 {
  width: 66.666667%;
}

.w-1\/4 {
  width: 25%;
}

.w-2\/4 {
  width: 50%;
}

.w-3\/4 {
  width: 75%;
}

.w-1\/5 {
  width: 20%;
}

.w-2\/5 {
  width: 40%;
}

.w-3\/5 {
  width: 60%;
}

.w-4\/5 {
  width: 80%;
}

.w-1\/6 {
  width: 16.666667%;
}

.w-2\/6 {
  width: 33.333333%;
}

.w-3\/6 {
  width: 50%;
}

.w-4\/6 {
  width: 66.666667%;
}

.w-5\/6 {
  width: 83.333333%;
}

.w-1\/12 {
  width: 8.333333%;
}

.w-2\/12 {
  width: 16.666667%;
}

.w-3\/12 {
  width: 25%;
}

.w-4\/12 {
  width: 33.333333%;
}

.w-5\/12 {
  width: 41.666667%;
}

.w-6\/12 {
  width: 50%;
}

.w-7\/12 {
  width: 58.333333%;
}

.w-8\/12 {
  width: 66.666667%;
}

.w-9\/12 {
  width: 75%;
}

.w-10\/12 {
  width: 83.333333%;
}

.w-11\/12 {
  width: 91.666667%;
}

/* Min/Max width */
.min-w-0 {
  min-width: 0px;
}

.min-w-full {
  min-width: 100%;
}

.min-w-min {
  min-width: -webkit-min-content;
  min-width: -moz-min-content;
  min-width: min-content;
}

.min-w-max {
  min-width: -webkit-max-content;
  min-width: -moz-max-content;
  min-width: max-content;
}

.min-w-fit {
  min-width: -webkit-fit-content;
  min-width: -moz-fit-content;
  min-width: fit-content;
}

.max-w-0 {
  max-width: 0px;
}

.max-w-none {
  max-width: none;
}

.max-w-xs {
  max-width: 20rem; /* 320px */
}

.max-w-sm {
  max-width: 24rem; /* 384px */
}

.max-w-md {
  max-width: 28rem; /* 448px */
}

.max-w-lg {
  max-width: 32rem; /* 512px */
}

.max-w-xl {
  max-width: 36rem; /* 576px */
}

.max-w-2xl {
  max-width: 42rem; /* 672px */
}

.max-w-3xl {
  max-width: 48rem; /* 768px */
}

.max-w-4xl {
  max-width: 56rem; /* 896px */
}

.max-w-5xl {
  max-width: 64rem; /* 1024px */
}

.max-w-6xl {
  max-width: 72rem; /* 1152px */
}

.max-w-7xl {
  max-width: 80rem; /* 1280px */
}

.max-w-full {
  max-width: 100%;
}

.max-w-min {
  max-width: -webkit-min-content;
  max-width: -moz-min-content;
  max-width: min-content;
}

.max-w-max {
  max-width: -webkit-max-content;
  max-width: -moz-max-content;
  max-width: max-content;
}

.max-w-fit {
  max-width: -webkit-fit-content;
  max-width: -moz-fit-content;
  max-width: fit-content;
}

.max-w-prose {
  max-width: 65ch; /* Оптимальная ширина для текста */
}

/* ----------------------------------------------------------------------------
   HEIGHT UTILITIES
   -------------------------------------------------------------------------- */
/* Проценты */
.h-full {
  height: 100%;
}

.h-screen {
  height: 100vh;
}

.h-min {
  height: -webkit-min-content;
  height: -moz-min-content;
  height: min-content;
}

.h-max {
  height: -webkit-max-content;
  height: -moz-max-content;
  height: max-content;
}

.h-fit {
  height: -webkit-fit-content;
  height: -moz-fit-content;
  height: fit-content;
}

.h-auto {
  height: auto;
}

/* Фиксированные высоты */
.h-0 {
  height: 0px;
}

.h-1 {
  height: var(--spacing-1); /* 2-4px */
}

.h-2 {
  height: var(--spacing-2); /* 4-8px */
}

.h-3 {
  height: var(--spacing-3); /* 6-12px */
}

.h-4 {
  height: var(--spacing-4); /* 8-16px */
}

.h-5 {
  height: var(--spacing-5); /* 10-20px */
}

.h-6 {
  height: var(--spacing-6); /* 12-24px */
}

.h-8 {
  height: var(--spacing-8); /* 16-32px */
}

.h-10 {
  height: var(--spacing-10); /* 20-40px */
}

.h-12 {
  height: var(--spacing-12); /* 24-48px */
}

.h-16 {
  height: var(--spacing-16); /* 32-64px */
}

.h-20 {
  height: var(--spacing-20); /* 40-80px */
}

.h-24 {
  height: var(--spacing-24); /* 48-96px */
}

.h-32 {
  height: var(--spacing-32); /* 64-128px */
}

.h-40 {
  height: var(--spacing-40); /* 80-160px */
}

.h-48 {
  height: var(--spacing-48); /* 96-192px */
}

.h-56 {
  height: var(--spacing-56); /* 112-224px */
}

.h-64 {
  height: var(--spacing-64); /* 128-256px */
}

.h-72 {
  height: var(--spacing-72); /* 144-288px */
}

.h-80 {
  height: var(--spacing-80); /* 160-320px */
}

.h-96 {
  height: var(--spacing-96); /* 192-384px */
}

/* Min/Max height */
.min-h-0 {
  min-height: 0px;
}

.min-h-full {
  min-height: 100%;
}

.min-h-screen {
  min-height: 100vh;
}

.min-h-min {
  min-height: -webkit-min-content;
  min-height: -moz-min-content;
  min-height: min-content;
}

.min-h-max {
  min-height: -webkit-max-content;
  min-height: -moz-max-content;
  min-height: max-content;
}

.min-h-fit {
  min-height: -webkit-fit-content;
  min-height: -moz-fit-content;
  min-height: fit-content;
}

.max-h-0 {
  max-height: 0px;
}

.max-h-none {
  max-height: none;
}

.max-h-full {
  max-height: 100%;
}

.max-h-screen {
  max-height: 100vh;
}

.max-h-min {
  max-height: -webkit-min-content;
  max-height: -moz-min-content;
  max-height: min-content;
}

.max-h-max {
  max-height: -webkit-max-content;
  max-height: -moz-max-content;
  max-height: max-content;
}

.max-h-fit {
  max-height: -webkit-fit-content;
  max-height: -moz-fit-content;
  max-height: fit-content;
}

/* ----------------------------------------------------------------------------
   POSITIONING UTILITIES
   -------------------------------------------------------------------------- */
/* Position */
.position-static {
  position: static;
}

.position-relative {
  position: relative;
}

.position-absolute {
  position: absolute;
}

.position-fixed {
  position: fixed;
}

.position-sticky {
  position: sticky;
}

/* Top/Right/Bottom/Left */
.top-0 {
  top: 0px;
}

.right-0 {
  right: 0px;
}

.bottom-0 {
  bottom: 0px;
}

.left-0 {
  left: 0px;
}

.top-auto {
  top: auto;
}

.right-auto {
  right: auto;
}

.bottom-auto {
  bottom: auto;
}

.left-auto {
  left: auto;
}

/* Inset */
.inset-0 {
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
}

.inset-auto {
  top: auto;
  right: auto;
  bottom: auto;
  left: auto;
}

.inset-x-0 {
  left: 0;
  right: 0;
}

.inset-y-0 {
  top: 0;
  bottom: 0;
}

/* Z-index */
.z-0 {
  z-index: 0;
}

.z-10 {
  z-index: 10;
}

.z-20 {
  z-index: 20;
}

.z-30 {
  z-index: 30;
}

.z-40 {
  z-index: 40;
}

.z-50 {
  z-index: 50;
}

.z-auto {
  z-index: auto;
}

/* Адаптивные утилиты */
@media (min-width: 640px) {
  .sm\:d-none {
    display: none !important;
  }
  .sm\:d-block {
    display: block;
  }
  .sm\:d-flex {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
  }
  .sm\:d-grid {
    display: -ms-grid;
    display: grid;
  }
  .sm\:flex-row {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
  }
  .sm\:flex-col {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
  .sm\:grid-cols-1 {
    -ms-grid-columns: (minmax(0, 1fr))[1];
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }
  .sm\:grid-cols-2 {
    -ms-grid-columns: (minmax(0, 1fr))[2];
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .sm\:grid-cols-3 {
    -ms-grid-columns: (minmax(0, 1fr))[3];
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .sm\:w-full {
    width: 100%;
  }
  .sm\:w-1\/2 {
    width: 50%;
  }
}
@media (min-width: 768px) {
  .md\:d-none {
    display: none !important;
  }
  .md\:d-block {
    display: block;
  }
  .md\:d-flex {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
  }
  .md\:d-grid {
    display: -ms-grid;
    display: grid;
  }
  .md\:flex-row {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
  }
  .md\:flex-col {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
  .md\:grid-cols-2 {
    -ms-grid-columns: (minmax(0, 1fr))[2];
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .md\:grid-cols-3 {
    -ms-grid-columns: (minmax(0, 1fr))[3];
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .md\:grid-cols-4 {
    -ms-grid-columns: (minmax(0, 1fr))[4];
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .md\:w-1\/2 {
    width: 50%;
  }
  .md\:w-1\/3 {
    width: 33.333333%;
  }
}
@media (min-width: 1024px) {
  .lg\:d-none {
    display: none !important;
  }
  .lg\:d-block {
    display: block;
  }
  .lg\:d-flex {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
  }
  .lg\:d-grid {
    display: -ms-grid;
    display: grid;
  }
  .lg\:grid-cols-3 {
    -ms-grid-columns: (minmax(0, 1fr))[3];
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .lg\:grid-cols-4 {
    -ms-grid-columns: (minmax(0, 1fr))[4];
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .lg\:grid-cols-6 {
    -ms-grid-columns: (minmax(0, 1fr))[6];
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
  .lg\:w-1\/4 {
    width: 25%;
  }
  .lg\:w-1\/3 {
    width: 33.333333%;
  }
}
/* ----------------------------------------------------------------------------
   UTILITY CLASSES - ПРИМЕРЫ ИСПОЛЬЗОВАНИЯ
   --------------------------------------------------------------------------

   <!-- Flex контейнер -->
   <div class="d-flex justify-center items-center gap-4">
     <div>Item 1</div>
     <div>Item 2</div>
   </div>

   <!-- Grid сетка -->
   <div class="d-grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6">
     <div class="col-span-1 md:col-span-2">Широкий элемент</div>
     <div>Обычный</div>
     <div>Обычный</div>
     <div>Обычный</div>
   </div>

   <!-- Адаптивная ширина -->
   <div class="w-full md:w-1/2 lg:w-1/3">
     Адаптивный блок
   </div>

   <!-- Комбинирование -->
   <div class="d-flex flex-col md:flex-row gap-4 items-start md:items-center">
     <div class="flex-1">Текст</div>
     <div class="w-full md:w-auto">
       <button class="w-full md:w-fit">Кнопка</button>
     </div>
   </div>

   -------------------------------------------------------------------------- */
/* ============================================================================
   TYPOGRAPHY UTILITIES
   ============================================================================
   Утилитарные классы для работы с текстом и типографией
   Быстрый доступ к стилям прямо из HTML
   ============================================================================ */
.font-thin {
  font-weight: var(--font-weight-thin, 100) !important;
}

.font-extralight {
  font-weight: var(--font-weight-extralight, 200) !important;
}

.font-light {
  font-weight: var(--font-weight-light, 300) !important;
}

.font-normal, .caption, .body-small, .body-base, .body-large, .modal__title, .body-xl {
  font-weight: var(--font-weight-normal, 400) !important;
}

.font-regular {
  font-weight: var(--font-weight-regular, 400) !important;
}

.font-medium, .link, .label, .select__title, .input-box__title {
  font-weight: var(--font-weight-medium, 500) !important;
}

.font-semibold {
  font-weight: var(--font-weight-semibold, 600) !important;
}

.font-bold {
  font-weight: var(--font-weight-bold, 700) !important;
}

.font-extrabold {
  font-weight: var(--font-weight-extrabold, 800) !important;
}

.font-black {
  font-weight: var(--font-weight-black, 900) !important;
}

.text-xs, .caption {
  font-size: var(--font-size-xs, 0.75rem) !important;
  line-height: var(--line-height-tight, 1.25) !important;
}

.text-sm, .label, .select__title, .input-box__title, .body-small {
  font-size: var(--font-size-sm, 0.875rem) !important;
  line-height: var(--line-height-base, 1.5) !important;
}

.text-base, .link, .body-base {
  font-size: var(--font-size-base, 1rem) !important;
  line-height: var(--line-height-base, 1.5) !important;
}

.text-md {
  font-size: var(--font-size-md, 1.125rem) !important;
  line-height: var(--line-height-text, 1.6) !important;
}

.text-lg, .body-large, .modal__title, .heading-xs {
  font-size: var(--font-size-lg, 1.375rem) !important;
  line-height: var(--line-height-title, 1.3) !important;
}

.text-xl, .body-xl, .heading-small {
  font-size: var(--font-size-xl, 1.75rem) !important;
  line-height: var(--line-height-title, 1.3) !important;
}

.text-2xl {
  font-size: var(--font-size-2xl, 2.25rem) !important;
  line-height: var(--line-height-tight, 1.25) !important;
}

.text-3xl {
  font-size: var(--font-size-3xl, 3rem) !important;
  line-height: var(--line-height-tight, 1.2) !important;
}

.text-4xl, .heading-base {
  font-size: var(--font-size-4xl, 3.75rem) !important;
  line-height: var(--line-height-tight, 1.2) !important;
}

.text-5xl, .heading-large {
  font-size: var(--font-size-5xl, 4rem) !important;
  line-height: var(--line-height-tight, 1.2) !important;
}

.leading-none {
  line-height: var(--line-height-none, 1) !important;
}

.leading-tight, .label, .select__title, .input-box__title, .caption {
  line-height: var(--line-height-tight, 1.1) !important;
}

.leading-title, .heading-xs, .heading-small, .heading-base, .heading-large {
  line-height: var(--line-height-title, 1.2) !important;
}

.leading-base, .body-large, .modal__title, .body-xl {
  line-height: var(--line-height-base, 1.3) !important;
}

.leading-text {
  line-height: var(--line-height-text, 1.4) !important;
}

.leading-loose, .body-small, .body-base {
  line-height: var(--line-height-loose, 1.5) !important;
}

.uppercase {
  text-transform: uppercase !important;
}

.lowercase {
  text-transform: lowercase !important;
}

.capitalize {
  text-transform: capitalize !important;
}

.normal-case {
  text-transform: none !important;
}

.underline {
  text-decoration: underline !important;
  text-underline-offset: 0.2em;
  text-decoration-thickness: 1px;
}

.line-through {
  text-decoration: line-through !important;
}

.no-underline {
  text-decoration: none !important;
}

.text-left {
  text-align: left !important;
}

.text-center {
  text-align: center !important;
}

.text-right {
  text-align: right !important;
}

.text-justify {
  text-align: justify !important;
  text-justify: inter-word;
}

.text-start {
  text-align: start !important;
}

.text-end {
  text-align: end !important;
}

.truncate {
  overflow: hidden !important;
  -o-text-overflow: ellipsis !important;
     text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

.overflow-ellipsis {
  -o-text-overflow: ellipsis !important;
     text-overflow: ellipsis !important;
}

.overflow-clip {
  -o-text-overflow: clip !important;
     text-overflow: clip !important;
}

.line-clamp-1 {
  overflow: hidden;
  -o-text-overflow: ellipsis;
     text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
}

.line-clamp-2 {
  overflow: hidden;
  -o-text-overflow: ellipsis;
     text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}

.line-clamp-3 {
  overflow: hidden;
  -o-text-overflow: ellipsis;
     text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
}

.line-clamp-4 {
  overflow: hidden;
  -o-text-overflow: ellipsis;
     text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
}

.line-clamp-5 {
  overflow: hidden;
  -o-text-overflow: ellipsis;
     text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 5;
  -webkit-box-orient: vertical;
}

.line-clamp-6 {
  overflow: hidden;
  -o-text-overflow: ellipsis;
     text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 6;
  -webkit-box-orient: vertical;
}

.italic {
  font-style: italic !important;
}

.not-italic {
  font-style: normal !important;
}

.oblique {
  font-style: oblique !important;
}

.whitespace-normal {
  white-space: normal !important;
}

.whitespace-nowrap {
  white-space: nowrap !important;
}

.whitespace-pre {
  white-space: pre !important;
}

.whitespace-pre-line {
  white-space: pre-line !important;
}

.whitespace-pre-wrap {
  white-space: pre-wrap !important;
}

.break-normal {
  overflow-wrap: normal !important;
  word-break: normal !important;
}

.break-words {
  overflow-wrap: break-word !important;
}

.break-all {
  word-break: break-all !important;
}

.break-keep {
  word-break: keep-all !important;
}

.font-base {
  font-family: var(--font-family-base) !important;
}

.font-heading, .heading-xs, .heading-small, .heading-base, .heading-large {
  font-family: var(--font-family-heading) !important;
}

.text-balance {
  text-wrap: balance !important;
}

.text-pretty {
  text-wrap: pretty !important;
}

.text-nowrap {
  text-wrap: nowrap !important;
}

.text-wrap {
  text-wrap: wrap !important;
}

.link {
  color: var(--color-primary);
}
@media screen and (hover: hover) {
  .link:hover {
    color: var(--color-primary-hover);
  }
}

/* ============================================================================
   ADAPTIVE SPACING SYSTEM
   ============================================================================ */
/* ============================================================================
   MARGIN UTILITIES
   ============================================================================ */
.m-0 {
  margin: var(--spacing-0);
}

.m-1 {
  margin: var(--spacing-1);
}

.m-2 {
  margin: var(--spacing-2);
}

.m-3 {
  margin: var(--spacing-3);
}

.m-4 {
  margin: var(--spacing-4);
}

.m-5 {
  margin: var(--spacing-5);
}

.m-6 {
  margin: var(--spacing-6);
}

.m-8 {
  margin: var(--spacing-8);
}

.m-10 {
  margin: var(--spacing-10);
}

.m-12 {
  margin: var(--spacing-12);
}

.m-16 {
  margin: var(--spacing-16);
}

.m-20 {
  margin: var(--spacing-20);
}

.m-24 {
  margin: var(--spacing-24);
}

.m-32 {
  margin: var(--spacing-32);
}

.mt-0 {
  margin-top: var(--spacing-0);
}

.mt-1 {
  margin-top: var(--spacing-1);
}

.mt-2 {
  margin-top: var(--spacing-2);
}

.mt-3 {
  margin-top: var(--spacing-3);
}

.mt-4 {
  margin-top: var(--spacing-4);
}

.mt-5 {
  margin-top: var(--spacing-5);
}

.mt-6 {
  margin-top: var(--spacing-6);
}

.mt-8 {
  margin-top: var(--spacing-8);
}

.mt-10 {
  margin-top: var(--spacing-10);
}

.mt-12 {
  margin-top: var(--spacing-12);
}

.mt-16 {
  margin-top: var(--spacing-16);
}

.mt-20 {
  margin-top: var(--spacing-20);
}

.mt-24 {
  margin-top: var(--spacing-24);
}

.mt-32 {
  margin-top: var(--spacing-32);
}

.mr-0 {
  margin-right: var(--spacing-0);
}

.mr-1 {
  margin-right: var(--spacing-1);
}

.mr-2 {
  margin-right: var(--spacing-2);
}

.mr-3 {
  margin-right: var(--spacing-3);
}

.mr-4 {
  margin-right: var(--spacing-4);
}

.mr-5 {
  margin-right: var(--spacing-5);
}

.mr-6 {
  margin-right: var(--spacing-6);
}

.mr-8 {
  margin-right: var(--spacing-8);
}

.mr-10 {
  margin-right: var(--spacing-10);
}

.mr-12 {
  margin-right: var(--spacing-12);
}

.mr-16 {
  margin-right: var(--spacing-16);
}

.mr-20 {
  margin-right: var(--spacing-20);
}

.mr-24 {
  margin-right: var(--spacing-24);
}

.mr-32 {
  margin-right: var(--spacing-32);
}

.mb-0 {
  margin-bottom: var(--spacing-0);
}

.mb-1 {
  margin-bottom: var(--spacing-1);
}

.mb-2 {
  margin-bottom: var(--spacing-2);
}

.mb-3 {
  margin-bottom: var(--spacing-3);
}

.mb-4 {
  margin-bottom: var(--spacing-4);
}

.mb-5 {
  margin-bottom: var(--spacing-5);
}

.mb-6 {
  margin-bottom: var(--spacing-6);
}

.mb-8 {
  margin-bottom: var(--spacing-8);
}

.mb-10 {
  margin-bottom: var(--spacing-10);
}

.mb-12 {
  margin-bottom: var(--spacing-12);
}

.mb-16 {
  margin-bottom: var(--spacing-16);
}

.mb-20 {
  margin-bottom: var(--spacing-20);
}

.mb-24 {
  margin-bottom: var(--spacing-24);
}

.mb-32 {
  margin-bottom: var(--spacing-32);
}

.mb-40 {
  margin-bottom: var(--spacing-40);
}

.mb-48 {
  margin-bottom: var(--spacing-48);
}

.ml-0 {
  margin-left: var(--spacing-0);
}

.ml-1 {
  margin-left: var(--spacing-1);
}

.ml-2 {
  margin-left: var(--spacing-2);
}

.ml-3 {
  margin-left: var(--spacing-3);
}

.ml-4 {
  margin-left: var(--spacing-4);
}

.ml-5 {
  margin-left: var(--spacing-5);
}

.ml-6 {
  margin-left: var(--spacing-6);
}

.ml-8 {
  margin-left: var(--spacing-8);
}

.ml-10 {
  margin-left: var(--spacing-10);
}

.ml-12 {
  margin-left: var(--spacing-12);
}

.ml-16 {
  margin-left: var(--spacing-16);
}

.ml-20 {
  margin-left: var(--spacing-20);
}

.ml-24 {
  margin-left: var(--spacing-24);
}

.ml-32 {
  margin-left: var(--spacing-32);
}

.mx-0 {
  margin-left: var(--spacing-0);
  margin-right: var(--spacing-0);
}

.mx-1 {
  margin-left: var(--spacing-1);
  margin-right: var(--spacing-1);
}

.mx-2 {
  margin-left: var(--spacing-2);
  margin-right: var(--spacing-2);
}

.mx-3 {
  margin-left: var(--spacing-3);
  margin-right: var(--spacing-3);
}

.mx-4 {
  margin-left: var(--spacing-4);
  margin-right: var(--spacing-4);
}

.mx-5 {
  margin-left: var(--spacing-5);
  margin-right: var(--spacing-5);
}

.mx-6 {
  margin-left: var(--spacing-6);
  margin-right: var(--spacing-6);
}

.mx-8 {
  margin-left: var(--spacing-8);
  margin-right: var(--spacing-8);
}

.mx-10 {
  margin-left: var(--spacing-10);
  margin-right: var(--spacing-10);
}

.mx-12 {
  margin-left: var(--spacing-12);
  margin-right: var(--spacing-12);
}

.mx-16 {
  margin-left: var(--spacing-16);
  margin-right: var(--spacing-16);
}

.mx-20 {
  margin-left: var(--spacing-20);
  margin-right: var(--spacing-20);
}

.my-0 {
  margin-top: var(--spacing-0);
  margin-bottom: var(--spacing-0);
}

.my-1 {
  margin-top: var(--spacing-1);
  margin-bottom: var(--spacing-1);
}

.my-2 {
  margin-top: var(--spacing-2);
  margin-bottom: var(--spacing-2);
}

.my-3 {
  margin-top: var(--spacing-3);
  margin-bottom: var(--spacing-3);
}

.my-4 {
  margin-top: var(--spacing-4);
  margin-bottom: var(--spacing-4);
}

.my-5 {
  margin-top: var(--spacing-5);
  margin-bottom: var(--spacing-5);
}

.my-6 {
  margin-top: var(--spacing-6);
  margin-bottom: var(--spacing-6);
}

.my-8 {
  margin-top: var(--spacing-8);
  margin-bottom: var(--spacing-8);
}

.my-10 {
  margin-top: var(--spacing-10);
  margin-bottom: var(--spacing-10);
}

.my-12 {
  margin-top: var(--spacing-12);
  margin-bottom: var(--spacing-12);
}

.my-16 {
  margin-top: var(--spacing-16);
  margin-bottom: var(--spacing-16);
}

.my-20 {
  margin-top: var(--spacing-20);
  margin-bottom: var(--spacing-20);
}

.mx-auto {
  margin-left: auto;
  margin-right: auto;
}

.my-auto {
  margin-top: auto;
  margin-bottom: auto;
}

/* ============================================================================
   PADDING UTILITIES
   ============================================================================ */
.p-0 {
  padding: var(--spacing-0);
}

.p-1 {
  padding: var(--spacing-1);
}

.p-2 {
  padding: var(--spacing-2);
}

.p-3 {
  padding: var(--spacing-3);
}

.p-4 {
  padding: var(--spacing-4);
}

.p-5 {
  padding: var(--spacing-5);
}

.p-6 {
  padding: var(--spacing-6);
}

.p-8 {
  padding: var(--spacing-8);
}

.p-10 {
  padding: var(--spacing-10);
}

.p-12 {
  padding: var(--spacing-12);
}

.p-16 {
  padding: var(--spacing-16);
}

.p-20 {
  padding: var(--spacing-20);
}

.p-24 {
  padding: var(--spacing-24);
}

.p-32 {
  padding: var(--spacing-32);
}

.pt-0 {
  padding-top: var(--spacing-0);
}

.pt-1 {
  padding-top: var(--spacing-1);
}

.pt-2 {
  padding-top: var(--spacing-2);
}

.pt-3 {
  padding-top: var(--spacing-3);
}

.pt-4 {
  padding-top: var(--spacing-4);
}

.pt-5 {
  padding-top: var(--spacing-5);
}

.pt-6 {
  padding-top: var(--spacing-6);
}

.pt-8 {
  padding-top: var(--spacing-8);
}

.pt-10 {
  padding-top: var(--spacing-10);
}

.pt-12 {
  padding-top: var(--spacing-12);
}

.pt-16 {
  padding-top: var(--spacing-16);
}

.pt-20 {
  padding-top: var(--spacing-20);
}

.pt-24 {
  padding-top: var(--spacing-24);
}

.pt-32 {
  padding-top: var(--spacing-32);
}

.pr-0 {
  padding-right: var(--spacing-0);
}

.pr-1 {
  padding-right: var(--spacing-1);
}

.pr-2 {
  padding-right: var(--spacing-2);
}

.pr-3 {
  padding-right: var(--spacing-3);
}

.pr-4 {
  padding-right: var(--spacing-4);
}

.pr-5 {
  padding-right: var(--spacing-5);
}

.pr-6 {
  padding-right: var(--spacing-6);
}

.pr-8 {
  padding-right: var(--spacing-8);
}

.pr-10 {
  padding-right: var(--spacing-10);
}

.pr-12 {
  padding-right: var(--spacing-12);
}

.pr-16 {
  padding-right: var(--spacing-16);
}

.pr-20 {
  padding-right: var(--spacing-20);
}

.pr-24 {
  padding-right: var(--spacing-24);
}

.pr-32 {
  padding-right: var(--spacing-32);
}

.pb-0 {
  padding-bottom: var(--spacing-0);
}

.pb-1 {
  padding-bottom: var(--spacing-1);
}

.pb-2 {
  padding-bottom: var(--spacing-2);
}

.pb-3 {
  padding-bottom: var(--spacing-3);
}

.pb-4 {
  padding-bottom: var(--spacing-4);
}

.pb-5 {
  padding-bottom: var(--spacing-5);
}

.pb-6 {
  padding-bottom: var(--spacing-6);
}

.pb-8 {
  padding-bottom: var(--spacing-8);
}

.pb-10 {
  padding-bottom: var(--spacing-10);
}

.pb-12 {
  padding-bottom: var(--spacing-12);
}

.pb-16 {
  padding-bottom: var(--spacing-16);
}

.pb-20 {
  padding-bottom: var(--spacing-20);
}

.pb-24 {
  padding-bottom: var(--spacing-24);
}

.pb-32 {
  padding-bottom: var(--spacing-32);
}

.pl-0 {
  padding-left: var(--spacing-0);
}

.pl-1 {
  padding-left: var(--spacing-1);
}

.pl-2 {
  padding-left: var(--spacing-2);
}

.pl-3 {
  padding-left: var(--spacing-3);
}

.pl-4 {
  padding-left: var(--spacing-4);
}

.pl-5 {
  padding-left: var(--spacing-5);
}

.pl-6 {
  padding-left: var(--spacing-6);
}

.pl-8 {
  padding-left: var(--spacing-8);
}

.pl-10 {
  padding-left: var(--spacing-10);
}

.pl-12 {
  padding-left: var(--spacing-12);
}

.pl-16 {
  padding-left: var(--spacing-16);
}

.pl-20 {
  padding-left: var(--spacing-20);
}

.pl-24 {
  padding-left: var(--spacing-24);
}

.pl-32 {
  padding-left: var(--spacing-32);
}

.px-0 {
  padding-left: var(--spacing-0);
  padding-right: var(--spacing-0);
}

.px-1 {
  padding-left: var(--spacing-1);
  padding-right: var(--spacing-1);
}

.px-2 {
  padding-left: var(--spacing-2);
  padding-right: var(--spacing-2);
}

.px-3 {
  padding-left: var(--spacing-3);
  padding-right: var(--spacing-3);
}

.px-4 {
  padding-left: var(--spacing-4);
  padding-right: var(--spacing-4);
}

.px-5 {
  padding-left: var(--spacing-5);
  padding-right: var(--spacing-5);
}

.px-6 {
  padding-left: var(--spacing-6);
  padding-right: var(--spacing-6);
}

.px-8 {
  padding-left: var(--spacing-8);
  padding-right: var(--spacing-8);
}

.px-10 {
  padding-left: var(--spacing-10);
  padding-right: var(--spacing-10);
}

.px-12 {
  padding-left: var(--spacing-12);
  padding-right: var(--spacing-12);
}

.px-16 {
  padding-left: var(--spacing-16);
  padding-right: var(--spacing-16);
}

.px-20 {
  padding-left: var(--spacing-20);
  padding-right: var(--spacing-20);
}

.py-0 {
  padding-top: var(--spacing-0);
  padding-bottom: var(--spacing-0);
}

.py-1 {
  padding-top: var(--spacing-1);
  padding-bottom: var(--spacing-1);
}

.py-2 {
  padding-top: var(--spacing-2);
  padding-bottom: var(--spacing-2);
}

.py-3 {
  padding-top: var(--spacing-3);
  padding-bottom: var(--spacing-3);
}

.py-4 {
  padding-top: var(--spacing-4);
  padding-bottom: var(--spacing-4);
}

.py-5 {
  padding-top: var(--spacing-5);
  padding-bottom: var(--spacing-5);
}

.py-6 {
  padding-top: var(--spacing-6);
  padding-bottom: var(--spacing-6);
}

.py-8 {
  padding-top: var(--spacing-8);
  padding-bottom: var(--spacing-8);
}

.py-10 {
  padding-top: var(--spacing-10);
  padding-bottom: var(--spacing-10);
}

.py-12 {
  padding-top: var(--spacing-12);
  padding-bottom: var(--spacing-12);
}

.py-16 {
  padding-top: var(--spacing-16);
  padding-bottom: var(--spacing-16);
}

.py-20 {
  padding-top: var(--spacing-20);
  padding-bottom: var(--spacing-20);
}

.accordion {
  position: relative;
  z-index: 1;
}

.accordion__button {
  cursor: pointer;
  text-align: left;
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: 1fr auto;
  grid-template-columns: 1fr auto;
  width: 100%;
  gap: var(--spacing-3);
}

.accordion__title {
  line-height: var(--line-height-title);
  font-size: var(--font-size-base);
}

.accordion__icon {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-transition: var(--animation-duration-base);
  -o-transition: var(--animation-duration-base);
  transition: var(--animation-duration-base);
}
.accordion__icon svg {
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
}

.accordion__body {
  max-height: 0;
  -webkit-transition: var(--animation-duration-base);
  -o-transition: var(--animation-duration-base);
  transition: var(--animation-duration-base);
  overflow: hidden;
}

.accordion--base {
  background-color: var(--color-background-input);
  border: var(--border-width-thin) solid var(--color-background-secondary);
  border-radius: var(--border-radius-2xl);
}
.accordion--base.--active-status {
  background-color: var(--color-primary);
}
@media screen and (hover: hover) {
  .accordion--base:hover {
    border-color: var(--color-primary);
  }
}
.accordion--base .accordion__button {
  padding: var(--spacing-6) var(--spacing-8);
}
.accordion--base .accordion__button.--active {
  color: var(--color-text-inverted);
}
.accordion--base .accordion__button.--active .accordion__icon {
  background: var(--color-text-inverted);
}
.accordion--base .accordion__button.--active .accordion__icon svg {
  -webkit-transform: rotate(45deg);
      -ms-transform: rotate(45deg);
          transform: rotate(45deg);
}
.accordion--base .accordion__button.--active .accordion__icon svg path {
  fill: var(--color-primary);
}
.accordion--base .accordion__inner {
  padding: 0 var(--spacing-8) var(--spacing-6);
  color: var(--color-text-inverted);
  font-size: var(--font-size-sm);
  line-height: var(--line-height-loose);
}
.accordion--base .accordion__title {
  font-weight: var(--font-weight-semibold);
  font-size: var(--font-size-lg);
  -ms-flex-item-align: center;
      -ms-grid-row-align: center;
      align-self: center;
}
.accordion--base .accordion__icon {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  border-radius: var(--border-radius-md);
  background: var(--color-primary);
}
@media (min-width: 1680px) {
  .accordion--base .accordion__icon {
    width: 32px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  .accordion--base .accordion__icon {
    width: calc(
				24px + 8 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  .accordion--base .accordion__icon {
    width: 24px;
  }
}
@media (min-width: 1680px) {
  .accordion--base .accordion__icon {
    height: 32px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  .accordion--base .accordion__icon {
    height: calc(
				24px + 8 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  .accordion--base .accordion__icon {
    height: 24px;
  }
}
.accordion--base .accordion__icon svg {
  -o-object-fit: contain;
     object-fit: contain;
  -webkit-transition: var(--transition-duration-base);
  -o-transition: var(--transition-duration-base);
  transition: var(--transition-duration-base);
}
@media (min-width: 1680px) {
  .accordion--base .accordion__icon svg {
    width: 24px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  .accordion--base .accordion__icon svg {
    width: calc(
				16px + 8 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  .accordion--base .accordion__icon svg {
    width: 16px;
  }
}
@media (min-width: 1680px) {
  .accordion--base .accordion__icon svg {
    height: 24px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  .accordion--base .accordion__icon svg {
    height: calc(
				16px + 8 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  .accordion--base .accordion__icon svg {
    height: 16px;
  }
}
.accordion--base .accordion__icon svg path {
  fill: var(--color-text-inverted);
}

/* ==========================================================================
   BASE BUTTON STYLES
   ========================================================================== */
a,
button {
  -webkit-transition: var(--transition-duration-base);
  -o-transition: var(--transition-duration-base);
  transition: var(--transition-duration-base);
}

.button {
  --button-font-size: var(--font-size-base);
  --button-padding-x: var(--spacing-8);
  --button-padding-y: var(--spacing-4);
  --button-radius: var(--border-radius-full);
  --button-font-weight: var(--font-weight-semibold);
  --button-letter-spacing: var(--letter-spacing-wide);
  --button-elevation: var(--shadow-sm);
  --button-elevation-hover: var(--shadow-md);
  --button-elevation-active: var(--shadow-xs);
  --button-transition: all var(--transition-duration-base)
  	var(--transition-timing-ease);
  position: relative;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: var(--spacing-3);
  min-height: var(--button-height);
  padding: var(--button-padding-y) var(--button-padding-x);
  border-radius: var(--button-radius);
  border: var(--border-width-base) solid transparent;
  font-family: var(--font-family-base);
  font-size: var(--button-font-size);
  font-weight: var(--button-font-weight);
  line-height: var(--line-height-none);
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  vertical-align: middle;
  white-space: nowrap;
  overflow: hidden;
  -webkit-transition: var(--transition-duration-base);
  -o-transition: var(--transition-duration-base);
  transition: var(--transition-duration-base);
  -webkit-transform: translateZ(0);
          transform: translateZ(0);
  outline: none;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}
@media (min-width: 1680px) {
  .button {
    --button-height: 54px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  .button {
    --button-height: calc(
				40px + 14 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  .button {
    --button-height: 40px;
  }
}
@media (min-width: 1680px) {
  .button {
    --button-icon-size: 20px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  .button {
    --button-icon-size: calc(
				16px + 4 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  .button {
    --button-icon-size: 16px;
  }
}
.button::before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: auto;
  right: 0;
  height: 100%;
  width: 0;
  background-color: transparent;
  z-index: -1;
  border-radius: 10003px;
  -webkit-transition: var(--transition-duration-base);
  -o-transition: var(--transition-duration-base);
  transition: var(--transition-duration-base);
}
.button::after {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  left: 50%;
  width: 100px;
  height: 100px;
  background: rgba(255, 255, 255, 0.3);
  border-radius: 50%;
  -webkit-transform: translate(-50%, -50%) scale(0);
      -ms-transform: translate(-50%, -50%) scale(0);
          transform: translate(-50%, -50%) scale(0);
  opacity: 1;
  pointer-events: none;
  z-index: 2;
}
.button svg {
  min-width: var(--button-icon-size);
  width: var(--button-icon-size);
  height: var(--button-icon-size);
  -webkit-transition: var(--transition-duration-base);
  -o-transition: var(--transition-duration-base);
  transition: var(--transition-duration-base);
}
.button svg path {
  fill: currentColor;
  stroke: currentColor;
}
.button:active {
  -webkit-transform: translateY(1px) scale(0.98);
      -ms-transform: translateY(1px) scale(0.98);
          transform: translateY(1px) scale(0.98);
  -webkit-box-shadow: var(--button-elevation-active);
          box-shadow: var(--button-elevation-active);
  -webkit-transition-duration: var(--transition-duration-fast);
       -o-transition-duration: var(--transition-duration-fast);
          transition-duration: var(--transition-duration-fast);
}
.button:active::after {
  -webkit-animation: buttonRipple 0.6s var(--transition-timing-ease-out);
          animation: buttonRipple 0.6s var(--transition-timing-ease-out);
}
.button:disabled, .button--disabled {
  cursor: not-allowed;
  opacity: 0.4;
  pointer-events: none;
}
.button:disabled:hover, .button--disabled:hover {
  -webkit-transform: none;
      -ms-transform: none;
          transform: none;
}
.button:disabled:hover::before, .button--disabled:hover::before {
  width: 0;
  left: auto;
  right: 0;
}

.button__label {
  position: relative;
  z-index: 1;
  -webkit-transition: var(--transition-duration-base);
  -o-transition: var(--transition-duration-base);
  transition: var(--transition-duration-base);
}

@-webkit-keyframes buttonRipple {
  0% {
    -webkit-transform: translate(-50%, -50%) scale(0);
            transform: translate(-50%, -50%) scale(0);
    opacity: 0.5;
  }
  100% {
    -webkit-transform: translate(-50%, -50%) scale(4);
            transform: translate(-50%, -50%) scale(4);
    opacity: 0;
  }
}

@keyframes buttonRipple {
  0% {
    -webkit-transform: translate(-50%, -50%) scale(0);
            transform: translate(-50%, -50%) scale(0);
    opacity: 0.5;
  }
  100% {
    -webkit-transform: translate(-50%, -50%) scale(4);
            transform: translate(-50%, -50%) scale(4);
    opacity: 0;
  }
}
/* ==========================================================================
   BUTTON TYPE MODIFIERS (main, secondary, outlined, text)
   ========================================================================== */
.button--main {
  background-color: var(--color-primary);
  border-color: var(--color-primary);
  color: var(--color-text-inverted);
}
@media screen and (hover: hover) {
  .button--main:hover {
    color: var(--color-primary);
    border-color: var(--color-primary);
    background-color: transparent;
  }
}
.button--main:disabled {
  background-color: var(--color-surface-disabled);
  color: var(--color-text-disabled);
  border-color: transparent;
}

.button--outlined {
  background-color: transparent;
  border: var(--border-width-base) solid var(--color-secondary);
  color: var(--color-secondary);
}
.button--outlined::before {
  background-color: var(--color-surface-secondary-500);
}
@media screen and (hover: hover) {
  .button--outlined:hover {
    color: var(--color-secondary-hover);
    border-color: var(--color-secondary-hover);
    background-color: transparent;
  }
  .button--outlined:hover::before {
    width: 100%;
    left: 0;
  }
}
.button--outlined:disabled {
  background-color: transparent;
  color: var(--color-text-disabled);
  border-color: var(--color-surface-disabled);
}
.button--outlined.button--main::before {
  background: var(--color-surface-primary-140);
}

/* ==========================================================================
   CIRCLE BUTTONS
   ========================================================================== */
.button--circle {
  width: var(--button-circle-size);
  height: var(--button-circle-size);
  min-height: var(--button-fab-size);
  padding: 0;
  border-radius: var(--border-radius-full);
  border: none;
}
@media (min-width: 1680px) {
  .button--circle {
    --button-circle-size: 56px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  .button--circle {
    --button-circle-size: calc(
				40px + 16 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  .button--circle {
    --button-circle-size: 40px;
  }
}
@media (min-width: 1680px) {
  .button--circle {
    --button-icon-size: 24px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  .button--circle {
    --button-icon-size: calc(
				16px + 8 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  .button--circle {
    --button-icon-size: 16px;
  }
}
.button--circle::before {
  content: none;
}
.button--circle:disabled, .button--circle--disabled {
  color: var(--color-text-disabled);
}
.button--circle:disabled.button--outlined, .button--circle--disabled.button--outlined {
  border-color: var(--color-surface-disabled);
}
.button--circle:disabled.button--icon, .button--circle--disabled.button--icon {
  background-color: transparent;
}

/* ==========================================================================
   CIRCLE BUTTON TYPE MODIFIERS
   ========================================================================== */
.button--circle.button--outlined {
  border: var(--border-width-base) solid var(--color-secondary);
  color: var(--color-secondary);
  background-color: transparent;
}
@media screen and (hover: hover) {
  .button--circle.button--outlined:hover {
    background-color: var(--color-surface-secondary-500);
  }
}
.button--circle.button--outlined:disabled {
  background-color: transparent;
}

.button--circle:disabled {
  background-color: var(--color-surface-disabled);
  color: var(--color-text-disabled) !important;
  border-color: transparent;
}
.button--circle:disabled.button--outlined {
  background-color: transparent;
  border-color: var(--color-surface-disabled);
}
.button--circle:disabled.button--icon {
  background-color: transparent;
}

/* ==========================================================================
   BASE TOGGLE STYLES
   ========================================================================== */
.toggle {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  cursor: pointer;
  position: relative;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  gap: var(--spacing-3);
}

.toggle__input {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
  overflow: hidden;
  visibility: hidden;
}

.toggle__label {
  font-family: var(--font-family-base);
  font-size: var(--font-size-base);
  line-height: var(--line-height-text);
  color: var(--color-text-primary);
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  padding-left: calc(20px + var(--spacing-2));
}
@media (min-width: 1680px) {
  .toggle__label {
    padding-left: 32px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  .toggle__label {
    padding-left: calc(
				24px + 8 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  .toggle__label {
    padding-left: 24px;
  }
}
.toggle__label a {
  display: inline;
  text-decoration: underline;
}
@media screen and (hover: hover) {
  .toggle__label a:hover {
    text-decoration: none;
    opacity: 0.6;
  }
}

.toggle--inverted .toggle__label,
.toggle--inverted .toggle__text {
  color: var(--color-text-inverted);
}

/* ==========================================================================
   TOGGLE CONTROL BASE
   ========================================================================== */
.toggle__label::before {
  content: "";
  position: absolute;
  left: 0;
  top: 2px;
  border: var(--border-width-thin) solid var(--color-border-primary);
  background-color: var(--color-background-primary);
  -webkit-transition: all var(--transition-duration-base) var(--transition-timing-ease);
  -o-transition: all var(--transition-duration-base) var(--transition-timing-ease);
  transition: all var(--transition-duration-base) var(--transition-timing-ease);
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}
@media (min-width: 1680px) {
  .toggle__label::before {
    width: 20px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  .toggle__label::before {
    width: calc(
				16px + 4 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  .toggle__label::before {
    width: 16px;
  }
}
@media (min-width: 1680px) {
  .toggle__label::before {
    height: 20px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  .toggle__label::before {
    height: calc(
				16px + 4 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  .toggle__label::before {
    height: 16px;
  }
}

/* ==========================================================================
   SHARED MODIFIER STYLES
   ========================================================================== */
.toggle__input:checked ~ .toggle__label::before {
  border-color: var(--color-primary);
}

.toggle__label::after {
  content: "";
  display: block;
  position: absolute;
  -webkit-transition: all var(--transition-duration-base) var(--transition-timing-ease);
  -o-transition: all var(--transition-duration-base) var(--transition-timing-ease);
  transition: all var(--transition-duration-base) var(--transition-timing-ease);
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  opacity: 0;
  -webkit-transform: scale(0);
      -ms-transform: scale(0);
          transform: scale(0);
}

.toggle__input:checked ~ .toggle__label::after {
  opacity: 1;
  -webkit-transform: scale(1);
      -ms-transform: scale(1);
          transform: scale(1);
}

/* ==========================================================================
   CHECKBOX
   ========================================================================== */
.toggle--checkbox .toggle__label::before {
  border-radius: var(--border-radius-sm);
}
.toggle--checkbox .toggle__label::after {
  top: 4px;
  border: solid var(--color-primary);
  border-width: 0 2px 2px 0;
  -webkit-transform: rotate(45deg) scale(0);
      -ms-transform: rotate(45deg) scale(0);
          transform: rotate(45deg) scale(0);
}
@media (min-width: 1680px) {
  .toggle--checkbox .toggle__label::after {
    left: 7px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  .toggle--checkbox .toggle__label::after {
    left: calc(
				6px + 1 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  .toggle--checkbox .toggle__label::after {
    left: 6px;
  }
}
@media (min-width: 1680px) {
  .toggle--checkbox .toggle__label::after {
    width: 6px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  .toggle--checkbox .toggle__label::after {
    width: calc(
				4px + 2 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  .toggle--checkbox .toggle__label::after {
    width: 4px;
  }
}
@media (min-width: 1680px) {
  .toggle--checkbox .toggle__label::after {
    height: 12px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  .toggle--checkbox .toggle__label::after {
    height: calc(
				10px + 2 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  .toggle--checkbox .toggle__label::after {
    height: 10px;
  }
}
.toggle--checkbox .toggle__input:checked ~ .toggle__label::before {
  background-color: var(--color-surface-primary-140);
}
.toggle--checkbox .toggle__input:checked ~ .toggle__label::after {
  -webkit-transform: rotate(45deg) scale(1);
      -ms-transform: rotate(45deg) scale(1);
          transform: rotate(45deg) scale(1);
}

/* ==========================================================================
   RADIO
   ========================================================================== */
.toggle--radio .toggle__label::before {
  border-radius: var(--border-radius-full);
}
.toggle--radio .toggle__label::after {
  border-radius: var(--border-radius-full);
  background-color: var(--color-primary);
}
@media (min-width: 1680px) {
  .toggle--radio .toggle__label::after {
    left: 5px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  .toggle--radio .toggle__label::after {
    left: calc(
				4px + 1 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  .toggle--radio .toggle__label::after {
    left: 4px;
  }
}
@media (min-width: 1680px) {
  .toggle--radio .toggle__label::after {
    top: 7px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  .toggle--radio .toggle__label::after {
    top: calc(
				6px + 1 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  .toggle--radio .toggle__label::after {
    top: 6px;
  }
}
@media (min-width: 1680px) {
  .toggle--radio .toggle__label::after {
    width: 10px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  .toggle--radio .toggle__label::after {
    width: calc(
				8px + 2 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  .toggle--radio .toggle__label::after {
    width: 8px;
  }
}
@media (min-width: 1680px) {
  .toggle--radio .toggle__label::after {
    height: 10px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  .toggle--radio .toggle__label::after {
    height: calc(
				8px + 2 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  .toggle--radio .toggle__label::after {
    height: 8px;
  }
}
.toggle--radio .toggle__input:checked ~ .toggle__label::before {
  background-color: var(--color-surface-primary-140);
}

/* ==========================================================================
   CHECKMARK (радиокнопка с галочкой)
   ========================================================================== */
.toggle--checkmark .toggle__label::before {
  border-radius: var(--border-radius-full);
}
.toggle--checkmark .toggle__label::after {
  top: 4px;
  border: solid var(--color-text-inverted);
  border-width: 0 2px 2px 0;
  -webkit-transform: rotate(45deg) scale(0);
      -ms-transform: rotate(45deg) scale(0);
          transform: rotate(45deg) scale(0);
}
@media (min-width: 1680px) {
  .toggle--checkmark .toggle__label::after {
    left: 7px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  .toggle--checkmark .toggle__label::after {
    left: calc(
				6px + 1 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  .toggle--checkmark .toggle__label::after {
    left: 6px;
  }
}
@media (min-width: 1680px) {
  .toggle--checkmark .toggle__label::after {
    width: 6px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  .toggle--checkmark .toggle__label::after {
    width: calc(
				4px + 2 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  .toggle--checkmark .toggle__label::after {
    width: 4px;
  }
}
@media (min-width: 1680px) {
  .toggle--checkmark .toggle__label::after {
    height: 12px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  .toggle--checkmark .toggle__label::after {
    height: calc(
				10px + 2 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  .toggle--checkmark .toggle__label::after {
    height: 10px;
  }
}
.toggle--checkmark .toggle__input:checked ~ .toggle__label::before {
  background-color: var(--color-primary);
}
.toggle--checkmark .toggle__input:checked ~ .toggle__label::after {
  -webkit-transform: rotate(45deg) scale(1);
      -ms-transform: rotate(45deg) scale(1);
          transform: rotate(45deg) scale(1);
}

/* ==========================================================================
   FOCUS STATE
   ========================================================================== */
.toggle__input:focus-visible ~ .toggle__label::before {
  outline: var(--border-width-base) solid var(--color-primary);
  outline-offset: var(--border-width-base);
  border-color: var(--color-primary);
}

/* ==========================================================================
   HOVER STATES
   ========================================================================== */
@media (hover: hover) {
  .toggle:not(.toggle--disabled):hover .toggle__label::before {
    border-color: var(--color-primary);
    background-color: var(--color-surface-primary-140);
  }
  .toggle:not(.toggle--disabled).toggle--checkbox:hover .toggle__input:checked ~ .toggle__label::before, .toggle:not(.toggle--disabled).toggle--radio:hover .toggle__input:checked ~ .toggle__label::before {
    border-color: var(--color-primary);
    background-color: var(--color-surface-primary-140);
  }
  .toggle:not(.toggle--disabled).toggle--radio:hover .toggle__input:checked ~ .toggle__label::after, .toggle:not(.toggle--disabled).toggle--checkmark:hover .toggle__input:checked ~ .toggle__label::before {
    background-color: var(--color-primary);
  }
}
/* ==========================================================================
   ACTIVE STATE
   ========================================================================== */
.toggle:active .toggle__label::before {
  -webkit-transform: scale(0.95);
      -ms-transform: scale(0.95);
          transform: scale(0.95);
}

@-webkit-keyframes toggleActive {
  0% {
    -webkit-transform: scale(1);
            transform: scale(1);
  }
  50% {
    -webkit-transform: scale(0.95);
            transform: scale(0.95);
  }
  100% {
    -webkit-transform: scale(1);
            transform: scale(1);
  }
}

@keyframes toggleActive {
  0% {
    -webkit-transform: scale(1);
            transform: scale(1);
  }
  50% {
    -webkit-transform: scale(0.95);
            transform: scale(0.95);
  }
  100% {
    -webkit-transform: scale(1);
            transform: scale(1);
  }
}
/* ==========================================================================
   DISABLED STATE
   ========================================================================== */
.toggle--disabled {
  cursor: not-allowed;
  opacity: 0.6;
}
.toggle--disabled .toggle__label {
  color: var(--color-text-tertiary);
}
.toggle--disabled .toggle__label::before {
  border-color: var(--color-text-disabled);
  background-color: var(--color-surface-disabled);
}
.toggle--disabled .toggle__input:checked ~ .toggle__label::before {
  border-color: var(--color-text-disabled);
  background-color: var(--color-surface-disabled);
}

.toggle--checkbox.toggle--disabled .toggle__input:checked ~ .toggle__label::after {
  border-color: var(--color-text-disabled);
}

.toggle--radio.toggle--disabled .toggle__input:checked ~ .toggle__label::after {
  background-color: var(--color-surface-disabled);
}

/* ==========================================================================
   VALIDATION STATES
   ========================================================================== */
/* Error State */
.toggle--error .toggle__label::before {
  border-color: var(--color-danger);
}

.toggle--checkbox.toggle--error .toggle__input:checked ~ .toggle__label::before {
  background-color: var(--color-surface-danger);
  border-color: var(--color-danger);
}
.toggle--checkbox.toggle--error .toggle__input:checked ~ .toggle__label::after {
  border-color: var(--color-danger);
}

.toggle--radio.toggle--error .toggle__input:checked ~ .toggle__label::before {
  border-color: var(--color-danger);
  background-color: var(--color-surface-danger);
}
.toggle--radio.toggle--error .toggle__input:checked ~ .toggle__label::after {
  background-color: var(--color-danger);
}

.toggle--checkmark.toggle--error .toggle__input:checked ~ .toggle__label::before {
  background-color: var(--color-danger);
  border-color: var(--color-danger);
}
.toggle--checkmark.toggle--error .toggle__input:checked ~ .toggle__label::after {
  border-color: var(--color-text-inverted);
}

/* Success State */
.toggle--success .toggle__label::before {
  border-color: var(--color-success);
}

.toggle--checkbox.toggle--success .toggle__input:checked ~ .toggle__label::before {
  background-color: var(--color-surface-success);
  border-color: var(--color-success);
}
.toggle--checkbox.toggle--success .toggle__input:checked ~ .toggle__label::after {
  border-color: var(--color-success);
}

.toggle--radio.toggle--success .toggle__input:checked ~ .toggle__label::before {
  border-color: var(--color-success);
  background-color: var(--color-surface-success);
}
.toggle--radio.toggle--success .toggle__input:checked ~ .toggle__label::after {
  background-color: var(--color-success);
}

.toggle--checkmark.toggle--success .toggle__input:checked ~ .toggle__label::before {
  background-color: var(--color-success);
  border-color: var(--color-success);
}
.toggle--checkmark.toggle--success .toggle__input:checked ~ .toggle__label::after {
  border-color: var(--color-text-inverted);
}

/* ==========================================================================
   SWITCH TOGGLE
   ========================================================================== */
.toggle--switch .toggle__span {
  position: relative;
  display: inline-block;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  border-radius: var(--border-radius-full);
  background-color: var(--color-background-input);
  border: var(--border-width-thin) solid var(--color-border-primary);
  -webkit-transition: all var(--transition-duration-base) var(--transition-timing-ease);
  -o-transition: all var(--transition-duration-base) var(--transition-timing-ease);
  transition: all var(--transition-duration-base) var(--transition-timing-ease);
  cursor: pointer;
  width: 36px;
}
@media (min-width: 1920px) {
  .toggle--switch .toggle__span {
    height: 22px;
  }
}
@media (min-width: 1280px) and (max-width: 1920px) {
  .toggle--switch .toggle__span {
    height: calc(
				20px + 2 *
					((100vw - 1280px) / (640))
			);
  }
}
@media (max-width: 1280px) {
  .toggle--switch .toggle__span {
    height: 20px;
  }
}
.toggle--switch .toggle__span::after {
  content: "";
  position: absolute;
  border-radius: var(--border-radius-full);
  background-color: var(--color-text-inverted);
  -webkit-transition: all var(--transition-duration-base) var(--transition-timing-ease);
  -o-transition: all var(--transition-duration-base) var(--transition-timing-ease);
  transition: all var(--transition-duration-base) var(--transition-timing-ease);
  -webkit-transform: translateX(0);
      -ms-transform: translateX(0);
          transform: translateX(0);
  -webkit-box-shadow: var(--shadow-md);
          box-shadow: var(--shadow-md);
  top: 2px;
  left: 2px;
}
@media (min-width: 1920px) {
  .toggle--switch .toggle__span::after {
    width: 16px;
  }
}
@media (min-width: 1280px) and (max-width: 1920px) {
  .toggle--switch .toggle__span::after {
    width: calc(
				14px + 2 *
					((100vw - 1280px) / (640))
			);
  }
}
@media (max-width: 1280px) {
  .toggle--switch .toggle__span::after {
    width: 14px;
  }
}
@media (min-width: 1920px) {
  .toggle--switch .toggle__span::after {
    height: 16px;
  }
}
@media (min-width: 1280px) and (max-width: 1920px) {
  .toggle--switch .toggle__span::after {
    height: calc(
				14px + 2 *
					((100vw - 1280px) / (640))
			);
  }
}
@media (max-width: 1280px) {
  .toggle--switch .toggle__span::after {
    height: 14px;
  }
}
.toggle--switch .toggle__input:checked ~ .toggle__span {
  background-color: var(--color-surface-primary-140);
  border-color: var(--color-primary);
}
.toggle--switch .toggle__input:checked ~ .toggle__span::after {
  background-color: var(--color-primary);
  -webkit-transform: translateX(14px);
      -ms-transform: translateX(14px);
          transform: translateX(14px);
}

@media (hover: hover) {
  .toggle--switch:not(.toggle--disabled):hover .toggle__span {
    border-color: var(--color-primary);
    background-color: var(--color-surface-primary-140);
  }
  .toggle--switch:not(.toggle--disabled):hover .toggle__input:checked ~ .toggle__span {
    background-color: var(--color-surface-primary-140);
    border-color: var(--color-primary-hover);
  }
  .toggle--switch:not(.toggle--disabled):hover .toggle__input:checked ~ .toggle__span::after {
    background-color: var(--color-primary-hover);
  }
}
.toggle--switch.toggle--disabled {
  cursor: not-allowed;
  opacity: 0.6;
}
.toggle--switch.toggle--disabled .toggle__span {
  background-color: var(--color-surface-disabled);
  border-color: var(--color-text-disabled);
  cursor: not-allowed;
}
.toggle--switch.toggle--disabled .toggle__span::after {
  background-color: var(--color-surface-tertiary);
}
.toggle--switch.toggle--disabled .toggle__label {
  color: var(--color-text-tertiary);
  cursor: not-allowed;
}
.toggle--switch.toggle--disabled .toggle__input:checked ~ .toggle__span {
  background-color: var(--color-surface-disabled);
  border-color: var(--color-text-disabled);
}
.toggle--switch.toggle--disabled .toggle__input:checked ~ .toggle__span::after {
  background-color: var(--color-text-disabled);
}

.toggle--switch .toggle__input:focus-visible ~ .toggle__span {
  outline: var(--border-width-base) solid var(--color-primary);
  outline-offset: var(--border-width-base);
}

@media (min-width: 1920px) {
  .toggle--switch:not(.toggle--disabled):active .toggle__span::after {
    width: 20px;
  }
}
@media (min-width: 1280px) and (max-width: 1920px) {
  .toggle--switch:not(.toggle--disabled):active .toggle__span::after {
    width: calc(
				18px + 2 *
					((100vw - 1280px) / (640))
			);
  }
}
@media (max-width: 1280px) {
  .toggle--switch:not(.toggle--disabled):active .toggle__span::after {
    width: 18px;
  }
}
.toggle--switch:not(.toggle--disabled) .toggle__input:checked:active ~ .toggle__span::after {
  -webkit-transform: translateX(10px);
      -ms-transform: translateX(10px);
          transform: translateX(10px);
}

.file-row-element {
  gap: 10px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
@media (max-width: 767px) {
  .file-row-element {
    gap: 5px;
  }
}

.file__row--name {
  word-break: break-all;
  font-style: normal;
  overflow: hidden;
  -o-text-overflow: ellipsis;
     text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
}

.file-row-element + .file-row-element {
  margin-top: 12px;
}

.file-drop {
  width: 500px;
  height: 500px;
  position: relative;
  isolation: isolate;
  width: 100%;
  height: 200px;
  border-radius: 16px;
  margin-bottom: 24px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  isolation: isolate;
}
.file-drop img,
.file-drop svg {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  -o-object-fit: contain;
     object-fit: contain;
  width: 60px;
  height: 60px;
  position: relative;
  z-index: -2;
}
@media (max-width: 1680px) {
  .file-drop img,
  .file-drop svg {
    width: 48px;
    height: 48px;
  }
}
.file-drop::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  -webkit-transform: translate(-50%, -50%);
      -ms-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  opacity: 0.5;
  z-index: -1;
  border: 2px dashed #6B6EE8;
  border-radius: 8px;
  width: calc(100% - 16px);
  height: calc(100% - 16px);
}
.file-drop::after {
  content: "";
  width: 100%;
  height: 1px;
  position: absolute;
  left: 0;
  bottom: -12px;
}
@media (max-width: 767px) {
  .file-drop::after {
    bottom: -8px;
  }
}
@media (max-width: 1680px) {
  .file-drop {
    margin-bottom: 20px;
  }
}
@media (max-width: 767px) {
  .file-drop {
    margin-bottom: 16px;
  }
}

.file-drop-text {
  position: relative;
  z-index: -3;
}

.file-text {
  text-align: center;
  padding-top: 8px;
}

.file-image-box {
  width: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  aspect-ratio: 39/20;
}
@media (max-width: 1680px) {
  .file-image-box {
    aspect-ratio: 11/6;
  }
}
@media (max-width: 1240px) {
  .file-image-box {
    aspect-ratio: 20/11;
  }
}
@media (max-width: 767px) {
  .file-image-box {
    aspect-ratio: 72/35;
  }
}
.file-image-box img {
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
  border-radius: 12px;
  overflow: hidden;
}

.input,
.textarea {
  width: 100%;
  border-radius: var(--border-radius-3xl);
  border: var(--border-width-thin) solid var(--color-tertiary);
  padding: var(--spacing-4) var(--spacing-8);
  background: var(--color-background-input);
  outline: none !important;
  -webkit-box-shadow: none !important;
          box-shadow: none !important;
  color: var(--color-text-primary);
  font-family: var(--font-family-base);
  font-size: var(--font-size-base);
  font-style: normal;
  font-weight: var(--font-weight-regular);
  line-height: var(--line-height-base);
}
@media (min-width: 1680px) {
  .input,
  .textarea {
    min-height: 52px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  .input,
  .textarea {
    min-height: calc(
				40px + 12 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  .input,
  .textarea {
    min-height: 40px;
  }
}
.input:-moz-placeholder-shown, .textarea:-moz-placeholder-shown {
  color: var(--color-text-tertiary);
  font-family: inherit;
  font-size: inherit;
  font-style: inherit;
  font-weight: inherit;
  line-height: inherit;
}
.input:-ms-input-placeholder, .textarea:-ms-input-placeholder {
  color: var(--color-text-tertiary);
  font-family: inherit;
  font-size: inherit;
  font-style: inherit;
  font-weight: inherit;
  line-height: inherit;
}
.input:placeholder-shown,
.textarea:placeholder-shown {
  color: var(--color-text-tertiary);
  font-family: inherit;
  font-size: inherit;
  font-style: inherit;
  font-weight: inherit;
  line-height: inherit;
}
.input:not(:-moz-placeholder-shown), .textarea:not(:-moz-placeholder-shown) {
  background-color: var(--color-background-input);
}
.input:not(:-ms-input-placeholder), .textarea:not(:-ms-input-placeholder) {
  background-color: var(--color-background-input);
}
.input:not(:placeholder-shown),
.textarea:not(:placeholder-shown) {
  background-color: var(--color-background-input);
}
@media screen and (hover: hover) {
  .input:hover:not(:disabled),
  .textarea:hover:not(:disabled) {
    border-color: var(--color-secondary);
    background-color: var(--color-background-input);
  }
}
.input:focus, .input:focus-visible,
.textarea:focus,
.textarea:focus-visible {
  border-color: var(--color-primary);
  background-color: var(--color-background-input);
}
.input:disabled,
.textarea:disabled {
  opacity: 0.4;
}

.textarea {
  resize: vertical;
  border-radius: var(--border-radius-2xl);
  min-height: var(--spacing-32);
  max-height: var(--spacing-56);
}

.--textarea-auto-resize {
  resize: none;
}

.input-box__title,
.input-box__text {
  display: block;
  padding-left: var(--spacing-8);
  line-height: var(--line-height-base);
}

.input-box__title {
  padding-bottom: var(--spacing-2);
}

.input-box__text {
  display: block;
  padding-top: var(--spacing-1);
  font-size: var(--font-size-xs);
  color: var(--color-text-tertiary);
}

.mask-complete {
  border-color: var(--color-success);
}

.mask-incomplete {
  border-color: var(--color-warning);
}

.mask-error {
  border-color: var(--color-danger);
}

.input-box--danger .input,
.input-box--danger .textarea {
  border-color: var(--color-danger);
  color: var(--color-danger);
}
.input-box--danger .input-box__text {
  color: var(--color-danger);
}

@media (min-width: 1680px) {
  .input-box--icon .input,
  .input-box--icon .textarea {
    padding-left: 72px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  .input-box--icon .input,
  .input-box--icon .textarea {
    padding-left: calc(
				40px + 32 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  .input-box--icon .input,
  .input-box--icon .textarea {
    padding-left: 40px;
  }
}
@media (min-width: 1680px) {
  .input-box--icon .input,
  .input-box--icon .textarea {
    padding-right: 72px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  .input-box--icon .input,
  .input-box--icon .textarea {
    padding-right: calc(
				40px + 32 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  .input-box--icon .input,
  .input-box--icon .textarea {
    padding-right: 40px;
  }
}

.input-box__field {
  position: relative;
}
@media (min-width: 1680px) {
  .input-box__field {
    --input-icon-size: 24px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  .input-box__field {
    --input-icon-size: calc(
				16px + 8 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  .input-box__field {
    --input-icon-size: 16px;
  }
}

.input-box__icon {
  width: var(--input-icon-size);
  height: var(--input-icon-size);
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
      -ms-transform: translateY(-50%);
          transform: translateY(-50%);
  left: var(--spacing-8);
}
.input-box__icon svg {
  -o-object-fit: contain;
     object-fit: contain;
  width: 100%;
  height: 100%;
}

.input-box__btn {
  left: auto;
  right: var(--spacing-8);
}

.password-btn path {
  -webkit-transition: var(--transition-duration-base);
  -o-transition: var(--transition-duration-base);
  transition: var(--transition-duration-base);
}
.password-btn svg.--visible path {
  fill: var(--color-text-tertiary);
}
.password-btn svg.--hidden path {
  fill: var(--color-text-tertiary);
}
.password-btn .--visible {
  display: none;
}
.password-btn .--hidden {
  display: block;
}
.password-btn.--visible .--visible {
  display: block;
}
.password-btn.--visible .--hidden {
  display: none;
}
@media (hover: hover) {
  .password-btn:hover svg.--visible path {
    fill: var(--color-primary);
  }
  .password-btn:hover svg.--hidden path {
    fill: var(--color-primary);
  }
}

.input-box__field-container {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: 1fr auto auto;
  grid-template-columns: 1fr auto auto;
  gap: var(--spacing-2);
}

/* Анимация фона */
.modal-background {
  position: fixed;
  left: 0;
  top: 0;
  width: 100vw;
  height: 100dvh;
  background: var(--color-overlay);
  z-index: -33333333333;
  overflow: auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  opacity: 0;
  -webkit-perspective: 1000px;
          perspective: 1000px;
  padding: var(--spacing-5);
}

.modal-background.--active {
  -webkit-animation: fadeIn var(--animation-duration-base) forwards;
          animation: fadeIn var(--animation-duration-base) forwards;
  z-index: var(--z-index-modal);
  overflow: hidden;
}

.modal__container {
  -webkit-transform: scale(0.75) translateY(20px);
      -ms-transform: scale(0.75) translateY(20px);
          transform: scale(0.75) translateY(20px);
  opacity: 0;
  -webkit-transition: all var(--animation-duration-base) var(--transition-timing-ease-in);
  -o-transition: all var(--animation-duration-base) var(--transition-timing-ease-in);
  transition: all var(--animation-duration-base) var(--transition-timing-ease-in);
  margin: auto;
  width: 100%;
  background: var(--color-background-primary);
  padding: var(--spacing-6);
  border-radius: var(--border-radius-2xl);
  will-change: transform, opacity;
}

.modal-background.--active .modal__container {
  -webkit-animation: modalEnter var(--animation-duration-base) var(--transition-timing-ease) forwards;
          animation: modalEnter var(--animation-duration-base) var(--transition-timing-ease) forwards;
}

@media (min-width: 1680px) {
  .modal__title {
    margin-left: 44px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  .modal__title {
    margin-left: calc(
				24px + 20 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  .modal__title {
    margin-left: 24px;
  }
}
@media screen and (max-width: 767px) {
  .modal__title {
    text-align: left;
    margin-left: 0;
  }
}

.modal__header {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: 1fr auto;
  grid-template-columns: 1fr auto;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  margin-bottom: var(--spacing-6);
  gap: var(--spacing-2);
  -ms-flex-negative: 0;
      flex-shrink: 0; /* Добавлено: предотвращает сжатие шапки */
}

.modal-btn {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  border-radius: var(--border-radius-base);
  -webkit-transition: background-color var(--animation-duration-base) var(--transition-timing-ease);
  -o-transition: background-color var(--animation-duration-base) var(--transition-timing-ease);
  transition: background-color var(--animation-duration-base) var(--transition-timing-ease);
  width: var(--spacing-12);
  height: var(--spacing-12);
}
.modal-btn path {
  fill: var(--color-primary);
  -webkit-transition: var(--animation-duration-base);
  -o-transition: var(--animation-duration-base);
  transition: var(--animation-duration-base);
}
.modal-btn svg,
.modal-btn img {
  width: var(--spacing-8);
  height: var(--spacing-8);
  -o-object-fit: contain;
     object-fit: contain;
}
@media screen and (hover: hover) {
  .modal-btn:hover {
    background-color: var(--color-surface-primary-140);
  }
  .modal-btn:hover path {
    fill: var(--color-primary-hover);
  }
}
@media (hover: none) {
  .modal-btn:active {
    background-color: var(--color-surface-primary-140);
  }
  .modal-btn:active path {
    fill: var(--color-primary-hover);
  }
}
.modal-btn:active {
  -webkit-transform: scale(0.95);
      -ms-transform: scale(0.95);
          transform: scale(0.95);
}

@media (min-width: 1920px) {
  .modal__container--medium {
    max-width: 550px;
  }
}
@media (min-width: 768px) and (max-width: 1920px) {
  .modal__container--medium {
    max-width: calc(
				400px + 150 *
					((100vw - 768px) / (1152))
			);
  }
}
@media (max-width: 768px) {
  .modal__container--medium {
    max-width: 400px;
  }
}

@media (min-width: 1920px) {
  .modal__container--large {
    max-width: 1024px;
  }
}
@media (min-width: 768px) and (max-width: 1920px) {
  .modal__container--large {
    max-width: calc(
				700px + 324 *
					((100vw - 768px) / (1152))
			);
  }
}
@media (max-width: 768px) {
  .modal__container--large {
    max-width: 700px;
  }
}
.modal__container--large .modal__title {
  margin-left: 0;
  text-align: left;
}

.modal-video__container {
  border-radius: var(--border-radius-xl);
}

.modal__control {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: var(--spacing-3);
}

/* Обновленные стили для галереи */
.modal-gallery__media {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  overflow: hidden;
  min-height: 0;
  position: relative;
  width: 100%;
  height: 100%;
}

.modal-gallery__figure {
  width: 100%;
  height: 100%; /* Добавлено: занимает всю высоту контейнера */
  position: relative;
  overflow: hidden;
  border-radius: var(--border-radius-md);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex; /* Добавлено: для центрирования содержимого */
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center; /* Добавлено: вертикальное центрирование */
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center; /* Добавлено: горизонтальное центрирование */
}
.modal-gallery__figure img,
.modal-gallery__figure video,
.modal-gallery__figure iframe {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  -o-object-fit: contain;
     object-fit: contain;
  display: block;
  margin: 0 auto;
  overflow: hidden;
  border-radius: var(--border-radius-md);
  -ms-flex-negative: 0;
      flex-shrink: 0; /* Добавлено: предотвращает сжатие медиа */
}

@media screen and (max-width: 767px) {
  .modal-gallery__nav {
    display: -webkit-box !important;
    display: -ms-flexbox !important;
    display: flex !important;
  }
}

.modal-gallery .modal__container {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  height: 90vh;
  max-height: 90vh;
  padding: 0;
  overflow: hidden;
}
@media screen and (max-width: 767px) {
  .modal-gallery .modal__container {
    height: 95vh;
    max-height: 95vh;
    padding: 0;
  }
}
.modal-gallery .modal__header {
  padding: var(--spacing-6) var(--spacing-6) 0 var(--spacing-6);
  margin-bottom: 0;
  -ms-flex-negative: 0;
      flex-shrink: 0;
}
.modal-gallery .modal__body {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  overflow: hidden;
  min-height: 0;
  padding: var(--spacing-4) var(--spacing-6);
}
@media screen and (max-width: 767px) {
  .modal-gallery .modal__body {
    padding: var(--spacing-3);
  }
}
.modal-gallery .modal__footer {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  padding: var(--spacing-4) var(--spacing-6) var(--spacing-6);
  border-top: 1px solid var(--color-border-primary);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: var(--spacing-4);
}
@media screen and (max-width: 767px) {
  .modal-gallery .modal__footer {
    padding: var(--spacing-3);
  }
}
.modal-gallery .modal-gallery__media {
  width: 100%;
  height: 100%;
  min-height: 0;
}

@media screen and (max-width: 767px) and (orientation: landscape) {
  .modal-gallery .modal__container {
    height: 85vh;
    max-height: 85vh;
  }
  .modal-gallery .modal__header {
    padding: var(--spacing-3) var(--spacing-5) 0 var(--spacing-5);
  }
}
.select {
  width: 100%;
  position: relative;
  cursor: pointer;
}

.select.is-active .select__arrow {
  -webkit-transform: rotate(180deg);
      -ms-transform: rotate(180deg);
          transform: rotate(180deg);
}
.select.is-active .select__arrow path {
  fill: var(--color-primary);
}
.select.is-active .select__body {
  display: block;
  -webkit-box-shadow: var(--shadow-base);
          box-shadow: var(--shadow-base);
}
.select.is-active .select__header {
  border-color: var(--color-primary);
  background-color: var(--color-background-secondary);
}

.select__header {
  width: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  width: 100%;
  border-radius: var(--border-radius-2xl);
  background: var(--color-background-input);
  color: var(--color-text-primary);
  border: var(--border-width-thin) solid transparent;
  font-size: var(--font-size-base);
  padding: var(--spacing-3) var(--spacing-4);
  -webkit-transition: var(--transition-duration-base);
  -o-transition: var(--transition-duration-base);
  transition: var(--transition-duration-base);
}
@media (min-width: 1680px) {
  .select__header {
    min-height: 52px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  .select__header {
    min-height: calc(
				40px + 12 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  .select__header {
    min-height: 40px;
  }
}
@media screen and (hover: hover) {
  .select__header:hover {
    border-color: var(--color-primary);
    background-color: var(--color-background-secondary);
  }
}

.select__body {
  width: 100%;
  position: absolute;
  left: 0;
  top: 100%;
  display: none;
  overflow: hidden;
  z-index: var(--z-index-dropdown);
  background: var(--color-background-secondary);
  -webkit-box-shadow: var(--shadow-primary);
          box-shadow: var(--shadow-primary);
  border-radius: var(--border-radius-2xl);
}

.select__inner {
  padding-right: var(--spacing-1);
  max-height: var(--spacing-48);
  overflow-y: auto;
  -ms-scroll-chaining: none;
      overscroll-behavior: none;
  height: 100%;
}

.select__item {
  display: -ms-grid;
  display: grid;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -ms-grid-columns: auto 1fr auto;
  grid-template-columns: auto 1fr auto;
  width: 100%;
  gap: var(--spacing-2);
  font-weight: 400;
  font-size: var(--font-size-base);
  padding: var(--spacing-3) var(--spacing-4);
  -webkit-transition: var(--transition-duration-base);
  -o-transition: var(--transition-duration-base);
  transition: var(--transition-duration-base);
}
@media (min-width: 1680px) {
  .select__item {
    min-height: 52px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  .select__item {
    min-height: calc(
				40px + 12 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  .select__item {
    min-height: 40px;
  }
}
.select__item svg {
  -o-object-fit: contain;
     object-fit: contain;
}
@media (min-width: 1680px) {
  .select__item svg {
    width: 20px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  .select__item svg {
    width: calc(
				16px + 4 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  .select__item svg {
    width: 16px;
  }
}
@media (min-width: 1680px) {
  .select__item svg {
    height: 20px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  .select__item svg {
    height: calc(
				16px + 4 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  .select__item svg {
    height: 16px;
  }
}
@media screen and (hover: hover) {
  .select__item:hover:not(.select__item--selected) {
    background-color: var(--color-background-input);
  }
}

.select__label input {
  width: 0;
  height: 0;
  opacity: 0;
  visibility: hidden;
  position: absolute;
  top: 0;
  left: 0;
  display: none;
}
.select__label input:checked ~ span {
  color: var(--color-blue);
}

.select__current {
  word-break: break-all;
  overflow: hidden;
  -o-text-overflow: ellipsis;
     text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
  color: var(--color-text-primary);
}

.select__arrow {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-transition: var(--transition-duration-base);
  -o-transition: var(--transition-duration-base);
  transition: var(--transition-duration-base);
}
@media (min-width: 1680px) {
  .select__arrow {
    width: 16px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  .select__arrow {
    width: calc(
				12px + 4 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  .select__arrow {
    width: 12px;
  }
}
@media (min-width: 1680px) {
  .select__arrow {
    height: 16px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  .select__arrow {
    height: calc(
				12px + 4 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  .select__arrow {
    height: 12px;
  }
}
.select__arrow path {
  fill: var(--color-text-primary);
}

.select__title {
  display: block;
  padding-left: var(--spacing-4);
  padding-bottom: var(--spacing-1);
}

.select__item--selected {
  background-color: var(--color-surface-primary-140);
  position: relative;
}
.select__item--selected::after {
  content: "";
  display: block;
  background: url("../img/icons/check-accent.svg") no-repeat center center/contain;
}
@media (min-width: 1680px) {
  .select__item--selected::after {
    width: 20px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  .select__item--selected::after {
    width: calc(
				16px + 4 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  .select__item--selected::after {
    width: 16px;
  }
}
@media (min-width: 1680px) {
  .select__item--selected::after {
    height: 20px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  .select__item--selected::after {
    height: calc(
				16px + 4 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  .select__item--selected::after {
    height: 16px;
  }
}

.select__hidden-input {
  display: none;
}

.swiper-container {
  position: relative;
}

.swiper {
  overflow: visible;
}

@media (min-width: 1920px) {
  .swiper-controls {
    margin-top: 50px;
  }
}
@media (min-width: 360px) and (max-width: 1920px) {
  .swiper-controls {
    margin-top: calc(
				30px + 20 *
					((100vw - 360px) / (1560))
			);
  }
}
@media (max-width: 360px) {
  .swiper-controls {
    margin-top: 30px;
  }
}

.swiper-pagination {
  position: relative;
  bottom: 0 !important;
}
.swiper-pagination .swiper-pagination-bullet {
  --margin: 7;
  background: var(--dark-blue);
  margin: 0 var(--margin) !important;
}
@media (min-width: 1920px) {
  .swiper-pagination .swiper-pagination-bullet {
    --margin: 7px;
  }
}
@media (min-width: 360px) and (max-width: 1920px) {
  .swiper-pagination .swiper-pagination-bullet {
    --margin: calc(
				5px + 2 *
					((100vw - 360px) / (1560))
			);
  }
}
@media (max-width: 360px) {
  .swiper-pagination .swiper-pagination-bullet {
    --margin: 5px;
  }
}
@media (min-width: 1920px) {
  .swiper-pagination .swiper-pagination-bullet {
    width: 7px;
  }
}
@media (min-width: 360px) and (max-width: 1920px) {
  .swiper-pagination .swiper-pagination-bullet {
    width: calc(
				5px + 2 *
					((100vw - 360px) / (1560))
			);
  }
}
@media (max-width: 360px) {
  .swiper-pagination .swiper-pagination-bullet {
    width: 5px;
  }
}
@media (min-width: 1920px) {
  .swiper-pagination .swiper-pagination-bullet {
    height: 7px;
  }
}
@media (min-width: 360px) and (max-width: 1920px) {
  .swiper-pagination .swiper-pagination-bullet {
    height: calc(
				5px + 2 *
					((100vw - 360px) / (1560))
			);
  }
}
@media (max-width: 360px) {
  .swiper-pagination .swiper-pagination-bullet {
    height: 5px;
  }
}
@media (min-width: 1920px) {
  .swiper-pagination .swiper-pagination-bullet-active {
    width: 9px;
  }
}
@media (min-width: 360px) and (max-width: 1920px) {
  .swiper-pagination .swiper-pagination-bullet-active {
    width: calc(
				7px + 2 *
					((100vw - 360px) / (1560))
			);
  }
}
@media (max-width: 360px) {
  .swiper-pagination .swiper-pagination-bullet-active {
    width: 7px;
  }
}
@media (min-width: 1920px) {
  .swiper-pagination .swiper-pagination-bullet-active {
    height: 9px;
  }
}
@media (min-width: 360px) and (max-width: 1920px) {
  .swiper-pagination .swiper-pagination-bullet-active {
    height: calc(
				7px + 2 *
					((100vw - 360px) / (1560))
			);
  }
}
@media (max-width: 360px) {
  .swiper-pagination .swiper-pagination-bullet-active {
    height: 7px;
  }
}

.swiper-btn {
  background: rgba(15, 174, 255, 0.062745098);
  position: absolute;
  top: 40%;
  -webkit-transform: translateY(-50%);
      -ms-transform: translateY(-50%);
          transform: translateY(-50%);
  z-index: 20;
}
@media (min-width: 1920px) {
  .swiper-btn {
    width: 50px;
  }
}
@media (min-width: 360px) and (max-width: 1920px) {
  .swiper-btn {
    width: calc(
				36px + 14 *
					((100vw - 360px) / (1560))
			);
  }
}
@media (max-width: 360px) {
  .swiper-btn {
    width: 36px;
  }
}
@media (min-width: 1920px) {
  .swiper-btn {
    height: 50px;
  }
}
@media (min-width: 360px) and (max-width: 1920px) {
  .swiper-btn {
    height: calc(
				36px + 14 *
					((100vw - 360px) / (1560))
			);
  }
}
@media (max-width: 360px) {
  .swiper-btn {
    height: 36px;
  }
}
@media (min-width: 1920px) {
  .swiper-btn {
    border-radius: 15px;
  }
}
@media (min-width: 360px) and (max-width: 1920px) {
  .swiper-btn {
    border-radius: calc(
				12px + 3 *
					((100vw - 360px) / (1560))
			);
  }
}
@media (max-width: 360px) {
  .swiper-btn {
    border-radius: 12px;
  }
}
@media (min-width: 1920px) {
  .swiper-btn {
    padding: 10px;
  }
}
@media (min-width: 360px) and (max-width: 1920px) {
  .swiper-btn {
    padding: calc(
				7px + 3 *
					((100vw - 360px) / (1560))
			);
  }
}
@media (max-width: 360px) {
  .swiper-btn {
    padding: 7px;
  }
}
.swiper-btn svg {
  width: 100%;
  height: 100%;
  fill: var(--blue);
  -o-object-fit: contain;
     object-fit: contain;
}
@media screen and (hover: hover) {
  .swiper-btn:hover:not(:disabled) {
    background: var(--blue);
    -webkit-box-shadow: 0px 10px 40px rgba(245, 0, 0, 0.21);
            box-shadow: 0px 10px 40px rgba(245, 0, 0, 0.21);
  }
  .swiper-btn:hover:not(:disabled) svg {
    fill: var(--white);
  }
}
.swiper-btn:active(:disabled) {
  -webkit-transform: scale(0.95) translateY(-50%);
      -ms-transform: scale(0.95) translateY(-50%);
          transform: scale(0.95) translateY(-50%);
  background: var(--blue);
}
.swiper-btn:active(:disabled) svg {
  fill: var(--white);
}
.swiper-btn:disabled {
  opacity: 0.5;
}

.swiper-btn--prev {
  left: 0;
}

.swiper-btn--next {
  right: 0;
}

.swiper-scrollbar {
  background: rgba(116, 117, 118, 0.1);
}
@media (min-width: 1920px) {
  .swiper-scrollbar {
    width: 6px;
  }
}
@media (min-width: 360px) and (max-width: 1920px) {
  .swiper-scrollbar {
    width: calc(
				3px + 3 *
					((100vw - 360px) / (1560))
			);
  }
}
@media (max-width: 360px) {
  .swiper-scrollbar {
    width: 3px;
  }
}
.swiper-scrollbar .swiper-scrollbar-drag {
  background: var(--blue);
}

.swiper-btn-br {
  padding: 8px;
}
@media (min-width: 1920px) {
  .swiper-btn-br {
    width: 40px;
  }
}
@media (min-width: 360px) and (max-width: 1920px) {
  .swiper-btn-br {
    width: calc(
				30px + 10 *
					((100vw - 360px) / (1560))
			);
  }
}
@media (max-width: 360px) {
  .swiper-btn-br {
    width: 30px;
  }
}
@media (min-width: 1920px) {
  .swiper-btn-br {
    height: 40px;
  }
}
@media (min-width: 360px) and (max-width: 1920px) {
  .swiper-btn-br {
    height: calc(
				30px + 10 *
					((100vw - 360px) / (1560))
			);
  }
}
@media (max-width: 360px) {
  .swiper-btn-br {
    height: 30px;
  }
}
.swiper-btn-br svg {
  width: 100%;
  height: 100%;
  stroke: var(--dark);
  -o-object-fit: contain;
     object-fit: contain;
}
@media screen and (hover: hover) {
  .swiper-btn-br:hover:not(:disabled) svg {
    stroke: var(--blue);
  }
}
.swiper-btn-br:active(:disabled) {
  -webkit-transform: scale(0.95) translateY(-50%);
      -ms-transform: scale(0.95) translateY(-50%);
          transform: scale(0.95) translateY(-50%);
}
.swiper-btn-br:active(:disabled) svg {
  fill: var(--blue);
}
.swiper-btn-br:disabled {
  opacity: 0;
  visibility: hidden;
}

.swiper-navigation {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
@media (min-width: 1920px) {
  .swiper-navigation {
    grid-gap: 15px;
  }
}
@media (min-width: 360px) and (max-width: 1920px) {
  .swiper-navigation {
    grid-gap: calc(
				10px + 5 *
					((100vw - 360px) / (1560))
			);
  }
}
@media (max-width: 360px) {
  .swiper-navigation {
    grid-gap: 10px;
  }
}

.tab-row {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: var(--spacing-1);
  overflow-x: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
  padding-bottom: var(--spacing-2);
  border-bottom: var(--border-width) solid var(--border-color);
  margin-bottom: var(--spacing-6);
}

.tab-row::-webkit-scrollbar {
  display: none;
}

.tab__btn {
  position: relative;
  line-height: var(--line-height-base);
  background: transparent;
  border: none;
  cursor: pointer;
  white-space: nowrap;
  -webkit-transition: all var(--transition-duration-base) var(--transition-timing-ease);
  -o-transition: all var(--transition-duration-base) var(--transition-timing-ease);
  transition: all var(--transition-duration-base) var(--transition-timing-ease);
  outline: none;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
}
.tab-body {
  position: relative;
  background: var(--color-surface);
  overflow: hidden;
}

.tab-box {
  display: none;
  -webkit-animation: fadeIn var(--animation-duration-base) var(--transition-timing-ease);
          animation: fadeIn var(--animation-duration-base) var(--transition-timing-ease);
}

.tab-box.--active {
  display: block;
}

.video__container {
  position: relative;
  width: 100%;
  cursor: pointer;
  overflow: hidden;
  -webkit-transition: var(--transition-duration-base);
  -o-transition: var(--transition-duration-base);
  transition: var(--transition-duration-base);
}
.video__container video,
.video__container iframe {
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.video__container::before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: var(--color-overlay);
  -webkit-transition: var(--transition-duration-base);
  -o-transition: var(--transition-duration-base);
  transition: var(--transition-duration-base);
}
.video__container::after {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
      -ms-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  -webkit-transition: var(--transition-duration-base);
  -o-transition: var(--transition-duration-base);
  transition: var(--transition-duration-base);
  background: url("../img/icons/icon-play.svg") no-repeat center center/contain;
}
@media (min-width: 1680px) {
  .video__container::after {
    width: 48px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  .video__container::after {
    width: calc(
				32px + 16 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  .video__container::after {
    width: 32px;
  }
}
@media (min-width: 1680px) {
  .video__container::after {
    height: 48px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  .video__container::after {
    height: calc(
				32px + 16 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  .video__container::after {
    height: 32px;
  }
}
@media (hover: hover) {
  .video__container:hover::after {
    -webkit-transform: translate(-50%, -50%) scale(1.1);
        -ms-transform: translate(-50%, -50%) scale(1.1);
            transform: translate(-50%, -50%) scale(1.1);
  }
}
.video__container:active::after {
  -webkit-transform: translate(-50%, -50%) scale(0.9);
      -ms-transform: translate(-50%, -50%) scale(0.9);
          transform: translate(-50%, -50%) scale(0.9);
}

.video__container.--pause::after, .video__container.--pause::before {
  z-index: -1;
  opacity: 0;
}

.tippy-box[data-theme~=tooltips] {
  background-color: var(--color-background-primary);
  -webkit-box-shadow: var(--shadow-lg);
          box-shadow: var(--shadow-lg);
  text-align: center;
  font-style: normal;
  color: var(--color-text-primary);
  padding: var(--spacing-2) var(--spacing-3);
}
@media (min-width: 1920px) {
  .tippy-box[data-theme~=tooltips] {
    font-size: 13px;
  }
}
@media (min-width: 1280px) and (max-width: 1920px) {
  .tippy-box[data-theme~=tooltips] {
    font-size: calc(
				11px + 2 *
					((100vw - 1280px) / (640))
			);
  }
}
@media (max-width: 1280px) {
  .tippy-box[data-theme~=tooltips] {
    font-size: 11px;
  }
}
.tippy-box[data-theme~=tooltips] .tippy-arrow {
  background: var(--color-background-primary);
  color: var(--color-background-primary);
}
.tippy-box[data-theme~=tooltips] .tippy-content {
  padding: 0;
  max-width: 135px;
}

.header {
  position: relative;
  isolation: isolate;
  top: 0;
  left: 0;
  width: 100%;
  z-index: var(--z-index-fixed);
}

.header--active {
  -webkit-transform: translateY(0);
      -ms-transform: translateY(0);
          transform: translateY(0);
}

.header--fixed {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  -webkit-animation-name: show__header;
          animation-name: show__header;
  -webkit-animation-duration: var(--transition-duration-slow);
          animation-duration: var(--transition-duration-slow);
  z-index: var(--z-index-fixed);
  padding: var(--spacing-3) 0;
}
.header--fixed .header__inner {
  border-radius: var(--border-radius-3xl);
  background: var(--color-background-secondary);
  padding: var(--spacing-3) var(--spacing-4);
  -webkit-box-shadow: var(--shadow-xl);
          box-shadow: var(--shadow-xl);
}
@media screen and (max-width: 1240px) {
  .header--fixed .header__inner {
    border-radius: var(--border-radius-xl);
  }
}

@-webkit-keyframes show__header {
  0% {
    opacity: 0;
    top: -20%;
  }
  100% {
    opacity: 1;
    top: 0;
  }
}

@keyframes show__header {
  0% {
    opacity: 0;
    top: -20%;
  }
  100% {
    opacity: 1;
    top: 0;
  }
}
.header__inner {
  padding: var(--spacing-8);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  gap: var(--spacing-3);
}
@media screen and (max-width: 1240px) {
  .header__inner {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse;
  }
}

.header-nav {
  position: relative;
}

.header-nav__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}
@media screen and (max-width: 1240px) {
  .header-nav__list {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: start;
    border-radius: var(--border-radius-lg);
    padding: var(--spacing-4);
    background-color: var(--color-background-tertiary);
    opacity: 0;
    -webkit-transform: translateY(5px);
        -ms-transform: translateY(5px);
            transform: translateY(5px);
    visibility: hidden;
    position: absolute;
    right: 0;
    top: 110%;
    -webkit-transition: var(--transition-duration-base) var(--transition-timing-ease);
    -o-transition: var(--transition-duration-base) var(--transition-timing-ease);
    transition: var(--transition-duration-base) var(--transition-timing-ease);
    -webkit-box-shadow: var(--shadow-base);
            box-shadow: var(--shadow-base);
  }
}
@media screen and (max-width: 1240px) and (min-width: 1240px) {
  .header-nav__list {
    width: 320px;
  }
}
@media screen and (max-width: 1240px) and (min-width: 360px) and (max-width: 1240px) {
  .header-nav__list {
    width: calc(
				240px + 80 *
					((100vw - 360px) / (880))
			);
  }
}
@media screen and (max-width: 1240px) and (max-width: 360px) {
  .header-nav__list {
    width: 240px;
  }
}
@media screen and (max-width: 1240px) {
  .header-nav__list.--active {
    opacity: 1;
    visibility: visible;
    -webkit-transform: translateY(0);
        -ms-transform: translateY(0);
            transform: translateY(0);
  }
}

@media screen and (max-width: 1240px) {
  .header-nav__item {
    width: 100%;
  }
}

.header-nav__anchor {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding: var(--spacing-3) var(--spacing-6);
  font-size: var(--font-size-sm);
  color: var(--color-secondary);
  border-radius: var(--border-radius-4xl);
  border: var(--border-width-thin) solid var(--color-secondary);
  font-weight: var(--font-weight-semibold);
  line-height: var(--line-height-base);
}
@media screen and (max-width: 1440px) {
  .header-nav__anchor {
    padding: var(--spacing-2) var(--spacing-4);
  }
}
@media screen and (max-width: 1240px) {
  .header-nav__anchor {
    border-radius: 0;
    background: transparent;
    border: none;
    color: var(--color-text-primary);
    font-size: var(--font-size-base);
    padding: var(--spacing-3) var(--spacing-6);
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
  }
  .header-nav__anchor:active {
    color: var(--color-primary);
  }
}
@media screen and (hover: hover) {
  .header-nav__anchor:hover {
    background-color: var(--color-secondary);
    color: var(--color-text-inverted);
  }
}

.header-contact {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
}
@media screen and (max-width: 1240px) {
  .header-contact {
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
    gap: var(--spacing-3) var(--spacing-8);
  }
}
@media screen and (max-width: 767px) {
  .header-contact {
    gap: var(--spacing-3);
  }
}

.header-contact__link {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: auto 1fr;
  grid-template-columns: auto 1fr;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  grid-gap: var(--spacing-3);
  font-size: var(--font-size-sm);
  padding: var(--spacing-3) var(--spacing-6);
}
@media (min-width: 1680px) {
  .header-contact__link {
    --button-circle-size: 56px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  .header-contact__link {
    --button-circle-size: calc(
				40px + 16 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  .header-contact__link {
    --button-circle-size: 40px;
  }
}
.header-contact__link svg,
.header-contact__link img {
  -o-object-fit: contain;
     object-fit: contain;
}
@media (min-width: 1680px) {
  .header-contact__link svg,
  .header-contact__link img {
    width: 24px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  .header-contact__link svg,
  .header-contact__link img {
    width: calc(
				16px + 8 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  .header-contact__link svg,
  .header-contact__link img {
    width: 16px;
  }
}
@media (min-width: 1680px) {
  .header-contact__link svg,
  .header-contact__link img {
    height: 24px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  .header-contact__link svg,
  .header-contact__link img {
    height: calc(
				16px + 8 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  .header-contact__link svg,
  .header-contact__link img {
    height: 16px;
  }
}
@media screen and (max-width: 767px) {
  .header-contact__link span {
    display: none;
  }
}
@media screen and (max-width: 1440px) {
  .header-contact__link {
    padding: var(--spacing-2) var(--spacing-4);
  }
}
@media screen and (max-width: 1240px) {
  .header-contact__link {
    padding: 0;
  }
}
@media screen and (max-width: 767px) {
  .header-contact__link {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    width: var(--button-circle-size);
    height: var(--button-circle-size);
    border: var(--border-width-thin) solid var(--color-primary);
    border-radius: var(--border-radius-full);
  }
}
@media screen and (hover: hover) {
  .header-contact__link:hover {
    color: var(--color-primary);
  }
}

.header__burger {
  display: none;
}
.header__burger.--active {
  background-color: var(--color-secondary-hover);
  color: var(--color-text-inverted);
}
@media screen and (max-width: 1240px) {
  .header__burger {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
  }
}

.footer__inner {
  display: -ms-grid;
  display: grid;
  position: relative;
  overflow: hidden;
  -ms-grid-columns: 1fr auto;
  grid-template-columns: 1fr auto;
  grid-gap: var(--spacing-8);
  background: var(--color-background-tertiary);
  border-radius: var(--border-radius-3xl);
  padding: var(--spacing-8);
}
@media screen and (max-width: 1240px) {
  .footer__inner {
    -ms-grid-columns: 1fr;
    grid-template-columns: 1fr;
  }
}

.footer__map {
  position: relative;
  overflow: hidden;
  border-radius: var(--border-radius-xl);
}
@media (min-width: 1920px) {
  .footer__map {
    width: 794px;
  }
}
@media (min-width: 1280px) and (max-width: 1920px) {
  .footer__map {
    width: calc(
				460px + 334 *
					((100vw - 1280px) / (640))
			);
  }
}
@media (max-width: 1280px) {
  .footer__map {
    width: 460px;
  }
}
@media (min-width: 1920px) {
  .footer__map {
    height: 409px;
  }
}
@media (min-width: 1280px) and (max-width: 1920px) {
  .footer__map {
    height: calc(
				320px + 89 *
					((100vw - 1280px) / (640))
			);
  }
}
@media (max-width: 1280px) {
  .footer__map {
    height: 320px;
  }
}
@media screen and (max-width: 1240px) {
  .footer__map {
    width: 100%;
  }
}
.footer__map iframe,
.footer__map div {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.footer-nav__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}
@media screen and (max-width: 767px) {
  .footer-nav__list {
    gap: var(--spacing-2);
  }
}

.footer-nav__anchor {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding: var(--spacing-3) var(--spacing-6);
  font-size: var(--font-size-sm);
  color: var(--color-secondary);
  border-radius: var(--border-radius-4xl);
  border: var(--border-width-thin) solid var(--color-secondary);
  font-weight: var(--font-weight-semibold);
  line-height: var(--line-height-base);
}
@media screen and (hover: hover) {
  .footer-nav__anchor:hover {
    background-color: var(--color-secondary);
    color: var(--color-text-inverted);
  }
}

.footer-contact {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: var(--spacing-6);
}

.footer-contact__link {
  display: -ms-grid;
  display: grid;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: start;
  -ms-grid-columns: auto 1fr;
  grid-template-columns: auto 1fr;
  grid-gap: var(--spacing-3);
  font-size: var(--font-size-sm);
}
.footer-contact__link svg,
.footer-contact__link img {
  -o-object-fit: contain;
     object-fit: contain;
}
@media (min-width: 1680px) {
  .footer-contact__link svg,
  .footer-contact__link img {
    width: 24px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  .footer-contact__link svg,
  .footer-contact__link img {
    width: calc(
				16px + 8 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  .footer-contact__link svg,
  .footer-contact__link img {
    width: 16px;
  }
}
@media (min-width: 1680px) {
  .footer-contact__link svg,
  .footer-contact__link img {
    height: 24px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  .footer-contact__link svg,
  .footer-contact__link img {
    height: calc(
				16px + 8 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  .footer-contact__link svg,
  .footer-contact__link img {
    height: 16px;
  }
}
@media screen and (hover: hover) {
  .footer-contact__link:hover {
    color: var(--color-primary);
  }
}

.footer__main {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: var(--spacing-10);
}

.footer__bottom {
  margin-top: auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: var(--spacing-4) var(--spacing-8);
}
@media screen and (max-width: 767px) {
  .footer__bottom {
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }
}

.footer__copyright {
  margin-left: auto;
}
@media screen and (max-width: 767px) {
  .footer__copyright {
    margin: 0 auto;
  }
}

.hero__inner {
  position: relative;
  border-radius: var(--border-radius-3xl);
  overflow: hidden;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}
@media (min-width: 1920px) {
  .hero__inner {
    min-height: 850px;
  }
}
@media (min-width: 1280px) and (max-width: 1920px) {
  .hero__inner {
    min-height: calc(
				500px + 350 *
					((100vw - 1280px) / (640))
			);
  }
}
@media (max-width: 1280px) {
  .hero__inner {
    min-height: 500px;
  }
}
@media screen and (max-width: 1240px) and (min-width: 1240px) {
  .hero__inner {
    min-height: 500px;
  }
}
@media screen and (max-width: 1240px) and (min-width: 768px) and (max-width: 1240px) {
  .hero__inner {
    min-height: calc(
				420px + 80 *
					((100vw - 768px) / (472))
			);
  }
}
@media screen and (max-width: 1240px) and (max-width: 768px) {
  .hero__inner {
    min-height: 420px;
  }
}
@media screen and (max-width: 767px) {
  .hero__inner {
    min-height: auto;
  }
}

.hero-swiper {
  height: 100%;
  z-index: var(--z-index-behind);
}

.hero-banner {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  border-radius: var(--border-radius-3xl);
}
@media screen and (max-width: 767px) {
  .hero-banner {
    position: relative;
    z-index: var(--z-index-elevated);
  }
}
.hero-banner img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center bottom;
     object-position: center bottom;
}

.hero-banner__control {
  background: var(--color-background-primary);
  border-radius: var(--border-radius-full);
  z-index: var(--z-index-elevated);
  right: var(--spacing-8);
  top: var(--spacing-8);
  position: absolute;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  border: var(--border-width-thicker) solid var(--color-background-secondary);
}
@media (min-width: 1680px) {
  .hero-banner__control {
    width: 60px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  .hero-banner__control {
    width: calc(
				40px + 20 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  .hero-banner__control {
    width: 40px;
  }
}
@media (min-width: 1680px) {
  .hero-banner__control {
    height: 60px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  .hero-banner__control {
    height: calc(
				40px + 20 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  .hero-banner__control {
    height: 40px;
  }
}
.hero-banner__control svg {
  -o-object-fit: contain;
     object-fit: contain;
}
@media (min-width: 1680px) {
  .hero-banner__control svg {
    width: 24px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  .hero-banner__control svg {
    width: calc(
				20px + 4 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  .hero-banner__control svg {
    width: 20px;
  }
}
@media (min-width: 1680px) {
  .hero-banner__control svg {
    height: 24px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  .hero-banner__control svg {
    height: calc(
				20px + 4 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  .hero-banner__control svg {
    height: 20px;
  }
}
.hero-banner__control svg path {
  -webkit-transition: var(--transition-duration-base);
  -o-transition: var(--transition-duration-base);
  transition: var(--transition-duration-base);
}
.hero-banner__control .icon-pause {
  display: none;
}
.hero-banner__control.--active .icon-play {
  display: none;
}
.hero-banner__control.--active .icon-pause {
  display: block;
}
@media screen and (hover: hover) {
  .hero-banner__control:hover {
    background-color: var(--color-primary-hover);
  }
  .hero-banner__control:hover svg path {
    fill: var(--color-text-inverted);
  }
}
.hero-banner__control:active {
  -webkit-transform: scale(0.95);
      -ms-transform: scale(0.95);
          transform: scale(0.95);
}

.hero-banner__item {
  width: 100%;
  height: auto;
}
.hero-banner__item img,
.hero-banner__item video,
.hero-banner__item iframe {
  -o-object-fit: cover;
     object-fit: cover;
  height: 100%;
  width: 100%;
}

.hero__head {
  position: relative;
  z-index: var(--z-index-elevated);
  padding: var(--spacing-8);
  background-color: var(--color-background-primary);
  border-radius: 0 0 var(--border-radius-3xl) 0;
  position: relative;
  position: relative;
}
@media (min-width: 1920px) {
  .hero__head {
    width: 1024px;
  }
}
@media (min-width: 1280px) and (max-width: 1920px) {
  .hero__head {
    width: calc(
				640px + 384 *
					((100vw - 1280px) / (640))
			);
  }
}
@media (max-width: 1280px) {
  .hero__head {
    width: 640px;
  }
}
@media (min-width: 1680px) {
  .hero__head {
    --pos: -32px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  .hero__head {
    --pos: calc(
				-16px + -16 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  .hero__head {
    --pos: -16px;
  }
}
.hero__head::before {
  content: "";
  position: absolute;
  width: var(--border-radius-3xl);
  height: var(--border-radius-3xl);
  background: var(--color-background-primary);
  z-index: 1;
  bottom: var(--pos);
  left: 0;
  mask-image: radial-gradient(circle at 100% 100%, transparent 70%, black 50%);
  -webkit-mask-image: radial-gradient(circle at 100% 100%, transparent 70%, black 50%);
}
.hero__head::after {
  content: "";
  position: absolute;
  width: var(--border-radius-3xl);
  height: var(--border-radius-3xl);
  background: var(--color-background-primary);
  z-index: 1;
  top: 0;
  right: var(--pos);
  mask-image: radial-gradient(circle at 100% 100%, transparent 70%, black 50%);
  -webkit-mask-image: radial-gradient(circle at 100% 100%, transparent 70%, black 50%);
}
@media screen and (max-width: 1240px) and (min-width: 1240px) {
  .hero__head {
    width: 640px;
  }
}
@media screen and (max-width: 1240px) and (min-width: 768px) and (max-width: 1240px) {
  .hero__head {
    width: calc(
				440px + 200 *
					((100vw - 768px) / (472))
			);
  }
}
@media screen and (max-width: 1240px) and (max-width: 768px) {
  .hero__head {
    width: 440px;
  }
}
@media screen and (max-width: 767px) {
  .hero__head {
    background: transparent;
    width: 100%;
  }
  .hero__head::before, .hero__head::after {
    content: none;
  }
}

.hero__title {
  text-align: right;
}
@media screen and (max-width: 767px) {
  .hero__title {
    text-align: left;
  }
}

.hero-advant {
  padding: var(--spacing-8);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  row-gap: var(--spacing-2);
}
@media screen and (max-width: 767px) {
  .hero-advant {
    padding: 0;
    margin-top: var(--spacing-8);
  }
}

.hero-advant__item {
  padding: var(--spacing-2) var(--spacing-8);
  background: var(--color-background-tertiary);
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: var(--spacing-1);
  margin-right: var(--mask-width);
  border-radius: var(--border-radius-md);
}
@media (min-width: 1680px) {
  .hero-advant__item {
    --mask-width: 30px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  .hero-advant__item {
    --mask-width: calc(
				15px + 15 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  .hero-advant__item {
    --mask-width: 15px;
  }
}
@media (min-width: 1680px) {
  .hero-advant__item {
    --mask-pos: -30px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  .hero-advant__item {
    --mask-pos: calc(
				-15px + -15 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  .hero-advant__item {
    --mask-pos: -15px;
  }
}
@media (min-width: 1680px) {
  .hero-advant__item {
    --mask-height: 40px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  .hero-advant__item {
    --mask-height: calc(
				20px + 20 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  .hero-advant__item {
    --mask-height: 20px;
  }
}
.hero-advant__item:first-child {
  border-radius: var(--border-radius-3xl) var(--border-radius-md) var(--border-radius-md) var(--border-radius-3xl);
}
.hero-advant__item:last-child {
  border-radius: var(--border-radius-md) var(--border-radius-3xl) var(--border-radius-3xl) var(--border-radius-md);
}
.hero-advant__item:not(:last-child)::after {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
      -ms-transform: translateY(-50%);
          transform: translateY(-50%);
  right: var(--mask-pos);
  width: var(--mask-width);
  height: var(--mask-height);
  background: url("../img/icons/advant-mask.svg") no-repeat center center/contain;
}

.hero__bottom {
  margin-top: auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
@media screen and (max-width: 767px) {
  .hero__bottom {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
  }
}

.hero-advant__item-label {
  font-size: var(--font-size-xs);
  color: var(--color-text-disabled);
}

.hero-cta {
  background: var(--color-background-primary);
  border-radius: var(--border-radius-3xl) 0 0 0;
  padding: var(--spacing-8);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: var(--spacing-3);
  position: relative;
  position: relative;
}
@media (min-width: 1680px) {
  .hero-cta {
    --pos: -32px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  .hero-cta {
    --pos: calc(
				-16px + -16 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  .hero-cta {
    --pos: -16px;
  }
}
.hero-cta::before {
  content: "";
  position: absolute;
  width: var(--border-radius-3xl);
  height: var(--border-radius-3xl);
  background: var(--color-background-primary);
  z-index: 1;
  bottom: 0;
  left: var(--pos);
  mask-image: radial-gradient(circle at 0% 0%, transparent 70%, black 50%);
  -webkit-mask-image: radial-gradient(circle at 0% 0%, transparent 70%, black 50%);
}
.hero-cta::after {
  content: "";
  position: absolute;
  width: var(--border-radius-3xl);
  height: var(--border-radius-3xl);
  background: var(--color-background-primary);
  z-index: 1;
  top: var(--pos);
  right: 0;
  mask-image: radial-gradient(circle at 0% 0%, transparent 70%, black 50%);
  -webkit-mask-image: radial-gradient(circle at 0% 0%, transparent 70%, black 50%);
}
@media screen and (max-width: 767px) {
  .hero-cta {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    width: 100%;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
}

@media screen and (max-width: 767px) {
  .header-contact--location {
    display: none;
  }
}

.about__inner {
  display: -ms-grid;
  display: grid;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: start;
  -ms-grid-columns: 1fr auto;
  grid-template-columns: 1fr auto;
}
@media (min-width: 1680px) {
  .about__inner {
    grid-gap: 84px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  .about__inner {
    grid-gap: calc(
				32px + 52 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  .about__inner {
    grid-gap: 32px;
  }
}
@media screen and (max-width: 992px) {
  .about__inner {
    -ms-grid-columns: 1fr;
    grid-template-columns: 1fr;
  }
}

.about__head {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: var(--spacing-8);
  padding-left: var(--spacing-8);
}
@media screen and (max-width: 992px) {
  .about__head {
    padding-right: var(--spacing-8);
  }
}

.about-advant {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: (1fr)[2];
  grid-template-columns: repeat(2, 1fr);
  gap: var(--spacing-6) var(--spacing-8);
}
@media (min-width: 1920px) {
  .about-advant {
    max-width: 790px;
  }
}
@media (min-width: 1280px) and (max-width: 1920px) {
  .about-advant {
    max-width: calc(
				690px + 100 *
					((100vw - 1280px) / (640))
			);
  }
}
@media (max-width: 1280px) {
  .about-advant {
    max-width: 690px;
  }
}
@media screen and (max-width: 1240px) {
  .about-advant {
    -ms-grid-columns: 1fr;
    grid-template-columns: 1fr;
  }
}

@media (min-width: 1920px) {
  .about-advant__item-anchor {
    width: 280px;
  }
}
@media (min-width: 1280px) and (max-width: 1920px) {
  .about-advant__item-anchor {
    width: calc(
				240px + 40 *
					((100vw - 1280px) / (640))
			);
  }
}
@media (max-width: 1280px) {
  .about-advant__item-anchor {
    width: 240px;
  }
}

.about-advant__item:nth-child(n+3) {
  -ms-grid-column-span: 2;
  grid-column: 2 span;
}
@media screen and (max-width: 1240px) {
  .about-advant__item:nth-child(n+3) {
    -ms-grid-column: 1;
    grid-column: 1;
  }
}

.about-advant__item-inner {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: 1fr auto;
  grid-template-columns: 1fr auto;
  gap: var(--spacing-6);
}
@media screen and (max-width: 1240px) {
  .about-advant__item-inner {
    -ms-grid-columns: 1fr;
    grid-template-columns: 1fr;
  }
}

.about-metro {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: var(--spacing-6) var(--spacing-10);
}

.about-metro__item-name,
.about-metro__item-time {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: auto 1fr;
  grid-template-columns: auto 1fr;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: var(--spacing-3);
}
.about-metro__item-name img,
.about-metro__item-name svg,
.about-metro__item-time img,
.about-metro__item-time svg {
  -o-object-fit: contain;
     object-fit: contain;
}
@media (min-width: 1680px) {
  .about-metro__item-name img,
  .about-metro__item-name svg,
  .about-metro__item-time img,
  .about-metro__item-time svg {
    width: 20px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  .about-metro__item-name img,
  .about-metro__item-name svg,
  .about-metro__item-time img,
  .about-metro__item-time svg {
    width: calc(
				16px + 4 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  .about-metro__item-name img,
  .about-metro__item-name svg,
  .about-metro__item-time img,
  .about-metro__item-time svg {
    width: 16px;
  }
}
@media (min-width: 1680px) {
  .about-metro__item-name img,
  .about-metro__item-name svg,
  .about-metro__item-time img,
  .about-metro__item-time svg {
    height: 20px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  .about-metro__item-name img,
  .about-metro__item-name svg,
  .about-metro__item-time img,
  .about-metro__item-time svg {
    height: calc(
				16px + 4 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  .about-metro__item-name img,
  .about-metro__item-name svg,
  .about-metro__item-time img,
  .about-metro__item-time svg {
    height: 16px;
  }
}

.about-form {
  border-radius: var(--border-radius-3xl);
  background-color: var(--color-background-secondary);
}
@media (min-width: 1920px) {
  .about-form {
    width: 683px;
  }
}
@media (min-width: 1280px) and (max-width: 1920px) {
  .about-form {
    width: calc(
				480px + 203 *
					((100vw - 1280px) / (640))
			);
  }
}
@media (max-width: 1280px) {
  .about-form {
    width: 480px;
  }
}
@media screen and (max-width: 1240px) and (min-width: 1240px) {
  .about-form {
    width: 480px;
  }
}
@media screen and (max-width: 1240px) and (min-width: 992px) and (max-width: 1240px) {
  .about-form {
    width: calc(
				420px + 60 *
					((100vw - 992px) / (248))
			);
  }
}
@media screen and (max-width: 1240px) and (max-width: 992px) {
  .about-form {
    width: 420px;
  }
}
@media screen and (max-width: 992px) {
  .about-form {
    width: 100%;
  }
}

.about-form__head {
  background: var(--color-background-primary);
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  max-width: 100%;
  padding: var(--spacing-4) var(--spacing-8);
  border-radius: 0 0 var(--border-radius-2xl) 0;
  position: relative;
  position: relative;
}
@media (min-width: 1680px) {
  .about-form__head {
    --pos: -32px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  .about-form__head {
    --pos: calc(
				-20px + -12 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  .about-form__head {
    --pos: -20px;
  }
}
.about-form__head::before {
  content: "";
  position: absolute;
  width: var(--border-radius-3xl);
  height: var(--border-radius-3xl);
  background: var(--color-background-primary);
  z-index: 1;
  bottom: var(--pos);
  left: 0;
  mask-image: radial-gradient(circle at 100% 100%, transparent 70%, black 50%);
  -webkit-mask-image: radial-gradient(circle at 100% 100%, transparent 70%, black 50%);
}
.about-form__head::after {
  content: "";
  position: absolute;
  width: var(--border-radius-3xl);
  height: var(--border-radius-3xl);
  background: var(--color-background-primary);
  z-index: 1;
  top: 0;
  right: var(--pos);
  mask-image: radial-gradient(circle at 100% 100%, transparent 70%, black 50%);
  -webkit-mask-image: radial-gradient(circle at 100% 100%, transparent 70%, black 50%);
}

.about-form__body {
  padding: var(--spacing-12) var(--spacing-8);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}

.about-form__control {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: 0.8fr 1.2fr;
  grid-template-columns: 0.8fr 1.2fr;
  gap: var(--spacing-5);
}

.about-form__data {
  padding: 0 var(--spacing-8);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: var(--spacing-2);
}

.about-form__price {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  gap: var(--spacing-3);
}

.gallery__inner {
  border-radius: var(--border-radius-4xl);
  background-color: var(--color-background-tertiary);
  overflow: hidden;
}

.gallery__head {
  display: -ms-grid;
  display: grid;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: start;
  -ms-grid-columns: 1fr auto;
  grid-template-columns: 1fr auto;
  gap: var(--spacing-4);
}

.gallery__body {
  border-radius: var(--border-radius-3xl);
  overflow: hidden;
  position: relative;
}

.gallery-media {
  min-height: 0;
  width: 100%;
  cursor: pointer;
  position: relative;
  overflow: hidden;
  z-index: var(--z-index-elevated);
  border-radius: var(--border-radius-2xl);
  padding-top: 33.3333333333%;
}
.gallery-media img,
.gallery-media video,
.gallery-media iframe {
  -o-object-fit: cover;
     object-fit: cover;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: var(--z-index-behind);
  -webkit-transition: var(--transition-duration-base);
  -o-transition: var(--transition-duration-base);
  transition: var(--transition-duration-base);
}
@media screen and (max-width: 1240px) {
  .gallery-media {
    padding-top: 50%;
  }
}
@media screen and (max-width: 767px) {
  .gallery-media {
    padding-top: 73.3333333333%;
  }
}
@media (hover: hover) {
  .gallery-media:hover img,
  .gallery-media:hover video,
  .gallery-media:hover iframe {
    -webkit-transform: scale(1.1);
        -ms-transform: scale(1.1);
            transform: scale(1.1);
  }
}

.gallery-media--video::before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: var(--color-overlay);
  -webkit-transition: var(--transition-duration-base);
  -o-transition: var(--transition-duration-base);
  transition: var(--transition-duration-base);
}
.gallery-media--video::after {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
      -ms-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  -webkit-transition: var(--transition-duration-base);
  -o-transition: var(--transition-duration-base);
  transition: var(--transition-duration-base);
  background: url("../img/icons/icon-play.svg") no-repeat center center/contain;
}
@media (min-width: 1680px) {
  .gallery-media--video::after {
    width: 48px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  .gallery-media--video::after {
    width: calc(
				32px + 16 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  .gallery-media--video::after {
    width: 32px;
  }
}
@media (min-width: 1680px) {
  .gallery-media--video::after {
    height: 48px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  .gallery-media--video::after {
    height: calc(
				32px + 16 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  .gallery-media--video::after {
    height: 32px;
  }
}
@media (hover: hover) {
  .gallery-media--video:hover::after {
    -webkit-transform: translate(-50%, -50%) scale(1.1);
        -ms-transform: translate(-50%, -50%) scale(1.1);
            transform: translate(-50%, -50%) scale(1.1);
  }
}
.gallery-media--video:active::after {
  -webkit-transform: translate(-50%, -50%) scale(0.9);
      -ms-transform: translate(-50%, -50%) scale(0.9);
          transform: translate(-50%, -50%) scale(0.9);
}

.gallery-contol {
  position: absolute;
  left: 50%;
  -webkit-transform: translateX(-50%);
      -ms-transform: translateX(-50%);
          transform: translateX(-50%);
  z-index: 2;
  bottom: var(--spacing-4);
}
@media (min-width: 1680px) {
  .gallery-contol {
    --mask-width: 50px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  .gallery-contol {
    --mask-width: calc(
				25px + 25 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  .gallery-contol {
    --mask-width: 25px;
  }
}
@media (min-width: 1680px) {
  .gallery-contol {
    --mask-height: 30px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  .gallery-contol {
    --mask-height: calc(
				15px + 15 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  .gallery-contol {
    --mask-height: 15px;
  }
}

.gallery-contol__item {
  position: relative;
}

.gallery-contol__trigger {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  text-align: center;
  padding: var(--spacing-5) var(--spacing-8);
  background: var(--color-background-primary);
  border-radius: var(--border-radius-4xl);
  font-weight: var(--font-weight-semibold);
  font-size: var(--font-size-md);
}
@media screen and (hover: hover) {
  .gallery-contol__trigger:hover + .gallery-contol__cloud {
    opacity: 1;
    visibility: visible;
  }
}

.gallery-contol__cloud {
  position: absolute;
  bottom: calc(100% + var(--mask-height));
  left: 50%;
  -webkit-transform: translateX(-50%);
      -ms-transform: translateX(-50%);
          transform: translateX(-50%);
  padding: var(--spacing-2);
  background: var(--color-background-primary);
  border-radius: var(--border-radius-2xl);
  -webkit-transition: var(--transition-duration-base);
  -o-transition: var(--transition-duration-base);
  transition: var(--transition-duration-base);
}
@media (min-width: 1680px) {
  .gallery-contol__cloud {
    width: 220px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  .gallery-contol__cloud {
    width: calc(
				160px + 60 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  .gallery-contol__cloud {
    width: 160px;
  }
}
@media (min-width: 1680px) {
  .gallery-contol__cloud {
    height: 120px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  .gallery-contol__cloud {
    height: calc(
				80px + 40 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  .gallery-contol__cloud {
    height: 80px;
  }
}
@media screen and (hover: hover) {
  .gallery-contol__cloud {
    opacity: 0;
    visibility: hidden;
  }
}
.gallery-contol__cloud::after {
  content: "";
  display: block;
  position: absolute;
  width: var(--mask-width);
  height: var(--mask-height);
  left: 50%;
  -webkit-transform: translateX(-50%);
      -ms-transform: translateX(-50%);
          transform: translateX(-50%);
  top: 100%;
  background: url("../img/icons/gallery-mask.svg") no-repeat center center/contain;
}
.gallery-contol__cloud img,
.gallery-contol__cloud video,
.gallery-contol__cloud iframe {
  -o-object-fit: cover;
     object-fit: cover;
  width: 100%;
  height: 100%;
  border-radius: var(--border-radius-xl);
  overflow: hidden;
}

.gallery-contol__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: var(--spacing-3);
}

.furniture__inner {
  background-color: var(--color-background-tertiary);
  border-radius: var(--border-radius-2xl);
  max-width: 1426px;
  margin-left: auto;
  margin-right: auto;
}

.furniture__head {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: 1fr auto;
  grid-template-columns: 1fr auto;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: start;
}

.furniture__title {
  padding: var(--spacing-8);
}

.furniture__btn-container {
  padding: 0 0 var(--spacing-4) var(--spacing-4);
  border-radius: 0 0 0 var(--border-radius-4xl);
  background-color: var(--color-background-primary);
  position: relative;
  position: relative;
}
@media (min-width: 1680px) {
  .furniture__btn-container {
    --pos: -32px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  .furniture__btn-container {
    --pos: calc(
				-20px + -12 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  .furniture__btn-container {
    --pos: -20px;
  }
}
.furniture__btn-container::before {
  content: "";
  position: absolute;
  width: var(--border-radius-3xl);
  height: var(--border-radius-3xl);
  background: var(--color-background-primary);
  z-index: 1;
  top: 0;
  left: var(--pos);
  mask-image: radial-gradient(circle at 0% 100%, transparent 70%, black 50%);
  -webkit-mask-image: radial-gradient(circle at 0% 100%, transparent 70%, black 50%);
}
.furniture__btn-container::after {
  content: "";
  position: absolute;
  width: var(--border-radius-3xl);
  height: var(--border-radius-3xl);
  background: var(--color-background-primary);
  z-index: 1;
  right: 0;
  bottom: var(--pos);
  mask-image: radial-gradient(circle at 0% 100%, transparent 70%, black 50%);
  -webkit-mask-image: radial-gradient(circle at 0% 100%, transparent 70%, black 50%);
}

.furniture__body {
  padding: var(--spacing-1) var(--spacing-8) var(--spacing-8);
}

.furniture__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: var(--spacing-6) var(--spacing-8);
}

.furniture__item {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: auto 1fr;
  grid-template-columns: auto 1fr;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: start;
  gap: var(--spacing-3);
}
.furniture__item svg,
.furniture__item img {
  -o-object-fit: contain;
     object-fit: contain;
}
@media (min-width: 1680px) {
  .furniture__item svg,
  .furniture__item img {
    width: 24px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  .furniture__item svg,
  .furniture__item img {
    width: calc(
				16px + 8 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  .furniture__item svg,
  .furniture__item img {
    width: 16px;
  }
}
@media (min-width: 1680px) {
  .furniture__item svg,
  .furniture__item img {
    height: 24px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  .furniture__item svg,
  .furniture__item img {
    height: calc(
				16px + 8 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  .furniture__item svg,
  .furniture__item img {
    height: 16px;
  }
}

.rules__list {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: (1fr)[3];
  grid-template-columns: repeat(3, 1fr);
  grid-gap: var(--spacing-8);
}
@media screen and (max-width: 1240px) {
  .rules__list {
    -ms-grid-columns: (1fr)[2];
    grid-template-columns: repeat(2, 1fr);
  }
}
@media screen and (max-width: 767px) {
  .rules__list {
    -ms-grid-columns: 1fr;
    grid-template-columns: 1fr;
  }
}

.rules-card {
  background-color: var(--color-background-tertiary);
  border-radius: var(--border-radius-2xl);
}

.rules-card__head {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: auto 1fr;
  grid-template-columns: auto 1fr;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: start;
}

.rules-card__icon {
  background-color: var(--color-background-primary);
  padding: var(--spacing-8);
  border-radius: 0 0 var(--border-radius-3xl) 0;
  position: relative;
  position: relative;
}
@media (min-width: 1680px) {
  .rules-card__icon {
    --pos: -32px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  .rules-card__icon {
    --pos: calc(
				-20px + -12 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  .rules-card__icon {
    --pos: -20px;
  }
}
.rules-card__icon::before {
  content: "";
  position: absolute;
  width: var(--border-radius-3xl);
  height: var(--border-radius-3xl);
  background: var(--color-background-primary);
  z-index: 1;
  bottom: var(--pos);
  left: 0;
  mask-image: radial-gradient(circle at 100% 100%, transparent 70%, black 50%);
  -webkit-mask-image: radial-gradient(circle at 100% 100%, transparent 70%, black 50%);
}
.rules-card__icon::after {
  content: "";
  position: absolute;
  width: var(--border-radius-3xl);
  height: var(--border-radius-3xl);
  background: var(--color-background-primary);
  z-index: 1;
  top: 0;
  right: var(--pos);
  mask-image: radial-gradient(circle at 100% 100%, transparent 70%, black 50%);
  -webkit-mask-image: radial-gradient(circle at 100% 100%, transparent 70%, black 50%);
}
.rules-card__icon img,
.rules-card__icon svg {
  -o-object-fit: contain;
     object-fit: contain;
  width: var(--spacing-12);
  height: var(--spacing-12);
}

.rules-card__title {
  padding: var(--spacing-8);
}

.rules-card__body {
  padding: var(--spacing-4) var(--spacing-8) var(--spacing-8);
}

.attractions__inner {
  border-radius: var(--border-radius-4xl);
  background-color: var(--color-background-tertiary);
  overflow: hidden;
}

.attractions__head {
  display: -ms-grid;
  display: grid;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: start;
  -ms-grid-columns: 1fr auto;
  grid-template-columns: 1fr auto;
  gap: var(--spacing-4);
}

.attractions-card {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: var(--spacing-3);
  position: relative;
  border-radius: var(--border-radius-xl);
  overflow: hidden;
}
@media (min-width: 1680px) {
  .attractions-card {
    height: 270px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  .attractions-card {
    height: calc(
				200px + 70 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  .attractions-card {
    height: 200px;
  }
}

.attractions-card__head {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  background: var(--color-background-tertiary);
  padding: 0 var(--spacing-4) var(--spacing-4) var(--spacing-6);
  border-radius: 0 0 var(--border-radius-xl) 0;
  z-index: var(--z-index-elevated);
  position: relative;
  position: relative;
}
@media (min-width: 1680px) {
  .attractions-card__head {
    --pos: -16px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  .attractions-card__head {
    --pos: calc(
				-12px + -4 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  .attractions-card__head {
    --pos: -12px;
  }
}
.attractions-card__head::before {
  content: "";
  position: absolute;
  width: var(--border-radius-xl);
  height: var(--border-radius-xl);
  background: var(--color-background-tertiary);
  z-index: 1;
  bottom: var(--pos);
  left: 0;
  mask-image: radial-gradient(circle at 100% 100%, transparent 70%, black 50%);
  -webkit-mask-image: radial-gradient(circle at 100% 100%, transparent 70%, black 50%);
}
.attractions-card__head::after {
  content: "";
  position: absolute;
  width: var(--border-radius-xl);
  height: var(--border-radius-xl);
  background: var(--color-background-tertiary);
  z-index: 1;
  top: 0;
  right: var(--pos);
  mask-image: radial-gradient(circle at 100% 100%, transparent 70%, black 50%);
  -webkit-mask-image: radial-gradient(circle at 100% 100%, transparent 70%, black 50%);
}

.attractions-card__media {
  position: absolute;
  top: 1px;
  left: 1px;
  width: 99.9%;
  height: 99.9%;
  border-radius: var(--border-radius-xl);
  overflow: hidden;
}
.attractions-card__media img {
  -o-object-fit: cover;
     object-fit: cover;
  width: 100%;
  height: 100%;
}

.advantages__head {
  padding: 0 var(--spacing-8);
}

.advantages__top {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: 1fr auto;
  grid-template-columns: 1fr auto;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: start;
}
@media (min-width: 1920px) {
  .advantages__top {
    grid-gap: 110px;
  }
}
@media (min-width: 1280px) and (max-width: 1920px) {
  .advantages__top {
    grid-gap: calc(
				32px + 78 *
					((100vw - 1280px) / (640))
			);
  }
}
@media (max-width: 1280px) {
  .advantages__top {
    grid-gap: 32px;
  }
}
@media screen and (max-width: 992px) {
  .advantages__top {
    -ms-grid-columns: 1fr;
    grid-template-columns: 1fr;
  }
}

.advantages__body {
  background-color: var(--color-background-tertiary);
  border-radius: var(--border-radius-3xl);
}

.advantages__info {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: 1fr auto;
  grid-template-columns: 1fr auto;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: start;
}

.advantages__descr {
  padding: var(--spacing-8);
}

.advantages__btn-container {
  background-color: var(--color-background-primary);
  border-radius: 0 0 0 var(--border-radius-3xl);
  padding: 0 0 var(--spacing-4) var(--spacing-4);
  position: relative;
  position: relative;
}
@media (min-width: 1680px) {
  .advantages__btn-container {
    --pos: -24px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  .advantages__btn-container {
    --pos: calc(
				-16px + -8 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  .advantages__btn-container {
    --pos: -16px;
  }
}
.advantages__btn-container::before {
  content: "";
  position: absolute;
  width: var(--border-radius-2xl);
  height: var(--border-radius-2xl);
  background: var(--color-background-primary);
  z-index: 1;
  top: 0;
  left: var(--pos);
  mask-image: radial-gradient(circle at 0% 100%, transparent 70%, black 50%);
  -webkit-mask-image: radial-gradient(circle at 0% 100%, transparent 70%, black 50%);
}
.advantages__btn-container::after {
  content: "";
  position: absolute;
  width: var(--border-radius-2xl);
  height: var(--border-radius-2xl);
  background: var(--color-background-primary);
  z-index: 1;
  right: 0;
  bottom: var(--pos);
  mask-image: radial-gradient(circle at 0% 100%, transparent 70%, black 50%);
  -webkit-mask-image: radial-gradient(circle at 0% 100%, transparent 70%, black 50%);
}

.advantages-list {
  padding: var(--spacing-2) var(--spacing-8) var(--spacing-8);
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: (1fr)[2];
  grid-template-columns: repeat(2, 1fr);
  grid-gap: var(--spacing-6);
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: start;
}

.advantages-item {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: auto 1fr;
  grid-template-columns: auto 1fr;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: start;
  gap: var(--spacing-3);
}

@media (min-width: 1680px) {
  .advantages-item__icon {
    width: 24px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  .advantages-item__icon {
    width: calc(
				20px + 4 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  .advantages-item__icon {
    width: 20px;
  }
}
@media (min-width: 1680px) {
  .advantages-item__icon {
    height: 24px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  .advantages-item__icon {
    height: calc(
				20px + 4 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  .advantages-item__icon {
    height: 20px;
  }
}
.advantages-item__icon img,
.advantages-item__icon svg {
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
}

.advantages-item__inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: var(--spacing-2);
}

.advantages-food {
  background-color: var(--color-background-secondary);
  border-radius: var(--border-radius-3xl);
  overflow: hidden;
}
@media (min-width: 1920px) {
  .advantages-food {
    width: 712px;
  }
}
@media (min-width: 1280px) and (max-width: 1920px) {
  .advantages-food {
    width: calc(
				480px + 232 *
					((100vw - 1280px) / (640))
			);
  }
}
@media (max-width: 1280px) {
  .advantages-food {
    width: 480px;
  }
}
@media screen and (max-width: 1240px) and (min-width: 1240px) {
  .advantages-food {
    width: 480px;
  }
}
@media screen and (max-width: 1240px) and (min-width: 992px) and (max-width: 1240px) {
  .advantages-food {
    width: calc(
				420px + 60 *
					((100vw - 992px) / (248))
			);
  }
}
@media screen and (max-width: 1240px) and (max-width: 992px) {
  .advantages-food {
    width: 420px;
  }
}
@media screen and (max-width: 992px) {
  .advantages-food {
    width: 100%;
  }
}

.advantages-food__head {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: auto 1fr;
  grid-template-columns: auto 1fr;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: start;
}

.advantages-food__icon {
  padding: var(--spacing-6);
  border-radius: 0 0 var(--border-radius-3xl);
  background-color: var(--color-background-primary);
  position: relative;
  position: relative;
}
@media (min-width: 1680px) {
  .advantages-food__icon {
    --pos: -32px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  .advantages-food__icon {
    --pos: calc(
				-20px + -12 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  .advantages-food__icon {
    --pos: -20px;
  }
}
.advantages-food__icon::before {
  content: "";
  position: absolute;
  width: var(--border-radius-3xl);
  height: var(--border-radius-3xl);
  background: var(--color-background-primary);
  z-index: 1;
  bottom: var(--pos);
  left: 0;
  mask-image: radial-gradient(circle at 100% 100%, transparent 70%, black 50%);
  -webkit-mask-image: radial-gradient(circle at 100% 100%, transparent 70%, black 50%);
}
.advantages-food__icon::after {
  content: "";
  position: absolute;
  width: var(--border-radius-3xl);
  height: var(--border-radius-3xl);
  background: var(--color-background-primary);
  z-index: 1;
  top: 0;
  right: var(--pos);
  mask-image: radial-gradient(circle at 100% 100%, transparent 70%, black 50%);
  -webkit-mask-image: radial-gradient(circle at 100% 100%, transparent 70%, black 50%);
}
.advantages-food__icon svg,
.advantages-food__icon img {
  -o-object-fit: contain;
     object-fit: contain;
  width: var(--spacing-10);
  height: var(--spacing-10);
}

.advantages-food__title {
  padding: var(--spacing-8);
}

.advantages-food__body {
  padding: var(--spacing-4) var(--spacing-8) var(--spacing-8);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: var(--spacing-4);
}

.advantages-food__media-list {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: 0.9fr 1.1fr;
  grid-template-columns: 0.9fr 1.1fr;
  gap: var(--spacing-3);
}
@media screen and (max-width: 767px) {
  .advantages-food__media-list {
    -ms-grid-columns: 1fr;
    grid-template-columns: 1fr;
  }
}

.advantages-food__media {
  position: relative;
  overflow: hidden;
  border-radius: var(--border-radius-xl);
  padding-top: 62.5%;
}
.advantages-food__media img {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
}

.advantages-guide {
  padding: var(--spacing-10) var(--spacing-8) 0;
}

.advantages-guide__body {
  display: -ms-grid;
  display: grid;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: start;
  -ms-grid-columns: (1fr)[5];
  grid-template-columns: repeat(5, 1fr);
}
@media (min-width: 1920px) {
  .advantages-guide__body {
    gap: 72px;
  }
}
@media (min-width: 1280px) and (max-width: 1920px) {
  .advantages-guide__body {
    gap: calc(
				24px + 48 *
					((100vw - 1280px) / (640))
			);
  }
}
@media (max-width: 1280px) {
  .advantages-guide__body {
    gap: 24px;
  }
}
@media screen and (max-width: 1240px) {
  .advantages-guide__body {
    -ms-grid-columns: (1fr)[3];
    grid-template-columns: repeat(3, 1fr);
  }
}
@media screen and (max-width: 1240px) and (min-width: 1240px) {
  .advantages-guide__body {
    gap: 24px;
  }
}
@media screen and (max-width: 1240px) and (min-width: 768px) and (max-width: 1240px) {
  .advantages-guide__body {
    gap: calc(
				16px + 8 *
					((100vw - 768px) / (472))
			);
  }
}
@media screen and (max-width: 1240px) and (max-width: 768px) {
  .advantages-guide__body {
    gap: 16px;
  }
}
@media screen and (max-width: 767px) {
  .advantages-guide__body {
    -ms-grid-columns: 1fr;
    grid-template-columns: 1fr;
  }
}

.advantages-guide__card {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: var(--spacing-3);
}

.advantages-guide__card-link {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: auto 1fr;
  grid-template-columns: auto 1fr;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: start;
  position: relative;
  gap: var(--spacing-3);
  font-weight: var(--font-weight-semibold);
  font-size: var(--font-size-sm);
}
.advantages-guide__card-link::before {
  content: "";
  display: block;
  position: relative;
  background: url("../img/icons/icon-link.svg") no-repeat center center/contain;
}
@media (min-width: 1680px) {
  .advantages-guide__card-link::before {
    width: 24px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  .advantages-guide__card-link::before {
    width: calc(
				16px + 8 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  .advantages-guide__card-link::before {
    width: 16px;
  }
}
@media (min-width: 1680px) {
  .advantages-guide__card-link::before {
    height: 24px;
  }
}
@media (min-width: 360px) and (max-width: 1680px) {
  .advantages-guide__card-link::before {
    height: calc(
				16px + 8 *
					((100vw - 360px) / (1320))
			);
  }
}
@media (max-width: 360px) {
  .advantages-guide__card-link::before {
    height: 16px;
  }
}
@media screen and (hover: hover) {
  .advantages-guide__card-link:hover {
    color: var(--color-primary);
  }
}

.reviews__inner {
  border-radius: var(--border-radius-4xl);
  background-color: var(--color-background-tertiary);
  overflow: hidden;
}

.reviews__head {
  display: -ms-grid;
  display: grid;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: start;
  -ms-grid-columns: 1fr auto;
  grid-template-columns: 1fr auto;
  gap: var(--spacing-4);
}

.reviews-card {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: var(--spacing-3);
  height: auto;
  border-radius: var(--border-radius-2xl);
  padding: var(--spacing-6);
  background: var(--color-background-input);
}

.reviews-card__head {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: start;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  gap: var(--spacing-3);
}

.faq__inner {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: auto 1fr;
  grid-template-columns: auto 1fr;
}
@media screen and (max-width: 992px) {
  .faq__inner {
    -ms-grid-columns: 100%;
    grid-template-columns: 100%;
  }
}

.faq__head {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: var(--spacing-8);
  padding: 0 var(--spacing-8);
}
@media (min-width: 1920px) {
  .faq__head {
    width: 516px;
  }
}
@media (min-width: 1280px) and (max-width: 1920px) {
  .faq__head {
    width: calc(
				420px + 96 *
					((100vw - 1280px) / (640))
			);
  }
}
@media (max-width: 1280px) {
  .faq__head {
    width: 420px;
  }
}
@media screen and (max-width: 1240px) and (min-width: 1240px) {
  .faq__head {
    width: 420px;
  }
}
@media screen and (max-width: 1240px) and (min-width: 992px) and (max-width: 1240px) {
  .faq__head {
    width: calc(
				360px + 60 *
					((100vw - 992px) / (248))
			);
  }
}
@media screen and (max-width: 1240px) and (max-width: 992px) {
  .faq__head {
    width: 360px;
  }
}
@media screen and (max-width: 992px) {
  .faq__head {
    margin-bottom: var(--spacing-8);
  }
}

.faq-action {
  margin-top: auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: var(--spacing-3);
}
@media screen and (max-width: 992px) {
  .faq-action {
    padding: var(--spacing-8);
    border-radius: var(--border-radius-2xl);
    background-color: var(--color-background-tertiary);
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
  }
}

.faq-action__btn {
  max-width: 223px;
}

@media screen and (max-width: 992px) {
  .faq__body {
    margin-bottom: var(--spacing-8);
  }
}