/* ######################################### */
/* #            Настройка шрифтов          # */
/* ######################################### */
@font-face {
  font-family: "Manrope";
  font-weight: 200;
  src: url("/local/templates/default/fonts/Manrope/Manrope-ExtraLight.ttf");
}

@font-face {
  font-family: "Manrope";
  font-weight: 300;
  src: url("/local/templates/default/fonts/Manrope/Manrope-Light.ttf");
}

@font-face {
  font-family: "Manrope";
  font-weight: 400;
  src: url("/local/templates/default/fonts/Manrope/Manrope-Regular.ttf");
}

@font-face {
  font-family: "Manrope";
  font-weight: 500;
  src: url("/local/templates/default/fonts/Manrope/Manrope-Medium.ttf");
}

@font-face {
  font-family: "Manrope";
  font-weight: 600;
  src: url("/local/templates/default/fonts/Manrope/Manrope-SemiBold.ttf");
}

@font-face {
  font-family: "Manrope";
  font-weight: 700;
  src: url("/local/templates/default/fonts/Manrope/Manrope-Bold.ttf");
}

@font-face {
  font-family: "Manrope";
  font-weight: 800;
  src: url("/local/templates/default/fonts/Manrope/Manrope-ExtraBold.ttf");
}

.manrope {
  font-family: var(--font-family);
  font-style: normal;
  line-height: 1;
  font-optical-sizing: auto;
  font-size: var(--font-size-body);
  font-weight: var(--font-weight-body);
}

.extra-light {
  font-weight: 200;
}

.light {
  font-weight: 300;
}

.regular {
  font-weight: 400;
}

.medium {
  font-weight: 500;
}

.semi-bold {
  font-weight: 600;
}

.bold {
  font-weight: 700;
}

.extra-bold {
  font-weight: 800;
}

.font-settings-body {
  font-size: var(--font-size-body);
  font-weight: var(--font-weight-body);
  line-height: 1;
}

a {
  color: inherit;
  /* цвет как у родителя */
  text-decoration: none;
  /* нет подчёркивания */
  background-color: transparent;
  /* прозрачный фон */
  cursor: pointer;
  /* курсор-указатель */
  font-weight: inherit;
  /* насыщенность как у родителя */
  line-height: inherit;
  /* высота строки как у родителя */
}

/* Для всех состояний */
a:hover,
a:active,
a:visited,
a:focus {
  color: inherit;
  text-decoration: none;
  background-color: transparent;
}

.d-none {
  display: none;
}

.d-block {
  display: block;
}

/* ######################################### */
/* #      Стандартные стили для кнопок     # */
/* ######################################### */
.button {
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  outline: none;
  box-shadow: none;
  font-size: var(--font-size-button-text);
  font-weight: var(--font-weight-button-text);
  min-width: 140px;
  min-height: var(--element-min-height);
  max-width: 260px;
  width: fit-content;
  padding: 10px 20px;
  text-transform: uppercase;
  border-radius: var(--border-radius);
  color: var(--font-color-white);
  cursor: pointer;
  user-select: none;
  transition: var(--transition);
}

.button.default {
  background-color: var(--brand-blue);
  color: var(--font-color-white);
}

.button.default:hover {
  background-color: var(--brand-orange);
  color: var(--font-color-white);
}

.button.accent {
  background-color: var(--brand-orange);
  color: var(--font-color-white);
}

.button.accent:hover {
  background-color: var(--brand-blue);
  color: var(--font-color-white);
}

.button.additional {
  background-color: var(--background-bold);
  color: var(--font-color-white);
}

.button.bordered {
  background-color: var(--background-light);
  border: 1px solid var(--button-bordered-border-color);
  color: var(--font-color-main);
}

.button.bordered:hover {
  background-color: var(--brand-orange);
  color: var(--font-color-white);
  border-color: var(--brand-orange);
}

.button.medium {
  min-width: 120px;
  min-height: auto;
  font-size: 16px;
}

.button.small {
  min-width: 100px;
  min-height: auto;
  font-size: 14px;
}

.button:disabled {
  background-color: var(--background-bold);
  cursor: not-allowed;
}

/* ######################################### */
/* #      Стандартные стили для иконок     # */
/* ######################################### */
/* 
Структура HTML-кода
[div|a|span].icon > svg
*/
.icon {
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  position: relative;
  min-width: 41px;
  min-height: 41px;
  max-width: 83px;
  max-height: 83px;
  width: calc((100vw - 375px) / (1920 - 375) * (83 - 41) + 41px);
  height: calc((100vw - 375px) / (1920 - 375) * (83 - 41) + 41px);
  user-select: none;
}

.icon.min {
  max-width: 16px;
  max-height: 16px;
  min-width: 16px;
  min-height: 16px;
  width: 16px;
  height: 16px;
}

.icon svg {
  position: absolute;
  max-width: 100%;
  max-height: 100%;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.icon svg path {
  transition: all 0.3s ease-in-out;
}

.icon.favorites {
  --fill-color: var(--brand-blue);
}

.icon.favorites:hover {
  --fill-color: var(--brand-orange);
}

.icon.favorites.selected {
  --fill-color: var(--brand-orange);
}

/* ######################################### */
/* #              Темы курсоров            # */
/* ######################################### */
.cursor-auto {
  cursor: auto;
}

.cursor-default {
  cursor: default;
}

.cursor-none {
  cursor: none;
}

.cursor-context-menu {
  cursor: context-menu;
}

.cursor-help {
  cursor: help;
}

.cursor-pointer {
  cursor: pointer;
}

.cursor-progress {
  cursor: progress;
}

.cursor-wait {
  cursor: wait;
}

.cursor-cell {
  cursor: cell;
}

.cursor-crosshair {
  cursor: crosshair;
}

.cursor-text {
  cursor: text;
}

.cursor-vertical-text {
  cursor: vertical-text;
}

.cursor-alias {
  cursor: alias;
}

.cursor-copy {
  cursor: copy;
}

.cursor-move {
  cursor: move;
}

.cursor-no-drop {
  cursor: no-drop;
}

.cursor-not-allowed {
  cursor: not-allowed;
}

.cursor-all-scroll {
  cursor: all-scroll;
}

.cursor-col-resize {
  cursor: col-resize;
}

.cursor-row-resize {
  cursor: row-resize;
}

.cursor-n-resize {
  cursor: n-resize;
}

.cursor-e-resize {
  cursor: e-resize;
}

.cursor-s-resize {
  cursor: s-resize;
}

.cursor-w-resize {
  cursor: w-resize;
}

.cursor-ns-resize {
  cursor: ns-resize;
}

.cursor-ew-resize {
  cursor: ew-resize;
}

.cursor-ne-resize {
  cursor: ne-resize;
}

.cursor-nw-resize {
  cursor: nw-resize;
}

.cursor-se-resize {
  cursor: se-resize;
}

.cursor-sw-resize {
  cursor: sw-resize;
}

.cursor-nesw-resize {
  cursor: nesw-resize;
}

.cursor-nwse-resize {
  cursor: nwse-resize;
}

.cursor-grab {
  cursor: grab;
}

.cursor-grabbing {
  cursor: grabbing;
}

.cursor-zoom-in {
  cursor: zoom-in;
}

.cursor-zoom-out {
  cursor: zoom-out;
}

.user-select-none {
  user-select: none;
}

/* ######################################### */
/* #                Пагинация              # */
/* ######################################### */
.pagination {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
  width: 100%;
  height: auto;
}

.pagination .pagination-arrow.disable {
  display: none;
}

.pagination .pagination-items {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 20px;
}

.pagination .pagination-items .pagination-items--item {
  display: flex;
  aspect-ratio: 1/1;
  align-items: center;
  justify-content: center;
  font-size: var(--font-size-body);
  color: var(--brand-blue);
  line-height: 1;
  font-size: 24px;
}

.pagination .pagination-items .pagination-items--item.current {
  color: var(--font-color-white);
  min-width: 24px;
  min-height: 24px;
  max-width: 60px;
  max-height: 60px;
  width: calc((100vw - 375px) / (1920 - 375) * (60 - 24) + 24px);
  height: calc((100vw - 375px) / (1920 - 375) * (60 - 24) + 24px);
  background-color: var(--brand-orange);
  border-radius: 50%;
}

/* ######################################### */
/* #          Настройки слайдера           # */
/* ######################################### */
.slider {
  display: flex;
  flex-direction: column;
}

.slider .slider-arrows,
.slider .slider-content {
  flex-grow: 1;
}

.slider .slider-arrows {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 25px;
}

.slider .slider-arrows .slider-arrows--arrow {
  display: flex;
  max-width: 50px;
  max-height: 50px;
  flex-grow: 1;
  aspect-ratio: 1/1;
  border-radius: 50%;
  cursor: pointer;
}

/* ######################################### */
/* #             Общие стили               # */
/* ######################################### */
.flex {
  display: flex;
}

.flex-grow-m {
  flex-grow: 1;
}

.flex-grow-a {
  flex-grow: 0;
}

.flex-direction-column {
  flex-direction: column;
}

.flex-direction-column-reverse {
  flex-direction: column-reverse;
}

.flex-direction-row {
  flex-direction: row;
}

.flex-direction-row-reverse {
  flex-direction: row-reverse;
}

.grid {
  display: grid;
}

.align-items-start {
  align-items: start;
}

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

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

.justify-content-start {
  justify-content: start;
}

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

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

.justify-content-space-around {
  justify-content: space-around;
}

.justify-content-space-between {
  justify-content: space-between;
}

.justify-content-space-evenly {
  justify-content: space-evenly;
}

.gap-s {
  gap: 10px;
}

.gap-m {
  gap: 20px;
}

.gap-l {
  gap: 30px;
}

.list-reset {
  list-style: none;
  margin: 0;
  padding: 0;
}

.list-reset li {
  margin: 0;
  padding: 0;
}

.ol-decimal {
  list-style-type: decimal;
}

/* 1, 2, 3... (по умолчанию) */
.ol-decimal-zero {
  list-style-type: decimal-leading-zero;
}

/* 01, 02, 03... */
.ol-lower-roman {
  list-style-type: lower-roman;
}

/* i, ii, iii... */
.ol-upper-roman {
  list-style-type: upper-roman;
}

/* I, II, III... */
.ol-lower-alpha {
  list-style-type: lower-alpha;
}

/* a, b, c... */
.ol-upper-alpha {
  list-style-type: upper-alpha;
}

/* A, B, C... */
.ol-lower-latin {
  list-style-type: lower-latin;
}

/* аналогично lower-alpha */
.ol-upper-latin {
  list-style-type: upper-latin;
}

/* аналогично upper-alpha */
.ol-armenian {
  list-style-type: armenian;
}

/* армянская нумерация */
.ol-georgian {
  list-style-type: georgian;
}

/* грузинская нумерация */
.ol-none {
  list-style-type: none;
}

/* без номеров */
.ol-outside {
  list-style-position: outside;
}

/* номер вне текста */
.ol-inside {
  list-style-position: inside;
}

/* номер внутри текста */
.ul-disc {
  list-style-type: disc;
}

/* закрашенный кружок (по умолчанию) */
.ul-circle {
  list-style-type: circle;
}

/* незакрашенный кружок */
.ul-square {
  list-style-type: square;
}

/* квадрат */
.ul-none {
  list-style-type: none;
}

/* без маркера */
.ul-outside {
  list-style-position: outside;
}

/* вне текстового блока */
.ul-inside {
  list-style-position: inside;
}

/* внутри текстового блока */

.background-color-light {
  background-color: var(--background-light);
}

.background-color-regular {
  background-color: var(--background-regular);
}

.background-color-medium {
  background-color: var(--background-medium);
}

.background-color-bold {
  background-color: var(--background-bold);
}

.three-lines {
  display: flex;
  flex-direction: column;
  gap: 3px;
  position: relative;
  width: 18px;
  min-height: 10px;
}

.three-lines .line {
  display: inline-block;
  width: 100%;
  height: 2px;
  background-color: var(--background-light);
}

.w-100 {
  width: 100%;
}

.w-75 {
  width: 75%;
}

.w-50 {
  width: 50%;
}

.w-25 {
  width: 25%;
}

input {
  border: none;
  outline: none;
  box-shadow: none;
  font-size: var(--font-size-body);
  font-weight: var(--font-weight-body);
  color: var(--font-color-grey);
  min-height: var(--element-min-height);
  padding: 0 10px;
  background-color: var(--background-light);
  appearance: none;
  -webkit-appearance: none;
  outline: none;
  border: none;
}

input:-webkit-autofill {
  -webkit-box-shadow: 0 0 0 50px var(--background-light) inset; /* Заливает фон белым */
  -webkit-text-fill-color: var(--font-color-grey); /* Цвет текста */
  transition: background-color 5000s ease-in-out 0s !important;
}

input:focus {
  border-color: var(--brand-blue);
}

/* Стили для модальных окон */

.popup {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  opacity: 0;
  visibility: hidden;
  z-index: 20;
  transition: all 0.2s ease-in-out;
  background-color: var(--overlay-background);
  backdrop-filter: var(--overlay-backdrop-filter);
}

.popup.active {
  opacity: 1;
  visibility: visible;
}

.popup .content {
  position: absolute;
  width: var(--width);
  height: var(--height);
  min-width: var(--min-width);
  min-height: var(--min-height);
  max-width: var(--max-width);
  max-height: var(--max-height);
  margin: 10px;
  background-color: var(--background-color);
  left: 50%;
  top: 50%;
  transform: translate(-50%, calc(-50% + 5px));
  opacity: 0;
  visibility: hidden;
  padding: 20px;
  border-radius: var(--border-radius);
  box-shadow: var(--box-shadow);
  transition: all 0.2s ease-in-out;
  z-index: 22;
}

.popup.active .content {
  opacity: 1;
  visibility: visible;
  transform: translate(-50%, -50%);
}

.popup .content div[data-popup-close-button] {
  display: flex;
  width: var(--width);
  height: var(--height);
  cursor: pointer;
  user-select: none;
}

.popup .popup-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 10px;
}

.popup .popup-header .popup-header--title {
  font-size: var(--font-size-detail-card);
  font-weight: var(--font-weight-detail-card);
}

.popup .popup-header .popup-header--close {
  display: flex;
  align-items: center;
  justify-content: center;
}

.popup .popup-content {
  padding: 10px 0;
}

.popup .popup-footer {
  margin-top: 10px;
}

/* ERID STYLES */
.erid {
  position: absolute;
  bottom: 10px;
  right: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--font-color-grey);
  font-size: var(--font-size-add-text-menu);
  font-weight: var(--font-weight-add-text-menu);
  gap: 5px;
  cursor: pointer;
  transition: var(--transition);
}

.erid .erid-popup {
  position: absolute;
  bottom: calc(100% + 5px);
  right: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.erid,
.erid .erid-popup {
  background-color: rgba(255, 255, 255, 0.8);
  border-radius: var(--border-radius);
  padding: 5px;
  transition: var(--transition);
}

.erid .erid-popup > span {
  text-wrap: nowrap;
  cursor: text;
}

.erid .erid-popup {
  opacity: 0;
  visibility: hidden;
}

.erid:hover .erid-popup {
  opacity: 1;
  visibility: visible;
}
